typst-0.8.0.2/0000755000000000000000000000000007346545000011233 5ustar0000000000000000typst-0.8.0.2/CHANGELOG.md0000644000000000000000000003114707346545000013052 0ustar0000000000000000# Revision history for typst-hs ## 0.8.0.2 * Give correct source positions even with nested includes (#74). ## 0.8.0.1 * Fix subtracting units, e.g. `1mm-0mm` (#71, Luke Grehan). ## 0.8 * Allow `json`, `toml`, `xml` to take either file path or bytes. * Allow `read` to return bytes if encoding is 'none'. * `bibliography`, `image`: change parameter name to `source` and allow bytes. * Add 'bytes' as a type name and constructor. * Add VBytes constructor for Val and TBytes for ValType. [API change] * Allow values of arguments type to be added together. * Support `calc.norm`. * Math: add `lcm` operator. * Require typst-symbols >= 0.1.8.1 (#67), giving us typst 0.13 symbols. * Add "dictionary" as name of TDict type (#65). ## 0.7 * Fix problems with module loading paths (#62). * Skip whitespace before parsing key/value values in math (#64). * Parse the `delim` attribute (and any others) in `math.mat` (#64). * Methods: fix 'has' method so it works for sequences of elements. * Evaluate: run show rules after looking up an identifier. * Show rule changes: + ShowRule now has an extra parameter for a unique identifier. This allows us to prevent double application of show rules, while allowing distinct rules with the same selector. [API change] + In applying show rules, we no longer recurse into an element's fields, as this caused double application of show rules in nested contexts. (See #63.) However, this is not a complete fix because there are some tests that still fail. + Ensure that show rules are applied to text elements. * Reorganized tests. Now put the `.out` and `.typ` files in same directory, rather than having separate trees. ## 0.6.2 * Allow types to act as constructor functions, as in typst (#61). Add new unexported module, Typst.Constructors, defining the constructors for each of the typst types. Fix name of string type: it is `str`, not `string` (which is only the `repr`). * Support `dict`, `datetime`, `symbol` constructors. * Improve path handling when loading files (#60). We now look in the "local path" (the path of the containing file) except when the path begins with `/` (in which case it is resolved relative to the package path). * Fix issue with expression parsing involving labels (#59). * Remove spurious trace in `getPath`. ## 0.6.1 * Fix precedence for functions (#55). `1(x)` and `!(x)` should not be parsed as functions. Note that we still don't match typst's behavior for `f_"!"(x)`. For us this works just like `f_!(x)`, but for typst we get a function in the subscript for the former but not the latter. Fixing this would require some changes in the types. * Define sys.version and sys.inputs.typst-hs-version (#56). The former is set to the version of typst we are trying to implement. The latter is a stringified version number from typst-hs. This will allow typst programs to tell when they're running on typst-hs (or pandoc), and react accordingly. * Rename stBeforeSpace -> stSpaceBefore to avoid confusion. * Fix precedence issues in math parsing (#54). Increased precedence of ! (factorial). `_` or `^` should eagerly gobble a grouped argument (`c_(a)`). * Minimal support for `context` (#53). Parse `context` keyword. New Context constructor in Expr [API change]. Evaluate this by just evaluating the expression, for now. Note that we don't support the features (like location or numbering) that context is used to affect anyway, so this change probably won't be enough for meaningful support. But it might prevent some documents from issuing errors. * Arguments at method. * Array windows, reduce, to-dict methods. * Allow parentheses in import. * Make standard module available under std (typst 0.12). * Add over/underparen, over/undershell in math module. * Add stretch function. * Add skew. * Depend on typst-symbols 0.1.7 and start to target typst 0.12. * Reset indentation requirements inside `[]` content block. e.g. ``` / B: #block[ - a ] ``` We don't need indentation inside the block content. ## 0.6 * Recognize figure.caption function (#52). * Allow defined identifiers to override math defaults (#51). Previously we evaluated all math in a special environment that shadowed any user-defined functions with the same-named functions from the math or sym modules. This change gives user-defined identifiers priority over the math defaults, allowing things like `bb` to be overridden. * Typst.Types: EvalState now has two new fields, `evalMathIdentifiers` and `evalStandardIdentifiers`. `evalIdentifiers` is now just for user-defined identifiers. [API change] * Don't implicitly load sys module for math. ## 0.5.0.5 * Allow numbers like `1.` in math mode (#50). ## 0.5.0.4 * Add built-in identifiers for standard types (#21): array, bool, content, int, float, regex, length, alignment, color, symbol, string. * Adjust emphasis parser for CJK characters (#49). Typst documentation says that `*` strong emphasis "only works at word boundaries." However, in typst/typst#2648 this was changed for CJK. ## 0.5.0.3 * Support grid.(cell,header,footer,hline,vline) (#44). * Support table.(cell,vline,hline,header,footer) (#44). * Allow space after equation in code (#43). * Treat unicode whitespace characters as whitespace (#43). * Allow raw (backticked) content as code expression (#43). * Allow colon in label (#43). * Allow line comments at end of file (#43). * Depend on typst-symbols 0.1.6. * Add Haddock docs to parts of the public API (Eli Adelhult, Leopold Wigratt). * Avoid backtracking in `pDictExpr` (Jonathan Widén). * Allow colon in dict literal (Jonathan Widén) (#43, #45). ## 0.5.0.2 * Fix parsing of field access in math (#41). `$plus.circle_2$` should give you a subscript 2 on the symbol `plus.circle`. Underscores are not allowed in field access in math. * Support toml-parser-2.0.0.0 (Eric Mertens). ## 0.5.0.1 * Set `evalPackageRoot` to working dir to start, even if the file to be converted is somewhere else. This seems to be what the test suite expects. * Make file loading relative to package root if present (#39). * Parser: remove `pBindExpr` from `pBaseExpr`. It does not seem to be necessary, and it causes problems with things like `$#x = $y$` (#34). * Fix assignment of module name in package imports (#30). * Don't allow `container.at` to insert new values (#26). * Handle `dict.at(variable) = expression` (#25). * Remove dependency on the unmaintained digits library (#24). We just copy the code for the function we need (with attribution): it is BSD3-licensed. ## 0.5 * Support "as" keyword in imports (#21). [API change] In Typst.Syntax, the Imports type now contains fields for an optional "as" identifier. * Support version type (#21). [API change] Add VVersion constructor to Val, TVersion to ValType. Support the `version` constructor function and the `at` method (#21). * Parser: Ensure that `set` rule doesn't pick up `if` on next line (#23). * Parser: Allow multiline strings (#20). * Allow function applications in dictionary key construction (#19). [API change]: in Typst.Syntax, the Dict constructor for Expr now takes type `[Spreadable (Expr, Expr)]` instead of `[Spreadable (Identifier, Expr)]`. This is because the key identifiers sometimes are not known at parse time and must be computed in Evaluate. ## 0.4 * `evaluateTypst` now returns a single Content instead of a sequence (breaking API change). The Content is a "document" element that wraps the other contents. (This is added automatically in typst: https://typst.app/docs/reference/model/document/#parameters-title.) * Improve math parser. * Add `sys` module and `sys.version`. * Math: add `sech` and `csch` operators, `math.mid`. * `math.op` is no longer limited to string argument. * Remove automatic matching for `|..|` in math (typst 0.8 breaking change). * Fix `in` so it works with a type. * `repr` label with angle brackets. * `cite` now just takes one positional element, a label instead of strings (typst 0.9 breaing change). * Add `quote` element. * Add first-class types. `type()` function now returns a ValType instead of a string. Allow ValTypes to == strings for compatibility, as in typst. * `highlight` element for text. * Allow array `zip` method to take any number of arguments. * Add `calc.tau`. * Add array `intersperse` method. * Add string `rev` method. * Fix search path for typst packages, from `cache/typst/packages/preview/packagename-major.minor.patch` to `cache/typst/packages/preview/packagename-major/minor.patch` (#18). * Add support of 'wide' spacing character. * Fix precedence for numerical attachments (#17). Typst makes a subtle distinction between `$a_1(x)$`, in which the `_` groups more tightly than the `(..)`, and $`a_f(x)$`, in which the `(..)` groups more tightly than the `_`. This patch implements the distinction. This fixes conversion of, e.g., `$n(a)^(b)$`. * Use typst-symbols 0.1.5. ## 0.3.2.1 * Fix resolution of symbols (#15). Symbols like `dot`, which only have variants, were not being properly resolved: we were getting the last matching variant rather than the first. * Avoid text's `readFile` in cli app (#13). Instead read as bytestring and force interpretation as UTF-8. * Fix some parser edge cases involving emphasis after `'` (#12). ## 0.3.2.0 * Add metadata element. * Add dedup method for vector. * Add math.class * Make MAttach on symbols include limits if symbol is relation. This is a 0.7 change: "Changed relations to show attachments as limits by default (e.g. in $a ->^x b$)." * Add Typst.MathClass. * Add im, id, tr text operators. * Parse math symbol shorthands as identifiers. * Use typst-symbols 0.1.4 so we get all of the defined shorthands. * Fix tests because of breaking symbol change ident -> equiv. * Depend on dev texmath. ## 0.3.1.0 * Allow multiplying a ratio by a length. * Use `symModule` and `mathModule` directly when evaluating Equation instead of looking up `sym` and `math`. * Fix parsing of escapes in string literals. Symbols in general can't be escaped. There is just a small list of valid escapes. * Fix bugs in converting typst regexes to TDFA's format. * Allow Symbol to be regex replacement text. * Allow VString and VSymbol to be +'d. * Update for toml-parser-1.2.0.0 API changes (#9, Eric Mertens). * Derive the decoder for typst.toml (#7, Eric Mertens) * Implement typst's `toml()` function (#8, Eric Mertens). ## 0.3.0.0 * We now target typst 0.6. * `joinVals` - fall back on repr when as a fallback in joining values. * Fix a spacing issue in parsing code inside equations (#6). * Fix `#include`. It wasn't including content! * Fix issue with math parsing of factorial (#5). * Handle "style" by evaluating it immediately, rather than passing it through as an element in content (#4). * Add `outline.entry`. * Allow identifiers to start with `_`. * Fix bug in parsing consecutive '#' expressions in math function (#2). * Fix bugs in makeLiteralRE. * Give namedArg an argument for a default value. This avoids spurious parse error messages. * Change return value of dictionary insert method to none. * Improve #panic output. * [API change]: Add Spreadable type in Typst.Syntax. Use this for Dict and Array values. * Handle package lookup, assuming packages are either local or cached. * API change: combine IO operations into Operations structure. `evaluateTypst` now takes a single Operations dictionary instead of separate `loadBytes` and `currentUTCTime` functions. And Operations now also includes functions to query environment variables and check directories. This will be needed for package lookup. * Depend on typst-symbols 0.1.2. * Make factorial take priority over fraction. ## 0.2.0.0 * We now target typst 0.5. * Implement methods for datetime. * Implement `base` parameter on str. * Add `datetime` constructor. * Implement `datetime.today`. * Add VDateTime type. * Implement `fields` method on content. * Add `display`, `inline`, `script`, `sscript` to math module. * Add `str.to-unicode`, `str.from-unicode`. * Add `calc.ln` and `calc.exp`. * Remove deprecated `calc.mod`. * Depend on typst-symbols 0.1.1. ## 0.1.0.0 * First version. Released on an unsuspecting world. typst-0.8.0.2/LICENSE0000644000000000000000000000277007346545000012246 0ustar0000000000000000Copyright (c) 2023, John MacFarlane 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 John MacFarlane nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. typst-0.8.0.2/app/0000755000000000000000000000000007346545000012013 5ustar0000000000000000typst-0.8.0.2/app/Main.hs0000644000000000000000000000635407346545000013243 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE ScopedTypeVariables #-} module Main where import Control.Monad (foldM, when) import qualified Data.ByteString as BS import Data.Maybe (fromMaybe) import qualified Data.Text.Encoding as TE import qualified Data.Text.IO as TIO import System.Directory (doesFileExist) import System.Environment (getArgs, lookupEnv) import System.Exit import System.IO (hPutStrLn, stderr) import System.Timeout (timeout) import Text.Read (readMaybe) import Text.Show.Pretty (pPrint) import Typst (evaluateTypst, parseTypst) import Typst.Types (Val (..), repr, Operations(..)) import Data.Time (getCurrentTime) import qualified Data.ByteString as B data Opts = Opts { optShowParse :: Bool, optShowEval :: Bool, optShowRepr :: Bool, optShowLaTeX :: Bool, optShowHtml :: Bool, optStandalone :: Bool, optTimeout :: Maybe (Maybe Int) } deriving (Show, Eq) err :: String -> IO a err msg = do hPutStrLn stderr msg exitWith (ExitFailure 1) parseArgs :: [String] -> IO (Maybe FilePath, Opts) parseArgs = foldM go (Nothing, Opts False False False False False False Nothing) where go (f, opts) "--parse" = pure (f, opts {optShowParse = True}) go (f, opts) "--eval" = pure (f, opts {optShowEval = True}) go (f, opts) "--repr" = pure (f, opts {optShowRepr = True}) go (f, opts) "--latex" = pure (f, opts {optShowLaTeX = True}) go (f, opts) "--html" = pure (f, opts {optShowHtml = True}) go (f, opts) "--standalone" = pure (f, opts {optStandalone = True}) go (f, opts) "--timeout" = pure (f, opts {optTimeout = Just Nothing }) go (f, opts) x | optTimeout opts == Just Nothing = pure (f, opts {optTimeout = Just (readMaybe x) }) go _ ('-' : xs) = err $ "Unknown option -" ++ xs go (Nothing, opts) f = pure (Just f, opts) go _ _ = err $ "Only one file can be specified as input." operations :: Operations IO operations = Operations { loadBytes = BS.readFile , currentUTCTime = getCurrentTime , lookupEnvVar = lookupEnv , checkExistence = doesFileExist } main :: IO () main = () <$ do (mbfile, opts) <- getArgs >>= parseArgs let showAll = case opts of Opts False False False False False False _ -> True _ -> False ( case optTimeout opts of Nothing -> fmap Just Just Nothing -> timeout 1000 Just (Just ms) -> timeout (ms * 1000) ) $ do bs <- maybe B.getContents B.readFile mbfile let t = TE.decodeUtf8 bs case parseTypst (fromMaybe "stdin" mbfile) t of Left e -> err $ show e Right parseResult -> do when (optShowParse opts || showAll) $ do when showAll $ putStrLn "--- parse tree ---" pPrint parseResult result <- evaluateTypst operations "stdin" parseResult case result of Left e -> err $ show e Right c -> do when (optShowEval opts || showAll) $ do when showAll $ putStrLn "--- evaluated ---" pPrint c when (optShowRepr opts || showAll) $ do when showAll $ putStrLn "--- repr ---" TIO.putStrLn $ repr $ VContent [c] exitSuccess typst-0.8.0.2/src/0000755000000000000000000000000007346545000012022 5ustar0000000000000000typst-0.8.0.2/src/Typst.hs0000644000000000000000000000031407346545000013477 0ustar0000000000000000module Typst ( module Typst.Parse, module Typst.Evaluate, module Typst.Types, module Typst.Syntax, ) where import Typst.Evaluate import Typst.Parse import Typst.Syntax import Typst.Types typst-0.8.0.2/src/Typst/0000755000000000000000000000000007346545000013145 5ustar0000000000000000typst-0.8.0.2/src/Typst/Bind.hs0000644000000000000000000000674007346545000014364 0ustar0000000000000000{-# LANGUAGE RankNTypes #-} module Typst.Bind (destructuringBind) where import Control.Monad.State import qualified Data.Map.Ordered as OM import Data.Maybe (fromMaybe) import qualified Data.Vector as V import Typst.Syntax import Typst.Types destructuringBind :: Monad m => (forall m'. Monad m' => Identifier -> Val -> MP m' ()) -> [BindPart] -> Val -> MP m () destructuringBind setIdentifier parts val = do let isSink Sink {} = True isSink _ = False let (fronts, rest) = break isSink parts let (sinks, backs) = span isSink rest mbsink <- case sinks of [Sink s] -> pure s [] -> pure Nothing _ -> fail "Bind cannot contain multiple sinks" case val of VDict m -> evalStateT (destructureDict setIdentifier fronts backs mbsink) m VArray v -> evalStateT (destructureArray setIdentifier fronts backs mbsink) v _ -> fail "Only Array or Dictionary values can be destructured" destructureDict :: Monad m => (forall m'. Monad m' => Identifier -> Val -> MP m' ()) -> [BindPart] -> [BindPart] -> Maybe Identifier -> StateT (OM.OMap Identifier Val) (MP m) () destructureDict setIdentifier fronts backs mbsink = do mapM_ handleDictBind (fronts ++ backs) case mbsink of Just i -> get >>= lift . setIdentifier i . VDict Nothing -> pure () where handleDictBind :: Monad m => BindPart -> StateT (OM.OMap Identifier Val) (MP m) () handleDictBind (Sink {}) = fail "Bind cannot contain multiple sinks" handleDictBind (Simple Nothing) = pure () handleDictBind (Simple (Just i)) = do m <- get case OM.lookup i m of Nothing -> fail $ "Destructuring key not found in dictionary: " <> show i Just v -> do put $ OM.delete i m lift $ setIdentifier i v handleDictBind (WithKey key mbident) = do m <- get case OM.lookup key m of Nothing -> fail $ "Destructuring key not found in dictionary: " <> show key Just v -> do put $ OM.delete key m lift $ setIdentifier (fromMaybe key mbident) v destructureArray :: Monad m => (forall m'. Monad m' => Identifier -> Val -> MP m' ()) -> [BindPart] -> [BindPart] -> Maybe Identifier -> StateT (V.Vector Val) (MP m) () destructureArray setIdentifier fronts backs mbsink = do mapM_ handleFrontBind fronts mapM_ handleBackBind (reverse backs) case mbsink of Just i -> get >>= lift . setIdentifier i . VArray Nothing -> pure () where handleFrontBind :: Monad m => BindPart -> StateT (V.Vector Val) (MP m) () handleFrontBind (Sink {}) = fail "Bind cannot contain multiple sinks" handleFrontBind (WithKey {}) = fail "Cannot destructure array with key" handleFrontBind (Simple mbi) = do v <- get case V.uncons v of Nothing -> fail "Array does not contain enough elements to destructure" Just (x, v') -> do put v' case mbi of Nothing -> pure () Just i -> lift $ setIdentifier i x handleBackBind :: Monad m => BindPart -> StateT (V.Vector Val) (MP m) () handleBackBind (Sink {}) = fail "Bind cannot contain multiple sinks" handleBackBind (WithKey {}) = fail "Cannot destructure array with key" handleBackBind (Simple mbi) = do v <- get case V.unsnoc v of Nothing -> fail "Array does not contain enough elements to destructure" Just (v', x) -> do put v' case mbi of Nothing -> pure () Just i -> lift $ setIdentifier i x typst-0.8.0.2/src/Typst/Constructors.hs0000644000000000000000000001302507346545000016212 0ustar0000000000000000{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-} module Typst.Constructors ( getConstructor ) where import qualified Data.Vector as V import qualified Data.Map.Ordered as OM import qualified Data.Map as M import Data.Time (fromGregorian, secondsToDiffTime) import Data.Maybe (fromMaybe, mapMaybe) import qualified Data.ByteString as B import Typst.Types import Typst.Util (makeFunction, makeFunctionWithScope, namedArg, nthArg, allArgs) import qualified Data.Set as Set import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as TE import Typst.Regex (makeRE) import Data.List (genericTake) import Control.Monad.Reader (asks) import Control.Monad (mplus) import Data.Char (ord, chr) getConstructor :: ValType -> Maybe Val getConstructor typ = case typ of TFloat -> Just $ makeFunction $ VFloat <$> nthArg 1 TInteger -> Just $ makeFunction $ VInteger <$> nthArg 1 TRegex -> Just $ makeFunction $ VRegex <$> (nthArg 1 >>= makeRE) TVersion -> Just $ makeFunction $ VVersion <$> (asks positional >>= mapM fromVal) TString -> Just $ makeFunctionWithScope (do val <- nthArg 1 base <- namedArg "base" (10 :: Integer) let digitVector :: V.Vector Char digitVector = V.fromList $ ['0'..'9'] ++ ['A'..'Z'] let renderDigit n = digitVector V.!? (fromIntegral n) VString <$> case val of VInteger n | base /= 10 -> case mDigits base n of Nothing -> fail "Could not convert number to base" Just ds -> maybe (fail "Could not convert number to base") (pure . T.pack) (mapM renderDigit ds) _ -> fromVal val `mplus` pure (repr val)) [ ( "to-unicode", makeFunction $ do (val :: Text) <- nthArg 1 case T.uncons val of Just (c, t) | T.null t -> pure $ VInteger $ fromIntegral $ ord c _ -> fail "to-unicode expects a single character" ) , ( "from-unicode", makeFunction $ do (val :: Int) <- nthArg 1 pure $ VString $ T.pack [chr val] ) ] TLabel -> Just $ makeFunction $ VLabel <$> nthArg 1 TSymbol -> Just $ makeFunction $ do (t :: Text) <- nthArg 1 vs <- drop 1 <$> allArgs variants <- mapM ( \case VArray [VString k, VString v] -> pure (Set.fromList (T.split (== '.') k), v) _ -> fail "wrong type in symbol arguments" ) vs pure $ VSymbol $ Symbol t False variants TDateTime -> Just $ makeFunction $ do mbyr <- namedArg "year" Nothing mbmo <- namedArg "month" Nothing mbda <- namedArg "day" Nothing mbhr <- namedArg "hour" Nothing mbmn <- namedArg "minute" Nothing mbsc <- namedArg "second" Nothing let mbday = case (mbyr, mbmo, mbda) of (Nothing, _, _) -> Nothing (Just yr, _, _) -> Just $ fromGregorian yr (fromMaybe 1 mbmo) (fromMaybe 1 mbda) let mbdifftime = case (mbhr, mbmn, mbsc) of (Nothing, _, _) -> Nothing (Just hr, _, _) -> Just $ secondsToDiffTime $ (hr * 60 * 60) + maybe 0 (* 60) mbmn + fromMaybe 0 mbsc pure $ VDateTime mbday mbdifftime TDict -> Just $ makeFunction $ do a <- nthArg 1 case a of VModule _ m -> pure $ VDict $ OM.fromList $ M.toList m _ -> fail "dictionary constructor requires a module as argument" TBytes -> Just $ makeFunction $ do x <- nthArg 1 let extractWord8 (VInteger w) = Just $ fromIntegral w extractWord8 _ = Nothing case x of VString s -> pure $ VBytes $ TE.encodeUtf8 s VArray xs -> pure $ VBytes $ B.pack $ mapMaybe extractWord8 $ V.toList xs _ -> fail "bytes constructor requires a string or array as argument" TArguments -> Nothing -- TODO https://typst.app/docs/reference/foundations/arguments/ TSelector -> Nothing -- TODO https://typst.app/docs/reference/foundations/selector/ TCounter -> Nothing -- TODO https://typst.app/docs/reference/introspection/counter/ _ -> Nothing -- mDigitsRev, mDigits from the unmaintained digits package -- https://hackage.haskell.org/package/digits-0.3.1 -- (c) 2009-2016 Henry Bucklow, Charlie Harvey -- BSD-3-Clause license. mDigitsRev :: Integral n => n -- ^ The base to use. -> n -- ^ The number to convert to digit form. -> Maybe [n] -- ^ Nothing or Just the digits of the number in list form, in reverse. mDigitsRev base i = if base < 1 then Nothing -- We do not support zero or negative bases else Just $ dr base i where dr _ 0 = [] dr b x = case base of 1 -> genericTake x $ repeat 1 _ -> let (rest, lastDigit) = quotRem x b in lastDigit : dr b rest -- | Returns the digits of a positive integer as a Maybe list. -- or Nothing if a zero or negative base is given mDigits :: Integral n => n -- ^ The base to use. -> n -- ^ The number to convert to digit form. -> Maybe [n] -- ^ Nothing or Just the digits of the number in list form mDigits base i = reverse <$> mDigitsRev base i typst-0.8.0.2/src/Typst/Evaluate.hs0000644000000000000000000012663207346545000015261 0ustar0000000000000000{-# LANGUAGE CPP #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module Typst.Evaluate ( evaluateTypst, valToContent, ) where import Control.Monad (MonadPlus (mplus), foldM, foldM_) import Control.Monad.State (MonadTrans (lift)) import Data.List (intersperse, sortOn) import qualified Data.Map as M import qualified Data.Map.Ordered as OM import Data.Maybe (isJust, fromMaybe) import Data.Sequence (Seq) import qualified Data.Sequence as Seq import qualified Data.Set as Set import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as TE import qualified Data.Vector as V import GHC.Generics (Generic) import System.FilePath (replaceFileName, takeBaseName, takeFileName, takeDirectory, ()) import Text.Parsec import Typst.Bind (destructuringBind) import Typst.Constructors (getConstructor) import Typst.Methods (getMethod) import Typst.Module.Standard (loadFileText, standardModule, symModule, getPath) import Typst.Module.Math (mathModule) import Typst.MathClass (mathClassOf, MathClass(Relation)) import Typst.Parse (parseTypst) import Typst.Regex (match) import Typst.Show (applyShowRules) import Typst.Syntax import Typst.Types import Typst.Util (makeFunction, nthArg) import qualified Toml as Toml import qualified Toml.Schema as Toml -- import Debug.Trace -- | Evaluate a parsed typst expression, evaluating the code and -- replacing it with content. evaluateTypst :: Monad m => -- | Dictionary of functions for IO operations Operations m -> -- | Path of parsed content FilePath -> -- | Markup produced by 'parseTypst' [Markup] -> m (Either ParseError Content) evaluateTypst operations fp = runParserT (do contents <- mconcat <$> many pContent <* eof -- "All documents are automatically wrapped in a document element." pure $ Elt "document" Nothing [("body", VContent contents)]) initialEvalState { evalOperations = operations, evalLocalDir = takeDirectory fp } fp initialEvalState :: EvalState m initialEvalState = emptyEvalState { evalIdentifiers = [(BlockScope, mempty)] , evalMathIdentifiers = [(BlockScope, mathModule <> symModule)] , evalStandardIdentifiers = [(BlockScope, standardModule'')] , evalPackageRoot = "." } where standardModule' = M.insert "eval" evalFunction standardModule standardModule'' = M.insert "std" (VModule "std" standardModule') standardModule' evalFunction = makeFunction $ do code :: Text <- nthArg 1 case parseTypst "eval" ("#{\n" <> code <> "\n}") of Left e -> fail $ "eval: " <> show e Right [Code _ expr] -> -- run in Either monad so we can't access file system case runParserT (evalExpr expr) initialEvalState "eval" [] of Failure e -> fail $ "eval: " <> e Success (Left e) -> fail $ "eval: " <> show e Success (Right val) -> pure val Right _ -> fail "eval: got something other than Code (should not happen)" satisfyTok :: Monad m => (Markup -> Bool) -> MP m Markup satisfyTok f = tokenPrim show showPos match' where showPos _oldpos (Code pos _) _ = pos showPos oldpos _ _ = oldpos match' x | f x = Just x match' _ = Nothing pContent :: Monad m => MP m (Seq Content) pContent = (pTxt <|> pElt) >>= applyShowRules >>= addTextElement applyShowRulesToVal :: Monad m => Val -> MP m Val applyShowRulesToVal (VContent cs) = VContent <$> applyShowRules cs applyShowRulesToVal x = pure x addTextElement :: Monad m => Seq Content -> MP m (Seq Content) addTextElement = foldM go mempty where go acc (Txt "") = pure acc go acc (Txt t) = (acc <>) <$> element "text" (Arguments [VContent [Txt t]] OM.empty) go acc x = pure (acc Seq.|> x) isText :: Markup -> Bool isText Text {} = True isText Space = True isText SoftBreak = True isText Nbsp = True isText Shy = True isText EmDash = True isText EnDash = True isText Ellipsis = True isText (Quote _) = True isText _ = False getText :: Markup -> Text getText (Text t) = t getText Space = " " getText SoftBreak = "\n" getText Nbsp = "\xa0" getText Shy = "\xad" getText EmDash = "\x2014" getText EnDash = "\x2013" getText Ellipsis = "\x2026" getText (Quote c) = T.singleton c -- TODO localize getText _ = "" pTxt :: Monad m => MP m (Seq Content) pTxt = do mathMode <- evalMath <$> getState txt <- if mathMode then getText <$> satisfyTok isText else mconcat . map getText . setQuotes <$> many1 (satisfyTok isText) pure $ Seq.singleton $ Txt txt setQuotes :: [Markup] -> [Markup] setQuotes [] = [] setQuotes (Quote '"' : x : rest) | x == Space || x == SoftBreak = Quote '\x201D' : setQuotes (x : rest) setQuotes (Quote '\'' : x : rest) | x == Space || x == SoftBreak = Quote '\x201D' : setQuotes (x : rest) setQuotes (x : Quote '"' : rest) | x == Space || x == SoftBreak = x : Quote '\x201C' : setQuotes rest setQuotes (x : Quote '\'' : rest) | x == Space || x == SoftBreak = x : Quote '\x2018' : setQuotes rest setQuotes (Text t1 : Quote '\'' : Text t2 : rest) = Text t1 : Quote '\x2019' : setQuotes (Text t2 : rest) setQuotes (Quote '"' : Text t : rest) | t `notElem` ([")", ".", ",", ";", ":", "?", "!", "]"] :: [Text]) = Quote '\x201C' : setQuotes (Text t : rest) setQuotes (Quote '\'' : Text t : rest) | t `notElem` ([")", ".", ",", ";", ":", "?", "!", "]"] :: [Text]) = Quote '\x2018' : setQuotes (Text t : rest) setQuotes (Quote '"' : rest) = Quote '\x201D' : setQuotes rest setQuotes (Quote '\'' : rest) = Quote '\x2019' : setQuotes rest setQuotes (x : xs) = x : setQuotes xs pInnerContents :: Monad m => [Markup] -> MP m (Seq Content) pInnerContents ms = do oldInput <- getInput oldPos <- getPosition oldShowRules <- evalShowRules <$> getState setInput ms result <- mconcat <$> (many pContent <* eof) setInput oldInput setPosition oldPos updateState $ \st -> st {evalShowRules = oldShowRules} pure result single :: Content -> Seq Content single = Seq.singleton applyElementFunction :: Monad m => Identifier -> Function -> Arguments -> MP m Val applyElementFunction name (Function f) args = do -- lookup styles set by "set" and apply them as defaults: mbSty <- M.lookup name . evalStyles <$> getState f $ maybe args (<> args) mbSty element :: Monad m => Identifier -> Arguments -> MP m (Seq Content) element name@(Identifier n) args = do eltfn <- lookupIdentifier name case eltfn of VFunction Nothing _ (Function f) -> valToContent <$> f args VFunction (Just i) _ (Function f) -> valToContent <$> applyElementFunction i (Function f) args _ -> fail $ T.unpack n <> " is not an element function" pElt :: Monad m => MP m (Seq Content) pElt = do tok <- satisfyTok (not . isText) case tok of ParBreak -> element "parbreak" mempty HardBreak -> element "linebreak" mempty Comment -> pure mempty Code pos expr -> setPosition pos *> pExpr expr Emph ms -> do body <- pInnerContents ms element "emph" Arguments {positional = [VContent body], named = OM.empty} Strong ms -> do body <- pInnerContents ms element "strong" Arguments {positional = [VContent body], named = OM.empty} Bracketed ms -> do body <- pInnerContents ms pure $ (Txt "[" Seq.<| body) Seq.|> Txt "]" RawBlock lang txt -> element "raw" Arguments { positional = [VString txt], named = OM.fromList [ ("block", VBoolean True), ( "lang", if T.null lang then VNone else VString lang ) ] } RawInline txt -> do element "raw" Arguments { positional = [VString txt], named = OM.fromList [ ("lang", VNone), ("block", VBoolean False) ] } Heading level ms -> do content <- pInnerContents ms element "heading" Arguments { positional = [VContent content], named = OM.fromList [("level", VInteger (fromIntegral level))] } Equation display ms -> inBlock BlockScope $ do oldMath <- evalMath <$> getState updateState $ \st -> st {evalMath = True} content <- pInnerContents ms element "equation" Arguments { positional = [VContent content], named = OM.fromList [ ("block", VBoolean display), ("numbering", VNone) ] } <* updateState (\st -> st {evalMath = oldMath}) MFrac numexp denexp -> do let handleParens (MGroup (Just "(") (Just ")") xs) = MGroup Nothing Nothing xs handleParens x = x num <- pInnerContents [handleParens numexp] den <- pInnerContents [handleParens denexp] element "frac" Arguments { positional = [VContent num, VContent den], named = OM.empty } MAttach mbBottomExp mbTopExp baseExp -> do base' <- pInnerContents [baseExp] pos <- getPosition let base = case base' of [Elt "text" mbpos [("body", VContent [Txt t])]] | T.all ((== Relation) . mathClassOf ) t -> [Elt "math.limits" mbpos [("body", VContent base')]] [Txt t] | T.all ((== Relation) . mathClassOf ) t -> [Elt "math.limits" (Just pos) [("body", VContent base')]] _ -> base' mbBottom <- maybe (pure Nothing) (fmap Just . pInnerContents . (: [])) mbBottomExp mbTop <- maybe (pure Nothing) (fmap Just . pInnerContents . (: [])) mbTopExp element "attach" Arguments { positional = [VContent base], named = OM.fromList [ ("b", maybe VNone VContent mbBottom), ("t", maybe VNone VContent mbTop) ] } MGroup mbOp mbCl ms -> wrapIn mbOp mbCl <$> pInnerContents ms MAlignPoint -> element "alignpoint" mempty Ref ident supp -> do supp' <- evalExpr supp element "ref" Arguments { positional = [VLabel ident], named = OM.fromList [ ( "supplement", supp' ) ] } BulletListItem ms -> do skipMany $ satisfyTok isBreak firstItem <- pInnerContents ms -- parse a sequence of list items and put them in a list element items <- (firstItem :) <$> many pListItem element "list" Arguments { positional = map VContent items, named = OM.empty } EnumListItem mbStart ms -> do skipMany $ satisfyTok isBreak firstItem <- pInnerContents ms -- parse a sequence of list items and put them in a list element items <- (firstItem :) <$> many pEnumItem element "enum" Arguments { positional = map VContent items, named = maybe OM.empty ( \x -> OM.fromList [("start", VInteger (fromIntegral x))] ) mbStart } DescListItem ts ds -> do ts' <- pInnerContents ts ds' <- pInnerContents ds skipMany (satisfyTok isBreak) let firstItem = VArray [VContent ts', VContent ds'] items <- (firstItem :) <$> many pDescItem element "terms" Arguments { positional = items, named = OM.empty } Url t -> element "link" Arguments { positional = [ VString t, VContent (Seq.singleton (Txt t)) ], named = OM.empty } _ -> fail $ "Encountered " <> show tok <> " in pElt" pDescItem :: Monad m => MP m Val pDescItem = do tok <- satisfyTok isDescListItem case tok of DescListItem ts ds -> do ts' <- pInnerContents ts ds' <- pInnerContents ds skipMany (satisfyTok isBreak) pure $ VArray [VContent ts', VContent ds'] _ -> fail "pDescItem encountered non DescListItem" where isDescListItem DescListItem {} = True isDescListItem _ = False pEnumItem :: Monad m => MP m (Seq Content) pEnumItem = do tok <- satisfyTok isEnumListItem case tok of EnumListItem _ ms -> pInnerContents ms <* skipMany (satisfyTok isBreak) _ -> fail "pEnumItem encountered non EnumListItem" where isEnumListItem EnumListItem {} = True isEnumListItem _ = False pListItem :: Monad m => MP m (Seq Content) pListItem = do tok <- satisfyTok isBulletListItem case tok of BulletListItem ms -> pInnerContents ms <* skipMany (satisfyTok isBreak) _ -> fail "pListItem encountered non BulletListItem" where isBulletListItem BulletListItem {} = True isBulletListItem _ = False isBreak :: Markup -> Bool isBreak SoftBreak = True isBreak ParBreak = True isBreak _ = False wrapIn :: Maybe Text -> Maybe Text -> Seq Content -> Seq Content wrapIn Nothing Nothing cs = cs wrapIn (Just op) (Just cl) cs = Seq.singleton $ Elt "math.lr" Nothing [ ( "body", VArray $ V.fromList [VContent $ Txt op Seq.<| (cs Seq.|> Txt cl)] ) ] wrapIn Nothing (Just cl) cs = cs Seq.|> Txt cl wrapIn (Just op) Nothing cs = Txt op Seq.<| cs pExpr :: Monad m => Expr -> MP m (Seq Content) pExpr expr = valToContent <$> evalExpr expr evalExpr :: Monad m => Expr -> MP m Val evalExpr expr = applyShowRulesToVal =<< case expr of Literal lit -> pure $ evalLiteral lit Group e -> evalExpr e Block (Content ms) -> VContent <$> pInnerContents ms Block (CodeBlock exprs) -> inBlock BlockScope $ -- let, etc. inside block are isolated -- we concat the results inside the block fst <$> foldM ( \(result, finished) e -> if finished then pure (result, finished) else do updateState $ \st -> st {evalFlowDirective = FlowNormal} val <- evalExpr e flow <- evalFlowDirective <$> getState case flow of FlowNormal -> do combined <- joinVals result val pure (combined, False) FlowContinue -> do combined <- joinVals result val pure (combined, True) FlowBreak -> do combined <- joinVals result val pure (combined, True) FlowReturn True -> pure (val, True) FlowReturn False -> do combined <- joinVals result val pure (combined, True) ) (VNone, False) exprs Array es -> VArray <$> foldM ( \xs x -> case x of Spr y -> do val <- evalExpr y case val of VArray ys -> pure (xs <> ys) _ -> fail $ "Could not spread " <> show (valType val) <> " into array" Reg e -> do val <- evalExpr e pure (V.snoc xs val ) ) [] es Dict items -> VDict <$> foldM ( \m v -> do case v of Reg (k, e) -> do k' <- case k of Ident i -> pure i _ -> do VString s <- evalExpr k pure $ Identifier s val <- evalExpr e pure $ m OM.|> (k', val) Spr y -> do val <- evalExpr y case val of VDict m' -> pure (m' OM.|<> m) _ -> fail $ "Could not spread " <> show (valType val) <> " into dictionary" ) OM.empty items Not e -> do val <- evalExpr e case val of VBoolean b -> pure $ VBoolean (not b) _ -> fail $ "Cannot apply 'not' to " <> show val And e1 e2 -> do val1 <- evalExpr e1 case val1 of VBoolean False -> pure $ VBoolean False VBoolean True -> do val2 <- evalExpr e2 case val2 of VBoolean True -> pure $ VBoolean True VBoolean False -> pure $ VBoolean False _ -> fail $ "Cannot apply 'and' to " <> show val1 _ -> fail $ "Cannot apply 'and' to " <> show val1 Or e1 e2 -> do val1 <- evalExpr e1 case val1 of VBoolean True -> pure $ VBoolean True VBoolean False -> do val2 <- evalExpr e2 case val2 of VBoolean True -> pure $ VBoolean True VBoolean False -> pure $ VBoolean False _ -> fail $ "Cannot apply 'or' to " <> show val1 _ -> fail $ "Cannot apply 'or' to " <> show val1 Ident ident -> lookupIdentifier ident Let bind e -> do val <- evalExpr e case bind of BasicBind (Just ident) -> addIdentifier ident val BasicBind Nothing -> pure () DestructuringBind parts -> destructuringBind addIdentifier parts val pure VNone LetFunc name params e -> do val <- toFunction (Just name) params e addIdentifier name val pure VNone FieldAccess (Ident (Identifier fld)) e -> do val <- evalExpr e getMethod (updateExpression e) val fld <|> case val of VSymbol (Symbol _ accent variants) -> do let variants' = sortOn (Set.size . fst) $ filter (\(var, _) -> fld `Set.member` var) variants case variants' of [] -> fail $ "Symbol does not have variant " <> show fld ((_, s) : _) -> pure $ VSymbol $ Symbol s accent variants' VModule _ m -> case M.lookup (Identifier fld) m of Just x -> pure x Nothing -> fail $ "Module does not contain " <> show fld VFunction _ m _ -> case M.lookup (Identifier fld) m of Just x -> pure x Nothing -> fail $ "Function scope does not contain " <> show fld VDict m -> case OM.lookup (Identifier fld) m of Just x -> pure x Nothing -> fail $ show (Identifier fld) <> " not found" _ -> fail "FieldAccess requires a dictionary" FieldAccess _ _ -> fail "FieldAccess requires an identifier" FuncCall e args -> do updateState $ \st -> st {evalFlowDirective = FlowNormal} val <- evalExpr e mathMode <- evalMath <$> getState case val of VFunction (Just i) _ (Function f) -> do arguments <- toArguments args applyElementFunction i (Function f) arguments VFunction Nothing _ (Function f) -> toArguments args >>= f VType ty -> case getConstructor ty of Just (VFunction _ _ (Function f)) -> toArguments args >>= f _ -> fail $ "No constructor defined for type " <> show ty VSymbol (Symbol _ True _) | mathMode -> do val' <- lookupIdentifier "accent" case val' of VFunction _ _ (Function f) -> toArguments args >>= f . (\a -> a {positional = positional a ++ [val]}) _ -> fail "accent not defined" _ | mathMode -> do args' <- toArguments args pure $ VContent $ valToContent val <> single "(" <> mconcat ( intersperse (single ",") (map valToContent (positional args')) ) <> single ")" | otherwise -> fail "Attempt to call a non-function" FuncExpr params e -> toFunction Nothing params e Equals e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case comp v1 v2 of Just EQ -> pure $ VBoolean True _ -> pure $ VBoolean False LessThan e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case comp v1 v2 of Nothing -> fail $ "Can't compare " <> show v1 <> " and " <> show v2 Just LT -> pure $ VBoolean True _ -> pure $ VBoolean False GreaterThan e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case comp v1 v2 of Nothing -> fail $ "Can't compare " <> show v1 <> " and " <> show v2 Just GT -> pure $ VBoolean True _ -> pure $ VBoolean False LessThanOrEqual e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case comp v1 v2 of Nothing -> fail $ "Can't compare " <> show e1 <> " and " <> show e2 Just LT -> pure $ VBoolean True Just EQ -> pure $ VBoolean True _ -> pure $ VBoolean False GreaterThanOrEqual e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case comp v1 v2 of Nothing -> fail $ "Can't compare " <> show v1 <> " and " <> show v2 Just GT -> pure $ VBoolean True Just EQ -> pure $ VBoolean True _ -> pure $ VBoolean False InCollection e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case v2 of VString t -> case v1 of VString t' -> pure $ VBoolean $ t' `T.isInfixOf` t VRegex re -> pure $ VBoolean $ match re t _ -> fail $ "Can't apply 'in' to " <> show v1 <> " and string" VType ty -> case v1 of VString t' -> pure $ VBoolean $ t' `T.isInfixOf` (prettyType ty) VRegex re -> pure $ VBoolean $ match re (prettyType ty) _ -> fail $ "Can't apply 'in' to " <> show v1 VArray vec -> pure $ VBoolean $ V.elem v1 vec VDict m -> case v1 of VString t -> pure $ VBoolean $ isJust $ OM.lookup (Identifier t) m _ -> pure $ VBoolean False _ -> fail $ "Can't apply 'in' to " <> show v2 <> show (e1,e2) Negated e -> do v <- evalExpr e case maybeNegate v of Nothing -> fail $ "Can't negate " <> show v Just v' -> pure v' ToPower e1 e2 -> do e <- evalExpr e1 b <- evalExpr e2 case (b, e) of (VInteger i, VInteger j) -> pure $ VInteger $ floor ((fromIntegral i :: Double) ** (fromIntegral j :: Double)) (VInteger i, VRatio j) -> pure $ VFloat ((fromIntegral i :: Double) ** (fromRational j :: Double)) (VRatio i, VInteger j) -> pure $ VFloat (fromRational i ** (fromIntegral j :: Double)) (VRatio i, VRatio j) -> pure $ VFloat (fromRational i ** fromRational j) (VFloat i, VInteger j) -> pure $ VFloat (i ** (fromIntegral j :: Double)) (VFloat i, VFloat j) -> pure $ VFloat (i ** j) (VInteger i, VFloat j) -> pure $ VFloat ((fromIntegral i :: Double) ** j) (VFloat i, VRatio j) -> pure $ VFloat (i ** fromRational j) _ -> fail $ "Can't exponentiate " <> show b <> " to " <> show e Plus e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case (v1, v2) of (VAlignment x1 y1, VAlignment x2 y2) -> pure $ VAlignment (x1 `mplus` x2) (y1 `mplus` y2) (VArguments xs, VArguments ys) -> pure $ VArguments (xs <> ys) _ -> case maybePlus v1 v2 of Nothing -> fail $ "Can't + " <> show v1 <> " and " <> show v2 Just v -> pure v Minus e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case maybeMinus v1 v2 of Nothing -> fail $ "Can't - " <> show v1 <> " and " <> show v2 Just v -> pure v Times e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case maybeTimes v1 v2 of Nothing -> fail $ "Can't * " <> show v1 <> " and " <> show v2 Just v -> pure v Divided e1 e2 -> do v1 <- evalExpr e1 v2 <- evalExpr e2 case maybeDividedBy v1 v2 of Nothing -> fail $ "Can't / " <> show v1 <> " and " <> show v2 Just v -> pure v Set e args -> do v <- evalExpr e as' <- toArguments args case v of VFunction (Just name) _ _ -> updateState $ \st -> st { evalStyles = M.alter ( \case Nothing -> Just as' Just as'' -> Just (as'' <> as') ) name $ evalStyles st } _ -> fail $ "Set expects an element name" pure VNone Show mbSelExpr e -> do renderVal <- inBlock FunctionScope $ evalExpr e case mbSelExpr of Nothing -> do rest <- mconcat <$> (many pContent <* eof) case renderVal of VFunction _ _ (Function f) -> VContent . valToContent <$> f Arguments {positional = [VContent rest], named = OM.empty} _ -> pure $ VContent $ valToContent renderVal Just selExpr -> do selector <- evalExpr selExpr >>= toSelector case renderVal of VFunction _ _ (Function f) -> updateState $ \st -> st { evalShowRules = ShowRule (evalNextShowRuleIdentifier st) selector ( \c -> valToContent <$> f Arguments { positional = [VContent (Seq.singleton c)], named = OM.empty } ) : evalShowRules st, evalNextShowRuleIdentifier = evalNextShowRuleIdentifier st + 1 } _ -> updateState $ \st -> st { evalShowRules = ShowRule (evalNextShowRuleIdentifier st) selector ( \c -> case e of -- ignore show set for now TODO Set _ _ -> pure $ Seq.singleton c _ -> pure (valToContent renderVal) ) : evalShowRules st, evalNextShowRuleIdentifier = evalNextShowRuleIdentifier st + 1 } pure VNone Binding _ -> fail $ "Encountered binding out of proper context" Assign e1 e2 -> do val <- evalExpr e2 case e1 of Binding (BasicBind (Just ident)) -> updateIdentifier ident val Binding (BasicBind Nothing) -> pure () Binding (DestructuringBind parts) -> destructuringBind updateIdentifier parts val x -> updateExpression x val pure VNone If clauses -> do let go [] = pure VNone go ((cond, e) : rest) = do val <- evalExpr cond case val of VBoolean True -> evalExpr e VBoolean False -> go rest _ -> fail "If requires a boolean condition" go clauses While e1 e2 -> do let go result = do condval <- evalExpr e1 case condval of VBoolean True -> do val <- evalExpr e2 hadBreak <- (== FlowBreak) . evalFlowDirective <$> getState joinVals result val >>= if hadBreak then pure else go VBoolean False -> pure result _ -> fail "While loop requires a boolean condition" updateState $ \st -> st {evalFlowDirective = FlowNormal} go VNone For bind e1 e2 -> do let go [] result = pure result go (x : xs) result = do case bind of BasicBind (Just ident) -> addIdentifier ident x BasicBind Nothing -> pure () DestructuringBind parts -> destructuringBind addIdentifier parts x val <- evalExpr e2 hadBreak <- (== FlowBreak) . evalFlowDirective <$> getState joinVals result val >>= if hadBreak then pure else go xs source <- evalExpr e1 items <- case source of VString t -> pure $ map (VString . T.singleton) (T.unpack t) VArray v -> pure $ V.toList v VDict m -> pure $ map ( \(Identifier k, v) -> VArray (V.fromList [VString k, v]) ) (OM.assocs m) _ -> fail $ "For expression requires an Array or Dictionary" updateState $ \st -> st {evalFlowDirective = FlowNormal} go items VNone Context e -> do evalExpr e -- TODO for now we just ignore "context" Return mbe -> do -- these flow directives are examined in CodeBlock updateState (\st -> st {evalFlowDirective = FlowReturn (isJust mbe)}) maybe (pure VNone) evalExpr mbe Continue -> do updateState (\st -> st {evalFlowDirective = FlowContinue}) pure VNone Break -> do updateState (\st -> st {evalFlowDirective = FlowBreak}) pure VNone Label t -> pure $ VLabel t Import e imports -> do argval <- evalExpr e (modid, modmap) <- case argval of VString t -> snd <$> loadModule t VModule i m -> pure (i, m) VFunction (Just i) m _ -> pure (i, m) VFunction Nothing m _ -> pure ("anonymous", m) _ -> fail "Import requires a path or module or function" case imports of AllIdentifiers -> importModule modmap SomeIdentifiers pairs -> do let addFromModule m (ident, mbAs) = case M.lookup ident modmap of Nothing -> fail $ show ident <> " not defined in module" Just v -> pure $ M.insert (fromMaybe ident mbAs) v m foldM addFromModule mempty pairs >>= importModule NoIdentifiers mbAs -> do let ident = fromMaybe modid mbAs addIdentifier ident (VModule ident modmap) pure VNone Include e -> do argval <- evalExpr e case argval of VString t -> do (cs, _) <- loadModule t pure $ VContent cs _ -> fail "Include requires a path" toFunction :: Monad m => Maybe Identifier -> [Param] -> Expr -> MP m Val toFunction mbname params e = do idents <- evalIdentifiers <$> getState let fn = VFunction Nothing mempty $ Function $ \arguments -> do -- set identifiers from params and arguments let showIdentifier (Identifier i) = T.unpack i let isSinkParam (SinkParam {}) = True isSinkParam _ = False let setParam as (DefaultParam ident e') = do val <- case OM.lookup ident (named as) of Nothing -> evalExpr e' Just v -> pure v addIdentifier ident val pure $ as {named = OM.delete ident (named as)} setParam as (NormalParam ident) = do case positional as of [] -> fail ("Expected parameter " <> showIdentifier ident) (x : xs) -> do addIdentifier ident x pure $ as {positional = xs} setParam _ (SinkParam {}) = fail "setParam encountered SinkParam" setParam as (DestructuringParam parts) = case positional as of [] -> fail ("Expected parameter " <> show parts) (x : xs) -> do destructuringBind addIdentifier parts x pure $ as {positional = xs} setParam as SkipParam = pure as inBlock FunctionScope $ do -- We create a closure around the identifiers defined -- where the function is defined: oldState <- getState updateState $ \st -> st {evalIdentifiers = idents} case mbname of Nothing -> pure () Just name -> addIdentifier name fn case break isSinkParam params of (befores, SinkParam mbident : afters) -> do as' <- foldM setParam arguments befores as'' <- foldM setParam as' {positional = reverse $ positional as'} (reverse afters) let as = as'' {positional = reverse $ positional as''} case mbident of Just ident -> addIdentifier ident (VArguments as) Nothing -> pure () _ -> foldM_ setParam arguments params res <- evalExpr e setState oldState pure res pure fn -- | Type of TOML configuration file used in 'findPackageEntryPoint' saved as `typst.toml` data Config = Config { package :: PackageConfig } deriving (Show, Generic) data PackageConfig = PackageConfig { entrypoint :: String } deriving (Show, Generic) -- | Derived generically from record field names instance Toml.FromValue Config where fromValue = Toml.genericFromTable -- | Derived generically from record field names instance Toml.FromValue PackageConfig where fromValue = Toml.genericFromTable findPackageEntryPoint :: Monad m => Text -> MP m FilePath findPackageEntryPoint modname = do let (namespace, rest) = break (=='/') (drop 1 $ T.unpack modname) let (name, rest') = break (==':') $ drop 1 rest let version = drop 1 rest' operations <- evalOperations <$> getState let getEnv var = do mbv <- lift $ lookupEnvVar operations var case mbv of Just v -> pure v Nothing -> fail (var <> " not defined") #ifdef __MACOS__ homeDir <- getEnv "HOME" let localDir = homeDir "Library" "Application Support" "typst" let cacheDir = homeDir "Library" "Caches" "typst" #elif __WINDOWS__ appDataDir <- getEnv "APPDATA" let localDir = appDataDir "typst" localAppDataDir <- getEnv "LOCALAPPDATA" let cacheDir = localAppDataDir "typst" #else homeDir <- getEnv "HOME" dataDir <- lift (lookupEnvVar operations "XDG_DATA_HOME") >>= maybe (pure (homeDir ".local" "share")) pure cacheDir' <- lift (lookupEnvVar operations "XDG_CACHE_HOME") >>= maybe (pure (homeDir ".cache")) pure let localDir = dataDir "typst" let cacheDir = cacheDir' "typst" #endif let subpath = "packages" namespace name version inLocal <- lift $ checkExistence operations (localDir subpath "typst.toml") tomlPath <- if inLocal then pure (localDir subpath "typst.toml") else do inCache <- lift $ checkExistence operations (cacheDir subpath "typst.toml") if inCache then pure (cacheDir subpath "typst.toml") else fail $ "Could not find package in local packages or cache. Looked in\n" ++ (localDir subpath) ++ "\n" ++ (cacheDir subpath) ++ "\nCompile with typst compile to bring the package into your local cache." -- TODO? fetch from CDN if not present in cache? tomlString <- TE.decodeUtf8 <$> lift (loadBytes operations tomlPath) case Toml.decode tomlString of Toml.Failure e -> fail (unlines ("Failure loading typst.toml" : e)) Toml.Success _warnings cfg -> -- ignores warnings like unused keys in TOML pure (replaceFileName tomlPath (entrypoint (package cfg))) loadModule :: Monad m => Text -> MP m (Seq Content, (Identifier, M.Map Identifier Val)) loadModule modname = do (fp, modid, mbPackageRoot, txt) <- if T.take 1 modname == "@" then do fp' <- findPackageEntryPoint modname operations <- evalOperations <$> getState txt <- lift $ TE.decodeUtf8 <$> loadBytes operations fp' pure ( takeFileName fp', Identifier (T.pack $ takeWhile (/= ':') . takeBaseName $ T.unpack modname), Just (takeDirectory fp'), txt ) else do let fp = T.unpack modname txt <- loadFileText fp pure ( fp, Identifier (T.pack $ takeBaseName fp), Nothing, txt ) fp' <- getPath fp -- get full path for element positions case parseTypst fp' txt of Left err -> fail $ show err Right ms -> do operations <- evalOperations <$> getState currentLocalDir <- evalLocalDir <$> getState currentPackageRoot <- evalPackageRoot <$> getState let (pkgroot , localdir) = case mbPackageRoot of Just r -> (r , takeDirectory fp) Nothing -> (currentPackageRoot, currentLocalDir takeDirectory fp) res <- lift $ runParserT ( inBlock BlockScope $ do -- add new identifiers list cs <- mconcat <$> many pContent eof s <- getState pure (cs, s) ) initialEvalState{evalOperations = operations, evalLocalDir = localdir, evalPackageRoot = pkgroot } fp ms case res of Left err' -> fail $ show err' Right (contents, st) -> case evalIdentifiers st of [] -> fail "Empty evalIdentifiers in module!" ((_, m) : _) -> pure (contents, (modid, m)) importModule :: Monad m => M.Map Identifier Val -> MP m () importModule m = updateState $ \st -> st { evalIdentifiers = case evalIdentifiers st of [] -> [(BlockScope, m)] ((s, i) : is) -> (s, m <> i) : is } evalLiteral :: Literal -> Val evalLiteral lit = case lit of String t -> VString t Boolean b -> VBoolean b Float x -> VFloat x Int i -> VInteger i Numeric x unit -> case unit of Fr -> VFraction x Percent -> VRatio (toRational x / 100) Deg -> VAngle x Rad -> VAngle (x * (180 / pi)) Pt -> VLength (LExact x LPt) Em -> VLength (LExact x LEm) Mm -> VLength (LExact x LMm) Cm -> VLength (LExact x LCm) In -> VLength (LExact x LIn) None -> VNone Auto -> VAuto toArguments :: Monad m => [Arg] -> MP m Arguments toArguments = foldM addArg (Arguments mempty OM.empty) where addArg args (KeyValArg ident e) = do val <- evalExpr e pure $ args {named = named args OM.|> (ident, val)} addArg args (NormalArg e) = do val <- evalExpr e pure $ args {positional = positional args ++ [val]} addArg args (ArrayArg rows) = do let pRow = fmap (VArray . V.fromList) . mapM (fmap VContent . pInnerContents . (: [])) vals <- mapM pRow rows pure $ args {positional = positional args ++ vals} addArg args (SpreadArg e) = do val <- evalExpr e case val of VNone -> pure mempty VArguments args' -> pure $ args <> args' VDict m -> pure $ args <> Arguments {positional = mempty, named = m} VArray v -> pure $ args <> Arguments {positional = V.toList v, named = OM.empty} _ -> fail $ "spread requires an argument value, got " <> show val addArg args (BlockArg ms) = do val <- pInnerContents ms pure $ args {positional = positional args ++ [VContent val]} addIdentifier :: Monad m => Identifier -> Val -> MP m () addIdentifier ident val = do identifiers <- evalIdentifiers <$> getState case identifiers of [] -> fail "Empty evalIdentifiers" ((s, i) : is) -> updateState $ \st -> st { evalIdentifiers = (s, M.insert ident val i) : is } updateIdentifier :: Monad m => Identifier -> Val -> MP m () updateIdentifier ident val = do let go (True, is) (s, m) = pure (True, (s, m) : is) go (False, is) (s, m) = case M.lookup ident m of Nothing | s == FunctionScope -> fail $ show ident <> " not defined in scope" | otherwise -> pure (False, (s, m) : is) Just _ -> pure (True, (s, M.adjust (const val) ident m) : is) (finished, newmaps) <- getState >>= foldM go (False, []) . evalIdentifiers if finished then updateState $ \st -> st {evalIdentifiers = reverse newmaps} else fail $ show ident <> " not defined" inBlock :: Monad m => Scope -> MP m a -> MP m a inBlock scope pa = do oldStyles <- evalStyles <$> getState -- add a new identifiers map updateState $ \st -> st { evalIdentifiers = (scope, mempty) : evalIdentifiers st } result <- pa updateState $ \st -> st { evalIdentifiers = drop 1 (evalIdentifiers st), evalStyles = oldStyles } pure result updateExpression :: Monad m => Expr -> Val -> MP m () updateExpression (FuncCall (FieldAccess (Ident (Identifier "first")) e') []) val = updateExpression ( FuncCall (FieldAccess (Ident (Identifier "at")) e') [NormalArg (Literal (Int 0))] ) val updateExpression (FuncCall (FieldAccess (Ident (Identifier "last")) e') []) val = updateExpression ( FuncCall (FieldAccess (Ident (Identifier "at")) e') [NormalArg (Literal (Int (-1)))] ) val updateExpression (FieldAccess (Ident (Identifier fld)) e') val = updateExpression' True e' (Literal (String fld)) val -- see #26 updateExpression (Ident i) val = updateIdentifier i val updateExpression (FuncCall (FieldAccess (Ident (Identifier "at")) e') [NormalArg arg]) val = updateExpression' False e' arg val updateExpression e _ = fail $ "Cannot update expression " <> show e updateExpression' :: Monad m => Bool -> Expr -> Expr -> Val -> MP m () updateExpression' allowNewIndices e arg val = do container <- evalExpr e idx <- evalExpr arg case container of VArray v -> case idx of VInteger i -> let i' = fromIntegral i in case v V.!? i' of Nothing | not allowNewIndices -> fail $ "Vector does not contain index " <> show i' _ -> updateExpression e $ VArray $ v V.// [(i', val)] _ -> fail $ "Cannot index array with " <> show idx VDict d -> case idx of VString fld -> case OM.lookup (Identifier fld) d of Nothing | not allowNewIndices -> fail $ "Dictionary does not contain key " <> show fld _ -> updateExpression e $ VDict $ OM.alter ( \case Just _ -> Just val Nothing -> Just val ) (Identifier fld) d _ -> fail $ "Cannot index dictionary with " <> show idx _ -> fail $ "Cannot update expression " <> show e toSelector :: Monad m => Val -> MP m Selector toSelector (VSelector s) = pure s toSelector (VFunction (Just name) _ _) = pure $ SelectElement name [] toSelector (VString t) = pure $ SelectString t toSelector (VRegex re) = pure $ SelectRegex re toSelector (VLabel t) = pure $ SelectLabel t toSelector (VSymbol (Symbol t _ _)) = pure $ SelectString t toSelector v = fail $ "could not convert " <> show v <> " to selector" typst-0.8.0.2/src/Typst/MathClass.hs0000644000000000000000000021764507346545000015377 0ustar0000000000000000-- https://www.unicode.org/Public/math/revision-15/MathClass-15.txt module Typst.MathClass ( MathClass(..), mathClassOf ) where import qualified Data.Map as M import Data.Maybe (fromMaybe) data MathClass = Normal | Opening | Closing | Fence | Vary | Punctuation | Binary | Unary | Relation | Alphabetic | Diacritic | Large | GlyphPart | Space | Special deriving (Show, Eq, Ord, Bounded) mathClassOf :: Char -> MathClass mathClassOf c = fromMaybe Normal $ M.lookup c mathClassMap mathClassMap :: M.Map Char MathClass mathClassMap = M.fromList [ ('\x20', Space), ('\x21', Normal), ('\x23', Normal), ('\x24', Normal), ('\x25', Normal), ('\x26', Normal), ('\x28', Opening), ('\x29', Closing), ('\x2a', Normal), ('\x2b', Vary), ('\x2c', Punctuation), ('\x2d', Normal), ('\x2e', Punctuation), ('\x2f', Binary), ('\x30', Normal), ('\x31', Normal), ('\x32', Normal), ('\x33', Normal), ('\x34', Normal), ('\x35', Normal), ('\x36', Normal), ('\x37', Normal), ('\x38', Normal), ('\x39', Normal), ('\x3a', Punctuation), ('\x3b', Punctuation), ('\x3c', Relation), ('\x3d', Relation), ('\x3e', Relation), ('\x3f', Punctuation), ('\x40', Normal), ('\x41', Alphabetic), ('\x42', Alphabetic), ('\x43', Alphabetic), ('\x44', Alphabetic), ('\x45', Alphabetic), ('\x46', Alphabetic), ('\x47', Alphabetic), ('\x48', Alphabetic), ('\x49', Alphabetic), ('\x4a', Alphabetic), ('\x4b', Alphabetic), ('\x4c', Alphabetic), ('\x4d', Alphabetic), ('\x4e', Alphabetic), ('\x4f', Alphabetic), ('\x50', Alphabetic), ('\x51', Alphabetic), ('\x52', Alphabetic), ('\x53', Alphabetic), ('\x54', Alphabetic), ('\x55', Alphabetic), ('\x56', Alphabetic), ('\x57', Alphabetic), ('\x58', Alphabetic), ('\x59', Alphabetic), ('\x5a', Alphabetic), ('\x5b', Opening), ('\x5c', Binary), ('\x5d', Closing), ('\x5e', Normal), ('\x5f', Normal), ('\x60', Diacritic), ('\x61', Alphabetic), ('\x62', Alphabetic), ('\x63', Alphabetic), ('\x64', Alphabetic), ('\x65', Alphabetic), ('\x66', Alphabetic), ('\x67', Alphabetic), ('\x68', Alphabetic), ('\x69', Alphabetic), ('\x6a', Alphabetic), ('\x6b', Alphabetic), ('\x6c', Alphabetic), ('\x6d', Alphabetic), ('\x6e', Alphabetic), ('\x6f', Alphabetic), ('\x70', Alphabetic), ('\x71', Alphabetic), ('\x72', Alphabetic), ('\x73', Alphabetic), ('\x74', Alphabetic), ('\x75', Alphabetic), ('\x76', Alphabetic), ('\x77', Alphabetic), ('\x78', Alphabetic), ('\x79', Alphabetic), ('\x7a', Alphabetic), ('\x7b', Opening), ('\x7c', Fence), ('\x7d', Closing), ('\x7e', Normal), ('\xa0', Space), ('\xa1', Punctuation), ('\xa2', Normal), ('\xa3', Normal), ('\xa4', Normal), ('\xa5', Normal), ('\xa6', Normal), ('\xa7', Normal), ('\xa8', Diacritic), ('\xac', Unary), ('\xaf', Diacritic), ('\xb0', Normal), ('\xb1', Vary), ('\xb2', Normal), ('\xb3', Normal), ('\xb4', Normal), ('\xb5', Normal), ('\xb6', Normal), ('\xb7', Binary), ('\xb9', Normal), ('\xbc', Normal), ('\xbd', Normal), ('\xbe', Normal), ('\xbf', Punctuation), ('\xd7', Binary), ('\xf7', Binary), ('\x131', Alphabetic), ('\x237', Alphabetic), ('\x2c6', Diacritic), ('\x2c7', Diacritic), ('\x2d8', Diacritic), ('\x2d9', Diacritic), ('\x2da', Diacritic), ('\x2dc', Diacritic), ('\x300', Diacritic), ('\x301', Diacritic), ('\x302', Diacritic), ('\x303', Diacritic), ('\x304', Diacritic), ('\x305', Diacritic), ('\x306', Diacritic), ('\x307', Diacritic), ('\x308', Diacritic), ('\x30a', Diacritic), ('\x30c', Diacritic), ('\x311', Diacritic), ('\x323', Diacritic), ('\x32c', Diacritic), ('\x32d', Diacritic), ('\x32e', Diacritic), ('\x32f', Diacritic), ('\x330', Diacritic), ('\x331', Diacritic), ('\x332', Diacritic), ('\x333', Diacritic), ('\x338', Diacritic), ('\x33a', Diacritic), ('\x33f', Diacritic), ('\x346', Diacritic), ('\x391', Alphabetic), ('\x392', Alphabetic), ('\x393', Alphabetic), ('\x394', Alphabetic), ('\x395', Alphabetic), ('\x396', Alphabetic), ('\x397', Alphabetic), ('\x398', Alphabetic), ('\x399', Alphabetic), ('\x39a', Alphabetic), ('\x39b', Alphabetic), ('\x39c', Alphabetic), ('\x39d', Alphabetic), ('\x39e', Alphabetic), ('\x39f', Alphabetic), ('\x3a0', Alphabetic), ('\x3a1', Alphabetic), ('\x3a3', Alphabetic), ('\x3a4', Alphabetic), ('\x3a6', Alphabetic), ('\x3a7', Alphabetic), ('\x3a8', Alphabetic), ('\x3a9', Alphabetic), ('\x3b1', Alphabetic), ('\x3b2', Alphabetic), ('\x3b3', Alphabetic), ('\x3b4', Alphabetic), ('\x3b5', Alphabetic), ('\x3b6', Alphabetic), ('\x3b7', Alphabetic), ('\x3b8', Alphabetic), ('\x3b9', Alphabetic), ('\x3ba', Alphabetic), ('\x3bb', Alphabetic), ('\x3bc', Alphabetic), ('\x3bd', Alphabetic), ('\x3be', Alphabetic), ('\x3bf', Alphabetic), ('\x3c0', Alphabetic), ('\x3c1', Alphabetic), ('\x3c3', Alphabetic), ('\x3c4', Alphabetic), ('\x3c5', Alphabetic), ('\x3c6', Alphabetic), ('\x3c7', Alphabetic), ('\x3c8', Alphabetic), ('\x3c9', Alphabetic), ('\x3d0', Alphabetic), ('\x3d1', Alphabetic), ('\x3d2', Alphabetic), ('\x3d5', Alphabetic), ('\x3d6', Alphabetic), ('\x3d8', Normal), ('\x3d9', Normal), ('\x3da', Alphabetic), ('\x3db', Alphabetic), ('\x3dc', Alphabetic), ('\x3dd', Alphabetic), ('\x3e0', Alphabetic), ('\x3e1', Alphabetic), ('\x3f0', Alphabetic), ('\x3f1', Alphabetic), ('\x3f4', Alphabetic), ('\x3f5', Alphabetic), ('\x3f6', Normal), ('\x428', Alphabetic), ('\x606', Large), ('\x607', Large), ('\x608', Alphabetic), ('\x2000', Space), ('\x2001', Space), ('\x2002', Space), ('\x2003', Space), ('\x2004', Space), ('\x2005', Space), ('\x2006', Space), ('\x2007', Space), ('\x2009', Space), ('\x200a', Space), ('\x200b', Space), ('\x2010', Punctuation), ('\x2012', Punctuation), ('\x2013', Punctuation), ('\x2014', Punctuation), ('\x2016', Fence), ('\x2020', Relation), ('\x2021', Relation), ('\x2022', Binary), ('\x2026', Normal), ('\x2032', Normal), ('\x2033', Normal), ('\x2034', Normal), ('\x2035', Normal), ('\x2036', Normal), ('\x2037', Normal), ('\x203b', Normal), ('\x203c', Normal), ('\x2040', Binary), ('\x2044', Binary), ('\x204e', Binary), ('\x204f', Relation), ('\x2050', Relation), ('\x2051', Normal), ('\x2052', Normal), ('\x2057', Normal), ('\x205f', Space), ('\x2061', Binary), ('\x2062', Binary), ('\x2063', Punctuation), ('\x2064', Special), ('\x207a', Normal), ('\x207b', Normal), ('\x207c', Normal), ('\x207d', Normal), ('\x207e', Normal), ('\x208a', Normal), ('\x208b', Normal), ('\x208c', Normal), ('\x208d', Normal), ('\x208e', Normal), ('\x20d0', Diacritic), ('\x20d1', Diacritic), ('\x20d2', Diacritic), ('\x20d3', Special), ('\x20d4', Diacritic), ('\x20d5', Diacritic), ('\x20d6', Diacritic), ('\x20d7', Diacritic), ('\x20d8', Diacritic), ('\x20d9', Diacritic), ('\x20da', Diacritic), ('\x20db', Diacritic), ('\x20dc', Diacritic), ('\x20dd', Diacritic), ('\x20de', Diacritic), ('\x20df', Diacritic), ('\x20e1', Diacritic), ('\x20e4', Diacritic), ('\x20e5', Diacritic), ('\x20e6', Diacritic), ('\x20e7', Diacritic), ('\x20e8', Diacritic), ('\x20e9', Diacritic), ('\x20ea', Diacritic), ('\x20eb', Diacritic), ('\x20ec', Diacritic), ('\x20ed', Diacritic), ('\x20ee', Diacritic), ('\x20ef', Diacritic), ('\x2102', Alphabetic), ('\x2107', Normal), ('\x210a', Alphabetic), ('\x210b', Alphabetic), ('\x210c', Alphabetic), ('\x210d', Alphabetic), ('\x210e', Normal), ('\x210f', Normal), ('\x2110', Alphabetic), ('\x2111', Alphabetic), ('\x2112', Alphabetic), ('\x2113', Alphabetic), ('\x2115', Alphabetic), ('\x2118', Alphabetic), ('\x2119', Alphabetic), ('\x211a', Alphabetic), ('\x211b', Alphabetic), ('\x211c', Alphabetic), ('\x211d', Alphabetic), ('\x2124', Alphabetic), ('\x2126', Normal), ('\x2127', Normal), ('\x2128', Alphabetic), ('\x2129', Normal), ('\x212b', Alphabetic), ('\x212c', Alphabetic), ('\x212d', Alphabetic), ('\x212f', Alphabetic), ('\x2130', Alphabetic), ('\x2131', Alphabetic), ('\x2132', Normal), ('\x2133', Alphabetic), ('\x2134', Alphabetic), ('\x2135', Alphabetic), ('\x2136', Alphabetic), ('\x2137', Alphabetic), ('\x2138', Alphabetic), ('\x213c', Alphabetic), ('\x213d', Alphabetic), ('\x213e', Normal), ('\x213f', Alphabetic), ('\x2140', Large), ('\x2141', Normal), ('\x2142', Normal), ('\x2143', Normal), ('\x2144', Normal), ('\x2145', Normal), ('\x2146', Normal), ('\x2147', Normal), ('\x2148', Normal), ('\x2149', Normal), ('\x214b', Normal), ('\x2190', Relation), ('\x2191', Relation), ('\x2192', Relation), ('\x2193', Relation), ('\x2194', Relation), ('\x2195', Relation), ('\x2196', Relation), ('\x2197', Relation), ('\x2198', Relation), ('\x2199', Relation), ('\x219a', Relation), ('\x219b', Relation), ('\x219c', Relation), ('\x219d', Relation), ('\x219e', Relation), ('\x219f', Relation), ('\x21a0', Relation), ('\x21a1', Relation), ('\x21a2', Relation), ('\x21a3', Relation), ('\x21a4', Relation), ('\x21a5', Relation), ('\x21a6', Relation), ('\x21a7', Relation), ('\x21a8', Relation), ('\x21a9', Relation), ('\x21aa', Relation), ('\x21ab', Relation), ('\x21ac', Relation), ('\x21ad', Relation), ('\x21ae', Relation), ('\x21af', Relation), ('\x21b0', Relation), ('\x21b1', Relation), ('\x21b2', Relation), ('\x21b3', Relation), ('\x21b6', Relation), ('\x21b7', Relation), ('\x21ba', Relation), ('\x21bb', Relation), ('\x21bc', Relation), ('\x21bd', Relation), ('\x21be', Relation), ('\x21bf', Relation), ('\x21c0', Relation), ('\x21c1', Relation), ('\x21c2', Relation), ('\x21c3', Relation), ('\x21c4', Relation), ('\x21c5', Relation), ('\x21c6', Relation), ('\x21c7', Relation), ('\x21c8', Relation), ('\x21c9', Relation), ('\x21ca', Relation), ('\x21cb', Relation), ('\x21cc', Relation), ('\x21cd', Relation), ('\x21ce', Relation), ('\x21cf', Relation), ('\x21d0', Relation), ('\x21d1', Relation), ('\x21d2', Relation), ('\x21d3', Relation), ('\x21d4', Relation), ('\x21d5', Relation), ('\x21d6', Relation), ('\x21d7', Relation), ('\x21d8', Relation), ('\x21d9', Relation), ('\x21da', Relation), ('\x21db', Relation), ('\x21dc', Relation), ('\x21dd', Relation), ('\x21de', Relation), ('\x21df', Relation), ('\x21e0', Relation), ('\x21e1', Relation), ('\x21e2', Relation), ('\x21e3', Relation), ('\x21e4', Relation), ('\x21e5', Relation), ('\x21e6', Relation), ('\x21e7', Relation), ('\x21e8', Relation), ('\x21e9', Relation), ('\x21ea', Relation), ('\x21eb', Relation), ('\x21ec', Relation), ('\x21ed', Relation), ('\x21ee', Relation), ('\x21ef', Relation), ('\x21f0', Relation), ('\x21f1', Relation), ('\x21f2', Relation), ('\x21f3', Relation), ('\x21f4', Relation), ('\x21f5', Relation), ('\x21f6', Relation), ('\x21f7', Relation), ('\x21f8', Relation), ('\x21f9', Relation), ('\x21fa', Relation), ('\x21fb', Relation), ('\x21fc', Relation), ('\x21fd', Relation), ('\x21fe', Relation), ('\x21ff', Relation), ('\x2200', Unary), ('\x2201', Unary), ('\x2202', Normal), ('\x2203', Unary), ('\x2204', Unary), ('\x2205', Normal), ('\x2206', Unary), ('\x2207', Unary), ('\x2208', Relation), ('\x2209', Relation), ('\x220a', Relation), ('\x220b', Relation), ('\x220c', Relation), ('\x220d', Relation), ('\x220e', Normal), ('\x220f', Large), ('\x2210', Large), ('\x2211', Large), ('\x2212', Vary), ('\x2213', Vary), ('\x2214', Binary), ('\x2215', Binary), ('\x2216', Binary), ('\x2217', Binary), ('\x2218', Binary), ('\x2219', Binary), ('\x221a', Large), ('\x221b', Large), ('\x221c', Large), ('\x221d', Relation), ('\x221e', Normal), ('\x221f', Normal), ('\x2220', Normal), ('\x2221', Normal), ('\x2222', Normal), ('\x2223', Relation), ('\x2224', Relation), ('\x2225', Relation), ('\x2226', Relation), ('\x2227', Binary), ('\x2228', Binary), ('\x2229', Binary), ('\x222a', Binary), ('\x222b', Large), ('\x222c', Large), ('\x222d', Large), ('\x222e', Large), ('\x222f', Large), ('\x2230', Large), ('\x2231', Large), ('\x2232', Large), ('\x2233', Large), ('\x2234', Relation), ('\x2235', Relation), ('\x2236', Relation), ('\x2237', Relation), ('\x2238', Binary), ('\x2239', Relation), ('\x223a', Relation), ('\x223b', Relation), ('\x223c', Relation), ('\x223d', Relation), ('\x223e', Binary), ('\x223f', Normal), ('\x2240', Binary), ('\x2241', Relation), ('\x2242', Relation), ('\x2243', Relation), ('\x2244', Relation), ('\x2245', Relation), ('\x2246', Relation), ('\x2247', Relation), ('\x2248', Relation), ('\x2249', Relation), ('\x224a', Relation), ('\x224b', Relation), ('\x224c', Relation), ('\x224d', Relation), ('\x224e', Relation), ('\x224f', Relation), ('\x2250', Relation), ('\x2251', Relation), ('\x2252', Relation), ('\x2253', Relation), ('\x2254', Relation), ('\x2255', Relation), ('\x2256', Relation), ('\x2257', Relation), ('\x2258', Relation), ('\x2259', Relation), ('\x225a', Relation), ('\x225b', Relation), ('\x225c', Relation), ('\x225d', Relation), ('\x225e', Relation), ('\x225f', Relation), ('\x2260', Relation), ('\x2261', Relation), ('\x2262', Relation), ('\x2263', Relation), ('\x2264', Relation), ('\x2265', Relation), ('\x2266', Relation), ('\x2267', Relation), ('\x2268', Relation), ('\x2269', Relation), ('\x226a', Relation), ('\x226b', Relation), ('\x226c', Relation), ('\x226d', Relation), ('\x226e', Relation), ('\x226f', Relation), ('\x2270', Relation), ('\x2271', Relation), ('\x2272', Relation), ('\x2273', Relation), ('\x2274', Relation), ('\x2275', Relation), ('\x2276', Relation), ('\x2277', Relation), ('\x2278', Relation), ('\x2279', Relation), ('\x227a', Relation), ('\x227b', Relation), ('\x227c', Relation), ('\x227d', Relation), ('\x227e', Relation), ('\x227f', Relation), ('\x2280', Relation), ('\x2281', Relation), ('\x2282', Relation), ('\x2283', Relation), ('\x2284', Relation), ('\x2285', Relation), ('\x2286', Relation), ('\x2287', Relation), ('\x2288', Relation), ('\x2289', Relation), ('\x228a', Relation), ('\x228b', Relation), ('\x228c', Binary), ('\x228d', Binary), ('\x228e', Binary), ('\x228f', Relation), ('\x2290', Relation), ('\x2291', Relation), ('\x2292', Relation), ('\x2293', Binary), ('\x2294', Binary), ('\x2295', Binary), ('\x2296', Binary), ('\x2297', Binary), ('\x2298', Binary), ('\x2299', Binary), ('\x229a', Binary), ('\x229b', Binary), ('\x229c', Binary), ('\x229d', Binary), ('\x229e', Binary), ('\x229f', Binary), ('\x22a0', Binary), ('\x22a1', Binary), ('\x22a2', Relation), ('\x22a3', Relation), ('\x22a4', Normal), ('\x22a5', Relation), ('\x22a6', Relation), ('\x22a7', Relation), ('\x22a8', Relation), ('\x22a9', Relation), ('\x22aa', Relation), ('\x22ab', Relation), ('\x22ac', Relation), ('\x22ad', Relation), ('\x22ae', Relation), ('\x22af', Relation), ('\x22b0', Relation), ('\x22b1', Relation), ('\x22b2', Relation), ('\x22b3', Relation), ('\x22b4', Relation), ('\x22b5', Relation), ('\x22b6', Relation), ('\x22b7', Relation), ('\x22b8', Relation), ('\x22b9', Binary), ('\x22ba', Binary), ('\x22bb', Binary), ('\x22bc', Binary), ('\x22bd', Binary), ('\x22be', Normal), ('\x22bf', Normal), ('\x22c0', Large), ('\x22c1', Large), ('\x22c2', Large), ('\x22c3', Large), ('\x22c4', Binary), ('\x22c5', Binary), ('\x22c6', Binary), ('\x22c7', Binary), ('\x22c8', Relation), ('\x22c9', Binary), ('\x22ca', Binary), ('\x22cb', Binary), ('\x22cc', Binary), ('\x22cd', Relation), ('\x22ce', Binary), ('\x22cf', Binary), ('\x22d0', Relation), ('\x22d1', Relation), ('\x22d2', Binary), ('\x22d3', Binary), ('\x22d4', Relation), ('\x22d5', Relation), ('\x22d6', Relation), ('\x22d7', Relation), ('\x22d8', Relation), ('\x22d9', Relation), ('\x22da', Relation), ('\x22db', Relation), ('\x22dc', Relation), ('\x22dd', Relation), ('\x22de', Relation), ('\x22df', Relation), ('\x22e0', Relation), ('\x22e1', Relation), ('\x22e2', Relation), ('\x22e3', Relation), ('\x22e4', Relation), ('\x22e5', Relation), ('\x22e6', Relation), ('\x22e7', Relation), ('\x22e8', Relation), ('\x22e9', Relation), ('\x22ea', Relation), ('\x22eb', Relation), ('\x22ec', Relation), ('\x22ed', Relation), ('\x22ee', Relation), ('\x22ef', Relation), ('\x22f0', Relation), ('\x22f1', Relation), ('\x22f2', Relation), ('\x22f3', Relation), ('\x22f4', Relation), ('\x22f5', Relation), ('\x22f6', Relation), ('\x22f7', Relation), ('\x22f8', Relation), ('\x22f9', Relation), ('\x22fa', Relation), ('\x22fb', Relation), ('\x22fc', Relation), ('\x22fd', Relation), ('\x22fe', Relation), ('\x22ff', Relation), ('\x2300', Normal), ('\x2302', Normal), ('\x2305', Binary), ('\x2306', Binary), ('\x2308', Opening), ('\x2309', Closing), ('\x230a', Opening), ('\x230b', Closing), ('\x2310', Normal), ('\x2311', Normal), ('\x2319', Normal), ('\x231c', Opening), ('\x231d', Closing), ('\x231e', Opening), ('\x231f', Closing), ('\x2320', GlyphPart), ('\x2321', GlyphPart), ('\x2322', Relation), ('\x2323', Relation), ('\x2336', Normal), ('\x233d', Binary), ('\x233f', Relation), ('\x237c', Relation), ('\x2394', Normal), ('\x239b', GlyphPart), ('\x239c', GlyphPart), ('\x239d', GlyphPart), ('\x239e', GlyphPart), ('\x239f', GlyphPart), ('\x23a0', GlyphPart), ('\x23a1', GlyphPart), ('\x23a2', GlyphPart), ('\x23a3', GlyphPart), ('\x23a4', GlyphPart), ('\x23a5', GlyphPart), ('\x23a6', GlyphPart), ('\x23a7', GlyphPart), ('\x23a8', GlyphPart), ('\x23a9', GlyphPart), ('\x23aa', GlyphPart), ('\x23ab', GlyphPart), ('\x23ac', GlyphPart), ('\x23ad', GlyphPart), ('\x23ae', GlyphPart), ('\x23af', GlyphPart), ('\x23b0', Relation), ('\x23b1', Relation), ('\x23b2', GlyphPart), ('\x23b3', GlyphPart), ('\x23b4', Normal), ('\x23b5', Normal), ('\x23b6', Normal), ('\x23b7', GlyphPart), ('\x23d0', GlyphPart), ('\x23dc', Normal), ('\x23dd', Normal), ('\x23de', Normal), ('\x23df', Normal), ('\x23e0', Normal), ('\x23e1', Normal), ('\x23e2', Normal), ('\x23e3', Normal), ('\x23e4', Normal), ('\x23e5', Normal), ('\x23e6', Normal), ('\x23e7', Normal), ('\x24c8', Normal), ('\x25a0', Normal), ('\x25a1', Normal), ('\x25aa', Normal), ('\x25ab', Normal), ('\x25ad', Normal), ('\x25ae', Normal), ('\x25af', Normal), ('\x25b0', Normal), ('\x25b1', Normal), ('\x25b2', Binary), ('\x25b3', Binary), ('\x25b4', Binary), ('\x25b5', Binary), ('\x25b6', Binary), ('\x25b7', Binary), ('\x25b8', Binary), ('\x25b9', Binary), ('\x25bc', Binary), ('\x25bd', Binary), ('\x25be', Binary), ('\x25bf', Binary), ('\x25c0', Binary), ('\x25c1', Binary), ('\x25c2', Binary), ('\x25c3', Binary), ('\x25c4', Binary), ('\x25c5', Binary), ('\x25c6', Normal), ('\x25c7', Normal), ('\x25c8', Normal), ('\x25c9', Normal), ('\x25ca', Binary), ('\x25cb', Binary), ('\x25ce', Normal), ('\x25cf', Normal), ('\x25d0', Normal), ('\x25d1', Normal), ('\x25d2', Normal), ('\x25d3', Normal), ('\x25d6', Normal), ('\x25d7', Normal), ('\x25e2', Normal), ('\x25e3', Normal), ('\x25e4', Normal), ('\x25e5', Normal), ('\x25e6', Binary), ('\x25e7', Normal), ('\x25e8', Normal), ('\x25e9', Normal), ('\x25ea', Normal), ('\x25eb', Binary), ('\x25ec', Binary), ('\x25ef', Normal), ('\x25f8', Binary), ('\x25f9', Binary), ('\x25fa', Binary), ('\x25fb', Binary), ('\x25fc', Binary), ('\x25fd', Binary), ('\x25fe', Binary), ('\x25ff', Binary), ('\x2605', Binary), ('\x2606', Binary), ('\x2609', Normal), ('\x260c', Normal), ('\x263d', Normal), ('\x263e', Normal), ('\x263f', Normal), ('\x2640', Normal), ('\x2641', Normal), ('\x2642', Normal), ('\x2643', Normal), ('\x2644', Normal), ('\x2646', Normal), ('\x2647', Normal), ('\x2648', Normal), ('\x2649', Normal), ('\x2660', Normal), ('\x2661', Normal), ('\x2662', Normal), ('\x2663', Normal), ('\x2664', Normal), ('\x2665', Normal), ('\x2666', Normal), ('\x2667', Normal), ('\x2669', Normal), ('\x266d', Normal), ('\x266e', Normal), ('\x266f', Normal), ('\x2680', Normal), ('\x2681', Normal), ('\x2682', Normal), ('\x2683', Normal), ('\x2684', Normal), ('\x2685', Normal), ('\x2686', Normal), ('\x2687', Normal), ('\x2688', Normal), ('\x2689', Normal), ('\x26aa', Normal), ('\x26ab', Normal), ('\x26ac', Normal), ('\x26b2', Normal), ('\x2713', Normal), ('\x2717', Normal), ('\x2720', Normal), ('\x272a', Normal), ('\x2736', Normal), ('\x2772', Opening), ('\x2773', Closing), ('\x27c0', Normal), ('\x27c1', Normal), ('\x27c2', Relation), ('\x27c3', Relation), ('\x27c4', Relation), ('\x27c5', Relation), ('\x27c6', Relation), ('\x27c7', Relation), ('\x27c8', Relation), ('\x27c9', Relation), ('\x27ca', Relation), ('\x27cb', Relation), ('\x27cc', Large), ('\x27cd', Relation), ('\x27ce', Binary), ('\x27cf', Binary), ('\x27d0', Normal), ('\x27d1', Binary), ('\x27d2', Relation), ('\x27d3', Relation), ('\x27d4', Relation), ('\x27d5', Large), ('\x27d6', Large), ('\x27d7', Large), ('\x27d8', Large), ('\x27d9', Large), ('\x27da', Relation), ('\x27db', Relation), ('\x27dc', Relation), ('\x27dd', Relation), ('\x27de', Relation), ('\x27df', Relation), ('\x27e0', Binary), ('\x27e1', Binary), ('\x27e2', Binary), ('\x27e3', Binary), ('\x27e4', Binary), ('\x27e5', Binary), ('\x27e6', Opening), ('\x27e7', Closing), ('\x27e8', Opening), ('\x27e9', Closing), ('\x27ea', Opening), ('\x27eb', Closing), ('\x27ec', Opening), ('\x27ed', Closing), ('\x27ee', Opening), ('\x27ef', Closing), ('\x27f0', Relation), ('\x27f1', Relation), ('\x27f2', Relation), ('\x27f3', Relation), ('\x27f4', Relation), ('\x27f5', Relation), ('\x27f6', Relation), ('\x27f7', Relation), ('\x27f8', Relation), ('\x27f9', Relation), ('\x27fa', Relation), ('\x27fb', Relation), ('\x27fc', Relation), ('\x27fd', Relation), ('\x27fe', Relation), ('\x27ff', Relation), ('\x2900', Relation), ('\x2901', Relation), ('\x2902', Relation), ('\x2903', Relation), ('\x2904', Relation), ('\x2905', Relation), ('\x2906', Relation), ('\x2907', Relation), ('\x2908', Relation), ('\x2909', Relation), ('\x290a', Relation), ('\x290b', Relation), ('\x290c', Relation), ('\x290d', Relation), ('\x290e', Relation), ('\x290f', Relation), ('\x2910', Relation), ('\x2911', Relation), ('\x2912', Relation), ('\x2913', Relation), ('\x2914', Relation), ('\x2915', Relation), ('\x2916', Relation), ('\x2917', Relation), ('\x2918', Relation), ('\x2919', Relation), ('\x291a', Relation), ('\x291b', Relation), ('\x291c', Relation), ('\x291d', Relation), ('\x291e', Relation), ('\x291f', Relation), ('\x2920', Relation), ('\x2921', Relation), ('\x2922', Relation), ('\x2923', Relation), ('\x2924', Relation), ('\x2925', Relation), ('\x2926', Relation), ('\x2927', Relation), ('\x2928', Relation), ('\x2929', Relation), ('\x292a', Relation), ('\x292b', Relation), ('\x292c', Relation), ('\x292d', Relation), ('\x292e', Relation), ('\x292f', Relation), ('\x2930', Relation), ('\x2931', Relation), ('\x2932', Relation), ('\x2933', Relation), ('\x2934', Relation), ('\x2935', Relation), ('\x2936', Relation), ('\x2937', Relation), ('\x2938', Relation), ('\x2939', Relation), ('\x293a', Relation), ('\x293b', Relation), ('\x293c', Relation), ('\x293d', Relation), ('\x293e', Relation), ('\x293f', Relation), ('\x2940', Relation), ('\x2941', Relation), ('\x2942', Relation), ('\x2943', Relation), ('\x2944', Relation), ('\x2945', Relation), ('\x2946', Relation), ('\x2947', Relation), ('\x2948', Relation), ('\x2949', Relation), ('\x294a', Relation), ('\x294b', Relation), ('\x294c', Relation), ('\x294d', Relation), ('\x294e', Relation), ('\x294f', Relation), ('\x2950', Relation), ('\x2951', Relation), ('\x2952', Relation), ('\x2953', Relation), ('\x2954', Relation), ('\x2955', Relation), ('\x2956', Relation), ('\x2957', Relation), ('\x2958', Relation), ('\x2959', Relation), ('\x295a', Relation), ('\x295b', Relation), ('\x295c', Relation), ('\x295d', Relation), ('\x295e', Relation), ('\x295f', Relation), ('\x2960', Relation), ('\x2961', Relation), ('\x2962', Relation), ('\x2963', Relation), ('\x2964', Relation), ('\x2965', Relation), ('\x2966', Relation), ('\x2967', Relation), ('\x2968', Relation), ('\x2969', Relation), ('\x296a', Relation), ('\x296b', Relation), ('\x296c', Relation), ('\x296d', Relation), ('\x296e', Relation), ('\x296f', Relation), ('\x2970', Relation), ('\x2971', Relation), ('\x2972', Relation), ('\x2973', Relation), ('\x2974', Relation), ('\x2975', Relation), ('\x2976', Relation), ('\x2977', Relation), ('\x2978', Relation), ('\x2979', Relation), ('\x297a', Relation), ('\x297b', Relation), ('\x297c', Relation), ('\x297d', Relation), ('\x297e', Relation), ('\x297f', Relation), ('\x2980', Fence), ('\x2981', Normal), ('\x2982', Fence), ('\x2983', Opening), ('\x2984', Closing), ('\x2985', Opening), ('\x2986', Closing), ('\x2987', Opening), ('\x2988', Closing), ('\x2989', Opening), ('\x298a', Closing), ('\x298b', Opening), ('\x298c', Closing), ('\x298d', Opening), ('\x298e', Closing), ('\x298f', Opening), ('\x2990', Closing), ('\x2991', Opening), ('\x2992', Closing), ('\x2993', Opening), ('\x2994', Closing), ('\x2995', Opening), ('\x2996', Closing), ('\x2997', Opening), ('\x2998', Closing), ('\x2999', Fence), ('\x299a', Fence), ('\x299b', Normal), ('\x299c', Normal), ('\x299d', Normal), ('\x299e', Normal), ('\x299f', Normal), ('\x29a0', Normal), ('\x29a1', Normal), ('\x29a2', Normal), ('\x29a3', Normal), ('\x29a4', Normal), ('\x29a5', Normal), ('\x29a6', Normal), ('\x29a7', Normal), ('\x29a8', Normal), ('\x29a9', Normal), ('\x29aa', Normal), ('\x29ab', Normal), ('\x29ac', Normal), ('\x29ad', Normal), ('\x29ae', Normal), ('\x29af', Normal), ('\x29b0', Normal), ('\x29b1', Normal), ('\x29b2', Normal), ('\x29b3', Normal), ('\x29b4', Normal), ('\x29b5', Normal), ('\x29b6', Binary), ('\x29b7', Binary), ('\x29b8', Binary), ('\x29b9', Binary), ('\x29ba', Normal), ('\x29bb', Normal), ('\x29bc', Normal), ('\x29bd', Normal), ('\x29be', Normal), ('\x29bf', Normal), ('\x29c0', Binary), ('\x29c1', Binary), ('\x29c2', Normal), ('\x29c3', Normal), ('\x29c4', Binary), ('\x29c5', Binary), ('\x29c6', Binary), ('\x29c7', Binary), ('\x29c8', Binary), ('\x29c9', Normal), ('\x29ca', Normal), ('\x29cb', Normal), ('\x29cc', Normal), ('\x29cd', Normal), ('\x29ce', Relation), ('\x29cf', Relation), ('\x29d0', Relation), ('\x29d1', Relation), ('\x29d2', Relation), ('\x29d3', Relation), ('\x29d4', Relation), ('\x29d5', Relation), ('\x29d6', Binary), ('\x29d7', Binary), ('\x29d8', Opening), ('\x29d9', Closing), ('\x29da', Opening), ('\x29db', Closing), ('\x29dc', Normal), ('\x29dd', Normal), ('\x29de', Normal), ('\x29df', Relation), ('\x29e0', Normal), ('\x29e1', Relation), ('\x29e2', Binary), ('\x29e3', Relation), ('\x29e4', Relation), ('\x29e5', Relation), ('\x29e6', Relation), ('\x29e7', Normal), ('\x29e8', Normal), ('\x29e9', Normal), ('\x29ea', Normal), ('\x29eb', Binary), ('\x29ec', Normal), ('\x29ed', Normal), ('\x29ee', Normal), ('\x29ef', Normal), ('\x29f0', Normal), ('\x29f1', Normal), ('\x29f2', Normal), ('\x29f3', Normal), ('\x29f4', Relation), ('\x29f5', Binary), ('\x29f6', Binary), ('\x29f7', Binary), ('\x29f8', Large), ('\x29f9', Large), ('\x29fa', Binary), ('\x29fb', Binary), ('\x29fc', Opening), ('\x29fd', Closing), ('\x29fe', Binary), ('\x29ff', Binary), ('\x2a00', Large), ('\x2a01', Large), ('\x2a02', Large), ('\x2a03', Large), ('\x2a04', Large), ('\x2a05', Large), ('\x2a06', Large), ('\x2a07', Large), ('\x2a08', Large), ('\x2a09', Large), ('\x2a0a', Large), ('\x2a0b', Large), ('\x2a0c', Large), ('\x2a0d', Large), ('\x2a0e', Large), ('\x2a0f', Large), ('\x2a10', Large), ('\x2a11', Large), ('\x2a12', Large), ('\x2a13', Large), ('\x2a14', Large), ('\x2a15', Large), ('\x2a16', Large), ('\x2a17', Large), ('\x2a18', Large), ('\x2a19', Large), ('\x2a1a', Large), ('\x2a1b', Large), ('\x2a1c', Large), ('\x2a1d', Large), ('\x2a1e', Large), ('\x2a1f', Large), ('\x2a20', Large), ('\x2a21', Large), ('\x2a22', Binary), ('\x2a23', Binary), ('\x2a24', Binary), ('\x2a25', Binary), ('\x2a26', Binary), ('\x2a27', Binary), ('\x2a28', Binary), ('\x2a29', Binary), ('\x2a2a', Binary), ('\x2a2b', Binary), ('\x2a2c', Binary), ('\x2a2d', Binary), ('\x2a2e', Binary), ('\x2a2f', Binary), ('\x2a30', Binary), ('\x2a31', Binary), ('\x2a32', Binary), ('\x2a33', Binary), ('\x2a34', Binary), ('\x2a35', Binary), ('\x2a36', Binary), ('\x2a37', Binary), ('\x2a38', Binary), ('\x2a39', Binary), ('\x2a3a', Binary), ('\x2a3b', Binary), ('\x2a3c', Binary), ('\x2a3d', Binary), ('\x2a3e', Binary), ('\x2a3f', Binary), ('\x2a40', Binary), ('\x2a41', Binary), ('\x2a42', Binary), ('\x2a43', Binary), ('\x2a44', Binary), ('\x2a45', Binary), ('\x2a46', Binary), ('\x2a47', Binary), ('\x2a48', Binary), ('\x2a49', Binary), ('\x2a4a', Binary), ('\x2a4b', Binary), ('\x2a4c', Binary), ('\x2a4d', Binary), ('\x2a4e', Binary), ('\x2a4f', Binary), ('\x2a50', Binary), ('\x2a51', Binary), ('\x2a52', Binary), ('\x2a53', Binary), ('\x2a54', Binary), ('\x2a55', Binary), ('\x2a56', Binary), ('\x2a57', Binary), ('\x2a58', Binary), ('\x2a59', Relation), ('\x2a5a', Binary), ('\x2a5b', Binary), ('\x2a5c', Binary), ('\x2a5d', Binary), ('\x2a5e', Binary), ('\x2a5f', Binary), ('\x2a60', Binary), ('\x2a61', Binary), ('\x2a62', Binary), ('\x2a63', Binary), ('\x2a64', Binary), ('\x2a65', Binary), ('\x2a66', Relation), ('\x2a67', Relation), ('\x2a68', Relation), ('\x2a69', Relation), ('\x2a6a', Relation), ('\x2a6b', Relation), ('\x2a6c', Relation), ('\x2a6d', Relation), ('\x2a6e', Relation), ('\x2a6f', Relation), ('\x2a70', Relation), ('\x2a71', Binary), ('\x2a72', Binary), ('\x2a73', Relation), ('\x2a74', Relation), ('\x2a75', Relation), ('\x2a76', Relation), ('\x2a77', Relation), ('\x2a78', Relation), ('\x2a79', Relation), ('\x2a7a', Relation), ('\x2a7b', Relation), ('\x2a7c', Relation), ('\x2a7d', Relation), ('\x2a7e', Relation), ('\x2a7f', Relation), ('\x2a80', Relation), ('\x2a81', Relation), ('\x2a82', Relation), ('\x2a83', Relation), ('\x2a84', Relation), ('\x2a85', Relation), ('\x2a86', Relation), ('\x2a87', Relation), ('\x2a88', Relation), ('\x2a89', Relation), ('\x2a8a', Relation), ('\x2a8b', Relation), ('\x2a8c', Relation), ('\x2a8d', Relation), ('\x2a8e', Relation), ('\x2a8f', Relation), ('\x2a90', Relation), ('\x2a91', Relation), ('\x2a92', Relation), ('\x2a93', Relation), ('\x2a94', Relation), ('\x2a95', Relation), ('\x2a96', Relation), ('\x2a97', Relation), ('\x2a98', Relation), ('\x2a99', Relation), ('\x2a9a', Relation), ('\x2a9b', Relation), ('\x2a9c', Relation), ('\x2a9d', Relation), ('\x2a9e', Relation), ('\x2a9f', Relation), ('\x2aa0', Relation), ('\x2aa1', Relation), ('\x2aa2', Relation), ('\x2aa3', Relation), ('\x2aa4', Relation), ('\x2aa5', Relation), ('\x2aa6', Relation), ('\x2aa7', Relation), ('\x2aa8', Relation), ('\x2aa9', Relation), ('\x2aaa', Relation), ('\x2aab', Relation), ('\x2aac', Relation), ('\x2aad', Relation), ('\x2aae', Relation), ('\x2aaf', Relation), ('\x2ab0', Relation), ('\x2ab1', Relation), ('\x2ab2', Relation), ('\x2ab3', Relation), ('\x2ab4', Relation), ('\x2ab5', Relation), ('\x2ab6', Relation), ('\x2ab7', Relation), ('\x2ab8', Relation), ('\x2ab9', Relation), ('\x2aba', Relation), ('\x2abb', Relation), ('\x2abc', Relation), ('\x2abd', Relation), ('\x2abe', Relation), ('\x2abf', Relation), ('\x2ac0', Relation), ('\x2ac1', Relation), ('\x2ac2', Relation), ('\x2ac3', Relation), ('\x2ac4', Relation), ('\x2ac5', Relation), ('\x2ac6', Relation), ('\x2ac7', Relation), ('\x2ac8', Relation), ('\x2ac9', Relation), ('\x2aca', Relation), ('\x2acb', Relation), ('\x2acc', Relation), ('\x2acd', Relation), ('\x2ace', Relation), ('\x2acf', Relation), ('\x2ad0', Relation), ('\x2ad1', Relation), ('\x2ad2', Relation), ('\x2ad3', Relation), ('\x2ad4', Relation), ('\x2ad5', Relation), ('\x2ad6', Relation), ('\x2ad7', Relation), ('\x2ad8', Relation), ('\x2ad9', Relation), ('\x2ada', Relation), ('\x2adb', Relation), ('\x2adc', Relation), ('\x2add', Relation), ('\x2ade', Relation), ('\x2adf', Relation), ('\x2ae0', Relation), ('\x2ae1', Normal), ('\x2ae2', Relation), ('\x2ae3', Relation), ('\x2ae4', Relation), ('\x2ae5', Relation), ('\x2ae6', Relation), ('\x2ae7', Relation), ('\x2ae8', Relation), ('\x2ae9', Relation), ('\x2aea', Relation), ('\x2aeb', Relation), ('\x2aec', Relation), ('\x2aed', Relation), ('\x2aee', Relation), ('\x2aef', Relation), ('\x2af0', Relation), ('\x2af1', Normal), ('\x2af2', Relation), ('\x2af3', Relation), ('\x2af4', Binary), ('\x2af5', Binary), ('\x2af6', Binary), ('\x2af7', Relation), ('\x2af8', Relation), ('\x2af9', Relation), ('\x2afa', Relation), ('\x2afb', Binary), ('\x2afc', Large), ('\x2afd', Binary), ('\x2afe', Binary), ('\x2aff', Large), ('\x2b00', Relation), ('\x2b01', Relation), ('\x2b02', Relation), ('\x2b03', Relation), ('\x2b04', Relation), ('\x2b05', Relation), ('\x2b06', Relation), ('\x2b07', Relation), ('\x2b08', Relation), ('\x2b09', Relation), ('\x2b0a', Relation), ('\x2b0b', Relation), ('\x2b0c', Relation), ('\x2b0d', Relation), ('\x2b0e', Relation), ('\x2b0f', Relation), ('\x2b10', Relation), ('\x2b11', Relation), ('\x2b12', Normal), ('\x2b13', Normal), ('\x2b14', Normal), ('\x2b15', Normal), ('\x2b16', Normal), ('\x2b17', Normal), ('\x2b18', Normal), ('\x2b19', Normal), ('\x2b1b', Normal), ('\x2b1c', Normal), ('\x2b1d', Normal), ('\x2b1e', Normal), ('\x2b1f', Normal), ('\x2b20', Normal), ('\x2b21', Normal), ('\x2b22', Normal), ('\x2b23', Normal), ('\x2b24', Normal), ('\x2b25', Normal), ('\x2b26', Normal), ('\x2b27', Normal), ('\x2b28', Normal), ('\x2b29', Normal), ('\x2b2a', Normal), ('\x2b2b', Normal), ('\x2b2c', Normal), ('\x2b2d', Normal), ('\x2b2e', Normal), ('\x2b2f', Normal), ('\x2b30', Relation), ('\x2b31', Relation), ('\x2b32', Relation), ('\x2b33', Relation), ('\x2b34', Relation), ('\x2b35', Relation), ('\x2b36', Relation), ('\x2b37', Relation), ('\x2b38', Relation), ('\x2b39', Relation), ('\x2b3a', Relation), ('\x2b3b', Relation), ('\x2b3c', Relation), ('\x2b3d', Relation), ('\x2b3e', Relation), ('\x2b3f', Relation), ('\x2b40', Relation), ('\x2b41', Relation), ('\x2b42', Relation), ('\x2b43', Relation), ('\x2b44', Relation), ('\x2b45', Relation), ('\x2b46', Relation), ('\x2b47', Relation), ('\x2b48', Relation), ('\x2b49', Relation), ('\x2b4a', Relation), ('\x2b4b', Relation), ('\x2b4c', Relation), ('\x2b50', Normal), ('\x2b51', Normal), ('\x2b52', Normal), ('\x2b53', Normal), ('\x2b54', Normal), ('\x2b95', Relation), ('\x2bc2', Normal), ('\x2bc3', Normal), ('\x2bc4', Normal), ('\x2bc5', Normal), ('\x2bc6', Normal), ('\x2bc7', Normal), ('\x2bc8', Normal), ('\x2bca', Normal), ('\x2bcb', Normal), ('\x3008', Special), ('\x3009', Special), ('\x301a', Special), ('\x301b', Special), ('\x306e', Normal), ('\xfb29', Special), ('\xfe00', Diacritic), ('\xfe61', Special), ('\xfe62', Special), ('\xfe63', Special), ('\xfe64', Special), ('\xfe65', Special), ('\xfe66', Special), ('\xfe68', Special), ('\xff0b', Special), ('\xff1c', Special), ('\xff1d', Special), ('\xff1e', Special), ('\xff3c', Special), ('\xff3e', Special), ('\xff5c', Special), ('\xff5e', Special), ('\xffe2', Special), ('\xffe9', Special), ('\xffea', Special), ('\xffeb', Special), ('\xffec', Special), ('\x1d400', Alphabetic), ('\x1d401', Alphabetic), ('\x1d402', Alphabetic), ('\x1d403', Alphabetic), ('\x1d404', Alphabetic), ('\x1d405', Alphabetic), ('\x1d406', Alphabetic), ('\x1d407', Alphabetic), ('\x1d408', Alphabetic), ('\x1d409', Alphabetic), ('\x1d40a', Alphabetic), ('\x1d40b', Alphabetic), ('\x1d40c', Alphabetic), ('\x1d40d', Alphabetic), ('\x1d40e', Alphabetic), ('\x1d40f', Alphabetic), ('\x1d410', Alphabetic), ('\x1d411', Alphabetic), ('\x1d412', Alphabetic), ('\x1d413', Alphabetic), ('\x1d414', Alphabetic), ('\x1d415', Alphabetic), ('\x1d416', Alphabetic), ('\x1d417', Alphabetic), ('\x1d418', Alphabetic), ('\x1d419', Alphabetic), ('\x1d41a', Alphabetic), ('\x1d41b', Alphabetic), ('\x1d41c', Alphabetic), ('\x1d41d', Alphabetic), ('\x1d41e', Alphabetic), ('\x1d41f', Alphabetic), ('\x1d420', Alphabetic), ('\x1d421', Alphabetic), ('\x1d422', Alphabetic), ('\x1d423', Alphabetic), ('\x1d424', Alphabetic), ('\x1d425', Alphabetic), ('\x1d426', Alphabetic), ('\x1d427', Alphabetic), ('\x1d428', Alphabetic), ('\x1d429', Alphabetic), ('\x1d42a', Alphabetic), ('\x1d42b', Alphabetic), ('\x1d42c', Alphabetic), ('\x1d42d', Alphabetic), ('\x1d42e', Alphabetic), ('\x1d42f', Alphabetic), ('\x1d430', Alphabetic), ('\x1d431', Alphabetic), ('\x1d432', Alphabetic), ('\x1d433', Alphabetic), ('\x1d434', Alphabetic), ('\x1d435', Alphabetic), ('\x1d436', Alphabetic), ('\x1d437', Alphabetic), ('\x1d438', Alphabetic), ('\x1d439', Alphabetic), ('\x1d43a', Alphabetic), ('\x1d43b', Alphabetic), ('\x1d43c', Alphabetic), ('\x1d43d', Alphabetic), ('\x1d43e', Alphabetic), ('\x1d43f', Alphabetic), ('\x1d440', Alphabetic), ('\x1d441', Alphabetic), ('\x1d442', Alphabetic), ('\x1d443', Alphabetic), ('\x1d444', Alphabetic), ('\x1d445', Alphabetic), ('\x1d446', Alphabetic), ('\x1d447', Alphabetic), ('\x1d448', Alphabetic), ('\x1d449', Alphabetic), ('\x1d44a', Alphabetic), ('\x1d44b', Alphabetic), ('\x1d44c', Alphabetic), ('\x1d44d', Alphabetic), ('\x1d44e', Alphabetic), ('\x1d44f', Alphabetic), ('\x1d450', Alphabetic), ('\x1d451', Alphabetic), ('\x1d452', Alphabetic), ('\x1d453', Alphabetic), ('\x1d454', Alphabetic), ('\x1d456', Alphabetic), ('\x1d457', Alphabetic), ('\x1d458', Alphabetic), ('\x1d459', Alphabetic), ('\x1d45a', Alphabetic), ('\x1d45b', Alphabetic), ('\x1d45c', Alphabetic), ('\x1d45d', Alphabetic), ('\x1d45e', Alphabetic), ('\x1d45f', Alphabetic), ('\x1d460', Alphabetic), ('\x1d461', Alphabetic), ('\x1d462', Alphabetic), ('\x1d463', Alphabetic), ('\x1d464', Alphabetic), ('\x1d465', Alphabetic), ('\x1d466', Alphabetic), ('\x1d467', Alphabetic), ('\x1d468', Alphabetic), ('\x1d469', Alphabetic), ('\x1d46a', Alphabetic), ('\x1d46b', Alphabetic), ('\x1d46c', Alphabetic), ('\x1d46d', Alphabetic), ('\x1d46e', Alphabetic), ('\x1d46f', Alphabetic), ('\x1d470', Alphabetic), ('\x1d471', Alphabetic), ('\x1d472', Alphabetic), ('\x1d473', Alphabetic), ('\x1d474', Alphabetic), ('\x1d475', Alphabetic), ('\x1d476', Alphabetic), ('\x1d477', Alphabetic), ('\x1d478', Alphabetic), ('\x1d479', Alphabetic), ('\x1d47a', Alphabetic), ('\x1d47b', Alphabetic), ('\x1d47c', Alphabetic), ('\x1d47d', Alphabetic), ('\x1d47e', Alphabetic), ('\x1d47f', Alphabetic), ('\x1d480', Alphabetic), ('\x1d481', Alphabetic), ('\x1d482', Alphabetic), ('\x1d483', Alphabetic), ('\x1d484', Alphabetic), ('\x1d485', Alphabetic), ('\x1d486', Alphabetic), ('\x1d487', Alphabetic), ('\x1d488', Alphabetic), ('\x1d489', Alphabetic), ('\x1d48a', Alphabetic), ('\x1d48b', Alphabetic), ('\x1d48c', Alphabetic), ('\x1d48d', Alphabetic), ('\x1d48e', Alphabetic), ('\x1d48f', Alphabetic), ('\x1d490', Alphabetic), ('\x1d491', Alphabetic), ('\x1d492', Alphabetic), ('\x1d493', Alphabetic), ('\x1d494', Alphabetic), ('\x1d495', Alphabetic), ('\x1d496', Alphabetic), ('\x1d497', Alphabetic), ('\x1d498', Alphabetic), ('\x1d499', Alphabetic), ('\x1d49a', Alphabetic), ('\x1d49b', Alphabetic), ('\x1d49c', Alphabetic), ('\x1d49e', Alphabetic), ('\x1d49f', Alphabetic), ('\x1d4a2', Alphabetic), ('\x1d4a5', Alphabetic), ('\x1d4a6', Alphabetic), ('\x1d4a9', Alphabetic), ('\x1d4aa', Alphabetic), ('\x1d4ab', Alphabetic), ('\x1d4ac', Alphabetic), ('\x1d4ae', Alphabetic), ('\x1d4af', Alphabetic), ('\x1d4b0', Alphabetic), ('\x1d4b1', Alphabetic), ('\x1d4b2', Alphabetic), ('\x1d4b3', Alphabetic), ('\x1d4b4', Alphabetic), ('\x1d4b5', Alphabetic), ('\x1d4b6', Alphabetic), ('\x1d4b7', Alphabetic), ('\x1d4b8', Alphabetic), ('\x1d4b9', Alphabetic), ('\x1d4bb', Alphabetic), ('\x1d4bd', Alphabetic), ('\x1d4be', Alphabetic), ('\x1d4bf', Alphabetic), ('\x1d4c0', Alphabetic), ('\x1d4c1', Alphabetic), ('\x1d4c2', Alphabetic), ('\x1d4c3', Alphabetic), ('\x1d4c5', Alphabetic), ('\x1d4c6', Alphabetic), ('\x1d4c7', Alphabetic), ('\x1d4c8', Alphabetic), ('\x1d4c9', Alphabetic), ('\x1d4ca', Alphabetic), ('\x1d4cb', Alphabetic), ('\x1d4cc', Alphabetic), ('\x1d4cd', Alphabetic), ('\x1d4ce', Alphabetic), ('\x1d4cf', Alphabetic), ('\x1d4d0', Alphabetic), ('\x1d4d1', Alphabetic), ('\x1d4d2', Alphabetic), ('\x1d4d3', Alphabetic), ('\x1d4d4', Alphabetic), ('\x1d4d5', Alphabetic), ('\x1d4d6', Alphabetic), ('\x1d4d7', Alphabetic), ('\x1d4d8', Alphabetic), ('\x1d4d9', Alphabetic), ('\x1d4da', Alphabetic), ('\x1d4db', Alphabetic), ('\x1d4dc', Alphabetic), ('\x1d4dd', Alphabetic), ('\x1d4de', Alphabetic), ('\x1d4df', Alphabetic), ('\x1d4e0', Alphabetic), ('\x1d4e1', Alphabetic), ('\x1d4e2', Alphabetic), ('\x1d4e3', Alphabetic), ('\x1d4e4', Alphabetic), ('\x1d4e5', Alphabetic), ('\x1d4e6', Alphabetic), ('\x1d4e7', Alphabetic), ('\x1d4e8', Alphabetic), ('\x1d4e9', Alphabetic), ('\x1d4ea', Alphabetic), ('\x1d4eb', Alphabetic), ('\x1d4ec', Alphabetic), ('\x1d4ed', Alphabetic), ('\x1d4ee', Alphabetic), ('\x1d4ef', Alphabetic), ('\x1d4f0', Alphabetic), ('\x1d4f1', Alphabetic), ('\x1d4f2', Alphabetic), ('\x1d4f3', Alphabetic), ('\x1d4f4', Alphabetic), ('\x1d4f5', Alphabetic), ('\x1d4f6', Alphabetic), ('\x1d4f7', Alphabetic), ('\x1d4f8', Alphabetic), ('\x1d4f9', Alphabetic), ('\x1d4fa', Alphabetic), ('\x1d4fb', Alphabetic), ('\x1d4fc', Alphabetic), ('\x1d4fd', Alphabetic), ('\x1d4fe', Alphabetic), ('\x1d4ff', Alphabetic), ('\x1d500', Alphabetic), ('\x1d501', Alphabetic), ('\x1d502', Alphabetic), ('\x1d503', Alphabetic), ('\x1d504', Alphabetic), ('\x1d505', Alphabetic), ('\x1d507', Alphabetic), ('\x1d508', Alphabetic), ('\x1d509', Alphabetic), ('\x1d50a', Alphabetic), ('\x1d50d', Alphabetic), ('\x1d50e', Alphabetic), ('\x1d50f', Alphabetic), ('\x1d510', Alphabetic), ('\x1d511', Alphabetic), ('\x1d512', Alphabetic), ('\x1d513', Alphabetic), ('\x1d514', Alphabetic), ('\x1d516', Alphabetic), ('\x1d517', Alphabetic), ('\x1d518', Alphabetic), ('\x1d519', Alphabetic), ('\x1d51a', Alphabetic), ('\x1d51b', Alphabetic), ('\x1d51c', Alphabetic), ('\x1d51e', Alphabetic), ('\x1d51f', Alphabetic), ('\x1d520', Alphabetic), ('\x1d521', Alphabetic), ('\x1d522', Alphabetic), ('\x1d523', Alphabetic), ('\x1d524', Alphabetic), ('\x1d525', Alphabetic), ('\x1d526', Alphabetic), ('\x1d527', Alphabetic), ('\x1d528', Alphabetic), ('\x1d529', Alphabetic), ('\x1d52a', Alphabetic), ('\x1d52b', Alphabetic), ('\x1d52c', Alphabetic), ('\x1d52d', Alphabetic), ('\x1d52e', Alphabetic), ('\x1d52f', Alphabetic), ('\x1d530', Alphabetic), ('\x1d531', Alphabetic), ('\x1d532', Alphabetic), ('\x1d533', Alphabetic), ('\x1d534', Alphabetic), ('\x1d535', Alphabetic), ('\x1d536', Alphabetic), ('\x1d537', Alphabetic), ('\x1d538', Alphabetic), ('\x1d539', Alphabetic), ('\x1d53b', Alphabetic), ('\x1d53c', Alphabetic), ('\x1d53d', Alphabetic), ('\x1d53e', Alphabetic), ('\x1d540', Alphabetic), ('\x1d541', Alphabetic), ('\x1d542', Alphabetic), ('\x1d543', Alphabetic), ('\x1d544', Alphabetic), ('\x1d546', Alphabetic), ('\x1d54a', Alphabetic), ('\x1d54b', Alphabetic), ('\x1d54c', Alphabetic), ('\x1d54d', Alphabetic), ('\x1d54e', Alphabetic), ('\x1d54f', Alphabetic), ('\x1d550', Alphabetic), ('\x1d552', Alphabetic), ('\x1d553', Alphabetic), ('\x1d554', Alphabetic), ('\x1d555', Alphabetic), ('\x1d556', Alphabetic), ('\x1d557', Alphabetic), ('\x1d558', Alphabetic), ('\x1d559', Alphabetic), ('\x1d55a', Alphabetic), ('\x1d55b', Alphabetic), ('\x1d55c', Alphabetic), ('\x1d55d', Alphabetic), ('\x1d55e', Alphabetic), ('\x1d55f', Alphabetic), ('\x1d560', Alphabetic), ('\x1d561', Alphabetic), ('\x1d562', Alphabetic), ('\x1d563', Alphabetic), ('\x1d564', Alphabetic), ('\x1d565', Alphabetic), ('\x1d566', Alphabetic), ('\x1d567', Alphabetic), ('\x1d568', Alphabetic), ('\x1d569', Alphabetic), ('\x1d56a', Alphabetic), ('\x1d56b', Alphabetic), ('\x1d56c', Alphabetic), ('\x1d56d', Alphabetic), ('\x1d56e', Alphabetic), ('\x1d56f', Alphabetic), ('\x1d570', Alphabetic), ('\x1d571', Alphabetic), ('\x1d572', Alphabetic), ('\x1d573', Alphabetic), ('\x1d574', Alphabetic), ('\x1d575', Alphabetic), ('\x1d576', Alphabetic), ('\x1d577', Alphabetic), ('\x1d578', Alphabetic), ('\x1d579', Alphabetic), ('\x1d57a', Alphabetic), ('\x1d57b', Alphabetic), ('\x1d57c', Alphabetic), ('\x1d57d', Alphabetic), ('\x1d57e', Alphabetic), ('\x1d57f', Alphabetic), ('\x1d580', Alphabetic), ('\x1d581', Alphabetic), ('\x1d582', Alphabetic), ('\x1d583', Alphabetic), ('\x1d584', Alphabetic), ('\x1d585', Alphabetic), ('\x1d586', Alphabetic), ('\x1d587', Alphabetic), ('\x1d588', Alphabetic), ('\x1d589', Alphabetic), ('\x1d58a', Alphabetic), ('\x1d58b', Alphabetic), ('\x1d58c', Alphabetic), ('\x1d58d', Alphabetic), ('\x1d58e', Alphabetic), ('\x1d58f', Alphabetic), ('\x1d590', Alphabetic), ('\x1d591', Alphabetic), ('\x1d592', Alphabetic), ('\x1d593', Alphabetic), ('\x1d594', Alphabetic), ('\x1d595', Alphabetic), ('\x1d596', Alphabetic), ('\x1d597', Alphabetic), ('\x1d598', Alphabetic), ('\x1d599', Alphabetic), ('\x1d59a', Alphabetic), ('\x1d59b', Alphabetic), ('\x1d59c', Alphabetic), ('\x1d59d', Alphabetic), ('\x1d59e', Alphabetic), ('\x1d59f', Alphabetic), ('\x1d5a0', Alphabetic), ('\x1d5a1', Alphabetic), ('\x1d5a2', Alphabetic), ('\x1d5a3', Alphabetic), ('\x1d5a4', Alphabetic), ('\x1d5a5', Alphabetic), ('\x1d5a6', Alphabetic), ('\x1d5a7', Alphabetic), ('\x1d5a8', Alphabetic), ('\x1d5a9', Alphabetic), ('\x1d5aa', Alphabetic), ('\x1d5ab', Alphabetic), ('\x1d5ac', Alphabetic), ('\x1d5ad', Alphabetic), ('\x1d5ae', Alphabetic), ('\x1d5af', Alphabetic), ('\x1d5b0', Alphabetic), ('\x1d5b1', Alphabetic), ('\x1d5b2', Alphabetic), ('\x1d5b3', Alphabetic), ('\x1d5b4', Alphabetic), ('\x1d5b5', Alphabetic), ('\x1d5b6', Alphabetic), ('\x1d5b7', Alphabetic), ('\x1d5b8', Alphabetic), ('\x1d5b9', Alphabetic), ('\x1d5ba', Alphabetic), ('\x1d5bb', Alphabetic), ('\x1d5bc', Alphabetic), ('\x1d5bd', Alphabetic), ('\x1d5be', Alphabetic), ('\x1d5bf', Alphabetic), ('\x1d5c0', Alphabetic), ('\x1d5c1', Alphabetic), ('\x1d5c2', Alphabetic), ('\x1d5c3', Alphabetic), ('\x1d5c4', Alphabetic), ('\x1d5c5', Alphabetic), ('\x1d5c6', Alphabetic), ('\x1d5c7', Alphabetic), ('\x1d5c8', Alphabetic), ('\x1d5c9', Alphabetic), ('\x1d5ca', Alphabetic), ('\x1d5cb', Alphabetic), ('\x1d5cc', Alphabetic), ('\x1d5cd', Alphabetic), ('\x1d5ce', Alphabetic), ('\x1d5cf', Alphabetic), ('\x1d5d0', Alphabetic), ('\x1d5d1', Alphabetic), ('\x1d5d2', Alphabetic), ('\x1d5d3', Alphabetic), ('\x1d5d4', Alphabetic), ('\x1d5d5', Alphabetic), ('\x1d5d6', Alphabetic), ('\x1d5d7', Alphabetic), ('\x1d5d8', Alphabetic), ('\x1d5d9', Alphabetic), ('\x1d5da', Alphabetic), ('\x1d5db', Alphabetic), ('\x1d5dc', Alphabetic), ('\x1d5dd', Alphabetic), ('\x1d5de', Alphabetic), ('\x1d5df', Alphabetic), ('\x1d5e0', Alphabetic), ('\x1d5e1', Alphabetic), ('\x1d5e2', Alphabetic), ('\x1d5e3', Alphabetic), ('\x1d5e4', Alphabetic), ('\x1d5e5', Alphabetic), ('\x1d5e6', Alphabetic), ('\x1d5e7', Alphabetic), ('\x1d5e8', Alphabetic), ('\x1d5e9', Alphabetic), ('\x1d5ea', Alphabetic), ('\x1d5eb', Alphabetic), ('\x1d5ec', Alphabetic), ('\x1d5ed', Alphabetic), ('\x1d5ee', Alphabetic), ('\x1d5ef', Alphabetic), ('\x1d5f0', Alphabetic), ('\x1d5f1', Alphabetic), ('\x1d5f2', Alphabetic), ('\x1d5f3', Alphabetic), ('\x1d5f4', Alphabetic), ('\x1d5f5', Alphabetic), ('\x1d5f6', Alphabetic), ('\x1d5f7', Alphabetic), ('\x1d5f8', Alphabetic), ('\x1d5f9', Alphabetic), ('\x1d5fa', Alphabetic), ('\x1d5fb', Alphabetic), ('\x1d5fc', Alphabetic), ('\x1d5fd', Alphabetic), ('\x1d5fe', Alphabetic), ('\x1d5ff', Alphabetic), ('\x1d600', Alphabetic), ('\x1d601', Alphabetic), ('\x1d602', Alphabetic), ('\x1d603', Alphabetic), ('\x1d604', Alphabetic), ('\x1d605', Alphabetic), ('\x1d606', Alphabetic), ('\x1d607', Alphabetic), ('\x1d608', Alphabetic), ('\x1d609', Alphabetic), ('\x1d60a', Alphabetic), ('\x1d60b', Alphabetic), ('\x1d60c', Alphabetic), ('\x1d60d', Alphabetic), ('\x1d60e', Alphabetic), ('\x1d60f', Alphabetic), ('\x1d610', Alphabetic), ('\x1d611', Alphabetic), ('\x1d612', Alphabetic), ('\x1d613', Alphabetic), ('\x1d614', Alphabetic), ('\x1d615', Alphabetic), ('\x1d616', Alphabetic), ('\x1d617', Alphabetic), ('\x1d618', Alphabetic), ('\x1d619', Alphabetic), ('\x1d61a', Alphabetic), ('\x1d61b', Alphabetic), ('\x1d61c', Alphabetic), ('\x1d61d', Alphabetic), ('\x1d61e', Alphabetic), ('\x1d61f', Alphabetic), ('\x1d620', Alphabetic), ('\x1d621', Alphabetic), ('\x1d622', Alphabetic), ('\x1d623', Alphabetic), ('\x1d624', Alphabetic), ('\x1d625', Alphabetic), ('\x1d626', Alphabetic), ('\x1d627', Alphabetic), ('\x1d628', Alphabetic), ('\x1d629', Alphabetic), ('\x1d62a', Alphabetic), ('\x1d62b', Alphabetic), ('\x1d62c', Alphabetic), ('\x1d62d', Alphabetic), ('\x1d62e', Alphabetic), ('\x1d62f', Alphabetic), ('\x1d630', Alphabetic), ('\x1d631', Alphabetic), ('\x1d632', Alphabetic), ('\x1d633', Alphabetic), ('\x1d634', Alphabetic), ('\x1d635', Alphabetic), ('\x1d636', Alphabetic), ('\x1d637', Alphabetic), ('\x1d638', Alphabetic), ('\x1d639', Alphabetic), ('\x1d63a', Alphabetic), ('\x1d63b', Alphabetic), ('\x1d63c', Alphabetic), ('\x1d63d', Alphabetic), ('\x1d63e', Alphabetic), ('\x1d63f', Alphabetic), ('\x1d640', Alphabetic), ('\x1d641', Alphabetic), ('\x1d642', Alphabetic), ('\x1d643', Alphabetic), ('\x1d644', Alphabetic), ('\x1d645', Alphabetic), ('\x1d646', Alphabetic), ('\x1d647', Alphabetic), ('\x1d648', Alphabetic), ('\x1d649', Alphabetic), ('\x1d64a', Alphabetic), ('\x1d64b', Alphabetic), ('\x1d64c', Alphabetic), ('\x1d64d', Alphabetic), ('\x1d64e', Alphabetic), ('\x1d64f', Alphabetic), ('\x1d650', Alphabetic), ('\x1d651', Alphabetic), ('\x1d652', Alphabetic), ('\x1d653', Alphabetic), ('\x1d654', Alphabetic), ('\x1d655', Alphabetic), ('\x1d656', Alphabetic), ('\x1d657', Alphabetic), ('\x1d658', Alphabetic), ('\x1d659', Alphabetic), ('\x1d65a', Alphabetic), ('\x1d65b', Alphabetic), ('\x1d65c', Alphabetic), ('\x1d65d', Alphabetic), ('\x1d65e', Alphabetic), ('\x1d65f', Alphabetic), ('\x1d660', Alphabetic), ('\x1d661', Alphabetic), ('\x1d662', Alphabetic), ('\x1d663', Alphabetic), ('\x1d664', Alphabetic), ('\x1d665', Alphabetic), ('\x1d666', Alphabetic), ('\x1d667', Alphabetic), ('\x1d668', Alphabetic), ('\x1d669', Alphabetic), ('\x1d66a', Alphabetic), ('\x1d66b', Alphabetic), ('\x1d66c', Alphabetic), ('\x1d66d', Alphabetic), ('\x1d66e', Alphabetic), ('\x1d66f', Alphabetic), ('\x1d670', Alphabetic), ('\x1d671', Alphabetic), ('\x1d672', Alphabetic), ('\x1d673', Alphabetic), ('\x1d674', Alphabetic), ('\x1d675', Alphabetic), ('\x1d676', Alphabetic), ('\x1d677', Alphabetic), ('\x1d678', Alphabetic), ('\x1d679', Alphabetic), ('\x1d67a', Alphabetic), ('\x1d67b', Alphabetic), ('\x1d67c', Alphabetic), ('\x1d67d', Alphabetic), ('\x1d67e', Alphabetic), ('\x1d67f', Alphabetic), ('\x1d680', Alphabetic), ('\x1d681', Alphabetic), ('\x1d682', Alphabetic), ('\x1d683', Alphabetic), ('\x1d684', Alphabetic), ('\x1d685', Alphabetic), ('\x1d686', Alphabetic), ('\x1d687', Alphabetic), ('\x1d688', Alphabetic), ('\x1d689', Alphabetic), ('\x1d68a', Alphabetic), ('\x1d68b', Alphabetic), ('\x1d68c', Alphabetic), ('\x1d68d', Alphabetic), ('\x1d68e', Alphabetic), ('\x1d68f', Alphabetic), ('\x1d690', Alphabetic), ('\x1d691', Alphabetic), ('\x1d692', Alphabetic), ('\x1d693', Alphabetic), ('\x1d694', Alphabetic), ('\x1d695', Alphabetic), ('\x1d696', Alphabetic), ('\x1d697', Alphabetic), ('\x1d698', Alphabetic), ('\x1d699', Alphabetic), ('\x1d69a', Alphabetic), ('\x1d69b', Alphabetic), ('\x1d69c', Alphabetic), ('\x1d69d', Alphabetic), ('\x1d69e', Alphabetic), ('\x1d69f', Alphabetic), ('\x1d6a0', Alphabetic), ('\x1d6a1', Alphabetic), ('\x1d6a2', Alphabetic), ('\x1d6a3', Alphabetic), ('\x1d6a4', Alphabetic), ('\x1d6a5', Alphabetic), ('\x1d6a8', Alphabetic), ('\x1d6a9', Alphabetic), ('\x1d6aa', Alphabetic), ('\x1d6ab', Alphabetic), ('\x1d6ac', Alphabetic), ('\x1d6ad', Alphabetic), ('\x1d6ae', Alphabetic), ('\x1d6af', Alphabetic), ('\x1d6b0', Alphabetic), ('\x1d6b1', Alphabetic), ('\x1d6b2', Alphabetic), ('\x1d6b3', Alphabetic), ('\x1d6b4', Alphabetic), ('\x1d6b5', Alphabetic), ('\x1d6b6', Alphabetic), ('\x1d6b7', Alphabetic), ('\x1d6b8', Alphabetic), ('\x1d6b9', Alphabetic), ('\x1d6ba', Alphabetic), ('\x1d6bb', Alphabetic), ('\x1d6bc', Alphabetic), ('\x1d6bd', Alphabetic), ('\x1d6be', Alphabetic), ('\x1d6bf', Alphabetic), ('\x1d6c0', Alphabetic), ('\x1d6c1', Alphabetic), ('\x1d6c2', Alphabetic), ('\x1d6c3', Alphabetic), ('\x1d6c4', Alphabetic), ('\x1d6c5', Alphabetic), ('\x1d6c6', Alphabetic), ('\x1d6c7', Alphabetic), ('\x1d6c8', Alphabetic), ('\x1d6c9', Alphabetic), ('\x1d6ca', Alphabetic), ('\x1d6cb', Alphabetic), ('\x1d6cc', Alphabetic), ('\x1d6cd', Alphabetic), ('\x1d6ce', Alphabetic), ('\x1d6cf', Alphabetic), ('\x1d6d0', Alphabetic), ('\x1d6d1', Alphabetic), ('\x1d6d2', Alphabetic), ('\x1d6d3', Alphabetic), ('\x1d6d4', Alphabetic), ('\x1d6d5', Alphabetic), ('\x1d6d6', Alphabetic), ('\x1d6d7', Alphabetic), ('\x1d6d8', Alphabetic), ('\x1d6d9', Alphabetic), ('\x1d6da', Alphabetic), ('\x1d6db', Alphabetic), ('\x1d6dc', Alphabetic), ('\x1d6dd', Alphabetic), ('\x1d6de', Alphabetic), ('\x1d6df', Alphabetic), ('\x1d6e0', Alphabetic), ('\x1d6e1', Alphabetic), ('\x1d6e2', Alphabetic), ('\x1d6e3', Alphabetic), ('\x1d6e4', Alphabetic), ('\x1d6e5', Alphabetic), ('\x1d6e6', Alphabetic), ('\x1d6e7', Alphabetic), ('\x1d6e8', Alphabetic), ('\x1d6e9', Alphabetic), ('\x1d6ea', Alphabetic), ('\x1d6eb', Alphabetic), ('\x1d6ec', Alphabetic), ('\x1d6ed', Alphabetic), ('\x1d6ee', Alphabetic), ('\x1d6ef', Alphabetic), ('\x1d6f0', Alphabetic), ('\x1d6f1', Alphabetic), ('\x1d6f2', Alphabetic), ('\x1d6f3', Alphabetic), ('\x1d6f4', Alphabetic), ('\x1d6f5', Alphabetic), ('\x1d6f6', Alphabetic), ('\x1d6f7', Alphabetic), ('\x1d6f8', Alphabetic), ('\x1d6f9', Alphabetic), ('\x1d6fa', Alphabetic), ('\x1d6fb', Alphabetic), ('\x1d6fc', Alphabetic), ('\x1d6fd', Alphabetic), ('\x1d6fe', Alphabetic), ('\x1d6ff', Alphabetic), ('\x1d700', Alphabetic), ('\x1d701', Alphabetic), ('\x1d702', Alphabetic), ('\x1d703', Alphabetic), ('\x1d704', Alphabetic), ('\x1d705', Alphabetic), ('\x1d706', Alphabetic), ('\x1d707', Alphabetic), ('\x1d708', Alphabetic), ('\x1d709', Alphabetic), ('\x1d70a', Alphabetic), ('\x1d70b', Alphabetic), ('\x1d70c', Alphabetic), ('\x1d70d', Alphabetic), ('\x1d70e', Alphabetic), ('\x1d70f', Alphabetic), ('\x1d710', Alphabetic), ('\x1d711', Alphabetic), ('\x1d712', Alphabetic), ('\x1d713', Alphabetic), ('\x1d714', Alphabetic), ('\x1d715', Alphabetic), ('\x1d716', Alphabetic), ('\x1d717', Alphabetic), ('\x1d718', Alphabetic), ('\x1d719', Alphabetic), ('\x1d71a', Alphabetic), ('\x1d71b', Alphabetic), ('\x1d71c', Alphabetic), ('\x1d71d', Alphabetic), ('\x1d71e', Alphabetic), ('\x1d71f', Alphabetic), ('\x1d720', Alphabetic), ('\x1d721', Alphabetic), ('\x1d722', Alphabetic), ('\x1d723', Alphabetic), ('\x1d724', Alphabetic), ('\x1d725', Alphabetic), ('\x1d726', Alphabetic), ('\x1d727', Alphabetic), ('\x1d728', Alphabetic), ('\x1d729', Alphabetic), ('\x1d72a', Alphabetic), ('\x1d72b', Alphabetic), ('\x1d72c', Alphabetic), ('\x1d72d', Alphabetic), ('\x1d72e', Alphabetic), ('\x1d72f', Alphabetic), ('\x1d730', Alphabetic), ('\x1d731', Alphabetic), ('\x1d732', Alphabetic), ('\x1d733', Alphabetic), ('\x1d734', Alphabetic), ('\x1d735', Alphabetic), ('\x1d736', Alphabetic), ('\x1d737', Alphabetic), ('\x1d738', Alphabetic), ('\x1d739', Alphabetic), ('\x1d73a', Alphabetic), ('\x1d73b', Alphabetic), ('\x1d73c', Alphabetic), ('\x1d73d', Alphabetic), ('\x1d73e', Alphabetic), ('\x1d73f', Alphabetic), ('\x1d740', Alphabetic), ('\x1d741', Alphabetic), ('\x1d742', Alphabetic), ('\x1d743', Alphabetic), ('\x1d744', Alphabetic), ('\x1d745', Alphabetic), ('\x1d746', Alphabetic), ('\x1d747', Alphabetic), ('\x1d748', Alphabetic), ('\x1d749', Alphabetic), ('\x1d74a', Alphabetic), ('\x1d74b', Alphabetic), ('\x1d74c', Alphabetic), ('\x1d74d', Alphabetic), ('\x1d74e', Alphabetic), ('\x1d74f', Alphabetic), ('\x1d750', Alphabetic), ('\x1d751', Alphabetic), ('\x1d752', Alphabetic), ('\x1d753', Alphabetic), ('\x1d754', Alphabetic), ('\x1d755', Alphabetic), ('\x1d756', Alphabetic), ('\x1d757', Alphabetic), ('\x1d758', Alphabetic), ('\x1d759', Alphabetic), ('\x1d75a', Alphabetic), ('\x1d75b', Alphabetic), ('\x1d75c', Alphabetic), ('\x1d75d', Alphabetic), ('\x1d75e', Alphabetic), ('\x1d75f', Alphabetic), ('\x1d760', Alphabetic), ('\x1d761', Alphabetic), ('\x1d762', Alphabetic), ('\x1d763', Alphabetic), ('\x1d764', Alphabetic), ('\x1d765', Alphabetic), ('\x1d766', Alphabetic), ('\x1d767', Alphabetic), ('\x1d768', Alphabetic), ('\x1d769', Alphabetic), ('\x1d76a', Alphabetic), ('\x1d76b', Alphabetic), ('\x1d76c', Alphabetic), ('\x1d76d', Alphabetic), ('\x1d76e', Alphabetic), ('\x1d76f', Alphabetic), ('\x1d770', Alphabetic), ('\x1d771', Alphabetic), ('\x1d772', Alphabetic), ('\x1d773', Alphabetic), ('\x1d774', Alphabetic), ('\x1d775', Alphabetic), ('\x1d776', Alphabetic), ('\x1d777', Alphabetic), ('\x1d778', Alphabetic), ('\x1d779', Alphabetic), ('\x1d77a', Alphabetic), ('\x1d77b', Alphabetic), ('\x1d77c', Alphabetic), ('\x1d77d', Alphabetic), ('\x1d77e', Alphabetic), ('\x1d77f', Alphabetic), ('\x1d780', Alphabetic), ('\x1d781', Alphabetic), ('\x1d782', Alphabetic), ('\x1d783', Alphabetic), ('\x1d784', Alphabetic), ('\x1d785', Alphabetic), ('\x1d786', Alphabetic), ('\x1d787', Alphabetic), ('\x1d788', Alphabetic), ('\x1d789', Alphabetic), ('\x1d78a', Alphabetic), ('\x1d78b', Alphabetic), ('\x1d78c', Alphabetic), ('\x1d78d', Alphabetic), ('\x1d78e', Alphabetic), ('\x1d78f', Alphabetic), ('\x1d790', Alphabetic), ('\x1d791', Alphabetic), ('\x1d792', Alphabetic), ('\x1d793', Alphabetic), ('\x1d794', Alphabetic), ('\x1d795', Alphabetic), ('\x1d796', Alphabetic), ('\x1d797', Alphabetic), ('\x1d798', Alphabetic), ('\x1d799', Alphabetic), ('\x1d79a', Alphabetic), ('\x1d79b', Alphabetic), ('\x1d79c', Alphabetic), ('\x1d79d', Alphabetic), ('\x1d79e', Alphabetic), ('\x1d79f', Alphabetic), ('\x1d7a0', Alphabetic), ('\x1d7a1', Alphabetic), ('\x1d7a2', Alphabetic), ('\x1d7a3', Alphabetic), ('\x1d7a4', Alphabetic), ('\x1d7a5', Alphabetic), ('\x1d7a6', Alphabetic), ('\x1d7a7', Alphabetic), ('\x1d7a8', Alphabetic), ('\x1d7a9', Alphabetic), ('\x1d7aa', Alphabetic), ('\x1d7ab', Alphabetic), ('\x1d7ac', Alphabetic), ('\x1d7ad', Alphabetic), ('\x1d7ae', Alphabetic), ('\x1d7af', Alphabetic), ('\x1d7b0', Alphabetic), ('\x1d7b1', Alphabetic), ('\x1d7b2', Alphabetic), ('\x1d7b3', Alphabetic), ('\x1d7b4', Alphabetic), ('\x1d7b5', Alphabetic), ('\x1d7b6', Alphabetic), ('\x1d7b7', Alphabetic), ('\x1d7b8', Alphabetic), ('\x1d7b9', Alphabetic), ('\x1d7ba', Alphabetic), ('\x1d7bb', Alphabetic), ('\x1d7bc', Alphabetic), ('\x1d7bd', Alphabetic), ('\x1d7be', Alphabetic), ('\x1d7bf', Alphabetic), ('\x1d7c0', Alphabetic), ('\x1d7c1', Alphabetic), ('\x1d7c2', Alphabetic), ('\x1d7c3', Alphabetic), ('\x1d7c4', Alphabetic), ('\x1d7c5', Alphabetic), ('\x1d7c6', Alphabetic), ('\x1d7c7', Alphabetic), ('\x1d7c8', Alphabetic), ('\x1d7c9', Alphabetic), ('\x1d7ca', Alphabetic), ('\x1d7cb', Alphabetic), ('\x1d7ce', Normal), ('\x1d7cf', Normal), ('\x1d7d0', Normal), ('\x1d7d1', Normal), ('\x1d7d2', Normal), ('\x1d7d3', Normal), ('\x1d7d4', Normal), ('\x1d7d5', Normal), ('\x1d7d6', Normal), ('\x1d7d7', Normal), ('\x1d7d8', Normal), ('\x1d7d9', Normal), ('\x1d7da', Normal), ('\x1d7db', Normal), ('\x1d7dc', Normal), ('\x1d7dd', Normal), ('\x1d7de', Normal), ('\x1d7df', Normal), ('\x1d7e0', Normal), ('\x1d7e1', Normal), ('\x1d7e2', Normal), ('\x1d7e3', Normal), ('\x1d7e4', Normal), ('\x1d7e5', Normal), ('\x1d7e6', Normal), ('\x1d7e7', Normal), ('\x1d7e8', Normal), ('\x1d7e9', Normal), ('\x1d7ea', Normal), ('\x1d7eb', Normal), ('\x1d7ec', Normal), ('\x1d7ed', Normal), ('\x1d7ee', Normal), ('\x1d7ef', Normal), ('\x1d7f0', Normal), ('\x1d7f1', Normal), ('\x1d7f2', Normal), ('\x1d7f3', Normal), ('\x1d7f4', Normal), ('\x1d7f5', Normal), ('\x1d7f6', Normal), ('\x1d7f7', Normal), ('\x1d7f8', Normal), ('\x1d7f9', Normal), ('\x1d7fa', Normal), ('\x1d7fb', Normal), ('\x1d7fc', Normal), ('\x1d7fd', Normal), ('\x1d7fe', Normal), ('\x1d7ff', Normal), ('\x1ee00', Alphabetic), ('\x1ee01', Alphabetic), ('\x1ee02', Alphabetic), ('\x1ee03', Alphabetic), ('\x1ee05', Alphabetic), ('\x1ee06', Alphabetic), ('\x1ee07', Alphabetic), ('\x1ee08', Alphabetic), ('\x1ee09', Alphabetic), ('\x1ee0a', Alphabetic), ('\x1ee0b', Alphabetic), ('\x1ee0c', Alphabetic), ('\x1ee0d', Alphabetic), ('\x1ee0e', Alphabetic), ('\x1ee0f', Alphabetic), ('\x1ee10', Alphabetic), ('\x1ee11', Alphabetic), ('\x1ee12', Alphabetic), ('\x1ee13', Alphabetic), ('\x1ee14', Alphabetic), ('\x1ee15', Alphabetic), ('\x1ee16', Alphabetic), ('\x1ee17', Alphabetic), ('\x1ee18', Alphabetic), ('\x1ee19', Alphabetic), ('\x1ee1a', Alphabetic), ('\x1ee1b', Alphabetic), ('\x1ee1c', Alphabetic), ('\x1ee1d', Alphabetic), ('\x1ee1e', Alphabetic), ('\x1ee1f', Alphabetic), ('\x1ee21', Alphabetic), ('\x1ee22', Alphabetic), ('\x1ee24', Alphabetic), ('\x1ee27', Alphabetic), ('\x1ee29', Alphabetic), ('\x1ee2a', Alphabetic), ('\x1ee2b', Alphabetic), ('\x1ee2c', Alphabetic), ('\x1ee2d', Alphabetic), ('\x1ee2e', Alphabetic), ('\x1ee2f', Alphabetic), ('\x1ee30', Alphabetic), ('\x1ee31', Alphabetic), ('\x1ee32', Alphabetic), ('\x1ee34', Alphabetic), ('\x1ee35', Alphabetic), ('\x1ee36', Alphabetic), ('\x1ee37', Alphabetic), ('\x1ee39', Alphabetic), ('\x1ee3b', Alphabetic), ('\x1ee42', Alphabetic), ('\x1ee47', Alphabetic), ('\x1ee49', Alphabetic), ('\x1ee4b', Alphabetic), ('\x1ee4d', Alphabetic), ('\x1ee4e', Alphabetic), ('\x1ee4f', Alphabetic), ('\x1ee51', Alphabetic), ('\x1ee52', Alphabetic), ('\x1ee54', Alphabetic), ('\x1ee57', Alphabetic), ('\x1ee59', Alphabetic), ('\x1ee5b', Alphabetic), ('\x1ee5d', Alphabetic), ('\x1ee5f', Alphabetic), ('\x1ee61', Alphabetic), ('\x1ee62', Alphabetic), ('\x1ee64', Alphabetic), ('\x1ee67', Alphabetic), ('\x1ee68', Alphabetic), ('\x1ee69', Alphabetic), ('\x1ee6a', Alphabetic), ('\x1ee6c', Alphabetic), ('\x1ee6d', Alphabetic), ('\x1ee6e', Alphabetic), ('\x1ee6f', Alphabetic), ('\x1ee70', Alphabetic), ('\x1ee71', Alphabetic), ('\x1ee72', Alphabetic), ('\x1ee74', Alphabetic), ('\x1ee75', Alphabetic), ('\x1ee76', Alphabetic), ('\x1ee77', Alphabetic), ('\x1ee79', Alphabetic), ('\x1ee7a', Alphabetic), ('\x1ee7b', Alphabetic), ('\x1ee7c', Alphabetic), ('\x1ee7e', Alphabetic), ('\x1ee80', Alphabetic), ('\x1ee81', Alphabetic), ('\x1ee82', Alphabetic), ('\x1ee83', Alphabetic), ('\x1ee84', Alphabetic), ('\x1ee85', Alphabetic), ('\x1ee86', Alphabetic), ('\x1ee87', Alphabetic), ('\x1ee88', Alphabetic), ('\x1ee89', Alphabetic), ('\x1ee8b', Alphabetic), ('\x1ee8c', Alphabetic), ('\x1ee8d', Alphabetic), ('\x1ee8e', Alphabetic), ('\x1ee8f', Alphabetic), ('\x1ee90', Alphabetic), ('\x1ee91', Alphabetic), ('\x1ee92', Alphabetic), ('\x1ee93', Alphabetic), ('\x1ee94', Alphabetic), ('\x1ee95', Alphabetic), ('\x1ee96', Alphabetic), ('\x1ee97', Alphabetic), ('\x1ee98', Alphabetic), ('\x1ee99', Alphabetic), ('\x1ee9a', Alphabetic), ('\x1ee9b', Alphabetic), ('\x1eea1', Alphabetic), ('\x1eea2', Alphabetic), ('\x1eea3', Alphabetic), ('\x1eea5', Alphabetic), ('\x1eea6', Alphabetic), ('\x1eea7', Alphabetic), ('\x1eea8', Alphabetic), ('\x1eea9', Alphabetic), ('\x1eeab', Alphabetic), ('\x1eeac', Alphabetic), ('\x1eead', Alphabetic), ('\x1eeae', Alphabetic), ('\x1eeaf', Alphabetic), ('\x1eeb0', Alphabetic), ('\x1eeb1', Alphabetic), ('\x1eeb2', Alphabetic), ('\x1eeb3', Alphabetic), ('\x1eeb4', Alphabetic), ('\x1eeb5', Alphabetic), ('\x1eeb6', Alphabetic), ('\x1eeb7', Alphabetic), ('\x1eeb8', Alphabetic), ('\x1eeb9', Alphabetic), ('\x1eeba', Alphabetic), ('\x1eebb', Alphabetic), ('\x1eef0', Large), ('\x1eef1', Large), ('\x1f784', Normal), ('\x1f78c', Normal), ('\x1f78d', Normal), ('\x1f797', Normal), ('\x1f798', Normal), ('\x1f799', Normal), ('\x1f79d', Normal), ('\x1f79e', Normal), ('\x1f79f', Normal)] typst-0.8.0.2/src/Typst/Methods.hs0000644000000000000000000007760107346545000015117 0ustar0000000000000000{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-} module Typst.Methods ( getMethod, formatNumber, applyPureFunction ) where import Control.Monad (MonadPlus (mplus), foldM, void) import Control.Monad.Reader (MonadReader (ask), MonadTrans (lift)) import qualified Data.Array as Array import qualified Data.Foldable as F import Data.List (intersperse, sort, sortOn) import qualified Data.Map as M import qualified Data.Map.Ordered as OM import Data.Maybe (fromMaybe, listToMaybe, isJust) import Data.Text (Text) import qualified Data.Text as T import qualified Data.Vector as V import Text.Parsec import Text.Parsec.String (Parser) import Typst.Module.Standard (applyPureFunction) import Typst.Regex ( RE (..), RegexMatch (..), extract, makeRE, match, matchAll, replaceRegex, splitRegex, ) import Typst.Types import Typst.Util (allArgs, makeFunction, namedArg, nthArg) import Data.Time (toGregorian, dayOfWeek, formatTime, defaultTimeLocale, UTCTime(..)) -- import Debug.Trace getMethod :: MonadFail m => (forall n. Monad n => Val -> MP n ()) -> Val -> Text -> m Val getMethod updateVal val fld = do let methodUnimplemented name = fail $ "Method " <> show name <> " is not yet implemented" let noMethod typename name = fail $ typename <> " does not have a method " <> show name case val of VDict m -> case fld of "len" -> pure $ makeFunction $ pure $ VInteger (fromIntegral $ OM.size m) "at" -> pure $ makeFunction $ do key <- nthArg 1 defval <- namedArg "default" VNone case OM.lookup (Identifier key) m of Nothing -> pure defval Just v -> pure v "insert" -> do pure $ makeFunction $ do key <- nthArg 1 v <- nthArg 2 lift $ updateVal $ VDict $ m OM.|> (Identifier key, v) pure VNone "keys" -> pure $ makeFunction $ pure $ VArray $ V.fromList $ map (\(Identifier t, _) -> VString t) $ OM.assocs m "values" -> pure $ makeFunction $ pure $ VArray $ V.fromList $ map snd $ OM.assocs m "pairs" -> pure $ makeFunction $ do pure $ VArray $ V.fromList $ map ( \(Identifier k, v) -> VArray (V.fromList [VString k, v]) ) (OM.assocs m) "remove" -> pure $ makeFunction $ do key <- nthArg 1 case OM.lookup (Identifier key) m of Nothing -> pure VNone Just oldval -> do lift $ updateVal $ VDict $ OM.delete (Identifier key) m pure oldval _ -> case OM.lookup (Identifier fld) m of Just x -> pure x Nothing -> fail $ show (Identifier fld) <> " not found" VColor col -> case fld of "darken" -> pure $ makeFunction $ do (n :: Rational) <- nthArg 1 pure $ VColor $ case col of RGB r g b o -> RGB (r * (1 - n)) (g * (1 - n)) (b * (1 - n)) o CMYK c m y k -> CMYK (c * (1 - n)) (m * (1 - n)) (y * (1 - n)) (k * (1 - n)) Luma x -> Luma (x * (1 - n)) "lighten" -> pure $ makeFunction $ do (n :: Rational) <- nthArg 1 pure $ VColor $ case col of RGB r g b o -> RGB (r + ((1 - r) * n)) (g + ((1 - g) * n)) (b + ((1 - b) * n)) o CMYK c m y k -> CMYK (c + ((1 - c) * n)) (m + ((1 - m) * n)) (y + ((1 - y) * n)) (k + ((1 - k) * n)) Luma x -> Luma (x + ((1 - x) * n)) "negate" -> pure $ makeFunction $ do pure $ VColor $ case col of RGB r g b o -> RGB (1 - r) (1 - g) (1 - b) o CMYK c m y k -> CMYK (1 - c) (1 - m) (1 - y) k Luma x -> Luma (1 - x) _ -> noMethod "Color" fld VString t -> do let toPos n = if n < 0 then T.length t + n else n case fld of "len" -> pure $ makeFunction $ pure $ VInteger (fromIntegral $ T.length t) "rev" -> pure $ makeFunction $ pure $ VString (T.reverse t) "first" -> if T.null t then fail "string is empty" else pure $ makeFunction $ pure $ VString $ T.take 1 t "last" -> if T.null t then fail "string is empty" else pure $ makeFunction $ pure $ VString $ T.takeEnd 1 t "at" -> pure $ makeFunction $ do n <- toPos <$> nthArg 1 pure $ VString $ T.take 1 $ T.drop n t "slice" -> pure $ makeFunction $ do start <- toPos <$> nthArg 1 mbcount <- namedArg "count" Nothing end <- (toPos <$> nthArg 2) `mplus` pure (maybe (T.length t) (+ start) mbcount) if end < start then pure $ VString "" else pure $ VString $ T.take (end - start) $ T.drop start t "clusters" -> pure $ makeFunction $ do -- TODO this isn't right, but we'd need fancier libraries -- to get at grapheme clusters pure $ VArray $ V.fromList $ map VString $ T.chunksOf 1 t "codepoints" -> pure $ makeFunction $ do pure $ VArray $ V.fromList $ map VString $ T.chunksOf 1 t "contains" -> pure $ makeFunction $ do (patt :: RE) <- nthArg 1 pure $ VBoolean $ match patt t "starts-with" -> pure $ makeFunction $ do (RE reStr _) <- nthArg 1 patt <- makeRE ("^" <> reStr) pure $ VBoolean $ match patt t "ends-with" -> pure $ makeFunction $ do (RE reStr _) <- nthArg 1 patt <- makeRE (reStr <> "$") pure $ VBoolean $ match patt t "find" -> pure $ makeFunction $ do (patt :: RE) <- nthArg 1 pure $ let ((_, m, _) :: (Text, Text, Text)) = match patt t in VString m "position" -> pure $ makeFunction $ do (patt :: RE) <- nthArg 1 pure $ let ((off, _) :: (Int, Int)) = match patt t in VInteger (fromIntegral off) "match" -> pure $ makeFunction $ do (patt :: RE) <- nthArg 1 let (pre, whole, (_post :: Text), subs) = match patt t if T.null whole then pure VNone else pure $ VDict $ OM.fromList [ ("start", VInteger (fromIntegral $ T.length pre)), ("end", VInteger (fromIntegral $ T.length pre + T.length whole)), ("text", VString whole), ("captures", VArray $ V.fromList $ map VString subs) ] "matches" -> pure $ makeFunction $ do (patt :: RE) <- nthArg 1 let matchToDict matchArray = case Array.elems matchArray of [] -> VNone (off, len) : subs -> let submatches = map (\(o, l) -> VString $ extract (o, l) t) subs in VDict $ OM.fromList [ ("start", VInteger (fromIntegral off)), ("end", VInteger (fromIntegral off + fromIntegral len)), ("text", VString $ extract (off, len) t), ("captures", VArray $ V.fromList submatches) ] let matches = map matchToDict $ matchAll patt t pure $ VArray $ V.fromList matches "replace" -> pure $ makeFunction $ do patt :: RE <- nthArg 1 (replacement :: Val) <- nthArg 2 mbCount :: Maybe Int <- namedArg "count" Nothing case mbCount of Just 0 -> pure $ VString t _ -> case replacement of VString r -> pure $ VString $ replaceRegex patt mbCount (const r) t VSymbol (Symbol r _ _) -> pure $ VString $ replaceRegex patt mbCount (const r) t VFunction _ _ f -> pure $ VString $ replaceRegex patt mbCount ( \(RegexMatch start end txt captures) -> case applyPureFunction f [ VDict $ OM.fromList [ ("start", VInteger (fromIntegral start)), ("end", VInteger (fromIntegral end)), ("text", VString txt), ("captures", VArray (V.fromList (map VString captures))) ] ] of Success (VString s) -> s _ -> "" ) t _ -> fail "replacement must be string or function" "trim" -> pure $ makeFunction $ do (RE patt _) <- nthArg 1 `mplus` makeRE "[[:space:]]*" (repeated :: Bool) <- namedArg "repeat" True (mbAt :: Maybe Val) <- namedArg "at" Nothing let patt' = if repeated then "(" <> patt <> ")*" else patt patt'' <- case mbAt of Just (VAlignment (Just HorizStart) _) -> makeRE $ "^" <> patt' Just (VAlignment (Just HorizEnd) _) -> makeRE $ patt' <> "$" Nothing -> makeRE $ "(^" <> patt' <> ")|(" <> patt' <> "$)" _ -> fail "'at' expected either 'start' or 'end'" pure $ VString $ replaceRegex patt'' Nothing (const mempty) t "split" -> pure $ makeFunction $ do arg <- nthArg 1 case arg of VString "" -> pure $ VArray $ V.fromList $ map VString $ "" : T.chunksOf 1 t ++ [""] VString patt -> pure $ VArray $ V.fromList $ map VString $ T.splitOn patt t VRegex patt -> pure $ VArray $ V.fromList $ map VString $ splitRegex patt t _ -> -- defaults to split on whitespace pure $ VArray $ V.fromList $ map VString $ T.words t _ -> noMethod "String" fld VCounter key -> case fld of "display" -> pure $ makeFunction $ do mbnum <- M.lookup key . evalCounters <$> lift getState maybe (fail "counter not defined") (pure . VInteger) mbnum "step" -> pure $ makeFunction $ do lift $ updateState $ \st -> st {evalCounters = M.adjust (+ 1) key $ evalCounters st} pure VNone "update" -> pure $ makeFunction $ do mbnum <- M.lookup key . evalCounters <$> lift getState case mbnum of Nothing -> fail "counter not defined" Just num -> do newval <- nthArg 1 (newnum :: Integer) <- case newval of VFunction _ _ fn -> case applyPureFunction fn [VInteger num] of Failure e -> fail e Success v -> fromVal v _ -> fromVal newval lift $ updateState $ \st -> st {evalCounters = M.adjust (const newnum) key $ evalCounters st} pure VNone "at" -> methodUnimplemented fld "final" -> methodUnimplemented fld _ -> noMethod "Counter" fld VContent cs -> case fld of "func" -> pure $ makeFunction $ do case F.toList cs of [Elt name _ _] -> lift $ lookupIdentifier name [Txt _] -> lift $ lookupIdentifier "text" _ -> pure $ makeFunction $ do xs <- allArgs pure $ VContent $ foldMap valToContent xs "has" -> pure $ makeFunction $ do f <- nthArg 1 let hasField (Elt _ _ fields) = isJust $ M.lookup (Identifier f) fields hasField _ = False pure $ VBoolean $ any hasField cs "at" -> pure $ makeFunction $ do (field :: Text) <- ask >>= getPositionalArg 1 >>= fromVal defval <- namedArg "default" VNone case F.toList cs of [Elt _ _ fields] -> case M.lookup (Identifier field) fields of Just v -> pure v Nothing -> pure defval _ -> pure defval "location" -> methodUnimplemented fld "text" -> case F.toList cs of [Txt t] -> pure $ VString t [Elt "text" _ [("body", VContent [Txt t])]] -> pure $ VString t [Elt _ _ fields] | Just x <- M.lookup "text" fields -> pure x _ -> fail "Content is not a single text element" "fields" -> pure $ makeFunction $ do VDict <$> case F.toList cs of (Elt _ _ fields:_) -> pure $ OM.fromList $ M.toList fields _ -> pure OM.empty _ -> let childrenOrFallback = if fld == "children" then pure $ VArray $ V.fromList $ map (\x -> VContent [x]) $ F.toList cs else noMethod "Content" fld in case cs of [Elt _name _ fields] -> maybe childrenOrFallback pure $ M.lookup (Identifier fld) fields _ -> childrenOrFallback VTermItem t d -> case fld of "term" -> pure $ VContent t "description" -> pure $ VContent d _ -> noMethod "TermItem" fld VVersion xs -> case fld of "at" -> pure $ makeFunction $ do i <- nthArg 1 pure $ VInteger $ fromMaybe 0 $ listToMaybe $ drop i xs _ -> noMethod "Version" fld VArray v -> do let toPos n = if n < 0 then V.length v + n else n case fld of "len" -> pure $ makeFunction $ pure $ VInteger (fromIntegral $ V.length v) "first" -> pure $ makeFunction $ if V.null v then fail "empty array" else pure $ V.head v "last" -> pure $ makeFunction $ if V.null v then fail "empty array" else pure $ V.last v "at" -> pure $ makeFunction $ do pos <- toPos <$> nthArg 1 defval <- namedArg "default" VNone pure $ fromMaybe defval $ v V.!? pos "push" -> pure $ makeFunction $ do x <- nthArg 1 lift $ updateVal $ VArray $ V.snoc v x pure VNone "pop" -> pure $ makeFunction $ if V.null v then fail "empty array" else do lift $ updateVal $ VArray $ V.init v pure $ V.last v "slice" -> pure $ makeFunction $ do start <- toPos <$> nthArg 1 mbcount <- namedArg "count" Nothing end <- (toPos <$> nthArg 2) `mplus` pure (maybe (V.length v) (+ start) mbcount) if V.length v < end then fail "array contains insufficient elements for slice" else if end < start then pure $ VArray mempty else pure $ VArray $ V.slice start (end - start) v "split" -> pure $ makeFunction $ do spliton <- nthArg 1 let go v' = case V.break (== spliton) v' of (a, b) | V.null b -> [VArray a | not (V.null a)] (a, b) -> VArray a : go (V.drop 1 b) pure $ VArray $ V.fromList $ go v "intersperse" -> pure $ makeFunction $ do sep <- nthArg 1 pure $ VArray . V.fromList . intersperse sep . V.toList $ v "dedup" -> pure $ makeFunction $ do pure $ VArray $ deduplicateVector v "insert" -> pure $ makeFunction $ do pos <- toPos <$> nthArg 1 newval <- nthArg 2 if pos >= V.length v || pos < 0 then fail "insert position out of bounds in array" else do lift $ updateVal $ VArray $ V.snoc (V.take pos v) newval <> V.drop pos v pure VNone "remove" -> pure $ makeFunction $ do pos <- toPos <$> nthArg 1 if pos >= V.length v || pos < 0 then fail "remove position out of bounds in array" else do lift $ updateVal $ VArray $ V.take pos v <> V.drop (pos + 1) v pure $ fromMaybe VNone $ v V.!? pos "contains" -> pure $ makeFunction $ do item <- nthArg 1 pure $ VBoolean $ V.elem item v "find" -> pure $ makeFunction $ do Function fn <- nthArg 1 let go Nothing y = do res <- lift $ fn Arguments {positional = [y], named = OM.empty} case res of VBoolean True -> pure $ Just y VBoolean False -> pure Nothing _ -> fail "function does not return a boolean" go (Just z) _ = pure $ Just z res <- foldM go Nothing v case res of Just z -> pure z Nothing -> pure VNone "position" -> pure $ makeFunction $ do Function fn <- nthArg 1 let go (Left i) y = do res <- lift $ fn Arguments {positional = [y], named = OM.empty} case res of VBoolean True -> pure $ Right i VBoolean False -> pure $ Left (i + 1) _ -> fail "function does not return a boolean" go (Right i) _ = pure $ Right i res <- foldM go (Left 0) v case res of Right i -> pure $ VInteger i Left _ -> pure VNone "filter" -> pure $ makeFunction $ do Function fn <- nthArg 1 let predicate y = do res <- lift $ fn Arguments {positional = [y], named = OM.empty} case res of VBoolean True -> pure True VBoolean False -> pure False _ -> fail "function does not return a boolean" VArray <$> V.filterM predicate v "map" -> pure $ makeFunction $ do Function fn <- nthArg 1 let f y = lift $ fn Arguments {positional = [y], named = OM.empty} VArray <$> V.mapM f v "flatten" -> pure $ makeFunction $ pure $ VArray $ V.concat [v' | VArray v' <- V.toList v] "enumerate" -> pure $ makeFunction $ pure $ VArray $ V.zipWith (\x y -> VArray [x, y]) (V.map VInteger [0 .. (fromIntegral $ V.length v)]) v "fold" -> pure $ makeFunction $ do (start :: Val) <- nthArg 1 Function fn <- nthArg 2 let f acc y = fn Arguments {positional = [acc, y], named = OM.empty} lift $ foldM f start $ V.toList v "reduce" -> pure $ makeFunction $ do Function fn <- nthArg 1 let f acc y = fn Arguments {positional = [acc, y], named = OM.empty} case V.toList v of [] -> pure VNone (x:xs) -> lift $ foldM f x xs "any" -> pure $ makeFunction $ do Function fn <- nthArg 1 let predicate y = do res <- lift $ fn Arguments {positional = [y], named = OM.empty} case res of VBoolean True -> pure True VBoolean False -> pure False _ -> fail "function not return a boolean" (VBoolean . V.any id) <$> mapM predicate v "all" -> pure $ makeFunction $ do Function fn <- nthArg 1 let predicate y = do res <- lift $ fn Arguments {positional = [y], named = OM.empty} case res of VBoolean True -> pure True VBoolean False -> pure False _ -> fail "function not return a boolean" (VBoolean . V.all id) <$> mapM predicate v "rev" -> pure $ makeFunction $ pure $ VArray $ V.reverse v "join" -> pure $ makeFunction $ do separator <- nthArg 1 lastsep <- namedArg "last" separator let xs' = F.toList v let xs = case xs' of [] -> [] _ -> intersperse separator (init xs') ++ [lastsep, last xs'] foldM joinVals VNone xs "sorted" -> pure $ makeFunction $ do (mbKeyFn :: Maybe Function) <- namedArg "key" Nothing case mbKeyFn of Nothing -> pure $ VArray $ V.fromList $ sort $ V.toList v Just (Function kf) -> do let kf' x = lift $ kf Arguments {positional = [x], named = OM.empty} VArray . V.fromList . map fst . sortOn snd <$> (mapM (\x -> (x,) <$> kf' x) (V.toList v)) "zip" -> pure $ makeFunction $ do (xs :: [Val]) <- positional <$> ask let len = V.length v pure $ VArray $ V.filter (/= VNone) $ V.map (\i -> maybe VNone (VArray . V.fromList) (mapM (\x -> case x of VArray v' -> v' V.!? i _ -> Nothing) (val : xs))) (V.enumFromTo 0 (len - 1)) "to-dict" -> pure $ makeFunction $ VDict . OM.fromList <$> mapM (\x -> do vx <- fromVal x case V.toList vx of [a,b] -> do k <- fromVal a pure (Identifier k, b) _ -> fail "vector has wrong shape") (V.toList v) "windows" -> pure $ makeFunction $ do (windowsize :: Int) <- nthArg 1 case V.length v - windowsize of n | n < 0 -> pure $ VArray mempty | otherwise -> pure $ VArray $ V.fromList $ map (\x -> VArray $ V.take windowsize $ V.drop x v) [0..n] "sum" -> pure $ makeFunction $ do mbv <- namedArg "default" Nothing case V.uncons v of Nothing -> maybe (fail "sum of empty array with no default value") pure mbv Just (h, rest) -> pure $ fromMaybe VNone $ V.foldl ( \mbsum x -> case mbsum of Nothing -> Nothing Just y -> maybePlus y x ) (Just h) rest "product" -> pure $ makeFunction $ do mbv <- namedArg "default" Nothing case V.uncons v of Nothing -> maybe (fail "product of empty array with no default value") pure mbv Just (h, rest) -> pure $ fromMaybe VNone $ V.foldl ( \mbsum x -> case mbsum of Nothing -> Nothing Just y -> maybeTimes y x ) (Just h) rest _ -> noMethod "Array" fld VFunction mbName scope (Function f) -> case fld of "with" -> pure $ makeFunction $ do args <- ask pure $ VFunction mbName scope $ Function $ \args' -> f (args <> args') "where" -> pure $ makeFunction $ do args <- ask case mbName of Nothing -> fail "function is not an element function" Just name -> pure $ VSelector $ SelectElement name (OM.assocs (named args)) _ -> noMethod "Function" fld VSelector sel -> case fld of "or" -> pure $ makeFunction $ do (other :: Selector) <- nthArg 1 pure $ VSelector $ SelectOr other sel "and" -> pure $ makeFunction $ do (other :: Selector) <- nthArg 1 pure $ VSelector $ SelectAnd other sel "before" -> pure $ makeFunction $ do (other :: Selector) <- nthArg 1 pure $ VSelector $ SelectBefore other sel "after" -> pure $ makeFunction $ do (other :: Selector) <- nthArg 1 pure $ VSelector $ SelectAfter other sel _ -> noMethod "Selector" fld VArguments args -> case fld of "pos" -> pure $ makeFunction $ pure $ VArray $ V.fromList (positional args) "at" -> pure $ makeFunction $ do (x :: Val) <- nthArg 1 defval <- namedArg "default" VNone case x of VInteger{} -> do i <- fromVal x case positional args of xs | i < length xs -> pure $ xs !! i | otherwise -> pure defval VString t -> case OM.lookup (Identifier t) (named args) of Just a -> pure a Nothing -> pure defval _ -> pure defval "named" -> pure $ makeFunction $ pure $ VDict $ named args _ -> noMethod "Arguments" fld VDateTime mbdate mbtime -> do let toSeconds = (floor :: Double -> Integer) . realToFrac case fld of "year" -> pure $ makeFunction $ pure $ case toGregorian <$> mbdate of Nothing -> VNone Just (y,_,_) -> VInteger (fromIntegral y) "month" -> pure $ makeFunction $ pure $ case toGregorian <$> mbdate of Nothing -> VNone Just (_,m,_) -> VInteger (fromIntegral m) "day" -> pure $ makeFunction $ pure $ case toGregorian <$> mbdate of Nothing -> VNone Just (_,_,d) -> VInteger (fromIntegral d) "weekday" -> pure $ makeFunction $ pure $ case dayOfWeek <$> mbdate of Nothing -> VNone Just d-> VInteger (fromIntegral $ fromEnum d) "hour" -> pure $ makeFunction $ pure $ case toSeconds <$> mbtime of Nothing -> VNone Just t -> VInteger $ t `div` 3600 "minute" -> pure $ makeFunction $ pure $ case toSeconds <$> mbtime of Nothing -> VNone Just t -> VInteger $ (t `mod` 3600) `div` 60 "second" -> pure $ makeFunction $ pure $ case toSeconds <$> mbtime of Nothing -> VNone Just t -> VInteger $ t `mod` 60 "display" -> pure $ makeFunction $ do mbfmt <- nthArg 1 `mplus` pure Nothing mbformat <- case mbfmt of Nothing -> pure Nothing Just fmt -> case toTimeFormat <$> parseDisplayFormat fmt of Left e -> fail $ "Could not parse display format: " <> show e Right f -> pure $ Just f pure $ VString $ T.pack $ case (mbdate, mbtime) of (Nothing, Just t) -> formatTime defaultTimeLocale (fromMaybe "%X" mbformat) t (Just d, Nothing) -> formatTime defaultTimeLocale (fromMaybe "%F" mbformat) d (Nothing, Nothing) -> "" (Just d, Just t) -> formatTime defaultTimeLocale (fromMaybe "%X %F" mbformat) (UTCTime d t) _ -> noMethod "DateTime" fld _ -> noMethod (drop 1 $ takeWhile (/= ' ') $ show val) fld formatNumber :: Text -> Int -> Text formatNumber t n = F.foldMap go $ T.unpack t where go '1' | n >= 0 = T.pack (show n) go 'a' | n >= 1 = T.singleton $ cycle ['a' .. 'z'] !! (n - 1 `mod` 26) go 'A' | n >= 1 = T.singleton $ cycle ['A' .. 'Z'] !! (n - 1 `mod` 26) go 'i' | n >= 1 = T.toLower $ toRomanNumeral n go 'I' | n >= 1 = toRomanNumeral n go 'い' | n >= 1 = T.pack (show n) -- TODO go 'イ' | n >= 1 = T.pack (show n) -- TODO go 'א' | n >= 1 = T.pack (show n) -- TODO go '*' | n >= 1 = T.singleton $ cycle ['*', '†', '‡', '§', '¶', '‖'] !! (n - 1 `mod` 6) | otherwise = "-" go c = T.singleton c toRomanNumeral :: Int -> T.Text toRomanNumeral x | x >= 4000 || x < 0 = "?" | x >= 1000 = "M" <> toRomanNumeral (x - 1000) | x >= 900 = "CM" <> toRomanNumeral (x - 900) | x >= 500 = "D" <> toRomanNumeral (x - 500) | x >= 400 = "CD" <> toRomanNumeral (x - 400) | x >= 100 = "C" <> toRomanNumeral (x - 100) | x >= 90 = "XC" <> toRomanNumeral (x - 90) | x >= 50 = "L" <> toRomanNumeral (x - 50) | x >= 40 = "XL" <> toRomanNumeral (x - 40) | x >= 10 = "X" <> toRomanNumeral (x - 10) | x == 9 = "IX" | x >= 5 = "V" <> toRomanNumeral (x - 5) | x == 4 = "IV" | x >= 1 = "I" <> toRomanNumeral (x - 1) | otherwise = "" -- parser for DateTime display format data FormatPart = Literal String | Variable String [(String, String)] deriving Show parseDisplayFormat :: String -> Either ParseError [FormatPart] parseDisplayFormat = parse (many pFormatPart <* eof) "" pFormatPart :: Parser FormatPart pFormatPart = pVariable <|> pLiteral pLiteral :: Parser FormatPart pLiteral = Literal <$> many1 (satisfy (/='[')) pVariable :: Parser FormatPart pVariable = do void $ char '[' name <- many1 letter spaces modifiers <- many pModifier void $ char ']' pure $ Variable name modifiers pModifier :: Parser (String, String) pModifier = do name <- many1 letter void $ char ':' spaces val <- many1 alphaNum spaces pure (name, val) -- convert formatparts into Data.Time format string toTimeFormat :: [FormatPart] -> String toTimeFormat = concatMap toTimeFormatPart toTimeFormatPart :: FormatPart -> String toTimeFormatPart (Literal s) = foldr esc "" s where esc '%' = ("%%" ++) esc '\t' = ("%t" ++) esc '\n' = ("%n" ++) esc c = (c:) toTimeFormatPart (Variable "year" mods) = withPadding mods $ case lookup "repr" mods of Just "last_two" -> "y" _ -> "Y" toTimeFormatPart (Variable "month" mods) = withPadding mods $ case lookup "repr" mods of Just "numerical" -> "%m" Just "long" -> "b" Just "short" -> "h" _ -> "m" toTimeFormatPart (Variable "day" mods) = case lookup "padding" mods of Just "space" -> "%e" Just "zero" -> "%d" _ -> "%e" toTimeFormatPart (Variable "week_number" mods) = withPadding mods $ case lookup "repr" mods of Just "ISO" -> "V" Just "sunday" -> "U" Just "monday" -> "W" _ -> "V" toTimeFormatPart (Variable "weekday" mods) = withPadding mods $ case lookup "repr" mods of Just "long" -> "A" Just "short" -> "a" Just "sunday" -> "w" Just "monday" -> "u" _ -> "" toTimeFormatPart (Variable "hour" mods) = case lookup "hour" mods of Just "24" | lookup "padding" mods == Just "zero" -> "%H" | otherwise -> "%k" Just "12" | lookup "padding" mods == Just "zero" -> "%I" | otherwise -> "%l" _ -> "%k" toTimeFormatPart (Variable "period" mods) = case lookup "case" mods of Just "lower" -> "%P" _ -> "%p" toTimeFormatPart (Variable "minute" _) = "%M" toTimeFormatPart (Variable "second" _) = "%S" toTimeFormatPart _ = "?" withPadding :: [(String, String)] -> String -> String withPadding mods s = '%' : case lookup "padding" mods of Just "zero" -> '0' : s Just "space" -> '_' : s _ -> s deduplicateVector :: Eq a => V.Vector a -> V.Vector a deduplicateVector = V.foldl' (\acc x -> if x `V.elem` acc then acc else acc `V.snoc` x) mempty typst-0.8.0.2/src/Typst/Module/0000755000000000000000000000000007346545000014372 5ustar0000000000000000typst-0.8.0.2/src/Typst/Module/Calc.hs0000644000000000000000000001417107346545000015574 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} module Typst.Module.Calc ( calcModule, ) where import qualified Data.Map as M import Data.Maybe (fromMaybe, mapMaybe) import Typst.Types import Typst.Util calcModule :: M.Map Identifier Val calcModule = M.fromList [ ( "abs", makeFunction $ do (v :: Val) <- nthArg 1 (n :: Double) <- fromVal v pure $ if n < 0 then fromMaybe v $ maybeNegate v else v ), ( "binom", makeFunction $ do (n :: Integer) <- nthArg 1 (k :: Integer) <- nthArg 2 pure $ VInteger $ product [(1 + n - k) .. n] `div` product [1 .. k] ), ( "ceil", makeFunction $ do (x :: Double) <- nthArg 1 pure $ VInteger (ceiling x) ), ( "clamp", makeFunction $ do value <- nthArg 1 minval <- nthArg 2 maxval <- nthArg 3 pure $ if value < minval then minval else if value > maxval then maxval else value ), ( "even", makeFunction $ do v <- nthArg 1 case v of VInteger i -> pure $ VBoolean $ even i _ -> fail "even requires an integer argument" ), ( "fact", makeFunction $ do v <- nthArg 1 case v of VInteger i | i == 0 -> pure $ VInteger 1 | i > 0 -> pure $ VInteger $ product [1 .. i] _ -> fail "odd requires a non-negative integer argument" ), ( "floor", makeFunction $ do (x :: Double) <- nthArg 1 pure $ VInteger (floor x) ), ( "fract", makeFunction $ do (v :: Val) <- nthArg 1 case v of VInteger _ -> pure $ VInteger 0 VFloat x -> pure $ VFloat (x - fromIntegral (truncate x :: Integer)) _ -> fail "fract requires integer or float argument" ), ( "gcd", makeFunction $ do x <- nthArg 1 y <- nthArg 2 pure $ VInteger $ gcd x y ), ( "lcm", makeFunction $ do x <- nthArg 1 y <- nthArg 2 pure $ VInteger $ lcm x y ), ( "log", makeFunction $ do b <- namedArg "base" 10 n <- nthArg 1 if n <= 0 then fail "value must be strictly positive" else if b == 0 then fail "base may not be 0" else pure $ VFloat $ logBase b n ), ( "max", makeFunction $ do vs <- allArgs case vs of [] -> fail "max requires one or more argument" _ : _ -> pure $ maximum vs ), ( "min", makeFunction $ do vs <- allArgs case vs of [] -> fail "min requires one or more argument" _ : _ -> pure $ minimum vs ), ( "norm", makeFunction $ do p <- namedArg "p" (2.0 :: Double) let extractFloat (VFloat x) = Just x extractFloat (VInteger x) = Just (fromIntegral x) extractFloat _ = Nothing vs <- mapMaybe extractFloat <$> allArgs case vs of [] -> fail "norm requires one or more argument" _ : _ -> pure $ VFloat $ (sum (map ((**p) . abs) vs))**(1.0/p) ), ( "odd", makeFunction $ do v <- nthArg 1 case v of VInteger i -> pure $ VBoolean $ odd i _ -> fail "odd requires an integer argument" ), ( "perm", makeFunction $ do b <- nthArg 1 n <- nthArg 2 pure $ if n > b then VInteger 0 else VInteger $ div (product [1 .. b]) (product [1 .. (b - n)]) ), ( "pow", makeFunction $ do base <- nthArg 1 ex <- nthArg 2 case (base, ex) of (VInteger x, VInteger y) -> pure $ VInteger $ x ^ y _ -> do (base' :: Double) <- fromVal base (ex' :: Integer) <- fromVal ex pure $ VFloat $ (base') ^ (ex') ), ( "quo", makeFunction $ do (a :: Integer) <- nthArg 1 (b :: Integer) <- nthArg 2 pure $ VInteger $ a `quot` b ), ( "rem", makeFunction $ do (a :: Integer, f :: Double) <- properFraction <$> nthArg 1 (b :: Integer) <- nthArg 2 pure $ if f == 0 then VInteger $ rem a b else VFloat $ fromIntegral (rem a b) + f ), ( "round", makeFunction $ do (x :: Double) <- nthArg 1 (digits :: Integer) <- namedArg "digits" 0 pure $ if digits > 0 then VFloat $ fromIntegral (round (x * 10 ^ digits) :: Integer) / 10 ^ digits else VInteger (round x) ), ( "trunc", makeFunction $ do (x :: Double) <- nthArg 1 pure $ VInteger $ truncate x ), ( "sqrt", makeFunction $ do n <- nthArg 1 if n < 0 then fail "can't take square root of negative number" else pure $ VFloat $ sqrt n ), ("exp", makeFunction $ VFloat . exp <$> nthArg 1), ("ln", makeFunction $ VFloat . log <$> nthArg 1), ("cos", makeFunction $ VFloat . cos <$> nthArg 1), ("cosh", makeFunction $ VFloat . cosh <$> nthArg 1), ("sin", makeFunction $ VFloat . sin <$> nthArg 1), ("sinh", makeFunction $ VFloat . sinh <$> nthArg 1), ("tan", makeFunction $ VFloat . tan <$> nthArg 1), ("tanh", makeFunction $ VFloat . tanh <$> nthArg 1), ("acos", makeFunction $ VAngle . acos <$> nthArg 1), ("asin", makeFunction $ VAngle . asin <$> nthArg 1), ("atan", makeFunction $ VAngle . atan <$> nthArg 1), ("atan2", makeFunction $ VAngle <$> (atan2 <$> nthArg 1 <*> nthArg 2)), ("e", VFloat (exp 1)), ("pi", VFloat pi), ("tau", VFloat (2 * pi)) ] typst-0.8.0.2/src/Typst/Module/Math.hs0000644000000000000000000001453707346545000015631 0ustar0000000000000000{-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} module Typst.Module.Math ( mathModule, ) where import qualified Data.Map as M import qualified Data.Sequence as Seq import qualified Data.Vector as V import Text.Parsec (getPosition) import Typst.Types import Typst.Util mathModule :: M.Map Identifier Val mathModule = M.fromList [ makeElement (Just "math") "frac" [ ("num", One TContent), ("denom", One TContent) ], makeElement (Just "math") "accent" [ ("base", One TContent), ("accent", One (TContent :|: TString :|: TSymbol)) ], makeElement (Just "math") "attach" [("base", One TContent)], makeElement (Just "math") "class" [("class", One TString), ("body", One TContent)], makeElement (Just "math") "scripts" [("body", One TContent)], makeElement (Just "math") "limits" [("body", One TContent)], makeElement (Just "math") "binom" [ ("upper", One TContent), ("lower", One TContent) ], makeElement (Just "math") "cancel" [("body", One TContent)], makeElement (Just "math") "equation" [("body", One TContent)], makeElement (Just "math") "root" [ ("index", One (TNone :|: TContent :|: TInteger :|: TRatio)), ("radicand", One TContent) ], makeElement (Just "math") "display" [("content", One TContent)], makeElement (Just "math") "inline" [("content", One TContent)], makeElement (Just "math") "script" [("content", One TContent)], makeElement (Just "math") "sscript" [("content", One TContent)], makeElement (Just "math") "sqrt" [("radicand", One TContent)], makeElement (Just "math") "cases" [("children", Many TContent)], makeElement (Just "math") "lr" [("body", Many TContent)], makeElement (Just "math") "mid" [("body", One TContent)], makeElement (Just "math") "abs" [("body", One TContent)], makeElement (Just "math") "norm" [("body", One TContent)], makeElement (Just "math") "floor" [("body", One TContent)], makeElement (Just "math") "ceil" [("body", One TContent)], ("mat", matrixElement), makeElement (Just "math") "round" [("body", One TContent)], makeElement (Just "math") "serif" [("body", One TContent)], makeElement (Just "math") "sans" [("body", One TContent)], makeElement (Just "math") "frak" [("body", One TContent)], makeElement (Just "math") "mono" [("body", One TContent)], makeElement (Just "math") "bb" [("body", One TContent)], makeElement (Just "math") "cal" [("body", One TContent)], makeElement (Just "math") "cal" [("body", One TContent)], makeElement (Just "math") "upright" [("body", One TContent)], makeElement (Just "math") "italic" [("body", One TContent)], makeElement (Just "math") "bold" [("body", One TContent)], makeElement (Just "math") "op" [("text", One TAny)], makeElement (Just "math") "underline" [("body", One TContent)], makeElement (Just "math") "overline" [("body", One TContent)], makeElement (Just "math") "underparen" [("body", One TContent)], makeElement (Just "math") "undershell" [("body", One TContent)], makeElement (Just "math") "overparen" [("body", One TContent)], makeElement (Just "math") "overshell" [("body", One TContent)], makeElement (Just "math") "stretch" [("body", One TContent)], makeElement (Just "math") "underbrace" [ ("body", One TContent), ("annotation", One (TNone :|: TContent)) ], makeElement (Just "math") "overbrace" [ ("body", One TContent), ("annotation", One (TNone :|: TContent)) ], makeElement (Just "math") "underbracket" [ ("body", One TContent), ("annotation", One (TNone :|: TContent)) ], makeElement (Just "math") "overbracket" [ ("body", One TContent), ("annotation", One (TNone :|: TContent)) ], makeElement (Just "math") "vec" [("children", Many TContent)], makeElement (Just "math") "alignpoint" [] -- not a real element, but needed internally ] <> M.map (VContent . Seq.singleton) predefinedOperators <> M.map (VContent . Seq.singleton) spaceConstants <> [ ("dif", VSymbol (Symbol "d" False mempty)), ("Dif", VSymbol (Symbol "D" False mempty)) ] matrixElement :: Val matrixElement = VFunction (Just "mat") mempty $ Function $ \args -> do pos <- getPosition -- get array args first let isArray (VArray {}) = True isArray _ = False let (as, bs) = span isArray (positional args) let rows = if null bs then as else as ++ [VArray (V.fromList bs)] -- then any leftovers fields <- M.insert "rows" (VArray (V.fromList rows)) <$> argsToFields [] args pure $ VContent . Seq.singleton $ Elt "math.mat" (Just pos) fields spaceConstants :: M.Map Identifier Content spaceConstants = [ ("thin", Txt "\8201"), ("thick", Txt "\8197"), ("med", Txt "\8287"), ("quad", Txt "\8195"), ("wide", Txt "\8195\8195") ] predefinedOperators :: M.Map Identifier Content predefinedOperators = M.fromList $ map ( \t -> ( Identifier t, Elt "math.op" Nothing [("text", VString t), ("limits", VBoolean True)] ) ) [ "limsup", "liminf", "det", "gcd", "inf", "lim", "max", "min", "Pr", "sup", "id", "im", "tr" ] ++ map ( \t -> ( Identifier t, Elt "math.op" Nothing [("text", VString t), ("limits", VBoolean False)] ) ) [ "arccos", "arcsin", "arctan", "arg", "cos", "cosh", "cot", "csch", "ctg", "coth", "csc", "deg", "dim", "exp", "hom", "mod", "ker", "lcm", "lg", "ln", "log", "sec", "sech", "sin", "sinc", "sinh", "tan", "tg", "tanh" ] typst-0.8.0.2/src/Typst/Module/Standard.hs0000644000000000000000000005250707346545000016477 0ustar0000000000000000{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module Typst.Module.Standard ( standardModule, symModule, sysModule, loadFileText, getPath, applyPureFunction ) where import Paths_typst (version) import Data.Version (showVersion) import Control.Applicative ((<|>)) import Control.Monad (mplus, unless) import Control.Monad.Reader (lift, ReaderT) import qualified Data.Aeson as Aeson import qualified Data.ByteString.Lazy as BL import qualified Data.Csv as Csv import qualified Data.Map as M import qualified Data.Map.Ordered as OM import Data.Maybe (mapMaybe) import Data.Ratio ((%)) import qualified Data.Sequence as Seq import Data.Text (Text) import qualified Data.Text as T import qualified Data.Text.Encoding as TE import qualified Data.Vector as V import qualified Data.Yaml as Yaml import Text.Parsec (getPosition, getState, updateState, runParserT) import Text.Read (readMaybe) import qualified Text.XML as XML import qualified Toml import Typst.Emoji (typstEmojis) import Typst.Module.Calc (calcModule) import Typst.Module.Math (mathModule) import Typst.Symbols (typstSymbols) import Typst.Types import Typst.Util import System.FilePath.Posix ((), normalise) import Data.Time (UTCTime(..)) import Data.Time.Calendar (fromGregorianValid) import Data.Time.Clock (secondsToDiffTime) standardModule :: M.Map Identifier Val standardModule = M.fromList $ [ ("math", VModule "math" mathModule), ("sym", VModule "sym" symModule), ("sys", VModule "sys" sysModule), ("emoji", VModule "emoji" emojiModule), ("calc", VModule "calc" calcModule) ] ++ types ++ colors ++ directions ++ alignments ++ textual ++ layout ++ visualize ++ meta ++ foundations ++ construct ++ time ++ dataLoading sysModule :: M.Map Identifier Val sysModule = M.fromList [ ("version", VVersion [0,12,0]) , ("inputs", VDict (OM.fromList [("typst-hs-version", VString (T.pack (showVersion version)))])) ] symModule :: M.Map Identifier Val symModule = M.map VSymbol $ makeSymbolMap typstSymbols emojiModule :: M.Map Identifier Val emojiModule = M.map VSymbol $ makeSymbolMap typstEmojis textual :: [(Identifier, Val)] textual = [ makeElement Nothing "text" [ ("color", One TColor), ("size", One TLength), ("body", One (TContent :|: TString :|: TSymbol)) ], makeElement Nothing "emph" [("body", One TContent)], makeElement Nothing "linebreak" [], makeElement Nothing "strong" [("body", One TContent)], makeElement Nothing "sub" [("body", One TContent)], makeElement Nothing "super" [("body", One TContent)], makeElement Nothing "strike" [("body", One TContent)], makeElement Nothing "smallcaps" [("body", One TContent)], makeElement Nothing "underline" [("body", One TContent)], makeElement Nothing "overline" [("body", One TContent)], makeElement Nothing "highlight" [("body", One TContent)], makeElement Nothing "raw" [("text", One TString)], makeElement Nothing "smartquote" [], makeElement Nothing "lower" [("text", One (TString :|: TContent))], ( "lower", makeFunction $ do val <- nthArg 1 case val of VString t -> pure $ VString $ T.toLower t VContent cs -> do pos <- lift getPosition pure $ VContent . Seq.singleton $ Elt "lower" (Just pos) [("text", VContent cs)] _ -> fail "argument must be string or content" ), ( "upper", makeFunction $ do val <- nthArg 1 case val of VString t -> pure $ VString $ T.toUpper t VContent cs -> do pos <- lift getPosition pure $ VContent . Seq.singleton $ Elt "upper" (Just pos) [("text", VContent cs)] _ -> fail "argument must be string or content" ) ] layout :: [(Identifier, Val)] layout = [ makeElement Nothing "align" [ ("alignment", One TAlignment), ("body", One TContent) ], makeElement Nothing "skew" [("body", One TContent)], makeElement Nothing "block" [("body", One TContent)], makeElement Nothing "box" [("body", One TContent)], makeElement Nothing "colbreak" [], makeElement Nothing "columns" [("count", One TInteger), ("body", One TContent)], makeElement Nothing "h" [("amount", One (TLength :|: TRatio :|: TFraction))], makeElement Nothing "v" [("amount", One (TLength :|: TRatio :|: TFraction))], makeElement Nothing "hide" [("body", One TContent)], makeElementWithScope Nothing "enum" [("children", Many TContent)] [ makeElement (Just "enum") "item" [ ("number", One (TInteger :|: TNone)), ("body", One TContent) ] ], makeElementWithScope Nothing "list" [("children", Many TContent)] [makeElement (Just "list") "item" [("body", One TContent)]], -- for "measure" see below makeElement Nothing "move" [("body", One TContent)], -- the fact that pad can take a positional param for a length (= rest) is undocumented! makeElement Nothing "pad" [("rest", One (TLength :|: TRatio :|: TNone)), ("body", One TContent)], makeElement Nothing "page" [("body", One TContent)], makeElement Nothing "pagebreak" [], makeElement Nothing "par" [("body", One TContent)], makeElement Nothing "parbreak" [], makeElement Nothing "place" [("alignment", One (TAlignment :|: TNone)), ("body", One TContent)], makeElement Nothing "repeat" [("body", One TContent)], makeElement Nothing "rotate" [("angle", One TAngle), ("body", One TContent)], -- the fact that scale can take a positional factor is undocumented! makeElement Nothing "scale" [("factor", One (TRatio :|: TNone)), ("body", One TContent)], makeElement Nothing "stack" [("children", Many (TLength :|: TRatio :|: TFraction :|: TContent))], makeElementWithScope Nothing "table" [("children", Many TContent)] [ makeElement (Just "table") "cell" [ ("body", One TContent) ] , makeElement (Just "table") "hline" [] , makeElement (Just "table") "vline" [] , makeElement (Just "table") "header" [ ("children", Many TContent) ] , makeElement (Just "table") "footer" [ ("children", Many TContent) ] ], makeElementWithScope Nothing "grid" [("children", Many TContent)] [ makeElement (Just "grid") "cell" [ ("body", One TContent) ] , makeElement (Just "grid") "hline" [] , makeElement (Just "grid") "vline" [] , makeElement (Just "grid") "header" [ ("children", Many TContent) ] , makeElement (Just "grid") "footer" [ ("children", Many TContent) ] ], makeElementWithScope Nothing "terms" [("children", Many TTermItem)] [ makeElement (Just "terms") "item" [ ("term", One TContent), ("description", One TContent) ] ], ( "measure", makeFunction $ do -- content <- nthArg 1 -- styles <- nthArg 2 pure $ VDict $ OM.fromList [ ("width", VLength (LExact 1.0 LEm)), ("height", VLength (LExact 1.0 LEm)) ] ) -- these are fake widths so we don't crash... ] visualize :: [(Identifier, Val)] visualize = [ makeElement Nothing "circle" [("body", One (TContent :|: TNone))], makeElement Nothing "ellipse" [("body", One (TContent :|: TNone))], makeElement Nothing "image" [("source", One (TString :|: TBytes))], makeElement Nothing "line" [], makeElement Nothing "path" [("vertices", Many TArray)], makeElement Nothing "polygon" [("vertices", Many TArray)], makeElement Nothing "rect" [("body", One (TContent :|: TNone))], makeElement Nothing "square" [("body", One (TContent :|: TNone))] ] meta :: [(Identifier, Val)] meta = [ makeElement Nothing "bibliography" [("source", One (TString :|: TArray :|: TBytes))], makeElement Nothing "cite" [("key", One TLabel)], makeElement Nothing "document" [], makeElementWithScope Nothing "figure" [("body", One TContent)] [makeElement (Just "figure") "caption" [("body", One TContent)]], makeElement Nothing "heading" [("body", One TContent)], makeElement Nothing "quote" [("body", One TContent)], makeElement Nothing "layout" [("func", One TFunction)], makeElement Nothing "link" [ ("dest", One (TString :|: TLabel :|: TDict :|: TLocation)), ("body", One TContent) ], makeElement Nothing "locate" [("func", One TFunction)], makeElement Nothing "numbering" [ ("numbering", One (TString :|: TFunction)), ("numbers", Many TInteger) ], makeElementWithScope Nothing "outline" [] [makeElement (Just "outline") "entry" [("level", One TInteger), ("element", One TContent), ("body", One TContent), ("fill", One (TContent :|: TNone)), ("page", One TContent)]], makeElement Nothing "query" [ ("target", One (TLabel :|: TFunction)), ("location", One TLocation) ], makeElement Nothing "metadata" [ ("value", One TAny) ], makeElement Nothing "ref" [("target", One TLabel)], makeElement Nothing "state" [("key", One TString), ("init", One TAny)], makeElementWithScope Nothing "footnote" [("body", One TContent)] [makeElement (Just "footnote") "entry" [("note", One TContent)]], ("style", makeFunction $ do Function f <- nthArg 1 case applyPureFunction (Function f) [VStyles] of Success x -> pure x Failure e -> fail e) ] types :: [(Identifier, Val)] types = [ ("array", VType TArray) , ("bool", VType TBoolean) , ("content", VType TContent) , ("dictionary", VType TDict) , ("int", VType TInteger) , ("float", VType TFloat) , ("regex", VType TRegex) , ("length", VType TLength) , ("alignment", VType TAlignment) , ("color", VType TColor) , ("symbol", VType TSymbol) , ("str", VType TString) , ("label", VType TLabel) , ("version", VType TVersion) , ("bytes", VType TBytes) ] colors :: [(Identifier, Val)] colors = [ ("red", VColor $ RGB (0xff % 0xff) (0x41 % 0xff) (0x36 % 0xff) 1), ("blue", VColor $ RGB (0x00 % 0xff) (0x74 % 0xff) (0xd9 % 0xff) 1), ("black", VColor $ RGB (0x00 % 0xff) (0x00 % 0xff) (0x00 % 0xff) 1), ("gray", VColor $ RGB (0xaa % 0xff) (0xaa % 0xff) (0xaa % 0xff) 1), ("silver", VColor $ RGB (0xdd % 0xff) (0xdd % 0xff) (0xdd % 0xff) 1), ("white", VColor $ RGB (0xff % 0xff) (0xff % 0xff) (0xff % 0xff) 1), ("navy", VColor $ RGB (0x00 % 0xff) (0x1f % 0xff) (0x3f % 0xff) 1), ("aqua", VColor $ RGB (0x7f % 0xff) (0xdb % 0xff) (0xff % 0xff) 1), ("teal", VColor $ RGB (0x39 % 0xff) (0xcc % 0xff) (0xcc % 0xff) 1), ("eastern", VColor $ RGB (0x23 % 0xff) (0x9d % 0xff) (0xad % 0xff) 1), ("purple", VColor $ RGB (0xb1 % 0xff) (0x0d % 0xff) (0xc9 % 0xff) 1), ("fuchsia", VColor $ RGB (0xf0 % 0xff) (0x12 % 0xff) (0xbe % 0xff) 1), ("maroon", VColor $ RGB (0x85 % 0xff) (0x14 % 0xff) (0x4b % 0xff) 1), ("yellow", VColor $ RGB (0xff % 0xff) (0xdc % 0xff) (0x00 % 0xff) 1), ("orange", VColor $ RGB (0xff % 0xff) (0x85 % 0xff) (0x1b % 0xff) 1), ("olive", VColor $ RGB (0x3d % 0xff) (0x99 % 0xff) (0x70 % 0xff) 1), ("green", VColor $ RGB (0x2e % 0xff) (0xcc % 0xff) (0x40 % 0xff) 1), ("lime", VColor $ RGB (0x01 % 0xff) (0xff % 0xff) (0x70 % 0xff) 1) ] directions :: [(Identifier, Val)] directions = [ ("ltr", VDirection Ltr), ("rtl", VDirection Rtl), ("ttb", VDirection Ttb), ("btt", VDirection Btt) ] alignments :: [(Identifier, Val)] alignments = [ ("start", VAlignment (Just HorizStart) Nothing), ("end", VAlignment (Just HorizEnd) Nothing), ("left", VAlignment (Just HorizLeft) Nothing), ("center", VAlignment (Just HorizCenter) Nothing), ("right", VAlignment (Just HorizRight) Nothing), ("top", VAlignment Nothing (Just VertTop)), ("horizon", VAlignment Nothing (Just VertHorizon)), ("bottom", VAlignment Nothing (Just VertBottom)) ] foundations :: [(Identifier, Val)] foundations = [ ( "assert", makeFunctionWithScope ( do (cond :: Bool) <- nthArg 1 unless cond $ do (msg :: String) <- namedArg "message" "Assertion failed" fail msg pure VNone ) [ ( "eq", makeFunction $ do (v1 :: Val) <- nthArg 1 (v2 :: Val) <- nthArg 2 unless (comp v1 v2 == Just EQ) $ fail "Assertion failed" pure VNone ), ( "ne", makeFunction $ do (v1 :: Val) <- nthArg 1 (v2 :: Val) <- nthArg 2 unless (comp v1 v2 /= Just EQ) $ fail "Assertion failed" pure VNone ) ] ), ("panic", makeFunction $ allArgs >>= fail . T.unpack . (("panicked with: " <>) . T.unlines . map repr)), ("repr", makeFunction $ nthArg 1 >>= pure . VString . repr), ( "type", makeFunction $ do (x :: Val) <- nthArg 1 pure $ VType $ valType x ) ] construct :: [(Identifier, Val)] construct = [ ( "cmyk", makeFunction $ VColor <$> (CMYK <$> nthArg 1 <*> nthArg 2 <*> nthArg 3 <*> nthArg 4) ), ( "counter", makeFunction $ do (counter :: Counter) <- nthArg 1 let initializeIfMissing Nothing = Just 0 initializeIfMissing (Just x) = Just x lift $ updateState $ \st -> st {evalCounters = M.alter initializeIfMissing counter $ evalCounters st} pure $ VCounter counter ), ("luma", makeFunction $ VColor <$> (Luma <$> nthArg 1)), ( "range", makeFunction $ do first <- nthArg 1 mbsecond <- nthArg 2 step <- namedArg "step" 1 pure $ VArray $ V.fromList $ map VInteger $ case (first, mbsecond) of (end, Nothing) -> enumFromThenTo 0 step (end - 1) (start, Just end) -> enumFromThenTo start (start + step) ( if start < end then end - 1 else end + 1 ) ), ( "rgb", makeFunction $ VColor <$> ( ( RGB <$> (nthArg 1 >>= toRatio) <*> (nthArg 2 >>= toRatio) <*> (nthArg 3 >>= toRatio) <*> ((nthArg 4 >>= toRatio) `mplus` pure 1.0) ) <|> (nthArg 1 >>= hexToRGB) ) ), ( "lorem", makeFunction $ do (num :: Int) <- nthArg 1 pure $ VString $ T.unwords $ take num loremWords ) ] loremWords :: [Text] loremWords = cycle $ T.words $ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do\ \ eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut\ \ enim ad minim veniam, quis nostrud exercitation ullamco laboris\ \ nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in\ \ reprehenderit in voluptate velit esse cillum dolore eu fugiat\ \ nulla pariatur. Excepteur sint occaecat cupidatat non proident,\ \ sunt in culpa qui officia deserunt mollit anim id est laborum." toRatio :: MonadFail m => Val -> m Rational toRatio (VRatio r) = pure r toRatio (VInteger i) = pure $ i % 255 toRatio _ = fail "cannot convert to rational" hexToRGB :: MonadFail m => Val -> m Color hexToRGB (VString s) = do let s' = T.dropWhile (== '#') s parts <- map (fmap (% 255) . readMaybe . T.unpack . ("0x" <>)) <$> case T.length s' of 3 -> pure $ T.chunksOf 1 s' 4 -> pure $ T.chunksOf 1 s' 6 -> pure $ T.chunksOf 2 s' 8 -> pure $ T.chunksOf 2 s' _ -> fail "hex string must be 3, 4, 6, or 8 digits" case parts of [Just r, Just g, Just b] -> pure $ RGB r g b 1.0 [Just r, Just g, Just b, Just o] -> pure $ RGB r g b o _ -> fail "could not read string as hex color" hexToRGB _ = fail "expected string" loadFileLazyBytes :: Monad m => FilePath -> MP m BL.ByteString loadFileLazyBytes fp = do operations <- evalOperations <$> getState path <- getPath fp lift $ BL.fromStrict <$> loadBytes operations path loadFileText :: Monad m => FilePath -> MP m T.Text loadFileText fp = do operations <- evalOperations <$> getState path <- getPath fp lift $ TE.decodeUtf8 <$> loadBytes operations path -- a leading / = relative to package root getPath :: Monad m => FilePath -> MP m FilePath getPath ('/':fp') = do root <- evalPackageRoot <$> getState pure $ root fp' getPath fp = do pkgroot <- evalPackageRoot <$> getState localdir <- evalLocalDir <$> getState pure $ normalise $ pkgroot localdir fp getUTCTime :: Monad m => MP m UTCTime getUTCTime = getState >>= lift . currentUTCTime . evalOperations time :: [(Identifier, Val)] time = [ ( "datetime", makeFunctionWithScope (do mbyear <- namedArg "year" Nothing mbmonth <- namedArg "month" Nothing mbday <- namedArg "day" Nothing let mbdate = case (mbyear, mbmonth, mbday) of (Just yr, Just mo, Just da) -> fromGregorianValid yr mo da _ -> Nothing mbhour <- namedArg "hour" Nothing mbminute <- namedArg "minute" Nothing mbsecond <- namedArg "second" Nothing let mbtime = case (mbhour, mbminute, mbsecond) of (Just hr, Just mi, Just se) -> Just $ secondsToDiffTime $ (hr * 60 * 60) + (mi * 60) + se _ -> Nothing pure $ VDateTime mbdate mbtime) [ ("today", makeFunction $ do utcTime <- lift getUTCTime pure $ VDateTime (Just (utctDay utcTime)) (Just (utctDayTime utcTime)) ) ] ) ] dataLoading :: [(Identifier, Val)] dataLoading = [ ( "csv", makeFunction $ do fp <- nthArg 1 bs <- lift $ loadFileLazyBytes fp case Csv.decode Csv.NoHeader bs of Left e -> fail e Right (v :: V.Vector (V.Vector String)) -> pure $ VArray $ V.map (VArray . V.map (VString . T.pack)) v ), ( "json", makeFunction $ do bs <- getFileOrBytes case Aeson.eitherDecode bs of Left e -> fail e Right (v :: Val) -> pure v ), ( "yaml", makeFunction $ do bs <- getFileOrBytes case Yaml.decodeEither' (BL.toStrict bs) of Left e -> fail $ show e Right (v :: Val) -> pure v ), ( "read", makeFunction $ do fp <- nthArg 1 enc <- namedArg "encoding" (VString "utf-8") case enc of VNone -> do bs <- lift $ loadFileLazyBytes fp pure $ VBytes $ BL.toStrict bs _ -> do t <- lift $ loadFileText fp pure $ VString t ), ( "toml", makeFunction $ do bs <- getFileOrBytes case Toml.decode (TE.decodeUtf8 $ BL.toStrict bs) of Toml.Failure e -> fail (unlines ("toml errors:" : e)) Toml.Success _ v -> pure v ), ( "xml", makeFunction $ do bs <- getFileOrBytes case XML.parseLBS XML.def bs of Left e -> fail $ show e Right doc -> pure $ VArray $ V.fromList $ mapMaybe nodeToVal [XML.NodeElement (XML.documentRoot doc)] where showname n = XML.nameLocalName n nodeToVal (XML.NodeElement elt) = Just $ eltToDict elt nodeToVal (XML.NodeContent t) = Just $ VString t nodeToVal _ = Nothing eltToDict elt = VDict $ OM.fromList [ ("tag", VString $ showname (XML.elementName elt)), ( "attrs", VDict $ OM.fromList $ map (\(k, v) -> (Identifier (showname k), VString v)) (M.toList $ XML.elementAttributes elt) ), ( "children", VArray $ V.fromList $ mapMaybe nodeToVal (XML.elementNodes elt) ) ] ) ] applyPureFunction :: Function -> [Val] -> Attempt Val applyPureFunction (Function f) vals = let args = Arguments vals OM.empty in case runParserT (f args) initialEvalState "" [] of Failure s -> Failure s Success (Left s) -> Failure $ show s Success (Right v) -> Success v initialEvalState :: MonadFail m => EvalState m initialEvalState = emptyEvalState { evalIdentifiers = [(BlockScope, mempty)] , evalMathIdentifiers = [(BlockScope, mathModule <> symModule)] , evalStandardIdentifiers = [(BlockScope, standardModule)] } getFileOrBytes :: Monad m => ReaderT Arguments (MP m) BL.ByteString getFileOrBytes = do v <- nthArg 1 case v of VString fp -> lift $ loadFileLazyBytes (T.unpack fp) VBytes bs -> pure $ BL.fromStrict bs _ -> fail "expecting file path or bytes" typst-0.8.0.2/src/Typst/Parse.hs0000644000000000000000000011440607346545000014561 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TupleSections #-} module Typst.Parse ( parseTypst, ) where import Data.List (sortOn) import Control.Applicative (some) import Control.Monad (MonadPlus (mzero), guard, void, when) import Control.Monad.Identity (Identity) import Data.Char hiding (Space) import Data.Maybe (isJust, isNothing) import Data.Text (Text) import qualified Data.Text as T import Text.Parsec hiding (string) import qualified Text.Parsec as P import Text.Parsec.Expr import Text.Read (readMaybe) import Typst.Syntax import Typst.Shorthands (mathSymbolShorthands) -- import Debug.Trace -- | Parse text into a list of 'Markup' (or a Parsec @ParseError@). parseTypst :: -- | Filepath to Typst source text, only used for error messages FilePath -> -- | The Typst source text Text -> Either ParseError [Markup] parseTypst fp inp = case runParser (spaces *> many pMarkup <* pEndOfContent) initialState fp inp of Left e -> Left e Right r -> Right r data PState = PState { stIndent :: [Int], stLineStartCol :: !Int, stAllowNewlines :: !Int, -- allow newlines if > 0 stSpaceBefore :: Maybe (SourcePos, Text), stLastMathTok :: Maybe (SourcePos, Markup), stContentBlockNesting :: Int } deriving (Show) initialState :: PState initialState = PState { stIndent = [], stLineStartCol = 1, stAllowNewlines = 0, stSpaceBefore = Nothing, stLastMathTok = Nothing, stContentBlockNesting = 0 } type P = Parsec Text PState string :: String -> P String string = try . P.string ws :: P () ws = do p1 <- getPosition inp <- getInput allowNewlines <- stAllowNewlines <$> getState let isSp c | allowNewlines > 0 = isSpace c | otherwise = isSpace c && c /= '\r' && c /= '\n' ( skipMany1 (void (satisfy isSp) <|> void pComment) *> updateState (\st -> st {stSpaceBefore = Just (p1, inp)}) ) <|> updateState (\st -> st {stSpaceBefore = Nothing}) lexeme :: P a -> P a lexeme pa = pa <* ws sym :: String -> P String sym = lexeme . string op :: String -> P () op s = try $ lexeme $ do void $ string s when ( s == "+" || s == "-" || s == "*" || s == "/" || s == "=" || s == "<" || s == ">" || s == "!" ) $ notFollowedBy (char '=') when (s == "-") $ notFollowedBy (char '>') -- arrows when (s == "<") $ notFollowedBy (char '-' <|> char '=') -- arrows when (s == "=") $ notFollowedBy (char '>' <|> char '=') withNewlines :: P a -> P a withNewlines pa = do updateState $ \st -> st {stAllowNewlines = stAllowNewlines st + 1} res <- pa updateState $ \st -> st {stAllowNewlines = stAllowNewlines st - 1} pure res inParens :: P a -> P a inParens pa = withNewlines (between (sym "(") (char ')') pa) <* ws inBraces :: P a -> P a inBraces pa = withNewlines (between (sym "{") (char '}') pa) <* ws pMarkup :: P Markup pMarkup = pSpace <|> pHeading <|> pComment <|> pEol <|> pHardbreak <|> pStrong <|> pEmph <|> pEquation <|> pListItem <|> pUrl <|> pText <|> pRawBlock <|> pRawInline <|> pEscaped <|> pNbsp <|> pDash <|> pEllipsis <|> pQuote <|> pLabelInContent <|> pRef <|> pHash <|> pBracketed <|> pSymbol -- We need to group paired brackets or the closing bracketed may be -- taken to close a pContent block: pBracketed :: P Markup pBracketed = Bracketed <$> try (between (char '[') (char ']') (many pMarkup)) pSymbol :: P Markup pSymbol = do blockNesting <- stContentBlockNesting <$> getState let isSpecial' c = isSpecial c && (c /= ']' || blockNesting == 0) Text . T.singleton <$> satisfy isSpecial' -- equation ::= ('$' math* '$') | ('$ ' math* ' $') pEquation :: P Markup pEquation = do void $ char '$' withNewlines $ do display <- option False $ True <$ lookAhead space ws maths <- many pMath void $ char '$' pure $ Equation display maths mathOperatorTable :: [[Operator Text PState Identity Markup]] mathOperatorTable = [ -- precedence 7 -- attachment with number, e.g. a_1 (#17), or (..) group [ Infix (attachBottom <$ (try (op "_" *> lookAhead (mNumber <|> mGroup)))) AssocLeft, Infix (attachTop <$ (try (op "^" *> lookAhead (mNumber <|> mGroup)))) AssocLeft ], -- precedence 6 [ Postfix ( try $ do getState >>= guard . isNothing . stSpaceBefore -- NOTE: can't have space before () or [] arg in a -- function call! to prevent bugs with e.g. 'if 2<3 [...]'. pos <- getPosition lastMathTok <- stLastMathTok <$> getState -- 1(a) is not a function -- !(a) is not a function -- f(a) is a function -- "alpha"(a) is a function -- alpha(a) is a function -- see #55 -- but we still don't match typst for "!"(a), which typst DOES consider -- a function guard $ case lastMathTok of Just (pos', MGroup _ (Just t) _) | pos == pos' -> T.all isLetter t Just (pos', Text t) | pos == pos' -> case T.unsnoc t of Nothing -> True Just (_,c) -> isLetter c _ -> True args <- mGrouped '(' ')' True pure $ \expr -> MGroup Nothing Nothing [expr, args] ) ], -- precedence 5 -- factorial needs to take precedence over fraction [ Postfix (try $ do mbBeforeSpace <- stSpaceBefore <$> getState guard $ isNothing mbBeforeSpace lexeme $ char '!' *> notFollowedBy (char '=') pure (\expr -> MGroup Nothing Nothing [expr, Text "!"])) ], -- precedence 4 -- attachment with non-number, e.g. a_x [ Infix (attachBottom <$ op "_") AssocLeft, Infix (attachTop <$ op "^") AssocLeft ], -- precedence 3 [ Infix (makeFrac <$ op "/") AssocLeft ] ] -- MAttach (Maybe bottom) (Maybe top) base attachBottom :: Markup -> Markup -> Markup attachBottom (MAttach Nothing y x) z = MAttach (Just (hideOuterParens z)) y x attachBottom z (MAttach Nothing y x) = MAttach (Just (hideOuterParens x)) y z attachBottom base x = MAttach (Just (hideOuterParens x)) Nothing base attachTop :: Markup -> Markup -> Markup attachTop (MAttach x Nothing y) z = MAttach x (Just (hideOuterParens z)) y attachTop z (MAttach x Nothing y) = MAttach x (Just (hideOuterParens y)) z attachTop base x = MAttach Nothing (Just (hideOuterParens x)) base makeFrac :: Markup -> Markup -> Markup makeFrac x y = MFrac x (hideOuterParens y) hideOuterParens :: Markup -> Markup hideOuterParens (MGroup (Just "(") (Just ")") x) = MGroup Nothing Nothing x hideOuterParens x = x mathExpressionTable :: [[Operator Text PState Identity Expr]] mathExpressionTable = take 16 (cycle [[mathFieldAccess], [mathFunctionCall]]) mathFieldAccess :: Operator Text PState Identity Expr mathFieldAccess = Postfix (FieldAccess <$> try (sym "." *> (Ident <$> pMathField))) where pMathField = lexeme $ do d <- satisfy (\c -> isIdentStart c && c /= '_') ds <- many $ satisfy (\c -> isIdentContinue c && c /= '_' && c /= '-') pure $ Identifier $ T.pack (d : ds) mathFunctionCall :: Operator Text PState Identity Expr mathFunctionCall = Postfix ( do mbBeforeSpace <- stSpaceBefore <$> getState -- NOTE: can't have space before () or [] arg in a -- function call! to prevent bugs with e.g. 'if 2<3 [...]'. guard $ isNothing mbBeforeSpace args <- mArgs pure $ \expr -> FuncCall expr args ) mExpr :: P Markup mExpr = Code <$> getPosition <*> pMathExpr pMathExpr :: P Expr pMathExpr = buildExpressionParser mathExpressionTable (pMathIdent <|> pMathLiteral) where pMathLiteral :: P Expr pMathLiteral = Block . Content <$> many1 (mLiteral <|> mEscaped <|> mShorthand) pMathIdent :: P Expr pMathIdent = (Ident <$> pMathIdentifier) <|> ( do void $ char '√' (Ident (Identifier "root") <$ lookAhead (char '(')) <|> ( do x <- pMath pure $ FuncCall (Ident (Identifier "root")) [NormalArg (Block (Content [x]))] ) ) pMathIdentifier :: P Identifier pMathIdentifier = lexeme $ try $ do d <- satisfy (\c -> isIdentStart c && c /= '_') ds <- many1 $ satisfy (\c -> isIdentContinue c && c /= '_' && c /= '-') pure $ Identifier $ T.pack (d : ds) pMath :: P Markup pMath = buildExpressionParser mathOperatorTable pBaseMath pBaseMath :: P Markup pBaseMath = do tok <- mNumber <|> mLiteral <|> mEscaped <|> mShorthand <|> mBreak <|> mAlignPoint <|> mExpr <|> mGroup <|> mCode <|> mMid <|> mSymbol pos <- getPosition updateState $ \s -> s{ stLastMathTok = Just (pos, tok) } pure tok mGroup :: P Markup mGroup = mGrouped '(' ')' False <|> mGrouped '{' '}' False <|> mGrouped '[' ']' False mGrouped :: Char -> Char -> Bool -> P Markup mGrouped op' cl requireMatch = withNewlines $ try $ do void $ sym [op'] res <- many (notFollowedBy (char cl) *> pMath) (MGroup (Just (T.singleton op')) (Just (T.singleton cl)) res <$ void (sym [cl])) <|> (MGroup (Just (T.singleton op')) Nothing res <$ guard (not requireMatch)) mNumber :: P Markup mNumber = lexeme $ do ds <- T.pack <$> many1 digit opt <- option mempty ( do e <- char '.' es <- many digit pure $ T.pack (e : es) ) pure $ Text (ds <> opt) mLiteral :: P Markup mLiteral = do mbBeforeSpace <- stSpaceBefore <$> getState String t <- pStr -- ensure space in e.g. x "is natural": mbAfterSpace <- stSpaceBefore <$> getState pure $ Text $ (maybe "" (const " ") mbBeforeSpace) <> t <> (maybe "" (const " ") mbAfterSpace) mEscaped :: P Markup mEscaped = Text . T.singleton <$> lexeme (try pEsc) mBreak :: P Markup mBreak = HardBreak <$ lexeme (char '\\' *> skipMany (satisfy (isSpace))) -- we don't need to check for following whitespace, because -- anything else would have been parsed by mEsc. -- but we do skip following whitespace, since \160 wouldn't be gobbled by lexeme... mAlignPoint :: P Markup mAlignPoint = MAlignPoint <$ sym "&" -- Math args can't have a content block; they can use semicolons -- to separate array args. mArgs :: P [Arg] mArgs = inParens $ many (mKeyValArg <|> mArrayArg <|> mNormArg <|> mMathArg) where sep = void (sym ",") <|> void (lookAhead (char ')')) mNormArg = try $ NormalArg <$> (char '#' *> pExpr <* sep) mKeyValArg = do ident <- try $ pIdentifier <* sym ":" KeyValArg ident <$> ( (char '#' *> pExpr <* sep) <|> Block . Content <$> (ws *> mathContent) ) mathContent = do xs <- maths if null xs then void $ sym "," else sep pure xs mMathArg = BlockArg <$> mathContent mArrayArg = try $ do let pRow = sepBy' (toGroup <$> maths) (sym ",") rows <- many1 $ try (pRow <* sym ";") -- parse any regular items and form a last row lastrow <- many (toGroup <$> mathContent) let rows' = if null lastrow then rows else rows ++ [lastrow] pure $ ArrayArg rows' maths = many (notFollowedBy (oneOf ",;)") *> notFollowedBy mKeyValArg *> pMath) toGroup [m] = m toGroup ms = MGroup Nothing Nothing ms -- special sepBy' with an added try: sepBy' p s = sepBy1' p s <|> pure [] sepBy1' p s = do x <- p xs <- many (try (s *> p)) pure (x : xs) mCode :: P Markup mCode = lexeme $ char '#' *> (Code <$> getPosition <*> pBasicExpr) mMid :: P Markup mMid = try $ do getState >>= guard . isJust . stSpaceBefore void $ char '|' *> space *> ws pure $ MGroup Nothing Nothing [Nbsp, Text "|", Nbsp] mShorthand :: P Markup mShorthand = getPosition >>= \pos -> lexeme (Code pos <$> choice (map toShorthandParser shorthands)) where shorthands = reverse (sortOn (T.length . fst) mathSymbolShorthands) toShorthandParser (short, symname) = toSym symname <$ try (string (T.unpack short)) toSym name = case map (Ident . Identifier) $ T.split (== '.') name of [] -> Literal None [i] -> i (i:is) -> foldr FieldAccess i is mSymbol :: P Markup mSymbol = lexeme ( Text . T.singleton <$> satisfy (\c -> not (isSpace c) && c /= '$' && c /= '\\')) withIndent :: Int -> P a -> P a withIndent indent pa = do oldIndent <- stIndent <$> getState updateState $ \st -> st {stIndent = indent : oldIndent} ms <- pa updateState $ \st -> st {stIndent = oldIndent} pure ms -- list ::= '-' space markup -- enum ::= (digit+ '.' | '+') space markup -- desc ::= '/' space markup ':' space markup pListItem :: P Markup pListItem = do col <- sourceColumn <$> getPosition startLine <- stLineStartCol <$> getState guard (col == startLine) try ( do void $ char '-' void (char ' ') <|> pBlankline BulletListItem <$> withIndent col (many pMarkup) ) <|> try ( do start <- (Nothing <$ char '+') <|> (Just <$> enumListStart) void (char ' ') <|> pBlankline EnumListItem start <$> withIndent col (many pMarkup) ) <|> try ( do -- desc list void (char '/') void (many1 (char ' ')) term <- manyTill pMarkup (char ':') skipMany spaceChar optional pBlankline DescListItem term <$> withIndent col (many pMarkup) ) enumListStart :: P Int enumListStart = do ds <- many1 digit void $ char '.' case readMaybe ds of Nothing -> fail $ "could not read " <> ds <> " as digits" Just x -> pure x -- line-comment = '//' (!unicode(Newline))* -- block-comment = '/*' (. | block-comment)* '*/' pComment :: P Markup pComment = Comment <$ (pLineComment <|> pBlockComment) pLineComment :: P () pLineComment = do void $ string "//" skipMany (satisfy (\c -> c /= '\n' && c /= '\r')) void endOfLine <|> eof pBlockComment :: P () pBlockComment = do void $ string "/*" void $ manyTill ( pBlockComment <|> pLineComment <|> void anyChar ) (string "*/") pSpace :: P Markup pSpace = Space <$ some (satisfy (\c -> isSpace c && c /= '\r' && c /= '\n')) pEol :: P Markup pEol = do pBaseEol (ParBreak <$ many1 pBaseEol) <|> (ParBreak <$ pEndOfContent) <|> pure SoftBreak pBaseEol :: P () pBaseEol = try $ do void endOfLine -- fail if we can't indent enough indents <- stIndent <$> getState case indents of (i : _) -> void (try (count i (char ' '))) <|> pBlankline [] -> pure () eatPrefixSpaces eatPrefixSpaces :: P () eatPrefixSpaces = do skipMany spaceChar col <- sourceColumn <$> getPosition updateState $ \st -> st {stLineStartCol = col} spaceChar :: P Char spaceChar = satisfy (\c -> c == ' ' || c == '\t') pHardbreak :: P Markup pHardbreak = HardBreak <$ try (char '\\' *> (void spaceChar <|> pBaseEol) *> skipMany spaceChar) pBlankline :: P () pBlankline = try $ do skipMany spaceChar void (lookAhead endOfLine) <|> pEndOfContent pRawInline :: P Markup pRawInline = RawInline . T.pack <$> (char '`' *> manyTill anyChar (void (char '`') <|> eof)) pRawBlock :: P Markup pRawBlock = do void $ string "```" numticks <- (+ 3) . length <$> many (char '`') lang <- T.pack <$> (many alphaNum <* optional (char ' ')) optional $ try $ skipMany (char ' ') *> pEol let nl = newline <* optionalGobbleIndent code <- T.pack <$> manyTill (nl <|> anyChar) (string (replicate numticks '`')) skipMany (char '`') pure $ RawBlock lang code optionalGobbleIndent :: P () optionalGobbleIndent = do indents <- stIndent <$> getState case indents of (i : _) -> gobble i [] -> pure () where gobble :: Int -> P () gobble 0 = pure () gobble n = (char ' ' *> gobble (n - 1)) <|> pure () pStrong :: P Markup pStrong = Strong <$> (char '*' *> manyTill pMarkup (char '*')) pEmph :: P Markup pEmph = Emph <$> (char '_' *> manyTill pMarkup (char '_')) pHeading :: P Markup pHeading = try $ do col <- sourceColumn <$> getPosition lineStartCol <- stLineStartCol <$> getState guard (col == lineStartCol) lev <- length <$> many1 (char '=') void (many1 (char ' ')) <|> void (lookAhead endOfLine) -- Note: == hi _foo -- bar_ is parsed as a heading with "hi emph(foobar)" ms <- manyTill pMarkup ( void pEol <|> pEndOfContent <|> void (lookAhead (try (spaces *> pLabel))) <|> void (lookAhead (char ']'))) skipMany spaceChar pure $ Heading lev ms pUrl :: P Markup pUrl = try $ do prot <- T.pack <$> (string "http://" <|> string "https://") rest <- T.pack <$> pNonspaceWithBalancedBrackets 0 0 0 pure $ Url $ prot <> rest pNonspaceWithBalancedBrackets :: Int -> Int -> Int -> P [Char] pNonspaceWithBalancedBrackets parens brackets braces = ((:) <$> char '(' <*> pNonspaceWithBalancedBrackets (parens + 1) brackets braces) <|> ((:) <$> (guard (parens > 0) *> char ')') <*> pNonspaceWithBalancedBrackets (parens - 1) brackets braces) <|> ((:) <$> char '[' <*> pNonspaceWithBalancedBrackets parens (brackets + 1) braces) <|> ((:) <$> (guard (brackets > 0) *> char ']') <*> pNonspaceWithBalancedBrackets parens (brackets - 1) braces) <|> ((:) <$> char '{' <*> pNonspaceWithBalancedBrackets parens brackets (braces + 1)) <|> ((:) <$> (guard (braces > 0) *> char '}') *> pNonspaceWithBalancedBrackets parens brackets (braces - 1)) <|> (:) <$> noneOf " \t\r\n()[]{}" <*> pNonspaceWithBalancedBrackets parens brackets braces <|> pure [] pText :: P Markup pText = Text . mconcat <$> some ((do xs <- some alphaNum T.pack . (xs <>) <$> try (some (char '*' <|> char '_') <* lookAhead (satisfy nonCJKAlphaNum)) <|> pure (T.pack xs)) <|> (T.pack <$> some (satisfy (\c -> not (isSpace c || isSpecial c)))) ) nonCJKAlphaNum :: Char -> Bool nonCJKAlphaNum c = isAlphaNum c && not (isCJK c) isCJK :: Char -> Bool isCJK c | c < '\x2e80' = False isCJK c = (c >= '\x2e80' && c <= '\x2eff') -- CJK Radicals Supplement || (c >= '\x2f00' && c <= '\x2fdf') -- Kangxi Radicals || (c >= '\x2ff0' && c <= '\x2fff') -- Ideographic Description Characters || (c >= '\x3000' && c <= '\x303f') -- JK Symbols and Punctuation || (c >= '\x3040' && c <= '\x309f') -- Hiragana || (c >= '\x30a0' && c <= '\x30ff') -- Katakana || (c >= '\x3100' && c <= '\x312f') -- Bopomofo || (c >= '\x3130' && c <= '\x318f') -- Kanbun || (c >= '\x3190' && c <= '\x319f') -- Kanbun || (c >= '\x31c0' && c <= '\x31ef') -- CJK Strokes || (c >= '\x31f0' && c <= '\x31ff') -- Katakana Phonetic Extensions || (c >= '\x3200' && c <= '\x32ff') -- Enclosed CJK Letters & Months || (c >= '\x3300' && c <= '\x33ff') -- CJK Compatibility || (c >= '\x3400' && c <= '\x4dbf') -- CJK Unified Ideographs Extension A || (c >= '\x4e00' && c <= '\x9fff') -- CJK Unified Ideographs || (c >= '\xa000' && c <= '\xa48f') -- Yi Syllables || (c >= '\xa490' && c <= '\xa4cf') -- Yi Radicals || (c >= '\xf900' && c <= '\xfaff') -- CJK Compatibility Ideographs || (c >= '\xfe10' && c <= '\xfe1f') -- Vertical forms || (c >= '\xfe30' && c <= '\xfe4f') -- CJK Compatibility Forms || (c >= '\xFE50' && c <= '\xFE6F') -- Small Form Variants || (c >= '\xFF00' && c <= '\xFFEE') -- Halfwidth and Fullwidth Forms || (c >= '\x1B000' && c <= '\x1B0FF') -- Kana Supplement || (c >= '\x1B100' && c <= '\x1B12F') -- Kana Extended-A || (c >= '\x1B130' && c <= '\x1B16F') -- Small Kana Extension || (c >= '\x20000' && c <= '\x2A6DF') -- CJK Unified Ideographs Extension B || (c >= '\x2A700' && c <= '\x2B73F') -- CJK Unified Ideographs Extension C || (c >= '\x2B740' && c <= '\x2B81F') -- CJK Unified Ideographs Extension D || (c >= '\x2B820' && c <= '\x2CEAF') -- CJK Unified Ideographs Extension E || (c >= '\x2CEB0' && c <= '\x2EBEF') -- CJK Unified Ideographs Extension F || (c >= '\x2F800' && c <= '\x2FA1F') -- CJK Compatibility Ideographs Supp || (c >= '\x30000' && c <= '\x3134F') -- CJK Unified Ideographs Exten pEscaped :: P Markup pEscaped = Text . T.singleton <$> pEsc pEsc :: P Char pEsc = char '\\' *> (uniEsc <|> satisfy (not . isSpace)) pStrEsc :: P Char pStrEsc = try $ char '\\' *> ( uniEsc <|> ('\\' <$ char '\\') <|> ('"' <$ char '"') <|> ('\n' <$ char 'n') <|> ('\t' <$ char 't') <|> ('\r' <$ char 'r') ) uniEsc :: P Char uniEsc = chr <$> (char 'u' *> char '{' *> hexnum <* char '}') where hexnum :: P Int hexnum = do ds <- many1 hexDigit case readMaybe ("0x" ++ ds) of Just i | i <= 1114112 -> pure i | otherwise -> pure 0xFFFD Nothing -> fail $ "Could not read hex number " ++ ds pNbsp :: P Markup pNbsp = Nbsp <$ char '~' pDash :: P Markup pDash = do void $ char '-' (Shy <$ char '?') <|> (char '-' *> ((EmDash <$ char '-') <|> pure EnDash)) <|> pure (Text "-") pEllipsis :: P Markup pEllipsis = do void $ char '.' (Ellipsis <$ string "..") <|> pure (Text ".") pQuote :: P Markup pQuote = Quote <$> (char '\'' <|> char '"') pLabelInContent :: P Markup pLabelInContent = Code <$> getPosition <*> pLabel pLabel :: P Expr pLabel = Label . T.pack <$> lexeme (try ( char '<' *> many1 (satisfy isIdentContinue <|> char '_' <|> char '.' <|> char ':') <* char '>' )) pRef :: P Markup pRef = Ref <$> (char '@' *> (T.pack <$> many1 (satisfy isIdentContinue <|> char '_'))) <*> option (Literal Auto) (Block <$> pContent) -- "If a character would continue the expression but should be interpreted as -- text, the expression can forcibly be ended with a semicolon (;)." -- "A few kinds of expressions are not compatible with the hashtag syntax -- (e.g. binary operator expressions). To embed these into markup, you -- can use parentheses, as in #(1 + 2)." Hence pBasicExpr not pExpr. pHash :: P Markup pHash = do void $ char '#' res <- Code <$> getPosition <*> pBasicExpr <* optional (sym ";") -- rewind if we gobbled space: mbBeforeSpace <- stSpaceBefore <$> getState case mbBeforeSpace of Nothing -> pure () Just (pos, inp) -> do setPosition pos setInput inp pure res isSpecial :: Char -> Bool isSpecial '\\' = True isSpecial '[' = True isSpecial ']' = True isSpecial '#' = True isSpecial '-' = True isSpecial '.' = True isSpecial '"' = True isSpecial '\'' = True isSpecial '*' = True isSpecial '_' = True isSpecial '`' = True isSpecial '$' = True isSpecial '<' = True isSpecial '>' = True isSpecial '@' = True isSpecial '/' = True isSpecial ':' = True isSpecial '~' = True isSpecial '=' = True isSpecial '(' = True -- so we don't gobble ( before URLs isSpecial _ = False pIdentifier :: P Identifier pIdentifier = lexeme $ try $ do c <- satisfy isIdentStart cs <- many $ satisfy isIdentContinue pure $ Identifier $ T.pack (c : cs) -- ident_start ::= unicode(XID_Start) -- ID_Start characters are derived from the Unicode General_Category of -- uppercase letters, lowercase letters, titlecase letters, modifier letters, -- other letters, letter numbers, plus Other_ID_Start, minus Pattern_Syntax and -- Pattern_White_Space code points. isIdentStart :: Char -> Bool isIdentStart c = c == '_' || case generalCategory c of UppercaseLetter -> True LowercaseLetter -> True TitlecaseLetter -> True ModifierLetter -> True OtherLetter -> True LetterNumber -> True _ -> False -- ident_continue ::= unicode(XID_Continue) | '-' -- ID_Continue characters include ID_Start characters, plus characters having -- the Unicode General_Category of nonspacing marks, spacing combining marks, -- decimal number, connector punctuation, plus Other_ID_Continue, minus -- Pattern_Syntax and Pattern_White_Space code points. isIdentContinue :: Char -> Bool isIdentContinue c = isIdentStart c || c == '-' || c == '_' || case generalCategory c of NonSpacingMark -> True SpacingCombiningMark -> True DecimalNumber -> True ConnectorPunctuation -> True _ -> False pKeyword :: String -> P () pKeyword t = lexeme $ try $ string t *> notFollowedBy (satisfy isIdentContinue) -- NOTE: there can be field access lookups that require identifiers like -- 'not'. -- keywords :: [Text] -- keywords = ["none", "auto", "true", "false", "not", "and", "or", "let", -- "set", "show", "wrap", "if", "else", "for", "in", "as", "while", -- "break", "continue", "return", "import", "include", "from"] pExpr :: P Expr pExpr = buildExpressionParser operatorTable pBasicExpr -- A basic expression excludes the unary and binary operators outside of parens, -- but includes field access and function application. Needed for pHash. pBasicExpr :: P Expr pBasicExpr = buildExpressionParser basicOperatorTable pBaseExpr pQualifiedIdentifier :: P Expr pQualifiedIdentifier = buildExpressionParser (replicate 4 [fieldAccess]) pIdent pBaseExpr :: P Expr pBaseExpr = pLiteral <|> pKeywordExpr <|> pFuncExpr <|> pIdent <|> pArrayExpr <|> pDictExpr <|> inParens pExpr <|> pLabel <|> (Block . Content . (: []) <$> lexeme (pRawBlock <|> pRawInline <|> pEquation)) <|> pBlock pLiteral :: P Expr pLiteral = Literal <$> ( pNone <|> pAuto <|> pBoolean <|> pNumeric <|> pStr ) fieldAccess :: Operator Text PState Identity Expr fieldAccess = Postfix (FieldAccess <$> try (sym "." *> pIdent)) -- don't allow space after . restrictedFieldAccess :: Operator Text PState Identity Expr restrictedFieldAccess = Postfix (FieldAccess <$> try (char '.' *> pIdent)) functionCall :: Operator Text PState Identity Expr functionCall = Postfix ( do mbBeforeSpace <- stSpaceBefore <$> getState -- NOTE: can't have space before () or [] arg in a -- function call! to prevent bugs with e.g. 'if 2<3 [...]'. guard $ isNothing mbBeforeSpace args <- pArgs pure $ \expr -> FuncCall expr args ) -- The reason we cycle field access and function call -- is that a postfix operator will not -- be repeatable at the same precedence level...see docs for -- buildExpressionParser. basicOperatorTable :: [[Operator Text PState Identity Expr]] basicOperatorTable = take 16 (cycle [[restrictedFieldAccess], [functionCall]]) operatorTable :: [[Operator Text PState Identity Expr]] operatorTable = -- precedence 8 (real field access, perhaps with space after .) take 12 (cycle [[fieldAccess], [functionCall]]) ++ -- precedence 7 (repeated because of parsec's quirks with postfix, prefix) replicate 6 [Postfix (ToPower <$> try (char 'e' *> notFollowedBy letter *> pExpr))] ++ replicate 6 [Prefix (Negated <$ op "-"), Prefix (id <$ op "+")] ++ [ -- precedence 6 [ Infix (Times <$ op "*") AssocLeft, Infix (Divided <$ op "/") AssocLeft ], -- precedence 5 [ Infix (Plus <$ op "+") AssocLeft, Infix (Minus <$ op "-") AssocLeft ], -- precedence 4 [ Infix (Equals <$ op "==") AssocLeft, Infix ((\x y -> Not (Equals x y)) <$ op "!=") AssocLeft, Infix (LessThan <$ op "<") AssocLeft, Infix (LessThanOrEqual <$ op "<=") AssocLeft, Infix (GreaterThan <$ op ">") AssocLeft, Infix (GreaterThanOrEqual <$ op ">=") AssocLeft, Infix (InCollection <$ pKeyword "in") AssocLeft, Infix ( (\x y -> Not (InCollection x y)) <$ try (pKeyword "not" *> pKeyword "in") ) AssocLeft ], -- precedence 3 [ Prefix (Not <$ pKeyword "not"), Infix (And <$ pKeyword "and") AssocLeft ], -- precedence 2 [ Infix (Or <$ pKeyword "or") AssocLeft ], -- precedence 1 [ Infix (Assign <$ op "=") AssocRight, Infix ((\x y -> Assign x (Plus x y)) <$ op "+=") AssocRight, Infix ((\x y -> Assign x (Minus x y)) <$ op "-=") AssocRight, Infix ((\x y -> Assign x (Times x y)) <$ op "*=") AssocRight, Infix ((\x y -> Assign x (Divided x y)) <$ op "/=") AssocRight ] ] pNone :: P Literal pNone = None <$ pKeyword "none" pAuto :: P Literal pAuto = Auto <$ pKeyword "auto" pBoolean :: P Literal pBoolean = (Boolean True <$ pKeyword "true") <|> (Boolean False <$ pKeyword "false") pNumber :: P (Either Integer Double) pNumber = try $ do pref <- string "0b" <|> string "0x" <|> string "0o" <|> pure "" case pref of "0b" -> do nums <- many1 ((1 <$ char '1') <|> (0 <$ char '0')) pure $ Left $ sum $ zipWith (*) (reverse nums) (map (2 ^) [(0 :: Integer) ..]) "0x" -> do num <- many1 hexDigit case readMaybe ("0x" ++ num) of Just (i :: Integer) -> pure $ Left i _ -> fail $ "could not read " <> num <> " as hex digits" "0o" -> do num <- many1 octDigit case readMaybe ("0o" ++ num) of Just (i :: Integer) -> pure $ Left i _ -> fail $ "could not read " <> num <> " as octal digits" _ -> do as <- many1 digit <|> ("0" <$ lookAhead (try (char '.' *> digit))) pe <- option [] $ string "." bs <- many digit es <- option "" ( do void $ try $ char 'e' *> lookAhead (digit <|> char '-') minus <- option [] $ count 1 (char '-') ds <- many1 digit pure ("e" ++ minus ++ ds) ) let num = pref ++ as ++ pe ++ bs ++ es case readMaybe num of Just (i :: Integer) -> pure $ Left i Nothing -> case readMaybe num of Just (d :: Double) -> pure $ Right d Nothing -> fail $ "could not read " <> num <> " as integer" pNumeric :: P Literal pNumeric = lexeme $ do result <- pNumber ( do unit <- pUnit case result of Left i -> pure $ Numeric (fromIntegral i) unit Right d -> pure $ Numeric d unit ) <|> case result of Left i -> pure $ Int i Right d -> pure $ Float d pStr :: P Literal pStr = lexeme $ do void $ char '"' String . T.pack <$> manyTill (pStrEsc <|> satisfy (/= '"')) (char '"') pUnit :: P Unit pUnit = (Percent <$ sym "%") <|> (Pt <$ sym "pt") <|> (Mm <$ sym "mm") <|> (Cm <$ sym "cm") <|> (In <$ sym "in") <|> (Deg <$ sym "deg") <|> (Rad <$ sym "rad") <|> (Em <$ sym "em") <|> (Fr <$ sym "fr") pIdent :: P Expr pIdent = Ident <$> pIdentifier pBlock :: P Expr pBlock = Block <$> (pCodeBlock <|> pContent) pCodeBlock :: P Block pCodeBlock = CodeBlock <$> inBraces pCode pCode :: P [Expr] pCode = sepEndBy pExpr (void (sym ";") <|> ws) -- content-block ::= '[' markup ']' pContent :: P Block pContent = do void $ char '[' col <- sourceColumn <$> getPosition oldLineStartCol <- stLineStartCol <$> getState oldIndent <- stIndent <$> getState updateState $ \st -> st { stLineStartCol = col, stContentBlockNesting = stContentBlockNesting st + 1, stIndent = [] } ms <- manyTill pMarkup (char ']') ws updateState $ \st -> st { stLineStartCol = oldLineStartCol, stContentBlockNesting = stContentBlockNesting st - 1, stIndent = oldIndent } pure $ Content ms pEndOfContent :: P () pEndOfContent = eof <|> do blockNesting <- stContentBlockNesting <$> getState if blockNesting > 0 then void (lookAhead (char ']')) else mzero -- array-expr ::= '(' ((expr ',') | (expr (',' expr)+ ','?))? ')' pArrayExpr :: P Expr pArrayExpr = try $ inParens $ ( do v <- pSpread <|> (Reg <$> pExpr) vs <- many $ try $ sym "," *> (pSpread <|> (Reg <$> pExpr)) if null vs then void $ sym "," else optional $ void $ sym "," pure $ Array (v : vs) ) <|> (Array [] <$ optional (void $ sym ",")) -- dict-expr ::= '(' (':' | ':'? (pair (',' pair)* ','?)) ')' -- pair ::= (ident | str) ':' expr pDictExpr :: P Expr pDictExpr = try $ inParens (sym ":" *> (pNonemptyDict <|> pure (Dict mempty)) <|> pNonemptyDict) where pNonemptyDict = Dict <$> sepEndBy1 (pSpread <|> pPair) (sym ",") pPair = Reg <$> ((,) <$> pExpr <*> try (sym ":" *> pExpr)) pSpread :: P (Spreadable a) pSpread = try $ string ".." *> (Spr <$> pExpr) -- func-expr ::= (params | ident) '=>' expr pFuncExpr :: P Expr pFuncExpr = try $ FuncExpr <$> pParamsOrIdent <*> (sym "=>" *> pExpr) where pParamsOrIdent = pParams <|> (do i <- pIdentifier if i == "_" then pure [SkipParam] else pure [NormalParam i]) pKeywordExpr :: P Expr pKeywordExpr = pLetExpr <|> pSetExpr <|> pShowExpr <|> pIfExpr <|> pWhileExpr <|> pForExpr <|> pImportExpr <|> pIncludeExpr <|> pBreakExpr <|> pContinueExpr <|> pReturnExpr <|> pContextExpr -- args ::= ('(' (arg (',' arg)* ','?)? ')' content-block*) | content-block+ pArgs :: P [Arg] pArgs = do void $ lookAhead (char '(' <|> char '[') args <- option [] $ inParens $ sepEndBy pArg (sym ",") blocks <- many $ do -- make sure we haven't had a space skippedSpaces <- isJust . stSpaceBefore <$> getState if skippedSpaces then mzero else do Content ms <- pContent pure ms pure $ args ++ map BlockArg blocks -- arg ::= (ident ':')? expr pArg :: P Arg pArg = pKeyValArg <|> pSpreadArg <|> pNormalArg where pKeyValArg = KeyValArg <$> try (pIdentifier <* sym ":") <*> pExpr pNormalArg = NormalArg <$> pExpr pSpreadArg = SpreadArg <$> try (string ".." *> pExpr) -- params ::= '(' (param (',' param)* ','?)? ')' pParams :: P [Param] pParams = inParens $ sepEndBy pParam (sym ",") -- param ::= ident (':' expr)? pParam :: P Param pParam = pSinkParam <|> pDestructuringParam <|> pNormalOrDefaultParam <|> pSkipParam where pSinkParam = SinkParam <$> try ( sym ".." *> option Nothing (Just <$> pIdentifier) ) pSkipParam = SkipParam <$ sym "_" pNormalOrDefaultParam = do i <- pIdentifier (DefaultParam i <$> (sym ":" *> pExpr)) <|> pure (NormalParam i) pDestructuringParam = do DestructuringBind parts <- pDestructuringBind pure $ DestructuringParam parts pBind :: P Bind pBind = pBasicBind <|> pDestructuringBind pBasicBind :: P Bind pBasicBind = BasicBind <$> try (pBindIdentifier <|> inParens pBindIdentifier) pBindIdentifier :: P (Maybe Identifier) pBindIdentifier = do ident <- pIdentifier if ident == "_" then pure Nothing else pure $ Just ident pDestructuringBind :: P Bind pDestructuringBind = inParens $ DestructuringBind <$> (pBindPart `sepEndBy` (sym ",")) where pBindPart = do sink <- option False $ True <$ string ".." if sink then do ident <- option Nothing pBindIdentifier -- .. pure $ Sink ident else do ident <- pBindIdentifier case ident of Nothing -> pure (Simple ident) Just key -> (WithKey key <$> (sym ":" *> pBindIdentifier)) <|> pure (Simple ident) -- let-expr ::= 'let' ident params? '=' expr pLetExpr :: P Expr pLetExpr = do pKeyword "let" bind <- pBind case bind of BasicBind mbname -> do mbparams <- option Nothing $ Just <$> pParams mbexpr <- option Nothing $ Just <$> (sym "=" *> pExpr) case (mbparams, mbexpr, mbname) of (Nothing, Nothing, _) -> pure $ Let bind (Literal None) (Nothing, Just expr, _) -> pure $ Let bind expr (Just params, Just expr, Just name) -> pure $ LetFunc name params expr (Just _, Just _, Nothing) -> fail "expected name for function" (Just _, Nothing, _) -> fail "expected expression for let binding" _ -> Let bind <$> (sym "=" *> pExpr) -- set-expr ::= 'set' expr args pSetExpr :: P Expr pSetExpr = do oldAllowNewlines <- stAllowNewlines <$> getState -- see #23 -- 'set' doesn't go with 'if' unless it's on the same line updateState $ \st -> st {stAllowNewlines = 0} set <- pKeyword "set" *> (Set <$> pQualifiedIdentifier <*> pArgs) updateState $ \st -> st {stAllowNewlines = oldAllowNewlines} addCondition <- option id $ pKeyword "if" *> ((\c x -> If [(c, x)]) <$> pExpr) pure $ addCondition set pShowExpr :: P Expr pShowExpr = do pKeyword "show" from <- (Nothing <$ sym ":") <|> Just <$> (pBasicExpr <* sym ":") to <- pBasicExpr pure $ Show from to -- if-expr ::= 'if' expr block ('else' 'if' expr block)* ('else' block)? pIfExpr :: P Expr pIfExpr = do a <- pIf as <- many $ try (pKeyword "else" *> pIf) finalElse <- option [] $ -- we represent the final "else" as a conditional with expr True: (: []) . (Literal (Boolean True),) <$> (pKeyword "else" *> pBlock) return $ If (a : as ++ finalElse) where pIf = pKeyword "if" *> ((,) <$> pExpr <*> pBlock) -- while-expr ::= 'while' expr block pWhileExpr :: P Expr pWhileExpr = pKeyword "while" *> (While <$> pExpr <*> pBlock) -- for-expr ::= 'for' bind 'in' expr block pForExpr :: P Expr pForExpr = pKeyword "for" *> (For <$> pBind <*> (pKeyword "in" *> pExpr) <*> pBlock) pImportExpr :: P Expr pImportExpr = pKeyword "import" *> (Import <$> pExpr <*> pImportItems) where pImportItems = (sym ":" *> ( (AllIdentifiers <$ sym "*") <|> inParens pIdentifierList <|> pIdentifierList ) ) <|> (NoIdentifiers <$> pAs) pIdentifierList = SomeIdentifiers <$> sepEndBy pIdentifierAs (sym ",") pIdentifierAs = do ident <- pIdentifier mbAs <- pAs pure (ident, mbAs) pAs = option Nothing $ Just <$> (pKeyword "as" *> pIdentifier) pBreakExpr :: P Expr pBreakExpr = Break <$ pKeyword "break" pContinueExpr :: P Expr pContinueExpr = Continue <$ pKeyword "continue" pReturnExpr :: P Expr pReturnExpr = do pos <- getPosition pKeyword "return" pos' <- getPosition if sourceLine pos' > sourceLine pos then pure $ Return Nothing else Return <$> (option Nothing (Just <$> pExpr)) pContextExpr :: P Expr pContextExpr = Context <$> (pKeyword "context" *> pExpr) pIncludeExpr :: P Expr pIncludeExpr = Include <$> (pKeyword "include" *> pExpr) typst-0.8.0.2/src/Typst/Regex.hs0000644000000000000000000001124107346545000014552 0ustar0000000000000000{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module Typst.Regex ( RE (..), RegexMatch (..), replaceRegex, splitRegex, makeLiteralRE, makeRE, match, matchAll, -- re-export extract, ) where import qualified Data.Array as Array import Data.Text (Text) import qualified Data.Text as T import Data.Typeable (Typeable) import Text.Regex.TDFA (Regex, extract) import qualified Text.Regex.TDFA as TDFA import qualified Text.Regex.TDFA.Text as TDFA -- import Debug.Trace -- | A regular expression. Note that typst-hs does not use the same Regex engine -- as Typst. See issue [#28](https://github.com/jgm/typst-hs/issues/28). data RE = RE !Text !Regex deriving (Typeable) instance Eq RE where RE t1 _ == RE t2 _ = t1 == t2 instance Ord RE where compare (RE t1 _) (RE t2 _) = compare t1 t2 instance Show RE where show (RE t _) = "/" <> T.unpack t <> "/" data RegexMatch = RegexMatch { matchStart :: Int, matchEnd :: Int, matchText :: Text, matchCaptures :: [Text] } deriving (Eq, Ord, Typeable) replaceRegex :: RE -> Maybe Int -> (RegexMatch -> Text) -> Text -> Text replaceRegex (RE _ re) mbCount replaceFn strIn = let matches = maybe id take mbCount $ TDFA.matchAll re strIn getCaptures m = map (\(off, len) -> extract (off, len) strIn) (drop 1 (Array.elems m)) go i [] = T.drop i strIn go i (m : rest) = seq i $ let (off, len) = m Array.! 0 in ( if off > i then slice i (off - i) strIn else mempty ) <> replaceFn RegexMatch { matchStart = off, matchEnd = off + len, matchText = extract (off, len) strIn, matchCaptures = getCaptures m } <> go (off + len) rest slice pos len = T.take len . T.drop pos in go 0 matches makeRE :: MonadFail m => Text -> m RE makeRE t = RE t' <$> either fail pure (TDFA.compile compopts TDFA.defaultExecOpt t') where (caseSensitive, t') = if "(?i)" `T.isPrefixOf` t then (False, T.pack . go False . T.unpack $ T.drop 4 t) else (True, T.pack . go False . T.unpack $ t) compopts = TDFA.defaultCompOpt {TDFA.caseSensitive = caseSensitive} -- Handle things not supported in TFFA posix regexes, e.g. \d \w \s, +, ? -- Note that we have to track whether we're in a character class, because -- the expansions will be different in that case. The first -- parameter of `go` is True if in a character class. go _ [] = [] go True (']' : cs) = ']' : go False cs go False ('[' : cs) = '[' : case cs of '^':']':ds -> '^' : ']' : go True ds '^':'\\':']':ds -> '^' : ']' : go True ds ']':ds -> ']' : go True ds '\\':']':ds -> ']' : go True ds _ -> go True cs go False ('?' : cs) = "{0,1}" ++ go False cs go False ('+' : cs) = "{1,}" ++ go False cs go inCharClass ('\\' : c : cs) = let f = if inCharClass then id else \x -> "[" ++ x ++ "]" r = case c of 'd' -> f "[:digit:]" 'D' -> f "^[:digit:]" 's' -> f "[:space:]" 'S' -> f "^[:space:]" 'w' -> f "[:word:]" 'W' -> f "^[:word:]" _ -> ['\\', c] in r ++ go inCharClass cs go inCharClass (c : cs) = c : go inCharClass cs match :: TDFA.RegexContext Regex source target => RE -> source -> target match (RE _ re) t = TDFA.match re t matchAll :: TDFA.RegexLike Regex source => RE -> source -> [TDFA.MatchArray] matchAll (RE _ re) t = TDFA.matchAll re t makeLiteralRE :: MonadFail m => Text -> m RE makeLiteralRE t | T.null t = makeRE ".{0,0}" -- experimentally behaves as typst does | otherwise = makeRE $ T.foldl go mempty t where go acc c = if isSpecial c then acc <> T.pack ['\\', c] else T.snoc acc c isSpecial c = c `elem` (".*?+(){}[]|\\^$" :: [Char]) -- from regex-compat but for Text splitRegex :: RE -> Text -> [Text] splitRegex (RE _ delim) strIn = let matches = map (Array.! 0) (TDFA.matchAll delim strIn) go _i str [] = str : [] go i str ((off, len) : rest) = let i' = off + len firstline = T.take (off - i) str remainder = T.drop (i' - i) str in seq i' $ if T.null remainder then [firstline, ""] else firstline : go i' remainder rest in go 0 strIn matches typst-0.8.0.2/src/Typst/Show.hs0000644000000000000000000000644507346545000014432 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} {-# OPTIONS_GHC -fsimpl-tick-factor=140 #-} module Typst.Show (applyShowRules) where import Data.Array ((!)) import qualified Data.Map as M import Data.Sequence (Seq) import qualified Data.Sequence as Seq import Data.Text (Text) import qualified Data.Text as T import Text.Parsec (getState, updateState) import qualified Text.Regex.TDFA as TDFA import Typst.Regex (RE (..), makeLiteralRE) import Typst.Syntax import Typst.Types -- import Debug.Trace applyShowRules :: Monad m => Seq Content -> MP m (Seq Content) applyShowRules cs = do rules <- evalShowRules <$> getState foldMap (tryShowRules rules) cs -- By experiment, it seems that show rules work this way: -- the first (i.e. most recently defined) one to match a given element -- are applied first. tryShowRules :: Monad m => [ShowRule] -> Content -> MP m (Seq Content) tryShowRules (r:rest) e@(Elt "text" pos fields) = case M.lookup "body" fields of Just (VContent cs) -> do cs' <- foldMap (tryShowRules (r:rest)) cs pure $ Seq.singleton $ Elt "text" pos (M.insert "body" (VContent cs') fields) _ -> applyShowRule r e >>= foldMap (tryShowRules rest) tryShowRules rs c = case rs of [] -> pure $ Seq.singleton c (r:rest) -> applyShowRule r c >>= foldMap (tryShowRules rest) -- TODO recursive applyShowRules? withoutShowRule :: Monad m => ShowRule -> MP m a -> MP m a withoutShowRule rule pa = do oldShowRules <- evalShowRules <$> getState updateState $ \st -> st { evalShowRules = filter (/= rule) (evalShowRules st) } res <- pa updateState $ \st -> st {evalShowRules = oldShowRules} pure res applyShowRule :: Monad m => ShowRule -> Content -> MP m (Seq Content) applyShowRule rule@(ShowRule _ sel f) c = withoutShowRule rule $ do case (sel, c) of (SelectString s, Txt t) | s `T.isInfixOf` t -> do re <- makeLiteralRE s replaceRegexContent re t f (SelectRegex re@(RE _ re'), Txt t) | not (null (TDFA.matchAll re' t)) -> do replaceRegexContent re t f (SelectLabel s, elt@(Elt _ _ fields)) | Just (VLabel s') <- M.lookup "label" fields , s' == s -> f elt (SelectElement name fields, elt@(Elt name' _ fields')) | name == name' && fieldsMatch fields fields' -> f elt (_, cont) -> pure (Seq.singleton cont) -- TODO not implemented: SelectOr, SelectAnd, SelectBefore, SelectAfter fieldsMatch :: [(Identifier, Val)] -> M.Map Identifier Val -> Bool fieldsMatch [] _ = True fieldsMatch ((k, v) : rest) m = ( case M.lookup k m of Just v' -> v == v' Nothing -> False ) && fieldsMatch rest m replaceRegexContent :: Monad m => RE -> Text -> (forall m'. Monad m' => Content -> MP m' (Seq Content)) -> MP m (Seq Content) replaceRegexContent (RE _ re) strIn f = let matches = map (! 0) (TDFA.matchAll re strIn) go _i str [] = pure $ Seq.singleton (Txt str) go i str ((off, len) : rest) = let i' = off + len before = T.take (off - i) str matched = T.take len (T.drop (off - i) str) after = T.drop (i' - i) str in seq i' $ (\x y -> Seq.singleton (Txt before) <> x <> y) <$> f (Txt matched) <*> go i' after rest in go 0 strIn matches typst-0.8.0.2/src/Typst/Syntax.hs0000644000000000000000000000725107346545000014774 0ustar0000000000000000{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} module Typst.Syntax ( Markup (..), Identifier (..), Imports (..), Arg (..), Param (..), Bind (..), BindPart (..), Literal (..), Block (..), Spreadable (..), Expr (..), Unit (..), ) where import Data.Data (Data, Typeable) import Data.String import Data.Text (Text) import qualified Data.Text as T import Text.Parsec (SourcePos) data Markup = Space | SoftBreak | HardBreak | ParBreak | Text Text | Nbsp | Shy | EmDash | EnDash | Ellipsis | Quote Char | Ref Text Expr | Equation Bool [Markup] -- Bool is True for displayed format | Strong [Markup] | Emph [Markup] | Bracketed [Markup] | RawInline Text | RawBlock Text Text | Heading Int [Markup] | Url Text | BulletListItem [Markup] | EnumListItem (Maybe Int) [Markup] | DescListItem [Markup] [Markup] | Code SourcePos Expr | Comment | MAlignPoint | MFrac Markup Markup | MAttach (Maybe Markup) (Maybe Markup) Markup -- bottom then top | MGroup (Maybe Text) (Maybe Text) [Markup] -- maybes are open/cloes delims deriving (Show, Ord, Eq, Data, Typeable) newtype Identifier = Identifier Text deriving (Show, Eq, Ord, Data, Typeable, Semigroup, Monoid) instance IsString Identifier where fromString = Identifier . T.pack data Arg = KeyValArg Identifier Expr | NormalArg Expr | ArrayArg [[Markup]] | SpreadArg Expr | BlockArg [Markup] deriving (Show, Ord, Eq, Data, Typeable) data Param = DefaultParam Identifier Expr | NormalParam Identifier | DestructuringParam [BindPart] | SinkParam (Maybe Identifier) | SkipParam -- _ deriving (Show, Ord, Eq, Data, Typeable) data Bind = BasicBind (Maybe Identifier) | DestructuringBind [BindPart] deriving (Show, Ord, Eq, Data, Typeable) data BindPart = Simple (Maybe Identifier) | WithKey Identifier (Maybe Identifier) | Sink (Maybe Identifier) deriving (Show, Ord, Eq, Data, Typeable) data Unit = Pt | Mm | Cm | In | Deg | Rad | Em | Fr | Percent deriving (Show, Ord, Eq, Data, Typeable) data Literal = String Text | Boolean Bool | Float Double | Int Integer | Numeric Double Unit | None | Auto deriving (Show, Ord, Eq, Data, Typeable) data Block = Content [Markup] | CodeBlock [Expr] deriving (Show, Ord, Eq, Data, Typeable) data Spreadable a = Spr Expr | Reg a deriving (Show, Ord, Eq, Data, Typeable) -- binary-op ::= -- '+' | '-' | '*' | '/' | 'and' | 'or' | '==' | '!=' | -- '<' | '<=' | '>' | '>=' | '=' | 'in' | ('not' 'in') | -- '+=' | '-=' | '*=' | '/=' data Expr = Literal Literal | Negated Expr | ToPower Expr Expr | Times Expr Expr | Divided Expr Expr | Plus Expr Expr | Minus Expr Expr | Equals Expr Expr | LessThan Expr Expr | LessThanOrEqual Expr Expr | GreaterThan Expr Expr | GreaterThanOrEqual Expr Expr | InCollection Expr Expr | Not Expr | And Expr Expr | Or Expr Expr | Assign Expr Expr | Ident Identifier | FuncCall Expr [Arg] | FuncExpr [Param] Expr | Context Expr | FieldAccess Expr Expr | Group Expr | Array [Spreadable Expr] | Dict [Spreadable (Expr, Expr)] | Binding Bind | Let Bind Expr | LetFunc Identifier [Param] Expr | Set Expr [Arg] | Show (Maybe Expr) Expr | If [(Expr, Expr)] | While Expr Expr | For Bind Expr Expr | Block Block | Import Expr Imports | Include Expr | Return (Maybe Expr) | Label Text | Break | Continue deriving (Show, Ord, Eq, Data, Typeable) data Imports = AllIdentifiers | SomeIdentifiers [(Identifier, Maybe Identifier)] -- Maybe is the 'as' | NoIdentifiers (Maybe Identifier) -- Maybe is the 'as' deriving (Show, Ord, Eq, Data, Typeable) typst-0.8.0.2/src/Typst/Types.hs0000644000000000000000000010321307346545000014605 0ustar0000000000000000{-# LANGUAGE DeriveDataTypeable #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE InstanceSigs #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module Typst.Types ( RE, Val (..), ValType (..), valType, hasType, FromVal (..), Negatable (..), Summable (..), Multipliable (..), Selector (..), Symbol (..), Content (..), Function (..), Arguments (..), getPositionalArg, getNamedArg, Compare (..), MP, Scope (..), FlowDirective (..), Operations (..), XdgDirectory (..), EvalState (..), emptyEvalState, ShowRule (..), Counter (..), LUnit (..), Length (..), renderLength, Horiz (..), Vert (..), Color (..), Direction (..), Identifier (..), -- reexported lookupIdentifier, joinVals, prettyVal, valToContent, prettyType, repr, Attempt (..), ) where import Control.Monad (MonadPlus (..)) import Data.Aeson (FromJSON, parseJSON) import qualified Data.Aeson as Aeson import qualified Data.ByteString as BS import Data.Data (Typeable) import qualified Data.Foldable as F import Data.Functor.Classes (Ord1 (liftCompare)) import qualified Data.Map as M import qualified Data.Map.Ordered as OM import Data.Maybe (fromMaybe, isJust, catMaybes) import Data.Scientific (floatingOrInteger) import Data.Sequence (Seq) import qualified Data.Sequence as Seq import qualified Data.Set as Set import Data.String import Data.Text (Text) import qualified Data.Text as T import Data.ByteString (ByteString) import Data.Vector (Vector) import qualified Data.Vector as V import Text.Parsec import qualified Toml import qualified Toml.Schema as Toml import qualified Toml.Pretty as Toml import qualified Text.PrettyPrint as P import Text.Read (readMaybe) import Typst.Regex (RE, makeLiteralRE) import Typst.Syntax (Identifier (..), Markup) import Data.Time (UTCTime, Day, DiffTime, timeOfDayToTime, localDay, localTimeOfDay) import Data.Time.Format (defaultTimeLocale, formatTime) import System.Directory (XdgDirectory(..)) -- | A Typst value. More documentation can be found in the -- [Foundations chapter](https://typst.app/docs/reference/foundations/) -- of the Typst reference manual. A more concise (but somewhat outdated) -- summary can also be found in -- [L. Mädje "Typst: a programmable markup language for typesetting", page 32-33](https://www.user.tu-berlin.de/laurmaedje/programmable-markup-language-for-typesetting.pdf). data Val -- | The @none@ value, indicates the absence of any other value. = VNone -- | The @auto@ value, used to automatically set an appropriate value. | VAuto -- | A @bool@ value. | VBoolean !Bool -- | An @int@ value. | VInteger !Integer -- | A @float@ value. | VFloat !Double -- | A @ratio@ value, a proportion of a certain whole, for example @50%@. | VRatio !Rational -- | A @length@ or a @relative@ value. | VLength !Length -- | An @alignment@ value, indicating the alignment of some content along both -- the horizontal and vertical axes. | VAlignment (Maybe Horiz) (Maybe Vert) -- | An @angle@ value (expressed internally in degrees). | VAngle !Double -- | A @fraction@ value, defining the proportions of remaing space is -- to be distributed, e.g. @2 fr@. | VFraction !Double -- | A @color@ value. Not all Typst color spaces are supported; -- only @rgb@, @cmyk@, and @luma@ are available. -- See issue [#35](https://github.com/jgm/typst-hs/issues/35#issuecomment-1926182040). | VColor !Color -- | A @symbol@ value, representing a Unicode symbol. | VSymbol !Symbol -- | A UTF-8 encoded text @string@. | VString !Text -- | A @regex@ (regular expression). See 'RE' for details. | VRegex !RE -- | A @datetime@ value, a date, a time, or a combination of both. | VDateTime (Maybe Day) (Maybe DiffTime) -- | A @content@ value, see 'Content' for more details. | VContent (Seq Content) -- | An @array@ value, for example @(10, 20, 30)@. | VArray (Vector Val) -- | A @dictionary@ value, for example @(a:20, b:30)@. | VDict (OM.OMap Identifier Val) | VTermItem (Seq Content) (Seq Content) -- | A @direction@ to lay out content. | VDirection Direction -- | A Typst function. | VFunction (Maybe Identifier) (M.Map Identifier Val) Function | -- first param is Just ident if element function -- second param is a map of subfunctions in this function's scope -- | Positional and named function arguments VArguments Arguments -- | A @label@ to some element, for example @@. | VLabel !Text | VCounter !Counter | VSelector !Selector | VModule Identifier (M.Map Identifier Val) | VStyles -- just a placeholder for now | VVersion [Integer] | VBytes ByteString | VType !ValType deriving (Show, Eq, Typeable) instance FromJSON Val where parseJSON v@(Aeson.Object {}) = VDict . OM.fromList . M.toList . M.mapKeys Identifier <$> parseJSON v parseJSON v@(Aeson.Array {}) = VArray <$> parseJSON v parseJSON (Aeson.String t) = pure $ VString t parseJSON (Aeson.Number n) = pure $ either VFloat VInteger (floatingOrInteger n) parseJSON (Aeson.Bool b) = pure $ VBoolean b parseJSON Aeson.Null = pure VNone instance Toml.FromValue Val where fromValue = pure . tomlToVal tomlToVal :: Toml.Value' a -> Val tomlToVal (Toml.Bool' _ x) = VBoolean x tomlToVal (Toml.Integer' _ x) = VInteger x tomlToVal (Toml.Text' _ x) = VString x tomlToVal (Toml.Double' _ x) = VFloat x tomlToVal (Toml.TimeOfDay' _ x) = VDateTime Nothing (Just (timeOfDayToTime x)) tomlToVal (Toml.Day' _ x) = VDateTime (Just x) Nothing tomlToVal (Toml.LocalTime' _ x) = VDateTime (Just (localDay x)) (Just (timeOfDayToTime (localTimeOfDay x))) tomlToVal (Toml.List' _ x) = VArray (V.fromList (map tomlToVal x)) tomlToVal (Toml.Table' _ (Toml.MkTable x)) = VDict (OM.fromList [(Identifier k, tomlToVal v) | (k,(_,v)) <- M.assocs x]) -- typst specifies that unsupported datetimes map to strings and we don't have a place for the timezone tomlToVal v@Toml.ZonedTime'{} = VString (T.pack (show (Toml.prettyValue v))) -- | A Typst type, see documentation for 'Val'. data ValType = TNone | TAuto | TBoolean | TInteger | TFloat | TRatio | TLength | TAlignment | TAngle | TFraction | TColor | TSymbol | TString | TRegex | TDateTime | TContent | TArray | TDict | TTermItem | TDirection | TFunction | TArguments | TModule | TSelector | TStyles | TLabel | TCounter | TLocation | TVersion | TBytes | TType | TAny | ValType :|: ValType deriving (Show, Eq, Ord, Typeable) valType :: Val -> ValType valType v = case v of VNone {} -> TNone VAuto {} -> TAuto VBoolean {} -> TBoolean VInteger {} -> TInteger VFloat {} -> TFloat VRatio {} -> TRatio VLength {} -> TLength VAlignment {} -> TAlignment VAngle {} -> TAngle VFraction {} -> TFraction VColor {} -> TColor VSymbol {} -> TSymbol VString {} -> TString VRegex {} -> TRegex VDateTime {} -> TDateTime VContent {} -> TContent VArray {} -> TArray VDict {} -> TDict VTermItem {} -> TTermItem VDirection {} -> TDirection VLabel {} -> TLabel VCounter {} -> TCounter VFunction {} -> TFunction VArguments {} -> TArguments VModule {} -> TModule VSelector {} -> TSelector VStyles {} -> TStyles VVersion {} -> TVersion VBytes {} -> TBytes VType {} -> TType hasType :: ValType -> Val -> Bool hasType TAny _ = True hasType TLocation (VDict m) = isJust (OM.lookup "page" m >> OM.lookup "x" m >> OM.lookup "y" m) hasType (t1 :|: t2) v = hasType t1 v || hasType t2 v hasType t v = t == valType v class FromVal a where fromVal :: (MonadPlus m, MonadFail m) => Val -> m a instance FromVal Val where fromVal = pure instance FromVal (Seq Content) where fromVal = pure . valToContent instance FromVal Text where fromVal (VContent cs) = mconcat <$> mapM go (F.toList cs) where go (Txt t) = pure t go (Elt "text" _ fs) = maybe (fail "text element has no body") fromVal (M.lookup "body" fs) go _ = fail "not a text element" fromVal (VString t) = pure t fromVal _ = fail "not a string or content value" instance FromVal String where fromVal = fmap T.unpack . fromVal instance FromVal RE where fromVal (VString t) = makeLiteralRE t fromVal (VRegex re) = pure re fromVal _ = fail "not a string or regex" instance FromVal Integer where fromVal val = case val of VInteger x -> pure $ fromIntegral x VFloat x -> pure $ floor x VRatio x -> pure $ floor x VBoolean x -> pure $ if x then 1 else 0 VString x | Just (xint :: Integer) <- readMaybe (T.unpack x) -> pure xint _ -> fail $ "Cannot convert " <> show val <> " to integer" instance FromVal Int where fromVal val = (fromIntegral :: Integer -> Int) <$> fromVal val instance FromVal Rational where fromVal val = case val of VRatio x -> pure x VInteger x -> pure $ fromIntegral x VString x | Just (xrat :: Rational) <- readMaybe (T.unpack x) -> pure xrat _ -> fail $ "Cannot convert " <> show val <> " to rational" instance FromVal Double where fromVal val = case val of VInteger x -> pure $ fromIntegral x VFloat x -> pure x VRatio x -> pure $ fromRational x VString x | Just (xdb :: Double) <- readMaybe (T.unpack x) -> pure xdb _ -> fail $ "Cannot convert " <> show val <> " to double" instance FromVal Bool where fromVal (VBoolean b) = pure b fromVal val = fail $ "Cannot convert " <> show val <> " to boolean" instance FromVal Length where fromVal (VLength x) = pure x fromVal (VRatio x) = pure $ LRatio x fromVal val = fail $ "Cannot convert " <> show val <> " to length" instance FromVal Function where fromVal (VFunction _ _ f) = pure f fromVal val = fail $ show val <> " is not a function" instance FromVal Direction where fromVal (VDirection d) = pure d fromVal val = fail $ show val <> " is not a direction" instance FromVal Counter where fromVal (VString t) = pure $ CounterCustom t fromVal (VLabel t) = pure $ CounterLabel t fromVal (VFunction (Just "page") _ _) = pure $ CounterPage fromVal (VFunction (Just name) _ _) = pure $ CounterSelector $ SelectElement name [] fromVal (VSelector s) = pure $ CounterSelector s fromVal val = fail $ show val <> " is not a counter" instance FromVal Selector where fromVal (VSelector s) = pure s fromVal val = fail $ show val <> " is not a selector" instance FromVal a => FromVal (Maybe a) where fromVal VNone = pure Nothing fromVal x = (Just <$> fromVal x) `mplus` pure Nothing instance FromVal a => FromVal (Vector a) where fromVal (VArray v) = V.mapM fromVal v fromVal val = fail $ "Could not convert " <> show val <> " to array" data Selector = SelectElement Identifier [(Identifier, Val)] | SelectString !Text | SelectRegex !RE | SelectLabel !Text | SelectOr Selector Selector | SelectAnd Selector Selector | SelectBefore Selector Selector | SelectAfter Selector Selector deriving (Show, Eq, Ord, Typeable) data Symbol = Symbol { symDefault :: !Text, symAccent :: !Bool, symVariants :: [(Set.Set Text, Text)] } deriving (Show, Eq, Typeable) joinVals :: MonadFail m => Val -> Val -> m Val joinVals = go where go VNone v = pure v go v VNone = pure v go v (VSymbol (Symbol s _ _)) = go v (VString s) go (VString t) (VString t') = pure $ VString (t <> t') go (VString t) (VContent cs) = pure $ VContent (Txt t Seq.<| cs) go (VContent cs) (VString t) = pure $ VContent (cs Seq.|> Txt t) go (VContent cs) (VContent cs') = pure $ VContent (cs <> cs') go (VArray vec) (VArray vec') = pure $ VArray (vec <> vec') go x y = pure $ VContent $ valToContent x <> valToContent y class Compare a where comp :: a -> a -> Maybe Ordering instance Compare Val where comp VNone VNone = Just EQ comp VAuto VAuto = Just EQ comp (VBoolean b1) (VBoolean b2) = Just $ compare b1 b2 comp (VInteger i1) (VInteger i2) = Just $ compare i1 i2 comp (VFloat f1) (VFloat f2) = Just $ compare f1 f2 comp (VInteger i1) (VFloat f2) = Just $ compare (fromIntegral i1) f2 comp (VFloat f1) (VInteger i2) = Just $ compare f1 (fromIntegral i2) comp (VRatio r1) (VRatio r2) = Just $ compare r1 r2 comp (VRatio r1) (VLength (LRatio r2)) = Just $ compare r1 r2 comp (VLength (LRatio r1)) (VRatio r2) = Just $ compare r1 r2 comp (VRatio r1) x = comp (VFloat (fromRational r1)) x comp x (VRatio r1) = comp x (VFloat (fromRational r1)) comp (VLength x1) (VLength x2) = compareLength x1 x2 comp (VAlignment {}) (VAlignment {}) = Nothing comp (VAngle x1) (VAngle x2) = Just $ compare x1 x2 comp (VFraction x1) (VFraction x2) = Just $ compare x1 x2 comp (VColor c1) (VColor c2) = Just $ compare c1 c2 comp (VSymbol (Symbol s1 _ _)) (VSymbol (Symbol s2 _ _)) = Just $ compare s1 s2 comp (VString s1) (VString s2) = Just $ compare s1 s2 comp (VContent c1) (VContent c2) = Just $ compare c1 c2 comp (VArray v1) (VArray v2) = Just $ liftCompare (\x y -> fromMaybe LT (comp x y)) v1 v2 comp (VDict m1) (VDict m2) = Just $ liftCompare (\x y -> fromMaybe LT (comp x y)) (OM.toMap m1) (OM.toMap m2) comp (VFunction (Just i1) _ _) (VFunction (Just i2) _ _) = Just $ compare i1 i2 comp (VType ty1) (VType ty2) = Just $ compare ty1 ty2 comp (VType TInteger) (VString "integer") = Just EQ comp (VString "integer") (VType TInteger) = Just EQ comp (VType ty) (VString s) = Just $ compare (prettyType ty) s comp (VString s) (VType ty) = Just $ compare s (prettyType ty) comp (VVersion as) (VVersion bs) | length as > length bs = Just $ compare as (bs ++ replicate (length as - length bs) 0) | otherwise = Just $ compare (as ++ replicate (length as - length bs) 0) bs comp _ _ = Nothing instance Ord Val where compare v1 v2 = fromMaybe EQ $ comp v1 v2 class Negatable a where maybeNegate :: a -> Maybe a instance Negatable Val where maybeNegate (VInteger i) = pure $ VInteger (-i) maybeNegate (VFloat f) = pure $ VFloat (-f) maybeNegate (VLength x) = pure $ VLength $ negateLength x maybeNegate (VAngle x) = pure $ VAngle (-x) maybeNegate (VFraction x) = pure $ VFraction (-x) maybeNegate (VRatio x) = pure $ VRatio (-x) maybeNegate v = fail $ "could not negate " <> show v class Negatable a => Summable a where maybePlus :: a -> a -> Maybe a maybeMinus :: a -> a -> Maybe a maybeMinus x y = maybeNegate y >>= maybePlus x instance Summable Val where maybePlus VNone x = pure x maybePlus x VNone = pure x maybePlus (VInteger i1) (VInteger i2) = pure $ VInteger (i1 + i2) maybePlus (VRatio r1) (VRatio r2) = pure $ VRatio (r1 + r2) maybePlus (VFloat f1) (VFloat f2) = pure $ VFloat (f1 + f2) maybePlus (VInteger i1) (VFloat f2) = pure $ VFloat (fromIntegral i1 + f2) maybePlus (VFloat f1) (VInteger i2) = pure $ VFloat (f1 + fromIntegral i2) maybePlus (VInteger i1) (VRatio r2) = pure $ VRatio (fromIntegral i1 + r2) maybePlus (VRatio r1) (VInteger i2) = pure $ VRatio (r1 + fromIntegral i2) maybePlus (VFloat f1) (VRatio r2) = pure $ VFloat (f1 + fromRational r2) maybePlus (VRatio r1) (VFloat f2) = pure $ VFloat (fromRational r1 + f2) maybePlus (VString s1) (VString s2) = pure $ VString (s1 <> s2) maybePlus (VContent c1) (VContent c2) = pure $ VContent (c1 <> c2) maybePlus (VString s1) (VContent c2) = pure $ VContent (Txt s1 Seq.<| c2) maybePlus (VContent c1) (VString s2) = pure $ VContent (c1 Seq.|> Txt s2) maybePlus (VString s1) sym@(VSymbol{}) = pure $ VString (s1 <> repr sym) maybePlus sym@(VSymbol{}) (VString s2) = pure $ VString (repr sym <> s2) maybePlus (VLength l1) (VLength l2) = pure $ VLength (l1 <> l2) maybePlus (VLength l1) (VRatio r1) = pure $ VLength (l1 <> LRatio r1) maybePlus (VRatio r1) (VLength l1) = pure $ VLength (l1 <> LRatio r1) maybePlus (VAngle a1) (VAngle a2) = pure $ VAngle (a1 + a2) maybePlus (VFraction f1) (VFraction f2) = pure $ VFraction (f1 + f2) maybePlus (VArray v1) (VArray v2) = pure $ VArray (v1 <> v2) maybePlus (VDict m1) (VDict m2) = pure $ VDict (m1 OM.<>| m2) maybePlus (VColor c) (VLength l) = -- Stroke '1pt + red' pure $ VDict $ OM.fromList [("thickness", VLength l), ("color", VColor c)] maybePlus (VLength l) (VColor c) = maybePlus (VColor c) (VLength l) maybePlus v1 v2 = fail $ "could not add " <> show v1 <> " and " <> show v2 class Multipliable a where maybeTimes :: a -> a -> Maybe a maybeDividedBy :: a -> a -> Maybe a instance Multipliable Val where maybeTimes (VInteger i1) (VInteger i2) = pure $ VInteger (i1 * i2) maybeTimes (VFloat x1) (VFloat x2) = pure $ VFloat (x1 * x2) maybeTimes (VInteger i1) (VFloat f2) = pure $ VFloat (fromIntegral i1 * f2) maybeTimes (VFloat f1) (VInteger i2) = pure $ VFloat (f1 * fromIntegral i2) maybeTimes (VInteger i) (VArray v) = pure $ VArray (mconcat $ replicate (fromIntegral i) v) maybeTimes (VArray v) (VInteger i) = pure $ VArray (mconcat $ replicate (fromIntegral i) v) maybeTimes (VInteger i) (VString s) | i >= 0 = pure $ VString (T.replicate (fromIntegral i) s) maybeTimes (VString s) (VInteger i) | i >= 0 = pure $ VString (T.replicate (fromIntegral i) s) maybeTimes (VInteger i) (VContent c) | i >= 0 = pure $ VContent (mconcat $ replicate (fromIntegral i) c) maybeTimes (VContent c) (VInteger i) | i >= 0 = pure $ VContent (mconcat $ replicate (fromIntegral i) c) maybeTimes (VInteger i) (VLength l) = pure $ VLength $ timesLength (fromIntegral i) l maybeTimes (VLength l) (VInteger i) = pure $ VLength $ timesLength (fromIntegral i) l maybeTimes (VRatio r) (VLength l) = pure $ VLength $ timesLength (fromRational r) l maybeTimes (VLength l) (VRatio r) = pure $ VLength $ timesLength (fromRational r) l maybeTimes (VFloat f) (VLength l) = pure $ VLength $ timesLength f l maybeTimes (VLength l) (VFloat f) = pure $ VLength $ timesLength f l maybeTimes (VInteger i) (VAngle a) = pure $ VAngle (fromIntegral i * a) maybeTimes (VAngle a) (VInteger i) = pure $ VAngle (fromIntegral i * a) maybeTimes (VFloat f) (VAngle a) = pure $ VAngle (f * a) maybeTimes (VAngle a) (VFloat f) = pure $ VAngle (f * a) maybeTimes (VInteger i) (VFraction f) = pure $ VFraction (fromIntegral i * f) maybeTimes (VFraction f) (VInteger i) = pure $ VFraction (fromIntegral i * f) maybeTimes (VFloat x) (VFraction f) = pure $ VFraction (x * f) maybeTimes (VFraction f) (VFloat x) = pure $ VFraction (x * f) maybeTimes (VFraction f1) (VFraction f2) = pure $ VFraction (f1 * f2) maybeTimes (VRatio r1) (VRatio r2) = pure $ VRatio (r1 * r2) maybeTimes (VInteger i) (VRatio r) = pure $ VRatio (fromIntegral i * r) maybeTimes (VRatio r) (VInteger i) = pure $ VRatio (fromIntegral i * r) maybeTimes (VFloat x) (VRatio r) = pure $ VRatio (realToFrac x * r) maybeTimes (VRatio r) (VFloat x) = pure $ VRatio (realToFrac x * r) maybeTimes v1 v2 = fail $ "could not multiply " <> show v1 <> " and " <> show v2 maybeDividedBy (VInteger i1) (VInteger i2) = if i1 `mod` i2 == 0 then pure $ VInteger (i1 `div` i2) else pure $ VFloat (fromIntegral i1 / fromIntegral i2) maybeDividedBy (VFloat x1) (VFloat x2) = maybeTimes (VFloat x1) (VFloat (1 / x2)) maybeDividedBy (VInteger i1) (VFloat f2) = pure $ VFloat (fromIntegral i1 / f2) maybeDividedBy (VFloat f1) (VInteger i2) = pure $ VFloat (f1 / fromIntegral i2) maybeDividedBy (VLength l) (VInteger i) | i >= 0 = pure $ VLength (mconcat $ replicate (fromIntegral i) l) maybeDividedBy (VLength l) (VFloat f) = pure $ VLength $ timesLength (1 / f) l maybeDividedBy (VAngle a) (VInteger i) = pure $ VAngle (fromIntegral i / a) maybeDividedBy (VInteger i) (VFraction f) = pure $ VFraction (fromIntegral i / f) maybeDividedBy (VFraction f) (VInteger i) = pure $ VFraction (fromIntegral i / f) maybeDividedBy (VFraction f1) (VFraction f2) = pure $ VFraction (f1 / f2) maybeDividedBy (VLength l1) (VLength l2) | l1 == l2 = pure $ VInteger 1 maybeDividedBy (VLength (LExact l1 u1)) (VLength (LExact l2 u2)) | u1 == u2 = pure $ VFloat (l1 / l2) | Just pts1 <- toPts u1 l1, Just pts2 <- toPts u2 l2 = pure $ VFloat (pts1 / pts2) maybeDividedBy (VLength (LRatio r)) x | Just (VRatio r') <- maybeDividedBy (VRatio r) x = pure $ VLength (LRatio r') maybeDividedBy (VRatio r1) (VLength (LRatio r2)) = pure $ VRatio (r1 / r2) maybeDividedBy (VAngle a1) (VAngle a2) = pure $ VFloat (a1 / a2) maybeDividedBy (VRatio a1) (VRatio a2) = pure $ VRatio (a1 / a2) maybeDividedBy (VRatio r) (VInteger i) = pure $ VRatio (r / fromIntegral i) maybeDividedBy (VRatio r) (VFloat x) = pure $ VRatio (r / realToFrac x) maybeDividedBy v1 v2 = fail $ "could not divide " <> show v1 <> " by " <> show v2 data Content = Txt !Text | Lab !Text | Elt { eltName :: Identifier, eltPos :: Maybe SourcePos, eltFields :: M.Map Identifier Val } deriving (Show, Typeable) instance Eq Content where Txt t1 == Txt t2 = t1 == t2 Lab t1 == Lab t2 = t1 == t2 Elt n1 _ f1 == Elt n2 _ f2 = n1 == n2 && f1 == f2 _ == _ = False instance Ord Content where compare Txt {} Lab {} = LT compare Lab {} Elt {} = LT compare Txt {} Elt {} = LT compare Lab {} Txt {} = GT compare Elt {} Lab {} = GT compare Elt {} Txt {} = GT compare (Txt t1) (Txt t2) = compare t1 t2 compare (Lab t1) (Lab t2) = compare t1 t2 compare (Elt n1 _ f1) (Elt n2 _ f2) = compare (n1, f1) (n2, f2) instance IsString Content where fromString x = Txt (T.pack x) newtype Function = Function (forall m. Monad m => Arguments -> MP m Val) deriving (Typeable) instance Show Function where show _ = "" instance Eq Function where _ == _ = False data Scope = FunctionScope | BlockScope deriving (Show, Ord, Eq) data FlowDirective = FlowNormal | FlowBreak | FlowContinue | FlowReturn Bool deriving (Show, Ord, Eq) data Operations m = Operations { loadBytes :: FilePath -> m BS.ByteString , currentUTCTime :: m UTCTime , lookupEnvVar :: String -> m (Maybe String) , checkExistence :: FilePath -> m Bool } data EvalState m = EvalState { evalIdentifiers :: [(Scope, M.Map Identifier Val)], -- first item is current block, then superordinate block, etc. -- The standard identifiers and the identifiers that -- are imported by default into math contexts are special, -- since both can be overridden by user-defined identifiers. -- So, we store them separately. evalStandardIdentifiers :: [(Scope, M.Map Identifier Val)], evalMathIdentifiers :: [(Scope, M.Map Identifier Val)], evalCounters :: M.Map Counter Integer, evalMath :: Bool, evalShowRules :: [ShowRule], evalNextShowRuleIdentifier :: Int, evalStyles :: M.Map Identifier Arguments, evalFlowDirective :: FlowDirective, evalPackageRoot :: FilePath, evalLocalDir :: FilePath, evalOperations :: Operations m } emptyEvalState :: EvalState m emptyEvalState = EvalState { evalIdentifiers = [], evalStandardIdentifiers = [], evalMathIdentifiers = [], evalCounters = mempty, evalMath = False, evalShowRules = [], evalNextShowRuleIdentifier = 1, evalStyles = mempty, evalFlowDirective = FlowNormal, evalPackageRoot = mempty, evalLocalDir = mempty, evalOperations = undefined } data Attempt a = Success a | Failure String deriving (Show, Eq, Ord, Typeable) instance Functor Attempt where fmap f (Success x) = Success (f x) fmap _ (Failure s) = Failure s instance Applicative Attempt where pure = Success (Success f) <*> (Success a) = Success (f a) Failure s <*> _ = Failure s _ <*> Failure s = Failure s instance Monad Attempt where return = pure Failure s >>= _ = Failure s Success x >>= f = f x instance MonadFail Attempt where fail = Failure data ShowRule = ShowRule Int Selector (forall m. Monad m => Content -> MP m (Seq Content)) instance Show ShowRule where show (ShowRule ident sel _) = "ShowRule " <> show ident <> " " <> show sel <> " " instance Eq ShowRule where (ShowRule id1 _ _) == (ShowRule id2 _ _) = id1 == id2 type MP m = ParsecT [Markup] (EvalState m) m data Arguments = Arguments { positional :: [Val], named :: OM.OMap Identifier Val } deriving (Show, Eq, Typeable) instance Semigroup Arguments where Arguments ps1 ns1 <> Arguments ps2 ns2 = Arguments (combinePositional ps1 ps2) (OM.unionWithR (\_ _ v -> v) ns1 ns2) -- we want to let a later alignment, color, or length supersede rather than -- adding to an earlier one. For #set. combinePositional :: [Val] -> [Val] -> [Val] combinePositional [] ys = ys combinePositional xs (y : ys) = case (valType y, valType (last xs)) of (TAlignment, TAlignment) -> init xs ++ y : ys (TLength, TLength) -> init xs ++ y : ys (TAngle, TAngle) -> init xs ++ y : ys (TColor, TColor) -> init xs ++ y : ys _ -> xs ++ y : ys combinePositional xs ys = xs ++ ys instance Monoid Arguments where mappend = (<>) mempty :: Arguments mempty = Arguments mempty OM.empty getPositionalArg :: (MonadFail m, MonadPlus m, FromVal a) => Int -> Arguments -> m a getPositionalArg idx args = if length (positional args) < idx then fail "Not enough arguments" else fromVal (positional args !! (idx - 1)) getNamedArg :: (MonadFail m, MonadPlus m, FromVal a) => Identifier -> Arguments -> m a getNamedArg ident@(Identifier name) args = case OM.lookup ident (named args) of Nothing -> fail $ "No argument named " <> T.unpack name Just v -> fromVal v data Counter = CounterCustom !Text | CounterLabel !Text | CounterSelector !Selector | CounterPage deriving (Eq, Ord, Show, Typeable) data LUnit = LEm | LPt | LIn | LCm | LMm deriving (Show, Eq, Typeable) data Length = LExact Double LUnit | LRatio !Rational | LSum Length Length deriving (Show, Eq, Typeable) instance Semigroup Length where (LExact x xu) <> (LExact y yu) | Just (z, zu) <- addLengths (x, xu) (y, yu) = LExact z zu LRatio x <> LRatio y = LRatio (x + y) LRatio x <> LExact 0 _ = LRatio x LExact 0 _ <> LRatio x = LRatio x LRatio 0 <> LExact x u = LExact x u LExact x u <> LRatio 0 = LExact x u x <> y = LSum x y instance Monoid Length where mappend = (<>) mempty = LExact 0.0 LPt addLengths :: (Double, LUnit) -> (Double, LUnit) -> Maybe (Double, LUnit) addLengths (0, _xu) (y, yu) = pure (y, yu) addLengths (x, xu) (0, _yu) = pure (x, xu) addLengths (x, xu) (y, yu) = if xu == yu then pure (x + y, xu) else do x' <- toPts xu x y' <- toPts yu y pure (x' + y', LPt) timesLength :: Double -> Length -> Length timesLength f (LExact l u) = LExact (f * l) u timesLength f (LRatio r) = LRatio (toRational f * r) timesLength f (LSum l1 l2) = LSum (timesLength f l1) (timesLength f l2) toPts :: LUnit -> Double -> Maybe Double toPts LPt x = Just x toPts LEm _ = Nothing toPts LIn x = Just $ x * 72.0 toPts LCm x = Just $ x * 28.35 toPts LMm x = Just $ x * 283.5 -- boolean is true if we need to include parens for LSum renderLength :: Bool -> Length -> Text renderLength parens (LSum l1 l2) = (if parens then (\x -> "(" <> x <> ")") else id) (renderLength True l1 <> " + " <> renderLength True l2) renderLength _ (LExact x u) = T.pack (show x) <> renderUnit u renderLength _ (LRatio x) = toPercent x renderUnit :: LUnit -> Text renderUnit LEm = "em" renderUnit LPt = "pt" renderUnit LIn = "in" renderUnit LCm = "cm" renderUnit LMm = "mm" compareLength :: Length -> Length -> Maybe Ordering compareLength (LExact x xu) (LExact y yu) | xu == yu = pure $ compare x y | otherwise = do x' <- toPts xu x y' <- toPts yu y pure $ compare x' y' compareLength (LRatio x) (LRatio y) = pure (compare x y) compareLength (LSum x1 y1) (LSum x2 y2) = do z <- compareLength x1 x2 if z == EQ then compareLength y1 y2 else mzero compareLength _ _ = mzero negateLength :: Length -> Length negateLength (LExact x u) = LExact (negate x) u negateLength (LRatio x) = LRatio (negate x) negateLength (LSum x y) = LSum (negateLength x) (negateLength y) data Horiz = HorizStart | HorizEnd | HorizLeft | HorizCenter | HorizRight deriving (Show, Eq, Ord, Typeable) data Vert = VertTop | VertHorizon | VertBottom deriving (Show, Eq, Ord, Typeable) data Color = RGB Rational Rational Rational Rational | CMYK Rational Rational Rational Rational | Luma Rational deriving (Show, Eq, Ord, Typeable) data Direction = Ltr -- ^ Left to right | Rtl -- ^ Right to left | Ttb -- ^ Top to bottom | Btt -- ^ Bottom to top deriving (Show, Eq, Ord, Typeable) prettyVal :: Val -> P.Doc prettyVal expr = case expr of VContent cs -> prettyContent cs VString t -> "\"" <> escString t <> "\"" VRegex re -> P.text (show re) VDateTime d t -> P.text (unwords (catMaybes [show <$> d, formatTime defaultTimeLocale "%0H:%0M:%0S" <$> t])) VAuto -> "auto" VNone -> "none" VBoolean True -> "true" VBoolean False -> "false" VFloat x -> P.text $ show x VRatio x -> text $ toPercent x VInteger x -> P.text $ show x VAngle x -> P.text (show x <> "deg") VLength len -> text $ renderLength False len VAlignment x y -> text $ case (x, y) of (Nothing, Nothing) -> mempty (Just x', Nothing) -> renderHoriz x' (Nothing, Just y') -> renderVert y' (Just x', Just y') -> "Axes(" <> renderHoriz x' <> ", " <> renderVert y' <> ")" where renderHoriz = T.toLower . T.drop 5 . T.pack . show renderVert = T.toLower . T.drop 4 . T.pack . show VFraction x -> P.text (show x <> "fr") VArray xs -> P.parens ( P.cat $ P.punctuate ", " $ map prettyVal (V.toList xs) ) VTermItem t d -> prettyVal (VArray [VContent t, VContent d]) VDict m -> P.parens ( P.sep $ P.punctuate "," $ ( map ( \(Identifier k, v) -> text k <> ": " <> prettyVal v ) (OM.assocs m) ) ) VDirection d -> text $ T.toLower $ T.pack $ show d VFunction _ _ _ -> mempty VLabel t -> text $ "<" <> t <> ">" VCounter _ -> mempty VColor (RGB r g b o) -> "rgb(" <> text (toPercent r) <> "," <> text (toPercent g) <> "," <> text (toPercent b) <> "," <> text (toPercent o) <> ")" VColor (CMYK c m y k) -> "cmyk(" <> text (toPercent c) <> "," <> text (toPercent m) <> "," <> text (toPercent y) <> "," <> text (toPercent k) <> ")" VColor (Luma g) -> "luma(" <> text (toPercent g) <> ")" VModule (Identifier modid) _ -> " text modid <> ">" VArguments args -> P.parens ( P.sep ( P.punctuate "," ( [ P.sep ( P.punctuate "," ( map ( \(Identifier k, v) -> text k <> ": " <> prettyVal v ) (OM.assocs (named args)) ) ) | not (OM.null (named args)) ] ++ [ P.cat (P.punctuate ", " $ map prettyVal (positional args)) | not (null (positional args)) ] ) ) ) VSymbol (Symbol t _ _) -> text t VSelector _ -> mempty VStyles -> mempty VVersion xs -> text $ T.intercalate "." (map (T.pack . show) xs) VBytes bs -> text $ "bytes(" <> T.pack (show (BS.length bs)) <> ")" VType ty -> text $ prettyType ty prettyType :: ValType -> Text prettyType TDict = "dictionary" prettyType TInteger = "int" prettyType x = T.toLower . T.pack . drop 1 . show $ x escString :: Text -> P.Doc escString = P.text . concatMap go . T.unpack where go :: Char -> String go '"' = "\\\"" go '\\' = "\\\\" go '\n' = "\\n" go '\r' = "\\r" go '\t' = "\\t" go x = [x] prettyContent :: Seq Content -> P.Doc prettyContent cs | Seq.length cs == 1 = foldMap go cs | otherwise = P.braces ( P.space <> P.cat (P.punctuate ", " (map go (F.toList cs))) <> P.space ) where go (Txt t) = "[" <> text t <> "]" go (Lab l) = "<" <> text l <> ">" go (Elt (Identifier name) _ fields) = text name <> P.parens ( P.cat $ P.punctuate ", " ( map ( \(Identifier k, v) -> text k <> ": " <> prettyVal v ) (M.toList fields) ) ) valToContent :: Val -> Seq Content valToContent (VContent x) = x valToContent VNone = mempty valToContent (VString t) = Seq.singleton $ Txt t valToContent (VLabel t) = Seq.singleton $ Lab t valToContent x = Seq.singleton $ Txt $ repr x renderStyle :: P.Style renderStyle = P.Style P.PageMode 60 2.0 repr :: Val -> Text repr = T.pack . P.renderStyle renderStyle . prettyVal toPercent :: Rational -> Text toPercent n = T.pack (show (floor (100 * n) :: Integer)) <> "%" text :: Text -> P.Doc text t = P.text $ T.unpack t lookupIdentifier :: Monad m => Identifier -> MP m Val lookupIdentifier ident = do let go [] = fail $ show ident <> " not found" go ((_, i) : is) = case M.lookup ident i of Just v -> pure v Nothing -> go is identifiers <- evalIdentifiers <$> getState mathIdentifiers <- evalMathIdentifiers <$> getState standardIdentifiers <- evalStandardIdentifiers <$> getState math <- evalMath <$> getState go $ case identifiers of -- in math mode, we insert the sym and math modules right before -- the final module (standard module) (_:_) | math -> identifiers ++ mathIdentifiers ++ standardIdentifiers _ -> identifiers ++ standardIdentifiers typst-0.8.0.2/src/Typst/Util.hs0000644000000000000000000001266007346545000014423 0ustar0000000000000000{-# LANGUAGE LambdaCase #-} {-# LANGUAGE OverloadedLists #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RankNTypes #-} module Typst.Util ( TypeSpec (..), makeElement, makeElementWithScope, makeFunction, makeFunctionWithScope, makeSymbolMap, argsToFields, nthArg, namedArg, allArgs ) where import Control.Monad (foldM) import Control.Monad.Reader (ReaderT (runReaderT), asks) import Data.List (foldl') import qualified Data.Map as M import qualified Data.Map.Ordered as OM import qualified Data.Sequence as Seq import qualified Data.Set as Set import Data.Text (Text) import qualified Data.Text as T import qualified Data.Vector as V import Text.Parsec (getPosition) import Typst.Types data TypeSpec = One ValType | Many ValType deriving (Show, Eq) insertOM :: Ord k => k -> v -> OM.OMap k v -> OM.OMap k v insertOM k v m = m OM.|> (k, v) -- | Create element function with names for positional parameters. makeElement :: Maybe Identifier -> Identifier -> [(Identifier, TypeSpec)] -> (Identifier, Val) makeElement mbNamespace name specs = makeElementWithScope mbNamespace name specs mempty -- | Create element function with names for positional parameters. makeElementWithScope :: Maybe Identifier -> Identifier -> [(Identifier, TypeSpec)] -> M.Map Identifier Val -> (Identifier, Val) makeElementWithScope mbNamespace name specs scope = ( name, VFunction (Just qname) scope $ Function $ \args -> do pos <- getPosition fields <- argsToFields specs args pure $ VContent . Seq.singleton $ Elt qname (Just pos) fields ) where qname = case mbNamespace of Nothing -> name Just ns -> ns <> "." <> name argsToFields :: MonadFail m => [(Identifier, TypeSpec)] -> Arguments -> m (M.Map Identifier Val) argsToFields specs args' = OM.toMap . named <$> foldM go args' specs where hasType' TContent VContent {} = True hasType' TContent VString {} = True hasType' TContent VSymbol {} = True hasType' TString (VContent _) = True hasType' TTermItem VArray {} = True hasType' x y = hasType x y toType TContent x = VContent $ valToContent x toType TTermItem (VArray [VContent t, VContent d]) = VTermItem t d toType TTermItem (VArray [VContent t]) = VTermItem t mempty toType TTermItem _ = VTermItem mempty mempty toType TLabel (VContent [Lab t]) = VLabel t toType _ x = x go args (posname, Many ty) = do let (as, bs) = span (hasType' ty) (positional args) pure $ args { named = insertOM posname (VArray $ V.fromList $ map (toType ty) as) (named args), positional = bs } go args (posname, One ty) = case break (hasType' ty) (positional args) of ([], []) -> pure args (as, b : bs) -> pure $ args { named = insertOM posname (toType ty b) (named args), positional = as ++ bs } (_, []) -> pure args makeFunction :: (forall m'. Monad m' => ReaderT Arguments (MP m') Val) -> Val makeFunction f = VFunction Nothing mempty $ Function $ runReaderT f makeFunctionWithScope :: (forall m'. Monad m' => ReaderT Arguments (MP m') Val) -> M.Map Identifier Val -> Val makeFunctionWithScope f m = VFunction Nothing m $ Function $ runReaderT f nthArg :: (Monad m, FromVal a) => Int -> ReaderT Arguments (MP m) a nthArg num = getPositional (num - 1) >>= fromVal getPositional :: Monad m => Int -> ReaderT Arguments (MP m) Val getPositional idx = do xs <- asks positional if idx >= length xs then pure VNone else pure $ xs !! idx getNamed :: Monad m => Identifier -> ReaderT Arguments (MP m) (Maybe Val) getNamed ident = do m <- asks named pure $ OM.lookup ident m namedArg :: (Monad m, FromVal a) => Identifier -> a -> ReaderT Arguments (MP m) a namedArg ident@(Identifier _) defaultVal = do mbval <- getNamed ident case mbval of Just val -> fromVal val Nothing -> pure defaultVal allArgs :: Monad m => ReaderT Arguments (MP m) [Val] allArgs = asks positional makeSymbolMap :: [(Text, Bool, Text)] -> M.Map Identifier Symbol makeSymbolMap = foldl' go mempty where go :: M.Map Identifier Symbol -> (Text, Bool, Text) -> M.Map Identifier Symbol go m (name, accent, v) = case T.split (== '.') name of [] -> m (k : ks) -> M.alter ( \case Nothing -> Just $ Symbol v accent (addVariant ks v mempty) Just (Symbol dv da vs) -> Just $ Symbol dv' da variants where variants = addVariant ks v vs minModifiers = minimum $ map (Set.size . fst) variants shortestVariants = filter ((== minModifiers) . Set.size . fst) variants -- "When displaying a symbol, Typst selects the first -- from the variants that have all attached modifiers -- and the minimum number of other modifiers." dv' = case map snd shortestVariants of [] -> dv (x:_) -> x ) (Identifier k) m addVariant :: [Text] -> Text -> [(Set.Set Text, Text)] -> [(Set.Set Text, Text)] addVariant ks v = (++ [(Set.fromList ks, v)]) typst-0.8.0.2/test/0000755000000000000000000000000007346545000012212 5ustar0000000000000000typst-0.8.0.2/test/Main.hs0000644000000000000000000000465407346545000013443 0ustar0000000000000000{-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE OverloadedLists #-} module Main (main) where import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as BL import qualified Data.Text as T import qualified Data.Text.Encoding as TE import Data.Text.IO as TIO import System.FilePath (replaceExtension) import Test.Tasty (TestTree, Timeout (..), defaultMain, localOption, testGroup) import Test.Tasty.Golden (findByExtension, goldenVsStringDiff) import Text.Show.Pretty (ppShow) import Typst.Evaluate (evaluateTypst) import Typst.Parse (parseTypst) import Typst.Types (Val (VContent), repr, Operations(..)) import Data.Time (getCurrentTime) import System.Directory (doesFileExist, setCurrentDirectory) import System.Environment (lookupEnv) main :: IO () main = defaultMain =<< goldenTests operations :: Operations IO operations = Operations { loadBytes = BS.readFile , currentUTCTime = getCurrentTime , lookupEnvVar = lookupEnv , checkExistence = doesFileExist } goldenTests :: IO TestTree goldenTests = do setCurrentDirectory "test" inputs <- findByExtension [".typ"] "typ" pure $ localOption (Timeout 1000000 "1s") $ testGroup "golden tests" (map runTest inputs) runTest :: FilePath -> TestTree runTest input = goldenVsStringDiff input (\ref new -> ["diff", "-u", ref, new]) (replaceExtension input ".out") (writeTest input) writeTest :: FilePath -> IO BL.ByteString writeTest input = do let fromText = BL.fromStrict . TE.encodeUtf8 . (<> "\n") let testCommand = "#let test = (x,y) => { if x == y [✅] else [❌(#repr(x) /= #repr(y))] }\n" contents <- TIO.readFile input if "// Error" `T.isInfixOf` contents || "cycle1.typ" `T.isInfixOf` contents || "cycle2.typ" `T.isInfixOf` contents then pure $ fromText "--- skipped ---\n" else do let parseResult = parseTypst input (testCommand <> contents) case parseResult of Left e -> pure $ fromText $ T.pack $ show e Right parsed -> do evalResult <- evaluateTypst operations input parsed let parseOutput = "--- parse tree ---\n" <> T.pack (ppShow parsed) <> "\n" case evalResult of Left e -> pure $ fromText $ parseOutput <> T.pack (show e) Right c -> do let evalOutput = "--- evaluated ---\n" <> repr (VContent [c]) pure $ fromText $ parseOutput <> evalOutput typst-0.8.0.2/test/assets/files/0000755000000000000000000000000007346545000014616 5ustar0000000000000000typst-0.8.0.2/test/assets/files/1-writing-app.png0000644000000000000000000225730507346545000017741 0ustar0000000000000000PNG  IHDR K @iCCPICC ProfileHWXS[zDB *6tUD숝Eł.ʛu_|?gsܙ{8ΗJP-%@֨T  :@)'&&E{IZH A>+RY!Do9P]  • {6 q\[Р, *dA z.X_~x!A) }v:Yj.ʢ$.'%?OVj,,N1g# q$#*b?J{QJ<,Qe 0g@b!?(bcC$yQj>#SƒtEjqj_h]Qg2_DZu S *'EALع 7>Bm38o#)ⷂ8N$ TcE8}i~A|b^+NSkù`DNb`Td\`ܱg"IbZ烴00N5Hb(/T[@VP'31 8~x*| \X@krީzB@'5?"Y#xP H *{E_X d*{#rAȃr(ɀ$2x*|?@&R=`b1BǍp?X]q6?'vC5B8lOQP?Ds@Mw<PǍpp\u܊~ ~xj; %"~Iw(rc~Tf ;6gKl>;azŽa X+vDVc'*2YREW(xGxd8+Ł_'8a^_ob D;7|΅`'9;6thpQ 8\q!4C` ,+> p @  φ\&`(e` X ւ `3v}'ip\z: ށD 3qD\6#H#Y#S9H YlBH#r9#Hb(EMPt(F9hA h1:]FНhz^C;h/0ML3ǜ06ŢT,aӱRj&`X7'L;'|>_ŷux ~41MF %rVA): D>і b 18xN|D%H$G/)'JHkH;IHIf!;4j\xE&{Bdbr"MR(9YՔZ)]MMM M/XML՚{4j>Hա:P4zzFhB"Z5$>IwB z~AfX38bF9c?"[ekMתjԺիP{9g:$`\:'u11%000O1;u<2]m=z:znzIz*uc6<<d23H4hA7l` 2(5mp!00pa=#(hzSF݃u  .omc8xfV^SP&ݦ9+Lv1f+̎=g8~%!ۡ#(v\>0kdHՐNT'SSg}H/Z Mt虡\]\3,|aM^: \+\ >cxWnn"n7ݙ#7yztyZy{Vz`c g^^3{}.Og#lGFl—ɷÏѯܟ_02@5)Ǟy( <͝=' bR:%x!,"li O{O oFGx)l |((IT}4E/c3!P,16&"IܰqgwĿKLXp'.Q؜HJKNz,cQF]H1J4RRrtg{ZI1c&97hl#ғwGʌWJB \!ff.|囵<+?<[ ِ>7:w[n_^r|F$W2tRGiczdHB]#*"PWTQab'I&Nv`ߦSSO54δMӑӛgXΘ;sf(rg>eo$ik2wGRSB/ܘ3o||x~ۂ ,V*,=_RV^e`_׾E{,^DRۗi/+^hu+X+JW]9nr (:VGnXcfɚ/k^]i\:n0PFƛB7UTo&n.dKҖ3jlmm㶷T{VW0ޱtLyiWЮZMw{{M{}_ľTd,C&gw4477674<|haG,>J9:h߱cǥǻOdxe']9}wµk߼v[y^.̻7_;<:<z0GG/<9 IS\ |K3Uo l{7wߗ~0#Oɟ~eWM"e|+ mR`e,̪D?aQY<{gC Ç\(Dx5#?:s-Pw|9[$>eXIfMM*>F(iNx ASCIIScreenshot=ؓ pHYs%%IR$iTXtXML:com.adobe.xmp 1766 3046 Screenshot ?iDOTs(ss1A@IDATx}Vߵ9{½ł-PMh[jJ&iJcZ)J& (/i}14i+*-?Uт-R^Bxr{YX~k^{8y|s|1sy FEC ,Pk;M1o m~DZ`I}zyx9&}:c>XAu_3C(%6z߆1K?B2׌y~-eޠ/SM[ q XQ_.6$΀~Vm">3b2MA_N?֛@Ǡt\ uK68F_tboPF?:!ٛO'H7-[rsM5?7\dMWW׶\#____xk_.bF׆l5)**փkkoK+ [C`XnMP?GKԺwϒ=~<C/+>`שodX?Dw)n1WEk+7LDvԕ?jR?Q{â{5]+&{{Ru{{,b -rnIg'VZ~5ppn@#^83H ڨ?\l?|kx??k=^dmyb3~N[A>{-l"uiS_<7?VKՓ6__ꊩTU5m/jG1mDf+SGǴ??? Ŵqm3_QOOXQCvBȅ:1}QSH!+keurl=eWۡ͠Yu显hc) x6;q̞L>=) xkcIC _1vs!6N'şXOm&XX؉VhK???7;q̞b9^Jg Ayh#z-Uggc>h$DlJ&ODVHŹnvu-qf6m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]/ _/BA=䭓:ʳ.n~N]1?e]@~6:ʳ.M'_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@3gA@03y4,:`/DGyg;c|PQ/n(v'<䓿#c*ƶ$և x+TOQ(ߊLņߊL/Jl*U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6겿+2oW+k+>W1>qL7Jl U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6u~ܣSmjzr/Y࿐(o?8AbK*3o<cҗ:x ۯ?DG_ş?Q7H=̻hxP_j PJcW#6rC=̫+e,PwcwSw} sͼ(/u\he2i_p1?۳o:H+E]=?8";UWlo_Pq/M*/g;o7dWȏ?/Ro~?lA?|'ݣe\h//g;ƹI7z1^X,HE*@ (C.DoIzǡRF`_^ܦ|ǾL|_QϬ/,t7m_[]Y>Wߝ?tr.v't[珏w+~y?wsϝ?ws;Lw{ sz1=Qem={|x|!*LԂ L 8i}:}O#0 %CyWƝ0Hx䯸o5A e7_?ka/\WD׆{e/VX|?5pwk?uG?V_+lfnk%m孹X#wXA{-{9o?- ݐ;\(1A;%eBx3ǒ_:8 2;Dž0_x5f΃)_y[fg>-Y!1._ڒ⯹,,ԇ?3??_;ua&<KvK/tsoã>:a!݋l}|,@S>{VWK>ꡛ[E\taha1X`g`-1BzfJ? ~ǥcWA>e*q/ہ[H'Y}Cw)((:/S?? H(..^Dwww7GILWW\??\=whwߝ?tK/?O?^rpt{/ XTz .@'94W>r|*eɞu۟|3_/΂%SmO?c+쵰>G٤?;W ~lZ?+uCaYg{gO nC~Ӟ{nr^81?7}B,.b<^Ry]DKա"qis̋Iqwq";S޿?w>p?i'1~k_b@g?h?% t}i?lI l@ :Ο:'bΟ:qY k=w5klgǑͨ! O4H!p[3yĦ`\gbku qlS)~:?峰#|ۘmWɇo@1ϜOZӊ?ٟO'to7 g=_/?ſD^n<:'? ^z>wz_1~lc\2+G?>@d!<NS /" :)t|/y9n2c@s+?&Y}?b })YǟZ'Yk"k-@@@GGI[[UU[DGGGWggg'M2(...m“?Ss o:ﬢwsrΛyh.wqX y-iPvuOeR["4|L>}C 9'\&62cၜrɇiGv +w?k?_@no7__agv_ggggggggg1fgw-6 Fgm6c {5N} Ǯϓ!sxA6s![&UYc}n>o :f -_% ˷{Q<= _+I??^Hsk,Tƕ׉??ֵM7\tgtp T:_:nP/?g}g I_?{3):ʶ-see0}h7VzM v,RݲO~ ON|;ےq_6MVeRhv7OZ׆4joeRhKw\l?+Ly۠5vCs0// şş؂oblB_Fh_cTc[~sEe5g->_?igZ(--]z{wjgcoIxh1K!̔OÃ/K_q:շ9dUOl?O'wo_?VW[[kKo/:`D>q6?n{3SQ@R7|DGW(Xm#>˔1m_ /!+-A6*`oSmcb!wloCe+}?ﴏ:],1ZDyex̓i'3+uG7{"'(gs%WC9혴$(/4O ix:TLiǃEQUvZ*2Sf<Ǥ֑^$߱N|uL|.z?ӿ_iO'l?O'Y7{W????????сǍH[_?2'?,13c2W?Yvڮ+AS~! @UT\`RC_tP }.0׼c# +2_ÀXX37偏dʟH>SK8? +r߆||OOZ5s'danz?o n6?X+Cwwwwwww7Gٴj{1 uC[|oy?b۶ܝ'v&?7y?uL/zߝwF ֡,0dX.2Ǚe~A^>^Wߔx{^*5WMkcߟW_idW=WܤwLi7]]'fw],ǩbt,JdWl!-(*,6vnGE_?ߛƐ +{ܨoj;????o'$3^XMƼ_!{}oO*],{}Ryo CT<+͞M wL|b+g?h0O|o/zxSw:5c%ij'I_f7d??_t7+(((((*,,n_?\¾?wC?tC?tCZ5xoR>qrI!yIۏgËC^wGTG!TSǔ1Gǚ}k wL~{=|Uȿ3}=?~mfv5/ǸOj8?c.C7fzо"wL<|l9BYJS Cq*|dz}E}}ٹ %y@{)5Fcc#|]55HcϊuTQqU]UަHkM\"ROlCwwxK@?XB_ O[r_+_:6&?n&]gE?_u?v΃1%#m_~q>6Nj|*x*m2NYAy ˡgʇq|e29;G߅>{E{Sv/T|W&mQlKbyfĤoG1]7-(((((*,,,,,nWߝ?tB-?:  ݿ_ceSggx]W?f< BYtKR|=ċR*3bPpQy ʴ8 TJx$y<,O,nlsAɧˏʧ?2u{|._){??-fs6gCt?d?[Z߭\ϊGk;NJ؈ϫߋS2e.59E5KxW׾ʿx)x9wP~KEN*Vn~xF"YG\>UyhCCE򩟇Kl1yy`fB_[ϏCO|e睯+ %9ET߾G|/?їfMƟu h|NJEww7a?o1Ά)hCAoG׺??Y ߇{fijGgGE~닶>G?c郯3?_ +!x}}~N繥 0?,>* DMd)3(D ; f<\&cL>{A_O>}W> /{7~#kZd?Ogܷj{3r]/b!=) ZoW[ `+'C ﶏodoGۀP/_VJ 8k׽)((Y=IzHg:Sοԅ?;Iy>!?3}cxm\@<|Dxgwv: oj2}'\|ɣ5UIiԎ ?uW1Kף|.&y?Ƶn, MF΅'uk]?O:3+???.?(****z:şşş/%(...]$8'>Nq7?s:}}?#uSq')s{^2q<)D[g_y{1ߋ9?m~}2Q'Ǧ^sA+, Hw(OS>ɧ^>cPgi>cit,6SwWɿW߿)y.eSNʓ{" [/ x{jkv"3.>oϨWgO7??^~mO??Y;US닿.#??;]kr]w>?ry0?4>yO=җ˧o.ϫU':;жϸʧgʿ~#>g'ֳ#C٤7-_ ~_6l&56SGdJ;_l?ٟjS_Ο?uh%}qnMt:Ο:'@o=o_C|Nps%{bSx9%gq|þ?}HR}vOAϸEm_FwSxOꡩ嵝u(C~xUI_Rlu{N%{L޾G)\r#M/s,g^Щݏ?@ iws\nfҿ;RXKP(i?Á ko2v' o7l"6>b;އ?f5/o7((*;XWO{{_n{}SOټ~TY?ȇC ؔW)C;(?$ KΝ6ߙy/_YJ>S1VZz|'YM7{_OVWhHFEv8OM=*..~oG;Ǣ?4>zev]7}Y":YWB.+s'$=(C|ɗy_>JIp*+.:M\hz mW>oB΅qGd˧MgU>kMϝ"s~{v:n)uycACiHm3o_d1. !uc|x.9B=,;#SJ>31߹{])v*> W]y~&Viu O'dV=(93yt[QQo??<1̣'___K;:sm_sfO'sH}-XAYU9cGco?&mwU3|%EvE!cYY|y3ãS_~C \/,ŻP*3F]>C=48+s,x"29}uYR-+|g/>ʟ$}Wd3O#1QwH}S;VWLOb-Qӿe>\ڟ/8+[ga,o~)"bk)QW $! =5o%U? 55ڎoWN`1-ri!(UgtC[((oXtxC_b6HMQ??)(Vh;??ċ_|?y/T'vMIO=%їwuӿ} 8|-}{ eP> "O*t ʌx۟:ۖ%0 }T%E}nO|w;ٟgL8m߿O~?l|o?ٟէOg1~` 2t^(h[k:<ʡl'??Vĺ>WoړOW] ЋNJ~r5^^P\ODw`,,nkcFlK^jfϿ_nqY:e}{S|)?|96d/Uw)ۗ>3'dAy~g/~͏{ƇC/Cz ~`JEUVg/6}|l꼔@Q@IDAT":SO2O{/Ý|t#%N\&:_yzfM[d?{?j??O7c?آE?XW?tC_<}Zum_I<~t SOD&nOm@c2 /D."/N|3ONyc\1/wPwSO~p\d<3ğBqU0 8~Ts1PJlLqI_] c1^>eo?r}u)a;6H|w||?m}o{xS^/m?z~7[e?/7[ŏM???hgU?tp_'?tC?tCOwy+Ou/x8c@A=]G>c'*C(v|dڲ< |g`ȇ#|L$??4/gS22nW(2eC6Rȱ?&*/Xg/}|g/.;&Sz6gv|+c16t||PQsl?fט -*XR7k~c5B{[QQ,??2N|d^$_\7>Q]%)~xֈ9Cp(ڏf?1qA׾[\yX.cS?싌@K +-kC?߱qϹ{!?;?|Ɔb OZٟF`++a:?VQ1mw____s._^Cy KO=}?O'o0Cwb^ dЏiC)wg1j m#e?ncE~[aN埱1lXEm;ﰗ]x;{̾{K^>e|tʧsNʗ߾!S2g|gf'!?L:ht|8ǂm#G%l?e0u,-^$i:w/0?OOy/lcʧ/oJ)ql뼿O_۶oY9SH/>3RoY9߿2ٜB2|䇿nM2ꂺ?_\s쯺nd/>fXmn7.o7-(*"L歧 އ8O|m#@cnxI! -RO늵SY<ǟU_?8W![6G>)1CEt :cEg`"Sl˧wzHy3gB^0o L}C(r m~h7eS>e/,+ñB޶S;/)SR<\|ڕ/PcQo)鷗O?v||y/y^}G%{q]v\oˮ7xZ!ˊbٟµ$W$_'n1N;ܪߺ.*s1:iGohXW/l}4fD7$[? :;C/mCg'kC_E{jemw=3ozGc/eo۔ocgK@ו8|63DeRߋ6чvˤo)O9Ggt> ^~HG;@(C2GʃY5ξS |e )Sϼ|4S8;0?6T?c\& O|O||{ ?[{?-Bd??ſ$77-_GGGGGGGg<_şݦߝ:@$ eRhW<|fSGkC;bN2)4EG䋿V,>iyPt8O.CW?o+]$[sL>m)y{5R~s˷]?i#gxɇwΉ1% ҽܘg*֏'KNvU%{ y-#)32WSrM)CK*^ mG_bygٿRu_S3ȧ|S?)+Wy9Og\xT)֞|OOdXqٟ ߋfL7;Ka+|ohq_kf7jլ?6|?hwܔ[͗P,h1>{d}7;m}H6Wt)~8`<ʃw ?C&ාKJd=㑷zU:_^MlLF@P*`!S/ٳM^Gb|7߿^c*}y:{oEnR>cLJ?ߛoo+(şşşşşş7uT]]ś?mW/g?\x.I4񒗊?Ebųcӣo7ލeݴ c<+.qƾLx< 2)C{o.u븤˧mO@e| /迗/;[̃:s/o_^X/Ao3|GcY?T.zR'?bIA~G9Δ7!5·1KL)w@.c=KJkS?Sޔ/u[o?R9|J|r|u|8_Ci^a~ei4?vwdOnj8 ****bXY9|3Aşşşşş?6,9*^uG;>S_{Oz{^믿%}^z !H%O^~[}yۇ~+ԭ}嗉p"e;62 .hwt[珝vwaK?~߻tG?Q#u&OO}??|xy><<\_э2D/yKL\^+L?I,UR.9?3rMq|L˳dޛ*@SK=yư-۾Te ȀGT>e66q|Q?CC3} ?>>?/+?~rUw_.˯p{q(qvGeWo?|wG~~tp^;̹`h?α)̸o~ocR(#ӋĤ\L۔@RH}۔kthJgSA~DH_Y/SGX~T뗪*JF:哷mڐo?R/U1!I sG/ܹW(B B B B B B B B B B B B B B B B B B B B B >ϫkI?w}w~~}C? p>0y({}L>IwmC UmW y WE3}$>Tű:@& f”1|oxMJA /#ז`,Yg3S|Q>b)&a?7Oy/e*9A3Ŷ%{|x͋eb'I`}hHЇ~g6S?CʟJq|@2 ~>"v=/ſ~W|}ͷ^G!!!!!!!!!!!!!!!!!!!!!w w?;~ǿ'?я2_X.WwLv xy:BZs1eb?3 Ƙ㐷G=4Ǜh6h/~=t<|۟j 'r>T(^># _>R>ǃX)9ΝvH)Ia9w;ig}g}}_C__Uo~(B B B B B B B B B B B B B B B B B B B B B!\?wo,3p1߿,t&cϔ{ƴ>3mzȀ}i˔v囟sʧm|OX}sw)Ͻ '~/&LBs#Y&=>!?)m/)O=)6Q/qhSc^&_vLRRgw}7|?k7xK @@@@@@@@@@@@@@@@@@@@@ m%e~aɞ8A#S]cO_$~~|ַ__~wK Q@@@@@@@@@@@@@@@@@@@@^z][eO.3/{11yynN^kH MӞ>ew>mwnO}S8'x( 'xn;cw?0myɝcOf_'O)1^g,;g+zfy)}uI?Co~wށ5 OpWMM2^7L<;)mɧ'UϾ|6& 싿~~/GÝyY}?'/8Ky:);y?Sf);ʡL~AoOW;GewǠvN4ǟm@e|ly}y>/_/|åvjtB B B B B B B B B B B B B B B B B B B B B /^U_|W,sSL)^v/ g l.]$ǣ|{g:d_SK} @<1ϼ&PLH( z6?a1"zO 6(c_$? l~/6~|ίYD;w~kЇe?p{~1)ϼLϼgl~i>w1/){_oa?3eƧyA>kyHK ?Ay8Β}:Dh&ySA:{4}Ao;Sʇoʇ߾(yƵ47kiSwu,(B B B B B B B B B B B B B B B B B B B B B@e|C2=ysvz;{~ƠfKk M_}|;sY%:4eO)~lAA6!R):SeX1* cBLs4wg!3%}'?_^zס9 ~{~_cKf?{yɞՓ~-ۗuC΋a{ФwlRƁvۨ5uN+tw,8yqP(mT@vپdcA{|_}ȷ$9>|A}?D*ec\ >A~^D!!!!!!!!!!!!!!!!!!!!!} ܯmg􇗇;c@M?iʧ|xs i4or /<uǀHvbg߅@}qL۟ʇ1IT yc]B>}/2Ε1%E?_lQ@@@@@@@@@@@@@@@@@@@@o|7|_Yc{;<./lعcO{.miya=ϜCs|kc*:EYeIll~ D>q.o.,C2d=;l'"LH!ʥcn=xŔïז_W{(B B B B B B B B B B B B B B B B B B B B B@{}7˄ry/`"s^tv'?'8S)z_3}gyʎyzdFy-/ܩЇ|iAlgRW~X^\W3o_?1˧MbʌL_ˁgslƃq^Xg=O_" xx啗||_Ϳ_e?<#Gd;IDNp 4=9gRrAFqq9gR<&by :|Rq}x N>ǿ{_m= xt%_e?)D=|[O'}G &p )s,/7"u>S><)9OyIA=)ז?jG!!!!!!!!!!!!!!!!!!!!!']p⎱G&2ygɞ5?{gפ}]fgRdQl?+x1%.g<ז;ɋ? BzQ)Oԑ! #Ǽ/Uzzџ6H%".}?h=8̍9GA|HiS>}G2y6xkKg+_D!!!!!!!!!!!!!!!!!!!!!\_>Se`y>y2Q#~XB^[q|*?GD!!!!!! O|G?+z˳GX&!W5=B B B B B ^h^~}-//k_g@byG>o&l_4S_Pce^;AC!yI!ǒ_\zmmL>~Xʐ-#@{+p1~߹#p!~/֪B B B B B B B B n }wAnW^y|-/c!L?>bR<<һ1w)Co6]k7y;a=ï,'O~KաcGO%ke.'ϼoɞɐvs9w'>O|(B B B B B B`"}OO?@@@@@@@@=%OO{%(B B B B B Br?}'_\|dy+EfS!Gα~Gey쁼LkCy~yٶ|iHʳ2R>eeGXZϭB &il  !{FTp[QԂjZWnjkbZ[u2d7d'sܜ\ 7}s|$s㷘!li c :̓O=|cC {Ѯ-~֊y̡Ły?]>ܹ蘝7}!`!`!`,ZC0 C0 C0 C0 @jj$'' ,!`!`!`яnNMI&!`!`!`N!`!`!`!`@ мysNjM C0 C0 C0JC#/zK 19蓯9'ڷU'W?86kCG^4߽_Nxa~}҇qpЖzu飀1/Z!a p8F˃1|B SU2710`zA1 >~<\;g}{7I!`!`!p"{nY~O/C0 C0 C0 C0 hA֭[KzRa!`!`G#/jr _#'DbaC[ =!he c`*cc{sN3z0~>->'% ' A?yĖ #[8e~ ͯ0I~~ĂC㠅O!'c됑3'0 C0 C0 [Jn.O!`!`!`!`D1;!`!`l߾]5jt`,Vi}YRSNPKP?т[?g=x~~0?-CK8[U|h)>ǵ@Qa&) 0 xi9؅ bcIeLqR`ѧ t=K?9`-B=l!~~0.BAG̬i )C0 C0 C0L$##\0 C0 C0 C0 Z@jj$'&!`!`uBy믿.K.r饗JÆ؏0B^z _==\@&)<} &@hIca1kQꙟA\^0}??ơNg>OT}O쁹!`!`!`66m0 C0 C0 C0 C zhԨh"z C0 C0@AASN2vX&6༮\Rl";v{^u8iٲo^bcA$5i`yzL.2 r'}aK6h!hOȇ?֡=}C8_υ! C,OOs> Za9q 'ZԮzĀ0o 84?ls?cpmCNEb>Zd꜑ C "'B–;F2]>˅ C0 C(UJm`!`!`!`]dMOn=RAINJ͚Ijj~C+0 C0 C |`)Sٳ]#F,OM& +" nְaCiӦ"PKjJ0/;惟 !xHGK.vea?آO5e^ؐ  УOS'?}-3 c-}`˾v\oz- {`  ("ɡC8Olx/txa]~ØCXq8fc hq̃?8=#@:L͛ߖŋ'-"q)"*bV1ܐڴiY!`@#`h?CV!`@mG`~zq.q+6|PKl,[4^M"!`!p I,Y"ii duRPȯ 1!Qt*{HF0 C0 ڊH/̝;-acɂѱ]w%͓^kV䪫2r"}i\A^z%5k[jbbׁ@_ pq3_`^drYg~m("柬u/ gccpE ?:t2#ϼhqyƅƴ/a2?| h! 9>Xh GDנυ!O|`1!@hy`1OUN/";ϏOǘ2Nx2a}h:ul'z7c~̬O0D222d„ ŢC+cƌR1F̯l:eO=%ׯ%..\?30 C0 GBC0 ډ.ڒ@5! _е47!`!`ŋo_ew]9'D1j!`!`̙#/+wСrg>v_h4jH)_ve_Nz-]ziG]<<% -[F _s_$)\C0 C1C[!`@t"5F' _Խ=aA =}۬_a'q öEހib!`6vΚ~:MVX^N.]V+NeYe⛭!`!`@!- o^N:`҈9dSO=J`Zqƹ;m2Z˗o&Ƅ͛Ӹ v$l [ /JM2E~'s'_Q*f-=]| ٶm[CK.$8!`!`n_ϟUo!](1 Eiٸqc&ݺΝ;:oJC0 C fyߒ 8Jx d}cs!`!` &N(iii%v̯+ *v]~뭷M$=:`Uk^w-ظ5))IƏ50V7!NII.+ 1[Fc?}C 登S[^n {?y̘9~bG~yc!Cs#ON>Prbp $9 :ǰ/z0:yaz .>\sA͜c~1?cПA2kqc~=''Gw%Z'kϟ#[6Hʎ|ISg֓Pki0i{ iݺ$&&J ~}Ӿ[fK')tZdח]F6#{ /} Yml =NM1Z_L}5WofUjj~IbҥK %C>h9˭'T}eS~FFF0H>}䢋.+1 C0 #`Cl C0@^XReKDӣC'u orR5yAǬ]FҋuMvVo1 C$9߈a?u0 C0 C>%F7b~iWHn"b =a)&!:a91:L.2ذZQIb>vz衇 /FjD(|&UG`MԓO vqXC0 C;1K[!`@ $o7l] z?#{lRVH[P-_ 5֡L7H[w|6>66 C0xߒ͛7EO.]F,>1?ZpC0 C0"6Ŝ;w>Y+,,.7dȐ`~Z-Z׎ ,ٳg& ،gϞV7V8Ĉeq}O ;vMqM(' AS9m޼W_@~V)"柪-|pqD7G#Xn-ч 8_ ]q9a< }c}-߯ }npЏysX?mѿZ-DJ°Σ:3tesĖ=p}(" >c‚}yG,svoG̜7E+˲&KE?!-ZH#}]Ha=]"*Ź`Ӈgg<%n~ˤSҰ!>a}+$-̖ú'I|R֧0WXSi1s}//'O~N˖MJcF)3&ɢYڭ$$' z)ҺX֬S{ $7;[2ҥ \PA4Him۶Ɇ  ]vu1?K[N_s. `py_0 C0F̯Va!]*T_]5KJW6=GA>=~w'C:3g#lR8ȐY!`у~#Ik'Fb"K1?܈ZZ/ z<989!ЧFā-ӏzPG+B4 [;-ztVb}L\)ԕ9B1XJ2G_u S;v$C:wҹa9+!Mto! kϕuy=;%e~NOto5 EvҠaY?)}8ȹZjsAA5>kZK%^IOO/Qg!Crtsg} 4]uc~u ի 8PF!`!P0b~;C0 @*|v yvU^ 9*GO?]ن=s. ǰa'EYe!`uzIhtLT#G Yk!`@dHKK'3xH2|pw3a-4b|/,w:[777&0(:iZJ=d:(`bbc =zpbB[p?؃aӮӳAk`~օ9X7kĘч`?~7Q4>Kˢ,$ }yD_-<$@9jw2a 1 vh=n up=E>؞KFfa}k׮!]͑;w]ޱῒuE||O=@@ߵ[P>{]v~j}l~sO3h}FW%nAׄINiYfV֯__@nҤE I&xh0 'p~Zk!`u#jK2 CT߳m ?8IЍ/ Sܯ-J]W 'B:w'aEdiݪ;}=}] e!xؤ!`!&Eiߔ~(5JSk^$#{`X0 C0 Zx8 .t7l0iڴi6lt\NY;JVVɷl87?s<{{9;w+w4nܘT]vꫯ\m*Nj#BHIN8Us,у7/&,Vٵa^1vWmO.3ذ >6c59j=t~~a:څ懞 Ƃm1q{b FJE `N.:|1ŏ=l#`Ahyl/N QǖccjĘi1ϋ"knZeīOAL)rD"C^g1:mZw~̮ÊU{9b(IIIQߏ_fޖ7};.˩  \JtךVnl>R e8oPbt@=E.į@+-JԫM;wȆYexyr@҈*v:w_>3aPhVk C0 #gn!)*Kڳ\?`9?OĹ\=74NNŰ`mSs0o}:W]󫋠!`!PO<.IIIP1,=#-7n4o:*Fߛflr]w ٳ=쑟/WƉUjJr"+- c =:Gk-j#ld؀]9ΌX!~N9;lh8~~Cs_O|0c)sIPpؑ[ly̡Řw`냉ycP 152'g ?Ɓ9Zsڀ9X#uJЍaGI$]BQD'<=ߕخ*9>PcTJ ԧ|wW_.S Z>H~VLP SX{$IR3$TB bjm1v>mX8;V;~|chjMgcԲP_s rDX!`!-!`!#PQb~BrepvL;dSN$IFڜE.ˠzu1sd͚5ұcGݻ|bOv%=?@tP8J!`@XpLiU$PB|K*bZi#W2s0 C0 C`"p7c[l)WD&N(iiԨs=q^{M{g{5 *W71l wygO7YzFb癚K|=@obs ( dZAB߂ b>a؅<|~~%7K_.|`;:0_CB>"DB.zڢ:mRYwH9QzΥ @}?|:E:.i&@k@DNb8´Qk7Y?at{cdkҪWTqԧ)JqeP ieX 伡UiMJ#O2ŽA#GJϞ=.v:}|իbڞ.]lbT=LZlQMmRb^xA 1Bwr96-j5 C0 j `jg!`@T߲I-oܸAKR2Cuֈe!czC0 ڈ4}ˢEi5^QIa[ Va!`!*y/]諯mP^:o%?K7ƏScʕ+]h%cv-rFA GKޱ&C#s-ȤhC1aT;E Ç~GcNY t1}CLأ:lcFsa^ \c<'6OƏy_9tcц\yP+D}^313` zt}F]GQ&֭[%I_)SB>A[Сc@t/vrU(<{V2~-ҦM[UE}s޿Wv]+)S;+QwnI2~ ۑի:(*ݭ确#[2mϩWG#7HAͤ(!#~)~0^o*MW@,ɓ' 1ԨQraIbO?#yi3Sp~'-m|TeӦM/k]/ T)ϗ:֭ 6 C0 #`cg!`@YTO=;P.Y)~7Ǎ5ٹ{wuWSe#I+\r˭+pϿ@.l~LC_'8wݭ =kg䓏˜9738K.7wO?|7UI:9ܑn+0DK'v,۹s;v$haN*뭮b*10b~%2SC0 G%[nݫN|cA/_[VRG\RoX6m*-j!֯sI' ]+3b~0!`!`K}]ʃG~8hwWJjjjp\V*bWԗw1_9{OTvcj J(nz1Fݘ77慇yڲUgGEuq .дC,|3?m1v}#pCq}`b A|&/&q `̓h !} {9g!̉1.ዘlv`ud3s}VyPk`~O[6??xt̜ (E5&ǧ&K}}!K pb3쁗v2=[rtWmb 94HWdmUV;=jժoo}Kců@/9},,>jz͕;c^_\1*whuq^l"~zcYKN~ޮ][%S¦6 f͚%x3I 8#j2VC0 CF0 CA |6#$jŇU%hl7|p/.kHV_*TnDyW%aCٶm\8:@OEtcSO;]n'+//;){|ES'|,^=K.ѣ/  `oT\p`s|]ΝxkHޏ|pi׮}m0 C$L$;x0Q} 䝷r߭~1s^{5; RE;d{yx胇 (8Ѓs1asShO4l 2\hq-~A<FwB1d1VɡPuM}@Xhaϖ>c~J5kyvסoX%H @Q %- £B >QӪ5R{PZ_}), BxIW=Z%S=Ŏ[ ͫfo~W}ZqE~~}(5M?q#~;棼]iFwʣMZo]$gdd믿%99neȳuVnzy\))r#%1N?KnNN1cH߾}c!`sm+5 C9j+1n۶UҔ9.r9~@o֬4T+L{ҽ{=_}O4?n4? 5'lذM_}rgTn|9#_.\ /<̝ &(Sw1sl͒3t3wCp+ѯz*#oՕq)v 0 C|q]_ =v\OQJj&O}"i]7|s8Wkp!iq C0 C*BU"1n)&/D(:2bJrR 2=PZ(^&t}-|) ]G zַc׀: Oscs-9ЇUXtX#""?h11兠]\,NcC '1tʉ}aX-PGhlU9 ºӏK1=#K}2%;Б<@ǴOmx@1DZ[C$F,Y$7-:*eHCڨb'}6c[lUU@]TNh}7m:juuNO4^1njE5\wc|8 -X!hs Ni?-Z$>A 7(T|m9?/?Ed;}_sKa-_*k׮ V?`]:!`!p@ w@,i!`Oh͝+7pt898M6ɯv?_ LCCyQ9C]?h~s䪫~jJ߹]i;ᄃ_֯JYt鰃L ]\ GqwʠA3Ηa4}CJXSO:wɱvحz_ V.Pgk!`@x'K}͘1L.=v烻~) nx1}/>y4A1?\HZC0 C0jxYe>}L6MF9F92R)"ȈJ?շ$;bR=1AEh0h%F v1]7rC|Ç8#kk ;vqhb> C?đ&XXl"AzOA=O0>P9??Oc|h>jIe,䃎ze8XO{!iXu]nM( 7pMP;Ep:N8Uu/'@`{%KTrŭҭW+%kMPT#vv&UEL,^6UHpGwhGtTaP;lT5I:uɒŋ$%%Uޕ||YYYr:~k3׮_V%:~W퍭e!`@ym;9o}-㎗?̐+sJ I2x`IeΜ9uyҲeKYz|]zt!yP͈SaC0 C0jK[āH W% t7t4k48. 7)&Z]GFWRnÕz0H8Z,"\g8q[>C,GF aɋf<casڅG-̯ 31sa$`ǂ01/x< as0aϸF<a~Á9䆎+>/y-ρ1??tO?;gdGۨYe֞o~KLBdBŕE;Pt(F_\%;0k*wү_վA}ɑ}Ilzܨ'@|G}+_t9z,ܽG~U _Z0NR_+@Xk\<fp rvKAUY6e\ PV\)S BԦuԋ_r1U~p[׉Xu孷|uwÆ tPP8j833Sԝ7o\KϞ= Kcb!`u#sl+4 Cyb~~~voKlS? <>n:x|FF_xQpɹT3R~{Us?9'\a}'A%Nb>83jX7^6 wb#Qg!`@d,/ |WoˑG)GPF̯;v˻ O儦$#_M&Qdb|c8=H2c>-?y?s.ǘ0sɼcU=cA`y8*?C \u꣐p $.zCz. @G0 l~\h0saԱD|@>b^Q#ku6s-b.NFztA^&֭y[%A@Z, X$@O;gAw^e|\8iӦ2ZIn"g J`R@WքZ'+=kKL_Nr[{t=c4oQN>v\Exhe1.&ն誊+YH6rIUOG;5]N>c'6\_I":3ΖzJ6l\S׮]K/M`!`@T `8 V!`@C@ =2mҲU+yY[C9Th3[hʏKVϏ?*?hg^rϽIbbbP]]bq7뽓M$%%E4O}+_`1 !`@C`ƍ5Zw۶䬳ΎHN#GV j!`@,/ *hEňu7*P+[#+a^=IN?S1YG ̓ 1(>$@ [lO4t/1yB0/Î}gl@*򣅎Q{ ~s2?sÇ:1?:۴sW[8\EC` hz9a>¹Bf,Vǵ1/O>hb~̬ @(BI߿t;خE?4:5O%jw꛶t;\9ђTգ>"^`+F^: P]$Wӫa1xRPydU Uӧ'{^:a#~,H (xQ$RN[Fm@߰` wwBc%VM&jW?SԩriT_k!`!`_{ΕUj!P{.1eO9w}XQ"3]?nFw?O:k^N=O42drœ^oq?x v7[ŗQV??&q\u]O!Ikr#Ε~5KOqepF S!`^yeddjNDP":%CO!$S1tA_̓y-c嘼hU9j}3c=\3/[d B0>F P8@,.o'cL  Ba}x^p< a,-3.Ѯ[g>C8f  (ex"Y1^(V&zܑA/\ ED@Tꕉ#3KؾG:]t=!+|~xvi(1{pb|`z XKC}zl̓OI K}~u- _U">*jQ#[\}@M?7#[ fuǏV}mR_mg0|OO(W m߾\qҸq:!`!P0b~:C0 @cv[,~ufcv '1(OCsb_Hl,Kб<ҠA$!xzDVZg+>%v}']'(;wM8KIc~uر]>ܚ.YfɸeHU\}qψXX0 Cn!p _M*11I.W|F̏0 C0 !PY^VU+1b~& 2gwy- M*DLME^Y.=\҅|#NujW/Vw5'(q@|bi:ƀ COA\`^ȏ`v3?Ž:~ 9D˾_'70v&aq B8Fˢ1N `}B{xB2.sB>qiǸ[I a1GkF~en1vY'6\ :0Kd佻{7LS2337^ĩȑ:IL\ٝHn7|%?B⚢p|!عS~ZJ-G7ڽb9`]OgSַdIl}QqxTw}te uKY[d[s刡7?"g)-qqRG/-UY_aH}-$a~޵C6\/ÒG!կ/=z>+ E kҤILnwo5 C0 :ɴ!`D %l,G/QdmVhDڧ$ʄ/^8dP]b~ZZ\{M`SO;]!>;Y^+ҲU+о̘ &+^W/WV_Y0 C |uٲuKKƛ~IZĈB!`!*˪jF/WU P>&eˁM̯z.uZO;]E6~/Z1ǃlRYܣ{i׮]P`}i=&=$]{vn|P " "j=S /I[/ .=^c8Giգ?P[5.FO?֍VKל~rkRsDK[_-g.ruԇy}Y}{`-[:r~rrrPgC0 C1nG[!`@t!PYb>rTV{-dw%+KQ]b~FFy.| =Bӧmn^Z.}_d7p2hg)?P7o.3gΔw~K֯_\w2b9/.Ųaz7; 9u6 /Lt~/g=Q\B~{X >bpɓ&믿gBXd$ٳf9|싘 #W17 CMl޼I~-S;v$C#G]m!`@,/1nq]`7|Srs9/]db>) /#OM4U`o ~1mC )9cvl&|0.e~a<"?|9au _CB02?8a* TWHbȁ> `h1ZQ/Ƀtœ5kNٴx!smX 9W 6rF/Q~aWCeԨQjTII%_jg}#ޞ{yY`A__y啒Y0 C0j?F̯V`!}T__ﭝyX9C+i yzo%O]Tr_.1nρ#37"' ^1vyʿv|)&Ӧ}6??r?Lz}%6. Hll=ݏS{OK*o=S?P&LܗB䗧*͚5sI݂u@IDAT7ޠ@ҐO3-_V21\0 C#0o޼p/%%9Ey4j(ܡK3b~ 8l`!`@#@^VF^#}b>.][.]*[l7ʪOeǎbijJPDqSͱac٪- A4 a .2cÆc"Θc~Ƃ?|1}cdK3?x=sc &NЇXp!,X0@-q2Øࠅs:* s.4NAġ1G[Cxy[~M[?.vnI>XX\4Y/+[B.IϘ#*N S seMar.N:KÆx.!|V~;IZ̑ú'I|l/POIXOY <-njh}SfLE1s${/A_>PO .UXXPTbZT6ss$}atr#R_D"z5^}wNGHϟ/<~qɹ瞻JJ2b~TE7F2wܠ{&M9_L'c!`#Sg!`D1U!s9 ˝7^MKvv+q 'WZ?3ӗ90 b1.bp>r/z o6szC¯҂X}Y4 CK!PÎvю1}=#Ԗ>.r?Yv9i!GɦO>]%26KAҰqc__woDj]> [wx߾}ߖ.+RK˰SuέöS~(XoeϦ/SFi:A5Ӝz~%]dݺ\YB$V#Md$LFXַ݊Swݐ%-d@򋾑/10a.'t>" ^sYg%4$F̯4dtkL"f ځM7x:!`!Pk0b~9UV!`@-B$w?m Rrdݦq4y^pS?ܥKif{<ooI7))ѽeV{7n|iӶmw-o=yyy ,JnZ7nnFŲ$X_V׿TOʲ*_ߡ}9C74 C0 C`?!{NUK9rꩧJBBɷT5^y~F/!7 C0 C  1]vruEzKkꫯ;F, 棅?w]3w--^ ,uc'd@phSSQz4$ps'8š_7M1<[B?FvH?9ih<~K;/5q6X7<1NWMBJCX8E_9 /E|ݠ0}B01t|c |>3Z \3Z_ԉ}qpzFֻ%Vm ,Q:Yd#Ouw),"acmJ#m6zOBvl#I\Iԗ[O2w%HnL+ixP_ic~E_Ȃٲp˓?ɩ/wKVҫi?9{3SӦM> h/SSS$a͛7;^  TܺuZ-" WV_YʷǃL̘1#h?Z&!`!P0b~?C0 CŴU_ 둚(cztܸ3KyÏet]ou+ 6f=ʑGWC0 C ؼy|6}lٺJe!ɀG>eʺJ*dJeƆ!`!`w;Vc0 NT$dҤI } 7r#'ZbN:U>s9#d@_PȽ+ 6 $y睎}xgIIN1>ylu)3+睂]2vlΒsc H|xILJ' >P'xBugʐ!C[{=oW^rEF!`!`D {`Ԁb!`D`Azhu5TWwZҽ+Y|L=ȣ)W^sꮷ])$;oR"7ШLF_N!` 찹hQ̜9S22+TGzҵkW%)U`BIad}cS!`!`D!&Lз/6B>| 6,s?x ?vO'1; aB>&| DH }lrR-d 8=S 1`9'~Gc[A`fgln ;a1|ߏ?ԁ96>̯%c?U$ .? 9C@'}r-/0 qΘhy0 c-Ay1G_#t[>]'Ϛ1v~~</0萕NUXP_CN"WT2{l>IwPL8pQ׭1&Ϝ2 C0 Y5!`D# 惠_B>5!G] ۂ;;ิNMK&u]oukr0 ClܸQ7Z)6 ߞ/[ h͚5vmIΝ+ɈJ C0 C@C`ڴiݸqcix+Ζ`(lye901c6jH6mZ-r>H?)xGJԤsez29[1x6Г [n>Ӯ+Ώ9ȅf~U~E>G 1c<lh|hy`\T]1aYnŢY :(RB0AGG:A0&~Lg c1l-`=0?Og~^? |skG̜w!`=_Ω0 C0"#E7 C8pإ;dmAʿk[ia|iӺٿ 48dg';!CwCKꮷu K[!`!`0b] !`!`.v%O<>*'&&W_-͚5x.K]m`<,\0bkN;0ϫޟl]+,,E b5jybFs K4+轊DPclQ(1\.jBԝe=ϙ.;3 }3眷 >)=&1C xcuИOu %iؙ?=63'A.>o}s۞gr Df꘭Z=r?}eccL]vҟڧ5t 0kf[6P6zo,m7o|yB=k}N}Nڈu] k>kFϽ|3?yu0<2v~+H 1VPsI!!8ޚkWkV-7#ѝs +^H@@@@o7 u9fX~ߖﴋvo?CQGUvZ$]hο_f|grG#656gA^}=su~uLLַx B@2?H{1ưG| l[izgFN1'{m,zć`.YbNr>NKGFW_'"!>i̿=(B B B%_l?"!!!!!!!!*ކ˹B B B B B B#P__ߘViwY9%%k26U3hcƇk}aMs窚XlꑓG8X{PmaP/Y`S> DZr[[^ p.>tm}}]v^!?fxvsewm}kYkcG'$!!!!!Mexxy:B B B B B B B f %KYr3B B B B B n>/|rxu1a%= YF1X[UjeﺭO,b_?6ݻn̚'s+Y'VO[DM/t-`uđ&\uD,u m|cku~cbc(Ě!G,uߞ6 <1߼[=o@@@@@m ʯ:?B B B B B B B viw]nk]9\@@@@@ܬOEWAc>`O:#0GlGϺC^zFǞ\5agm599[l|XfuÏC쯯#_Md=ewfGLqlDH@@@@@o۲f ?@@@@@@@@jϟ_g]X9O@@@@@4WsEkAئx{13G5FFtǞdĜqn萶>kzG=6kc99wnkCXl;RC3 g*ͫs݂vI0C~|$F]vLVkan,,ba'Ye,:|} =CxϬ.}{.tEol4͂`&64B[q@@@@@@@7H@@@@@@@C7H@@@@@x{ =ZW>bg#=klUfO5B:Ag}mvs,eW;ѓ?\|vϣճn@G}~B pb!0woւ 1]TS`[5| Y;ěC?eM<0jVk./ᑱsJ"!!!!! 2<eaf֎n3:`ܮoFg ԉ|mkA}|յUn_gd6z<{|YMYH3DH>0szH>춦 p;c%xANe9Si3Y]g^ƍ3!!!!!!Xvm|*  ̙3e |$B B B B B B`{O>Wcfn6;q{w&kYvߦO3?'6aVWo}ϋ ?j1UL~uئ%$\΁9vv^5ouy맽<ޱ͋sjPv@^ΉxV1V!!!!!!!5 6to_ƟYlM@@@@@@@'0›wۍ_GB B B B B B nn^xa|+fؾjmܧO;6fe׃݁:a&/6wZ?r벋!hZ:=m{NrxGˌ{P?v^ݧ'YEgnJ.xa>vḉ0`Ƀyܛغ򛳍Æ7ypvc?b5sxvޘs6mmAu֕믿l迿}@@@@@@@T w߽̝;ДЋo@@@@@f⁁24XWngٷ2WuOYLjqm}g_2A=}ڽwqont䠧B=ПC9ڳu~tk/a /X\Esuٻp ?u>{=kܣ19sV=XnAos?k9eW)u?:7@@@@@@@@@@@@@@@@@@@@@F翮Jmטk5oG7N|ӻ۞гX|3k0G6!z6#Eq콣ށa}|zr3.đܞ05 {qȪs7m&<!!!!!!!!!!!!!!!!!!!!!0; l.{-zJ=5uf{YCУcl/2}g=yXgFn렳o=6ZWS'd:uٳYng}~3E^Sӓ˰CLdpӦ?~e@<&XE6 ;u<v3Uug'b>SK=6<vϩurx<I`pp -ZpB=uИOA"fS_՝Nb~]3;|8SApևёF3Nό|{bst v$bu٭^&t}CN0 #G=xxXAܮ+>~c}&Wҕã1U U⡮1zuOL_2=}v1uK ϞAlnz!:l舱?cNMc.4y]8/Y9afx^Xߪꄽw/~Z$GK?Ys`G%|gíƑ]X#3s{~@ڬ58htlg}#!!!!!!!!!!!!!!!!!!!!!Wױf,L_m>׌GogmOs[Շڈ1W:=}ַͥ5ᬝ=5a=+#z1-$x &vxxm\5zڈaД. Ƣt-``#޳0#zt<>o>9y^P1<=O]v>U67rx\"!!!!!!!!!!!!!!!!!!!!!͛{ WOuA==b}[6= bgVLye1eB} 𧟚xm"Ƈtޛ|a\0Q{o>㪪UCuSI3Dp^\^= ‡D +䄍oF#!!!!!!!!!!!!!!!!!!!!!9sʒ ZϾu؛L0b3:kdže̞ üNӆĶ^46rY=b8'k=v̾=֯ B}DiIzž5uTsŇc&6./P[?~԰xDmٰX#㋘:`CO]73㹌cFG]}Qo_:<2vNL$B B B B B B B B B B B B B B B B B B B B B`,CXu Gl2 m<:zӧ]K=l6 F.6f}˄ښcc?o篮]/7q,ݴKT!9kPs37kٍ^^y`O>7vvfe/GC~KtZiڻqVX1L1sX62MPGB B B B B B B B B B B B B B B B B B B B B f#xh Wֱ{Flri~j/[nj/y֧wmמj3=ОGao^sssV`ïݓfg6-1񴂷q`"roԣC:cόE,ul >;&:u 5hzm;:V޻\Y7 kgVSH@@@@@@@@@@@@@@@@@@@@,%088Pߘk_WA=Ĭ'acV]4}D#ư!6z36obFۮLߵ5wsRccN1/t:mSyچvmoOv>[R$'?{|c÷2s'6A}ẏa%޼sت57lHH`pp6?:Va/5 1nc}{LJXs1miPWb}yCR?r[.3"ε笪,ik<>ı7ߌĢ3JR= ޚ^f/l.f|ɇO;6bc>>Z듓υ7=3Fg7e6|:#/c߱5l("LD`Μ9e4_Uǚ:av56D~d=M=й^+>ube/7\m}bБC1=ZU55!Lftxxڵ{f ,yk>+@ .>Dﹱ7>ٍ19;6M>쵱`Y{V<1(u<<4Ma^gzuӻz˲y,dϛy~"gj=4tiϩ/ k YTǾ#ݼtH`N^xWֱ:&b|G߱qeߵo׎c6z1>IJ_sn}cy#n{3q{{[uYݦ'$|B^Kq cמ{|wbmM\7z{<‡A|;[&'k| Z5ߣW.U UC OיA}4_l2.;aOMGvbf|3OMmbO-+lݺǚ\ԗ3qe'f`#ֻ}ߴŋO;A p]ϋz}bQxS=kY#YyNlz=GÚs{yaF!7y75q6 Т'ֳ_Q:hc!fMk~033?cM=g𫪋o/3ֆzfǰۺM;4y\tGiksoOy.a6sQ\su->AX#Tou!'{2bF,߸u$B B B B B B B B B B B B B B B B B B B B B`kɢٯcM3zi'~dzձF_ߍ7o?=ǟ bò~ngdŶy<<;qcFep]'okgJ⡦[(^\T7ƋpYzt71c3kc؛Cއa ?}Ar0fNƣGw-_k⑶>:[kn-Yu^H@@@@@@@@@@@@@@@@@@@@l"000P-Wձzys>BMwl3>vuFX= Ke'Gi,˼pk8C?fC>g{n;?gbxssk쥦%=g^xaOfl]8ї7㧽c~fDg&y|Yk=sޏߣϫ#cӗ_IDB B B B B B B B B B B B B B B B B B B B B`3gNYx +܆d#ezYÌ}4FL,5ISC9:'/('/>y>kFgͺ>cϹag`^1%A:l85Kx1r:<m:8> rm"3 QG>tm~h}={9gk87~kA^)#ֱgte>WU=1E>eŁճum0Y78}̅ A}\}0h}Yǚ˳[?l̞: m_uM@@@@@@@@@@@@@@@@@@@@@F[ޘr=uaAg06h|WY֏_eGt{}͚ w_ NamüZ۞!u!9QqMk{)N`AypQzzDɉ5}P8 G=붾gT{=#Y[_F>u7W +/^xbŠ:a4=2+} 0ы=Ǭa#ubzYg^{o][aOun덏,k.>;oP$NzYe~o/!^Z<~UMK چ|6U;"ձF<{C<61׎9z|ֱt:GB B B B B B B B B B B B B B B B B B B B B f)xh Ac>`O:e;=XyF?315>~0ޞgr CϺco_4ks1Uy&G=2H[_q4|BVuΡSDos!hsZ{V.{D=~ny>fjG9ٷXk㪺C?9>Lֱ誳7mt$B B B B B B B B B B B B B B B B B B B B B`6Ҙz+X[mS>=z4;lT^69]FK<6oO}Z}uG<=WGb^ڇƵk-C^:|!LCyq1Zu;!qyk7xg⛂vҎg0{fo aYce.m̈3kju#oLx$B B B B B B B B B B B B B B B B B B B B B`6Sߘz1߆rMì+X.}? |S֮ ?O~{ɣ稪NggeOf}O~d~{.hgx1?3ܷvbKgŽ߷'$Ať ظ[ƒG[]niN&M~!5|;)AǺo}Y[s˞5u`,cѱ5gm(@@@@@@@@@@@@@@@@@@@@@*{fN5[OOazzYkG^za^_Z_ԥe>gONfr09LNm}z붻yrgB j999룳>~NmM쮱{@kfgo@tĴvboϧ442S6qH@@@@@@@@@@@@@@@@@@@@l$080PИUac63'Y{Uژmh_5>uًekǩӷt>ws/>{3AO>9XG۸v_->^y^5Ӭ :_ibлn'`ˌ3/6jXv]mo{9+b_cڸ離@@@@@@@@@@@@@@@@@@@@@*}o̧1a{ {)ϣßqӋ=m(k,k|!ZY1zk}mUNZ=1Z58t5Ɂ}n{<w\;ů&bwrxOGo\Ƣs L?03b^|@Wo =!֔z|u5Qm:sf\"!!!!!!!!!!!!!!!!!!!!!גٯcm6C̚bKFCX_t>!w_ɃvlZߞgk gN%?y{?F{zelL]r>mz&kz|c#pm~AO-c]fsÚ1m.|9\3,a=p{I.o! 1BCOb֯Y!ַ"謯C96i?ptlͧ6nAM % 7?^Q(;L3} mfǮO]vaƟxz|sx {~bV8t֧Yg}|̅N<1==Sıׯ.;Ae^ͯ+Ϊs$B B B B B B B B B B B B B B B B B B B B B`ؼys{WԱziv_՝~3׾eۗ?Œam_5{.غG?Z<ڬ]3>q]nrX=n9m!y!rr!ăsXcC::Ď?/h\,!Z;"ַg ~C>e9"Cco4e-̙S,^xb=:[s ni&N16zm^_ȡOƞh7ݞ?LoGN eo?vc rm=รTaϚ\Ƌ1< .NژM#yѿ.;AsSLJxlG{yόzԟW~#cgDB B B B B B B B B B B B B B B B B B B B B f)2hWԱݙSf#dmij/?}gAo/`ykM=O=?{ijPzsoM`C[q2A6~efK$@3\=bs~O}Xk0IlNe,sG|{Ag:k&C&!!!!!!!!!!!!!!!!!!!!!0 C NޘO0}4 3SZ=җaؽ:fc#@pM.ֈMks>anhsQk#b6eA C_aGogDg,zzbEGqArzxΰŦ̥}m k.͋Sx7fk2o4ݓ\m :m5>^.|ϚGO.m5; H@@@@@@@@@@@@@@@@@@@@$088Pߘk_WoAo2jzY3WL<mƎƘ~e}Z0KBnuF4~#=#z|oam̈Է'۵5o>st L78 yަrֈ1t{/,fkc^}[ڼ)V;@޳Rs"M ~3vx@.兼Bа1t6㏍Z4<ԉ!GμG?0|;'E?w~5o}ױؚ6ld$B B B B B B B B B B B B B B B B B B B B B`63gNYx!WձzgzS=z5=vcr6_?YXӯ?3ys>im0fF\]==+~ޅ"V? }V5MOH0SaqCrXC/3kK۞??|[}ǵ&3&c#š4㾭Y͝GN֞XYDz߯=#!!!!!!!!!!!!!!!!!!!!!鯨7K̰}Ulm&!>c{a ȬǦէq''s&_xfџm,14^g!'`'L+wxry`Gک-,:[07z m<ڙ05'qk̈!\ yzc7=Y5YEi̿|M5_@[FسطӣcocqSսMFX]e&:Z;w.;ޏYH,k:[뙣s M'E.p׏5bn<_N<0S69NG~y>g>399ȇM gue Zy3nH`N^xџԳ_UǺ:چ{d5kbͮU&zzyu_Fȅ36뇏MGǺϚX}m,9͋zVsެ̏'zoNTh>ayp90PxAfbog9L>gol]vkf oofx#z;z zo|(`:=kbɪ@@@@@@@@@@mWׯ/|mƷkvun!!!!!!!!PC O,:]fWl5 3[bG]vbMgɃ?ڼu&?涾䥾֮>3Lߵ%6UU9iƷkrLIHćgb] ǚ}ϙl7vcnƌ3v_N#=03{z"K{\]v{t L@b<7VG}l6<#omM~νvϋԱttl͙7@@@@@@@@@M1ؘ볶>} 5ݷg~×m} [SPOuap]oeu䡦5C{(m}bvbѱGo6{+_N'׾ԭ|n/ˮoImDokV*<_a_/;Q)>MhQޢrzgB B B B B B B B vUeޘe4+U3GM4:zY#/_51l}6ݦwQ[?Y^Mr aO>tm~k;S:5O3`cϔgTڃxAj~텙[^(^ƒi&bvm}H&kN}΂B>[ַu|ۚ;57ֱؙeEa_e͚Փ~-<}ʶ1n4MO<{~dc)a :ޙ\~qm)G?ꨲ瞼c敖׻N{Wyc3쪍\ _/\w͏nZBbtЩeX 5puƩ#޳·E9& yN{g+-gGa0nw-,YR?ptYrey'~ _B9eی9 ;1q7k\~[]Fws+}!!!!!!!!!!1u|)n=fVhBGKx+ӄl Xḃ{kUUwfլG.w_M]b[?6:gƗY\1mN}wx`; G.'XHߗxji}|Wsl:wiYٚb^r>e'~7#ڴRhя~Tiܹok9G=vǗ\wug|Ծ{^>u'[ 7 Wʝtmf]vm9,z>k|_-+^Q~ߕګ~1=p~Yn]xs'< mCVַ]?~Y9+˵^[>(W\~yv+xƟtnw}q?[}1],VO;!߾[~_K?{?|vyfK_ryK^K3Ï|x/ķcXz^4.'tb#i\O>0D|_oWaVGu?qKKTdGyK {5+VLH}<(W.ouA)4poC?=&ܭer0@Z=k ^1}{!c!F_ "\̈zZ|~szu%=B>:s&SWM$v2eCtm IMC`xxNΟ^hp;2::R^n]x?'/CCC;8UK/o_fWu[?ϻ_G(vD֭\v_]~nyCT玤4 (6[ \vYh=F-B B B B f% .ly߾|e``vXu|ڻO/;x_׼ڧ1>Q.mמ~ݷˏ~ 14w-o+>ݿ+&g3}jq+?:SwwWU哟D>.=yw{O1~cz#Qη=;SY;ڈ>yט=[Î(Q~+vm4]iva<vVc>ȱ„<)O.oOЇOOy~y c //Y@5=أ|/*'R{޴g?vA&q;߹-}@]'?W7=~0[V+wbڐ z+ 'Si}5-9|9yv?,o|ÛO~2~>hB B B B B B B B &#fEANz!F8mژm'qm'|͉/zCZlG6de'x}3N{aFk#ܞbSF@epza359=#m͇9Yg|9|13v?o̯"7|zQ}NƵn/;M:yCʇ>w7;=.wÍܘC!!!!0А6xezq S{JyKBV3M[ȷ_6 /_k|CqO9kw}'_N{i6CxiCȢzO-im@3x›%ox3_\}Oy)~TBumyq~q{A[20a >ru(n&$ݲMw.Lxk:B B B B B B B B n2p/<ǘ^j ; ԁ،o2t*ヸgV9{6^g8 kfrٍzqM}nM})eҾsh=@/,u%Fu9ၠ7y볶~K_A^S1~G#@w}mof >԰^rx,#!pSO z67,G{w?Z~a1f1|0tIݛlϷ^3TYm=+W7~ $wݕF9ײo~ݟ;O?4/vWmlҹ%e~ صМ?BS~Kלڴ2w=w//}K/zO-ݖ{7׿/_޹<昭.%N/yK`};έC\]znidy[W` ۽^}&2|'?ܫ2L׷? v5Xog=Ymn^{uoA/N&;15x|w^0G}̄p O)/| j{^{'<ϟ?<(sԟ}[_>{dN?)~ͫg=gB)~;ޱ\yƏ| /eh̏>ߥ;NblAVu@@@@@@@@xP:a !=b2>=eЃ=\5cku̞ ;by텮^nt ڳcMqԳsTU/zr2F,^3!$ 9h9yŗ5fRG|}m3>~#XZɅCPSksY|nm>r17:s&̑xcG[%\Tׯ_6-Xo`ļjٲe;xʶYvnw_X~i82-k>y嬳?{?O-vgŶ4|< .i{ ۳yۘOU~ey3ީ>(zūƍٍ/*_}xdc9#KYdE<5K|i9ş'v.,]vYyγ6w kwNC-_WK^ wot7>)g~S&6}yc91.߫xq_(Hۘ?::Z/e޵,׿./8E?Qַw~wVW@X`L1X{ {A(Xذ[l1WQ\Fw.f`fP{&a.jN8T;͇i##d0aG~|5E~饣/}|{&L!V~h/y0O_m3':Gy&cn[W"hQ1A}cwwҋ/G͵jgj7RxŕǛN6YJ@E:K~'B -4=ϲd#00009~!᧟~ ~X8!u^O?90v옰̲˄{]X??vJp7x*Upo;łe wv.}Qj,̗O$_.ui;ݺ^ԙy\x4ṑaϥÖ[m9M]N;T?a} '%.g %~o <9sc!bz?m.4 H +y&k*^1>s*b=c=1xƓw UUU0!C7.T`“E^{s#pХSv0\wi?>Ѓcr HM{ψ{'pӅaCR}/չ=Gxꩧ [,{a;'X}8b&`&`&`&`&`&`&`&`@$6[!0_! I{AּUC9k"RLyh%M1abN:jYS,|%ؕ_'b9i#z W `(L0梪(}@WLtONO< $_ėgN}ʭVeKK`U)&zZ'zDZb N3Sϗ977w[~xZ/~;PlLtǠ Mc_x~<ŗYS8 |w᭷ G~P 뭻nXiJ8=g /J*^{6:|clS,>!~!~뭷Y<\'_0_<|0|28 C<|V 뭿^1Wo_vܨc2Ra~׊/09!QX >a=toN;n{N<4s?7lvx3=i/}<|.;K]}x)}yO>$<OyDxȪO>_嗡U{S8?=~5\c '0|gwFL2aȽSo.ੂoPc]S|].P_ sЗ=-qhCd\aO~Zz5Vhd/+Ej[.$oˑGZL`|v; K}jGSиi_v =gݵGJn9xLZNϿ=ƍߨiBKc + Wi h8%^q1MԧX<:/ϹtMڗO:bSO?%,Kׇ6XP_ȑE`˪ӕ^mnoT;5}7ÆoƏnj\ ]v'#OHE'tv}__xEᖾO>dXxSޯpU?ʅG3}m٦+.˧u_E: Uϩ_wnjyaxR'NI*a^Z+pבG\ 4b&`&`&`&` iOx0s);bj]DWa>1>Lx<̝Bwj靘a=. ?Bq+?稴(̯7qJP-g1k()kF͘XƧ+ +\xVjn햰ZkN76t܀S߯=;W^{g}rUhC z*g:oE ܗZjz${&8'/>GY~k1D|I^O=#+W{qdxG5 'tB=<Θb~f O,t)\}Uΰi> /Nזxr:=];O @C6[r/*U=W8zdDm ?܎ꥱW.&ZahmGأӺbK8W3(}s)uh+vEWkBjX iZb9DXxZCˆYI٢WL\@D~ZKc|ŭMI,֫kbC_R-H= v8}f0__jeg}4p?wy2)r&/GNoIZhp;/)sM~VYuo@tJ +Q*W*ZK98/-.ө-<aNSXλa2-šk; _L9lf 9YStzX6mú뭓s1='bRSO?1 Bl+ ;>4T]Sa~]<^]v o'} )/?1d(Lxx:c3SO?5V[po=d ]_~r<TNEXy ;츃ԍOxJz@ru7\Ydpb"욫 ^{N8 4HkDQN=N#|OLalgtʟs~ 5}~-h$t!40f=DqN׍ {_'lu#?O:ǟH7bnzFYgFKWWI yb~C>0_7gK7La>v烌l%\+r)i|%QG i{˗]v0 P"93BLq< SOKZl=аe|7 zd(牧"o~8! XҦm4,i?{/dS,b&`&`&`&`&`&`&`&`(mۤa1xΙV5ĪxQwm걱n>s~/_1Ϝ5V\g秆We;K~씇9_qsi/nQcd}ylt8-֧ipZbO}ց;.DQvZtcjFW, 0{} _|KѪ10u.la>kK 9uK.*`K=I% }0,?O 6Q/ oRwEo]bNW"+.%݃?ڷo9͋ŗGg״)9ɕq<~#,Ӥ:G\nƨ*jz guFK|wq4.O;bN $@ ÿS"7 qJ$ONNzRv*./̯x7׺ux!llx(}9&7mGb\6 ۤ#ZPtӾCJv㏇[uM?,歝w%Aa32ez/`ۇs;n<̳x!+v7{1% "޻śߝr7!jN^Ӛ?/>InڴY_߰z]ĺe^a=H]g^Tm=̷DC:㆝M ub Dw R;E%}; U(>ZڶξkؾK'sYgUr::kSN>5}ԛ0 7_B0awG=L\0„ 񉞷>gۈ$7$,P.}=QL7o}dօ[} {yT?8 Ç~ubLpb~~W~C5мN)0f0n0vt#>=O<\տ*in)&100000000&@P-91xM5̺1V9-z hm2d8G-</6yl\^[5GK ֚3ǘi˜['vS1"}@ .~+cn?Eb-JϘx{b'//8]j7j쀉Yf|g8Ӌ]yՕKXŧ %'#>]tbN~yWzz0jԨ:igsVԹSQZL׀DIRH'xoU__z9O4lShkF߭Yw ?1w|T.T4p ip,X"jH.8p-{D8Ӫ0>z8蔦_>ϱP>:CX4=&>-{ae)RV*yđGMG~]|3s+~U>-g}gQa>bt" 6X?>p؎T:NI=sS~AΝUT?S:&`&`&`&`&`&`&`&`&0+\|ȨjRR0aj?V1'Ktcl0էŞ2V?vX>Ϝ~|ʯyl$׳Wʼnɏ1[Aqz,Cς\B`ƙGImZE{#W͓ʯ\&~4!?yŠžyC(G9O;^FR ' a@m G:nQRӎ@Gxd^xJI M64{v^1GgN[u*+S6 -\ɼtM'k-V0sHo` ²TGLS\~a6ɬT gz k3N?3 cPbJ?v݅ROxOO. U^guc}_3&nSC:1;usʩx:7'NˋIRj\scUHxRʌ?Y^޹~ "maO+yaNe{QD_7=W^:0000~hhx>>qd6<5S _|+wh?Sn3 Sꪫ0 ݙߡ>+uGOH:?rɋy]k+R2>PĤ`Yqb>k\|xB{.3[?nܸ u)̟ah曅K =$?wKz_k[շ0?Rӹ5w=zT%ϡ0/OD O%C_N-vZح(Q=zTZ]#lAYԗ/v\l^Et'U|Š v+&kW~tSsyVi%M<3-'/Ȫck1J6,Î?xZ#a u_ ~4~Rn߅}. K+?<{tHM'=ذȬQeۮ+Å5-vqn,@СCxQ,yEya~N_޿^+B|נ;lS .#r_ #{K>8trNE:믿~gu^O>Ch"zu}e@q# 4A7>*NfsC  yɍLw<~CUλV+쑆.̟{4ϻ~LY{x<%sʎgߴ.>qpO?7~fA5k<}kJH <rּZwd#BKLLLLLLLLf)f͚ƃ`ZvI>xQGL4 SLcls{"{G-=}D:wkW"Gϻ'fJNײsN32ka}Ёgy6>e`p=wVEӹo]_3&NOuλ_>|)wNN+jGEya~Cu"zgimC%N?o>΁Ǫ4};|sD_E:-{.?C6͛*w9ɮ2&^XxÓO?Q1 xm_zVm=a&`&`&`&`$[o5 6,TmS*WU o.O|d* g 'QnP\|Yg;?p|aНwh0W5lqbR㏇?1;4wtZٗw<^%} :n1.}qO9XJ~⻚j/g}F8k:Z~jɓ"SOKx]wW53{ /Nx]$a:#g@?>>rp77{ύzE_S "6۴Nbα񢎘g.jA--cn1saC+>DR=4s{ؑG>^#ꡉ|KE/]즾|KcOZkb?ʏ|: JX8 #6j&g3nDLt@_y1.ϯZk4)';jmĔGOkX=gw]5ĉZj[ϩW7بx|dX ,~K^ /conu+O.&bgȑ񴩷c {jF Z E6"9s%=X'}y;Sk)̿/k6}f?_5I# >hra~MBFuI}'}qNJ_p+H }v,$Ȼ }/rc=I'5\x/nMLLLLf~_?Əldm,Y!cǎM'U6mfE_TL G,mf k9?~O6ɣ<4&:m_U5&8%~j䦯zbPyC--+#N9Cq/q(Ė8Ȏb7 ~X7Blt(}t"I4ּlʡFvW L|kjgNC%*gѺQ41^0|5yWZaˏ1)sK>8k!_e}S~cE}?j@l-&0[ Զ0ŝt)a=Տ]bݻN9i3Xκ/*NQ?_o&ӎ%_n.asP╊V+;{/j{S 3a„t*f9IGG^eM7]oiЌ5*tie\Ka> k44šzi'x|uQix}`:;/DZ!oc.tIOGڰa WlI:MxFrl4TaO>z#QSO{~Wμ|?m4YL[nesiil0000000oғgpI'CMY$+~#̓O1O˅Vٿ\CgmcK徹]4)e]5sf)‹a׸w 4sduŕX=>|bO>' u֡ܳ-~pg~&|!x?m.'QK|K©;tڜ%X}+V  Lo1L4)8kã/ҒG綍__|EdMӖ9{'Ƶ*Apх7-t)̧0ķl2˳bqС^={Upb"|9퉧#U]^+.2\}/şes=wl͋P* NCS΁-kv9ws=¡=]2@~>`gqV;ҫq̱Gu^oLLLLLL`V(?$$ϓ߼700000000PٶM]Άk|'X*#ּXu{1^KC1V<<٣#.ljɯ[RN<>kZ!=:, RQBӧ%>a,Ic6 hQĮeGpa(|K<`ʏ籴_gn;;ϯ/Gol%P0K.믿.Yk%CyDAya aqtuݙ*G<"|AIw߅c>NPʪG'~ɕW]tX/;ilr}cԧXRj%=m=°aBÁu,^0½K!3BdHY>СtWp{UW Kرc45nvtGI)ob~kzJ+sT?6FU싢i'*./o;vi"}Ǎ:k9̳o/tܸSQL*E=?Qᆟ9*~#_y.ƿGs=2ez/$O:!,rw ]wr 杗YLLLLLLLfkx)gs4z+LLLLLLLLLL͚5 k-nxKE;RCL2-SN C!'bO?.IG $l1¼֠hc _.|W,U~2ϥ/;Xi^b7 sbɏvgN>Z @ ycLĴf泺 /(r:aV /_m—_~N|vݦk'3)G}lI~{N5 Ż{tk/8^e56/?XmUgzV+xĈ ʥ+oy2u7\VXaF;Y&=pa= ^= ,<_Ie_8nFa$9Ir3zr0aBe=C?PLxSʻ<of1?3 'bk4ޤ5*7oP])w} ww=xO);0~륧lxʜ*t6|ᇁ\{ >$y2>c~tdn%ݻ;Ϳa{|n?_8ē=^l 'x|:E$&`&`&`&`&`&`&P3?C+o 4k4_描Q =-:;j5R>OM2;YX*bU/;}ּZN~W_c?-"G+)F P?OӘ #> fv|d[X!UN`NA?>6zGa^OdNTM6̡Ǟx\d|D z|mUc'L-&'ܛv٬X+ӄ+Iya 4)Py[_]gi c_cB /ܢ~f9{ҤaE -ZR_F\G1cƆmr9ǎ (a_/O׫O/",M6KuO7||7aI9Y^?{*>a0W|7U,puk&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`4'טxQ L 1\;֘"HcЫ6*g#raJe9Zbnq 1XꬥWGA/b CKqk-$kd6 i# VN6${eKU?vb`4VsUSUc1&y?кБ_Å>o?χN[b}i^{GbNv[sUu(WB:BX$EQ Gϥ ]il5b Ph>պ*_1g[I)?:5X.+lh'Eϕ!zu}:Oe.ra\sY1Ut\_pLLgB?00000000000000009|N;8^|O}1\S[̅2 ݫ&YsQl=Ew2ƞK!I_WCSxa<:嗏b+_+}>梸c ~Z[?&nb+.cD@yk^X-z]ē1>#/ȌG61ϋoSylNJ\^}XZfP ZŠ>81]՘xbOYLI'dqs< ˔./' ׯ I +4pl(8/ QA9} їϕ+z%⇎F*9)vZ/s0Fj'6+vFuZ37(磏9u%'-|p% A\+l_m4)yae'=9TOn.r(?kAv=";G*c7W8^t1O~~&N^c0~'b(O#N,|,ɟx\󲧟_i[{c`yxEN'Z76;^9z%3e1/"|2@ &t!4o_O?#OU 7 :3v B0b0mk1 39 /@ӦMB֭v{4^E015*4$"ǏQ lQyj\ɟV{-~vˏVEZ9+ML_1y?Nv^9mEIMA:m;.na-v*fǦ&c_y< bkXB> }WƊ~cmż?ző^VZkQ 4p000000000000000000000HYf|-vk⥢MSKL]2($/dd#y?5' =9e *cCn>s\ĤƚhYU?W^k-"Qj\ß$oaZ0-c|FӋȘ_O/EP~\un8Z O n8b1c艍U]5nĉ-&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`m#}Xŋb }%x[뗩eZ]\ʏ^'tOSlcW<[n֎1(-X:Z-4%|4/6+Mc+W8酗ZbW,$ZsINx^l#>mjQ~t#īQcNLLLLLLLLLLLLLLLLLLLLL1hڴihӺ%'~xI]VmUt꒙nQ2:]U,c-cy?{<3"yqs?~E~S9)$~fW/!`}%_6*6׳ 8|ya)LghVoMqi$}.|9GT j'^_M˟VNkPS/*yƫQU\IXLLLLLLLLLLLLLLLLLLLLLhҤIhۦnqʼnSkLK-111O1Ǵب~fNK]Ng,QbbXy[džib>0X>f9<̳'D\a9.;v >蘫hu mrf } O:r¼ ڕ_14f-JkOԋ#[+:<|? _q(?sq!/q[kGX# @#00ʼn5R]1ҩ['ˎyl^1}C-saNO+}G}K`m<:O}0h]1amТkS-q尰gC*,hzpgzdaE"?6뉃s9*%{ʋQGOl+ZtÉ=vIeLLLLLLLLLLLLLLLLLLLLL15uD81Zdꉩ%X8ЫX󪓎SWxlU"uyQ>!\ʯ:i|qaX^Gks_tkؓ_k`sa[?c1_kQZ;f`Al9lE "-z.EGsGvIy[^ ^|]q H^hѫ%> 4Ib&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&ШL91[\xx U猊aלyѪzdn#N.S^㬸h;ǘyC~rm^GS,0V_^V~Z֎x,,_(}cDž cG <crӥcc_Z# Q<֋Xk]4I^?O_k'LLLLLLLLLLLLLLLLLLLL16mZ0"^cEb ک)V=:;cN5ͪGNЗM얌((%3ziFNkL<.!GOl^c7UGEqf8и -Jym1՜b#ciZœ-:r16_qOUM(6k.!v y?NlEK^" B .<r} `fb`7+B^/r0 r2c~k_btո' ;000000000000000000000Dq#5n)lꕩ9Fuة}..vS3-c#Q~Zj=9@P'CxCUw>1-"œzb(sG~׺(x3VG' ˞ͨD:W<1"Z֫1s-ZRk2H,mHZ$!"Z6 M=yEԵ]5vĉ 4FM6vkޘ/Obr.ЖDUQӭzfj%#s+.sc/cD#^h6[}EUƼIH^_QѹZ%3օ@+pcWRQ?a {^ŽX =>G6kqiubvN_W"N}dʏuj.C*6Ds=}žYu{l8qbx'k7+*aM;4t>&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0#͚5 k-}񢎘ZiZ3FYj*b۫Or)Wj2Gk?G'yLm4n<s\⫼aN6̕h٥$ 6MM<:mF6 +>: ;bQO+bˏy$y~ͅ\zAdž*gKCWcg}zSGI>y#G|FM#I&38?QY3z.ox%LLLLLLLLLLLLLLLLLLLL@ӦMC֩0X ;6^SE 1c\:dZD:SX̅V>#sZÖ=-vg1U3i+?qё_B*3/]즾|Kct =է՚cU~l5pFLmJՂMb#Af(zGυNc,戉N+:Ck&%CdG\ңS~sZiG_Þd.C>qda6qUc ԗ@f-vqNj|SL_-Ī)V:#LJcZZW )GJs+'_P-qcnбnD5(}3E,#vhy_i'}&|5]-HqLp4ͪŞ9ᇠc]\xOSɇ<+b7F~g>?9"za,>y2o>NjȪmr9^x}ta8#klxXo&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`%0ywqkB=ޚ1Sk0e^vsQ5ca.ϯW=ʟy:iWɫ>-zKUIVQ'?,hLqdlY,X/qA#ؗŇs!ؑ+ϯ<֫5᯹-kO#΢ u-1}ZX0fc*~ Z]qˎXQM}_9S~b)?}~Y z[>1~dCyQU 2^},\q55-شƹJʆW)&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&P_͚5 k-R8SLE05֘cס }bb:-󓃸<)c+!'BlWTly?Z~Z:WrˆZ ꣯6ςgZd1FmL4F \W,U~KeBKy_vÓD=ICK~W,#?sfbp%G3`$L4)yW(kN;HCǫMnۚ @m4m4irIŋzaZ Sg,ABb9k^5Ӵ艉KaCͳn1O_Rjek}<1(& :C:p.?䋎΢uIhqy[=S='N+芥u1U/&hc?S1;N%tCt+c#aګi_Hߏќ ?^ wꉹRSX󱛊U\>dcjbh>;ϯ}18T*>vռ㏠Wh(?z_O1R_~ZlY0cG#[tت]/ڰ`O (r[}GvZ:!ќK>Ϙ|Z's'na="''#ʏlmx3O?aj100000000000000000000h5k [tk1@bjTw1exW=3:lTG5G+٢S-n ?c#!Qޚ\V|%ڗ'|.dǺ5^uZrũ +.EXDU۰x\ڀ6_#v:+ϯ<棺M\[9B|C}U~X^뒽ˆybwߏ_D @$00S E0\-QPLѽj5_STO=3c칔O |9D9XsS~(&m.>v৵nB-XZ2F$'X:բE<Pޑ.RBGz ЅPs3{{97;3e9f}#`0F#`0F#HoOE$@6DbccCO^25~+lԎ0VkZ|k驱NtjQ0 Q͙/(֔棍)Ff\%W>T49g"o<0F .`O86";jIO-a K!3͏1S|ANi|##>_zsEǍt_b0F#`0F#`0F#`0F#`0F#`@WDGdߊXękOw18p{4~8G`-c#јbѧ]ΗƗ"ƣOWmFUC/NkAZ)ԟxm \ct˜5Ik!򡓟t"+zrVmU+}cDL8G͜/t:._ŖzUcԈ|{?!UQ[O!,ZTOtӖZ%| DAgLࢧY,uhҧ1}A@4N:b+͏~{GOlt}cY|)#NEm1@onNb:+G6À ܴ(#bVF#`0F@w[#4~ brt#Pee30F#`0F+ޱ轑y{LnHiiJ qQM|a .5ejiڌɗvGuim:GXicKQ~t'=1Kv<;({O)8VbP4)MX:jM4%|4/Eౙe\0ƅӅjbW,$cINX\l[ƈO(jlȜ 7~ҕ_0vӦsYd0<}gߤkogKXvA]})mw\WDM Q/:d/[?gzJc^:uZx}Ԙ0A 89"ۥ\SEzǞ0.iNṰʫq>-j v:A9OL]PGU&/,+Oa^~D>;f,ĢaE@_ |iz>x0w6.BaK!ȭGnPvX_:lNl0F#`DoQ o߉T "^Na5+bb~Flk;S4F#`0F#`@*}t'b~}GS=|F‰S%Fԇ,Sc#.2~W3&_l񅗬SKGCWǖ豁?!z̅qʥ6)+0Κ Q4,჎E:@t"0bC-h"/C0.B+̅ ;n•س-'L o>&{o~sicXt_^{HΟZj?w|~}_]_Uq񼍀0F#`0y"^f +Tko^x#B"<sx潗4#SǵL8ۚY{ݕ/[}/ǵ0F#`0F}t|])M'0*NG3V.tc^"~ǖ!#jcZO1i+?6O+}Gm"51$Sk!ḭt%>GP ,H-X>"i^7ߌ@l)XѤK1ӅcLߒ=k"kGsT<ѓ[ʫD6pb'Lrڴt2u]/|WGe|}süqU_=wl|sϿc#’>)4U#`0F#`- 1[+/m?Ͼ=}WZ/?yFmw'YQ_y=#`0F#`<߈}v}ʮz7݉\)E\<,gc1pb>\dp! O:eV'c+">vtSR>!\ʯS4(*W~|D&T,A[n#JpڲmyXW,);Ow 0!zO$t|lSQ͋^hW8\Lj.tEW\*j#] W|##1҈i:jpZ]wxiRC6|㌨[ͲW筷 <>X푲r/t@=x;a% >#;e"NPO#`0F#^25 {Mo{ ڋ0~ܹr_kP12 `F#`0F#}z7R|Q{򔦟gL;:IQ8ƐEF1qQpY'g(.6Nq>3N[\E(rPWzb%?k[)f6߿fL,ccChS,=:;6cLf񑱓-6eMK_q_zO_<7ѥiG!^mf;6>P~Z#墸Xv@`kLHR|,^ =5&pBGA>'6K9GRlG/1+GUS\\>'ɸEW;+w.ȣ oIc-)Rֿ{7,b vt _om@Qxa" &sKX'i0F#`(-e{Mλq/|"_17j=ݟ&sU{BZ3~g}M"j B ci[8`t> I:k ʯ\ )b.r0 9Kcj"R>mD1'6 Ӯ-C#]F~#kIwtW '\[zwʧG{!3WXn%j .%I#`0F#` F@K{Cxj~=xZcas41{(Ϩڻ'b~_y-#`0F#`UFꉘ^, ѥ&5¸nrm6ԩ7}j3vf}P௛>m5K-!WF7~ҕ_MȮ-6O_w'[WQv4~?>pU!ww_^iӦгgCX[tK?L|}x~}cv~ 䌀0F#`0턀`U)mao݋0~\z?M/3n뉘y^ 2F#`0F8qծFꉘ^<C=v,SR<\eqEsLEXlffjhJf7>:?+?뒞Z'/W'M8助S;]Sp޹4;Î88|;7;֒2x-hOMa W詴Kz^oMt߿̚ Y^j>9ut{F#`0Fm0$d=ao41{(Ϩڻ'b~_y-#`0F#`UFꉘϵj{0onL,S0cjxllS;qѦ`G_vq7CO?$Q~jSk>̍1@V W<ڊ]3B ba8)AS\O a !ȏ76W80)&XNztDmٳ=O` Qڲ&(tGhZ5_#d~8Je/gdz?kd5a'Ouͷ7l77!&w5(2_mk0F#`^c^b6'|M׫ڋ'b>W#/;̌0F#`0F3 PO@j栽Ao> >{FQ|68ҋL8c>CTԎ4tԩmx'v6K)?:V\i^YK<ɯ8#E[4?F4W}d/[t&Rc$aMqӶ"j 勔-zi~DO\f&\Z1QތbɸN-lh+1S}4)UQ7pWI2wF>xv"׷\=l妁hU3}MHBׇ;~}]uto:#`0F#`@J^[?uOZ_+kv#`0F#`?u+]i퍘Ukh}ȣc |cN_LZdr-PDU->3k 5|Q~ԇ>műrQkn%ڲM#勪6q/ϏMUBZEsLR QMNWɎ1챈|S0=W, G/cđgyhZ7! ֫Wq^!DwҽQꌀ0F#`0mC*ymi|=kb^ޭyfF#`0F#u}z7bb~WgCCׯ'g@Vc,;5z8ԌQw-t=S_K#ƨ!\qË֗n&Z|ԼA#dj''<kVSɫt/G41)=}&FhCVO/.c0b8#-P ~?b3?]?jD>4 bM)__~q4w|2p#ؤ'&~z*BKWv5lm0F#`hi N{/sxՊIЉ߉.F S^-d0F#`0F}`PW퍘e(;1b>bIaXa6gU7{Y~q(jǖڱV{t+bqQڒTӼV9N0 }l;cǮj!`B -6 3h,I=bƈ8Gk.㚓ri=c;/&5#`0F#P-k2:_ z11`{zi/Dݹ0F#`0F^}zM7bb~W0l1 Mq͇Zŕ&&64W'dtE=mj47kmY(Q3eUGUfGmj6q C ^\eՌO.mk9Íl/]lfaP+/+dXyGlJRK-N@hZ4mbdCd#=}Go;ȎX㩥SlGW^Tȥ 661qc(uSGI>bY| /ר&~z51_HTV~)ʮ0F#`0]5mP?{yEbݟ&VL̯ 7[#`0F#`h <:FL4442b1X{!CF4יM~ :jG-_eO̴Ǘ8ӱQz'.:M,r)?f֖b Г_mj96Kʏr&!X^ę1(MVN=􎞂N/b3#&:@[y/ϯk4ib(숫SztOaLW^SN fWî&!A )8bUcϘC1/1DG? _C镃Zvxz*>c^%Isȗ1|1tʯxeqGRۛVq^V.z{WP}Jy6;gy&[*n&Z|%Ψ.%%擸yv_f 0F#`0upUoKgb~^B8ڋ318#`0F#` ]*ko_k䵗R|_uo~FY,p!N!KO?e^v9ccM|K+: SKiIkO^OC|4_Teʍ6WhUb Dg}]!pbTe:b1}y\|ύG`G4H '{ U~֯50Ɛ?zBW7&%['L|D7!n{ X$aUVWXtE  5 ؖH.zQԾ5_Fk{\okR.E\#`0F#`-CB,?<+ޏl &f{O-lc9Cߖ_+F^6[ȶ1ڴi_O:',ҭ]0zcOI'W_-,r}Z)SGG>^C·r䥗^ywy AZ2Zێ >ms뽹#`0F#`@ P>||6[a饗+Ͱ [oƍsΰ˶hWO11?<#Xa/2\eDicC }iE,ʡKO0-:rБZqn6#6щ@I|5'5MZ<:@t4b XZ$m> ]`PkZ #8#61)?bi=}-661zdCbY|#d,u@oB*%6laݿ8}ۊA^$[8ڧkׇ;y>F>h>l)ÆZ{&j'5fQ^-l;#`0F#`@wF@KIϿ |-AۆG"6e{׆/ 7\c|Mü&¯ _Hmo>GZkj1SO=O;ĦsO8.7OnYj'>!e 0|IUx0ta[˫8Bq0F#`0F@}{}ьd[F;|ߙiLJnx@ᮻoi11?ag<:ɱ41ej a85,:~Mljœ͒]6i~rbPSØ)?r"V~|5OŦc[O@!.l`6 *Z<R#$,>¸haO}({R\/[!)+e<5'jW̄1DG_qvgL4?j}9cYbI#l,@QoB귵>ɧV6u/t|DžV?ɼ"WA^oDJӵTܢ_=l_@KX۬ru*nj0F#`0.ݵ7;&8;;9-Ư|!76xpV* &!|Mo YsJE]~}xv̊;3? ZޫWp?n V' ?>,"a r[{M7MM0!lw o]5ϫ8Bq0F#`0F@ }/2 ;ԸpE) sƧtN y&Қ?7bbɯnhh l\PӇ4 X^Db5.4uj6zb"ȟ1l<+li+66#jxHa<ثԈb1N 8ײA"[W~j/Guuy7ziL!&:>qjXc,0pGM}_9CI&"3`9P+(?ʇ iArG!ڜ˗1츉#bR&Fr> oZF0iҤ&cW}ĩNGB״6;#7xpH]X]z+%Wj_-0y}[WL/90F#`0F Kaͷ.-v=ma$]ҧ &SW$8$λn +|jZS;h"i3}~x衇3CwguFbQy3/Zˬ֐jy|Ԩ7S{̈'E;1رki]g˰ۇ93<Q)s&gV?׾aE}2oλ~f}+φ^qLrDŽk6,Bo[^k/rd7F#`0F#P;yyYMlUW ZkE}sχ^zyE.°bb~ RC{#& ɭѳgC<1Dpŏ&|b zj:;8͌L)Aca_vǞ>k\`W[}kW[O# PMZir tg!SS!PkbGqfLqdġ\BC%mqO>͓1Sqc3a =ģS;ʏlb3w,'NrW_ajG~R^xra|6|7sa]v*ht/t>nܸ͕d8#1v[[(z+oܢ_ͽ#uE/m0F#`ht#?:\suB.OahQnsb)/{/Xk9)]wC_kib~kH<~E^𴄳:3>W^m?)~ڙDCwkwytM6Z Gty@IDATꌰjC7]4qR|tY{]Y[oxH־6$kC{q&c#`0F#`@#>_X%;`o,nзo ~a-viplL/AQjho$5z1{pt, A1\ex'- _Ă?lD>ǎ:DqkZ>EXY 1iH3D\)mauȾMHsجxK.ɡ~]t/tS{l9͝:VJ^먴ܢ_h?`b~W0F#`0.X+d'nB?2}u< {9 b.I{b6SįE(|Mo O0{|?3d-[$Ċ(Npe=z}oX} c=*u-B{Z<{晧3YNgbGcy,DR=7?φK,آamn頷vGx-vet{??͇N^ҸքŘ옷WجNP@VgRI2YDn͘ ˇ)͊υ>Ϗ ~h/mʷVnm:b`SbO{G(&m_g QN#1>t/$V:Wښm|MEq44TW'C4biŠK 85.S_5zFOG617v-Yyˋ¯Ig^y:!Uwqgeol6xHa8唓2Z 2iÆaرakf?{_ē6᪫=硡!?rUvS8Dձ0F#`0F4">'s|^?|"EoW_}&MV[mHXdEdO#$ n.;^ Fb0qL5so{z:A a )5Cu9mڴKf.,XxYgd_c8'Gb-raxx Ͽ= :o{sF"C?ę\p~nm_[>%g9ȋ6$XDBO 7 B9!!/+'+zCG_qevT1.`G_c[KO>pS[̆1lW촎l|@q4m$]O12j~(Q5ѤI_n?c|P}1bp!} ƱF)QNzj cO\ 9h~+zDvO3қ_/:n3FB 7!/TL>2CN<C?U/Y͐G#-}2mx ݆7$W D^o`~}|0|x# ;>UῈAR;zy/-z#`0F#`@=!&槧i_1ҰQ< iߒ'Er'dZ%ObyQUƢI+OZ[-_FKsugiQc  h)M.YӧW<Ȱ s 6 oFHO_zВVX!\sUa aͷ9GI v?>ߞ裏 묻,Z^\F#`0F#PyOdΛlqw nI'< /p !Vi|2$ KFƃK#<<\s͕}n{e{*Ͽt׏4t ?=_|OK¢6'M:5{᷿iGHTPjkK?,NJng|M?Fqف/|=Gʼn!ߊXękOw18p{4~8G`-}ŘF1ŢO/M,g.R>'SO\eU;q#9Aoi=tlFK5p'ǶylmJ뛬׋Ǽ3J͚&~ii}#`0F#` -ӝ[1Z? xSiQ,}9#ObyA8>C*Ze{P@[1\~Og!io|56>y;[xta5VpufP/Oy֫Wv[lv0(*ߜy\nt<\`% 0{N穀?1%s^8f?x_O—yO \{7pSvz pp;Bf b~Zho(b>kJo$Ͽ|MxRH3eih˷ގXC(g^-wO<-~7b7/Cle? "3${tb  |Y^y;],x7FfZg0]zZC[n>Ҋ6[sԁ0F#`0F>e4\0a„R> ={]w)cSAck/@gXG^Ft0cֵ\?̠;ox' ޺z+$k }l 2UH|SNpM_.Jڃ3ދ=4X>E̸KpCHd'~2葴2:IG~r(zU[DfՊCT5mQ3'WS1jD>Ɵ٪ߨ' SGXh*'XtiKO^`|C>]B~|6c=ml׍"}zS0T8\!4?i~=e #D7!B3%6[HM4_}U^FYhm8ӛW[/{q+^xr"5y‘dw}4I&6,|a(oYTp#_yհVg?Cøq4,Ђa k*f%cڋ+C##?#:|Z^Z4R46F#`0F(r9dGwG3zLi)K,D.,P[ ?hAᡇI?)~ڙͷx`S )h>\xŗksO=aڴF^;˓^ BҐFC VP~'hbXAG{#ER99i)72Ǘ lh WOqV5K|tʁ+c͇1$GB,.-cħN}W56ʏ{dX?JӶ'E I" ;*}= ^CÙ>ϣўnV_oQKҡBޫ6yDc6|sg"CɡG;[9& [{^o`~}@_>pɿ 7tK66rIa9y$31F#`0Ft[b>fl?Xwu2"풃g-C#]|0 Yg"op9gk.Btb+Dle>PXt-ROq7ko)pfڐqƇw5H7ۑGisMjh/b~kS+rj{qBµ0F#`0F)8y?S~"maKK"/ᮻo+_Rb>gûロ.'ͷ {Lqf8i G?:`V&mH{ЬEg7Éoi,Ew0x"cXcC`H/??/_{8yS"s̑y,M1k|&d{=4 YqO>t?wypyE Lѯ_mܼ=j<:ᩪy/O#`0F# EÏitrm6~EvudO/)ȺZx=;ݰʤMci/b>jߞ|<=zy# '+kLf:>eg q!1b/dxKGCWǖ!>cG3W.hcϘ5^qqքlgyf GWV"0bG-h"/C0.B+̅6>怟橋#[+:4|?A'rQ~/=B^eq3a5ŨE cv|s=wȡyd{8l9m!s)9ٵ)y)N~YqUÄm7~Vۅ~^xl޼f[i0F#`3FVun77 ,c:~߬sOGyXFޮ|?2YyˋƯ%r~G=OZ֐l|M jXk5\4#8~߁YC8? R駞 ;k N bȐ5G~3СeM7NxW‰'>q~ej/!0F#`0Fs> ZneK8!VK̟4irXqU´SKߝsVXc՛w6UJr񰄯2wg&ho=[+>li7_ϳO̙bOi:1|T,)g"^1҉[mθxʴǖ!#zW4~tԲ%~*aʏ慯i4F\I}C4/Әa%?4J|%b1,Y)8Z|Exn?٦SI)?6ꉃc ǘDq%{EJ׌x'W5:lO|ieMHsxUB?ᄓå\V ^R?FGBo {0<䱔6h^k% ˤI&s} K鋪zS루W7eM.o.|jX_^K!sP#`0F#`@C-'c%pGgL/8jp衇3\v.$Yᵉ@YNgu[nm ىk=PٓI!N߫ ,0ɠVRD~>~7†HK{徙ymakh8קe~h/u#`0F#`03s䓇.8 ~U 6XoF/;1W3Hx0;eםv#2@|lg|74>m20)&O0!&OWiܻI"'K Y8-E ָxq(=ŕ;SL~m *r)r_lfQU,7gO.csS_l=5ư`[?fOc1^(yŎű$t6H C#`d"=h^iȎ144/ccЋ/]zW t蕏j7H̟4b4K]!盐Kj]gE/~tCwguFS)^^KM0F#`0F  W+10Rr~ N{mb~zkw&b ?q~gBopO  7kO vjEdW;`"0_fne88~a :, Us[{q& #`0F#` <)랰>g9_p%sřMx@`?>?$mɠZbK/6l,Οam.Ť1nܸ.{^z)WCHs_<`f} soXyo 0h̾iob~-s÷=xJO3ߤ.3*H"vH:.;jG-('gra'8}3{NU&)lS5F }+5<#欚E*vl!҉FXvl c QNS1G<IEdž '|1ťO>i+*Q~ښӜ='GX|)1t/n-To_?4p=}>4<^ B=BUGL;ng%sf_Ny3ӯZRh0F#`Ftƿyxds}eNPNR>01DDu(|GBweN { |yI7xmXeo5V#swN7:)>a>LoD&*h/ 0F#`0F6 >%Ovˑ$ ZbP8J+}W_  m)p?,ʹZb>V[mƃQ ىz =D8߅_|b'Pw^x7O3<v>,ᩧW_}m&dx0]i<Vވ"9C<5{đ1LJJ|WM mnswY|d|)6e.3.Q~Q~e?|jc8})CЫجbf[kʏNXosjS&3!MJx->֘F f ^Q~ʟq,KtOzžʸ& 91qDaO|󗏏 80/y;^LZofJ\"/)E1Gg v|Xk5 U-yWZ|w9SNG;eYa0F#`C[:OG|4\reᦛn;1=p7'Wjw11;1ƨ0tØ14`?-ĉaM nnmnϔ ~ƽ7H ,`[ .0O- ř_ 5F#`0F#<yS=&l/Ff$x/AĤbE^ev@;of֫od]J+d~7|+. e#u771ZRKȋS>߯1X"npi;fXKӧ7piLGZdGTG M>W\S|qf1xO_N8fGkf|ҡIB-AAabL>mkQ]g\G`u3Iy~b`AK}b!z@TT!'ciL3]Dj|ԧ(⑟5P~bӦajG~Rak$uNAZhâsxS)Bε5˶+ۺF:o,zcmv -.'xJxtc sTX{ZeO89\rea}=wy睷\ᯗ'5>{ >pNj/0F#`0F@@Jy.%͖WfI|mԥ#No*ƅKFG[f(7xs6lx/@{=K^z_oK^xW™g0mTF-οۆc92 5ɛ_-R)M's˧@^htթ]|"q;M 񓱓mlfqd#Xl6ɯX"/Cړ{V:ic<ب/]Tb(i٤ciF ~V!Ӹұ0R b ut)E0\i4?}姍(>u>:M''Y_!#O9ij+RKȕǍt%~X"ބtf$ߺ4os[/o`~}1v OGZfK/(Uj識& v#`0F#Ѝo"/s^s >׿]m5Jմ9O6 $7 v+JN/2,?dN?hqpWSϿ(3`"2iL{A̯i5:{/Fn0F#`0mB} {[oSVX>,آmWFnxBò}#ݻ֐37.;AR1-aLr=11x#?kT, ^cbQ 8 ebD:W<1Dyh˞8jCd\aCM~j|Wh^>O`'_*i~tjr7OG$TMHQ;Sou _B{y/%#`0F#6oiPɓXnj{@kwi=kb~kwCǏk0F#`0Ft?i^=MxO!gψŨX> {q#q}Fvi,0)[ 1L䧹Tc/1|q͝ZV,l)cZhRʫPWV11?+#G29Ɯ`6[*.[|f8j+.c}/ק}pqiW.jMV[i>|d|QUc'h_7J^0F#`0FmҠ'Z21u:B{&wp~#`0F#`>[W11?+ףG0Ofi,OV/^5c߆-|c@ʎqW_q~7~E_vq(@WK~씇q_quP3WԊY,S|ɫ:͏OUB @(&;"I[b`Z6ؗFG^F[:53CQ M~8QGydi61K0iӴ,&~z͋hׇu^KFɫ3F#`0F z[TLo۽ђUCz?MUUnM33F#`0F@=uի=B~}81X> cةQfZlEƀܞ,_5FM 暎3F^4@6v3( B! Wk$?9XʟJ^{ɍ8 H3t6:Gzzq;ʼnͬMmm,XWg}亮;nJdEZGvdgy9I>E̫L^H>d&Y+3m#y&I), 4@~E5tUu"i(NT}NcFTX=mFҘOm4Cl_5ii^c3ѫlo6汧ٸ2a;]ײk-?舷9ӘOË../Y!!!!!!G`-HO ~ѽ~ui"#n2 (=on.jmZ_nP>gzp^f0[^ir`;<ҋ?kf<[-/:|~AEBz|\_^g=k~s0CιsmNn}tS[F8YƇ:̈7qks5GV?!U/sׇD{>rSB B B B B BڿKK2Nͯ4Wٝ}wr%J)n$'׺._oԸW>bzm gO Υm]dmW{QN׮sfziWW^<u>6^~hqx9Axif/Z;:/{裞#my(m}2B-k|ochQFҘOpmm7T֠g=z:X@l [fgf=홮eF'/:M.m]]-1rZ3rk}|Ec NJ88#$> z.C;z:^mD'A~\\fz׳S=:Fy~yV=go}?lmpw#Y%?W{R_]>/M) g#K/{K/jb/{Cw<~O 4?]9A@@@@@Y&Jsx|7'Q:m}}1{}6Ҟ3ۨN9~;0ema^%ke/ġ܈=X5~39jً{o}foD6%8x L8ڽ3#Aǹ⹉1oC`֯=X|#?[Ya/؈mmo>k\}Ȋ׎_Rjej󻷷:<~_uQDZ0p!!!!!!nϩ -û컈;GJ4g$vO',+B B B B B B`J)nd}Jէ|'=oKo||nָ_cn^c=k~O}#Xgm 91Oܮ֧kf:a}J 1Z%kSE`aN.xpp `B,U#vy>< ?jݛHvvfw0=Y=4[me*jumkyYM޽ª}x?.]zL篏c[,ąs8eow..&pݹt"t>Lc|N2nW1$~y"B B B B B B *Zԧ绑Uj^}Jl^n}6nָW~bz]WGZ}[ao2q}jXÜ+y菎|7G-gGum=qa/>,F$/ρ\syYع{g2^Lx1!sƒbGfXW O=zU^!2ye1+q{=̑U$/W_}w;8-U/{>ٽ2;䯏[ȓ,s8m}_t-GԷErB"t>Lc|N2nW1~y"B B B B B B *Zԧ绑Ui}JkkkݕKgF \0i>c9kgq1cÇgrjgmn|#xfQC{{>sa'B0Ìپl|d1Tk2{pfsaz14c|h'\4ԋб#Ƹy13:N}?3Fߘks:N%pϺvF֛_[jUǟtx'Y_'L&9˙h!!!!!ϙߥߩwMז]7]ć."N哻*4DvUO'@,B B B B B B`{E}pY٧Vߘ?m̿Wz#C?1=3~+>~keLo?n_Mg a35}l~c=zϵ1#Xk[|8jq=BG~vֈ1v{/,ay l'F?σγ85>ߋ5޾#$=zv_|EG^_}mia?WK/}{[?ri}^sx^wiki5?%iĮ39ɬ]I> X>D-{E}rYݧ^߯wj L1 OZZvj>6G1 !e}љ?(@}㣐gޜmAgAg.ֲ[˼Ķk{!/b~|85K$ب|جW~qDZGڻ>>̣=?_?7}_':篏B= `@@@@@#Knk:_ֻ_|i_|"t>lI1q6׾]˳sB`·=F1E)M߫ga bz[@;PLӽ=Z_17~OS=gXbNƓXcCi>r3 3Ys=+kǚX|[1/:CgkhBC.l^@Z; X{gGѳ';b~!7>aa洎9cUͅb.ρs0=kwJ@AǿvR0ŋsm.Y_ٹmnީ_Ssn}mv_z}cDDq>d/\."!!!!!!p .}ᕗ7~+z o[U_>KKxwz?lnnw㯻?x!"?}>/sѿ$'y9錾]|~|O@@@@@@,e~Ow#ԘP[)1߭az@޿9 6n06z%3yq]`CxeokcҟG K`ss3<3icY뙣w> %E.p~1f OdumCcO=x,g~Gǎ1q퇋߫TƏ~;O$gon J}W+ryD}xOƋ-1B B B B B 2w;2=]R#"~y;B B B B B B`=Ъ={n#+ܨq=6o!6kZ\̷ӓ=zn\YeTz'ݓ׵uƏZgv]ˣ + zp9sXQ&ox1no}fs{6>hӚ'vύ_ͭG vw^|C9%/zƥ>o9}Y=:9Q@@@@@<g-t?t${YNU#@ğ}һ+_7I/}1Ѽsl11&1κgXkgg3;> pĸl3w{}qz kK=bQ "y[ߺֲX[w.!!!!!!!!!!!!!!!!!!!!!׻.Wg5lʯeߋL#9%35FG#q;g2vH;O2:o.׵ao?t-uYcck1s&?ڍ5q=6fĘa7D~'OBffpV'.·ȞzfG%| !XxlEQ>{?8A}ёPm2Rӳ`aXn]YYo{FJNr_!ꭧ3'>qFֳ=zȡr0<VA[_RX6q^~8`u&yɏĐ)qa{^|3>G?rۛ|DB B B B B B B B B B B B B B B B B B B B B Zweߘƽ?лlo}6c_269ۏ=k=56o36Y}-8ރq~l{OkwRG3'c +A5vn\@طOȃ1iP-̈5ÚA u[5zfxuχdm<3X_Nة/ |_qmH@@@@@@@@@@@@@@@@@@@@,(^zz7kkL/1eu3{igm56c%d՞kaCoc}|ɋ1r?`go-쵡7us'D.`ܵA#N /Z@3Nq- `pYX 39}8R<Z`d?c1i?B]^֭ͭU"!!!!!!!!!!!!!!!!!!!!! G`Ҙ:5|bKb|+'_+yawo[8DoլĪo&[)mt=!|m6gx01|c.Ÿ XZ?oa˴>>k!|pZ CjLg4詁/{:S!o#9B B B B B B B B B B B B B B B B B B B B B`7n|c>KLp;@>27k#>~:ۦ|Ce-[}'M,:2~Gi{X{= z̿ͅbC6^ p .z^.kbBƠCEMobs/=ơkyi}ԡ3zgsF5߹gDB :@@@@@@@@h_H/UrXxo.rƝɅh-}f}k׏ن{eFGVӟM|JټhOΞ8n8 }Q{Ky䶾3Cx@@epq9}0wnυoL;gBk^M.ׯ\zAOY{ ~+ߘ_""C:F?B B B B B B B B B ?VҾ+<\!5B B B B B B B B B B+_NԸ[MGN_1 d~f G-{kmӨc}o}lK3k׵CN!5zrs֮e#c66Sp^y(^=:k.>Be_zos 89}j9enWG,věu5g>>{1ڭPDB`L z>0Zzs~@@@@@@@@@;Q3!H@@@@@@@@@X[[l\z*|Rc6{̚^dlkpѳg7{zY5b4cFՑócyg~{ss~j|'ZNc3v89'>"ա?8I`]{ROZ`c}{cX?L0srO.dg>Lk`sCMlmNŇȌ^!=k>w`F7;p@OO[@@@@@@@@@4wMZH@@@@@@@@@42T^ ZAm'fuf;Br&[> #V[-g˶UcF7n?Y[ù'k{u0m }Z[k:OW!=`WïQۙ.lѵYZ{[Y#gnݣdžumiGŞ5gήo]fZ}c;|1m֜y=߆j7B B B B B B B B NQw̑!R}c*5hoU,}ƴ"?A/ZO/2k1yxRfo}Đ!W|+ui}ɳWG45c7-C7%Hb#7A\\B036 i,yrzQcX=,<k,ua}}iF !^f|ĵjΏvwŎ9*@3wi_Ǟ{@@@@@@@@ 0y]3p!B B B B B B B B B _7ޭ |RcgriexܟM2jwq"f~{o?ڙ=uY=B97ksX\ 19ȅ/vj3ȃ`s=֓<8{n|-&?t`8@\e\Qs6:g&kYaM}f{^(>NcX>:ę\ Ċ9ŇX- UΜ(M91oojP!!!!!!!!!!$/_ɵhbnN!3c+ZtMkcnX/?9_XSټ\eM7v\3όx;xC8 f"(ޮ=1\Kꋞu[ߜo-{1γ4L,ba\ל=;lX _glV_.ӺXk[w?ݥld <|C>I J2@@@@@@@@@,<_M7Uݚn4.9vD@@@@@@@@@X[{/WYn ^ eACO=ݾ¥Za@X]ckc[oFf̞M_rַG>+ڞq}|$?t!35xAxMI.ykG.efG^F}{qrYb}ي]S>=,涾~e{ :ylZgb'HBԂ0BÏV5ݷ9ì pfgmuw<栞k#xynu9ј?}X"| SoHܾk{jS!!!!!!!!!g=e]ӡ!s&2B B B B B B B B B Zqo4;xk;3zz1:o4hsgc1C{ri}kۋX;ჰGmcw :Y,~@˃ R={Y(kۇ8yjٯ#ư*6ր 8bo\-{aoIY gq?B} `| 0# qG][zgR۷ho7b=|'^~?]DC B B B B B B B B Vyr~ }x@@@@@@@@@*{ƻuOkԠ-+Ӌ1>ĵ z}֩e_zc͠>)ج?k잇Jk޹)^_XY3jyx##:h/B,BkX\&Z: __Ybuέksrv5:̊6>TaFg_1[?9$|CC>y{'5bn<=~^Tt!!!!!!!!!/a 9W>jUNC֞u@@@@@@@@@.nK5ՠy^ifӣlsMëYmA{QN׮sfziWW^<u>6^~hqx9Axif/Z;:/{裞#my(m}2B-k|ocdfD;μec6Qڇ?3~3FǞXfLײ?z&6ZǮsA-wk9>֢d'%KyX^==c/Z6rkc?oZ.3a=ȩY#<<{g͇i볷ßww~p,"l/OtՄN3Mm)83 nXX.p챗9> I1y}3@@@@@@@@@jX__o̿^f mڙN6|N1ka!;0?l60/6cC3G?j q87BntX5:Žv}>5OnXmK(|\@iL~^lB$AGC6cC<71 <0b:>8ofZNzK=LjX ͇bk6Y`<^읧}lDs~U@@@@@@@@BxrWs&FL-[X_T^~]f5=רm5{(ʞ5qM^?s>g{ٳ6[[VovnI{^S53ySg`ϰq|5wdGN0 0'B<8Epp{q!ב ;PkB$v;;3;`ksƬ_ƶ~2K}ǻ"ڲX~Mz9]jI3OG}}>in|hC B B B B B B B B No9\?n54dU9B B B B B B B B B VKoָW~b^ڭI2bv|X3Zao2q}jhaN{zoƖM@@@@@@@@2`}𛧟׈?O7{~ U'mvp6ӿL1= <1^c^/=GG>͌}ҵ5Y֧yљAlֳ> 5r[Xinܞ8ρְ[rx]?p㊗@<,H\=3x/&<@k}ce}|CX3+|h{=e/s޼`\[wa,"#OqCϝ[Ο?םQ;w[[grv@@@@@@@@ֺ=z{Qͼ^7?mҤ1o09ޣ:nW/LuT=%2j?s|8w˧Fkmmq*pN i.G%JަR3FON /jjgmn^GE㣠:>3b.Ztĩ3ݼ>hC9=soشcCn.υ ӋSf=ַ9]. 30[zַ'8px<{. cE>(^X0ZخO~g%7qk|y^F[=<'64o-{l'|3>b}AO k}gG÷.0~S4{ׯ/\x+s^6Ic='B B B B B B B B` շ߻yw>uQ~u2{Z SQȿ[xclo(@2B B B B B B B B V5Wc1ެqļ2W+T4֯/o74>6bǏA.P^13W-PW>klc췦< :s\Z%]?P$D\ yÁɅ,6u]^Gs;9F-cfZ{t8=ޅnse٭yʽϾ#" fϢ?M]G,|/46"j+ŋSҘ5 X<|{{ ۆ޳3#[}QƐe@@@@@@@@JX|4ߨSQk/݆֏^cۛÆؓF[mb& F };[Z{/މυM?έ }ڞZe:B:a "z >= Ư4C o\{[G{빭I~7kZ;SY{B>̈|~bd1!W?0͏)W^._zu^ʥѥ1ie.!!!!!!!!$ܽ}9_ kޮϼ~R}P7?|I!!!!!!!!!1z+B30cw*M$kk}?M3ǟa}t9YOb e>΀@g}cI=kbmżXq_ OB< <z~lfmߩoDXd@{91wz؈3?o__㱼}Y@@@@@@@bݩo~نiuA_FCt{{Pg# X%Kܘq=ǻ5lBo}AjC9Fbc۸|YxL:au :lzf'~{lov.uf0yS[5Ʋ3G|:J1j|~G<6b{' ?>!1맞YFePaC̓O{;z8#ĵ;?> -|@&f{ ~Z .i_'@@@@@@@@,">Ts~92|ޥvCawvv_fw _W]xԗݭ^&X^yu5հge~64ku+==m$kūeѳV߷6ZNEسKE{-{YgvO^סW?jQgv]ˣ + zp9<\XmyԿ'9(s_YƷ{Ag<vY>3⹽SkYiMƇx#cU<^zwy7r6sk]N-"KHs% {̭GNcNs~Ӏ?MNs\ 'ssD!!!!!!!!!17n~_ȯ~o]_B2'quȏk'^]ny/B*`ZљMmn6Z6gm65qÇ?1?͙=!7',m|&ǡ‡ 9@R%K0S|y8bxzᙻ=8B=1k̅{x|z0llfmlltм;n㵋Uŏj|^Z6ӗ̠}mv&et\詩k#ao?4vg"'=cL6Skn{Vm̈1n=Opyi:"{&<X56geq#S`×~hzYfvof,Y.շ=#I.zY˰>:DԓC]{&}?ΨzֱC9t`@=hK c&kVgl<8"/Y76`#N1\f}劍56aFQo6t_nk 6O}b$>h#l{9=:WG3'c +A5vn\@طOȃ1iP-̈5ÚA u[5zfxuχdm<3X_Nة/ |_qm.H, GV?on޼}Y@@@@@@@@@4^CSQ3^^f]~ }Ok̿qFgט71qڍ߯7kxY<TbtЩeX 5puƩ#!6[9 kAy<G_Xb}l7S]9wˆ.o_G @@@@@@@@,(7߮p?;O4Ou:i6B B B B B B B B B{Zc__u*դ[M.\>Tkm%g찯VSu۷֌؟v|ۯ̞u55m-ulW>>O㚸voMΦyб>x.ۜa~x%8P .dcy /k'#o[U.ՓlaSk+31|ģNч1[w?kkB`nc`rZ];CҘ?4NG}c,3GT7w^N~@@@@@@@@@%7VOg6z]}ckVOj"OL+*@ovꏯ!n1oMm4y!ncS3p^16Cx .Y{9|ںE 1F0gjk6u=< އ}5QzC՘ޞK9t{ m/#zKӦ\u1o.!!!!!!!!|1߆k\|#.ن@@@@@@@@@<1j̿~=ڛ5L19alo1pO?ӊ{o{͋6c~6=muazy\An;c?XЁ8X{PǏ{x`\쩁a}m&Zhs&N&95?zo>ܡ~7^Zk?yLc!S\@IDAT!!!!!!!!px4ߺRa~OƎ WGlC B B B B B B B B V}cZr~Rn Km;}4Sl=:?[[#/zrf]y^_YF6'zz[^oż\cDOu>{aϞ{AM=t|"/\7tzyZNk's˾=~zyAYžo̿vksI6CڀrzV|lߚx{{{[o~lo53o};ݹ|13Ox|i7A;{wߗVEo̟e]@@@@@@@@@5߮"^:y'Ɂ΢}cZ}qK?Sj=fM/265+Vгg7{zY5b4cFՑócyg~{ss~j|'ZNc3v89'>"ա?8I`]{ROZ`c}{cX?L0srO.dg>Lk`sCMlmNŇȌ^!=k>w`F7;pE'3t{6?i&Y׾2ՐG&!B B B B B B B B Vno~hgn9h?A<7]@@@@@@@@6%mA=Տj {{1lVgF#:ir؟o Q|jL}sԷgm >Օj|5Cimm?Ix\!`m^u\ Dmgbm\GfM.fjkm}gwsgfXzjk׵kƉÅk][ߺ w>hu|v{>|ognc~)ޯng#1 ~c>/xߐ?ۄϻʄW?:Y |ad5Tߘ5hoU*}}jFj73C<ȬĘyi}Đm:ִv4]=$G=c!~Z3!\\B236 ZƒG[-PX`՛(b}2ևCl}me 1:8[{gYמӻ^[[;?;Y"n= s|\z߹|cWMq"fu]}җof;SY@@@@@@@@@L Ew֮&z)to#!3I?1EV!!!!!!!!!S֘)w낟ؙ\&aL+gӯL1#^d ѯ}334XY;6kG66cmK!!NmylzrB>G}ύϡl83ԣkk Г|Xav 0C:|#l}o <G8S5޼áɻv3Groxf͗qN>?Ә?EE@@@@@@@@;՘@SЄol>+l_ȱvvOY@@@@@@@@@1mm1ukR{{/Fh@Uo23vlfE8Ԏ6:֏Ϛ5͋?:Ui^iL}`Gz=̈/C9t( iر!ڳ̅9Y͉9xֲ m>lǡ֜ل@@@@@@@@@f{Gw=ۙ?ۨk*7!!!!!!!!c/_cK՘zj7kܭA1`O(kfɇA7^/a5`&+ݘ&|?C B B B B B B B Cwqɱ֘szo߫A)/VOvcߦ_Yj[vlݛpY~e{[1GanAy!DžO+s- }FG]3#x>k1\s<1c[?ϭN66߹u{{^g_m̟Y2~f9iyد_Icz9J@@@@@@@@$ު|u,iZ/7;/ύrE ໹E8볜qֺK|c5נAAs Qflq-{_=43_ژɡx֎=9Ci}kۋX;ჰGmcw :Y,~@˃ R={Y(kۇ8yjٯ#ư*6ր 8bo\-{aoI~x뛣̓{X+ynZõ栆k#ɎXs > .\I=F~G;uao}ϊ^={S13kP1>:Zг&?kܾ}G{Cw̏C7鼟9M޳FA7|3>a.i>/4Ϡ&B B B B B B B B Bme6Jo_t8,nc7eqhB B B B B B B B ]8[y?M֘OW7ޭi"#~ez>(!걛ZE[}}|!7fz`>{f+MN|{V\z1?|cg͌g#wB܏8z\\Aq^kccpyk'|}of}U9~٭sjkgs3+PYџ5v|7nmn#~,Ojc@ r^'a?4緾yT\uKg#77f|=ܼ_P%Go/xO ۵O^gElkk/7jܫäWr(@\G5yxIM~`um}ę~Z;g7f{u̓0[XMl5yG]o<'fҬ2>ٛA?r%̬Ƒַ.s+Ƈ6cgX?ĺ~ٚ؈a&zZ[[՘ohi"gjK˘L=^g~Y|Ә?}@@@@@@@@&`c~h?F|~18ؘxm#1Ģ4GWxv-?ӄL1@@@@@@@@<3ްw/54/[cZweo̠\o23^Ecm ڇfgfGޞZgTo}zfɅe6?S53eFc_c,!I `RGAehzG/^E5q}sxVra=Wg}l>޹\A[_lmpw#&r&zۘeאmhǍ_ðg~>o1G@@@@@@@@#@c7 jߔ?510`Ǝ9Fz{s8cC3G?j q87BntX5:Žv}>5OnXmK(|\@iL~^lB$AGC4 Wx`Z=>8ol#ozWXlĶY|/ָvksz͑3FyQ bdpqLփ.3h x7׋uY7Ɂ{9cz'=`>gl%S|B B B B B B B B a!1t<ar ֘ϻ/BvkŶߚ= }!ξi\Wo3=Yot S~;k=<쩇3gX߸RB Fɚ;x#'rpA !"}8\B8ؽKȅq^b5Zm}o!;z㇝k}9G?gcV/kc[rʥZ]ھ]LmY`~H&|BEL^&{bi6B B B B B B B B B8|c~ |}|};{veo[c{,dMe@@@@@@@8&glﭞ=߉#yjek̇+߭߬q<(_.ҫ#֌V۷zG~j3x^6v|Qͅއlꛣ3#<'cy=j9#NsYLr<{2KFs1߅Fy#׸>1֯eFp#7|`'Yr[-5C~{}j77oo_k@˚ ϟ666N(<^/EB@@@@@@@@381Ww t߾g/Ә?=Տ߳>O1je!!!!!!!!件4~Axw6G-[czIܬqM/CL23=4k̃2_zn.~Ú']˩_[5m}j9f=P!f߮k;o {!g5# 8xy#΂#=bs ˼7\;:5ú׏cLoZ 1q+ |? @ƅ߸uŐGgÿ^ӭю?9McP\(`C?ס?>47旮4~`q'5K6S-nY@@@@@@@@,9޹2vh&m˲zt !9<ƹ[Mg<6_>f/=ē˚v;bkk{s8YgF𷾱h7o\ȏ'7<{_Z>`~%T,{Bk||ѭ1vsO6|@B~1%8kZc~}|9@ZWu]sGջݽi e/n,{C B B B B B B B q*&L[j_O[cVb1âNj?33G{-[3d]c}fj#Ǭݵ{kcF>zַ8lq= cE(>`'1&][<:Jnhc`>{yNlکiZ6l'2>b}AO /Ըsw>ד!ߟ7gnڨ_zo77{>+/_%eߏs}^O͓@@@@@@@@l5/uMG~]w/ccl61D϶ׯV{,u@/v+7n~i?=0#&Ю̞g#6ˡySW^t{}ט]/QnԸ[aUf2=#c| :ļ1/:(@}rC9oM,ZGi}kqBuyx1?>ؚgB5,C B B B B B B B  ۷hӦ^Qcٍwt+,F c^G?mpt<ո_7aM06p?A@4<ÆؓXlb& F 8[Z\}&b<686i{kpB'y!9,px 5~C;?͏PuzۚxsƎ}t :s\=ׇӛwoύƿ,"?Q,?o"ή\دk |+m5]Ǘ4/K /柉ל 8ļ~FϬ5]^yv] g_%i~߽~GQaY)M@@@@@@@"P7hi"V屮U`Y6/麯Fx?)mS_ ͠bŒ݁Nӽ=F_17~OS=gXbNƓXcCi>r3 3Ysk<+kǚX|G1/:CgpBu!6/{D ν3z#1ٛG2sZǜ̈D1@99+;w?!əl?67MOo/}qSHc>"!!!!!!!!!O;|{38ׅ:z՛9 ?}quO17{0Fō{5lB}6FbS۴|YӗL:au Cbkcç?b}_ =Υng_04cќB5CMé?>!1맞YFePaC̓O;z8#č [~^1Gh?rܗo)i6߸O@@@@@@@@#`c>_=ͧ9;b}quO1[O:{Ԏu{w QI޸(-/uҲpiSe@@@@@@@he+I.:긍2g\]=buwzט?]Eְge} {}x\̯ӓ=? ]Z"yG[5ye}b?u-~{Fc(szZ;̮ky8!=8{fsXmy|@R1|Θ̭&x1o}fsLc|?[cgR/jZ|=7>\7oݹ<2#i]joos_ݎio'B B B B B B B B Bix|_}$f٘k|~1_lfg/s1n:[G=E_mp5qls~_K]!!!!!!!!!p>|8OG3>lr‹/^Y kzi$ї̠/ucֆgQFg: ={}]r6{|F}mck1s&?=ڍ5q}nm̈1}CuߵKu큙#<(ΗȞzf%|!%XxlEQ˖˽Ϡ~|i}r( fy=/n}7Srtikښ]p_Ƈ5B21t6^6aFC=CMS6ɳ858>~9:WG3''>==! y4c6C3C=1 cMyuN>_s ~:` j|3a,|+n\)i}o>h}gƿͮ^}yO;4f iW@@@@@@@@Qg1߯/ۦ|4|/lS/288&4>G+?~5*r7js x=gL13>"jlK,}={51†[=>Occ @O4gZ{kCo`srC?t !|0r:FaX 5puƩ#n!6[9 kAy>O~㚸qoMΦyб>ρ \9AxKsq<#|13=qGX岨F=yf>_6żϟg%Lg4詁/{:S!_̿|ν˓(i˗1|0\g9'3@@@@@@@@"pvaE%vwK\Mc~?!!!!!!!!J5}G4۬9ע~w>Gx1VkEb>Jhz/XM'=6b.kYߚY+Ģck.>1c/kOwZT\,?pC@F=k.kbA#}3Xs5:?_^{|CW7t2Co=f!|j̿{CSIyY =Nw}D!!!!!!!!A46p }ýnjwwS>>WӘ5c!@c{ue3~i{⯺ טL5ߨqwNFyQ񢼈DfѮ #[˶FGQӟM|pt ?E;~uY[8B_4˽Շky^g7'=q䶾s.;xc>65xa-1{jsX_{+6{F 1X󢣮y{6X_ri^!XLb~Q84Eή\دkK'5zސ_42s|Id"pVN7`c~ZYʶڔ߮?/m iB B B B B B B B }*^FG6nӻ2>r>m[N.^#S13ctC=ǟXgmG\y!N^?qs墦zb<^G۳Y[55k zj}|bvBq%[믔/nlOcޟ4%xN[c uNKm1y͎W^Ic>"!!!!!!!!Kwl_~i=Y95om.^8ZV`O1k1 z̼PM6;kifnjۨg3xZF3#, F}j#ıv9!A$ 9Ïk[ꅝC lc@If| XZɅLޗi l|m̩+ĸg|1q=y|Ywio?Q` Go}K=Ϛ\]Ś7J3==Zt!waGק1/t"Asb4 i6ʼ>GȬ_-[334/?ڙ=uY=B97ksX\ 19ȅ/vj3ȃ`s=Փ<8{n|,&?p8@\ø =, luXLf>:Dk1Ç=šQ.-Nc?X>:ęĜqoڝ0Ic>/H Z-~91˟H6{45/e&~ H@@@@@@@@+Zc=G& tϚ-~eýh빦5G>m[[[(bhN{{/FxACf>#!!!!!!!!M7ߨ֜]!˫5w^ށِ6hWwTkϿ^nԸW~c~~~f7ajm?3= 3v51qϚhk%k}zcR-8ɞPB'Ν9L ~-?A+81aS?a ^5#z23#g/xb#>=4O.sN >̮Gyór[5HIc>W] kB4J@@@@@@@@8M6f}]r-߯~OK[@@@@@@@@ /}ބ_ͧ}j?mpt5[`?AG)Ovcߦ_YFe[y[޼g?֧8bnW!Y;~7qcXfrmfb0O̡íKr`s J@ÏbQ5^;32# }FG]3#x>kq519BccG?ϭN16_}޷˓(i/m9\g/'r1B B B B B B B B$8ݍ^7]-ƽms{ޯ11̟%@_Wh-mYԻr;/}pG;z_옃117{1k[_%hmۓiɁXgaP3;>1цbC'\Ls@YӬ>\l _S˶fZXr'\\qlsUIȏ~;oQwgW\^׵h/͘Gcu=>6~QS {if!!!!!!!!!41;ߺ.w/op;1i|JS3B B B B B B B BV5&EC~KQm|0}ː-r1w[~KѬN[c>܆_̧1UaO1>U7l\ǎ/{׵l6}=:o1>azsk rۘ~kwh! 9|ǎ<bx.aG7vp{&kW۷~anʓgژ4ΞAp5㖨8jg1/*ik>Ǖ@IDAT>w U?+_Q]/Wc>V4;}VjpUSq3Mê݅p܋,j_׽:m5tkOkܯA/2dW٣<6cgrE-SVzcϠ>)ج?k잇Jk>XkS.M_XY3bG.#;XAq>,6meYOs\[6!fV3?k_yk5HO|Tw^ڋZM~uݿ7}i0͸/Og!!!!!!!!!pNsc_8 YOs˵=s뮷=1&1x_ͨ4ӒܺXYs m>=_bnۜޚ]x^k^ifӣls/ߵ/&{}yμџ5y8o\kFlM<u>6]1k'c' ‡fYkGgo~txfu6|xuG/5>Է1;!uo}·CdF 315.߼u - ~*o76/lJ˚_764&B B B B B B B B B)8-6P{o7m^6\lak5ʯ\ݯD!!!!!!!!!pdkU=l&}Qwb6;wϲwi 1p}=3!f/ۇ̌hי@l /a?aόAǞXfLײQɋCk-cWW˶6\=O]̞>RdCyX<>$> zw|P:Oó |sXO?z6rGg}6o>YGOc+wvɓw>z>GV?h 7q@@@@@@@@@<ݘmp}mP ֚<|:p՘'8  uU}X[}u5=^4kr1wC󷷷_xܨAc @gKaOl:#&f_(07y3bDB'd:M!cxl&0 #ٍc}U|l֯aW cBg}aƕv041<-B B B B B B B B E,6$\%mi;JDzslio<'B B B B B B B Bx ؘo3J;Z_w`cČs)>˾_A1;/t[FjpH;Wc5{շ5qM^?s᧞5}#Xgm 91O<<쩇3gX߸R5!_kdM}Z|C'rp_9y ăsX/v\j:rac@X߽G`agf Z9G?gcV/cGrYȹZ]sda)h/DW/l#\tr wnd!!!!!!!!'m~y,에isy%Q5 8v1Ϟi_7UՐ.?m 5ؔ]ޥ-#֘KϿVn#\֎k([f=˲9W`5\lꛣ+#<'fcy=j"<7< * Y3a/X>$k=f01hb7﴾~'lkk/8r3f}rY|^΂V˶f6?c1G[wϿ mdSbe*]뽿¾{1J8&~}.W;]_l^=Wz!!!!!!!!!ˎ?|:T7Q־ך9ٵkV>9;;;Vtloo.F{5lbz4cLcƼYcXӇ5O &k| /:s03zW&Bn9~\vs9YrCςks <<,H<{ga|0ԇXze^K.ša]G3c<3}(\Aϵ>r>p&N޼̇:Ap-ݦރ3 \ /B3ƗeMsXLM1Ƶ5C t[=v9o v3#[Xjv,־qY=WW71ha.4f{ 7Uم@@@@@@@@@5\[zPaі,+ |Ikw6?~1kwxژc޵g>sos#?fo;k}kc/ʽ,ay l'F?σγ85>5Iڇo\&U]_z=i̟| !xx !!!!!!!!sۘ_յj~lkQv5F%Qn WA긧~}\}D}lcR5ܛji{d|>vO-hn-S-?1|,=4vƗvv_Y)mգ/fګ<-ѐ?4~ !~v/+dHi漼$B B B B B B B B1-}{-.Ҙ>׮][|uc>/]^EnznkF|;)謏νvs\[_fD>Oo޹~V9/wد/fcu4}i0W41]@@@@@@@@lژ/qOpOI=w\\֘٫^%M$B B B B B B B B {=՘?Ku{AsҥEb<]SjN ~Hz[@;bi'Yk<>Ư(z>gF?s6 ae>΀@g}c|&rgeX(E?|lcRNH0edS_չwF ~ě={b#2{v^cN똓1V_u\(a09>enb'E6/nʱ/lV/m\ҘR6!!!!!!!!!Azc}nݫ1Qr~,QB B B B B B B Bhn5o|ni_ͩ5ӫH4Ϟ#Җ̗c3{aib>׸W&m556m06z%3yq]`CDX?ژg1D/uR3/g de=g|?:L1\dO׏5bL|;DǬzf6S3Zx>O?=1?vqG?\j˷nfN _q?\㣹)|OW}47UCv!!!!!!!!!Om{5o15;1~PS<B B B B B B B 8[3+ \wۘK_| WLۼ~9캖Ѓgi6硌6!g9j2 q/h'?gF<45|,ɇsCոz֝#cl^X&Ҙ^!!!!!!!!":ú!Jk[ իB|_p[Uՠwr^}6h^&"џ5ks tgϴ*Eg3;>{ɘq:g,j'{<g3vxQo}2[ 5^}vɏ&1xi_Hczy&[@@@@@@@@@=WCcC35ҘO\@@@@@@@@^toec~V~u1x󷷷g^|zY kzi$dh[6GƙxzΦ~sɏ8+X73ل3h7ܣ޳jcF=_CxxAGxuD3;L,y >klEQq#S܏yƳCVX'75.ٹԑM"LczH3B B B B B B B B B`]BcgMp#:`w5חA?]@@@@@@@@Wc>~}|f\_e{6$f/}ˈGVǞ5̞cΚgMf1A4?6}NkϤ8gFOmZ*T˖&uX3akF ϋ3vRgVCykPPK՞ ;ek\u{zD6@{{}u=5}i0;#׸rG|41C8ۍu}n8=ﯽ!I',B B B B B B B B OBoߘOMiee ‘Uo+>3.N1؋Lc?k/%X zswoK^?=ќ;{kf ygBvl ]t- *ЇSÇa- A@n}s,}otcc?r0sQ.yx;ouU"C}P訟HWu7j}|ti̟6B B B B B B B B B Gr]43C B B B B B B B zc{i4selC5oS_G)a_1/EWO;WfO:a߱q:f}? 6Y[U?qM8&gS<[x.ǜ Lن@@@@@@@@Hc~Mc| s= 1O,MIC(l"׮]ճs+un8ƥ/V9?/ӋL?1Yxm ΃Xۈ_&1oM#Hb15{[{sO}yg;_]c.8p!x X5@ƠCEMbs//=ơ_y}ԡ3zgsF5߽/keyS'=v8B_4}r޵mNƣG Gen9SK\3bLyzu޳K Zgz/ /wد5ݷ9ooA=,j_߅$i֘?˯F"B B B B B B B Bl6ӌ/o5s[[ow`jm(Fݺ[Y.]LX%g}ZϻxԸWb)a/8j|n܏/c}b>61n >ö<76{g>:\{=vsPϞO6cZ6ZGEԳK_A=\>zuIJm֞x[TMg^c{Vヰܼfh/w,+8Icp9B B B B B B B B @}#B!!!!!!!! @cvFUӚ$Oc>]ƴs[[[νVy?q6{̚^dl?A_=ɬӛ̚X{ͧ3:lk=͌0mUcB~r"gƎ=ćX:O$Bx$`p0?=lv-~<&uOk9`}k'2ճLJz_59&1vKdF5bQg`F7ei"C__Hczy&[@@@@@@@@@ۍ,D%O@@@@@@@QHcT7{cuwk|XGFǰYlO??}ko Q|jJ}sԷzgm 9Yg|ܫ+"?k3\IBǼx0F]xc:0kr1#Pk\c볷>kc{t=3Sݸm[zx?\Ys&ٵˬP5ߺ}-3?}4=1<-B B B B B B B B E F8@%O@@@@@@@HcX71I߯AcO=RFq zղ73ӛL<ȬĘyiO7{k'<?ֱ{&2_=$\<zd/*xA  ;cFƒG[-z ۜ@Gg}_b`s틥8/3M|A!ga`CZf0!XY>guoriqC1~Ƣw!$|n|adWNjV׏}rlW.qÞ莓c!!!!!!!!!$Ҙ|>dw\vW_y܉ CHc61kk~1uwj|4?1_p>df}F8Ԏ1:я{Ϛ5͋?:UE^<{yc__trI$Cbdžkb 3 CꋞXߜo-Yq&1o-sgg ksSR-zgZaοX_y1?Տ{D#XFo-fϦ/];#FjqqmO>>?t!}gjk X重\ 9\ҟ >{&yq9yuQsgl9(gvM=K>=pc_Z4zkXgY߼ơ׎m|^c[E/9ô>1.ʁ-(Q?_|FxȸsuΌγ6l0Ǹyc >u<:}ǜh{,#E4毗g@@@@@@@@11] 8i4oom.\8/_4;==ؘ;ee?~AsϘ=gؓi:omX 15}&|=c3cm-?ty y=5f`԰uc@wh1١T 9|ǎ<bx.aG7vp{&kW۷~!ۑ"參Z]|^wןsOݧ1^{!!!!!!!!g@o?!!!!!!!'@UҘOK.V'kЋCL"#\Nڣ<6c>dE_ujۿ<ꍡ>fzp^g0[^ir`gkyʥ?kf<}Z\,te~!5·XTaFg_~1K7o|Ȇh/uدk]]7}i09| 8~iwi?^*@@@@@@@@<>4jS󷷷f^rIXIp}h0>ٛ~1Y#/eo]Q qmΰ>~u[!P#F;5L |7oݩ|CKazt^9ooA=,jtw٢xzҘyӘ>!!!!!!!!Ҙ?Miښ]߭ޫA1} z!3#u.3Ck{b3]vF'/:M.c]]-sA-wk>֢ %Ӈx|H|< M<{ԲȉN94rg<F6/*}i_/d uHc~1] 8 iߟ4ooo/zF mw3ۨN9~瘹_d;0ej60Xc c;Y|_q歝5G6/-})i_/d uHc~Nc>P!!!!!!!!p$Ҙ?Mi /]VFj{L;}c5{KʾgM}\k67:b}[5}Ҟu͌xC3o\Q>->9 !"}9B B B B B B B B N84;b !!!!!!!!p 1)IoېJ2bvُ޾e8?Ab s+>/:ϣ?:j0;yͦ9jҏN>ÚxbF;:3+B} sZLrxð,{5ž]ژ}a4wZ_?rMcZ5Ɨc >\>/gAge[31ϣ?_;i܎lJx1]_7ha.ѥ1{N!!!!!!!!g@o?!!!!!!!'@WҘ= oIoԸWæq!g$=4kL1st~Ú']˅X5c}j9f=P!f?ko {!g5C xR9kq$v=30>cC,=2%ŎaͰ:=3{M!2ye1/|/߾sz]dczhYsSﻭԟ4毲/.B B B B B B B B 6@=o7s@@@@@@@@E {QMiښ]p:{5נ_r=+%Y=̣kDA0><[ ;ksC13j[ ;9B0}ĩ35؛bC'@#n{pfsaShOzַ8lq= cE(>`'1&][<:Jnhc`>{yNlکiZ6l'2>b}AO /Ըsw>&h418,B B B B B B B B F Fx}(B B B B B B B B1Ә]/Q'Qn !Wa߱{YW5ό#O^~lUſ(@}㣐gޜcA|.ς\es?o-;X(2 LJ[_>R5ܛji{d|>vO-hn-S-?1|,=4vƗvv_Y)mҘLX44D!!!!!!!!GA Sݔ|qy߫q z4 _l3 7=_ٷẏ 'bL5<:qX\Lx.lqnm*O*4 CrXC]>kƇw<#~:Mbh/"7y=5o#>p_ tG^{.3"k}7\BʟJ4毗g@@@@@@@@11] 8i]3~nEͼ1N ~Gz[@;kLӽ=F_17~OS=gXbNƓXcCi>r3 3Ysk<+kǚX|G1/:CgpBu!6/{D ν3z#1ٛG2sZǜ̈D1@99+;w?!,Ixqi_Iczy&[@@@@@@@@@ۍpJ#!n`cu{5lB䲡6m06z%3yq]`C腶~1o?b}_ =Υng_04cќB5CMé?>!1맞YFePaC̓O;z8#č [~3f4毗g@@@@@@@@11] 8i4f.fְge} {}Iھg~d{ѳV/A{|mbz/M.slԳ>9잼-UӡW?jQgv] T4ٳ4Pj3uen5l4~Ɠ`ןx~3#gsc>szQj\y1E6/,}i_/d uHc~Nc>P!!!!!!!!p$Ҙ?MizfvoI߯Q zi(>jm4/S|.,=&F&3#Ml5YcG?3mmcpu fl³6{c晚"ǬÚ~跿}Ճc}x _5@"D @"D  $_~._ݛ~λ?1"D @"D @"pOp_gϞ]]x>5ƿCX.ZdDh%3Kypfgy&2>)~zuث杨ƚyI๹֞3f̜n7>Xk).1t6 KdZ?c~R~ПLY;rue?lڵoǚqZ(_m!@IDAT#D @"D @"ך@w _O^"D @"D @NB aE CSc\/ kux14l̬_F2܇5gR_mpݕ5wԤh2o?7|Cw4s?6ijMN8%P᥼>f/:Re&ro9:|:SgrZiއ349rF}9Ǿ؛x+מD潬]>䏏-Gxժ_߯x@"D @"D 毿M'9@"D @"D` $?0̙3O_CC-5g10c73|?7ϊމ?9+g<=<>q9s>X_yg?ݑQNmEg?^ g^0m:PM\2ck9 sO1X:sN=_k50|/Zs˂ط+!dC`yy1koc_0?a|I"D @"D @6 $_0s.@"D @"D`$?}0{<|{M_GWh1hq131jV_͙Ē._g&^~?O i5.kg5{[>L\3#>8;yS>FM > k<}0¹v[=wa-(@KÈkkޓٟ3Cc1{'׮AYWZ ?Z0 7?I"D @"D @"?毿M?nD @"D @"p+2ѳg{}t ~1CSء/&-&vX SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%$y.:B3,y 3b1s_b3G0g'{cgܗ3k~_[\b9F~1w9k_]7(7v? CAH-y'OIjD @"D @"!0oLvD @"D @"[ $̿7?P^3.\)yS,X|n{ƎGܣ&8[ψ~|0y8Z5r#_w;a֙y_|.{&7BïOY{7cbK]+7/K~IZ%7v?Y|_wYD @"D @"D#0=o3XD @"D @"W'0xF"?s}Ͽw1^/]1v4Ŋaġg&35ꑉ3ƌƞsֱ~cgK3o6Y;z a]6ϏczHY\k;UsW >&\KY='\gτKrN}|Q\KXA?g,z'{Y~>ɷkY`G|$l,/j߸X '$?#D @"D @"H>akQ"D @"D )$?ϜY]p=ύq} F'@WgϬ6{ɬ5Fz1lQûcug}̘ ]51X̜cv=!ï5\k/;G\Z`> ~3Y?{ja~ eڃ31l9w%2q30;k_O7xybn_GZ"D @"D @vE a*a>QՉ@"D @"D Ouτ7}jGj13cch$d˥ }GgcZb 7P ̙]|$x wRg"D @"D @"+ oUD @"D @"B aXE̙?n1>~xcjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{Q]ky? 3cxcؼȉ | $aڻs!zoM b 0v,3ϻ7L.ffMjq_krݙeZ2<rߣW^x fD0o$anyV-@"D @"D "0F8a>PՉ@"D @"D +u a>; c75br ccHӭF<9~r6簷޳Ff^Xj6vG1;k59NMѹ3Aųw'rggP}g"~Q `11g{F0/%anyV-@"D @"D "0F8a>PՉ@"D @"D +u_ዋ0qGU?V~=6YYzkr.gp]̵qh@uȥ?q8[q[sM?~ ?~E&;I[U@"D @"D $_NTu"D @"D @ ca3gV.c vErfh9cVwૄoE @"D @"ܳ毿}ew|旗uo~9~}]<@"D @"D%0w/_GϗyÊ?&1~l⭣ټq3X.g ?{|sbZ0{'D gs z'>Ĺ#?q6 ީQ`ͅ"ac>$)R% {F}l!+~r'?}0k0aƬA}gtm/f>kMc<~ʵ~_7rv{񏿖?#|[>a~nD @"D @"OG &t@"D @"D!0w/|$o}{M@!F^-2ƗjgaW+MMbsYl%53qލ>Xlt̛]Ko\Oy>,g%+g?k}k0CysmMn|ӳys6*0cƳX~1_>=#EaykZ7ׇk<o 7@"D @"D @^{ &?{u@"D @"D  $?վϞ=й>=Ƌc#Zif(+ w%95u #Wf.s0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ1o/_|S' ~:~y/%i0d}|-g9"D @"D @"׏@ _`#D @"D @^@0̙3aS/3 1{^239Zg |e&C=갍g&N=3k|effz,;?u_=4Ϲ?rYc-9腟XڟX{b2.ŨCyY/^cQX#d5gu5?k3o=x0?xW 4} w˳j@"D @"D 7«DU'@"D @"DnH<}={vb7}v .vKI5 ?ƈcMcsa=r֝S3!8bޘjrǚ83=r1cwGF;5/d s֙xΌ#ǽPɱrp%qc%*>gˣRa/;᳿8pG|piٞ%KI[U@"D @"D $_NTu"D @"D @ ca+z[/w1>>cg5{_RS7m~E~ucjٳ6510oy褽뚙>;g߼Zb퍓5wjAO]0 š<Ź,ޗCs\õ9uɡ?< 8z[H 1g|HZ䶭]kC<?#n<۷[a ߰@"D @"D  $_/D @"D @E=x=ώ+HE\2ث[f1aM5sΉ}Gf>l[c,7#>'g>z'= D<=Om9uxð,{5ƞS. fϘ}aح8jm'c1z0Sr}\g5C+ngE`y%y1km|>aK_D @"D @"Dӑ@w ??=s"D @"D w$?]0ٳ =qgxa EYff$cj=LJG1L:<{&vO3>jĨmr=oPû ܩ\59 s=ƹwa|0v [˺7Z's|k}obxNo\3Z汷,?g~cj0<;\viee{CVo^ 5{8%f0]ɣ]"D @"D @@ ="D @"D @nG a}"?sszzcF\1 It7uΞfc\&F~cytĐG袉6޽8kca԰:p٫&O޺̧6 H!řn-ř/߆f/=S˞ְ8ZLc渶u聏x=f g|ۃ=9}V1o.=a.Vo\,amW@"D @"D x$_O _\"D @"D @NA aEGǍQ}4OcrӫG>Wg kǙusg듏gݓW3f񻶿gi7˹Q W3X|*lEC<5̱=}yWj&3K?gO?əX.1'z z3?9>8ƻ]'?IhOY;YD @"D @"@U}*D @"D @"p$?a7}vkc FCV=zbƍ1gGx9SA>̺=c6X|ˣ(@Qo9G5}0˻kYouɝOl4ۅ |Å/X>Z|۩A|jS{ۓ ɷkΉπOg|=~ea~Ǟzi?KTx w g"D @"D @"+ oUD @"D @"B aXu0OzƑom[8e;״51s7Z?~l f/?zpmb'I/.anHZ"D @"D @vE ap]}D @"D @"pW$? }a E賀|MA9ٶzYKf&{0z3 -}czkđ&zp/1Cy;3Xcs.~XONk~/;|9x`Ec fq5WO]=]gucy>?f1ׅW}CP $H[U@"D @"D $_NTu"D @"D @ cajŇ>0n/f2~[=a@wd45~4ɞ0g%=gbz[/M-srafump->qj==9̮tF; ZYsy<}H|Y>sqd^ęO=ƹ۟>\1׳p?8McW/ݼ2G>%H[U@"D @"D $_NTu"D @"D @ ca3.^8qgh%VG]8ZX/,caa74wӻ.51r|kr>eΟ8DI[3.Ʌ} !5oKbvbngsMcm/l,o[ڵo_9pg1{g(3O~k᧧9[zhkމh̝ٛ k]=cYÌuoxx/Agx}D3;L.u ɱ?k΄c,X~p/5O?p?יB Yy?s폟ΏՃn^&˶]k?Z0ۉ%&>@"D @"D x $_0/@"D @"D$Ok_?1=51QVp6Y#AjB8,}^rpirM?{v_P?>va ϧD @"D @"D`@w 7?"D @"D @@ǾϿw1|t|ɌsvY3a?k՜K,U{kr~kwoK]Ġ持Q?h9{{&~^ u9τɅ9cx<⃏S?uC`tðk`G C +h5sւyO_>9=o99ԙKIbc-.4"RX>!~3v?!G9YǙf]ϳg&;Z| }iƐ/?r Ol,/mQokZ |k<'$@"D @"D H7a|&I"D @"D DWzϸsch%$byW@:qOOB|0}gQ>aֲIA̿]șsnA<%Av%~'N| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gs~!̿viee{C`yً~Jk>䏏-Gxv@"D @"D  &ߟd7@"D @"D @[a}C^ώq~9 71+GlX.k|=lgu8s\=]EoYG=—Zưwm?Am;s~bىIq181o gx\==9{~,7{GιfG_nrq#d1ڟwzX?/ {hԵ~r~hxD uZMpcC?_y@"D @"D @^? &>u@"D @"D xu g/3ݷx{M11 #hGSFzf8SӬ8camXn9o7zL4voj㛵Ǡ5~j=Zouϵ^u?zc̅> {uLa,E]L?kϵoy~r_Ǟ|u]O ƞ_O*%qM*8@"D @"D fE @"D @"@0̙ 3nP[1kȜ1b t~jYG̚\Ycjg3>f59[~W͌Y0Uc 89Q9Fkܓr1ߑ NPŸ}tΥc@I=5`{gO z_=8sCO暞s_"3~1kX<3_̿vied{C/u$-ϪE @"D @"D`W/UD @"D @"A aTLqӧxq |Tx&C:39YMijO&ر\oчzz6E,f.k_ Os&>ĸ7\G5|Af|6ZGo ީQK0{>n`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FEʵ'_/%'-YD @"D @"@@U'@"D @"DH<7~1Ma,G&yZKcEl,}33d"fc<ϓoM5995>ɻׇfԘ9X=~l>?.?q۱l~)0 274:уކmMc³/\_~x8s틥``0oK?Ϛ^c{?t9/9anDZ"D @"D @vE ap]}D @"D @"pW$?{M %$3m}6ze4 bGZd 1n,33fhagЇ3{I[3cm SK# `S:aԳyĜ,~)Kq9k1 N?>6q L~[Yaam<3u]0cŬk3Y7sÜI1uAbό0/%anyV-@"D @"D "0F8a>PՉ@"D @"D +u_gΜ7Fx}1Ɨ!3sΙg|v|1qKO?k7׳?>g.XeMo1kcϰ?3={Ό7߉͋8q+ RKr&(.>9<00X cr1q3b]n֤&ޝY6E,;!G}=z'oܠmOx wFg"D @"D @"+ oUD @"D @"B aXG߸c0zc~/!Y3+&g}0y;f4Xkc̜0.gs{o=k4јk݌kc~c:VݟS;sIęZ<{q Wpqx` EwI-yA ?{&3{nG'q ?̮Guó[-csgx wRg"D @"D @"+ oUD @"D @"B aXE=}q |D?>^]5ccޘ ̛uث&8r{ڟ 79\7 4~{P\gΉu9glݱ>a_D* gƏF3fucIJ}%f͞Azm{L ͻ眱h>s.f6`cι>@}F>\ Yg,5{B5 Kkk7o,coCR|1﫟=<'xjLoo8>;9x nJ>X^+~nlZ7ׯqa,3#oY J=^"D @"D =K a;ߗ_f^a~y^w#D @"D @] w"||騮@0h1cb*&:jGq19]rfӟ_G1!>o 㼷{bZNp6נ{bC<wj5|\/9Cp"^gԷvxNb߻.^>{13Af7|Fb ?k4W\_gE`y#y/k}mǚk<·{6@"D @"D t$0oOOD @"D @ W"G2և/gq} b"c|9FysF:dsk ]}r~yCf~p_3Ϛsl$<댐ŬφX\Y3ݨﳍF'ϼq%vA0Ěr\<"\|ַ1j8==0gk3k3ffV@rZ☉]S 2"{E/8or>dz1='מsgшbs}ɵ1GrxNp}h֞aac>>qBϬQ6/l& 9g؟8̾0~9=9#1y!7ux [+7y(_i 7G~r#@"D @"D x$_ϛ0 9@"D @"D $?ѾϜ9xa?5n=3!3cuFXl_f2Cxf3Ǟ\fjr~SCS k/so,9rO^;Q(+\>Cag~05 }o :B6[~Q׻QS?>8~l>zp7nxB} J70<D @"D @"]H|#JOTu"D @"D @Saٳg/?qg@@2kgTSP9c89f^9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qwd4SBpsf[xƜ^ZݾYD @"D @"@@U'@"D @"DH<}+{Mc=Fnx[G%zϚX|x|`vͦ5rCN=1Ú|rs|콯w"߳0LcfS>aϚ< {!Ycy0`ݺvr?1 Ψ ?Z>/wgel>qPc??1\rp v_Wrv_z-#_~;Q>޻M"D @"D @> $_03G @"D @"{@վϞ=Ѓ7}vP4~ 1ef_L1Fخ9s|qÚīˣ'kb.>k03ÙOFO'{Zۣދřn-ř/߆f/=S˞ְ8ZLc渶u聏x=f g|ۃ=9}V1o.=a.F>۾OQs-V?g#@"D @"Dvߎڷ/gό_?8nǗ꣹,zb~f*>qh=ELy\}~_vk5=Wog֡gϝO>Fy̞vO>_g̘95 6k??}Ѩ}Y朣ޚ>]Y,|˺k'6„@>䁌,g p-> 3z3gesc\qe>9z,Ysvnw\gex`_E>忰z|;~tM'%? b#D @"D @"H|#J}D @"D @"pr g/||@F4X191~&g+zas?1E{??3w,7}.}&rgqoG3 ܩ!VA䲘^1\?pMw$''}<B|sb3{ϭ{oc1y^駟Y_GOз~=k׮~7#/^ M[ w˳j@"D @"D 7 wN"D @"D ]!0x:Wֿ¼z'6Vg>PQc|~m1c܁1{5ɞͱcm5Q=zf3&kA9i=jY;`9g೿9֤|Wޏ5f]|#<6wa^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59G_$io\?~}>V_j?/WׯͫezŋK[ w˳j@"D @"D 7 wN"D @"D ]!0xۚ=?3ng ɛr !1mFL>a6pgZh3f#Mk^b8#xkp/wXg\/&/^Nv14s5x? Ή' >8f3k z؟x?g}nj|9~i?m|惐0Xg"D @"D @"+ oUD @"D @"B aXGZ=|>=Tf2~[=a@wd45~4ɞ0g%=gbz[/M-srafump->qj==9̮tF; ZYsy<}H|Y>sqd^ęO=ƹ۟>\1׳p?8McW/ݼ2Gݸ꛿ ?W_E#Go?~o-Gy{;G'~>o#?߷m01nHM"D @"D @@{"@"D @"D #0vT־}9szfvA9ZbuԊňR19ƳF̌6/:=YsS3mFQ>k3KFfOsg=8ZR#gη&]yMO<\߇>XFQ đG1&1g.fmlp~k35yns|]lX+W]zeݛ}?)_W~7V]gs˾vGw[+k\r?yvG~wW $̿WT@"D @"D t#0w|旗wo~9~#F @"D @"ǿ}={vu7nz chɣ%F@k/)q̞|4G5ΜgokcaO'Ǡ&k1s'E>Z{ܞ1cwaƺ_{O7wa<ffO<>_"{ &:؟5g1K{?8a'Nw?Om|xK7nkVZ⋫}[mo{/_}~pj_W{_%o{xuܹss?cu[bpٶk\5_~;Q>ۄG @"D @"D 5|֟E @"D @"@i0>0Ƹ>_>*ci&v٘Y-5efk̥>빿>+kr]I-4Ѭe~o%08h~Qmg8qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>7W=@^f}?{W|cwW??vկ7}JKX}/|x.?w%VO<7~oZK~~JuOۼk6ׇXOZ'D @"D @"׎@w _\"D @"D @NN aEsbc8.$:fDj9ceL9̘9 {5wOY6=f9Av}9>GƙwO>ywdS/zQ{aC"L|[Tjh,̘=ÚAܓ5~L1va gD @"D @"- &̿[F @"D @"@)0{<|{M_GWh1hq131jV_͙Ē._g&^~?O i5.kg5{[>L\3#>8;yS>FM > k<}0¹v[=wa-(@KÈkkޓٟ3Cc1{'׮Z=;V/^|MkW~\}ov{, Ͳkc>W_0?a']"D @"D @@w 3M"D @"D @n%0V&zLq/ch;Ť>Įa꓍X#^Xc];"l,gL}5k~\sC556>g//}RZ\hE<|C,6כ/#g5BcOr8/3ͺ?.g%LwA,{:ӌ!_?}_kb~/9*^zi?/VkW}+~9_~9nx^^ڢ,v_P?>a o~E @"D @"D`$_0>$@"D @"DV oeg[f{' Y惃ՙlv??~1ύ/EFO̅ bI%xbxbC'=oON\| beOX>kaqs_dOy}n]s}njߙ:c]Z?vӫ}?_?yՇ˫~d?Hx>گu)չ|꫿VFhu|JJ<ǯ]P?>Ra ϟ@"D @"D ' &ߧOew@"D @"D &07{vk7D(_H)Gg~>7Y=zdcrYlg?kKgi'=<.z;:2ky_s jߙNxL\e1a8};?>`<K-a#䜯;֙/>Yw b5ɵ?k~^s_O7>s-oZ}g;n;o=`ϟ[?on/wT+/hô(7+]Z[ MI~# n:[E @"D @"D ;|.D @"D @"SH<}?>7 cc+FЎX=>8iVLfmXn_~]eԳoGo7k5ü'kQo\g$~Ы}`.䥬ϞOg%FcB Y%|G3G=㽬me??>+gMO뚃߻ڟ=q/ًCX;w~~ruz_ |_MO}qw~>VbK/)wmwnlyQ wJX"D @"D @vF a;HU(@"D @"D.H<Խ9x{Mjأ=f3f5&v6e֘ifnjG fֵF3c 3tĘ? Ncy3s=$\ >wdB"`p1.?psim+aGvf b ^mޗiГŗȌ_#=k֣?]Z?<}X}w|n׭~ oݿ#⿝??o[7rZ?6Y=;TD'Up"D @"D @^3 oW _\"D @"D @NA aLqӧxq |Tx&C:39YMijO&ر\oчzz6E,f.k_ Os&>ĸ7\G5|Af|6ZGo ީQK0{>n`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FEʵ'_/?~_o߸KC_ry_PB}oʝjKN*t&%?M@"D @"D x] $_N~ kD @"D @"jOh[o.'H:88X99sg@?*I^)h=Ě6|ȬX,[SM7{{Nu0j9=w.'5|έ?GχϏOv,2*yJA  ;s0ͥgcya[(b 2חC\b;ˌ9><۟/&o=빱~ݸ!v=m߮_ſ?_տj!?7|o]Keo=s|^r]]g"D @"D @"+ oUD @"D @"B aXE?x[/g10_B2+gWFs F1qEf r<3oFOFffϙ}8{˳ L3U]3x&Dx#!**&KfD+B0""7/@fg)(B D.Yj"ӗNץz~~{t}N_><~{P;c} XRAA,l9'78g0gc89PYp ĵ\5PuoV3~ꋾ7.sՇ?8ņ޵o\7{]}g~-"ܾ//~70٢ոЛ7w5濆nW@"D @"D  Ԙ1W|"D @"D x1g?g>3Ƶ17y ɚfrG mm갧~fzfm5zj;cczONkӖخᣍjˌ'{;I~bӹ3EZ39xAwM;$<{X@Yqqoqa~?L}۸o6ozf[q9ܽq~O7>ԢGK4zs_cgα3qC9g}e6Xr_9lDBqxQ 6D>3̂3#~1 pf3:k] ~qFck@>wnu1=1W,&y?'a||>ݡn^|%_+|M7aV?|fշ~w-{۞y56ƍ}c6@"D @"D 5/oDVH"D @"D Ԙ+*kݾ4>ujuܙFUOA, ^D@ΌefΘ;Ŗ|[s g_lدm~ϘX|{bGmv1wa}w<;c, z?FP43-veчP9c m?XE؛@?fzճ'`O,ę93ƅ+W]q޿WVuX/`_߬>?Pw?#W~[3گ__wv𗯾ߌV?k ۃylW7?K"D @"D @"/j_Y@"D @"D "PcuҘ4Ѿjaئaz?ƆcZfco{G_r[rɭГoG1=vYo =p-'l8c|5Q݉`'0XS6 .9%b\8G񍳝8Vܚ}c<1g 0# ~G]3y^ܻ_Xwt/ʻ׷wͥ{_/o_=U:ߜ='~X}C1WW~E/+>s>u[>c2xh}cu +D @"D @"j_gT@"D @"D 'Pc17>xq} zzix_^d(ύac2{YϹE_yroׇ zaC gǞ5l~{ 5z< E[D_Y3cgmncy|1=ozUEo//Bc̵1Mc'|mo fmU9vIGGktPў5쥫]%?G;sW>prׯ__=|Ϝ|՟>[wnkn)5c^ifӣlP-vC2M6_p|gc{i7=fziW7q8c ׼p gk"ޏ3vvx9Axif/st^FF={#ꌭq(s~2B.kloc< c׽q >33|!6г|].n?jx;ܷ_ ||]㏉VO_C;Mwt7g"D @"D @"+5/o]}D @"D @"pGԘ4}i?u1Q1#A1{>dfszi,fcև [{fgf=˥F'.:M,Ϲ\=vr'kfkC[ck.ߖlWBFL/e<_==X.gD'A~;1ul7#S=:F8~Y{g퍇7ÞG\7,ӻC~g\}\u|c>ߜ?˿Wzެ~/Պ>cߴϬEw77~†nxP5.M7y@"D @"D 1y#\c| #@"D @"Dj̿%E/{FQόAc .v楤=6|n]۱ƇcL썡9ra;'rv=EEG݈=5v9g:rk~ _ϰ-!G`:cϙv!訋!9C//vG9,6[93XK,|r|1.<{1ߕgW?7~dL|ꡇ~'WYw~{_=gv=}q._կ'^}?LjVcq}t?:,"D @"D @"j1y#\c+g"D @"D &PcѨ1_\1*}fA1 iW~I޳Ͼikg,=b5{p67:b~՛5}k~f~=Y{E(Y|'/z.cr!)a܋ q8~;.>ǚ`G9{99ǎsfwl?z쩍Y=4ߛoɡ W^{ύ"9<+/_YVמzV.|ڵkg?p%~7߸4`(??޿|ٗMo\w}/g{`ͫ8U,䶬UkŃ>y.?Ülo5.<}G"D @"D @r5./va~ay{=[>ѻW~"D @"D Hھ4SǃϾ}TϏA?1뗐^=֌Y۷j1&sαEg\ёف7ˍ~tXkѱ^k߳{'<e db6 3fMίc\~fpF<e~Ԃweͬ?vc?G7C._8ߵ?X}w|ˮ~>[՟ss˳[) ?ogu#ŃYls}kGbя_0US>oQ @"D @"D M5֘#D @"D @(ƻ/O^{Gό^4N2=,33x1I1k~ڰ&63Iݜ5s~r1|V!'Blkf?0ugo{!`nW< 9rέx1ƶ ˸חXǖstkyaoMco\3X7,#?gƳ>f7pۗ:}ёqO,>q%)y^[8Ѝe]P64}|hǟX4"Bǵ9Ct؛=c8]gF7Xt"Fwww~տe?V<ᕾ._eOC7?qx6/~~'^T=V }jC?#?ra9٫7}<|]kqM•q"D @"D @^15CGD@"D @"D ' Pc1/>acb^>'fgoǎcriyd[\pO{l|cܵ{{ƌc~o>c p_pR,=BG| fo;kDmakcʽ Ǹk㣝Vbㇰ3%ks'ur99; g'|3>b~A箿#+o?u߸\[_rG_C_zۯU/{ˇ18 D @"D @"1y#1gE @"D @"5 uO>3sc L1 OZ\H~ftG2CghXcyGC4qc>ؐx/kAg,ֲo7q-$ۅ{!/b|l(؜\H{r𲮇jN 9#{1sf\m?|އsO.x>n.K|Y0[4w1V5&쟽w꛾WgϞ=ܳ|˾+u߸pJ/xw,X"D @"D @vFp;D(@"D @"DN1hҘO?KcSc\ z4 _l3 起7=oٷy2cOs?sX:> l9:}r{y.δnۧmG'ܮЬEER,bچ3kKc;׈Nx P9x>ԇk$5ؚ;SЙ{ύ޺76̈|0֏|+AX^Cow^{_Ϯ y5jYD @"D @"@w*N"D @"D !PcXp_kg|G|9zD?#sc/]~=eFUyrǾW/Wo?Oxhw Ԙ[5g"D @"D @"+5/ok8@"D @"D w@GcݟsTϏa4ˈn{>CÞA߱g$sm3OOկ_cxf,e~j|,gvO\բC`g5v"'6cz,O&].x^ٳx͹xA/OcN7|5j-w˳h@"D @"D 75UD @"D @";Bno{6^:u .7NnuwO1^bmj|-- K{ў5kc~ѹɚs=k6I[L45[uZ8Zg7&s-&Ʊr2P$1{ 7Lmfvln%sL#mQ/g͙pѳvb~#Ssb7?zb;;CW^xd0.۲VX3>N~Z~՘M}"D @"D @"J1ηWWD @"D @"1hZҘOo|w1G}x1ivܿL?4,3;yXs/YZY\#XDƖa~tz'&׋ vԨ|汇[c&9@ EY:f m 2c-\ڛk3g<8".љ7gp?:x֋-gg}댍aaG.]~ "<[̈> {Շgޱ'?>$>h#{s 4:_~ g֌nKx2-<{sP tηցJll1'yX3asF σ53{֟YAg ?1}r'/ l¥W/.cUǾ>hE?~-?ü]%@"D @"D $Pcov@"D @"D EǾ4SǃϾcT|c>}żdqO:3{igm5gb/}~={5> 1л7%.zl持=9{s~fz㘇s9cXXAىO`8z /FL ^XQ:f܆v=5g>mots }?s:o9#>ę=B^g/]ybdo,~j1\4Gǯyט_c']"D @"D @@w5gJ"D @"D @^J2Qguw 1>c}żTgo1c1d8ǖi^GX#]c;QǬ-gji|q\7Am{3{"ޜEV1ͰB6p>"s?m3arzÙ|p)5Qܕ4k4Ɂ-{:SokOe_toֵV!|0k$@"D @"D 1ηLVI"D @"D K ԘR&j1517ߘO/2ļYxm >qj!蓞ɏ1oNs4K[ٛ{{:'5P/ lKX[L~lKp Ȭg尙/:Dh[<5G;Y3czW_lFz1w&>g]\do,{,iZ6 #ǯyט_c']"D @"D @@w5gJ"D @"D @^J2Q?gu=3s(o3*^H_Jlf\;fGv,5:rlgbvcϹгc~m>a҆kYv9dv)ȢϞ{ApX.б5zc _?ak>cyS=>elW/잱Eg\}[At ~XԺ 7pkScpeD @"D @"W@W5bE @"D @"@GCۛSVϝy}c\j=fM/2gb={f{Y75Ff6v8uİ6}7oo43blja`7W~AvrC9kԉ zuoKp;A0;ԇ-m\&uo `Xȶ=640rr6Z||ܳFa }}8̵04A=zs/~3>kg+W sr}5g"D @"D @"+5/ok8@"D @"D w@Gcݗ|Mow˳h@"D @"D 75UD @"D @";BKcS7y|T1>xP1_RR}̜sf3:٦vt1vƞs~73?:g6.k,&|gsXg}gFzs-rl- $"9 kkч sڢg=7&z6h;g-GwXkLέY6-yüƿ.\z7Hd}"5g"D @"D @"+5/ok8@"D @"D w@Gcݟ׍J dl39룆66Cum?3= 3b~laomgMO4b5kb6mZ9>ژokdoDBΝ)ҋ8ogN N;aS?0=1#z23#g/xrFm[vaz:3gs3&q%w7}c}KWsgx5Ԙ[E@"D @"D Ԙ1WD @"D @"5u_Kc#';WMoӏ-Ƭ/0oao53pC-_q@7q%?v;W?s6W_fa/1v~|N$+`c J@Î 1c,9323 mߎgF>sg0Ƽ81c}g;V3|ڻ2/<wLj-ϢE @"D @"D`Wj_טTq"D @"D @ƺ/OZ;wozA63G3fre?96{>k3fb(:sƞyf۱]lA靰A#mg_1gN,&?qG=5L?`qrYGa-TXrO6{r?P-1Ǐ^96;qf9~v|Όqkoܠd,E?7+[}8\~zs\x7W5p׋@"D @"D k Ԙ~ woGg]@"D @"D w/~vҘ4Ѿj.@ðM |:z847aƞslٻL[s'?~cyX+Y{lZNp6 {l̓=4ۯL/2I{xΰ=X/f/OZ{ҧx~ ^>+l9{zm wŎ5qA& Λus~3>:Lo4r9g ټWδl{M\cf/N/'/Y{hڨgo|tvĢ1Y#.eo^Yq ma~7?!Psfs2s3>1zҕј${A,gi_NjAv1ԢOyKRD @"D @"D yk>e@"D @"D j?Ѿ4:ujuҘ̠\o239431Lڇ=3v3F_fLRz&\\X.k};Г55塭5oK+p #X /􎞁 `,3bkc:L6|ڈY#YսCٛaOcW^׍ixP5IԘ[E@"D @"D Ԙ^՘OTq"D @"D @󏦺/OߘcgƠ1azY;RҞbi>5>3_dgα7~G˙{cwO%6ڱl,u#Pc>رA,E{g&&|=+d s/=gᇠ. l n|C`n,G|ocy[/Os:Ǹ쥫ǜZ}(5g"D @"D @"+5/ok8@"D @"D w@Gcݗ_|q7{Ǩ1>847<[!^%z?CSo3=YٜVoyI[Cg o[sdM~X8R Ʌ XKs/.ġZtk?C$;Ιށ9豧6f|ow&rf.\z=7nūL` eZ7/pac{q7oxk>.D @"D @"p1ηo̿?ȕD @"D @^j?Kc>uڐ1tE"<[~Z~՘_Ͻj"D @"D @"s@w5\wD @"D @"p1g/O^{Gόqm _ef/&1^ca헞COf>._]7x`͒h_?fAljd7ohD @"D @"}!Pc=o򉬎D @"D @"[1VTֺ}i?u3 \0$} Kʛ}Ξ3<۸FOL 9Æg9kcc>3jݛ91B 09{S/:r7.'0$#7z g3߆=˜08ZD#6qȁ{=b gt؛=9חKc^(/l݅QX81X2@"D @"D +Fr1ȕ(@"D @"Dj?ھ4>}j|cacb^>'fgoǎcriyd[\pO{l|cܵ{{ƌc~o>c p_pR,=BG| fo;kDmakcʽ Ǹk㣝Vbㇰ3%ks'ur99; g'|3>b~A箿#4'ˇ>w`@"D @"D 7«w*P"D @"D  PcP1h̿Q3c<7 ӫ̰=ĬՇ@o?3:llg?qءC3f}Egn.K|Y0[4w1V6y pW59ԘS@"D @"D Ԙ1gE @"D @" 5Mu_gijcAo2šamF~&g-;8C|쉃c?71gBG~|=Ç~?CXn{/Ͻ>řvz\dBչHE,z[Pw˳h@"D @"D 75UD @"D @";BOcj9*}jǰgez=aϠ3z鹶o's=Y_VXYoKX.3?1잸E^ΞkENlS9ǞXLp]񼠅gM4s)}=^Rٟx0c/94vp=~3#ؠg910ǹucC׏ȳ\Y2G>՘'Qcny-@"D @"D "PcF]}D @"D @"pGԘ4}i?uuξcTa%ڦv""Yӛ̌66뜬9G?3١?k이1~OSuX%.1|fcr>2kbKL|,-ERC:/~[lfV28l36{m晘ԁOam~|iG?Qۜ{8o^fmru_^} <_\֪~sA<a*­ƅ޼}Ej1\D @"D @"@wwwoG8D @"D @".&/O^{FOc8?K/2Mӗ̠/)v̞GzΦ~c'8МWX׏lkYo1#wmݯ'M]`f|"|Ygv_"c~֜ =kX.0:b;?p?Ǚk!{'6c5ǯyߪ)]ۄG @"D @"D 4|k?y@"D @"D 8󏦵/Tx瘞|Ix^ۗ55R+1EO4klG7zbkr8`Gڛg{?lc;N`Xcٖx/ ?ef?pƃkL,9!zcqXg)smrF|Ǽؘx瞠A;/sYks}А?>~Z~yUߘ_@"D @"D j_1ODs"D @"D >1觲/NZ?wojǠCc(.B>f-5g-#/Ì^?б'__}{ùM֏=bn;>g{Os3pfﶄ+s!^BoγK=`iL|iX.qs59'kUD @"D @"M5֘hD @"D @"_j?yKc>uc~Ws/җڳW\c.{[dži1M-7kk7y8N\3u!tX,bteX 5puo!mh71S kAY~іA`?3}3C9#%1~ҕ'֪KAY:7KZACx~Z~y5o~E @"D @"D`Ԙ~[c|&$@"D @"Dj)5{֘Q{z3vW̋Iuc~a9CO֎slۯ̞u55s.ufm~lW5~ߚԦqб7? .瘋q~Yq|neKcQ {.dc -2Ǜv?&1ެ'>Ǚb\e]yHFᏞز73:E|._X&E`yhKf]knG`я_01ORD @"D @"|kߟdD @"D @"@/efWx}c"OKHbGڈ>)cD?I㋎G{g_{{[bv;P~v .z^9/k|BCEc]s}Ly9s-=᫛qmԡ73zgsvјK֪͒Gas}А?>R~Z~y5o~E @"D @"D`Ԙ~[c|&$@"D @"Dj)5ӘјQ3cvK,mػ6:ocΜ[Lvl#x61aos?zty8X1ؓrF{k䜚yb~"5?kkzX?7 {(39c]6?zu{oZt=ߘKW@A7 1DZ65 W@"D @"D xԘ~u_c++Q"D @"D  Ԙ4i?ujuܙJ71쭶c"s1+Vгg7{zY9kifinjYG kGF3#Ʀv}`'<Μ#vOWD ymC}xN+aRv~f l \lcCc9!'gsLϩŇȌ^=k#?w`Fw]\do>w˳h@"D @"D 7«w*N"D @"D  PcT1'x~ ^>xoO4:$;M v,8ڛ?t!F~ca˚3olO=YcglܫƳ|΁|6Z[7oWA8UŰA΍fŌp\9?{F?=v۶HL~"ɉ @xw aK𢬷a(b~ׇ\`;kL>0|t~أ7?R7oklzfro;>!ט'Qcny-@"D @"D "PcF]}D @"D @"pGԘ4}i狺soo$KHfW瘁}g/2kvh7K334c`sf!g@'m 1O,–sr3pz[O p8ߺ9؎EQ@\ke\QsgyXkLf3?:Ds1Æ=š^&s~t399;#._}W_?HkC1<D @"D @"]1y#\c>Pʼn@"D @"D #j?4:uj|cGxo1/%ۇ9g>CmjGOl~i=gM}sA֘'Rcny-@"D @"D "PcF]}D @"D @"pGԘ4ih?ب1A1`KH6>jhüm3T=3c`0s Wo\f{D#XFo.fkӖخᣍymOv~lN$$]ܙ"39xq6S X;b,3=b~g/gƽun;p:g1?kgo\pw7t1'{FXcnJYD @"D @"@w*N"D @"D !PcX1:<4?9}~ ^>?L}۸o6ozf[q9ܽq~O7>ԢGK4zs_cgα3qC9g}e6Xr_9lDBqxQ 6D>3̂3#~1 pf3:k] ~qFck@>wnu1=1W,"1Ϥ,Z"D @"D @vEp@'@"D @"D1hҘԩչsg4;xi93zz9cx,[9zl1hn}cgc=c&b9g gEĜ =B~kvxb8p$,LS|@YӬ>?\ g,5{DB5 kco,aoUϞxc=g7k\v JJ_#pj\x0y̬7Dž|3k|UckwD @"D @"@w/~ˋ]~_X|Oz}D @"D @"p1g/[ߘOc>/4 4L1̷߫WlcO~hf9ǖ\δ5z718ؘ2덡u gs r<عC=v'ޮ o?l\sKr9&.q3g;q<'6o˹5!?yc0caFA|̏;63gY51|wR?/sYks}k^<̷ט_Ͻj"D @"D @"s@w5\wD @"D @"p1g/ socЋCL"#Gyn #z΍E.3K~g>gیU83?9f+MLl{9g,b|6"bϚ;k#w㋉y",z;||[,gŎmEg>kk|c0kysmLj7?:l^CͬxƇ<̈9ǖog/]}Ϙ=#<~jX7 /ka6o5omD @"D @"j_11@"D @"D1hVҘչ<>*}j#6GrZ옱]dm_lQ<?n^{NFln,p@͋yLζE1fv2r^輌6zG_;hG,[?Qe\>ؐx1{S:|lg/]Mx`rqzX4/Nk7ݏO-O,E"D @"D @"1W3XD @"D @"NKcSV-OjA1} z!3#Lc1>d}3cg?3ktefoX.57?qё~hb}e~ՍXs =]3[Xښ[s` 0bz)( M謏r9#&:!6:ad1̧qљ5™Z;ko<Ȝ4?zwݸa &@UcnDYD @"D @"@UD'@"D @"DN1hҘ?6*}f mw3/%)QsXC1Ez{cgq7qġ[`{r|Q7b5>c{IJ\Ľo~f⩟k3nKHpbApQofr~|V|?ga/9;38 ^zqɞ՘ۇRcny-@"D @"D "PcF]}D @"D @"pGԘ4}iWozwJc{L;}s5{կ_RoZ; ;9cc͞>~jyMaO>ta~j|57J'߉ŋ8# @IDAT\pEpp8BEG,αߎf ؑk3DbppN>㜙hk~8c{jcV-}gar(g•sHZr[֪~sA<a?zvb@"D @"D w9|\@"D @"D5N4SǃϾ}TϏA?16ҫ#}gao2m??49bslYЛM~cF?:G5[5XnuX r X{2KFs1߅&vn׎X1X.ksG?b38#2?kcy_jA޻f;}1 K^q;/#ŃYlsn#ǯyߪ)]ܫ&@"D @"D ?{$qfwPǞs5oYgƈX#(w.0Ǖ6 󯄫D @"D @"5 !a[(@"D @"DaKaw|>@Oό_'c#OVOeZ=a}8=>{l}1cܵ{1=c̱?~_^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO~?q'c||lKYGYD @"D @"@ᓄGHU(@"D @"D HvgCqox<a4hݣ'fmXe =Fe.{Ϙ1 h>[sQoM.Z>e]r5+͎aB} pa{@ 3zvj[3LJ9gap}FRG=MxD99??2ON{0!aQqV,@"D @"D G#0F8a>Q@"D @"D xa>-ߌt |dMX#F_]j3}s=ΰ{`"fџ\ag;;>>9ދ3㸷gi{{^ KrYK5ga}Y۞WO5\sN}|>s﹵{/o 3&I B$?.ϪE @"D @"DX/'?:@"D @"D o@Xu/~7N/v|\?50|ϗh30f#Wk>1&\գgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bnsᾞQe六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X _̿{xbe["K70<D @"D @"cH|#0XD @"D @" cݠ0OP> /$_y0]23y[uiahC{Ϙ[g&4s{=ýܙ `]isY|lt\sx9qsqPgE/28'cg0㘍ϬqFBx2a8o3>1󨏑7n?PՉ@"D @"D x#ƺawr1C4e[g; M2ku?dcjֿ~ bO晵سKS\gj؟=u];\FkEObssN<뱼Qum8{\9eg}|@9zְ\c/=l4qSqnѽW(^X㾉YD @"D @"@@U'@"D @"DHVܹ}q?1#(GKZQBq_X=&xh1&wsɚssis5.YgmfX00nj~;{R9s592kj\l|B >ƚ7B.c%N1;1&1g34'=fя}|.[GlX㣇wy{Y]wB1U㾕;$+kD @"D @"+H~~W~aa~ϟ\q @"D @"D x] ܊07>7zCX.ZdDh%3Kypfgy&2>)~zuث杨ƚyI๹֞3f̜u34?^=ƃf? |Ygv/\"c֜ ?kX._0>jڟ8 ~3߅~?GO={;^&˾տki񏿖?#U|| @"D @"D @6w '~@"D @"D W!00>x1}=1QV>xޗXΨ<י#{o<|l[7䏏-Gx~1[nD @"D @" $_M'9@"D @"D`~+[柞ܹ}_f@?14|!ɬѻbXsnSl3f~8Ǟs}sAxù"ycss_3}N{೏qOk_^^y~y9˥.3fOf`=dS ϋ3bm>F;؃?\3qNY1>xx~orMˋ}ŋY]k]_n񏿖?#bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٵ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/uoZ]cmAYWZ]hw}!v񏿖?#C]1_LS[LX SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%*y*:B3,y 3ba ~E @"D @"D`;&gD @"D @"L aLlG2~1Oǽ4=1_B"~ĞGK*'ӇNzf-{ߞg4ZW۟xY=;p_Z_l~)~>1s_b3G0g'{cgܗ3k~_[\b9F~1w9/. e/ +䏏-Gxv@"D @"D w &@"D @"D /H2=3vC(_H_Jˣ3Vl?Ǭ=cc6ɟ5%34ٓǞsswAccg_j޵~fWN<0bEYc<8q b+NǏ;R{zs3X+s':s?ebFb5ɵ?kX/ 4^߽ꪰ"_>/%iMK n?kKg9"D @"D @"@{ބ?g@"D @"D ?N aaF[柾ɝ;>7OG,|GWM"{|qLMzd%1c\uXٟ3oN~~X.k3o?ڏ\Gxy y)}@ēpX.Љ/~k <=eOx/k>rg=ַp->뚃߻ڟ=pd"Us;8I%\G @"D @"DH~u0}jD @"D @"p  Cی0훟icV`5ZdΘw t~jYG̚\Ycjg3>f59[~W͌Y0Uc 89e9Fkܓr1 uPŸ}yΥc@I=5`{gO z_=8sCO暞s_"3~1kX<3_|ox} ˳j@"D @"D 87' N"D @"D  00Ս 7zGj13cch$d˥ }GgcZb 7P <۟/&o^>ͱ={&v-%'?H\U@"D @"D $_NTu"D @"D @nEun:n1^0_B2+gWFs F1qEf r<3oFOFffϙ}8~ 5̙3^|㾔YD @"D @"@@U'@"D @"DHVo~1n1|qcjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{e]ky? 3cxc]ټȕ | $aڻs!zoM b 0v,3ϻ &{QZך{wfٰ 8ϳ\WϞ6^d㾑YD @"D @"@@U'@"D @"DHv aM{dͬa ~p]j3ֈǘ9`o]{h15֬ۋٻKm1~uyy&{?12):w>3=xA1s&祿;q/Xf~Ϛ\Ψc{_g^ه3s63u֥n_οs1}) ˳j@"D @"D 87 N"D @"D !00֭waߍ';ثFp_6zlb^|Qzkr.gp]̵qh@uȥ?q8[q[sMѓl[x Ng"D @"D @"p, oUD @"D @"7B aa[柝ܾ}_/"3G\b?@>3f G=c]sS4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzCo 㼷{bZNp6נ{bCwm5|\/9Cp"^gԷ~xNb߻.^>{13Af7|Fb ?knO>|;϶E`y#x/k}_f?Z0}Az&@"D @"D &[@"D @"DC awa>_}pq71"chWFY1c~έE/t˥ohɟ}5Ok3B>b1sgLw6W7]=EơKxa5χ̵1xxEc'|co fc9q폏{z6af>m4b{}c\3l_rk gp.Qcf_6y:> |hf|c쭏`3볶yã<|!x'{s?̽*|xlOfa&~r?x4O Ua{EtN %7v@"D @"D OG a=o3XD @"D @"'00OOOO^_>1gbr:dfsLzhsaLzfؓ^X.wo⣿zhjse6Zs ?]3{籼?kŎe\QӇ^x~Hb4< w |ޏr9&>!>]G|k8z7jggzսÏ#a'Ο3@h} ˳j@"D @"D 87' N"D @"D  00խ/|1+Fڙ/%+TG|#59h/2יsa=r֝S3!8bޘjrǚ83=r1cZF5/d s֙xΌ#ǽPɱrp%qc%*>gRa/;᳿819^Z㾔YD @"D @"@@U'@"D @"DHVϟ??_l1<cg5{/)=kM8k_3klo | 5:ikf&~{7o#X{dM]|kH₰&yq.p->jqN~]r5#^s֟!RssO X>gs ݘ~s7B.X}tϞOL`@Z:y.G8}ո[վ,@"D @"DgN ao3 wD @"D @"WN aa>έOM1-VVS#eWz?_ _5Ԋu8'1=YFEسf>^}H{L0=c!b~㨵ߟ岶ṛ63O-]rY3O9Ԙc 9ƇCmJ^bVv׫-GDowD @"D @"-H~0o3G @"D @"Vggg'߿Ÿc<C8e4h|1aZcGađg kj3Nz,/枬Ӄ̠g?=1j۟\imzl/k{/>C-1.Ļ-k><rc΂䜇cq|LxC.?ֲͥƚa_>3{[k, y+ ϙ[l3xa~JޯgK+a.~1GD @"D @"l@{ބ[DvD @"D @"WH**o+ӓ;o~>nO@/cf5뗔/tΞfc\&F~cyyĐG袉6޽8kca԰:p٫&O޺6 _H!` b wp\i0J @"D @"D [#0濵\"D @"D @A aah[柝_̿7n̗y U|{>^=dĭ_v5S֞+73S'#f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݱ\b8O<1g ~r1珟 ͶD`%?+IT@"D @"D $_>IT"D @"D @nG677vc FCV=zbƍ_1 cO]q0cYk,/1OF Z5|.Zes^%w^&dAO 'd`9ck!n˽9X.{|~{l~>O/x>^g/yd]GϚc{??+Ûx' g"D @"D @"p4 oUD @"D @"7A aa[sBOGd5aŊqh6?_W< f,b& ycsy383{{_8Qu :$ż[c<~HOxO P9x>ܗI}[5g?>[ 20cyo?aꯟ/4aq_AZ"D @"D @E apc}D @"D @"F$?u_⇙$bwͅ0Qc|~m1c܁1{5ɞͱcm5Q=zf3&kA9i=jY;`9g೿9֤|Wޏ5f]|#<6a^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59/OZ%}# ˳j@"D @"D 87 N"D @"D !00 8nd E賀|B򅠜CHl_`l=%3uq=\>ıY~fA=Έ!<˝~9~?k,F5K?ӿG>g _ .g"D @"D @"p, oUD @"D @"7B aa柜|p/M1L]ܯ {c$V̯I??k뗠/jY=}4]<%~S׵õkĩ&^$??3^/h=ЋgPz6!g 5ғY{Ag>Ƴof{Ls b;\Ϛ}{C{qe-%?H\U@"D @"D $_NTu"D @"D @nEzɝ۷>70r+4Gcrg6cmmr/:מ9?穙6^#2|g%#y觹}-u3[.sƕWJ pI.CAiy#2X*k3o~Y1LMOcmrcaM"u߾Ǝɍ1>z~1pg[ /յw/t8\0p_^5~-<[C&@"D @"D 2www|w_|/ɕD @"D @"%00Nnqӯ1ΏEF$]21>g1{g(3O~k᧧9[zhkމh̝ٛ k]=cYw0cݯkMcc|t޳g-e?Zf|k<_%Ǘ0pD @"D @"DmH~0mD @"D @"p ڊ0c</ kuPL٘Y-5efk̥>빿ᾼ+kr]I-4Ѭe~o%"8h~Qmg\9qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>_!ζE`y#x/k}_ AH,y'?96@"D @"D @;߄~"#D @"D @H aᷲaɝ7on CC-5g10c73|?7ϊމ?9+g<=<>q9s>X_yg?佖QumEg?^ g^\0}:PM\2ck9 sO1X:sN=_/.3ka=OM_õ<!d!Wյ |k<'ΧD @"D @"D`@;߄v@"D @"D "0؊0{|pgߎ/+ HfĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{%|]ۼ DcNXg>f\Aុw {rua5̵\~͡\1R5vf,Ea{յ~vjk<'$@"D @"D v$_Md7@"D @"D x@٘0q?/ch;Ť>Į_X0qN,{c1{c6qQ?MkޚMcof3{Qo?\򗗾JΫbc-.4"RX>!~3v?!9YǙf]YyI3G>~z޾4c?|W2- {/#_0?a']"D @"D @C ao|&I"D @"D Dv'tOch%$byW@:qOOB|0}gQ>aֲIAUșsnA<%A~z)~WN| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gsk!|oX^߽Z? AH-y'OIjD @"D @"H~0;nD @"D @"2/3ѳa;Cqox|q?q <:cq #;=fs>Yl]b<#N=y9W=qt97vQ1]:kPΜ_lv s=.6_5ƃ |a p/8k>=c/яNB{9w¬3k]M.7n,_#\NGbA㥮 -y!_ִ?߿ۿt#@"D @"D $_M}D @"D @"fa;ܹsq?d |twt+LJ<4G&XbX3;{5[9S/ͼߛf{1w#f]sυ~4@>{dO<Ξ !Xgm#ރ~>X^O#|ؓo}ⳮ9w?8 G-ˋZU;KJWUp"D @"D @W GF@"D @"D  00OOOܾx:jhYE@WgϬ6{ɬ5Fz1lQûcug}̘ ]51X^̜cv=!ïk^5\k/;ܗ\Z`> ~3Y?{ja~ eڃ31l9w%2q30/' ^^ב0<D @"D @"cH|#|0XD @"D @"  Sݘ0qӯn |Tx&C:39YMijO&ر\oчzz6;E,f.k_ Os&>ĸ7\5|Af|6Z7_ר%\WF blwrx0^,\7fM-fs?8ל۟5f}9=>͞a߼eo~سN>kۗY"W_64x >aqyV-@"D @"D "0F8a>PՉ@"D @"D x#ƺa;o}>n1Ϣxj/%W1k-gc蛙&5x|kfoa@IDATɡFY|8_=Ne>4ƜϹc|ǒ-$Z€˰3g@ \x6z5b? Ǐ1 s}9̵/󰿱̈#y.2>k{?ݳgb8^r㾉YD @"D @"@@U'@"D @"DHVPō %$3}}6ze4 bGZd 1n,33fhagЇ3{I[3cm SK# `S:aԳy\,~)Kq9k1 N?>6q L~[Yaam<3u]0cŬk3Y7sÜIέ1>~` 1'?KI\U@"D @"D $_NTu"D @"D @nEzz:~17Fx}1Ɨ!3sΙg|v|1qKO?k7׳?>g.X^eMo1kcϰ?3={Ό7ߕ͋\9q/ RKr&(.>9<00X cr1ˡ`r1뮻5}ɹwg kkPՉ@"D @"D x#ƺa7?1;"R93~4̜1;%|Xs s.1sm rk3fjhu>=5Gcv1!D w0v}rkͯ]":bϞ5brf`%:cc*g'\\[yc{_njy_91Sg~sɹ9GO={ƕ-X^s?/nVb|YEUE @"D @"l $_;]/gx"D @"D ϗ@n+_GϗyÊ?&1~l⭣ټq3X.g ?{|sbZ0{'D gs z'>ĹK?q6 Q`ͅ"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kǿKl[7k^Om"D @"D @"H aoOD @"D @~>~W[#?7c<-2ze_NQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lcyu3_d1?<X|X\KW?~7`6\Mښglmf3>Taƌg9b?p1g#Ea{յ ?Z0ps]"D @"D @"O ao٫c"D @"D @ì"?;;=/M14rh;L:h+_|<<3n^{ΝF#7u8c`%׾pf gkb>5fveש ‡fY{χ1=Q a<>kG]><߾̳+a0?GdfrG/GCod [YDx/IkZ]pc___:D @"D @"t&>u@"D @"D q 3ڊ0E1{f!f/׫Cf9^\X.ks85wXk/QXŹ5}(/$F z `,3jkcuw~|gq];o=ܟ}>o= f[ J70<D @"D @"cH|#|0XD @"D @"  S݊0lbMaaˬRRMBu1Xy"s9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qe4x]Bpsf?/O{>[cܽޘ%?KI\U@"D @"D $_NTu"D @"D @nEMc=Fnx[Grݳ&Oݴqq9f쯞Zy^kf>ak1r7NߵvD..k@{_!}p!%|X305wo"588q?3p60?܍Y?7q#nGO~H.Z侭տ~~㿘yWz_>a_"D @"D @~?r׏@"D @"D ~[st1=1bh15Ҟ[f?{uˬ=e 5{X|M\sbyуAσ6=:Ǽkəމ|r3qkE]`$^=kf0އd 3f_"v7ZɱX.k{/Ǟs5oYgƈX#(w.0Ǖ6 󯄫D @"D @"5 !a[(@"D @"DaKaw|>@Oό_'c#OVOeZ=a}8=>{l}1cܵ{1=c̱?~_^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO~?q'c||lKYGYD @"D @"@ᓄGHU(@"D @"D HvgCqox<a4hݣ'fmXe =Fe.{Ϙ1 h>[sQoM.Z>e]r5+͎aB} pa{@ 3zvj[3LJ9gap}FRG=MxD99??2ON{0!aQqV,@"D @"D G#0F8a>Q@"D @"D xa>-ߌt |dMX#F_]j3}s=ΰ{`"fџ\ag;;>>9ދ3㸷gi{{^ KrYK5ga}Y۞WO5\sN}|>s﹵{/o 3&I B$?.ϪE @"D @"DX/'?:@"D @"D o@Xu/~7N/v|\?50|ϗh30f#Wk>1&\գgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bnsᾞQe六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X _̿{xbe["K70<D @"D @"cH|#0XD @"D @" cݠ0OP> /$_y0]23y[uiahC{Ϙ[g&4s{=ýܙ `]isY|lt\sx9qsqPgE/28'cg0㘍ϬqFBx2a8o3>1󨏑7n?PՉ@"D @"D x#ƺawr1C4e[g; M2ku?dcjֿ~ bO晵سKS\gj؟=u];\FkEObssN<뱼Qum8{\9eg}|@9zְ\c/=l4qSqnѽW(^X㾉YD @"D @"@@U'@"D @"DHVܹ}q?1#(GKZQBq_X=&xh1&wsɚssis5.YgmfX00nj~;{R9s592kj\l|B >ƚ7B.c%N1;1&1g34'=fя}|.[GlX㣇wy{Y]wB1U㾕;$+kD @"D @"+H~~W~aa~ϟ\q @"D @"D x] ܊07>7zCX.ZdDh%3Kypfgy&2>)~zuث杨ƚyI๹֞3f̜u34?^=ƃf? |Ygv/\"c֜ ?kX._0>jڟ8 ~3߅~?GO={;^&˾տki񏿖?#U|| @"D @"D @6w '~@"D @"D W!00>x1}=1QV>xޗXΨ<י#{o<|l[7䏏-Gx~1[nD @"D @" $_M'9@"D @"D`~+[柞ܹ}_f@?14|!ɬѻbXsnSl3f~8Ǟs}sAxù"ycss_3}N{೏qOk_^^y~y9˥.3fOf`=dS ϋ3bm>F;؃?\3qNY1>xx~orMˋ}ŋY]k]_n񏿖?#bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٵ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/uoZ]cmAYWZ]hw}!v񏿖?#C]1_LS[LX SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%*y*:B3,y 3ba ~E @"D @"D`;&gD @"D @"L aLlG2~1Oǽ4=1_B"~ĞGK*'ӇNzf-{ߞg4ZW۟xY=;p_Z_l~)~>1s_b3G0g'{cgܗ3k~_[\b9F~1w9/. e/ +䏏-Gxv@"D @"D w &@"D @"D /H2=3vC(_H_Jˣ3Vl?Ǭ=cc6ɟ5%34ٓǞsswAccg_j޵~fWN<0bEYc<8q b+NǏ;R{zs3X+s':s?ebFb5ɵ?kX/ 4^߽ꪰ"_>/%iMK n?kKg9"D @"D @"@{ބ?g@"D @"D ?N aaF[柾ɝ;>7OG,|GWM"{|qLMzd%1c\uXٟ3oN~~X.k3o?ڏ\Gxy y)}@Y8(p$$qa=Gxc8 ^9-ts}V)P֧HeߟkW0(T&\gτKrN}|Q\KXA?g,w=㽬me?=[õk~jb0b.>ǑmV&apD @"D @"7F a}7Q"D @"D 5$?m3;o~2n1Z=ch9c1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMy0s<'1b%«qye{wΥvc@I=5`{vgO z_=8sCO暞s_"3~1kX<3_|ox} O˳j@"D @"D 87g ON"D @"D  08Ս ;n_ Dc(Vg8:IV;M ;KA>P\reoA2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\a0Y<{oblr@\ø ?, 06:̮f|1bG {5}[c,yƛCqwa$=xx~0ؘ$?-ϪE @"D @"DT/'?:@"D @"D @X"???q?ޫ!F_~u̜s欨qs=}skS{Ϛ쏏5K<>53?39f-~gƼuϙ⻲y+'$pAj@{I9w1CߚP`X.fw96L.fu&59̲am-bqgwœϟ=m%Ȅ}# O˳j@"D @"D 87 ON"D @"D k!08[~5Ɠ1 | ɚY19cØi3ֈǘ9`o]?{h15֬ۋٻKm1~õV}؟k_;sIęZ<{q Wpq Z8j,3?fgM.g1ƽ<3Bw'q ?̮Guó[睱{c6F0/%aiyV-@"D @"D "0F8a>PՉ@"D @"D x-Ǻa>x"b10d{uFM,zc/WoMqsֵ??nr7n-h'>g뚇s5ٺcr[\9'ZNeA% 1KlĚ9363 c?gƈ~]˿855Cyc; a=̶E0$aiyV-@"D @"D "0F8a>PՉ@"D @"D x-Ǻa۷o1;"R93~4̜1;%|Xs s.1sm rk3fjhu>=5Gcv1!D w0v}rkͯ]2:bϞ5brf`%:cc*gy'\\[yc{_njy_91Sg~s'=Jٖ,/7[]R9̬|0G{D @"D @",w~˼~av^`u@"D @"D HmEQ]5`X0ZcĠ?UVMu47c&sbٻX{?~|[cC}XkyoõlAڇ8cwm5|\/9Cp"^gԷaxNb߻.^>{13oAf7|Fb ?ki>|{϶E`y#/y/k}_f?Z0CAz&@"D @"D ?E |?=s"D @"D H]mEdo2nc<-2ze_NQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lcyu3_d>1?<X|X\KW?~7`6\Mښglmf3>Taƌg9b?p1g#Eaյ ?Z0ps}"D @"D @"7O ao7٫c"D @"D @㬶"̿q{7?7rG ٣QV@<\K3skAFd~E.s0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ106A*y)_ִ9D @"D @"|&>u@"D @"D gaٝۋ0q'c#F@C_W̌ya19|Pm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf= f[ J70<D @"D @"SH|#|0TD @"D @" S݊0ƍt1+Fڙ/%+TG|#59h/2יsa=r֝S3!8bޘjrǚ83=r1cJFW5/d s֙xΌ#ǽPɱrp%qc%*>g]}e갗\ȝz;.9^ZӾYD @"D @"@@U'@"D @"DHVϟ??3nߌ;YoAKuϚc<>z0;yfcGaM>99>;X}&1ymȵ DgL}`1C-1.Ļ-j><rc΂䜇cq|LxqC.?ֲͥƚa_>3{[k, y+ ϙ/=~?vfVٯq)_ϖW}vb>v@"D @"D  @"D @"D /#0eTVVgwnt1^q9̞/$k/)_=W3<ǸOM 9#ͳrwĐG袉6޽8kca԰:p٫&O޺6 _H!` b p\i0J @"D @"D #0濱\"D @"D @A aqh[߸q>~1'zܘ/Gġ=|,1zs [\k5=Wog֡gϝO>Fy̞vO>_g̘95 \7̺=c6X|??Ѩ}Y朣ޚ>]Y,|˺kW6„@>䁌,g p-> 3z3ges>c\qe>9z,Ysvsxzf;^Y'YD @"D @"@'DU(@"D @"DuHV;916ch}btsZcƫMW;8~쩃c?ɳGr=#?gX\Lx/ΌޞW=5gxUC΃00.e1/.&n~hb;aT>6u=|kX 4|sk^fL>?GDJ0 aiyV-@"D @"D "0F8a>PՉ@"D @"D x-z}~̿...olwͥ0Qc|~m1c܁1{5ɞͱcm5Q=zf3&kA9i=jY;`9g೿9֤|Wޏ5f]|#<6Oa^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59/lKxq OF柖g"D @"D @"p* oUD @"D @"B aqeg A9١zYKf&{0zv>ıY~fA=Έ!<˝~9a?k,F5K>G>g _# Km23_t=YsS3mF.|g%#y8&@IDAT觹}-u3[.sƕWJ:pI.CAiy#dC,qىy5w8Gޘy&觱?1&~ms:o_fc1~{~cζ@`y#Ͽ^V_?_p<Exٸ/o D @"D @"Dկ.]}=Wf\B"D @"D @^@"̿qt1 r"#GK._R΃3=Ï3hOQXǜ^=45DM4cN}͵1c欻o|W5)1t6 KdZ?c~R~ПLY;ruxz3ٖ2\muX3>Na/KH}"D @"D @" $_M?y@"D @"D  imE ?xߎ1絺q|?ci&vl̬_F2܇5gR_mpʚ\c;rWjR M4kbLJ鷟~jzI!;o}p&WNR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏xc|hg"յ |$k<柝wD @"D @"H ao|?@"D @"D [$0[ي0bc|=῍] Ifüsƚ3t˘es1s>kgEӟɳVm{̞s~9s}<3|^(6_γ`/3//ȋEh&X.u1{҇5'kbx^}9/gk50|/Zs˂wƸŽE=6v,/%/fu}})?Z0 &@"D @"D '07a]"D @"D $?>"߹qӯ$3Zb=e}3FLZdWsf.KWkɱg߽}O,u~3F 裹 Y{3ֱ<&b8rg6/~#ч阡Ça- @8Wnk.co|s s?s0{?4sFs37xԽ9Ư?xl3ʢ߿Z?FKAxa E @"D @"D`;&gD @"D @"|@2ѳ1aoǽ<)FgPW~a9'9+Gػ&vEXƙj'F4:ɛzkjp7m}0E\s _^*9/ xHa 6Xl7!_F'ع kcOr8/3ͺ?ϳg&;Z| }iƐ/ѓe-K[Z]+__ G`񏿖?#1s_b3G0g'{cgܗ3k~_[\b9F~1w9/. e/ +䏏-Gxv@"D @"D w &@"D @"D %0LlGl1_:g\|!~)B,X|n{ƎGܣ&8[ψ`<K-aKc;rΝ0/>Zw!'WbA㥮 -y)_ִ9D @"D @"|&>u@"D @"D ga[oݹs7|蘅)Vd#=3yiVLİ6f,kK=s^7ic?y~e}FͺZqp?G̅> {uLa,E]L?kϵoyrS?9ǯ\cO?\Ϻ'c/߽sٶ,/jU],a+m_ W@"D @"D xc_'cE @"D @"\@6#???s'jأ=f3]=d&&s֘ifnjG fֵF3c. 3tĘ? Nc9c{C._W2!Jj0^vw\Z`> ~3Y?{ja~ eڃ31l9w%2q30/' ^^ב0<D @"D @"SH|#|0TD @"D @" Sݘ0_|^M4>bufs dPLc1l,[X\֜9S=dM}qov5|Af|6Z7_ը%\WF blrx0^,\7fM-fs?8ל۟5f}9=>͞a߼eo~سN>kۗY"_6?x O>aiyV-@"D @"D "0F8a>PՉ@"D @"D x-Ǻa[o}:n1Ϣxj/%W1k-gc蛙&5N|~,?q_l~)0 274:AY¶&P1fd/\?0r0|y?ϥ_gM|=ͱգLg[ KN70<D @"D @"SH|#0TD @"D @" c݊0?7O/oH/!+9f8"fGqch7#'F#?އ>?Nkk؟Z95E,fP ụ&f+'N \YYp ĵai_JZ"D @"D @NE apS}D @"D @"Z$?u+7?7\b_JW9gjaΊ7<DZV/M<\Xӟٺ^c˚>3:cbm?Ǟaf{x_o,+rA䱗3LP\|^{sy``>YA 5xƎbyc3b]w/jRZs,"y]_;|w]<3f["L70<D @"D @"SH|#0TD @"D @" cݎ0!̿Wc<1`ϗ>6a>[=3kxsflaoCg&Scvm܏c7\;k5هUMѹ3Aųw'rgg0Elcx OR柖g"D @"D @"p* oUD @"D @"B aq[s,/m/OvWWXmĢ7f~{G]q[sMѓl[x ON柖g"D @"D @"p* oUD @"D @"B aq[8??}&1/"3G\b?@>3f G=c]sS4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzCxr3mxqյ/u8\0z/W /Nj@"D @"D H~w|ou_|o]wD @"D @".V0/U 5FL c~^Ze[GMyh11f9'\Ό~ȷ5:؇6avO=\ˉ`O}s?;?q6 Q`ͅ|"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kǿKl[7k^?Om"D @"D @"S$07aO3G @"D @"VH?x'=1"chWFY1c~έE/t˥ohɟ}5Ok3B>b1sgLw6W7]=EƱKxa5χ̵1xxEc'|co fc9q폏{z6afdz1='מsgшbs}ɵ1ᚺGrUp}h֞aac>>qBϬQ6/l& 9g؟8̾0~9=9#hMlxa~:~y/%iMKnZ|@"D @"D G a=o3XD @"D @"L aqF[柟ݹ}2:bt 4zu̘h31× 68̬'\G?em~fc?+Ne\QӇ^x~Hb4< w |ޏr9&>!>]G|k8z7jggzսÏ#aǏ.3@h} O˳j@"D @"D 87g ON"D @"D  08խoܸ1~1OMaaˬRRMBu1Xy"s9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qd4xUBpsfޗZ{= cܽޘ%?KIZU@"D @"D $_NTu"D @"D @^ DZnE_|p7_h_\S7m~E~ucjٳ6510oy褽뚙>;g߼Zb퍓5wmA]2 š<Ź,ޗCs\õ9uɡ?< 8z[H 1gXm61{ztꑏy3c}g"6\H{a cσ)~g̾0D=oc\_yfpF=_ey ~>X.kf3sy;c|=ٶ,%/fu/l H,yL/a{@"D @"D O@;߄?OD @"D @~8W[߸q{~6nOP4~ 1ef_L1Fخ9s|qÚī]ܓ5szP5~'V'Fm=~^"{೿=rC Bk2.s!<<,Hy812o-\jٟXaq;1Or10k޺ Y1{cm/lU_ =^l%g/hD @"D @"H~ϛ0+D @"D @"2 _FemE~~~vOǭcBs5sk03b<,w笭M yό. jYsj6F 0眽l|m Dc^nדLggT94ēO-{Zh1sڞ֡>Ǟs5oYgƈX\#(.0Ǖ6 󯄫D @"D @"1 !a(@"D @"DawǍQ}4OcrӫG>fO㧿 ͶD`%?+IR@"D @"D $_>KT"D @"D @^ǡnGcl1@ 1ZecY7gzf|(gc>uì3fsgCcޟG~k9\X0Kfe)L<X.lOxra]CN 9{1sf\0<,}۟^|_곟ɂٻh5g7狋l o%?{HR@"D @"D $_NOT"D @"D @^ǩnE=޿s ac</h1ֈ+FWp?ǡ5od ~e_\3lǞ:=<{x/|'3rs?|^D8~u^zFW5<\n>k&v#q>>1@|pjS{ۓ ɷkΉπOg|=~eat?KT}x O 柖g"D @"D @"p* oUD @"D @"B aq:?_z/|\ ?5<|ϗh30f#Wk>1&\գgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bnsᾞQe六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X _̿{xbI˶D0o$aiyV-@"D @"D "0F8a>PՉ@"D @"D x-ǺAa_m}_H` 5df1kgahC{Ϙ[g&4s{=ýܙ `]isY|lt\sx9qsqPgE/28'cg0㘍ϬqFBx2a8o3>1󨏑7ny9e !aiEZ"D @"D @NE apS}D @"D @"Z$?u;q/z 5h1n{>Þ34h=kh=ǏaZ%=gbP/M-srafump->qj==9̮zFW ZYsy<}H|Y>sqd^ęO=ƹ۟>\o1׳pzڟz{obOc|t{/Q} O˳j@"D @"D 87 ON"D @"D k!08֭:soM27cFPXvh1b1T{L&3cMEړ5<5kYgmfX00nj~;{R9s592kj\l|B >ƚ7Bv1\y} 썙gjr~kk>>e6v,W=>l 7euK<?#Wr F0`I"D @"D @L a]._ۿ~|e%D @"D @"DU $?Np+7n~OMp~,-2"yh%<833G @"D @"D o@;߄oWD @"D @"HV혾|Hx^Kg3fb/,_eh,3;}Xsf.Yv5v#w&D&a|~駆N⸣G Wmr) /1{9xN.Ç6y>x{y7֙Zԥ>>{C=L>A-^%339u&~>G>v-y{Y]__ Gb񏿖?#=8'jE|@/j}/p^=op3ar!s{,w|qvm.0}:=|b Lyțas{ZPށ<1?03s'C?g7:ssKݛcG6C`, +cW_0?a']"D @"D @C ao|&I"D @"D w $.=vcbtu|1Om1c1L}q^2{kkb^alfmbO㚼yw:۟ ^ԛ5奯XX Ͱp|`szse~ϰFȮ?1֛!38Ӭkc<+/i~frObf 9b=Xf"Eaյ |k<'$@"D @"D v$_Md7@"D @"D .eg;}21|<+ \8Zr'_'V!>q>tҳ(0k? Z,cZ9WM ށ p}'~WN| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gsk!|oX^߿Z? KAH-y'OIjD @"D @"H~0;nD @"D @"] Dvo aƽʫs뗒/1+GlX.k|=lgu8s\=]EYG=—Zưwm?|Am;s~eٕ$|QN3qlD?{ # ⣯u{7߸~|r;|/ 4^ꪰ߿"_>/%iMKnZ|@"D @"D G a=o3XD @"D @"L aqF[柿ٝ;~3n1YA;bE03ǙfK kcroϹf_Գ?g꥙{S߬vO=0So\jg$Ьus|$\KY='\gτKrN}|Q\KXA?g,w=㽬me?=[õk~jb0b.>ǑmV&apD @"D @"7F a}7Q"D @"D 5$?m3;o~2n1Z=ch9c1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMy0s<'1b%«qye{wΥvc@I=5`{vgO z_=8sCO暞s_"3~1kX<3_|ox} O˳j@"D @"D 87g ON"D @"D  08Ս ;n_ Dc(Vg8:IV;M ;KA>P\reoA2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\a0Y<{oblr@\ø ?, 06:̮f|1bG {5}[c,yƛCqwa$=xx~0ؘ$?-ϪE @"D @"DT/'?:@"D @"D @X"???q?ޫ!F_~u̜s欨qs=}skS{Ϛ쏏5K<>53?39f-~gƼuϙ⻲y+'$pAj@{I9w1CߚP`X.fw96L.fu&59̲am-bqgwœϟ=m%Ȅ}# O˳j@"D @"D 87 ON"D @"D k!08[~5Ɠ1 | ɚY19cØi3ֈǘ9`o]?{h15֬ۋٻKm1~õV}؟k_;sIęZ<{q Wpq Z8j,3?fgM.g1ƽ<3Bw'q ?̮Guó[睱{c6F0/%aiyV-@"D @"D "0F8a>PՉ@"D @"D x-Ǻa>x"b10d{uFM,zc/WoMqsֵ??nr7n-h'>g뚇s5ٺcr[\9'ZNeA% 1KlĚ9363 c?gƈ~]˿855Cyc; a=̶E0$aiyV-@"D @"D "0F8a>PՉ@"D @"D x-Ǻa۷o1;"R93~4̜1;%|Xs s.1sm rk3fjhu>=5Gcv1!D w0v}rkͯ]2:bϞ5brf`%:cc*gy'\\[yc{_njy_91Sg~s'=Jٖ,/7[]R9̬|0G{D @"D @",w~˼~av^`u@"D @"D HmEQ]5`X0ZcĠ?UVMu47c&sbٻX{?~|[cC}XkyoõlAڇ8cwm5|\/9Cp"^gԷaxNb߻.^>{13oAf7|Fb ?ki>|{϶E`y#/y/k}_f?Z0CAz&@"D @"D ?E |?=s"D @"D H]mEdo2nc<-2ze_NQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lcyu3_d>1?<X|X\KW?~7`6\Mښglmf3>Taƌg9b?p1g#Eaյ ?Z0ps}"D @"D @"7O ao7٫c"D @"D @㬶"̿q{7?7rG ٣QV@<\K3skAFd~E.s0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ106A*y)_ִ9D @"D @"|&>u@"D @"D gaٝۋ0q'c#F@C_W̌ya19|Pm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf= f[ J70<D @"D @"SH|#|0TD @"D @" S݊0ƍt1+Fڙ/%+TG|#59h/2יsa=r֝S3!8bޘjrǚ83&;@IDAT=r1cJFW5/d s֙xΌ#ǽPɱrp%qc%*>g]}e갗\ȝz;.9^ZӾYD @"D @"@@U'@"D @"DHVϟ??3nߌ;YoAKuϚc<>z0;yfcGaM>99>;X}&1ymȵ DgL}`1C-1.Ļ-j><rc΂䜇cq|LxqC.?ֲͥƚa_>3{[k, y+ ϙ/=~?vfVٯq)_ϖW}vb>v@"D @"D  @"D @"D /#0eTVVYV%K洈kMc@1Wƾݣ-c=J[%yT2s5Vŧ럌[}91 #.ǘ$:c %3ja>gĠyX^61c>3hb4|jwog-Ω|5ìsg.>z.W.0}H.yy^O3^Y^R}}hO>i {ń9fk{Z{cpG=cg5#c߽wvl[ت߹X$̿#D @"D @"$_'#WD @"D @"+HV׮_̿3n̗y U|{>^=dĭ_v5S֞+73S'#f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݱ\b8O<1g ~r}{>m!KW08+D @"D @"H|#|0h E @"D @" Cݎ0Wc<0b u6n,O9~Q#|2ÇYgZcyyb4jpu9稷sy|b- .f0!>b}b=y Çu=\q;5^̙rÜcy8W\ozY>#|~Σ& fb<}֜]gg|d o$?{HT@"D @"D $_NOT"D @"D @^nE=޽uac</h1ֈ+FWp?ǡ5od ~e_\3lǞ:=<{x/|'3rs?|ND8~u^jF5<\n>k&v#q>>1@|p_Ԧ'o לk{n-xÌ筱>%~PЄ} ˳j@"D @"D 87 N"D @"D +!00}fotvvvrz';cn΅_G h3|hݫIl5kG3'a|5YO rfOQzc9ͱ&滲~%v6cM1yp_(| 2e d>zƑom[8e;״51s7Z?~l f/>{8~1[Ҳ-%?I\U@"D @"D $_NTu"D @"D @^ nPqGc(B<Bbgcg.<|l00!g3G9ýpF ֞^?4c͹Yc _6J9^j89ch3j"O3@|qg8#_!>iO=kg1B6 887|3cgk1zޛt{pٕ9ʶ@0o"aqyV-@"D @"D "0F8a>PՉ@"D @"D x%ƺa'nxcc VԮ|-F,j15df]\{f\{|Y۟g2<81{zqԥ&FΜoM2_*i/x%C}>捐bSN̋l p̼>gm35F?EpY5yns|o2;'o|;<}տ~z?yq_lq_5@"D @"D  $_]_]0|{_K3.!@"D @"D /K aa[_v;o2n;\ȈKf5Ǘ8fcL>e|So-451gW9~;Q5{󘹓"|ss=g̘9nf{i~ 03{~Aٳ_0ԡ/D '9.~֎\b!?`|Դ?q@\g 5d?~j1{yw%L}[]w}?֌-GDnD @"D @"n |O^"D @"D @.C aaZ[sßgcbc"y.yk 5Į_X>RYfv\곞&ܕB͚Xa;^cg5_zɥj0EXJ9 VX.{5Y3^/XgjQA[3pFf>>xޗXΨ<י#{k9l[7>䏏-Gx~1[nD @"D @" $_M'9@"D @"D`~+[柞ܺy_ro@?14|!ɬѻbXsnSl3f~8Ǟs}sAxù"ycss_3}N{೏qOK_^^y~y9˥.3fOf`=dS ϋ3|m>F;؃?\3qNY1n߻vgrMˋ}Y]k] n񏿖?#bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٕ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/u{>_]cmAYWZ]hw}.v񏿖?#C]1_LS[LX SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%2y(:B3,y 3ba ~E @"D @"D`;&gD @"D @"rgo=ַp->뚃߻ڟ=qd"Us;8.I)\G @"D @"DH~u0}jD @"D @"p Cی0~=1V+G{-2g]=d&&s֘ifnjG fֵF3c. 3tĘ? Ncy3s=$\ >/eBx"`p1.?p_si+aG~f b ^ޗiГŗȌ_#=k֣?Yl3xybq_GZ"D @"D @E aIc}D @"D @"*$?LucM1Q὚h| Zg5j>8crc=GX9CM5s<=>k{8ɚ8^p]԰q1\k|Y`s]}<q3xp 51k^s>go֘|7{f9OO|zlcbϚ;̮o_f^0?}/%'?.YD @"D @"@@U'@"D @"DHvo_̿ɸ@?*I^\Ǭs ȞofFL>Zd r?y򭩦=':fǞ;yLӓs>ˋÏKWJxPj/Μp3LsX^<(}?,<뇇3׾X2#F#x3ɛ5z}pOl x &g"D @"D @"p, oUD @"D @"WB aa[C~=#KHftlhĨ;&<ȬcX.gfш9ggFF j98s阮u8ègiY҉Srb~|qm<(>Է08xf0a؋Y11guoo:ę1LJ9ӓc|pAbcƋOܗ0<D @"D @"cH|#0XD @"D @" c݊0tbOM6?o^ 1b/%Cf30gEcX&sog|l]y˚>3:cbm?Ǟaf{x_o,Kt^䱗3LP\|^{sy``?YA 5xƎbyC3b]wjRZs,"y{n?8{'ͶD0o$aqyV-@"D @"D "0F8a>PՉ@"D @"D x%ƺaCqӯx4zc~/!Y3+&g}hü3\nh51f[95hL5kbnR۵s?rp]q^O̕/kΝL~-8A+88cd EwI-yoA ?{&3{'q ?̮Guó[gc}ǜm/0aq_JZ"D @"D @E apc}D @"D @"J$?u+|EŸ7c#a+WXƬ/0aޚ\˙ks4pso8Z4ArO}8'5k.uBm frߟ+;GL,1kؼk̀!~6>#[w]֘q 籏sg\32^d㾓YD @"D @"@@U'@"D @"DHVNOOn޼/}@ șQfYX.sk nskg^1SC9g?;ٟ 9=}&b0s3c]l~Ա~\~>g/3C,qe3P9c K@oC {{W;qOk^Om"D @"D @"H aoOD @"D @~<~W[#7?7c<-2ze_NQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lcyy3e1?<X|X\KW?~7`6\Mښglmf3>Taƌg9b/;ӘX^ܢ߽Z_\?^-GB9a.v@"D @"D '07a1@"D @"D@ì"̿v;?7roG ٣QV@<\K3skAFd~Y.s0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ1?㽻 aÓm/lU^g/%\x$i wݟ湳@"D @"D G a=o3XD @"D @"'00OOOOn\_>1gbr:dfsLzhsaLzfؓ^X.wo⣿zhjse6Zs ?]3{籼?KŎe\QӇ^x~Hb4< w |ޏr9&>!>]G|k8z7jggzսÏ#a@h} ˳j@"D @"D 87' N"D @"D  00խ]6~1OMaaˬRRMBu1Xy"s9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;q/e4xYBpsf?/O{>[Ǹ}ٝ1g#KKܗ0<D @"D @"cH|#0XD @"D @" c݊0ӧ'~5?@{f ^%gMig-s&Sc͞9_=~F'}O_aO?|ށ= bkoO+z\\0/e1B8BG-Ή߯Kf`k3DjpqN?㜙kgla>~~boΝFȅ]\ ,}[]w\>?/~}WۃE @"D @" $_D @"D @ $?"޺ѸWc|3zb R*cj=W~6Y{k&Z>Xm61;ztꑏy3c}g"W6\H{a cσ)~g̾0Doc\_yfpF=_ey ~>X.kf3syx;mX^ ^Z_zX(_mnD @"D @"D |'~{D @"D @"!0ڊ0ڵk'7yqӯx4qh,33b1va폞È#f&^X^=Y;uYAgb5zbԶ?^^y|Znc]wJ^|x.䚇ǜ9;0>c?\~e]K-9>5þ71<}{'fX.f-[Wџ3y?f15o?xxg +!__Nj\x-1㯄]"D @"D @" yo="D @"D @^D aOOOOnݼɸ՗c<0r=_H3_R>9{fyq9sF g9kkC93&Fçx~hQ:9g.<}{2_,|#ч򘗛d=řn-ř/߇f/=S˞ְ8ZLc渶u聏x=f g|ۃ=9}V1o.=a{gwʶE`*%qMK*8@"D @"D @rH>r5@"D @"D mE a7|>@Oό_'c#OVOeZ=a}8=>{l}1cܵ{1=c̱?~_^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO~?q'ط?~-ٖ,G}% 󏊳b@"D @"D 87' P"D @"D + 00 a۟~51!FPw=1kcWό1ŗ.8|u{l5P'FQgߚszk`>wg-ֲ9o/;_hv 2 ' ۓ2^1|XõSxz̜o,=>y?=6? ksuEmzo{R_!>p9iϽl1̘|;AX% MW0<D @"D @"cH|#0XD @"D @" c>=a;Iggg'~;\ɨ1{|D @?1sѽdX6q=3{LJY a03kRk+kǚ\bg.>CwՌ0/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`fb%-^\㾑YD @"D @"@@U'@"D @"DH}4"Y@~!LP΃!$ƿ/0~蒙:Ƹ C m{ƬZ?3q䠉c?K goycLs?؜z5eߏ#3f{/8/9;ćl~f3SAs~oq9ǏG}us_m} ˳j@"D @"D 87 N"D @"D +!00ON޽g_j.c|=ݱgh\{${SÌKg{b5ϬŞ^Z.O?SZ|5\G/z{؟s]Ռ/kٳy(s=Գ}x,d罠3z sY?3}1cgiqOw]l xa &g"D @"D @"p, oUD @"D @"WB aa[柞qr捏M>?@;-:jE bb|aYMfX[ε'kyj͵gm9}&cÈo3i=wGK]jb|˜?q)g \ 1@Ck!8ļ۟_xfo4"D @"D @"&akNn'_c(EH-1dZc||I9Όc ?6Qg>EOOc]Ss{М׼5X7;)<7ڳ߻zƌֿaƺ_W0 3x'D/=k̎KBBrϚ3g%ֽ0 GMuPCVޏܟx6c'Opg["pٷյwc8-yH/a>@"D @"D &07a/@"D @"D2a>7|6/x<_>*ɿPL٘Y-5efk̥>빿Ᾰ+kr]I-4Ѭe~o%<8h~Qmg\:qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>ⱷ#ζE`y#/x/k}_sAH,y'?96@"D @"D @;߄~"#D @"D @H aᷲaɭ/f CC-5g10c73|?7ϊމ?9+g<=<>q9s>X_yg?佔QemEg?^ go_0}:PM\2ck9 sO1X:sN=_O3ka=OM_õ<?gw!d!յ |k<'ΧD @"D @"D`@;߄v@"D @"D "0؊0{{_/+ HfĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{|]ټ DcNXg>f\Aុw {rua5̵\~͡\1R߽5vf,Ea{յ~vjk<'$@"D @"D v$_Md7@"D @"D x@٘0q/ch;Ť>Į_X0qN,{c1{c6qQ?MkޚMcof3{Qo?\/󗗾L΋bc-.4"RX>!~3v?!9YǙf]YyI3G>~z޾4c߻2- {#_0?a']"D @"D @C ao|&I"D @"D ?Dv'h1|<+ \8Zr'_'V!>q>tҳ(0k? Z(cZ9WM ށ vp=?fK'N >xlሙ&|91?C?}8羜'ĞX/ݺ1ۏ3uȹ1?~?vf,/{Q^iu |k<'$@"D @"D v$_Md7@"D @"D x@َ0!̿Wc<<ByuθBrRXb8f葍eGMq.1yΞ< ;GR}5mg/m6t⁄/c^q~>~|0y8Z5r'_w;a֙y_|.{&7BïOY{~1PؠRWx</IkZ]pcuwy,G"D @"D @"H~ϛ0 9@"D @"D $?h+78u_h |twt+LJ<4G&XbX3;{5[9S/ͼߛf{1w#f]sυ7@>{dO<Ξ !Xgm#ރ~>X^O#|ؓo}ⳮ9;G-ˋZU;KRUp"D @"D @^W _GF@"D @"D W 00OOOnݼѸc<Cm{Ǭ"s1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMy09>3ysObR&)B 9ؾ&} ` Zؾ=1}A =9kz]|5rܳƬa= 16C/u$?.ϪE @"D @"DX/$?':@"D @"D @T7&l1/ޫPΌquVv꓉3@IDAT3v,:ۃ<|Nk˚3WC=Ӄx곶1 E ?{3͵֨KM5jp f/8ǃ7۝8 ̀YS5sgYyw{gf؟37vA=F.e2? ^rO\U@"D @"D $_NTu"D @"D @^ nG} (KU?@X.ffEf cy!'ߚjsrQk/}iϽw4=1snx>|~(?q_l~)0 274:ŃއmMc³/\_~x8s틥``0oK?Ϛ^c{g9ζ@0o"aqyV-@"D @"D "0F8a>PՉ@"D @"D x%ƺa>?_?Ѹc<>1"adFWFAcS̚A1ƍyfFߌ8̞3{pf:ikxzaji`ԠӛA3~jX3z1ޛK/8%p).g-f'0O}9 3>gkfcMf{_!KCs|3=ɹ1$6f}) ˳j@"D @"D 87 N"D @"D +!00֭OOO/_toc/RR:df9SsVԎ>9zi=gzǚ%ˋ3?39f-~gƼuϙ⻴yK'%pAj@{I9w1CߚP`X.fw94L.fu&59̲am-bqgkG?yBlKx Fg"D @"D @"p, oUD @"D @"WB aa17>7jGc75brև11uVόZ#c_u9s?YXo/ff,];# 絚\hܙK ;33OP}g"Q `1F`}豉EozY5y޺g?GMw1ƍE!هso]{2[w,/`&Wɹqc@|P.lmA ~@3{Ό k/1by%/ay=0|;yo}5=C,mE&?;I\U@"D @"D $_NTu"D @"D @^ nEb|?efΘ~>O,96{9354:sƞ̱cِg"c;;>9 ߕW.pHky1Agsr93O0g\1sX 3ր.y޼\]KMcƼ~3qfy\Gw̬w~*a "D @"D @~~._{gWhu@"D @"D HmEQ]5`X0ZcĠ?UVMu47c&sbٻX{?~|[cC}XkyoõlAڇ8cy'F5j_1 ṡ0E9~Ϩo>İw/\ν|cf f>̘5o~gtG϶E`y#/x/k}_f?Z0}Az&@"D @"D &O@"D @"DC awa>៿{q;1"chWFY1c~έE/t˥ohɟ}5Ok3B>b1sgLw67]>YơKxa5χ̵1xxEc'|co fc9q폏{z6afdz1='מsgшbs}ɵ1Grep}h֞aac>>qBϬQ6/l& 9g؟8̾0~9=9#1޻{:<&Vu:=^"υKҚ0/]|o;D @"D @"p&>u@"D @"D ~ 3ڊ0EŸ1{f!f/׫Cf9^\X.ks85wˋXk/QXŹ5}(/$F z `,3jkcuw~|gq];o=ܟ}>< f[ J70<D @"D @"cH|#|0XD @"D @"  S݊0ڵkd1+Fڙ/%+TG|#59h/2יsa=r֝S3!8bޘjrǚ83=r1cRF5/d s֙xΌ#ǽPɱrp%qc%*>gˋRa/;᳿8{ws1}) ˳j@"D @"D 87 N"D @"D +!00֭>}z_?Wcc  zk_R{䩛6q"N:g15YSc<>z0;yfcGaM>99>;X}&1yeȕ DgL}`1?Z0%{6@"D @"D O$07a⧿g@"D @"D ? ]vr?7jGc(G23/&#lWk9>8aMmfIEܓ5szP5~'V'Fm=~^EmEg{6ޅxd\e͇ByxYp1ν =0ce'ZֵԲ?X3+|Ӈwbfxkba2ueA9cPw/. ^ت߽"5{8΅3Jˮ_.@"D @"D [!07aV>#@"D @"DE濈ۊ0럌[}91 #.ǘ$:c %3ja>gĠyX^61c>3hb4|jwog-Ω|5ìsg.>z.W.0}H.yy^O3^Y^R}}hO>i {ń9fk{Z{cpG=cg5#c߽wvl[ت߹X$̿#D @"D @"$_'#WD @"D @"+HV׮_̿3n̗y U|{>^=dĭ_v5S֞+73S'#f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݱ\b8O<1g ~r}{>m!KW08+D @"D @"H|#|0h E @"D @" Cݎ0Wc<0b u6n,O9~Q#|2ÇYgZcyyb4jpu9稷sy|b- .f0!>b}b=y Çu=\q;5^̙rÜcy8W\ozY>#|~Σ& fb<}֜]gg|d o$?{HT@"D @"D $_NOT"D @"D @^nE=޽uac</h1ֈ+FWp?ǡ5od ~e_\3lǞ:=<{x/|'3rs?|ND8~u^jF5<\n>k&v#q>>1@|p_Ԧ'o לk{n-xÌ筱>%~PЄ} ˳j@"D @"D 87 N"D @"D +!00}fotvvvrz';cn΅_G h3|hݫIl5kG3'a|5YO rfOQzc9ͱ&滲~%v6cM1yp_(| 2e d>zƑom[8e;״51s7Z?~l f/>{8~1[Ҳ-%?I\U@"D @"D $_NTu"D @"D @^ nPqGc(B<Bbgcg.<|l00!g3G9ýpF ֞^?4c͹Yc _6J9^j89ch3j"O3@|qg8#_!>iO=kg1B6 887|3cgk1zޛt{pٕ9ʶ@0o"aqyV-@"D @"D "0F8a>PՉ@"D @"D x%ƺa'nxcc VԮ|-F,j15df]\{f\{|Y۟g2<81{zqԥ&FΜoM2_*i/x%C}>捐bSN̋l p̼>gm35F?EpY5yns|o2;'o|;<}տ~z?yq_lq_5@"D @"D  $_]_]0|{_K3.!@"D @"D /K aa[_v;o2n;\ȈKf5Ǘ8fcL>e|So-451gW9~;Q5{󘹓"|ss=g̘9nf{i~ 03{~Aٳ_0ԡ/D '9.~֎\b!?`|Դ?q@\g 5d?~j1{yw%L}[]w}?֌-GDnD @"D @"n |O^"D @"D @.C aaZ[sßgcbc"y.yk 5Į_X>RYfv\곞&ܕB͚Xa;^cg5_zɥj0EXJ9 VX.{5Y3^/XgjQA[3pFf>>xޗXΨ<י#{k9l[7>䏏-Gx~1[nD @"D @" $_M'9@"D @"D`~+[柞ܺy_ro@?14|!ɬѻbXsnSl3f~8Ǟs}sAxù"ycss_3}N{೏qOK_^^y~y9˥.3fOf`=dS ϋ3|m>F;؃?\3qNY1n߻vgrMˋ}Y]k] n񏿖?#bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٕ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/u{>_]cmAYWZ]hw}.v񏿖?#C]1_LS[LX SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%2y(:B3,y 3ba ~E @"D @"D`;&gD @"D @"rgo=ַp->뚃߻ڟ=qd"Us;8.I)\G @"D @"DH~u0}jD @"D @"p Cی0~=1V+G{-2g]=d&&s֘ifnjG fֵF3c. 3tĘ? Ncy3s=$\ >/eBx"`p1.?p_si+aG~f b ^ޗiГŗȌ_#=lUwi-;6+FqFe10l ƙI- BJsz^Wҭ#qiUWWߟ:͏֣?[l7xyb#a<D @"D @"$_>I':@"D @"D @˩LqOr |Tx&C:39YMijO&ر\oчzz6E,f.k_ Os&>ĸ7\5|Af|6Z𗂯j^p#n19</p3ƹzk>f̰?go^?z|?\Ys'ٵˬkg/ev۲O-ϪE @"D @"D`+ ooN"D @"D k!0r5~1Ga,G&yRrh=Ě6|ȬX,/[SM7{{Nu0j9Ǟ;yLӓs>ˋÏ'8kͯ<%^9fRdzxPǰ ?~Yx!g}eF FsgY7kl/Xٓ??}*v=%'M$ߖg"D @"D @"7 @U'@"D @"DH9ֽ_ %$3c}6ze4 bGZd 1n,33fhagЇ3{I[3cm SK# `>S:aԳy\,~)Kq9k1 N?>6q L~[Yaam<3u]0cŬk3Y7sÜIέ1޿O` 3'$ߖg"D @"D @"7 @U'@"D @"DH9ֽOOO/xc|u~cjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{E]ky? 3cxc]ټȕ | $aڻ!zoM b 0v,3ϻ\6L.fu&59̲am-bqgkóǟ<}JlOx }# YD @"D @"lE ap>PՉ@"D @"D x-_u?0G㦟x =_BfVLa qp]h3ֈǘ9?ߺ9DcjYw3ڮcZMqbe4USt%}gzk \c(3LjKQ `1wɘ&$ߖg"D @"D @"7 @U'@"D @"DH9ֽǻwa_';ثFp_6zlb^|^zkr.gp]̵qh@uȥ?q8[֘q 籏sg\3=53ǎbgCfO=F`3 3|6_y"u=Y(k<KurYa-TX8O乶{r1?w-5'Ssbę㋻ss{+e{"g~lus<#2>w?U "D @"D @~-._{|ou@"D @"D Hۋ0󥣺ja菉A̯C6xi6o-9L<IJw=˙O~\f5k9\쉵qOܵjXs!b<8a{ sQ:9}ao_{'{ټƇ9[Y}1YsN,/e,/nQ^lup}.~??xNȷ]"D @"D @" $_M?{u@"D @"D H9o8=͏M?14rh;L:h+_|<<3n^{ΝF#7u8c`%׾pf gkb>5fvɫC3Ь=go}|Q a<>kG]><߾̳+a0?GdfrGx0vA*y._ִ?߿?p#@"D @"D $_M}D @"D @"H9OOOO^>1gbr:dfsLzhsaLzfؓ^X.wo⣿zhjse6Zs ?]3{籼?+Ŷ2.ŨCyY/^cQX#5gu5?k3o=x0gOW 4^TmDmyV-@"D @"D [H|#|0OTu"D @"D @^S݋0ƍh1+Fڙ/%+TG|#59h/2יsa=r֝S3!8bޘjrǚ83=r1cJFW5/d s֙xΌ#ǽPɱrp`g}ۃٸ\c93E}e갗\ȝz=/s3۾Z"D @"D @"0F8aVD @"D @" /ǺagN~7|@{f ^%gMig-s&Sc͞9_=~F'}O_aO?|ށ= bkoOkz\\0/e1B8BG-Ή?Kf`k3DjpqN?㜙kgla>~~boΝFȅS\ ,?ǶVٹ|?ؾl}W-~?WۃE @"D @"| $_D @"D @~_"޹c|9zb R*cj=W~6Y{z 5{X|M\sbyуAσ6=:Ǽkəމ|3qkE]`$^=kf0އd 3f_"v7ZɱX.k{/k03ÙOFO'{Zۋދ` b p\i0J @"D @"D #0?9$cE @"D @"\@ˡE a|>@Oό_'c#OVOeZ=a}8=>{l}1cܵ{1=c̱?~/p|{0{1sGv_{X0SخOqw6ykbuì3fsgyb4jpu9稷sy|b- .f[yx>1\؞<úŇsF/c~cayYX<+?|w{yg?QOw1>kn볳'y:V7 rOoob@"D @"D ،@}*D @"D @":$̿^;6Ɠ16ch}btsZcƫMW;8~쩃c?ɳGr=#?gX\Lx/ΌޞW=5gxUC΃00.e1/.&n~hb;qT>Emzo{R_!>p9iϽl1̘|~6՟/4a a<D @"D @"$_N:@"D @"D @˱p0?=m94ju ~/B3-f`̜;5Ft&ٳ9|bM#G̞xadm>5ȵ?g=G-q= |7ǚԚ&٬5qĐ}=e六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X _̿{hb7e{"KI-ϪE @"D @"D`+ ooN"D @"D k!0r;mgsA9ٱzYKf&{0z.3 -}czkđ&zp/1Cy;Xg\_珍k:~/8|95x?O3@|qg8#_!KgϚ#6lC?Sk'͟&|10΍g=̘s=kEOSsM a+s/,ao"a<D @"D @"$_N:@"D @"D @˱Ezɝ۷0n10r+4Gcrg6cmmr/:מ9?穙6^#"|g%#y觹}-u3[.sƕWJ: pI.CAiy#"X2k3x~Y1LMOcmrcaM"u߾ƎcGF^V?\?;pZ{{WϘ1sf{4xx/Agx}D3;L.u ɱ?k΄c,X~p/5O ~3߅~?㽇gO=};^&c[]p}?,GDnD @"D @"i |O^"D @"D @B a"熿x?1絺q|?ci&vl̬_F2܇5gR_mp_ܕ5wԤh2o?7|Cw4s?6ʳM8%P᥼>f/:Re&ro9:|:SgrZiއ349rF}9ǾxG E`y#/y/k}_sAH,g<柜wD @"D @"H ao|?@"D @"D {$0aɝ7r _] Ifüsƚ3t˘es1s>kgEӟɳVm{̞s~9s}<3|^(6_γ`/3_0c:PM\2ck9 sO1X:sN=_O3ka=OM_õ<?g!d!ؗյ |c M"D @"D @"pH aoED @"D @"}H؋0{{M?_GWh1hq131jV_͙Ē._g&^~?O i5.kg5{[>L\3 >8yk>FM > k<}0¹v[=wa-(@KÈkkޓٟ3Cc1~vC`, +ct>WǟO0.@"D @"D !07a~>$@"D @"DE _dgg?{u ~1CSء/&-&vr,O6sb٫WfxcwM܋=1_B"~ĞGK*'ӇNzf-{ߞg4Z۟xY=;p_Z_l~)~>1s_b3G0g'{cgܗ3k~_[\b9F~1w9G/. e/ +p>䏏#ƣ!W猋/$/%+ύcVpر\1{gqcϹz9>αz/a~\w@@IDATϖGw[.`ɒa#z̈062b#L0gI%nY'vK)Ղ*䴽PDB.Z7x|z*WXC&Y45'gX:ۃ<|Nk˚3WCӃx곶1 E ?_{+MW5jp f/ǃ۝ YS5kgYyw{gf؟3ķv폠#{gvm2k}h;;.l} ?ß0|ɿϏewD @"D @"| $߾M??@"D @"95~1Ga*G&yRr1"{6Š6|ȬX,/[SM7{{Nu0jǞ;yLӓk>ˋÏ'n?kͯ$^9VRdzxP ?~Yx!g}]eF FsgYkl/Xٓ=}*vc K>W\Gy.--a76 _@#@"D @"D GA a=o8vD @"D @"K$̿p0qo810_B2+gWFs F1qEf rj7#'F#?އ>?Nkk؟Z95E,fP ụ&f+'. \YYp ĵmvLx Fg"D @"D @"p( 7 N"D @"D k!0r#ko}4n@o/%$kf/0 ׅ[=3kxsflao}g&Scvmڏc7\w\js-sg.8Ӄ_g N 8CQ?]aRx^cG-ef^:ƸuFEI}8=W?kQgo]X'cΎ/0aa_JZ"D @"D @E aF8a>PՉ@"D @"D x-_X;Sc#a+WXƬ/0aޚ\˙kk4pso8h'>g뚇s5ٺcy3rOεrak J@#b&Ո5sflݯ5V@_}Όϻ855Cyc a>-̎/2aaIZ"D @"D @E aF8a>PՉ@"D @"D x-_X7NOOn߾/u/@ H(3sƬx,g,?\b׶gмz{jƎ4!D w0v}rkͯ]<:bϞ˯5brf`%:c91sX 3ր.y޼Y|1﫟=<'xjLoo8;97ǸORvLG6]?;pazw}ϋW /Nj@"D @"D H}Ww|Ͽ}}]<@"D @"DK aX{0/U 5FL c~^Ze[GMyh3X3c텟=>o1a~kkr"=k܏兟k_ըB0xp1=u[sp9Nyџ>5{ 0c֠y33gYS5oc|~v\y{\]5uOka| wD @"D @"| $߾M]@"D @"DC aXHMk'cE#|WI5ʫ03b!Lj][^3oh_}5Ok3BY ijf&λQg˫fV@rqĮ񮩃" 繜1}kɳ>>ֵm4b{}c9mc/53c8_SM^'هf9>0F?{_;G-muhk2F/_kb0ss 93ۓ3rɡ1??|S'; Ma{)y.I[Z]pc?i~˟p#@"D @"D $߾M}D @"D @" $̿ѱOOOOܞOm3 1{^239Zg |e&C=갍g&N=3k|effz,۟Z\{ٟs}c9X=qz᧿kf<'^%ءs1jP^ IA􎟁X3jkcuw~|gq];o=ڟ}>o> f@0o"aayV-@"D @"D "0~#|0PD @"D @" /z,7n_q@@2kgTSP9c89f޾fΉyG̽5gbCq=iޘjrǚ83=r{ύ1ӿމ\ψ{%LlXNĘG}_cy{_jٟ:03r3|qgƜ^ZþYD @"D @"@pC}D @"D @"Z$̿={vgc|9cW5{/)=kM8k_3klo | 5:ikf&~{7oCq?m> 'rqAX¼8rxp qZ_c߽W~933yۗxŷv0[j{D @"D @"o8wb7#D @"D @_{wn}8n_mTʘi-_ey>=IV|9 AMkzcއ5{_DgccǸ".0}/ž53yeC`߅/ uG,1 Ψ ?Z>/wg˹f68s_`?8p;;.l7>?#e|| wD @"D @"| $߾M]@"D @"DC aX7n8;~61_FCfh5FlkFyư63"nɚص?= pf?f"{೿=rC Bk2.s!<<,Hy812o-\jٟXaq;1Orgco]YGά`|{ۗc ^ئ߽"5{<lƌwy@"D @"D H}ϛ0X>#@"D @"De濌;aɝ7?O@/cf5ۗuΞf^c\&F~cyqĐG袉6޽8kca԰:p٫&O޺6 _H!wg-ֲ9o/뒻_hv2 ' ۓ2^1|X5}۩AQ@"D @"D x_NX;e'c#m20b 8Ww^qS1gzF:ܱ܉<^ǽ=ïN{k](Xa`\b^zm1\?pMĮw$''}<B|sb3{ϭ{oc1|>xo?3VЄ} ˳j@"D @"D 8@U'@"D @"DH9}f/~tvvvrz{;Cn΅_G h3|hݫIl5kG3'a|5YO rfOQzc9ͱ&ֻ~%v5cM1yp_(|2e d=zƑom[8eִ51sշZ?~l f/={4~1eD0o$aayV-@"D @"D "0~#0PD @"D @" /z>C* ߾|.(?[?ktcofc\ׅqq=cVo8rD1[{{ޙ `]i[sY _6N9^j89ch3j"O+@|qg8#_!PՉ@"D @"D x-_x''y71L]o {c$V̯I??kۗjY=}4]<O?S>qj==9̮zFW ZYsy<}H|Y>kq<{2 u/ḩxόyoiA XYs/zڟz{oboc=2G1%?HXU@"D @"D $̟'?:@"D @"D @˱0;ozc|9ahQ+jWh>crg6cmmr/:9ǿ橙6^#"|g%#y觹}ͺYz5]SJf+%@$b!χ4ּrC,qىy5?Gޘu&觱?1&~ms:o_fc1~{_}cΎ|#^|/kﮟq80p"l}o D @"D @"Dono.>?~D @"D @"W%0r"̿qwh1{ c9ȈKf5Ǘ8fcL>e|So-451gW9~;Q5{󘹓"|ssg̘9nf{i~03{]~AٳX_0ԡ/D '9.~֎__0>jڟ8 ~ޅ~?gO=};;&L}\w}?֌2Q>G @"D @"D o@;߄oWD @"D @"H9csoOGEZ]8>14}a|6f/FKf~Ú3sz{/ʚ\c;rWjR M4kbLJ鷟~j[z&>jͿl+'. `x)/ً0sr>c-{Y3^/XgjQA[3pFf>>xޗXΨϼי#?'"0K\?>?Gx~1>&@"D @"D H}0ODs"D @"D 1H[9aɝ7>v/$1#zW[k-caogo9Or8W$Zy1{y}s栿i|>4μ3~{%zЋZ ;~@د> /a:uRX?@c92ck9 kO1X:sN=_3ka=OM_5s˂q{S=6/%/fsm}w}.?#L\3 >8yk>FM > k<}0¹v[=wa-(@KÈ_kkޓٟ3Cc1~lˎL61] ǫ<'$@"D @"D H}0x>$@"D @"DE _dȄb>C]1_LS[LX SlIJW:cصy>fcgY۟_&oꭩݴ>g98ükxUr^Kkq<lZoCOkOV?uz84x>39zO3~1,"0_Tksmtw}.?#뚃߻ڟ=gȎ|Q b wp\i0J @"D @"D #0>a(@"D @"D_h'wnpoc<Cm{Ǭ"s?c+gV=drS#l=q1ߺhf܅Aza,/r|f1XĐׇLR .׵s.-}zsX?LA=}?{b2zrkgYzb{ۗÓ ^^ב0<D @"D @"CH?>IOTu"D @"D @^S=2aoM?1Q὚h| Zg5j>8cr1l,w[X\֜5S=dM}qo.jXOڃ8̘lE]o QK0{>`Uo̚Z~p赮9_?kk{|ܛ=3'u=so~سN>kۗYg/eve0<D @"D @"CH?NTu"D @"D @^ c=a[o}4n1毢xj/%71k-gc9hG̚ABz~Y>~cɿZKJ-a@eXߙ3 ni.u<ˋeۚ@ǘg_rpKuXfD|a<~f5yYoO=ӧb8;} ˳j@"D @"D 8@U'@"D @"DH9cC?M6Ɠ#KHftlhĨ;&<ȬcXN33fhagЇ3{I[3cm SK# `S:aԳy\,~%Kq9k1 N?>6q L~[Yaam<3u]0cŬk3yƛCqwa$?` qdƋOؗ0<D @"D @"CH?NTu"D @"D @^ c=ay/o^ 1b/%Cf30gE[c^X&kog|l]y˚>3:cbm?Ǟaf{x_o,+r^䱗3LP\|]{sy``?YA 5xƎ4e3bvkRZs,"yg><{ӧ͎/2aaHZ"D @"D @E aF8a>PՉ@"D @"D x-_xo aM?{dͬetgFc1s?ߺ9_DcjYw3ڮ]cZM~be4USt%}gzk \{c(+LjK{ ⨅_ 5Qs=gjgvM?K:?뻟?dّ&?KIXU@"D @"D $̟'?:@"D @"D @˱0{wg ?b |D?>^]5ccޘ:[ku9ܽu~폆bGS!هso]{2[w,/`&WɹqC@|P.lmA ~@{Ό k/1byxgƺuc`>}]㼷>cך!ǿ?qE&?;IXU@"D @"D $̟'?:@"D @"D @˱07|?efΘe'ZqKZ=w]9cO }رf6`cƮ>@}F\ Yg,=fkry%ϵ؛75kO3}O-3w'w=)Wʎ|o 㼷{bZNp֠{bCwm5|\/9Cp"^gԷ~xNb߻.^>{13oAf7|Fb ?kmaqnD @"D @""w 󿋟9@"D @"|s$̿]0߻d b"c|9FysF:dsk ]}rW͡?m3k?bƙg͹aZij`g^{uF4!3xy7lcyu3g\v /c}ry ?68~,~7`6\Mښglmf3>Taƌg9b~cΎ|qSa{͵ ?#\!0oD @"D @"DH}0D @"D @"H9c߸qzrݛe/G ٣QV@<\355u #W}<55y9ygܺ;Flo,u8c`%׾pf gkb>5VvUɫC3Ь=go}|k㨅0Yͣ.mo_ qM sΰ?q}۟aP#sf{2sF39#cCodGA)w3Euz<#υ3iKK n?M߯~rD @"D @"D _ `#D @"D @93:aɝS1{f!f/׫CfGǚ490huAL,u1gc9\|SCMXǞsXNs1۟z;qd4xUBpxqZ cx8gf`ڟ8[kxƬX[s׸ra7óǿT$g-fC2okﮟq80pcqk_mD @"D @" '0η_~"D @"D H >a>xέM?1-VVS#eWz? _5Ԋu8'1=YFEسf>^}H{L0=c!b~㨵ߟ\c}9Q|aY[.lc9g5CgngE`͵yL/aqnD @"D @""w 󿋟9@"D @"|s$̿]0ƍ'}qxc?\~e]K-9>5þ71<}{'fXN y+ ϙ<|to첣! WBdf\x͘W]vb.v@"D @"D 8 y'{D @"D @"@Q|"?===sGVcBs5kk03b<,/Y[1]41>5ƻ@sm >aV9{u3=[fk>$Ǽ:o'ۙ~/,tky/|>>4s|i'Z4sڞ֡>Ǟs5oYgƈ#(;.w.0Ǖ6 󯄫D @"D @"1 !a(@"D @"D_X7n_̿1n̗y U|{>SLy\}~/;g kǙusg듏gݓW3f񻶿gYy@υ+`gc,>b!Xמvmr>+XksszZw,g g2>fOӳGO~!KW08+D @"D @"H?>IT"D @"D @^C=a!qx4a4hݣ'fmX} =Fe.{Ϙ1 h>[sQoM.Z>e]r5+aB} Ġ @IDATpa{@ 3zq;5^̙rayYX<+?zw{y>_ɂٻh5g7't o$?{HP@"D @"D $̟'?'B@"D @"D @˩0{wd |dMX#F_]j3}k=ΰ{`X"fџ\a_g;;>>9ދ3㸷gi{{^ KrYKo-g[a}Q۞WO5\sN}|>s﹵{/o 3&OaFJ0 aayV-@"D @"D "0~#0PD @"D @" /Ǻ}v̿/vNNo|ow͹0Qc|~m1c܁1{5ɞcm5Q=zf3&kA9i=jY;`9g೿9֤zWޏ5Įf]|#<a^Z^غ1\;wP8򭍟=9c2{C rך&3fֽ8Y{59g/$?,ϪE @"D @"DPoUD @"D @"B aXPqc(B_<Bbgcg.<|l00!g3G5=c8#xkp;3Xck.~֘F5K?ӿG>g _>iO=kg1gOf!Mc`z135k=kEOSsM m~~W(;} ˳j@"D @"D 8@U'@"D @"DH9c柞ur_u/@;-:jE 4b1T{L&3cME֓5<5k]䳶>aa74wӻY9k59_kj\l|B >ƚ7B.b%N1;1/&1g4'=fя}|.[GlX3O<|t﫯| 1oًesms<W!a\D @"D @"\@;;]W>2"D @"D @"_NX7n8;~:p~,l9ǯy'jfo3wR3xnWw3gmÌuy7a<ffO<>_"{ &:؟5g13ֽ0 GMܯuֻPCVޏڟx6[cɽOqgDokǚq<_&Ǘ0pD @"D @"DMH}0MD @"D @"p /u,|n͘>|Hx]K'3fb/,Ƭeh,3;د}Xsf.Yv]YkzGJMjfM,0O }\⸣_G Wmr% /1{5xN.Ç6y>soGƙwO>yd|U[/zQ{aC"L|_Tjh,g]f̞a z?k_gΩK|f8 w 53qNY1pvo &;žlc7y'O?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scyg6/~#чXÇa- @8Wnk.co|k sr0{7sFs7xԽ9O>5v߽>FsAx?Gxv@"D @"D 8 |gD @"D @"H aL07^_3v+I}jݾa꓍X#^Xc]"l,WL}5k~\kC55>g9򗗾Jbc-."RX![~3v!9YǙf]_ϳg&;Z| }iƐ/Oev\K {m#0y'OIjD @"D @"!07a|&I"D @"D DO/"'KHsuhOOB|0}WQ>aֲIAYYknA<%A~z!~WN\| geM.>90sc,~~b1x9q}9sO,/=[_u%[c3~gsk!to첣!0_T^ism |50 w?I"D @"D @"p<o&?d7@"D @"D x@9a[Cqxt~?qs<:cq #;sGMq.1yΞ<^ Ge {Զ3W6]9񒄵[/c^q~>~|0y8g-aKc;rΝ0/>Zw!kkc~1P8Bn Mhx<#υ3iKK n?M߯~rD @"D @"D _ `#D @"D @93:a[oܹs|X)Vd#=3yiVLİ6f,wkK=s^y7ic?y~˹Vm>#f]k_ K̅> {uLa,'tb㋢.Z7x|zV59[~W͌Y0[Uc 89E9Fkܓr1 UPŸ}qΥ_c@I=5`{gO z_=8sCO֚s_"3~1kX<3_tox!:g"D @"D @"p( 7' N"D @"D  0rG&͸c|1_>*WXC&Y45'gX:ۃ<|Nk˚3WCӃx곶1 E ?_{+MW5jp f/ǃ۝ YS5kgYyw{gf؟3ķv폠#{gvm2k}%n`C0g"D @"D @"p( 7 N"D @"D k!0r#kbM:UVYM?fcEl,m2hY3ȱX^ɷn`Z9=w.'5|έ?χ[/O~,2_+yIA  ;s0ͥgcya[(b 2חC\bˌ9><۟/&o^<ͱó'{Tg@0o"aayV-@"D @"D "0~#0PD @"D @" /z,|~G?xr~cD| Ɍx_^1uđ58b˩yfFߌ8̞3{pf:ikxzaji`ԠӛA3~jX3z1ޛ+ů$p).g-f'0O}9 3>gkfcMf{_!3xs!\?>̙$x Rg"D @"D @"p( 7 N"D @"D k!0r"?==q?ޫ!F_~u̜s欨qk=}kkS{Ϛ쏏5K<>5uYg}f[sZ3όy3we"WNK:Xq 籏kgZ31{5gȱgm6vDXˋ R?{.Pֈח˙y!8\a-TXr?O乶{r{fMcƼ~3qfyó>J1/7\w\>y?3q?/-_%/@"D @"DK aW_1o.>?~7]wD @"D @"o.cb>|tTW V411{}hfo5捣icsN,{c9ό~ȷ5:؇avO=\ˉ`O}s?~m|U xE9|HSK@oC {{W;qOW+MMbkf}6bϚ8F}m,n6z.{B.'<3OZƐs^\[l]ÜͬyƇ>̘9'_~ّ/n*w/׺>W?y+ߟmD @"D @"y |^#D @"D @u /gu,7NOn{qӿ|VY9{4 ȝk1ƻdD/8rƳ1='[מsgш崵g پΌlM]n_6y:> |hf|c쭏`3볶yã˼|!x'{s?̽*|xlOfa&~`?pM(6u~Ng~&mi w/YD @"D @"D#07as"D @"D ?'0rF"?===s{ ?}<:bt 4zu̘h31× 68̬'鱜wo⣿zhj_se\c-9腟X^ڟX{b2.ŨCyY/>$1~;~>^c9ϨO탏~kx3ލٟ5ƙwulckGó'}+^TþYD @"D @"@IC}D @"D @":$̿oܸ1~1M?aaˬRRMBu1Xy"s9'c3ְڟ:蟉1Ʊl,{cjɱksΠi=7|3SOz'r=#j^:>3G{13{cyp%qc9c9_3E}e갗\]z3svdxi Rg"D @"D @"p( 7 N"D @"D k!0r"ɏ~x㦟h^߾S7m~E~ucjٳ6510ou^褽뚙>;g߼Fɚ.paM\c!ù.>jqN~]r5#^k_!RssO X>gk ݘ~k7B.X}xOL`~H msms<l_6}o"D @"D @or׏@"D @"D r /"ݹgc|1zb R*cj=W~ٲ8FBJ 0#FYy xcd2N=iI- jӻU֕o>w18޾eֻq=65Ib;<ЛM}sV?:G<k≙{^D{'yi1ɥ@/Aسf&?a/X^5ž. fm>0ͻ[_?r'c1?F>e}={6˚x!\>oݹ{r, fUl{6X<ܟԔz&@"D @"D j_֘@"D @"DCա4_resW'xc4N2=,33x1I1l kq&73I\5s}j9f=P!f?,"s5և/%is \q$v.{`@k}ce}|CX3+|h{=E!2ye1xyܽw쒃![;췏D5/ն_5oy@"D @"D 1}[c|";G"D @"D Ԙ$*P󏎎67_}o1A03{^Hg__R>sn4=9b3dž=3;ksC13j[ ;9B0}ĩ35؛bK'^#nWjSn.υ͇wCs?䲦9=L;bkk{s83#[Xj,wNnvo-Ԙ!\9G @"D @"D1C#WD @"D @"K1|hҘOljyh4c?zLo?d[_v9ܓ۰6Pg'8f\3bѻg%eys!tm`g/:|mlA‚Ƙךvm}b<<+CXR59iyr17#Oo/59$ˇ>d@"D @"D 7›*Q"D @"D 3 PcP1hqҏǸ? ӫ̰=Ĭgc>6G1 !e}љk,ϏBczs1[S^X{[Z%v^Pl"d.B ˺EGs;9F-cf\8|֧ygK~sY0{igxr&:>d@"D @"D 75UD @"D @"gAJc>yp ^>2MFX4L6~d e~96dǞ<5s3q\O6bs=tƎ喿\ۧ95L<ЬE䰈^wG/|Ftۭo~|}}rs[6ow@>:ͅso}}>ܯNw :99]yiKic{#yH/4az3v:zi'Yk<>ƏXi= Cxrk}l5G.q=v:cNrgeX,E?|lsxalvsA>77z`G/d?< b1'3b潹Q9c`fs03ߘ/K>˳l@"D @"D 75UD @"D @"gB`cia@|Ph$Fkm06z%3yq=Tg :lzf'zP/><˙Ns=z9ebPpwPqP6r ~G :D?f3+؈ jXx>l3y#icGG~u}_>5YԘ_e@"D @"D Ԙ1_D @"D @"<5柏p77^8Gc|:=.#{aϠX=\̷ӓ=b3zח*Şn4YO=ZߡZtƏZ=>v]O+4Ysx͹xA/O>sXg1KMf!?c g=̈Ns|п8ƜϜC}Vߏ{Srx`5IԘ_e@"D @"D Ԙ1_D @"D @"<5柏P^ܸ~㤿c;LC9Qn0-/ K{џ5ks\kƎ~gXk x֟Y[;Kb}̞szaZ!f7',s&Dž qpHP%Kkp9?y9;[G^y&'@>4#aM8\{1gMY;ru8Dё)s,䐕c?ɍo;yx#!a]YU~{}ǚqZ<ܟԔ]#D @"D @"MoWD @"D @"1|ZҘ _Mھa|>=/,CKM2\56czooP5g$=ѬeXzɡn>%?Ψzֱ p@=K c&ro9x}E^1Co.lFb<:x؞_lgc댏ᏼ~Z~{MߘXND @"D @" Ԙ1ODs"D @"D !1r(GGGׯ6B2/$cblѷؿl 3bz㰡cO9l;'M6=b9o7?65YSyfTB§ ^Ѓ;z.^ g/Kc:ݦu_?@ceFI b皬#6`댝|>ԗN3+!<5ONC ;eƸu{l!<'iC-ka5ט8ND @"D @"m5|k\@"D @"D 8,5<1sܼq7W Hfz.N1؋Lc?k/%X zswoK^?=ќ;{kf y;!r;63>]Z<@/阡S˰k SG C mh9sւ yN7:9֟99Q.y;>XUc 僲toiUiCx~Z~{5oE @"D @"DpԘ1p>$@"D @"Dj:5֘qߍ7#g찯-w}a9CO;WfO:a߹q:f}? 6Y[U?qM<&gS<[{`C<s"oݽc-ZU#^6䏏^c~۟v@"D @"D 85|k?d'@"D @"D :D4o7q?7ӋL?1/!iz'=LKڈ>)sYD?IG{X{= ks._8p \qdֳruY2b`EP/b50F?l<\{|y@5_k,>;kcחc a/GZUGa{}ڐ?>R~Z~{5oE @"D @"DpԘ1p>$@"D @"Dj:5Әh̿8c?=9Rq<}6vmY߱\1{{͋6c~9c}}>҇ky^sr[b<'`惲F8~ |ۜ0w ۜ=59D?[6{F 1\󢣮y{6X_zxb3Ci?z͍~9N1GN_1 d~fl?2~ZcWoח|f4nmr{ݓA=k=^oyϹv~Nq^y(^=:k.>B:AQs.?:|=XTO2ѫ#l{q7jљ [wN>@A][1 Dž65_W@"D @"D xnj__ט>r@"D @"D χv0GGׯbc<j=fM/26ǠXAϞdMfM,vֈ=ӏYGf浞fFY61,;cGcsC,^!Df 1Y#03o̿{}?4}5g"D @"D @"/5/o75UD @"D @"gAXcI?1xh=63#zIw'X.yqC>bV}sԷzgm > Y>g͹V & 98b v+ut3`bFּ>go}ֈx87{f&y=4#bϚ3ygַ.B1|ofױ!C1k/ϲE @"D @"D`_j_טTy"D @"D @ z8/o̿8Ǡ1nWٞgcЋm,ffz5Y<洧C\scMkLe>:zI9~~^zYx!6>X2ӄBϽ35gw:?w7srx5IԘ_e@"D @"D Ԙ1_D @"D @"<5柏Pvi%$3}Ż+sǾc5?|˥癙fQCϬP5#ICz6ɥ\b6<6׻zrB>G}ύυ83ԣkk Г|Xav 0C:|#l}ey3cq&1xݓ_ā >˳l@"D @"D 75UD @"D @"gBJcn?{{/Fx)>df}F8Ԏ9:ُ{Ϛ5͋?:5gyYSg3̓1ky> 3#Ǧ.,;\^HĎ מf. Kꋞ\ߜX.bg9oƙXļqNrq^sb̲am.|qgp9kWֽia4_{o1 H|}!v0چ꬧= 3vb}6ǰ~޳'ǚ5zk1{6}Z߹1Xo8ޭϥO+6;sH/L -?A+81^æ~;$<\@XYkvfd9f@࿛uΌγ.Qs x;ynu9ј{~,"\:wEѼ(NWC#>?KC>w@"D @"igq@IDATD @;}csU0@"D @"Dj?֡4_9:\~ooDiv"rf(3ccx,_=4ϱ̹3_ژɡxَ=9Gԙ}v!waP3;zG@uX Nc.&H9lgiV.6/~e1Pnpsm.ƍ"ZrO3yճ'v|'wfq|vvbqɃۏq,>ժZ?k=fa71.@"D @"D BO67^O͛oܼkz|1Ԗ[8D @"D @"Dj?١4|c>tWhiC1~^e{7= "fX.6}|=:o9>azsk rۜ~LߥO+9w> .\I}>F~7vp{&ky#ԧbf_:̈9oyGbƆ5Y#?;w͗kGa࡝voh}Tu=m{^c~[6@"D @"D 8 Ԙh_z{igE=y^C#D @"D @"pY5On}N&>VK[nڼv/F?p z^n2GyndžqeЬE_urug1fL\l=ַW0Xs9pYlEş53~m,/.xwk! !5bsm,~ .oX.: __Ybuγksrv5:̊6>TaFg_1vɁX磭nOǣ_F1g~tk휙hՍ"sl ٺZWl`]~-Ƨeᥙ4k輌>zGvЏ\433qã< | 񡾍{s>Ľ*thg&36b>?;FcC򗖝Ǘqj^m50k(@"D @"D 1}[c|$;H"D @"D Ԙ(Ci?::ܸ48` {fCoN3 t2a?aό̬ѱ'=cQɋC k-cW7sA-wZO%$ۗppFN/a=|I|\w trX[e 9y=9գ>k7gu﬿#s}~Әν~#Qs~yϳ|CC1_,_EUs"D @"D @"pj_֘ƎD @"D @"p.E9+WoqҏǠ1azY;RA?4ǚ|sgaZla޹>yƗ<^X.B,:΍1c=v['7B6J(3ڽ3؄H8 ldžxnb̿N>j꨷~xvcab#Bg}ae[wNn990<Pj/ϲE @"D @"D`_1ds||o)olx#?|󍛛7|̆]>s,Ӷ\=_z1Ku^Y/Ygԟ읹LD @"D @"<5柏Py׮r1x)J1 켈~}Ygߴ~ a8zGf@@o?z9>ik}f>{ 7n!_kdM}]ZrpA !"}8\B8ؽjё ;y>< ?jݛHvvfw60=Y=4[o˙\[N#Z| iّUfH,kafw֏v*|5m7@"D @"D n|97^O7}vj?;sm_N՘?hD @"D @"1|fҘ9n޸qҏt -!u}GZ;>oլ9W`Wg^_Co61[#<'fcy=rKG8$N0aϚ\`{I{.f01hb7n}ȵ[岶p#7|`'YrX.kf3s>Pcu{l!];ϴ>zjv}ڐ?>0݆|5omD @"D @"<5y٫b"D @"D _OYJc+W6_}qҏx0M/CL23n1ưK!kr3oX5Y;קyљAlֳ> 5r[Xinzlr{.<:[^n}YwRV<rgAbrx1Ʈ ˼7\;:5ú׏fxLo\b.؛WQ<{o/.9<3-Mcּx6/AkX[_C"@"D @"D AO6s7^O͛oܼkz|1Ԗ[8D @"D @"Dj?١4mn\8Gc<~af4g_Q9kgyq1cÇ73;ksC13_̈k}!ck8v3XtO?ԗ_.z!w^ 6fsaԙCsikElǎio=|GX`C}K1N[NVc mj̿#D @"D @"|Sc>Т~uϫrRlzW@"D @"D e Ԙ>Ci̿rh|cYcĴ'fgoǏ׭ri__yf;=؏mi=ջ۰6=TK-3xǬݵ{ ?ƌc}=g%eys!tm`g/:|mlA‚Ƙךvm}b<<+CXR59iyr17#Oo/59$ˇ>d@"D @"D 7›n͗cej󟽳7%@"D @"D _KINcјq !WyO?1zr[_^>6"\l5gPG!Z9x/ς\e=߭o-;_X(2B^p`kr!e]բc{1cX.{tn{d kzS<[ %?9|,=4vu<9yxGgehowQ5/?ȬŇ?_~]{1{pZ"D @"D w@{D @"D @j?Jc>yp ^>2MFX4L6~d e~96dǞ<5s3q\O6bs=tƎ喿\ۧ95L<ЬE䰈^wG/|Ftۭo~|}}rs[6ow@>:ͅso}}7o B30cwט{{;cn՟zϰ>:Ĝ'džX|2g@cg1$|V֞5b^tÇ86 !\ؼvk:ӏxsgO vBfo} vis2#nޛ \=v? `63{Noj1<D @"D @"}_yOC^XOtw'7nn|3^Çvffqǂm5Eg_oƎ͗u%?{TI"D @"D @+}}0MsqC9x}Am|YӗL,:aP 66fzf'zP/><˙Ns=z9ebPpwPqP6r ~G :D?f3+؈ jXx>l3y#icGG~u}cɷKחs,Y>&9ږyZ~ I[?.=՘=~]-@"D @"D;Mql^z6?O?|٩7O ϵi :UcLu"D @"D @.NNcfsƫ'hOǰge[64k'=m$kGg~mv}Gf.we}΢},YgvO^բCg5~Ԣ&>9z,/'$xZ=gϚlΥ6 zIx:sa^j2 y/h'?gFP&\cC~~i}9|ro}Fwm<0O;ecyv 1$E"D @"D @75-?l^^/Pf^W1D @"D @"\@;|NW5x8M6 0| {]S _饦g~g=׷{ʚX}3R'5 C[O=9gr\:p"PX}Iavb^VıX.{5Ǚ3K~t |ͅM<؈SG ⋍su>:xmaXKN5_]@"D @"D xj_ѯw+*,G#D @"D @"D5?ˢ<͍Wt ?Cw1no16[F_61FqбXc&yA{ෛc~u)<3z{*!|/Ag=`/3Oȃ1n:Pɍ\2#֤k1 sMyuN>Kkt'Zcܺs=vX̪Z5cǯy[?:;?Ԙ ?@"D @"D #Pcη}~@"D @"D x>j?4s7r1|yL/1eu3{igm56c%d՞kaCoc}|ɋ1r?`go-Ͻ쵡7us'D.`cyKt%93tjxb Dqꈛa 7{ZP8їA?03c=']>6C#%1~||j쒃!|P#c>mvя_pmw_c6v@"D @"D 'Pcη٫b"D @"D _OYXcI7ߘSLþb^LX ?Y?_=kk|Z!%,fm}|&V5qߚMco}f \9Njy/yŁfXs!g8^|98}3rVz|>8ly?w!w&3xu)7uރerXtokUt{}ڐ?>~Z~s|E @"D @"D ϟ@;g@"D @"D =gu8bc"OKHbI?~s<6㇨Oznʧ>:\ֲ5}Ģck.o}b^9֞nρ?=şn @\>s]"A#}3Xs5:?_{|CW7?t2Co=f!1e%C`yKVQ^6䏏Ԣېm"D @"D @"OoWD @"D @"@:FcI?i/$ח3~l=FGYӟMl^|hgO{Cq;Q%>][:֟s/,p9s>65cxa p\쩁a}m&܊3bLyzu޳ E+k}֞qߘ?(P-MGCyxa5o\t5[D @"D @"D#Pco3XD @"D @"LJc /lnܸq?` ^>:wih&{t~3͞fb}X_>6wk;| !]'7Go\z[wW̋~εs|C='YpX.z֟s 89}zb<^gۋcO?TμƠa7:s,j:X[8.1Br@"D @"D s#PcP"D @"D %Ԙ>i?:ܸ~V`O1kz1>} z&vOo2kbFf6~:rx6c7oo43bnoWq0g1;Bkb?i8C}f1V äf| XZɅCcPۜS;g!2Wq1ѝ~cIo1<D @"D @"}1y#1_D @"D @"< 5O5NGFǰYlO??}rɣ5CGm, _X=Գ?5'?kk8duqnr~>mεz]7 V!=Wo1[1\87&35>{F<ǻGǹ33 =5]֧!{֜;uj-w'|3re_c~y-@"D @"D "PcF}}D @"D @"LԘ>ia|cI?sS<$/%c?^dmc73ӛL<ȬĘ,Ϛ7=쭯 䚛ekZ_g,3MMr?gCK (a~gl@ Xh˳ޅmNX#³X~xRwח&|>` Go}ogM|=ձ񽓇yH옓C C1O,["D @"D @Ep@'@"D @"D1|Ҙu'OOL0/!+Ϧ_c>GȬX.=7b}f̞:جOЛ9O.;AՓ<8{n|.,&p8@\e\Qs6:g&kYaM}f{^.KP΃s}t356w/$Lx5Ԙ_e@"D @"D Ԙ1_D @"D @"<5柏P󏎎7_}wc4CL1KI!3cf3:٦vt1~Ɵs}֜og}tl^y<˚:o숹X[gX=6Ewa  B=$vl8,0sa`^R_D<}r3k{ws)ӊMҋ8SogO N?lư0Ʌ?1#z23#g/xb#>=nzVsgl9,gvM=Kn;'990<Pj/ϲE @"D @"D`_j_טTy"D @"D @ z(捥1qO#';WMoӏ/ƬߚXȋM{Z\nb8oh :yC|_c;g`&Vp} @(6D=3̂ڙy?nnt83糶:Ϻ8F sk΁?}c;Fc;w=5L>˳l@"D @"D 75UD @"D @"gBJcWߏ1hv"rf(3ccx,_=4ϱ̹3_ژɡxَ=9Gԙ}v!waP3;zG@uX Nc.&H9lgiV.6/~e1Pnpsm.ƍ"ZrO3yճ'v|'wfq|vvbqɃۏq,+?OV>y2U"D @"D @j_~%N0}?{;;x"D @"D w@?Ci|yh_5aئaz?Ƈc^fo{E#cǗ\lZ ={t[s|Zs95k܏K VXs >|\;%b|.aG٭o=+zbL>GO8us8󎮭Ō =kF~w޽^'E`y"Ox.j}^?֌ǽǯy6仯1{@"D @"D "w5-~s"D @"D 1gu( v/I81EF!~ez^Nڣ<7c>dE_uro7 zylǟ5vl}{ɉ5z<ך E_XY3bG>8z|b_,66墳59!VQ<6'g>:Ωm^CͬhCefDoǜ-[Uc^6Gǯyۈ;טͷ]"D @"D @" Ԙ1D @"D @"1|VҘW'hO#6GrZ]dm__p>>F1g~tk휙hՍ"sl ٺZWl`]~-Ƨeᥙ4k輌>zGvЏ\433qã< | 񡾍{s>Ľ*thg&36b>?;FcCa}~y%h 1RD @"D @"D 5{*G @"D @"e5P󏎎67/>>bCfFLc11dm}3g?3ktefoX.gTo}򢣾B?ZՍ6\sP =]3{<>֢S %KyX<_==c/\lD'A~9\4s=&@Uc~DYD @"D @"@MD'@"D @"DY1|Ҙʕ7N4 L2kg^JSl:#&cE:cYc{swO%>6s#Pc= Ekx3O|&bTBd Gu~!8C6cC<71_ F,~PG5,>Ƒج?gg%^>s c;Y|_cN>˳l@"D @"D 75UD @"D @"gBJcW_}k9Nc~}IYgߴ~3~sǚ=kćX~j֟yM>u]3?=y 7TQ>.-^ N9 Ʌa>.!^\CȅݼPk?C$v;;3;`sƬ_7~Lխ{'~Hl-eˇdrWVժ^u:<ƭ~[{1{hX"D @"D w@;߾1;A@"D @"D{N4s7b1>~bzmHWGZ}gao28?x$^W|΃_tGt`v}ͦ9r|#5vt=g"^Xn 缴 F Y3˰,{/al~6fMݭvc\֘qf`#>ksy_΂wel<~Ɛc?G`=MvrXG^H,kaOjGWca=ND @"D @"E5|k[wD @"D @"!PcP\+~<ƃ1lbzǘv{?6_z8}Xo߹>5ȋ `UzNsc{s9YrCςk9k.8 ;c` ^Ƌ =0v}e\浾>!~4Sgbfs"s޼`#@"D @"DIjUw(GGGׯ7NǠ_r=/$3VЯ/)9kgyq1cÇg噝!GAg̅\!y޾l|i1@/7ϫeB7CЌǟxrYE1Ƶ5C t[=v9o v{Wo,5;'qJ[Vc mj̿#D @"D @"ԘɡP"D @"D %Ԙ>Ci̿rh|cYcļ|? O@Lߊriyn/;gsmyivggvG1][z3ǒಿ1yt!yn}شSӼc`C?zb}eO?_CVc^I{YD @"D @"@M{H(@"D @"D1|Әe48cazUfw~b1ό#O^~l5gPG!Z9x/ς\e=߭o-;_X(2B^p`kr!e]բc{1cX.{tn{d kzS<[ %?9|,=4vu<9yxGgehowSc^C{YD @"D @"@*Q"D @"D  PcT1sܼqx8/&#iftg?zoo2z߲o2cOs8kx.t'V1 l:cr{iNx.lqnm VhV" CrXCՇãgx͗w>#~:7?>@>>g빭I~7kZ;SY{B>̈|^ ,^V @k#1<D @"D @"}1y#\c>P@"D @"D x&j?nW_nl1wc|A0 4ۓm5sG4!dm<9>6Ě#8;1'泲|wc>yP_NH0edS_չwF ~ě={b#2{vsN똓1V_u\(a09ރo̿ur|c%DWc~HYD @"D @"@*O"D @"D 3!PcX1ư }n __H>n(b4ߵ6=kC<3 mkcZ=3~=Zloyczkde[e~Y2x x8~cc(Ƹ9x@? ~lO^5Y<6<G#?B>p/spJ,j/ϲE @"D @"D`_j_טTy"D @"D @ z8j1>Þizn=аgwdz{I֎=kK{|mbz_\,ra}fuP-: ~\G-j⃞sX;̮rB zp9<\Xmy'93&x1o}fs{9>_cgΡ>i}aPxνۏ)9<$j/ϲE @"D @"D`_j_טTy"D @"D @ z(GG/ln\qߏ1^bmj|ᅥϚdf]_t5YcG?3mYP&\cC~~i}9|ro}Fwm<0ˮU>c8-kaOjGWc.@"D @"D &Pcηɫ^"D @"D EԘ>Ci焯|Wcpc&ym_0o>Þf|g}e饦g~g=׷{ʚX}3rVrh2Qo=P7|gs=mg\8p Cy`ut%1ډexYaZcgl<8"/Y76`#N`T@IDAT1\mE?~-?ýͦo?x@"D @"D j_֘'9@"D @"D ԘS9͍Wt ?Cw1no16[F_61FqбXc&yA{ෛc~u)<3z{*!|/Ag=`/3Oȃ1n:Pɍ\2#֤k1 sMyuN>Kkt'Zcܺs=6X̪Z!|0k?Ow'@"D @"D 6w5o.E @"D @"Ҙ9n޸qҏ+$3Ĉ{zaϘcf|E،ŗXV{kb 9л%/z|@ȁh΂\?^׆<Νst.- FbtЩeX 5puƩ#n!6[9 kAy<G_Xwبo yPW{KAY:췏֏!Yl]b<#N=y9W=qt97vQ1]:kPΜ_lv s=.6_5ƃ |a p/8k>=c/яNB{9w¬3k]M.7n,_#\N?*w/K~IZ?ϋ׿Kg9"D @"D @"G a=os"D @"D wHVsrέߌ~=Ɠ11 #hGSFzf8SӬ8camX9o7zL4~oj㛵Ǡ5~j=Zuϵs?^B^yx=:{&\b0 tb㋢.Z7x|zIOTu"D @"D @^nLq/f |Tx&C:39YMijO&ر\oчzz6;E,f.k_ Os&>ĸ7\5|Af|6Z.5jp f/8ǃ7۝8 ̀YS5sgYyw{gf؟37vA=F.e<|W2o/9aq'?.ϪE @"D @"DX/'?:@"D @"D @X#gbOM:YVYM?fcEl,}33d"fcϓoM5995c{s]C3MOj[,/?6O~,W2_)yJA  ;s0ͥgcya[(b 2חC\b;ˌ9><۟/&o^<ͱLg[ KN70<D @"D @"cH|#0XD @"D @" c݊0d10_B2+gWFs F1qEf r<3oFOFffϙ}8~ 5̙~3^|㾔YD @"D @"@@U'@"D @"DHVo~6n1v~cjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{E]ky? 3cxc]ڼȥ | $aڻs!zoM b 0v,3ϻ &{QZך{wfٰ 8ϳ\{wٓϟ=m%Ȅ}# ˳j@"D @"D 87 N"D @"D k!00[~5Ɠ1 | ɚY19CtgFc1s_u9s?YXo/ff,];# 絚\h~]St%}gzk \Gc(3LjKw ⨅_ 5Qs=glgvM?K:?}>lcx Rg"D @"D @"p, oUD @"D @"B aa[s,/m/OvWWXmĢ7f~{G](D?x fbX=g\cd 1x3zXc^s:10>q[sMѓ?ٶ"$?.ϪE @"D @"DX/'?:@"D @"D @X"̿qzzrM~1cm T@Ό23gre?'\qK\=w9cO ̱cِg"c;;>9 ߕW.pHky1Agsr93O0g\1sX 3ր.y޼\]KMcƼ~3qfy'=Jٖ,/7[]w\>̬w|0{D @"D @"-w~˼~cv^ou@"D @"D HmEQ]5`X0ZcĠ?UVMu47c&sbٻX{?~|[cC}XkyoõlAڇ8cy'F5|\/9Cp"^gԷ~xNb߻.^>{13Af7|Fb ?km>|{϶E`y#x/k}_cx݋Y1}Az&@"D @"D &W@"D @"DC awa>~pqh14+ErR,u1bg?֢h_7 g'5އjI 5~y5!Y ijf&λQg˛."%~A0Ěr\<"\|ַ1j8==0gk3k3f>m4b{}c\3l_rk gp.Qcf^MSLJCc {_;G-muhs2F/_kb0ss 93ۓ3rɡ1? aÓm/lU^g/%\x$i w_⥳@"D @"D #07a 9@"D @"D $?h+ӓ;aO@G\3b>fs2\u35>2W3=۟Z\{ٟs}cͱ{Oy,/bO-رs1jP^ IA􎟁X.g'~5فo G]FM[ϻw6z?{|#={Ͷ@0o"aqyV-@"D @"D "0F$a>QՉ@"D @"D xa7/Wc W v3_J)V1Fkr3_d3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#ZFLlX.`1ϿϙԲ?uga.ggo=gƜm/-aq_JZ"D @"D @E apc}D @"D @"Z$?u+ϟOof16cg5{/)=kM8k_3klo | 5:ikf&~{7o#X{dM]|+8O₰&yq.p->jqN~]r5#^s֟!RssO X>gs ݘ~s7B.X}tϞ[&|H@Z:y.G8cqß`_mD @"D @"='0η_~"D @"D HoE=>sqӯf hUH{nl-C1aM5sΉ}Gf>l[c,w#>'g>z'=D<=lrxð,{5ƞS. fϘ}aح8j'c1z0Sr}\g5CჇgng"Wյ*#ǟ(_mnD @"D @"E |+~{D @"D @"!0ڊ0ƍ'qӯx2qh,33b1va폞È#f&^X^=Y;uYAgb5zbԶ?^^y|Znc]wJk><rc΂䜇cq|LxC.?ֲͥƚa_>3{[k, y+ ϙ15?>|ee! [WBdfǹ~=[bƟ]"D @"D @" yo="D @"D @^E aOOOOܾ՗c<0r=_H3_R9{fyq9sF g9kkC93&Fçx~hQ:9g.<}{2_,|#ч򘗛d=řn-ř/߇f/=S˞ְ8ZLc渶u聏x=f g|ۃ=9}V1o.=agʶE`*%qMK*8@"D @"D o@0}jD @"D @"p Cۊ0ƍoƍQ}4OcrӫG?Wε{Ysqfz}cękc՟{ƌco?Yc)p?^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO~?q'f["|$?*ΊE @"D @"Dh/$?GB@"D @"D @P#̿1}6n@ 2Cݱ{Ĭ˓_=3>b1 ae9X^Ǽ?15:k֜s[ >ka~{YyFcyx>1\؞<úŇsF/c~cayYX<+?|w{yg?QOw1>knggOY$?{HT@"D @"D $_NOT"D @"D @^nE=>s ac</h1ֈ+FWp?ǡ5od ~e_\3lǞ:=<{x/|'3rs?|ND8~u^jFbuqI.yupy 5qC;ߑ8 [r>|/jS{ۓ ɷkΉπOg|=~eatoUЄ} ˳j@"D @"D 87 N"D @"D k!00}f/tvvvrzG;cn΅_G h3|hݫIl5kG3'a|5YO rfOQzc9ͱ&滲~%v6cM1yp_(| 2e d>zƑom[8e;״51s7Z?~l f/={<~1e["K70<D @"D @"cH|#0XD @"D @" cݠ0OP> /$_y0]23y[uaahC{Ϙ[g&4s{=ýܙ>܏56g%*lt\sx9qsqPΨxbÌc6N? ˠ qַ~8̣>F=!(> .g"D @"D @"p, oUD @"D @"B aa柜|pߎ~97cF_w {c$V̯I??k뗠/jY=}4]<%~S׵õkĩ&^$??3˫kٳy(s=Գ}x,d罠3z sY?3}1cgiq2GM$?.ϪE @"D @"DX/'?:@"D @"D @X"?=}[70r+4Gcrg6cmmr/:מ9?穙6^#"|g%#y觹}-u3[.sƥƗJ pI.CAiy#"X*k3o~Y1LMOcmrcaM"u߾Ǝ{cmF^V]??pZ{{WϘ1sf{4?^=ƃf? |Ygv/\"c֜ ?kX._0>jڟ8@\g 5d?~j5ƇΞ{ w%L.VX3>NY1W%'>@"D @"D x&ӟE @"D @"\@ô"?ߎ1絺q|14~ab6f/FKf~Ú3sz{/ʚ\c;rWjR M4kbLJ鷟~jzI>!;o}p&NR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏xc|hg"Wյ |$c ONm}ƻM"D @"D @$07aD @"D @"-HlEzzzrM~11.$:fDj9ceL9̘9 {5wOY6=f9A~}9>GƙwO>y2 ^^^y~y9˥.3fOf`=dS ϋ3|m>F;؃?\3qNY1>xxvorMˋ}ŋY]k] n??0?av>$@"D @"D &\@"D @"D V;~3nb>bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٕ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/uo}. 僲(w֏\?^#8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/Kex*:B3,y 3b2?ygX#?1֛!38ӬkC<+/i~frObf 9b=̶E`yi~^k}sA,g<'$@"D @"D v$_Md7@"D @"D x@َ0db{}==1_B"~ĞGK*'ӇNzf-{ߞg4ZW۟xY=;p_Z_l~)~>1s_b3G0g'{cgܗ3k~_[\b9F~1w9/. e/ +>䏏#0Rg'3#\k_u1?y#{ˋ^ֶ?~}䲟{oZ|5w?1{~1gȶE`yQ b wp\j0R @"D @"D #0>a(@"D @"D aɝ7?7zcV`5ZdΘ1b ?{fɬݣMfM.153gk?뫍fƬ]g誉1 89E9Fkܓr1_˄p"`p1.?p_si+aG~f b ^ޗiГŗȌ_#=k֣?[l3xybq_GZ"D @"D @E aIc}D @"D @":$?Lucߎ~17c{5ՙ11jNSC}2qƎRx{>#׳o-b1sYsjxzO}p5q!ƽẨa=s0c泹uQK0{>`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FEϟ l~;x >aqyV-@"D @"D "0F8a>PՉ@"D @"D x-ƺa;o}:n1Ϣxj/%W1k-gc蛙&5x|kfoɡFY|8{'2_izRccy|P>~cɿJSJ-a@eXߙ3 ni.u<ˋeۚ@ǘg_rpKyXfD|a<~f5yYo=gb8^r㾉YD @"D @"@@U'@"D @"DHVP'_ƈ]>2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\a0Y<{ob.mt@\ø ?, 06:̮f|1bG {5}[c,yƛCqwa$=xx~0ؘ$?.ϪE @"D @"DX/'?:@"D @"D @X"?==qӿ#WCKIꐙ9L3>YQ;>z8ꥉܟ5k3[x|k,/겦瘵Xg؟=gE.y%9 fi,~skgC ^cyL0u݋ܻ3ˆexy#䢯Ξ|m-E&?I\U@"D @"D $_NTu"D @"D @^ nGt1ޘ_KH̊Y0 ׅ[=3kxsٜyM4ƚ5~{1{7cع9o.8d'JF뚢sg.8Ӄ_g N 8?CQ?aRx^cG-ef^:ƸuFEI}8=g?kQgo]X߽1g# Lܗ0<D @"D @"cH|#0XD @"D @" c݊0{|pg1n|~}j o&1 uث&8r{ڟ 79\7 4~{P\gΉu9glݱr[\9'JeA% 1KlĚ9363 c߯gƈ~]?{`!<1wkz0㇏̶E0$aqyV-@"D @"D "0F8a>PՉ@"D @"D x-ƺaӓ۷ooc vErfh9cVw1{9gȱgl6rDXˋ R?{.?Pֈ˙y!8fZ~psm-bZjO3}O-3w'w=WʶD`yZ:y.Gef;~ૄ?E @"D @"|o $_[;]/{x"D @"D @n+_GϗyÊ?&1~l⭣ټq3X.g ?{|sbZ0{'D gs z'>Ĺ ?qW6 ^רB0xp1=u[sp9Nyџ>5w 0c֠y33gYS5oc|~-y{Y]]k^y '{6@"D @"D W$07a⧿g@"D @"D   ۟O@!F^-2ƗjgaW+MMbsYl%53qލ>X^lt.{B.'<3ⳟ5!W<ǹ&w?>ټƇ9[Y}1YsN,a,/nQ^luuw}.~??N˷]"D @"D @" $_M?{u@"D @"D HV7n~g_|VY9{4 ȝkc&vwM4Ȉ_p|gc{N7=h:10fk_c835u13lr:> |hf|c쭏8j!ggmˇGۗy6zB\C3Of_~{?T̜ٞLhMlxa~:~y/%iMK n?/_/@"D @"D @ g@"D @"D M aaF[柞ܹ}2:bt 4zu̘h31× 68̬'\G?em~fcykbEkŎe\QӇ^x~Hb4< w |ޏr9&>!>]G|k8z7jggzսÏ#aǏΞ3@h} ˳j@"D @"D 87' N"D @"D  00խoܸ1~1OMaaˬRRMBu1Xy"s9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;q2\׼u&}Xg93< bBss9#w>gqw?87lcxi Rg"D @"D @"p, oUD @"D @"B aa[?z7_1#`G7<#׿~IYn8Y8꜉Xgmgskc`WOkQsC>xq cx8gf`ڟ8kxƬXsra7'xL$g-2C2rV]??p<Wlv0j{D @"D @"9wb#D @"D @/x+|[~57c'F[ 2Fsugcn~翏AfkpN,>c<>z0;yfcGaM>99>;X}&1yeȕ DgL}`1?,GDowD @"D @"+H~0_3G @"D @"V7n8{~5Ɠ1_FCfh5FlkFyư63"nɚع?= pf?f?"{೿=rC BkW2.p]Ṑks$<{s`sruo.O,0 8a'Zcgco]YGά/. ^ت߽"5{8΅3$e/hD @"D @"H~ϛ0+D @"D @"* _EemEzzzrOǭcBs5sk03b<,/Y[1]41>5ƻ@sm >aV9{u3=[f+>$Ǽ<'~/,tky/|>>4s|i'ZbB3ǵ=C|ۏ=1k8#1όos?8GP-lU\,aKm_ W@"D @"D xc'o#WD @"D @"+HV7n_̿3n̗y U|{>^=dĭ_v5S֞+73S'#R@"D @"D x a!qӯx<a4hݣ'fmX} =Fe.{Ϙ1??Ѩ}Y朣ޚ>]Y,|˺k6Ä@>䁌,g p-> 3z3gesc\qe>9z,Ysvs8;{zfo/$aQCX"D @"D @F ap}*D @"D @":$?Lu+|[|@F4X191~&g+zas?1E{??3w,w}.}&rgqoGW3 \ KrYK5ga}Q۞WO5\sN}|>s﹵{/o 3&G{D&?+H\U@"D @"D $_NTu"D @"D @^ p0/˝?ss.t=_>fF[9wCk^MgsX8rGT= ì|jk0{ZZ{o55ߕcM.Yk!ϻjFc.{L 9=>3|kgO:9/ܹ}Ɍkyo-h9` fk03|~1$-^\㾑YD @"D @"@@U'@"D @"DH}2"Y@~!BP΃!$ƿ/0~蒙:Ƹ C m{ƬZ?3q䠉c?K goy~9~?k,Wcߏ#3f{_?f1?>eA6AHw0<D @"D @"cH|#0XD @"D @" cݎ0;v1C4e[gx3{&͵g~M15Y_}'VZY륩eX.?5잺Ň_#N5q'19'X^(p]ۿ|@/Ξ5GlC|Ї4~Χ53KOf!?Mc`z135s=kEOSsM m?xtŕ9ʶ@0o"aqyV-@"D @"D "0F8a>PՉ@"D @"D x-ƺa;'wn͸_h%VG]8ZX/,c>e6v,O=>l 7V|?WWl F0`I"D @"D @.M a]._~|i%D @"D @"D&a7Nnާ_?c(EH-1dZc||I9Όc ?6Qg>EOOc]Ss{М׼5X7;)<7ڳ߻zƌֿ0cݯ+11t6 KdZ?c~R~ПLY;ru|t޳g-epٷյwǚqZyJ/a>@"D @"D &07a/@"D @"D2a>7vL_t |T$<% 1~=4Zj4s֜K}s}qW;ߑRZhY˰?>LSC|'Ky qx죆K6t@ K s<' <eov/$1#zW[k-caogo9Or8W$Zy1{y}s栿i|>4μ3~ɻQ6_γ`/3w/ȋEh&X.u1{҇5'kbx^}9/Gk50|/Zs˂؟qó{{lX^+^Z_\?>vY1 &@"D @"D %07a]"D @"D $?>"ܹqӯ$3Zb=e}3FLZdWsf.KWkɱg߽}O,u~3F 裹 Y{3ֱ<&b8>ήl^FQ1CZ@3Oy3 pp]X ;=}9:0`doPgo.}{s5vf,Ea{յ~vjc ~E @"D @"D`;&gD @"D @"L aLlLq/ch;Ť>Į_X0qN,{c1{c6qQ?MkޚMcof3{Qo?\/K_&UԱa),x?3v?!9YǙf]YyI3G>~z޾4c?|e-K[Z]+] G`??0?a']"D @"D @C ao|&I"D @"D Dv'd1|<+ \8Zr'_'V!>q>tҳ(0k? Z*cZ9WM ށ vp?fK'N >xlሙ&|91?C?}8羜'ĞX/ݺ1ۏ3uȹ5?~?vf,/{Q^iu |c ~E @"D @"D`;&gD @"D @"L aLlGl1:g\|!~)B,X|n{ƎGܣ&8[ψ`<K-aKc;rΝ0/>Zw!'ӏbA㥮 -y._ִ~YD @"D @"DH~ϛ0}D @"D @"fa;ܹs7_d |twt+LJ<4G&XbX3;{5[9S/ͼߛf{1w#f]sυ3@>{dO<Ξ !Xgm#ރ~>X^O#|ؓo}ⳮ9w?8G-ˋZU;KRUp"D @"D @W GF@"D @"D W 00OOOܾɸc<Cm{Ǭ"s1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMya,/r|f1XĐׇZ&qyeK l?\>{0krO-lϞL{p 5=.Df9Ycְyf|翘ed!:g"D @"D @"p, oOUD @"D @"A aav1/ޫPΌquVv꓉3v,:ۃ<|Nk˚3WC=Ӄx곶1 E ?{3͵֨Ku\ u` v'u|3`b8CyܟYcg ?=]GP=k3}5z-n`!KN\ ˳j@"D @"D 87 N"D @"D k!00qӿ0ţUV~)Yh=Ě6|ȬX,/[SM7{{Nu0j9Ǟ;yLӓs>ˋÏKWJxPj/Μp3LsX^<(}?,<뇇3׾X2#F#x3ɛ5zs=;M$?.ϪE @"D @"DX/'?:@"D @"D @X"燺?7z7F$̗3QwLyjY3#Ƹ\4ٟsfCC'm [5O-"sz3qzO pQ:{si.,8x5P0}o=gapهav 0Ì>bcl#d3u3cs'9óƌ0/%aqyV-@"D @"D "0F8a>PՉ@"D @"D x-ƺaeb_JW9gjaΊ7<DZV/M<\Xӟٺ^cyQ5}gu8Ǭ~ޏ=̘93X|6/rĽ.H-c/9g.0Hc[?j.fŬ^Ԥ&ޝY6E,;!}}tghm/2aqHZ"D @"D @E apc}D @"D @"Z$?u;w0֧_d =_BfVL0y?f.4Xkc̜`o]{h15֬ۋٻKm1~uqy&{?1W2_;sIęZ<{q Wpq Z8j,3?fgM.g1ƽܯ3B/sOf9]ӏ:sRgOg9^`㾔YD @"D @"@@U'@"D @"DHV;0qoGU?V~=6Y_`^5Q3[h.߸qhۃ:ҟ8pNk~9\f兖a?9W2.w,ʅ-(я8Xbf#|ϙy?טC~m|83F>֘q 籏sg\3?|we-Ȅ}' ˳j@"D @"D 87 N"D @"D k!00֭oܾ}_/"3G\b?@>3f G=c]sSh>s.f6`cι>@}F>\ Yg,5{B5 Kkk7o,cosR|1﫟=<'xjLoo8;97ǸɽgϸR%GV]??p<Ÿ/3qß(_%/@"D @"D{K a2.]}=w#D @"D @~w[b>|tTW V411{}hfo5捣8ǘXr93^ϯ#֘c췆q=p-'b8kЃ=!X^QF 5 s<H}8:Ӈ˹wxLcЇͳ?>ѵ9Ϛ/mX+ZX3^#|_>a{@"D @"D "w ?=s"D @"D H]mEddx:Zd 1wh1T< 9#F2{Ϲ.>cW<͡?m3s?bƙg͹aZij`g{uFbgC,f.񬙉nfg8t /c~ry ?68~,ol >9ε5qO5>̚g|ÌϚsbc6F`yq~bk}sAxY1ps]"D @"D @"7O ao7٫c"D @"D @ì"̿q7?7roG ٣QV@<\K3skAFd~E.skG]><߾̳+a0?GdfrGOGCod [YDx</IkZ]pc?yWx,G"D @"D @"$_M>u@"D @"D n 3ڊ0EŸ1{f!f/׫Cf9^\X.ks85wˋXk/_(v,\>Cag~05 }o :Bv[~Q׻QS?>8~l>?~twϞyB-E%?H\U@"D @"D $_>IOTu"D @"D @^nEƍ}:n]f̗j#>Gǚ490h9so Xc{r1rqoL 59cM{c{ύ1?߉\ψ慬#0x:ϙqaC 9ü79_\̡~{07sYn;(SP)lB&G#~ O?_Aj\e \jdP!wRk#s_SACiKy|U|?g^>ss9#w>gq~cs1}) ˳j@"D @"D 87 N"D @"D !00֭?~7ce  zk_R{䩛6q"N:g15YSsqov hUH{nl-Ck&Z>Xm61;ztꑏy3c}g"6\H{a cσ)~g̾0Doc\_yfpF=_ey ~>X.kf3sy/{mX^+^Z_zX(_mnD @"D @"E |-~{D @"D @"!0ڊ07>7f'c(G23/&#lWk9>8aMmfIeܓ5szP5~'V'Fm=~^emEg{6ޅxe\u͇ByxYp1ν =0ce'ZֵԲ?X3+|Ӈwbfxkba2ueA9cP{cm/lU^ =^l%e/hD @"D @"H~ϛ0+D @"D @"* _EemEzzzrƭcBs5sk03b<,/Y[1]41>5ƻ@sm >aV9{u3=[fk>$Ǽ<'~/,tky/|>>4s|i'ZbB3ǵ=C|ۏ=1k8#1όos?8GP-lU\,a+m_ W@"D @"D xkCQ"D @"D 5$? m+oǍQ}4OcrӫG?Wε{Ysqfz}cękc՟{ƌco?Yc)pݿury |1 }Q}`O skO`?9y|ޕaҏ5ƹ{r9=;K g2>fO7=ٖ,G}% 󏊳b@"D @"D 87' P"D @"D  00φ0ߌx h*3GOڸ[sQoM.Z>e]r5+͎aB} pa{@ 3zvj[3LJ9gap}FRG=MxD99??2ُN{0!aQqV,@"D @"D G#0F8a>Q@"D @"D xa>-_t |dMX#F_]j3}s=ΰ{`"fџ\ag;;>>9ދ3㸷gi{{^ KrYK5ga}Y۞WO5\sN}|>s﹵{/o 3&Q B$?.ϪE @"D @"DX/'?:@"D @"D o@Xu/~N/v|\?58|ϗh30f#Wk>1&\գgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bnsᾞQe六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X _̿{xbe["K70<D @"D @"cH|#0XD @"D @" cݠ0OOP> /$_y0]23y[uiahC{Ϙ[g&4s{=ýܙ `]isY|lt\sx9qsqPgE/28'cg0㘍ϬqFBx2a8o3>1󨏑7n?PՉ@"D @"D x#ƺawb1C4e[g; M2ku?dcjֿ~ bO晵سKS\gj؟=u];\FkEObssN<뱼Qum8{\9eg}|@9zְ\c/=l4qSqnѽW(^X㾉YD @"D @"@@U'@"D @"DHVܹ}q?1#(GKZQBq_X=&xh1&wsɚssis5.YgmfX00nj~;{R9s592kj\l|B >ƚ7B.c%N1;1&1g34'=fя}|.[GlX7=>l 7Vb+«}+wHV0$@"D @"D W&0w~N/vy?2"D @"D @"&ao|6n3\ȈKf5Ǘ8fcL>e|So-451gW9~;Q5{󘹓"|ss=g̘9nf{i~ 03{~Aٳ_0ԡ/D '9.~֎\b!?`|Դ?q@\g 5d?~j5ƇΟ{ w%L}[]w}?֌-GDnD @"D @"m |O^"D @"D @B aaZ[s_}cjc"y.yj]|13CF`?a͙g=W=ܗweM+5&5 O?5wr$_>jͿl+'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<=xKٶ,oeukw}!?Z0''b>&@"D @"D H~0ODs"D @"D  $?V"?===s&ߎ~14|!ɬѻbXsnSl3f~8Ǟs}sAxù"ycss_3}N{೏qOk_^^y~y9˥.3fOf`=dS ϋ3bm>F;؃?\3qNY1>xx~orMˋ}ŋY]k]_n񏿖?#bdFKGst菙Qj%\t={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٵ͋_H!|0j:faX 5p0}#o! kAy/X[F\\%/uo}. 僲(w֏B?^-Gxv@"D @"D w &@"D @"D /H2=11| M1:cbԧ ˱>8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/KUWyU,uŅfX@ g8>9bs92?ygX#?1֛!38ӬkC<+/i~frObf 9b=Xf"Ea{յ |k<'$@"D @"D v$_Md7@"D @"D x@َ0db{y ~1-2zbD,< =W'=\UO,ʧ?>Z=:ir1?9{U=w3?\/ϵ8ʉSp!}8b澬2f`O,f508y/g'<|}K`s>cLrn1_]^WZ]Gaw}!?Z0 w?I"D @"D @" |o3M"D @"D @^&0e&z#go}>/P^3.\|!Gg~>7Y=zdcrYlg?kKgi'=<.z?:2ky_s jߙ+ͮx a拲xpİW0wgs 簿g%Wh9Nu~}޻ƍkk齱M?(lx~r~hxD^5-a./@"D @"D @~< yx:G @"D @"u 3ڊ0wNܹx2_>:f;bhÈCLgj#g,1˝=cRfMm|v=OmrY?~}.~_υj/s!/e}<Ȟxr=.1B:EQs-G<>b|쩟emG.ݱ'g]s{Wp%l[w.0Ǖ6 󯄫D @"D @"5 ׯ濵\"D @"D @A aah柞ܹ}q?t FXϞYm2khY9kL4c죆w3|j1ksqjb'9c{C._2!Nj0^v/Ϲ}`0#g1~o/AX˴gb\sKdƯ5f џg`w_O~1#aqyV-@"D @"D "0F$a>QՉ@"D @"D x1a_|^M4>bufs dPLc1l,w[X\֜9S=dM}qo.kXO܃8̘lF]o QK0{>`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FE/ lq}Z"D @"D @E apc}D @"D @"F$?u;w/lOc ̟Eh$_Jc-gc蛙&5x|kfoɡFY|8_=Ne>4ƜϹc|ǒ-$Z€˰3g@ \x6z5b? Ǐ1 s}9̵/󰿱̈#y.2>k{<:gq} ˳j@"D @"D 87 N"D @"D !00֭OM<Ӌ#KHftlhĨ;&<ȬcX.gfш9ggFF j98s阮u8ègԺ@IDATiYʉSrb~|qm<(>Է08xf0a؋Y11guoo:ę1LJ9ӓ[c|AbcƋOܗ0<D @"D @"cH|#0XD @"D @" c݊0tbM8_.n^ 1b/%Cf30gEcX&sog|l]y˚>3:cbm?Ǟaf{x_o,+r^䱗3LP\|^{sy``?YA 5xƎbyC3b]w/jRZs,"y˾ֿ1|w?3f["L70<D @"D @"cH|#0XD @"D @" cݎ0!̿ٸ7c<1`ϗ>4aޏKMzf43ٜyM4ƚ5~{1{7cع9o.8d'ZF5E\qA q1~1~;äw ZٟYuq=ܓ8pٟ{ffߺ٭˱{c6F0/%aqyV-@"D @"D "0F8a>PՉ@"D @"D x#ƺa>"j10d{uFM,zc/WoMqsֵ??nr7n-h'>g뚇s5ٺcy3rOεrak J@#b&و5sfl5f@_}Όϻ.qFkkQ89{3v>z;cm/2aqIZ"D @"D @E apc}D @"D @"F$?u+ӓ۷o/c vErfh9cVwo1a~kkr"=k܏奟k_רB0xp1=u[sp9Nyџ>5w 0c֠y33gYS5wc|~-y{Y]]_5u/y '{6@"D @"D [$07a⧿g@"D @"D ?  ۟1CC]2Zd/'(xΈQ#vsn-zX./~s@L܏qfYs}V0X^sK,g%+g?k}k0CysmMn|ӳys6*0cƳX~1?8ØX^ܢ߽Z_B?^-GB9a.v@"D @"D '07a1@"D @"DN aaV[柝~_|VY9{4 ȝkc&vwM4Ȉ_p|gc{N7=h:10fk_c835u13uC3Ь=go}|k㨅0Yͣ.mo_ qM sΰ?q}۟aP#sf{2sF39#c|x!7uxM ,uzD^5-a./@"D @"D @~< yx:G @"D @"u 3ڊ0Eո1{f!f/׫Cf9^\X.ks85wXk/QXŹ5}(/$F z `,3jkcuw~|gq];o=ܟ}>= f[ J70<D @"D @"cH|#|0XD @"D @"  S݊0lbMaaˬRRMBu1Xy"s9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qe4x]Bpsf?/O{>[cܽޘ%?KI\U@"D @"D $_NTu"D @"D @nEOM/c=Fnx[Grݳ&Oݴqq9f쯞Zy^kf>ak1r7NߵvD..k@{_!}p!%|X305wo"588q?3p60?܍Y?7q#nGOH.Z侭տ~~㿘yWzv0gj{D @"D @"8wbO#D @"D Ϝ@/x+|[~3Ʒc'F[ 2Fsugcn~ _5Ԋu8'1=YFEسf>^}H{L0=c!b~㨵ߟ岶ṛ63O-]rY3O9Ԙc 9ƇCmJ^bVv׫-GDowD @"D @"-H~0o3G @"D @"Vggg'߿7c<C8e4h|1aZcGađg kj3Nz,/枬Ӄ̠g?=1j۟\imzl/k{/>C-1.Ļ-k><rc΂䜇cq|LxC.?ֲͥƚa_>3{[k, y+ ϙ[l3xa~JޯgK+a.~1GD @"D @"l@{ބ[DvD @"D @"WH**o+ӓ;o~6nO@/cf5뗔/tΞfc\&F~cyyĐG袉6޽8kca԰:p٫&O޺6 _H!` b wp\i0J @"D @"D [#0濵\"D @"D @A aah[柝_̿;n̗y U|{>^=dĭ_v5S֞+73S'#f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݱ\b8O<1g ~r1G珟 ͶD`%?+IT@"D @"D $_>IT"D @"D @nG67>7fc FCV=zbƍwcWό1ŗ.8|u{l5P'FQgߚszk`>wg-ֲ9o/;_hv 2 ' ۓ2^1|XõSxz̜o,=>y?=6? ksuPՉ@"D @"D x#ƺ}~̿owON~;B٨1{|D @?1sѽdX6q=3{LJY a03kRk+kǚ\bg.>Cw0/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`fb'-^\㾑YD @"D @"@@U'@"D @"DH}2"Y@~!BP΃!$ƿ/0~蒙:ƸK C m{ƬZ?3q䠉c?K goycLs?؜z5eߏ#3f{/8/9;ćl~f3SAs~oq9ǏG}u{_m} ˳j@"D @"D 87 N"D @"D !00ON>_j.c|=ݱgh\{${SÌK{b5ϬŞ^Z.O?SZ|5\G/z{؟s]kٳy(s=Գ}x,d罠3z sY?3}1cgiqߍ2GM$?.ϪE @"D @"DX/'?:@"D @"D o@X"?=}[ivA9ZbuԊňR19ƳF̌6kO֜Lkvs>k3Lƒș|9^SJf+%@$b!χ4ּrC,qىy5?Gޘy&觱?1&~ms:o_fcy~1pg[ /յw/t8\0p_^5~-<[C&@"D @"D 2www|w_|/D @"D @"%00Nnqӯ1ΏEF$]21>g1{g(3O~k᧧9[zhkމh̝ٛ k]=cYw0cݯkMcc|t޳g-e?Zf|k<_%Ǘ0pD @"D @"DmH~0mD @"D @"p ڊ0Wc</ kuPL٘Y-5efk̥>빿ᾼ+kr]I-4Ѭe~o%"8h~Qmg\9qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>_"ζE`y#x/k}_ AH,y'?96@"D @"D @;߄~"#D @"D @H aᷲaɝ7v ߍ] Ifüsƚ3t˘es1s>kgEӟɳVm{̞s~9s}<3|^(6_γ`/3w/.ȋEh&X.u1{҇5'kbx^}9/k50|/Zs˂_q{{lX^+^Z_B?>va oM"D @"D @"K aoED @"D @"mH}lE=>sqo$3Zb=e}3FLZdWsf.KWkɱg߽}O,u~3F 裹 Y{3ֱ<&b8>ήm^FQ1CZ@3Oy3 pp]X ;=}9:0`doPgo.}{s5vf,Ea{յ~vjk<'$@"D @"D v$_Md7@"D @"D x@٘0q?/ch;Ť>Į_X0qN,{c1{c6qQ?MkޚMcof3{Qo?\򗗾JΫbc-.4"RX>!~3v?!9YǙf]YyI3G>~z޾4c?|ɗ2- {/#_0?a']"D @"D @C ao|&I"D @"D Dv'dch%$byW@:qOOB|0}gQ>aֲIAUșsnA<%A~z)~WN| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gsk!|oX^߽Z? AH-y'OIjD @"D @"H~0;nD @"D @"2/3ѳa;Cqox|q?q <:cq #;=fs>Yl]b<#N=y9W=qt97vQ1]:kPΜ_lv s=.6_5ƃ |a p/8k>=c/яNB{9w¬3k]M.7n,_#\NoAaK][DG%Bx$i w-},G"D @"D @"H~ϛ0 9@"D @"DHVsrέOM<Ɠ11 #hGSFzf8SӬ8camX9o7zL4~oj㛵Ǡ5~j=Zuϵ~.Wxy y)}@ēpX.Љ/~k <=eOx/k>rg=ַp->뚃߻ڟ=/qd"Us;8I%\G @"D @"DH~u0}jD @"D @"p  Cی0훟ycV`5ZdΘw t~jYG̚\Ycjg3>f59[~W͌Y0Uc 89e9Fkܓr1 uPŸ}yΥc@I=5`{gO z_=8sCO暞s_"3~1kX<3_|ox} ˳j@"D @"D 87' N"D @"D  00Ս 7joGj13cch$d˥ }GgcZb 7P ̙3^|㾔YD @"D @"@@U'@"D @"DHVo~>n1rqcjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{e]ky? 3cxc]ټȕ | $aڻs!zoM b 0v,3ϻ &{QZך{wfٰ 8ϳ\ɗϞ6^d㾑YD @"D @"@@U'@"D @"DHv aM{dͬa ~p]j3ֈǘ9`o]{h15֬ۋٻKm1~uyy&{?12):w>3=xA1s&祿;q/Xf~Ϛ\Ψc{_g^ه3s63u֥n_οs1}) ˳j@"D @"D 87 N"D @"D !00֭waWߎ';ثFp_6zlb^|Qzkr.gp]̵qh@uȥ?q8[q[sMѓl[x Ng"D @"D @"p, oUD @"D @"7B aa[柝ܾ}_/"3G\b?@>3f G=c]sS4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzC_: +Fk>jfbcsN,{ck/okukm[8X{15X~,/](F 5 s<H}8:Ӈ˹wxLcЇͳ?>ѵ9Ϛ/mX+Z{񏿖?#|_>a{@"D @"D "w ?=s"D @"D H]mEdWdt b"c|9FysF:dsk ]}r~yCf~p_3Ϛsl$<댐ŬφX\Y3ݨﳍFW|q^z @~ba9sm.q ^X.> X[r5}skkrw㞞k|5Pه35xƜmVZwk< w@"D @"D @>w g@"D @"D w ڊ07?7zoG ٣QV@<\K3skAFd~E.s0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ1 aÓm/lU^g/%Bx$i w-},G"D @"D @"H~ϛ0 9@"D @"DHV'wn/m3 1{^239Zg |e&C=갍g&N=3k|effz,;?u_=4Ϲ?rYc-9腟X^ڟX{b2.ŨCyY/^cQX#d5gu5?k3o=x0GOW 4^T㾉YD @"D @"@ᓄDU'@"D @"DMHVgggo|6n]f̗j#>Gǚ490h9so Xc{r1rqoL 59cM{c{ύ1?߉\ψ{-Lf??}]3?߇=y 7\Cq?m> \$rqAX¼8rxp q8'~.9ǚG{99'sffy~nE|o9w!vs>:gDryG&|H mu <?#ؾj-~?WۃE @"D @" $_D @"D @~~[sd1=1bh15Ҟ[f?{uˬ=7=IV|9 AMkzcއ5{_DgccǸ".0}/ž53yeC`߅/ uG,=cQfjٟ|^6˚|̡~c1>|l[W^|$k<_%Ǘ0[D @"D @"Do@;߄9@"D @"t$?"?;;;M/!FI4?6?z#q1{=~1ckzX \//p|{0{1sGv_{X0SخOqw6ykb:Oh%ˇ,aQ_IX"D @"D @F aI}*D @"D @"$? u;!̿7c<0b u6n,Ozf|(gc>uì3fsgǼ?15:k֜s[ >ka~{YyFcyx>1\؞<úŇsF/c~cayYX<+?|w{yg?QOw1>knO}l o$?{HT@"D @"D $_NOT"D @"D @nE=>s ac</h1ֈ+FWp?ǡ5od ~e_\3lǞ:=<{x/|'3rs?|ND8~u^zF5<\n>k&v#q>>1@|p_֦'o לk{n-xÌ罱?%~TЄ} ˳j@"D @"D 87 N"D @"D !00}fot~~~rz17F?/#Zha s>ƈ${6ǚO#xDϰ?>ͧ̚ e=省XZ]Y{?;u&g>yjya2ssA=ȷ6~pY_c q2ȝkǚ̘f-s? `3?=iٖ$?.ϪE @"D @"DX/'?:@"D @"D o@X7(Ӹ1 r !1}FL>a6p]gZh3f#Mk^b8#xkp/wXg\_/]'/^N~14s5x? Ή' >8f3k z؟x?g}nj|9~2l $?H\U@"D @"D $_NTu"D @"D @nGr7zoP3vsֿ3<=CZ3Ə&sf_yf-Բ?w|,xٟgvO]ï8zѓz,gx]ۿ|@/Ξ5GlC|Ї4~Χ53KOf!?Mc`z135s=keOSsM n?xtŕ9ʶ@0o"aqyV-@"D @"D "0F8a>PՉ@"D @"D x#ƺa;'wntOce VԮ|-F,j15df]\{f\{|Y۟g2<81{zqԥ&FΜoMW2_)i/x%C}>捐bSN̫l p̼>gm35F?EpY5yns|o2;'7G;<տ~~㿘yq_oq5@"D @"D  $_]_]0|{珯̸D @"D @". nEvvvr~5p~,-2"yh%<833G @"D @"D o@;߄oWD @"D @"HVWŘ|Hx^K';fb/,_eh,3;}Xsf.Yv]Yk|GJMjfM,0O }\/1qG?n<ʉS5^ cs,%\+lX |,/o3K}| zř}8#O3ZlK,ggsL7G>v-y{Y]]_Gb񏿖?#v<{{qA^,tE@6~rˌٓ>0X=Yb9|XϬ?5}L_r[cmb_bVw[O0;nD @"D @"] |~.E @"D @"l@c+|[~3/ c.1cfb"#g3s%]j^sM8o cbӜ10jG]8go/k᷎}809g =|qvm.0}:=|b Lyțas{ZPށ<1?03s'}?g7:ssKݛcG_6C`, +cW_0?a']"D @"D @C ao|&I"D @"D DƄ_{q ~1CSء/&-&vr,O6sb٫WfxcwM܋Xy/ch%$byW@:qOOB|0}gQ>aֲIAVșsnA<%A~z*~N| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gsm!̿kX^߽Z? SAH-g<'$@"D @"D v$_Md7@"D @"D x@َ0!̿c?ByuθBrRXb8f葍eGMq.1yΞ< ;GR}5mg/l6p9 s=.6_5ƃ |a p/8k>=c/яNB{9w¬3k]M.7n,_#\NoAaK][DG%Tx$i wo@"D @"D #07a 9@"D @"D $?VǯvtƵ_~1ƃ11 #hGSFzf8SӬ8camX9o7zL4~oj㛵Ǡ5~j=Zuϵq?s̅> {uLa,E]L?kϵoy~r_Ǟ|u]O ƞ_̿y'8mX^Ԫ߹X$̿#D @"D @"$_O>r5@"D @"D Cی0~11V+G{-2g]=d&&s֘ifnjG fֵF3c. 3tĘ@,g#{I ~}˄;1W äAS 'a/9'gsMϹ/F{֘5G/߿~?Ս 9n_ Dc(Vg8:IV;M ;KA>P\reoA<۟/&o؞=ձ񽓇~Hg[ KN70<D @"D @"CH|#0PD @"D @" Ǻa>?w8nOoH/!+9f8"fGqch7#'F#?އ>?Nkk؟Z95E,fP ụ&f 'N \YYp ĵaa_JZ"D @"D @E apC}D @"D @"B$?V~Ü#nyc^xjYs?u.kLpY{1}sf.l^‰{ \Z>^s0Aqy]a恁g=&~1;]Λ &{RZך{wfٰ 8ϳ[wɃO=m%Ȅ}# ˳j@"D @"D 87 N"D @"D  !0|6>7|c75br ccLӭF<9flao}g&Scvm܏c7\gwjs)sg.8Ӄ_g N 8?CQ?aRx^cG-ef^:ƸuFYI}8=g?kQgo]yso޾sɘ&?KIXU@"D @"D $_NTu"D @"D @^c݊0{sc:n|~}j o&1 'uث&8r{ڟ 79\7 4~{P\gΉu9glݱPՉ@"D @"D x!柏u++Gׯ_8Wc vErfh9cVw1{9gȱg.m6tDXˋ R?{.?Pֈ˙y!8fZ~psm-bZjO3}O-3gw'7<WʶD`yĹ3?q6 >Q`ͅ"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kKl[7>?֌׽ǟOm"D @"D @"}$07a3G @"D @"o翫 MccE#|WI5ʳ03b!Lj[^3K˳36?#jٟx֜{f&1 }\g,f}6bϚ8F}m,/n6x擌.{B.'<3ⳟ5!W<ǹ&w?>ټƇ9[Y}1YsN,wf,/nQ^luuw}*~??N˷]"D @"D @" $_M?{u@"D @"D H>\9>ՏM?14rh;L:h+_|<<3n^{ΝF#7u8c`%׾pf gkb>5fvC3Ь=go}|Q a<>kG]><߾̳+a0?GdfrG̛cwν!7uxM ,uzD 5-a.~~>u#@"D @"D xu&u:G @"D @"|33ڊ0E1{f!f/׫Cf9^\X.ks85w˳Xk/?QPŹ5}(/$F z `,3jkcuw~|gq];o=ܟ}>p= f[ J70<D @"D @"CH|#|0PD @"D @" ϧa+W/Ѹc W v3_J)V1Fkr3_d3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#k^:>3G{13{c%qc%*>g˳Ra/;᳿8ks1}) ˳j@"D @"D 87 N"D @"D  !0|[?~^Ÿc|5cg5{/)=kM8k_3klo | 5:ikf&~{7o#X{dM]|K8M₰&yq.p->jqN~]r5#^s֟!RssO X>gs ݘ~s7BXݼw7+&|H@Zǧ:y.G8cqg_mD @"D @"-'0η_~"D @"D H ފ0{sڇ㦟+HE\2ث[fOcÚkj:b}XѩG>}XO|N{6;Fx{^,r#"Y3Sa/X>$k=]̞1[wqOrYc~9Q|aY[.lc'j1oޝ'ng"gյ*#ǟ(_mnD @"D @"#w 󿏟9@"D @"|{$?]mEʕoc<C8e4h|1aZcGađg kj3Nz,枬Ӄ̠g?=1j۟\imzlj{/>C-1.Ļ)k><rc΂䜇cq|LxC.?ֲͥƚa_>3{[k, y+ ϙ15owݿ~?vfVٯq*_ϖ'a.~1GD @"D @"l@{ބ[DvD @"D @"gH,*o+ׯ~4n@/cf5뗔OtΞfc\&F~cyvĐG袉6޽8kca԰:p٫&O޺̗6 _H!` b wp\h0B @"D @"D K#0?9$iE @"D @"\@mE3a|>@Oό_'c#OVOeZ=a}8=>{l}1cܵ{1=c̱?~/p|{0{1sGv_{X0SخOqw6ykbd Jg"D @"D @"p0 o#UD @"D @"@ aP#̿2o}b1 ae9XǼ?15:k֜s[ >ka~{YyFCyx>1\؞<úŇsF/c~cayYX<+?|w{yg?QOw1>kήw''oY%?{HP@"D @"D $_NOT"D @"D @^S݊0{sx8_>2&c /V~Ckxʾzg܏=u0{g3y^Og0ϳ~˝xsřq3괽ky%,3|M|G0|o}b>M]mO+'9'>> Z7c} ,Qyx  g"D @"D @"p( oUD @"D @"B aXuO__vNNN`wͩ0Qc|~m1c܁1{5ɞͱcm5Q=zf3&kA9i=jY;`9g೿9֤|Wޏ5f]|#<6a^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59'/lKxq Fg"D @"D @"p( oUD @"D @"B aX7(1 'r !1}FL>a6pgZh3f#Mk^b8#xkp/w?4c͹Yc ]&/^N~14s3j"/28'cg0㘍ϬqFBx2a8o3>1󨏑7so/sʶABþYD @"D @"@@U'@"D @"DH>޹/M?1L]ܯ|=ݱgh\{${SÌK'{b5ϬŞ^Z.O?SZ|5\G/z{؟s]kٳy(s=Գ}x,d罠3z sY?3}1_cg>iq_;n=2GM$?,ϪE @"D @"DP/'?:@"D @"D /@nE|э~1n10r+4Gcrg6cmmr/:מ9?穙6^#,|g%#y觹}-u3[.sƅJ pI.CAiy#,X,k3o~Y1LMOcmrcaM"u߾Ǝ[cmF?^V]?>p<Y{?㾔;$)kD @"D @" H~~W~cz~?.̸D @"D @"EOOc]Ss{М׼5X7;)<7ڳ߻zƌֿ0cݯK!1t6 KdZ?c~R~ПLY;ru@"D @"D &07a/@"D @"D"Ok+|n;orLp |T$<%? '1~=4Zj4s֜K}s}vW;ߑRZhY˰?>LSC|'Ki qx죆 6p@ K s<' <eo4μ3~{.|ЋZ ;~@^? /a:uRX?@ceI r瞬cyuzgֈy{ПPky&/ b杻'!d!gյ |c oM"D @"D @"K aoED @"D @"mH؊0{s/M?_GWh1hq131jV_͙Ē._g&^~?O i5.kg5{[>L\33>8yK>FM > k<}0¹v[=wa-(@KÈkkޓٟ3Cc1~|νOVe!|PV1] ǫ]y'OIjD @"D @"H~0;nD @"D @"4O3ѳ1a/ǽ0)FgPW~a9'9+Gػ&vEXƙj'F4:ɛzkjp7m}0E\s /}gRZ\hE<|C,6כ_F'ع k'z:pf=_gu^,mX^ڢ߽Z_T?>Y1 w?I"D @"D @" |o3M"D @"D @&0i&z#?^_/EFO̗_ђk2Y'#gbϹjܗx6_8qJ!x.`Gܗ5@Ǚ>?= Ěߗo~5lч~Cε106C`yً~Jk(O#ǟO0.@"D @"D !07av>$@"D @"Di fg;׆0^q~9 K'bytƊsܣG6v,5>z}6ٺxF9{sz.so쬣K-cػu?נ9‰$|QN3qlD?; # ⣯u{7߸~|r;1? /uU^n/ S%7vӧrD @"D @"D @{ބ3XD @"D @"o&0|F[э~1nG,|GWM"{|qLMzd%1c\uXٟ3oN~~X.k3o?ڏ\ >0Rg'3#\k_u1?y#{˳^ֶ?~}䲟^{oZ|5w?1{~1;'ȶE`yQ b wp\h0B @"D @"D K#0>aK(@"D @"Dm3ׯ~8nP[1kȜ1y t~jYG̚\Ycjg3>f59[~W͌Y0UcAqr˳s<'1b.qyeK l?\>{0krO-lϞL{p 5=.Df9Ycְyf|ed!:g"D @"D @"p( oUD @"D @"A aT7&c|9_>*WXC&Y45'gX.uyC=r=˝"35g鯆zgm9YgbS> 3f>kQK5jp f/8ǃ7۝8 ̀YS5sgYyw{gf؟37vA=F.eܽg2ͯ/9aa'?,ϪE @"D @"DP/'?:@"D @"D /@nGkq (KU@X.ffEf cy&'ߚjsrQk/>ɻׇfԘ9X=~l>?/?q_l~)0 274:كއmMc³/\_~x8s틥``0oK?Ϛ^c{WN#sm/9aaDZ"D @"D @E apC}D @"D @"B$?VP߽c<<1"adFWFAcS̚A1ƍyfFߌ8̞3{pf:ikxzaji`ԠӛA3~jX3z1ޛ /8%p).g-f'0O}9 3>gkfcMf{_!KCs|3=ɹ6w$6f}) ˳j@"D @"D 87 N"D @"D  !0|[_̿/RR:df9SsVԎ>9zi=gzǚ%˳3?39f-~gƼuϙ⻰y '%pAj@{I9w1CߚP`X.fw9o&\̺IMjq_krݙeZ2<ro {'>yٖ"$?,ϪE @"D @"DP/'?:@"D @"D /@nG_h1ޘ_KH̊Y7aޏ3Mzf43[95hL5kbnR۵s?rpq^O̥kΝL~-8A+88c` EwI-y鯏A ?{&3{g'q ?̮Guó[ͱy'c6F0/%aayV-@"D @"D "0F8a>PՉ@"D @"D x!柏u+|΍Ec#a+WXƬ/0aޚ\˙ks4pso8Z4ArO}8'5k.uLm frߟK;GL,1kؼk̀!~6>#[w]OpFkkQ89{3v{+2^dþYD @"D @"@@U'@"D @"DH>֭]~__@ șQfYX.sk nskg^1SC9g4@9vl?r0{L`1{c\g >ỴNc-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzC']wD @"D @"o/翻~1a>_: +Fk>jfbcsN,{ck/okukm[8X{15X~,](F 5 s<H}8:Ӈ˹wxLcЇͳ?>ѵ9Ϛ・w/mX3ZX3^#|_>a{@"D @"D @;߄OD @"D @="G2;?71CC]2Zd/'(xΈQ#vsn-zX./~s@L܏qfYs}V0X^sKTaƌg9bݾs1g#Ea{յ ?,GB9a.v@"D @"D '07a1@"D @"DO a%?>>>睤+?rs~jc ‡fY{χ1=xf}6|x}g/51W9auoCϙ9Џ7x{Cod [YDx</IkZ]pc~g?},G"D @"D @"$_M>u@"D @"D fGa}WY7|vr_0Eh` thꐙ1:#,fc6/3Um<3qYcO.3{5cQꡩε97k'A/w,ڋe;qq.FMz!03y?匚>w!;a?ݨYcyyW[?6gox;yGM$?,ϪE @"D @"DP/%?':@"D @"D /Qg7|0oo~'E \2~1F@@2kgd'V1Fkra^\gΉyG˙{kXwOR{6{cGXc9Zc,s1۟6Fg=y Yg0=aLacB;g߼Zb퍓5wiA/]4 š<Ź,ޗCs\õ9uɡ?< 8z[H 1gੜ-ܸh_mTʘiωa͘ey4=IV|91Gf>l[c,w#>'g>z'=佹".0}/ž53yeC`߅/ uG,=cQfjٟ|^6˚|̡~cݹ{r v-+yƋY] ]|>Y1g%{6@"D @"D >H~0#D @"D Uߏݻw˚ׯ_?O~r4L|+W]Gx0qh,33b1va폞È#f&^X=Y;uYAgb5zbԶ?؞^y|Znc]wR|x.䚇ǜ9;0>c?\~e]K-9>5þ71<}{'fX.f-[Wџ3y?fcj0޻k +!__NjTx-1O]vb.v@"D @"D  @"D @"D "}qg}v__Bs&~ݸ~1^q9̞/$k/)=W3<ǸOM 9#ͳ융!E#>Ļ?3f-Ω|ƪ3߳—^|H.Q;/gs1 Zދ3>8}fho{Z#d1c{f{Zۏc灏x{LjKEɭ6F`*㷻^;Jˣ]"D @"D @B ao|"G"D @"D |xݾ}諯Zoѻ{GoYW_?9EGs% U| {>&Xݻsqfz}cękc՟{ƌco?Yc)p?^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO~?q'X_'/!4Ca^]NM/a7<@"D @"D @{ބWD @"D @"sz5dO a[|>1s9 7G?q뗗k^cP f]1c,>k( TKF Z5|.Zes^%w^&dAO 'd`9ck!n˽9X.{|~{l~>O/x>^g/yd]GϚc[y4V7{x$qM *8@"D @"D /@ᣄ/#WD @"D @"KH>;7!lc#m20b 8WwqS1gzF<ܱ܉<^ǽ=ïN{k](Xa`\b^zݭ1\?pMw$''}<B|sb3{ϭ{oc11n՟WJ0 aayV-@"D @"D "0F8a>PՉ@"D @"D x!柏u_~1TѸ-40b̹ZcDj=c'đkÞ34h=kh=ǏaZ%=gbz_/M-srafump->qj==9̮rF ZYsy<}H|Y>sqd^ęO=ƹ۟>\1׳p?8x{\l xa &g"D @"D @"p( oUD @"D @"B aX"?>~k7_vA9ZbuԊňR19ƳF̌6kO֜Lkvs>k3Lƒș|9^SBf %@$b!χ4ּrC,qىy5?Gޘy&觱?1&~ms:o_fc1~|[_cζ@`y#~/kOqcqmq_5@"D @"D  $_]_]1|{ޟf\B"D @"D @@ nEʕoѸc1ΏEF$]21>g1{g(3O~k᧧9[zhkމh̝ٛ k]=cYw_|W%{af:%g1`rC?_@OYs&\cĺC~i4s.Ԑc?';yx#ٖ2?Zc8-g<Ÿ%Ǘ0pD @"D @"DeH~0eD @"D @"p ϧa>7|9Ox8_>*џPL٘Y-5efk̥>빿>+kr]I-4Ѭe~o%48h~Qmg\8qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>7x ζE`y#x/k}_SAH,g<wD @"D @"H ao|?@"D @"D [$0aэWr CC-5g10c73|?7ϊމ?9+g<=<>q9s>X_yg?=QymEg?^ g^0}:PM\2ck9 sO1X:sN=_N3ka=OM_õ<oqݓ[{lX^3^Z_T?>vY1 &@"D @"D %07a]"D @"D $?}lE=޹q㦟/+ HfĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{|]ڼ DcNXg>f\Aុw {rua5̵\~͡\1R?}'kX>(~JkO.g<'$@"D @"D v$_Md7@"D @"D x@٘0^_3v+I}j]a꓍X#^Xc];"l,gL}5k~\sC556>g^䏗Hγbc-.4"RX>!~/#g5BcOr8/3ͺ?/g%LwA,{:ӌ!_?ٶ,/mQkutw}*?,Gxv@"D @"D w &@"D @"D OH4=_q/"'KHsuh5X9XaIϢ|ìe/&Xkx3k\5ރx{KYl]b<#N=y9W=qt97vQ1]:kPΜ_lvsz\l(k'A {|8^jq6`O|{_˝|ޑsYg}׺콛\oY F>g*w/K~IZ?Sg9"D @"D @"WG a=oWs"D @"D 7H>_{ƍk7bcc+FЎX=>8qY=2qژs:o,ϙzi7kSA? k{,Zo7k}~.xy y)}@ēpX.Љ/~k <=YOx/k>rg=ַp->뚃߻ڟ=Opd"Us;8.I!\G @"D @"DH~u0}jD @"D @"p  χaэW?7bcV`5ZdΘ<b ?{fɬݣMfM.153gk?뫍fƬ]g誉1 89Y9Fkܓr1? yPŸ}vΥc@I=5`{gO z_=8sCO暞s_"3~1kX<3_̿kx} ˳j@"D @"D 87G N"D @"D  0|r1/ޫPΌquVv꓉3v,:ۃ<|Nk˚3WC=Ӄx곶1 Y ?{3͵֨ 5AN fŌq^?{Ƭ<ǽ33~zc폠#{gvm2kZw3~WC0g"D @"D @"p( oUD @"D @"B aX#mbM8YVYM?fOcEl,}33d"fc<ϓoM5995c{s]C3MOj[,Ϟ?6X/e6TăR @xw aKAYö&P1fd/\?0r0|y?ϥ_gM|={֫c{'9ζ@0o"aayV-@"D @"D "0F8a>PՉ@"D @"D x!柏u+|~^p10_B2+gWFs F1qEf r<3oFOFffϙ}8~ 5̙\;wO~3^|þYD @"D @"@@U'@"D @"DH>֭󏏏/_xc|uzcjc|)_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{Y]ky? 3cxc]ؼȅ | $aڻs!zoM b 0v,3ϻ7L.fu&59̲am-bqg9k潓x"t10d{uFM,zcOWoMqsֵ??nr7n-h'>g뚇s5ٺcy3rOΥrak J@#b&و5sfl5f@_}Όϻ.855Cyc; aw=cm/2aaIZ"D @"D @E apC}D @"D @"B$?VW_/q@ H(3sƬx,X9~b5Ϲ̵3QmϘy3?;ٟ 9=}&b0s3c]l~Ա~\~>g/3C,qe3P9c K@oC {{W;qOW+MMbsYl%53qލ>X^lt']K\Oy>,g%+g?k}k0CysmMn|ӳys6*0cƳX~1n9͘X^ܢ߽Z_T?^#\!0oD @"D @"DH~0D @"D @"'0|V[_r|t~6Ɨc#Zif(+ w%95u #W~$95y9ygܼ;Flo,pK}|>jc ‡fY{χ1=xf}6|x}g/51W9auoCϙ9Џ7x{Cod [YDx</IkZ]pc~g?},G"D @"D @"$_M>u@"D @"D f gaэ0qc#F@C_W̌ya19|Pm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kfQՉ@"D @"D xOu++W_q@@2kgTSP9c89f^\gΉyG˙{kXwOR{6{cjɱksΠ{ngNzFs ׼u&}Xg93< bBss9#w>gq7o95lcxi Rg"D @"D @"p( oUD @"D @"B aX"߽q:^}mYZ4$#%C!tt % -?C)P¤-%0ʏ4 $ t&!n˒@IvWzwjo]{9>s=Oǣ{~jyMaO>ta~j|57J'ߙŋ9# ˜\pEpp8BEG,αߎyX35wo"18G8'q@5?1G=1ǖ{;0ȃcyS$3%-kZ|Q<?Üxlxk>.D @"D @"'Pco+?@"D @" Ԙޗ|x'FϏ[lC*ʈ=Ҟ۷~-c௘Ø+q8hl7XG'{&=cB~=Bg9pž53 {\wa0{ݸ#v~|?я Έ3?XޗZгncNbhCw+hNHn`֪;^7J,y߮)]ܫ&@"D @"D oE5毿֘V|s"D @"D x1g/Ν[]x聧FϏq} _ef&1^ca폞COf>9Yc;'qAg~lr"6?ilzl7 ?@g~s˭ 1{$p)5G9cpn ^Ƌ =0meX52?CX3+|h'{kbf{c"!ҏqe931rڥKla$׏Eqx>[l_5g/.@"D @"D Bw卬D @"D @"1vTֺ}i?88X]όqc i.GA>c#>gfm\'&zaCϳrsEcZ{>cqN zA8s޾l鋎|f1 G/Id}™n,̇ŷCs=21=:>ir|9g`pN~=3%ҘK%E`y] 1Smj?#D @"D @"pԘO5߳WD@"D @"D g Pc1ܹG||? O@LǞLo?6cعx0߆}839}#k#?]|3YY8\) }E>(^X0Cخ͏vփZϬ|Ϟ|ə4X.6Ǟx r=>>0cn|1M՘GRcNq,@"D @"D ;#PcExUc^E @"D @"5 uύ>?Ƶ1h^e}'fX>?zac<{b\1-:c ~lbP}9oM{Y :c~;fj!.D\ ycCB 3u=Tvb`3G8oG滰>\o~rvsY0_ⳟȂZi5g񕇇7.|s~W6y pW59ԘS@"D @"D Ԙ|1goT"D @"D @O/4fcAo2šamF~&g+;8C|쉃c?71gBG~|=Ç~?CX^{'|33i[لw*4sBXzx /5bv~cT<&6qۜķc[{t :sﹱ[׆c^ziz] @k#1<D @"D @"]1"\c^D @"D @"5柌u03އso?95?9|z ~B30s@G1M${6ꏍW{gf=c֟3Ĝ#a91&ZY[k|ŸXc ~6 w!C, 6.{D 9=:cg8`99yɌ諭yo,xAcYz}l f=6~1eܒ}"1O,Z"D @"D @vEpzD @"D @"pWԘ2=lnT{} [ \Fbg CϚdfб76j#!B;1o;|艞m?ԋ g`oyf1qӜ52g,,X,N1}1x@? αF :D;f3+o#=+>~ҿ)y}"Ԙ[5g"D @"D @"+5/_k UD @"D @"BOcjŇ~fǰgez{>CÞA߱g$sm3OO{ѳVzk♱س&\g~b=q]k;T=ؑؠs=<Ne@yA gϚi6Rz6?a98^r2 Yy/h'\{sgF;1A1xMNsƆ._td} 1O,Z"D @"D @vEpzD @"D @"pWԘ2}i?8ouJ1^bmj|--K{ў5kcйɚs=kmYgm~f-~vc:}-q3^TbS9m@(yIm&l~۳y 쵙gbRB>1kGms?z7yck^ykND^}sYWqaExuI 5%@"D @"D  ԘVˇ]0|߽{Ԍs@"D @"D 1dҘܹՅxrT??c"$O/1} zrizdG~l7zrjq9zŚI5{&|๾ƞ3z |-=Eg1:"{Ɨ85gE1{_FGLcqZ!+c?艍\=qM>a\eZ돯cxk1䧲/?3Ƌc?1z l3Msƚ3aFQgؓ>?=&yA1{`39ЙS8fwGB;/hƷ`Y% mG`iL|ih,̈9Ú5zfxy9'Gkt`P-wc@2KwY̌43}ŗd՞sqݛ=6Os@hj᜽\c?^ q9wB 1{,7|qvf3^‹1C'a- A@8pO-e YG[C_Nb~ȯqb._}fdo,/aj_5G_a^c~ߤv@"D @"D 5毿֘?dD @"D @"@efu}z ~1>c}|Tgo1c1d8ǖi^GX#]c;QǬ-gji|q\7Am{3{"ޜ/>lc, aaυl,xa}Ex/2=~gXdzÙ|p)5Iܕ4k4Ɂ-{:S_?~XajH+_a^c~ߤv@"D @"D 5毿֘?dD @"D @"@efWzb1|z'#$@oIW{lxlmQGܔO~te~sEX#̽س=ց=zg`^c?bS;N^ P@f=k/͜5|!}!F[ "汮9>q缜ǖ[ݸb6Л3q9?h̿vi쒽!jԢ-y5E @"D @"D`Ԙ[cUD @"D @"Z5濖i̿o4j׎Q>gT|\,Ov6ӏX.kt==3Ǟsg?j/z}| {^s bߙSNxBY#\;6mNG;9{rs3X9&8s>EG^㲷6_az|ښ ua~y5<^,['~쓋?ל@"D @"D @^?5毿֘e@"D @"D j?Ѿ4w~vc17WLC;=6٣C?i;maXs8W-ϙ۹nvO<7X.k{͏;b-E?ڶ95>0Ysy/{|=.6B:AQs,=:l|g,79c]6?zu6C茫zk5?6{~1.>"/˃Zw+c8N1T2@"D @"D =#Pc}+Q"D @"D Ԙ2i?8X]ώqc {m5Ȝ1a MfdrGx1l߸3̈|F_56Xn|3~S'6"ա#!(~^[Po)Z`}X_&uo `rO,d[}́ 99czN->Df >Y#03_̿vih!w8j-ϢE @"D @"D`Wj_jUD @"D @"AYcӣgxq >>xoO4:$;M v,8ڛ?B@IDATt!ї5gٞ9{<ظW7TƳ|΁|6Z[oީ"-pa7c>\87&3¹/5s~gyw33zrcOC=/{]߼ W=m~]ׇݲ1<D @"D @"]1"\c^D @"D @"5柌uQscИ?7ӫlO5ϏA/gc73ӛ?Ȭ,7Ӟn Ě<4d-s&'1f΍?Gcmgr(a|g΀l,7e ۘ@1/#3H_!ט'Qcny-@"D @"D "PcE]Pʼn@"D @"D +j?4C~ׅ'FQ4 l9f`c1vً̚6ڍL3 (!gzÙ9#I3cm K! 8!3~nlN-?@Qg,fG's@Aԡ'b35̏\a&?׽1⧽>`/zǜLN|Ώ+=|}(5g"D @"D @"+5/_k UD @"D @"BKc~z*b>Js}F8Ԏ9:َ{ϚxGǚu&.kw&q8G|Ǟa~f:=gkb!vr@by!-sAQ}00/-zs~cg`C c~rҌ1q׻[1EڙeX2qg05CܼId k1<D @"D @"]1"\c^D @"D @"5柌u>?17ɚfr' mmjm?3= 3yϚhklm۵s>|1PmjdoLB;Ν)ҋ8_gN N;oæ~a {X@Yqqoq&?ubgS,gvM>Knw/\>|fɞ֘ۇRcny-@"D @"D "PcE]Pʼn@"D @"D +j?4SgG/GOvcߦ?`ފ~k|#.g7ƇZ5vhFoK~9v7~=lM/1v~|$+`c J@Î 1c,9323 mߎgF>s/ayMqc k3fb(:sƞ̶c;aGo ξ;cНYL~G1 R={Y(k˙~;fZ䶟psm,"Zb3bsl'w|s~v|ѫ/ݼII>X*[Wqa.3Gs+|UcwD @"D @"7,|_yyMa~e{;YWx"D @"D @'?}i|h_5aئaz?Ɔc~^fco{Gp0c9]rГ_G1Gd,O6eZ?X3-vCWM"D @"D @ފj_1wD @"D @"!Pcj_i~1nA/2B1+Ӌq13lCf`;976X._Ao3s>lWسzo41aF\sa`=kf쬍m,O/&:-EBzl󲜹; ~, :ε1ӳyq66/yYs-/\>=#>+l9{zm wŎ5qA&[us~3>:Lo4r9g ټWδl{M\cf_&8^N^Kц=Qxfu֏<ʜ߼̳9!uo~CRsfs2s3>c<嫣1_סIla~y/Gڭ?EkRD @"D @"D yk2G @"D @"|q5h_V/,ώjA1} z!3#Lc1>|d}3cg?3ktefoX.57?qё~hb}e~ՍXs =]3[Xnl͏GB] S1Z|Il\w t^cXưar 1̧qљ5™Z;ko<Ȝ4?~Go޴L} 1O,Z"D @"D @vE]Qʼn@"D @"D j?4;wnbOJ|]fGI{mTc;s̼9c-ga9?qƖ8h޳\_tԍCXcǞsc,q6x ;ܩXq&Ͻ3i3ĺ1rpN7vcF?s>*>gMYo2?qgΡ/ggo<.^sgxh5Ԙ[E@"D @"D Ԙ|1W/Tq"D @"D @ Oƺ/Qc447<[!^#z?CSo3=YٜVoyI[Cg o[sdM~Y9R Ʌ XKs/.ġZt5\s~Ɵ!ssi D[sCSzli7; <8V^=7E9k:X^?۲Vׯp<ۍGyv77b@"D @"D op5毿o#D @"D @'?}i̧/bT/A?16ҫ#}gao2m???9bslYЛM~c~tXkѱ^k߳<&N#yf1ș G/`!Y3˰,{/al~g>0؍_;bmc1?x>0}={6˚Y!Ɯ6\rxd,6fZ?u>Ģ-՘_Ͻj"D @"D @"V$Pcooŷ;G @"D @"7O~VҘܹՅxjTǰiezYffac5X9:;aMlfˍݜ5s~r1|V!'Blkf?vۺt7ZwLBw*^\syYs9ec_ze\K,c9:5ü׎fx&f7X.b,Wؑ3Y+W]Z7\v}WW?z;_=ëw]{u{غxY4ٯNj~}،j?ή_?Σ]"D @"D @@5Y@"D @"D #PcuҘppx'GU \0$} G[}Ξ3<۸FOL 9Æg朵FAgo}\k!q眽}9b3^L3 XřՋoCLJ{eNc{-"t}\8@s13:U{f{K1ˇ0z3իWWԧ~zi?W㫯g~/L~y]՘ ǩ65 W@"D @"D gj_'+WD @"D @"31dhҘMcb>>'fg_ǎcriyd[\pO{l|cܵ{{ƌc~o>c pֿ,Y{.vֈ>ڢv{/,쉡q lG;AgagK>gO>srw,cO<9e|ilk7>˘y_Z}o~|oR _ K܁՘_Zck@"D @"D >1"1j@"D @"D 8@'MѦ{K^M'soeչsFcOϏqm )^e}'fX>?z/66"XYmk,7P@֏B Z1gɃx/kAg,ֲo7qO-$ۅ{!/b|l(؜\H{r𲮇jN 9#{1sf\m?|އsO.x>n.K|Y0[41ƥoо /Nnߺȓ߲X ]P>2MFX4L6vd ~e~9gȜ=qs&fa]ȏg0ϳ|csuqu{>m08:Nfu.@(b^6\c7_۹Fto|l&u6o לck~NAg~t=7z0# W/mbSY…Vn5_˾V=t~/z;ޱq~s{~?W>1_6a[~˓M1<D @"D @"]1"\c^D @"D @"5柌u|^?=|Gz[@9wט{{=m=M3Ǟa~t1YO |bNxԀ省Xs5b\t?kل!=" X{giѳLJsBfom㜇|[V-hWhMtwsÃ1k-ϢE @"D @"D`Wj_ט8@"D @"D w@'cFǠi^㹁|AVC8^om7=kC8ڸpPy^ΰagz36{z `\4c̾3|dQ`fXΚ?gA/287w&v rZO=gs|#ar]|O98QGM}^oN_?qy[^j-w˳h@"D @"D /5*N"D @"D ]!PcX1zCOJ?3Ƌc3M2~[=aϠ3z鹶_'s=Y_VXYoKX.3?1잸E^ΞkENlS9ǞXMp]񼠅gM4s)}=^Rٟx0c/94vp=~3#ؠs1kGms?z7yck^yk~K/MMu}?_O;6o\o,O>j?~haWۍGyݿ̞d1ODeD @"D @"D`@ooo|+[yǷ@"D @"D 'PcɌ1ܹs =1~~ rEI^b#<8ӎ3ot3M]`f|"|Ygv_"c~֜ =kX.}qC1͏?p?Ǚk!{'6cxmE\3>Co, ?Etb[Έ<._ odgW| g/ſhb?xZ}_swK]mZ~^G X01/D @"D @"S5毿֘O_E @"D @"@'ۗ 48ßCw1no1g9oYfDq=CMؓmgm~s~v9s{y?3kF?~w$S j| v\@vT tηցJll}rˌ<0X9YGlיsP~֟YAg ?1}r'/ l9ƣ^Z*_˫Wnʿpmow.S%~/Y<ayy0k_5nя?ü.D @"D @".j_1uyJD @"D @"%1dPҘO_kV;~1Y^xj_y~a5טMjD @"D @"!PcoNVI"D @"D k ԘZ&j1Qקz3vẆIuc`9CO֎slۯ̞u55s.ufm~lW5~3jS8؛{pXs4Yi|ngKcQ {.dc -2Ǜ} v?&oΌL1Ob#W^L^K__;?Їi-dzUGz|}Ԑ?^E?Z0k?&@"D @"D 1ͷy'$@"D @"Dj-5Әώ/ӋL?1!iz=Oz-c/ck#>v:|Ce.'/:vgŞ}o ԋ=C9qr\2Y{9l漬E G0ڢg1u9ю3u?=< އn~dQ|蝉1FcKc,_!|kqۋa/3UW!R~a5טMjD @"D @"!PcoNVI"D @"D k ԘZ&j1јQc\;FyQArQV<}61pO?cёcg?8ϰSk=^ooqϱ~EO0x/LAe|\ _gτry|PEԳ6Ka[ MNX͏^糷=7P-:Z͏ ž_ˇϠx+ˏO~??-;R.j݅,EpjScpeD @"D @"{F+WD @"D @"31dh{Әpx'FV`O1kz9c+3ۛ=ɬ5b4cF٬#飿qg|{cS jl`'xgXNlEЫCG"; B QءޜSs= L/Xȶ=640rr6Z||ܳFaks8dyqn61g;Dl:S!E0[Wn1|pn\G7fM,fs_rk1>ugf3D7vٛz_.;6yr-\{2o\}ՕW^sE?_k_sv<wK,Z"D @"D @vEpzD @"D @"pWԘ2i̿ob'GύAcO=돒c??ȞLo2"fc4oL{ٛs|kn_/[gĘ97XnOGݶ-gyr9fdz\6lc G0 > }}8pKy_[fyA!aK=3okl7w}p{n#W\]W/pإ?o+dž\cnט[E@"D @"D Ԙ|1W/Tq"D @"D @ Oƺ/PuQgǸqT1M|dx?~e;Efryfl3{l=z6XrNnq\oaG?[76qr(3ԣkk x 1k홉`Ghc.fuذGXd^qcΏq&'>xÏ~0o~kyoW}}טPcny-@"D @"D "PcE]Pʼn@"D @"D +j?4_Qxb!ᣤz9gtM谛cX/=og~tl\YXn&|gsXg}gFzsN-rj- $"9 kkч sڢg=7&z6h;g-'wXkLέY6-yM^?0t^=͛}o߹ٟ_Տ];d}5g"D @"D @"+5/_k UD @"D @"BOc}1Ǹ>=!Y3L PmzgZa_q9}؛[?Yk5lm۵s>|1Pmj~;?6gݩtL^ęZ<{vWpqx6S X6vB/Xfz_Έ{܎3L7;p:g1?kgo\pws}3c~7V-߶omO~ӷG,x5iԘ[E@"D @"D Ԙ|1W/Tq"D @"D @ Oƺ/ť1Qca}Ɩ~cⰷ_˙k~s~z}ͯ8Zzћ8;pz9/qrm f|尝3 JE)؂Bb3 {Ό9 Hc#/lu1<3rc^SB1uv_z[E._zds}~_<w4j-ϢE @"D @"D`Wj_ט8@"D @"D w@'cݗs 1hv!rf(3slX.sآc>b3f~m{L Zs4@vl1?|sz'lA;z|3ȑ8Ʋ0AgO9kteMp9O0bg\}X 3ր.~^\TKLcFW={y Noί8Ԏσc% {F|l7p9&sy#'b f6yc_?zgcǯ\1>U?ԘVyg"D @"D @@o5;Ze@"D @"D WV?gW41ub4tX70W5C(d].s7~[pSvhNW~^] O`bcЋp)WP{xΰY?0vkvsn,rm\cCY6??3cϚsa6Ćwsq"g-/6{<y߻h"D @"D @j_ʯ1Vc"D @"D x1g/.P 3p}3_o {$@"D @"D @'ޗ KccGL3br}̈:X@Ǭ#~h}֞[YcO|fLRz&\\X.k};Г55ؚw$ەP8KYϗFAehzG@g}01 yбo k&|ڈY#YսCٛaOcWo|MK-5pnGyϛOď}r՘?AiD @"D @"= Pc>LJmD @"D @"ԘH|k4o'soNtΝ#cИo0v@{mTc;s쥘9c-ga\%{6{1ks u"=F3O\awGB; 2㹗uƞ3CQC6sX7>_C`n,G|_c?뭗X'{9 cLcLc=G`6͌}csvO33<*Dm~|nb[~ց気[bX џI(NSk.8 s.{`l@k~}e~l9GfW O=E8C{;sfHg_=̳kDAП3ly6XnYџhltPkg,ΉAϵ6b>pۗ:}ёq,>s%)y^[8Ѝe]P64}|hǟX4"Bǵ9Ct؛=c8]gF7X_|x | z=_ew޻//غ Xm5qM•q"D @"D @ɡ{ʕ(@"D @"D j?ھ4;w0~1Ә⨘Gs?W\G>?~;1ƞ۰g!Ϟ;;=w1#kxX/ 8~ #>5谵 {bc\s۵zY+CXc5¹ٓ:9ņ3AN~1?vڠxڍ2o yv_Oro}7~}d.d5ԘS@"D @"D Ԙ|^՘W@@"D @"D w@'Cݟs1FϏqm !Wa߱{Yk7Ϗ~ftG2CghXcGczc>[^ւXe=0@IDATo.;ٟZH 2B^P9e]բsF.c|c!~.6כ\|\3̗g?)`igكc|K/ߜߕ}_}C?_}׾ۇwUcNE;YD @"D @"@wF(@"D @"Dn1dҘO_<<\{Ɂ1c||A0 s:zi'ٳVlTO?3{G!4G {̯15X,E;l9PM bYq#﹀չwF v={|8G/d;y1cLfD_m{cq :s` fc03/֐]_՟3u[j-w˳h@"D @"D /5*N"D @"D ]!PcX1Q1lB$o5s1om7=kC8ڸp m{lzf'z5P/6ayNs>z;1ecQ8vsPqPgA/28mg혵SϬpeb}Ahs~v7\+._eAlrxxmu?S/>W&/B},5g"D @"D @"+5/_k UD @"D @"BOcjŇ~fǰgez{>CÞA߱g$sm3OO{ѳVzk♱س&\g~b=q]k;T=ؑؠs=<Ne@yA gϚi6Rz6?a98^r2 Yy/h'\{sgF;1A1xMNsƆ._td} 1O,Z"D @"D @vEpzD @"D @"pWԘ2}i?8ouJ1^bmj|--K{ў5kcйɚs=kmYgm~f-~vc:}-q3^TbS9m@(yIm&l~۳y 쵙gbRB>1kGms?z7yck^ykND^}sYWqaExuI 5%@"D @"D  ԘVˇ]0|߽{Ԍs@"D @"D 1dҘܹՅxrT??c"$O/1} zrizdG~l7zrjq9zŚI5{&|๾ƞ3z |-=Eg1:"{Ɨ85gE1{_FGLcqZ!+c?艍\=qM>a\eZ돯cxkKrm%(y&F;H=ܽp DzzPGk^*nMj}{ ?wr$_>jͿl+'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1>}WmX+ZR?>Y1ggb>&@"D @"D H~0ODs"D @"D  $?V"????s&1_.$:fDj9ceL9̘9 {5wOY6=f9Aa}9>GƙwO>ye|]/zQ{aC"LPTjh,̘=ÚAܓ5~L1`Sjp-9eA/ƸŽE=6v,//fu}})?,GxtwD @"D @"H~0s.@"D @"D`[[s7c-1>?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scハkvC`tðk`G C +h5sւyO_>9=99ԙK8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/KUx*:B3,y 3b2?ygX#dן~Ù|qiֵx4?39zO3~1㇏|Xf"Eaյ |c E @"D @"D`;&gD @"D @"L aLlG6~1ǽ_G/! bI%xbxbC'=oON\| beOb|O#|ؓo}ⳮ9w? G-ˋZU{KJWUp"D @"D @W GF@"D @"D  08ܾc<Cm{Ǭ"s_c+gV=drS#l=q61ߺhf܅A|Xr|f1XĐׇLS .絗9ء&} ` Zء=1}A =9kz]|5rܳƬa= .16C/u$?-ϪE @"D @"DT/%?':@"D @"D o@T7&͸c|7_>*WXC&Y45'gX.uyC=r=˽"35g鯆zgm9Ygb] ?{3͵֨+5A^ fŌq^?{Ƭ<ǽ33~zc폠#{gvm2kZ>+~wC0柖g"D @"D @"p* oUD @"D @"7B aq7~1a,G&yRr1"{6m2hY3ȱX[SM7{{Nu0j9Ǟ;yLӓs>c;%Zfk%OI<(a}g΀l,w5b? Ǐ1 s}9̵/󰿱̈#y.2>k{Yo'.3sm/9aiDZ"D @"D @NE apS}D @"D @"F$?u+|~yqoxzycD| ɌP^1uđ58bĚ?1q=g>1t X[A-b97:g԰gc71W6_9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzskO53?39f-~gƼuϙ⻲y+'$pAj@{I9w1CߚP`X.fw96L.fu&59̲am-bqgwœ=m%Ȅ}# O˳j@"D @"D 87 ON"D @"D !08[_~3Ɠ1 | ɚY19cØi3ֈǘ9?ߺ9DcjYw3ڮckwy&?12):w>3=xA1s&祿?q/Xf~Ϛ\Ψc{yXgsOf9]ӏ:sRg/_9^`ӾYD @"D @"@@U'@"D @"DHV;0qGU?V~=6Y_`^5Q3[h.߸qhۃ:ҟ8pNk~9\fNm frp؟k;GL,1kؼk̀!6>#[w]/pFkkQ89{3v>z[2^dӾYD @"D @"@@U'@"D @"DHV7n߾/i?@ șQfYX.sk nskg^1SC9g4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzCxr3mxqյ/u8\1zW/W /Nj@"D @"D H~w|?u_|Oُ]wD @"D @"/V0/U 5FL c~^Ze[GMyh11f9'\Ό~ȷ5:؇6avO=\ˉ`O}s?;?q6 Q`ͅ|"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kǿKl[7?֌׽ǟ?Om"D @"D @"H aoOD @"D @~<W[#G?71CC]2Zd/'(xΈQ#vsn-zX./~s@L܏qfYs}V0X^sK,g%+g?k}k0CysmMn|ӳys6*0cƳX~1?X^ܢ߿Z_R?^#\!0oD @"D @"DH~0D @"D @"'08o8?/M8wc#Zif(+ w%95u #W~"95y9ygܼ;Flo,pK}|>jcש ‡fY{χ1=xf}6|x}g/51W9auoCϙ9Џ_06A*y)_ִ?߿?t#@"D @"D xw&w:G @"D @"0mE~~~v"z=3!3cuFXl_f2Cxf3Ǟ\fjr~SCS k/so,9rO^;.ڋe;qq.FMz!03y?匚>w!{a?ݨYcyyW[?6gox=xgϼM$?-ϪE @"D @"DT/%?':@"D @"D o@T"̿q7f .vKI5 ?ƈcMcuxkgquAL,u1gc7&= jy\̽ƘofDgĽu YG`܇u&3q/ syor\ęC`6n,ĘG}_c?/O{>[Ƹ{Ž1g#KKڗ0<D @"D @"SH|#0TD @"D @" c݊0gۿ7f?;YoAKuϚaO`@"D @"D ?r |G @"D @"8_V;>7f@OXA*ZeL^2X|x|`vͦ5rON=1Ú|rs|콯w"߳3Lcfk>aϚ< {!Ycy0`ݺar?1 Ψ ?Z>/wgel>qPc??1?xxqv-+yŋY] _|>Y1W%{6@"D @"D [$07a⧿g@"D @"D ? 󏿫oܸqv7f'c(G23/&#lWk9>8aMmfI.nɚع?= pf?f?vW{=jw!5kx]Ṑks$<{s`sruo.O,0 8a'Zcgco]YGά/. ^ت߿"5{8.3$g/hD @"D @"H~ϛ0+D @"D @"* _EemE~~~v/ƭ81 #.ǘ$:c % ja>gĠyXY[1]41>5ƻ@sm >aV9{u3=[fk>$Ǽ<'~/,tky/|>!4s|i'ZbB3ǵ=C|ۏ=1k8#1όos?GP-lU],a+m_ W@"D @"D xk'o#WD @"D @"kHV7n_ 7G<zb~f*>qh=EL\}~/;g kǙusg듏gݓW3f񻶿gux@υ+`gc,>b!Xמvmr>+XksszZw,O==e|b?ӋO׿m!KW08+D @"D @"H|#|0d E @"D @" Cݎ07c<0b u6n,2~Q#|2ÇYgZcyb4jpu9稷sy|b- .f0!>b}b=y Çu=\q;5^̙rÜcy8W\ozY>#|~Σ& fb<}֜..2;'=K08+D @"D @"H|#0d E @"D @"  S݊0{|t?t |dMX#F_]j3}s=ΰ{`"fџ\ag;{>>9ދ3㸷gi{{^ KrYK5gawýM]mO+'9'>> Z7}ѽAXN B$?-ϪE @"D @"DT/'?:@"D @"D o@Xu_d_\\Byr)b=_>fF[9wCk^MgsX8rGT= ì|jk0{ZZ{o55ߕcM.Yk!ϻzFS.{L 9=>3|kgO:9/ܹ}Ɍkyo-h9` fk03|~1%-^\ӾYD @"D @"@@U'@"D @"DH}2"Y@~!BP΃!$xv(0~蒙:Ƹqq=cVo8rDϱ%3b<rgcLs?؜5urRƑC3=@/8/"s1v38g+..ޏ3Y:1oM8wcF_w {c$V̯I??k뗠/jY=C4]<%~S׵õkĩ&^$??3^/h=ЋgPz6!g 5ғY{Ag>Ƴof{Ls b?\Ϛýiqߍ2GM$?-ϪE @"D @"DT/'?:@"D @"D o@X"??[70r+4Gcrg6cmmr/:מ9?穙6^#ls>k3Lƒș|9^SJf+%@$b!χ4ּ!8ļ;_xfoe|So-451gW9~;Q5{󘹓"|ss=g̘9n3_xx/Agx}D3;L.u ɱ?k΄c,X~p/5O ~3߅~?GO={;^&C[]}?,GDnD @"D @"m |O^"D @"D @B aqZ[s_~oOGEZ]8>14~ab6f/FKf~Ú3sz{wweM+5&5 O?5wr$_>jͿl+'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1>}WmX+ZR?>Y1ggb>&@"D @"D H~0ODs"D @"D  $?V"????s&1_.$:fDj9ceL9̘9 {5wOY6=f9Aa}9>GƙwO>ye|]/zQ{aC"LPTjh,̘=ÚAܓ5~L1`Sjp-9eA/ƸŽE=6v,//fu}})?,GxtwD @"D @"H~0s.@"D @"D`[[s7c-1>?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scハkvC`tðk`G C +h5sւyO_>9=99ԙK8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/KUx*:B3,y 3b2?ygX#dן~Ù|qiֵx4?39zO3~1㇏|Xf"Eaյ |c E @"D @"D`;&gD @"D @"L aLlG6~1ǽ_G/! bI%xbxbC'=oON\| beOb|O#|ؓo}ⳮ9w? G-ˋZU{KJWUp"D @"D @W GF@"D @"D  08ܾc<Cm{Ǭ"s_c+gV=drS#l=q61ߺhf܅A|Xr|f1XĐׇLS .絗9ء&} ` Zء=1}A =9kz]|5rܳƬa= .16C/u$?-ϪE @"D @"DT/%?':@"D @"D o@T7&͸c|7_>*WXC&Y45'gX.uyC=r=˽"35g鯆zgm9Ygb] ?{3͵֨+5A^ fŌq^?{Ƭ<ǽ33~zc폠#{gvm2kZ>+~wC0柖g"D @"D @"p* oUD @"D @"7B aq7~1a,G&yRr1"{6m2hY3ȱX[SM7{{Nu0j9Ǟ;yLӓs>c;%Zfk%OI<(a}g΀l,w5b? Ǐ1 s}9̵/󰿱̈#y.2>k{Yo'.3sm/9aiDZ"D @"D @NE apS}D @"D @"F$?u+|~yqoxzycD| ɌP^1uđ58bĚ?1q=g>1t X[A-b97:g԰gc71W6_9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzskO53?39f-~gƼuϙ⻲y+'$pAj@{I9w1CߚP`X.fw96L.fu&59̲am-bqgwœ=m%Ȅ}# O˳j@"D @"D 87 ON"D @"D !08[_~3Ɠ1 | ɚY19cØi3ֈǘ9?ߺ9DcjYw3ڮckwy&?12):w>3=xA1s&祿?q/Xf~Ϛ\Ψc{yXgsOf9]ӏ:sRg/_9^`ӾYD @"D @"@@U'@"D @"DHV;0qGU?V~=6Y_`^5Q3[h.߸qhۃ:ҟ8pNk~9\fNm frp؟k;GL,1kؼk̀!6>#[w]/pFkkQ89{3v>z[2^dӾYD @"D @"@@U'@"D @"DHV7n߾/i?@je@IDAT șQfYX.sk nskg^1SC9g4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzCxr3mxqյ/u8\1zW/W /Nj@"D @"D H~w|?u_|Oُ]wD @"D @"/V0/U 5FL c~^Ze[GMyh11f9'\Ό~ȷ5:؇6avO=\ˉ`O}s?;?q6 Q`ͅ|"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kǿKl[7?֌׽ǟ?Om"D @"D @"H aoOD @"D @~<W[#G?71CC]2Zd/'(xΈQ#vsn-zX./~s@L܏qfYs}V0X^sK,g%+g?k}k0CysmMn|ӳys6*0cƳX~1?X^ܢ߿Z_R?^#\!0oD @"D @"DH~0D @"D @"'08o8?/M8wc#Zif(+ w%95u #W~"95y9ygܼ;Flo,pK}|>jcש ‡fY{χ1=xf}6|x}g/51W9auoCϙ9Џ_06A*y)_ִ?߿?t#@"D @"D xw&w:G @"D @"0mE~~~v"z=3!3cuFXl_f2Cxf3Ǟ\fjr~SCS k/so,9rO^;.ڋe;qq.FMz!03y?匚>w!{a?ݨYcyyW[?6gox=xgϼM$?-ϪE @"D @"DT/%?':@"D @"D o@T"̿q7f .vKI5 ?ƈcMcuxkgquAL,u1gc7&= jy\̽ƘofDgĽu YG`܇u&3q/ syor\ęC`6n,ĘG}_c?/O{>[Ƹ{Ž1g#KKڗ0<D @"D @"SH|#0TD @"D @" c݊0gۿ7f?;YoAKuϚaO`@"D @"D ?r |G @"D @"8_V;>7f@OXA*ZeL^2X|x|`vͦ5rON=1Ú|rs|콯w"߳3Lcfk>aϚ< {!Ycy0`ݺar?1 Ψ ?Z>/wgel>qPc??1?xxqv-+yŋY] _|>Y1W%{6@"D @"D [$07a⧿g@"D @"D ? 󏿫oܸqv7f'c(G23/&#lWk9>8aMmfI.nɚع?= pf?f?vW{=jw!5kx]Ṑks$<{s`sruo.O,0 8a'Zcgco]YGά/. ^ت߿"5{8.3$g/hD @"D @"H~ϛ0+D @"D @"* _EemE~~~v/ƭ81 #.ǘ$:c % ja>gĠyXY[1]41>5ƻ@sm >aV9{u3=[fk>$Ǽ<'~/,tky/|>!4s|i'ZbB3ǵ=C|ۏ=1k8#1όos?GP-lU],a+m_ W@"D @"D xk'o#WD @"D @"kHV7n_ 7G<zb~f*>qh=EL\}~/;g kǙusg듏gݓW3f񻶿gux@υ+`gc,>b!Xמvmr>+XksszZw,O==e|b?ӋO׿m!KW08+D @"D @"H|#|0d E @"D @" Cݎ07c<0b u6n,2~Q#|2ÇYgZcyb4jpu9稷sy|b- .f0!>b}b=y Çu=\q;5^̙rÜcy8W\ozY>#|~Σ& fb<}֜..2;'=K08+D @"D @"H|#0d E @"D @"  S݊0{|t?t |dMX#F_]j3}s=ΰ{`"fџ\ag;{>>9ދ3㸷gi{{^ KrYK5gawýM]mO+'9'>> Z7}ѽAXN B$?-ϪE @"D @"DT/'?:@"D @"D o@Xu_d_\\Byr)b=_>fF[9wCk^MgsX8rGT= ì|jk0{ZZ{o55ߕcM.Yk!ϻzFS.{L 9=>3|kgO:9/ܹ}Ɍkyo-h9` fk03|~1%-^\ӾYD @"D @"@@U'@"D @"DH}2"Y@~!BP΃!$xv(0~蒙:Ƹqq=cVo8rDϱ%3b<rgcLs?؜5urRƑC3=@/8/"s1v38g+..ޏ3Y:1oM8wcF_w {c$V̯I??k뗠/jY=C4]<%~S׵õkĩ&^$??3^/h=ЋgPz6!g 5ғY{Ag>Ƴof{Ls b?\Ϛýiqߍ2GM$?-ϪE @"D @"DT/'?:@"D @"D o@X"??[70r+4Gcrg6cmmr/:מ9?穙6^#ls>k3Lƒș|9^SJf+%@$b!χ4ּ!8ļ;_xfoe|So-451gW9~;Q5{󘹓"|ss=g̘9n3_xx/Agx}D3;L.u ɱ?k΄c,X~p/5O ~3߅~?GO={;^&C[]}?,GDnD @"D @"m |O^"D @"D @B aqZ[s_~oOGEZ]8>14~ab6f/FKf~Ú3sz{wweM+5&5 O?5wr$_>jͿl+'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1>}WmX+ZR?>Y1ggb>&@"D @"D H~0ODs"D @"D  $?V"????s&1_.$:fDj9ceL9̘9 {5wOY6=f9Aa}9>GƙwO>ye|]/zQ{aC"LPTjh,̘=ÚAܓ5~L1`Sjp-9eA/ƸŽE=6v,//fu}})?,GxtwD @"D @"H~0s.@"D @"D`[[s7c-1>?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scハkvC`tðk`G C +h5sւyO_>9=99ԙK8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/KUx*:B3,y 3b2?ygX#dן~Ù|qiֵx4?39zO3~1㇏|Xf"Eaյ |c E @"D @"D`;&gD @"D @"L aLlG6~1ǽ_G/! bI%xbxbC'=oON\| beOb|O#|ؓo}ⳮ9w? G-ˋZU{KJWUp"D @"D @W GF@"D @"D  08ܾc<Cm{Ǭ"s_c+gV=drS#l=q61ߺhf܅A|Xr|f1XĐׇLS .絗9ء&} ` Zء=1}A =9kz]|5rܳƬa= .16C/u$?-ϪE @"D @"DT/%?':@"D @"D o@T7&͸c|7_>*WXC&Y45'gX.uyC=r=˽"35g鯆zgm9Ygb] ?{3͵֨+5A^ fŌq^?{Ƭ<ǽ33~zc폠#{gvm2kZ>+~wC0柖g"D @"D @"p* oUD @"D @"7B aq7~1a,G&yRr1"{6m2hY3ȱX[SM7{{Nu0j9Ǟ;yLӓs>c;%Zfk%OI<(a}g΀l,w5b? Ǐ1 s}9̵/󰿱̈#y.2>k{Yo'.3sm/9aiDZ"D @"D @NE apS}D @"D @"F$?u+|~yqoxzycD| ɌP^1uđ58bĚ?1q=g>1t X[A-b97:g԰gc71W6_9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzskO53?39f-~gƼuϙ⻲y+'$pAj@{I9w1CߚP`X.fw96L.fu&59̲am-bqgwœ=m%Ȅ}# O˳j@"D @"D 87 ON"D @"D !08[_~3Ɠ1 | ɚY19cØi3ֈǘ9?ߺ9DcjYw3ڮckwy&?12):w>3=xA1s&祿?q/Xf~Ϛ\Ψc{yXgsOf9]ӏ:sRg/_9^`ӾYD @"D @"@@U'@"D @"DHV;0qGU?V~=6Y_`^5Q3[h.߸qhۃ:ҟ8pNk~9\fNm frp؟k;GL,1kؼk̀!6>#[w]/pFkkQ89{3v>z[2^dӾYD @"D @"@@U'@"D @"DHV7n߾/i?@ șQfYX.sk nskg^1SC9g4@9vl?r0{L`1{c\g >Ỷ.c-/&H|@Y#V_.g X3˚=fkry%ϵ؛7kI>y̘ϞzCxr3mxqյ/u8\1zW/W /Nj@"D @"D H~w|?u_|Oُ]wD @"D @"/V0/U 5FL c~^Ze[GMyh11f9'\Ό~ȷ5:؇6avO=\ˉ`O}s?;?q6 Q`ͅ|"ac>$)R% {F}!+~r'?}0k0aƬA}gtm/f>kǿKl[7?֌׽ǟ?Om"D @"D @"H aoOD @"D @~<W[#G?71CC]2Zd/'(xΈQ#vsn-zX./~s@L܏qfYs}V0X^sK,g%+g?k}k0CysmMn|ӳys6*0cƳX~1?K<<ߝuקVZחc |E @"D @"D o@;߄oWD @"D @">7*OYz$@:Ft.M/d_ETDE%t FE\ NAI! T/Iw:~}u[ݷשss㛧.ijZggguk.^W:xH4 Qܹ:;fl[{ġ&{}9oY#g|tڵkϩhe'my56i蚸#Fˮ;\/,'fҬ=GeamԳ7>:A;bϬ7/s+Ɔ6s0?vyݛ~999Çasro۾6Z5St޵zk^+eݺGN5wrsҘ? >k:r!gQ@@@@@@@@@=i1}9B B B B B B B B 1d}3cg?3ktefot]v57?qё~hbo}e~eXs =]3[s]l͏ȿ,!ؤ)^b-$6 z.C;z:c/ΈN̓h~cXk5o iG\k#ztgpfƳV=go~=gsŁ[irƙ˙u:xz='·#&z1xPi_4uHca@@@@@@@@5i4`@@@@@@@@4揇4-W_T+Z6ӻڙۨN9v瘹Ϝco Q30n8?cKlcY]v/:F|c9XQ\L _!zs0kWXl#>sfoK,|ro{|umRcB뮽~Pr 3$/zsZԂNcdy&Z@@@@@@@@L@7i̟*qB B B B B B B B V@cniҭuT47[!^}߳Ͼikg,ԳO{ko t S7;kco~fƾ=Y{N(Y|K/3&B,b>.!νsGC~>xvj7~ #O{8gf ښ{ǞژcKZ֮ dM]m9D28 ~AmϿ䅃$7|sycՅ[nmyolذ~;F!@Jz0Ws]hl>w}ﴏ6 8 1o??)?B B B B B B B Ҙ?OKc>ulܰZ:A?164o-o}ˬG{W9bxslYЛM~cP?:G5[5Y] u.Y X{2KFs1߅&v׎X1]vksG?b38#2?kcy_jA޻ef;}o O;и},~?Ro+/|OZU(OzGb=Lo#/Ԕ.Gi&G@@@@@@@@Hc~7)Y@@@@@@@&O`Zgggu/ncw6ӿL1= ^LcLc/=G`6͌}u9ksƶO33<*Dm~|ub[~ց気[bX /I(`)5G9cpn ^Ƌ =0FmeX52?CX3+|h'{kbf{ce'!ҏqe931`TǙ;vҿ쯻)7~HyO>c}MANXU7=H H}=YgS1]1Gv!!!!!!!!!0-Ҙ߿Mc|"SG@@@@@@@BҘ^7-333e5ժcO \0$} %>gfnm\'&zaCϳrpEcZ{>cqN zA8s޾l鋎˼d1TG/Iŵsҟpf˺8zQhc?i sףN9ks7{#pF9#߻jό`o~}5o>cA+JG|OybOjZy/-?ClU+>`}P4X&8bҘ'4\@@@@@@@@,@Cٙb^>'fgoǎckyd_v1n۰g!Ϟ;;=w1#kx,,_?sυG[tr=119hg=謕!zgyNNegz 'ߌ;m:Κ۵]܂տ7mP(OxI-[Wp{׼|HC"NcDq&X@@@@@@@@L@7%H%P@@@@@@@ HcxӘ?[W_\+ZǮ:h^e}'f]]}uǯy_՝?v bC3f}EgF!gޘA3kYxG˸kMB彐1>6lN.`9cxYUhn'˽93_]v{t{ kù'q֏x,E{Ys{rˁRS*ꕯT19ٽ{wyO/uq7wPO|+_]0;i&䁦1TӘ?Y!!!!!!!!"p'J!XGprc>x:{^> ͠b̹4ۓYk?6_i= CZbk~sXƣ= tǘjkem}Ŷc6Y[&X ,ظ\;wO;=>#2{h< |ۘ1&3ڽ8:s`fx1ܮvgo/f k.p2y.L4woӘ?T@@@@@@@@4:jwaz@޿ctKecQ8vsPqP3b αF :D;f3+o#FvsU~x}|\j__-46~^d1FJ @w./va{{=}svC/82Ҙ?4ΖV_T+q.^d%/A1:^R3=C3(Oq ={m]q6{lZ=v:1f35ل<ح{{ƌm%&$[03{b>pu>D3;/q1?k΄.;[~pCԷ1͏o㴵CVǾ͏:N9gˁGv+I7Lyow?b0.ҫzz?ԏSjPS>4>B B B B B B B B BHHc~7G|!!!!!!!!!񴦥1 7m\wIcO|I]ۗ\:iƶayp֦_^jz<9ӗvWVjH$=KD@IDATѬe|ꉡü> {Շgޱ'?>$>h#l{Fs 4:_~ g֌%\xA 5;z.^ [ Ҙh:P2#$k> mNyux>3+!'T9eul޾cnK]7$_ҿ'>^TЇ}GyֳZVݑ{ <^?|C~uaiOc&K@@@@@@@@,@wi_g'!!!!!!!!G@dz|ظa텵ҭu4^b=8ϘcflE՜-%3@<ǖ象3B 4R gcι"l8au9%/9@u^:9 kN?u0¹ 7{ja-(k:}8ڒ8堯usF~}{]S۶RWݔe/uW?L{+~0DA֫z!>N_u?"m?m-j2ȏZ=qx>8=w!w?zr`޼mO߱sc9r_,Ai.ϟr{}_bǗ5kה7sιWY[8z=aU#^7׏@j4Os2@@@@@@@@Hc~79i@@@@@@@%1o_wA:|z'%$@oIףW{lxlmQGt۔O~te~soEX/do~|^מn@3_Uط8_|юVae/^Ht>=C=y͡v6/gV?>|uC7 :cFL|Qwm_ݔ>W^>/{q9oLaw÷UGax=ߐ_?R~yӘ?I.B B B B B B B B @wi̟d* 8@efz󏫍k/umc|}4猊KɃlߞkl=eFGVӟl\lu 9_lюcx1aos?zt߹XX1ؓrF{k䜚yb~I'5?kk:Ϙo̯ Νs咋z딒|(|4+~n?e!!!!!!!!!p 1ϛYL!!!!!!!! 1A6w<4d-m&'1Z΍_GqIb%97N\XB03g@\ S_xVmL#3H_~x8s%o;̯-3M|A!aK=ߌuM]snϻ;Ǒi C7OI1<-B B B B B B B B &E I}'B B B B B B B B`%1icxxa~b) A3ףzb3xя֍͢vl(,8Z{.(:708CZ{f0!ژY6g67F5ׇmEhCɉ:ھcE&|'Ҙ?Y!!!!!!!!"p'J!X1ff~ckibCf3{!6îcm4n󳦾6ѱ&?qGg]u9˚ᅯM6˞={;~eyi^X}E.zY?. ۮMcdy&Z@@@@@@@@L@7i̟*qB B B B B B B B V@c|ظk̿V^>?LӬ}۸O,ccK18W;r{㚟}n|E_kWh 3ش3# pf3:k qFck@>ѷnuڶ1=1;w_q{M])OWSov^Y:ClVyK>C)V~]7{8zdۤ1Y2B B B B B B B B $4woӘ$?t!!!!!!!!hilZggfk븩z==̜1w\-=4ش3_1C3m'gbN !5hzGyp]&b=Kz?/Ԕ.y\ !!!!!!!!! i1@@@@@@@@84G<- oڸZS=4ۯL/2I{xΰ=mX/TaFg9|c=mF"+_!ΔЇ}Go`Yf3羨kL(xЃX^-ky݃~DzU^7G1|cȇ)i1J>)#B B B B B B B B`Ai_KO~ݚkQձ^>+l9{zm wΎ5qA&A_[{ֈ:6vsj7f{uuI3l^|ͫ gp6&.Ѳ$ˉᥙ4kym@썏οvЎX433~ã | !3̏b^>Ľ*txlNfaƇ|؜\۶﬍V͔ݻˏ>qTw9*Ϫߐ晛9|~C=~󊷔-mY<~8 MS7gMavi]@@@@@@@@L 4yӘ?-!!!!!!!!4/DMKcLٰk̿V{fCo^ge&~h}ڣ~fm|홮ˮF'5M,/[]mcj1˚2#1_lRB&f\VAehzG/c/E5ưVbac]0v6ՙc1Z;W.y#m~bƖAc;\q%T͔ʿ۵Oɡ(OxevkGʯkK=O*}_xPi_[ -%L4woӘ?T@@@@@@@@4:-v[9e k[븩zi`ofOC%eg}ڡXة{ko t S7;ku͌}[{ WUQ&?,^t)\BS,އ%ùbUu:bqh\|5\m~o!ssi D[sYCSzli7_U;v_uHgS?r}Pׯ>r_5>d>0؍;_;bu٭>x>0}={VݚY!F6?ӷBտ7+w; '`ٷ8Pg/|U-/ǃvX¥ص9Yc'qAg~lr"6?iln ?@g~s˭ 1{$\#΂˱G8/ń62co,__b[!v4Ó51Gc޸cb0N;wm_wo? c}~ ߐ_Qqϻ5{]{2FZ4N1xߟu6Wyd!!!!!!!!B {4O'2u@@@@@@@@,D QuҘ?33S6_sQ:A03{^Hg_Rsܞi5zb"g6<.笍 ~L_46 :{wo~3ĠZt1l8O޸K/9@uX\;'z g3=˜0w=D#6qȁ{=b gt؛=9ח]cs[0v_L=「=/<)wx .xxz5>WlykٸqL]C!Ә?cQ4/ WC B B B B B B B BHc~Ҙ>rI!!!!!!!!imZggg7֊yh4c;z=ˮ~smǮpO{l|cܵ{{ƌc~o> _T,=BG| fo;kDmakʽ Ǹk㣝Vbㇰ3%ks'ur99[ g'|3>b~A8knמwr -˫_y^zQyc~dg{/~Y?}fH?ٴicy[//'&=z`wz]2د1Ә?Q !!!!!!!!#pIc>R !!!!!!!!Ҙ?4Jֱ!Wa߱{YkWe_gF |'.;tq{ƬU? ?b(Ġߚ<tb- h~sv~BI"džɅ,g /뺪:3r73gnqcwa}82m沞jgOhO>kqϹ=[n9~Vv 3yPe_<(| 7џ/~KC6 mU[hH|k-i̟(4Og@@@@@@@@1{#}(B B B B B B B B`%1𧗫;v34˥8aم@@@@@@@@Hc~F8L!!!!!!!! HcX:hm |13sssefy2ߘQ :h# -f ̜;kLӽ=ɞccl՞f_uc0?:Ę' 1e5zS?j?g E/8#ۿ{lmCcN=6ASq^;=m|#p{l߱q4ү.5̈P{-|GcC{׼|H>i̟,4Og@@@@@@@@1{#I}'B B B B B B B B`E1ڳ7aml|}N֜o\l?k3{'mCC̯3liKLߘ/iĸBP%Kj_5`,$mL#Q/ϕSC/#/ewG@@@@@@@@Ҙ߿ty݃y{'C B B B B B B B EiԦ1/^nEk븹EI^b%e;8ӎ3H;O2:ԑgг5gǦcck1SMs}꽷g̈>}]oOB3Gh+QCdZ=}|>LY;겳u?D})6N[ 1de}؛=ѭs{8ؑ&_UV< {޽7}c˭|̇ U嬳Wz?JXS?N~BMҘ?J8#M ;4O^@@@@@@@@,@Ӛ|*ܴq%u=u&vm_r=.밧Y~hoYfvoL_n]ՃZYm[#XDƖa~tz'&ם vԨ|汇[E&Yc@ EY:f mm 2c-ڛ3g<8".љ7gp?:x֋-ggn}댍aTYw캒cM>,}o[ϻ7K/s^O^}~9z|Cvy=Kz!~$:}0W4旒o_2!!!!!!!!!BҘ߿Mc }6B B B B B B B B`"Ҙ?h鸾ܹ23{@<)֯coCw1no1g9oYfDq=CMؓmgm~s~v9s{y?3kF?~.WB߂[=`/-U`iL|iP]vqs56'kulܰZ:|yL/1~eugL136"j_V{k|zcwocK\?!zsr}{31 6sưAْ—:z /FLG ^XQ:Z܆v=5g>motm }r:ُ9#>i=B^⮩mw^٫?\gr[ˁ]iϖիWǷM6Q:N۫z!>N_u?_ߘSLþb^Le]T?Y;αeo2{{ضC1kKV8_m~kbPAރ3ĺocveыYȖ8Ƣ\[!/#mUM1^'>Ǚb\|c;v,#E{h]p]W\ӘORv!!!!!!!!!0=Ҙ߿Mc|&SI@@@@@@@Ҙ(5Ә_7毻uC|c>fvsQ=~s<6cOm'?:X29ѷ}c`k,7?>m/vkOu`O~k^؎毪CX/ZLhKp Hgii/:Dh[k먍/.25uԫz!~:}0W41]@@@@@@@@L4|Ә?=T!!!!!!!!p(4D4W^\ZǮh/$3پ=׎ن{n?ٸx9{sn?tG-E_۶wa|S.c:|ٷg㛿:qAoa7o޶}Jw&˗e۶e=e-l9]zriN:q= 4X&8bҘ߿Oc%Q@@@@@@@1>`1&CNcd1<-B B B B B B B B &E 4O8!!!!!!!!+B NOcq^T+ۦxzI_JǬ遲^dof7zY31~]7=9>A6w<4d-m&'1Z΍_GqIb%97N\XB03g@\ S_xVmL#3H_~x8s%o;̯-3M|A!aK=ߌuM]snϻcM>O׿MݷO~|r]2KCNc-D!!!!!!!!G@7i?!!!!!!!!p{Ҙ?δ4EݧlZA:WL0/!+Ϧ_c6cȬa]]v=7b~fϙ<=B1L4woӘ?T@@@@@@@@4:-333\\+|7WL=#To23qvm3/|IٿDZ2r{f|$8<4E1b!!!!!!!!G@7i? X<4g6=Jֱ{^Bf MU zgnzG97.g{=kz{Y7iKlڶ|U5]ۓ=% ɗ+6;Sq&ށ v1Næ~ma {:#z23#g/xrFm[hj:Oؙ3ي]8m~޼mܕu>&ԟ*+^lmٟ{~y_\ %1!2Kץ1!!!!!!!!+I 4,C B B B B B B B M NKc>ul5_[[/?޾jmܷ~ll7fݿ<jG\ᅯ;pG2qo#p0sz0Wۺ|iWi̿?\/B B B B B B B B%ﭷ2ty{݃y{gC B B B B B B B ]i즥1i祣}\a5{u*ۛqi֯u9Œ=زw]ݙBO~7FVZ1nؚõᬍAؚ;u9cd!r^5xA`#^!6u s89yao~kE/\έ\=ɃUu13?:\̜gM|ȉucǮwRo.<Ҳ?[7s\9 7\u//=聇0,\zU>N_u?|!}'"B B B B B B B B B`YҘ߿Mc>FqXaixZi޴q/Աzzi_^d(ac2{VϹE_yorׇ zoaC gǞ5l~{ 5zjTN[D_Y3cgmnux1=z+¢Gs !rZ_\&t76*[;ƤvN5:̊g|ÌhϚsl{n>wU^>O]n*s^v ju'Uc^7Gۈ?:1ov!!!!!!!!!G@wi?d 8|ijZggguk.^W:xH4 Qܹ:;fl[{ġ&{}9oY#g|tڵkϩhe'my56i蚸#Fˮ;\/,'fҬ=GeamԳ7>:A;bϬ7/s+Ɔ6s0?vyݛ~999Çasro۾6Z5S*ߔ^~\ ˹9g9W~?{hX.Yg1\N5wrsҘ? >k:r!gQ@@@@@@@@@=i1}9B B B B B B B B 1d/[{̺=uըĵf51\]]vk}mL#yY3s_f;1՗MJ(l^* Ma}PAb?J,lӎ\֦:o,fY{j6z\2h?{ܞ+RyIyӯe~\K?l ߁_Jy/˿%?vAG VrÃJcd 1<-B B B B B B B B &E I}'B B B B B B B B`%1ann̞p~R/Ac .v楤=6|N1k|9f_d3C?sԣ̽1'{Vb|ѱA,N{g6v/W,8m:cϙCM­Wx`=6֮{oŷ6z%q/C_m38_]my=ﹺ78Ͽ_y/h"M馛O?ʿ~s^sJ/xhi̟,4Og@@@@@@@@1{#I}'B B B B B B B B`E1ulܰZ:A?1KȃMH{n2V۷zԏ}uؘoL{8czGGfއl.щ?b=ǧ=Gz rHGsb%^Bسf&>a/X^5ž. fϘ}`4w4v͏[}8|`'YR zޭ.5C6{mro1i}m[y܏=k.Vy[ʪU\g|W-VBAHx0`DjPS>4Գ8Ҙ߿Mc%g@@@@@@@HcxRҘ?;;[֯[}qtkiezYffbc5X~9:;aMlf퓮ˁ]5m~r1|&v^e 鐤*CLZh:tU@(pQ@ & e m)AQAm@ϥNi绳͙rS~z3ﻍsvr"6?iln ?@g~s˭ 1{$X#΂˱G8/ń62co,__b[!vt51Gc޸cb0^;vܿ쯻  }Ӄ*W^UKU+m~cY~`?ť^Q>}w'tYaSqi:+< I!=o':B B B B B B B B f#٨Ii̟*֮>VuM{_r=/$3V/)9{n4sk=1|3 z_s?|g/=ڻ7sbs :aseN_t`o\:zIG,L3 XřՋBLJ{eNcu"t}\8@s13:U{f{K1/[y35[r1| B_~e9yE/asܢ]C&i1M+!!!!!!!!!lҘOi_\@@@@@@@@,@C+7h.@?1=3~+>v{^]3ȣ'؏]x0v߆}839}#k#?]|3F`,`Y{.vֈ>ڢv{/,쉡q lG;AgagK>gO>sr.;cO<9f|ilWq=r uo._ }o?zZtM~ie]5kV- kr}ߟ 944ϏWC B B B B B B B B`1{#\Ҙ\ X4揧69+jc'Jֱ!WvO?1zTz U >c :ĸ=cG[tƪ ^lbP Q`C⽬X{h?\ŷ]l)D\ ycCB 3u]Uvb`3eG8Gڻ>\o~rvsYO5oȂZi5gͷm?+U;B.\'߷Kkz_ʲ/yʛt 䃾/y`?Ŏ;/Aֲnr McP(sFXVi1Y?uI!!!!!!!!0_iOlRc54_SǞ:xȠ7aM06pk^{{3}x!m>Ao3u#?@oӷ.콗 L; }az0!bfu.@(bw ţgxصƶ;Frk$>p9tGsc.ͯ 3"<Bg5njmN*T.Yş7F/bۊqѱ_ /X ,ظ\;wO;=>#2{h< |ۘ1&3ڽ8:s`fx1vxO_}G?zOߢ/+*o;W+G08׿Q;Pl;TE8־=1%u0B B B B B B B B B`Hc~F8Õ!!!!!!!!KF QN`cu؄6/$5s1я6=kC8ڸp m{lzf'5Uw6a۹cz6ke=B~h!X,N1}Կx<`o"sѶюY; gO\9O-zov9Gg79~kmc]o9D/K^t~Y~]yO^T}/~1z׻{௚+7G~_y>|Ҙ}y#C@@@@@@@@, 4woӘ,$ X(4'79_wk7T3M234{FO2==KO/AQ<3{֣2?x^|'׵U+sȉ z0?3˅ + Z8{O9׳/%og 1qY{Ac?ڳn7?3bީ uYՃ'֍ mwnW2G+y ߔ_ʞ={&1?T?u鰚a&ݥ1!!!!!!!!@7i?8D X"irR󧦎(֮9Vzm7A0 GmSl^X{MfFXEg5[?{5W56I[L45[uZ{=7&m-&Ƽr1nP$1{ WM6bg3;6I~y igbRB>1kGmm?z7y˲vܵ[ɔ7r;;ͱ><婿0'ܶsU~x}L\jais`;SB B B B B B B B Ҙ߿ty}ypIwďA!!!!!!!!0Ҙ?MJc+cWW+q.^d%/A1:^R3=C3(OMBONm]q6{lZ=v:1f35ل<حZ=cFwot{~|)[03{b>pu>D3;/q1?k΄.;[~pCԷ1͏o㴵CVǾ͏ݚ:6޳y^ԓ-}&T~?~g`0\FWXS?N~lMҘ?J8&o|!!!!!!!!!&1 7?u=u&vm_r=.7aO3 }6m2Rӳ`a͙g混W۶Fj%&f-SO umM;Q{cM2oƁ `uBexYaZu7Wgxp>xmE\3>Co, ?Etb[Έ9صIW5}x˼Ǘ_~߮y gG_s5Oc~)|?]C B B B B B B B B`1\ai&1jj[o̿:zy!l3Msƚ3aFQgؓ>?=᜼ƴZ?zh|@gOa,[p-텙[=`9ʺGx4s>ڴTr`.yڵ?mNyux>#g3+!'T9e1ulھczs]7,}M^4%>Gӟa=YLz!zvaiOc>x1 C@ ;4_R@@@@@@@@̙@ǣ|Xn͹ҭu^b=8ϘcflE՜-%3@<ǖ象3B GS gcι"l8au9/8@u^:9 kN?u0971S kAY~іA`-}3'&qb`Cum-&X>.=<巟Vuc4iȯ~yӘ?I.B B B B B B B B &@wi̟d* ؟@gf\J|c>BO1}y1bluQsYs-kӼFػƶͅY[™լ͏u᫾v)mt=8Cxm6fg8_6lc, jaaυl,oxa}Ex2=~ڶ[XdzÙ|p)58{Cj5y)7oܱstr-W}y_{̢Za?|ثG:iȯN_u?zj- J691oNa/:6{r{:'5P/ lGW~m,-&c%qճrشyY㋴`EP-bjsgꬿ˙{ly@_]Ѝ/6Hk;5u]u7xne*>o?ٲ)oƮMx޻aw&( gG_s5Oc~?Iم@@@@@@@@Hc~7L%!!!!!!!!HcLLNc1͓j][5S9dRr_< !v6ӏ-ёg6ϰS.w&agϞrG?V5o,{Vw)5s*wwMGrsҘ? >zէ;ݣOy~gQ@@@@@@@@@:i1}9B B B B B B B BҘ?Ѥ4OqDYn͹үֱ^>:f֪B_1 d~f8~dņ6u9\1q̯^[♟3Gs];x !]'6Gozw~T5jw}c , SE=3b#ckq~أ:}rS=>elW/leo|WU3> M۶Ows:uWӞAu6m,~+L-o\tuQxNuOcymҘ?/\1e#}#D!!!!!!!! &1j[ZWS6{̚^dΘob={f{Y75Ff6v8kuİ6}7oo43blja`מW~Avrˁw{_:!,&1FbzpNշ+aRh~f l \cCc9!'gmLϩŇȌ^=k#?w`F76/0o]'?O_‰z۶mg)ֽ1b!!!!!!!!C %K@@@@@@@1< kr:6a:37kGg41ON[ma6~C4P~ca˚3oukO=YcglܫA Ѧ=kcVM 1(۸v-b6] 5Ӯ9o7?k̭{t͞a~Г]no~pgMM66yruwr,̮_׿M]Yׯ+m~㤕_=/|_:.UӘ?Jeq4/_C B B B B B B B B`Hc~F8!!!!!!!!KB 1NNcלW+ۦxzI_JǬTȞeLo2"fc4oL{ٛs|myi~ϭZ3MNb.Cc7j rn(a|g΀.e= ۘ@1Gg~>|pKv_[fრCzf5~m]u;>a;Ǔ+^)͚iOP\75E/\kCвrc1lrYIB->!!!!!!!!!p 1{#QKEHcxxҘua9үֱgby L_h63;Efyf_l3{l=z6XrNnq\aG?[76۱q(3ԣkk x 1k홉`Ghc.fuذGXդ^q͏q&'>k8q//{nG9ܟ,w;~OYBFw1ifg@@@@@@@@RHc~F8KJB NJcTO~f*b^Js}F8Ԏ6:֎ϚxGǚu .kw&q8G|Ǟa~f:=gknb!vq@by!-sAQx}00G/-zm~cg`C uى~2n_ĸn_LbQ19vfٰ6 klV_My6޽e^N/.OwZQuE#+A1v6 զ1!!!!!!!!@7i?DX$489G5Jֱ{^Bf MU zgZa?@̯޸>?oFf\֦-]kGUՠvmOh~l$$_tL^ę|[<{vWpq8I,ytycG,efG^8ڸ8t:3g3&q%w71ui-u>,䕯򡿺gYE )lr!!!!!!!!@7i?8 4G4)Ա~]טu:xH0UlccK18W;r{㚟}n|E_kWh N_u?|!}'cB B B B B B B B B[@wi!!!!!!!!pHcG7) oXZS=4ۯL/2I{xΰ=mX/TaFg9|c=m~{ +KwsySIDugW\mӘ?7'o!!!!!!!!s'&1ŊO^Su^ifӣlsUuvضC2M6/8rڳF1=kמS34۫N81fk^m8ӆ5qG]w_&YL/'/Y{hڨgo|tvĢ1Y#.o^Vq ma~7?!Psfs2s3>:6n۾6Z5,W^? dfszi,fcև [{fgf=홮ˮF'.:M,Ϲ=vr'kfkˁ5%[*p #X n/􎞁 .3bkc?ZM|ڈY#YսCٛaOcI;\w%`:r٥Wo`96?WVӂB-*K:K3B B B B B B B B B`1{#\ҘT 8Ҙ?4UJAc .v楤=6|N1k|9f_d3C?sԣ̽1'{V{1ks ue'=F3O}[a(!bł#0xeL;t !֍񻃙_;}ȣey.[a/6۞38_UǦmۧ7?^{aWTmycu]WSPn9wrS˺uks(xhi_Zi_Z!!!!!!!!KE 4/*qB B B B B B B B  4:)v[9nsk[븡zi`ofOC%eg}ڡXةgM2=YYVovnu͌}[{ WUQ&?,^tf)gL.X8"}8\B8{q!VU#؏Ň|X3wo"18G8'q@5?1G=1ǖ{󵾭]5ڴszl"/~ga ǝqz޽{wʏ/h/~#WSNyT9~}{/y!@Jfgz0Wsmlxh;>wG@@@@@@@@Ҙ߿7!!!!!!!wpi'1:֯[sNtkA?164o-o}ˬG{曵WaL{8czGGfއl.щ?b=ǧ=Gz rHGsb^Bسf&>a/X^5ž. fϘ}`4w4v͏[}8|`'YR zޭ.5C6{mLL /?KJh+{֯_+*uϦx5?ܩg<&AG2˃U^ |$:}0Wٚѥ1vjomi1[rti&1E]{'Jֱ_ef/&i^ca헞COf>ص9Yc'qAg~lr"6?iln ?@g~s˭ 1{$X#΂˱G8/ń62co,__b[!v4Ó51Gc޸cb0^;vܿ쯻 }ϖ7v?|\~G'>rM˷}q?>4O,ssڜ!:Ǟs1ao3#؛__rt۶Oopx=qʕ+-g>? !ڤ1^b!!!!!!!!F e%Q@@@@@@@1.ʠ1Q GӘ?J$ i4O1U@@@@@@@@N sA;9+jc'Ւֱ!Wa߱{YkW:ό#O\vYm.(@~QA=Y7fc5ye-ZC2.dK!B^ȋ 6'^1ttV{x̜.=:yԏ=ޅn8zy}G l6:}r{y.δnۧmG ,VhV" ")~Pm;7Ym#K(_mWSy>~kMc|ݾ}oONC B B B B B B B BPHc~F8ߘ>!!!!!!!!0'iiwܗEOOOGȓj7;@IDAT^h3f5ޞdZ[16vjOS=gbL_sx25 9g3>$V[+kc/kU0!R˂H{N~ν3z9b|!76qic2#j3> =~l f7Mߘ nw|ٻpO}])ܿ6QG;ݩ}Hz41:2B| XQ;9c(1x@Ecm v rZ38/s2Ir+ǮYS6.wsi_7e/#߼n~s5p܆r3|Lٰa\n׎BoѼӘ?odqe!pӖ$!!!!!!!! %&1}r:ÞizݞaϠ3z鹶o's=Y_cxf,Ge~j.;{gvO\VUC`g5v"'6c.&Xh·ç+nJU;Kͽ>v?՜66m<~QuNi?Vj V"ﭷ2ty}ypIJ5B B B B B B B B`B1#ʺkέ^[ u;͠>jm4Ggc|gMo23š3l_t[sgZ_sU?k이1~oSu;k..1|ZcrڻOLj3 u9X߼c^U ;vܿ쯻 .?r ˱Ǯٯk6\qUez~ Q vjl?~!hxb9/+WH6dp^3cMta5Kc(C B B B B B B B B @wi_O^@@@@@@@@̇@Ӛ+VǮ:Vzu7qsӋL#9=Ĭne^XgؠS_ݹ31uOM汑ƺIo6zr5k35لڸmVygv m&R`fm|"|Ygv_"c~֜ =kG]vo0:b;?pƱf$kjro}{7޳y^ԓ/?-t>7};=믿߫>^>T_ZQjrgwѼ暭o߬r߷S6lX?hIA~DzU^4׏SjR#lC B B B B B B B B`B1 @Y 1V,S-ٜMԊ#g;Z2݆>=uO@(ʆazt6g^lӃ}pa^_6_]vXk| OLlfA53:DԓO][y4yطwEkؚ `uEeGc3juA.t<c}B8'5cT`qF~Eό!u}Ǯ-pW|u%]~i_F9)j]fu g=Ɔ5|?_o~v˟ ڵǎ퀇wVw3Ǯgcl1?ßB B B B B B B B B`r1ϛL 1&j&1jj[o̿_ve^H2l3>Yfؿ{lzձ٦~l;Ԇgam#lг7h|'bt1:Ʋn4p-텙[=g9ʺGx66ز&bvm~΄ɺɚ3\`\U].*7vĶ>1'6>w2?kΙcӛFty[6w=M'l,guF-G,MvU^ ~ScyC3݇gӫ4y1H!!!!!!!!!0!Ҙ߿Mc| SF@@@@@@@Ҙ?+N9)Ա~ݚskQ[Oךzy!3zYۿ̹75=ʞs@Z[os$_t 5B\3b~6a=g{8#ĵ.f]s[`%1-txb D~kas3F[k|k:}83:(ksfqX9Ǟq%O+mwnMݗ·-YqGLQ)g}fy~ƹ&喽wǺƳQ~N{>z}Ҙ?eQ4/ _C B B B B B B B BHc~F1}8B B B B B B B B` 1/)n=ɜ7ݿ*4#AYWN?{bo uBg|gWܸm~] |iGM ֏EKzݢK]fu9z\9-:W̱}+^C|c(Ә?wV $5~S\!!!!!!!!%&1o?ZWi4 >cѷƣ [6fs'&:xU=ȁZۻf9G673䷎jNa-u}y8Y{9f˾>}-zzlX3xq=b|gpZ?s=#{t1|YhYch`<7H|^Vc O/v01Eu0B B B B B B B B BHc~F1|4B B B B B B B B`1gj~mfbzܝ냍=FOl7V]vk#g͏N1.6s@sv1x/LAe|:{y# 1q~أ:}r~|ch'~׆6} u!-Gf!!!!!!!!!p1CK9HcxT֘OW긡z靶پc^JS<{uٝ;}sӏpf5:3l92g+ڛ8ޥռas6v6Yo.VAUŰ r=1's>A}(CN#ޏ=kr3?][ Бzd6to,=ןX]cа}8Ȼ/y_yӅWSG?{YgYYF (?Y ^<625SFADfy.^k 03M\5Kc~=CB ;4_@@@@@@@@̑@ǃ[ח;==]V9>"Oj?kΫa|CuRm'm=Ds}ʭ?:\D &1>ɥ [=Ficon,ȹq B_HoܽgU5(k-lc3`~"YK-ɏCi~`{spz83z#[U9{I;7]T.yNw*ym?y>O>f1QzD'>x;!tdxx=Ӑ_?~OKUX>1&B B B B B B B B BHc~ⷤ1~=B B B B B B B B 1-`1TGGq͌5PuoW+䧷;1o,u;k]c&6kyYinb!vq@by!Q > ֈz֢3%EϺo| l@X+ڲgmMޘY#27rz?(kgk=N9{޽|yqۿW%>ib_R91ǀvqƒ;dyx=Ӑ_?~OӘ?I.B B B B B B B B &@HY1(3i?69um{fʣ34ܮӵsA ,c]Uٞhck<gksFYk֫c6mmlc&&9[lBs99 hH$3vWpq8#+XcaC_Yup&Xf9#O |a~fmtN<''1akǹl cӶoa!zsʗeÆmOrާ~=Ҙ?zէ>K8B B B B B B B B B E 4/SM OJc>u_ZuP}3;!3z_fao2:|`;z9wU5ϙzmg7?~h󓏽gaogރ3jǞ|ذf6]o f| E-ll UO>.E<6`?Mochc3~1vPşX7?34柴cpeeݺuxm7|#ig,yloʯN_u?<ߘo$e!!!!!!!!C ;[oe~ [G>&ᥒoi'1TYv5qc4^eؙٛyUuOkfcfzihεӻ7?zc8;imc0vNlY9V;r_;чM~znbq$,0 =g-\4u!dz܁8X3mϞ3{-z z4z-{0>آƪ.{s/?kˌ[UvN޲w/-w[9cJ_&vWg>:PЮ:Z^7kǤ_s5Oc~Q!!!!!!!!!0IҘ߿Mc$}*SK@@@@@@@(4ٷo̧1aMfo0:zzzsG[{G/9^gڜa69yl~b#k5:k#{9ks?'1r8g^;ې91(BX3H.t0p9.C{F|!V1ϚԓCt_3ig<?Gr3YI;v̷˿_ϲ ^'l*'> KZ/\~GGuTy+_\6nK\zU3 #1?s&B B B B B B B B 4|Ә(>}!!!!!!!!0WiOjRi+ް~OJVun?1kzy!I2B1{6=6@X۠AOhGl}Ej^c9g97?>6NkD`苞5sˁԱ`1тTqEXh"[,; އ:fu*0?6 :l=C?FgM':5>6vyge7sw|*_>. K<)^n<P^4"Va?lիG9iȯN_u?bf 6sf4+GA^|ȉ։䧇n;!v {߼cǚuwOI K{1b zm{>BmnǷ͞ ^c{[bk~ÄAOctwBG|kƇ=egL]tm:6n۾6[NLQ'~P?wZsW>{o>vکr,xx}ptLC~}M0W41]@@@@@@@@L4yӘ?9T!!!!!!!!?4Dͤ4OMMukkm{>exΌ=z532X%s{ˌanckϰZ_tNrP7̏ {cjocƭہSnAB Zp{I.o! s!`'\c1kwͬ3?C\{话9ጭcu1{.޻wџtyK_U>|GyN}ʳ뙃R-e ݎky^Ukpu{Uwa4}Ow6>A@@@@@@@@Hc~7KHcxfҘbŊέn|{)>c zmf=ͳm1zt4fc'&6—8'z:ezԏ=ѻxUjù6~`޺ʏċ-{Yg9Աg`K<G8Ct`V_]<|=k a{C֜YpczӶ[|XsZg`T/H9e ?|n}Ȑ`nx3CiҘ?c^4 WC B B B B B B B B`1{#\Ҙl$ X4揇6)&6=Vww~V8C3kF䶹 c9Ӿt8'f6.6Y?;꘱3kfcg4?,=.9Cg/UR1cЊm@@@@@@@@,4Ә|d ?4g6)Ա~ݚn:wQ~bzշM,ov9[3ӛlL1xo`m~{C{kLMu/99c.{Ӟk~pGrH6Թ`!b X{A˰b$k= g¦߸h_E;5b~ꃞxa~l6X3 g ̯^bMm|c;]&O>WWOh_R-;P> p0;A`zU1^63s=~95شyz)&B B B B B B B B Ҙ߿Mc#E@@@@@@@Hc2)+V(k]u^tkў>bz)${_l9ɞgmXأ'&Bhؙ=b-ؙ3ܛڢv@cc/,zԝq6ҷCzI~b!:!IƸ'hGXc eN޵g-`:W_|h2RVoca?WLC~waiOc')i1r>$B B B B B B B B`iߟi_QWWZǮ:쥦wH[L#1z:X3 1붳w=kGo X;.R8kcWǹ2.1nu;Ϛwz4܌UM:nQB ^ȋ 0sa&em3lS՝ԁG|k;_ɯqԳ<@3Dm*uszzϖ[C+_/Og$]R.|k$ja?kǝL}Ի1\CE@@@@@@@@L4yӘ?!!!!!!!!0@ǀIi̧ИM{י4 Ӌl3<޻k}gNKIe$Ќ@2H1.WA\>XT,U;A0`WaX.bBR.KQD)H) 4RLό4=3y~k>t9}tzz}!˘kO[t<\с׿}cx!Ɛ>,%t8e6wu3g ו|koj?߹d_fFoqA W@A  @A  5C cGvEXXJ׽暝 A  @A  @"|]ᲗΞ=mC9wu=sXX+}^ی ;ue-2} Q}__;j!uhU;[;^9ck-wu@{c  QI˄'ȸ\@qliLC~Nxv곏7?5Yo﻾؁L)ޗ֌d fqE[ee̿Yʫ7$>5~}{UN>9g}rd虏/WwïӇz.rx_x2wZte>xʤ`l6 Awd1޿Ȩc|0>zݣ5>߄O|䐹3F&.06Zȱ󄇞7ywxޯDZ{?c?׆r^&k~ /ufR)"A  @A  @=_/Q@A  @A  . 2XÂ{랭a. 6'=}f._S̷w9|k;׏1ƥ1>iCk|27}=g|/<]cTԓ:X&A0qIPVYχcl8Oh#XAk|b ?bGa|O9ч1|RϼW!Ӗ;W{/לyџ*5!7C{?ŧ~=}Ms$|Fb4~3>zԏ񏶜-)q1 @A  @A  @00:\| @A  @A  p0pv0/+ӏdsPKLK2[n1s:=536>u3d1.-r͟s#YM|5͡뇶__G&ٰt@L sr-AQa1B'r7-N[e]O>)}|>.gq!ǭ#>vGeww%7wսWk'.' {1d @A  @A  pR00. A  @A  @*0pXw0ԩS{/zmsuSAM>-zA&&Poѵޢzm/}˷5>z@`]꿑kr2~7+zə c_KG>q{~[%zhǟX_ʻnJ:{n=!{_7a_pϕ"qU |S~]N_??Rm1pA  @A  @A \sR?|K @A  @A # ڕ|2/j>Vg렞b#҂aQ[>47-gzd[62Zx}sw6P˾޺үqo飧~a^05&5Ơe,=:-&mb& v]|h_XXD|37Vu\C ]<ݣ ~(~.?{ܿJ~]{_e_HqFɚkP_׏ԗS#]5KA  @A  @xn"@A  @A  ~w0n?^ST&$uSSlǡ ~ =9_>2 1 Gn|렵o|aonE!m]2><5C_䤎 {"NDON%CkE6)\Gя};{f ]? xS?{F-o~A  @A  @A )̟)߁1) @A  @A @ foW ŧx[e[u-+_]VC3?{9083HaЉ, @A  @A \?R?ySDA  @A  @4)?+ul>RS릋=%hS|jWxBbl]k?k0=exc=-vF^nt{{ݷvt^vkbmp"~EBdaҁߏ>1t?!OC;-z~ۼlѡIDu%\Ahabm\7w?p|?ʯ^ڽ{_\IHy6~l)|S~] _??R7{~fxfjA  @A  @iR?|S|A  @A  nxR)ޝ~]eu~; e΍Ve}C>}_b<<Ї666Ʒf;e>6sğ>_W0rNΧ"w)S>d铧/_2x|e>|H][3~ߓ6t^[BƣEfk1G}_ I)Qd?/ ŃqPp?eC|B|to)7 @A  @A  =)̟)̿^" @A  @A \>)?)̿ u<^GS;l]3).G^p5֏2e뜫;qE%̫t|߱96'O?*s3Qu >$ }})sBGv|ko=2snu)w+.=D=>>i_P<׾1rA7,@A  @A  N ?A  @A  @Wtw2:|kل{R~O2d:72P,}Z#m1>2}bߥ~"}0κm6%-u.k]%'Q'kRg,><[&L96 }__f|)[ω|{16sc YT}Ⱥ/OvVko>P "_}dKd7{`-~1o/RFA  @A  @A`WHaMa\# @A  @A`)߆Lauo:,cyD35e>}lӷF>tS׬O{ݳon׮+0FO_od5ٌ!l tk#>cdGGWJpLMI0%Q_{1S{@ _?2w>i Zggr|@IDAT*giѓї>sߋ oٯ',ߘg"'g @A  @A B cG8ߘRT @A  @A \R8;VG\>[n]5So _^uWѡ:GF^oWHǶaVX]C;7O+i̼ĆC>[px5WrZ+ȴ6='Q@)!bˁ.C>D߹ӿrC:>~/K~~oSl9/5f~hK=ߘo߭+< @A  @A 5)̟{5^A  @A  !Tߘ*Oѿ1d{8|{ǴʱO3,h`o|dA7[|?<}- 1S3 L3oMuuܜ+NRnMm~df@X$:1eIGW>}!~RQ^/O19~!|{Q楍@y"26OuѳO<*]B`\~3ɚAA~]N_??ROa~ 7@A  @A   ݹ&IA  @A  0BLJa>/E_[yvOG0[| /ynXc_~a>WδZ ^:g7okݿv)JFՇ2ZuXsd2#6Oh-I'SUA<}=O` j?Yz}Wݕ/yчhc y£ o||]d;‡9Snv qJɚ'lP_׏Sݺ“MA  @A  @X#5^A  @A  !ɮ7G\l>R(nm251[cCd#. H_NHI"G!'N_Z&z,`7"˾<[{2{}G_gu_ͭ [sTߘZG}c?}lBZW܋- ^,crѿ{~3?nvq6ɚjP_׏SݹIA  @A  @D s7EFA  @A  @@ ?R_詗7Uo̷Ιփbk)}Zd&ÆC;Уۺ_l맺CRmmxuWAa߹ٺkUoyb N[=dmԎG:)%i}(q8yt:a=:]oZ/O]퉃Sׇ xqJe5x~X^袣oZs>=_Pk~{뭷fhw ͜F?(/׏񏶜0?WRFA  @A  @A`wHa7%L@A  @A   -v0ܹ'Ͼ⮗DSX֌/g1:s:}t[`0XؚolZIȗu΁Ab}Zu#AЃow> dc;8011&$P}&ɧXpq|Oz þ>Oʪ;8:[s5J4t ?4P>?~л?;n%YgWЬn*{FMW7P @A  @A  p$R?vS&A  @A  @.s~xs罣2xO55CSs Qw7[gL>zrm Rϱ1޹'ia| yVݞ}5ey_=}H>;6LNi{y W2AN,Ly>|AG@ .co|ߜCglC|Aq'·g|bǁDZ7%w޳),tथ0dO@ Ox A  @A  @'ĖMꏖHD~ WK;)ln?گgН *KVp׽f̏ @A  @A  p-Hah/kp\Z={voK|߾_mw`S{6"[L-2D1-L}d^Y_cfuƘS d.'1F;_Ɛ:U>-yGuNR:, 6@;Zl\G_xH~0VVV16-K3A  @A  @A#`a>_p]4ѧgOO3 @A  @A .'?usPxJn*-u˧Uf>zڠYO+V{Zx5Ç^}ZC~Kbn2/}]>z3>'BgN_NCe8>:^ow.{[ 㮃N?>]8Wt(Uw#_:JǘAZr>rs7|WT?CO&k7 b:A1}/0 @A  @A kgjm>s<E?R?q @A  @A  p\R8rPğ[N|c)[7SGl2-EC6zKFmO|@ȵ#a_|h:Jw=|7сZClׯzV׹wEdN -6PO{= !ڣ9'FO?'"%MoϢa|Pb|Kaጃ@A  @A  @XoQ,ޣ6lo;&ޟIa>@A  @A  p!.ݿ_֯o:|j5OK!*uWCXaV{떻/tq/>zhIC}㛣6oNJɄƿr&h11 i$m` #|($BAL=>vt^G}=t3>cwoey'p(_dMf_E7B|}% @A  @A  pgF S,]l}B}9_볚xA  @A  @7)?)uٳ{n&b{w|_rvꛩ=^o>d3< ]ꙵgRN H[)Zf->hc<<܌G|!cVr^?s"z!O}"'z,fO>dN0!W@;oz|?dG-Iо.ao!_G~M $m1ONNoՙSgK0y6sΓIA  @A  @( WܣvV}lSw֋{JSʼ@A  @A  N .S@]>ZԽQvL1}[kG Q|^l u> f]_=d _"xAcؤc;(C'`":Q]īϤ=9L^;Z c>zVwuGƧa ~?Oz8B#]si{|SO{]w7=f 辧{z0@_{˛tC3 A  @A  @5VUq?k G8d׭9?׮@A  @A  0st sE_G^|Vi ݩ1RT؄EL5ΌCck;!2>:_yх\C27sFO{d͙11{V99:OR!!![Aq]~[Ȯ c>1ÁK_J>~>27~u7}>Ƶ5Ǹ}?6F5tFb[quQ~ f@A  @A  uA`08Uo~`x-C~W,A1C/ S^з&bU@]s9|ƴnŲ~u.Nu_s3'Z9vs@~d &4c4쳡2xʪ;w裋c[d1{Plz蒋h-}lF{K}c[96];}:G7clIKcZ'kq2l>DdCX_G{|uK zѷy1k3>r;Fvf|xH2>!}toΗ}گnvqo1/޼L~?Ow;0k-o~ӵ (A  @A  @A \"Y=pw ?cl5_N E"mA  @A  @8)?YOV?ę/?mg<5#fZdrPC _-rk>:;t-cj׷>'R詋z􍃞cd762}.u>-KA_ѻ"29)c|&zN̘k2yxgcK!1m 㘇c[̓1\AE`1G_uo{7 ]?9o/Ӧ0DA  @A  @A`"0zZ9N`tRGFA  @A  @A0pĮWa>uNowde:(>bjiO 1Wwvn"Y>'O[z;H3'c:ly!E99Z2!lCP?>iӱ![.,jwb&_ؤcNډb+X99G9G7>}־r>rm?5f|B>6bzwӧ_A1i9 rEn|dƧ}x8[srow?Y: tPx"ޗn1C ~)Ȧ@A  @A  @:3~oȧOF7?3W iL @A  @A ~7'KZWg}^a?]uZlXNۖrUva)cL ˭)S;|˸plkn}j@sҏalnBtYp~%MMzspqB,)t>:9O>,G\HO =sw9&{cc~Gv[/゚ַ~7卢k'hP%M,GxhWW}]K7}И[vXA  @A  @x."0 ?݊{m!Iog0x$ @A  @A G R7S_s>J=2da{oՙ6OuV-zcmh_^-G\ƞZh O0r޴??bjG3{|ci[bGLP{'hNIbО1:06Ɠo |YԎ-c}VwC}ugߘ:-~_?|o?;W|՟^r tm z~A5Ylϥ3c+2)_aA  @A  @Ua(ȯ U!3/>e[e5hl ZQ sM^>Cu @A  @A  o倵ܓt?piq|_}?wEa85l6H}j)pBwdܠ}b>æ-:.-3=~ Æq;Ͼ++o~Z'nmYdMf_/nss:c\MY f@A  @A  5G`0]Oa;5ufTn:jmϾ,llg~b @ A  @A  @QRYUN'QO _=<'+ك8[nECn}3c6(i9M̹溵m?bqmi*OcRcM;cQ7m˘ZkXTVqCA'AO,B'AƐ'}&b 1rҢA^@;xѩSz{ֿCW07c Y{K,_]o1M7,3 @A  @A  C'N4E 67ͅ}y̷X0_$ @A  @A "Ñkk0o//<~;~W'8WuSfJ!Q<ꄫBCS=ꯍ5 7F~Ƨ/as_7_k~OLK]䣋͡T/ ~y۵aR&,ADa_=9ct9 m#7~6Ġa=x9C;?tO߹bc\cC]mu˗{U} % ]UƅB%u,_)6{7&+7yͬ@A  @A  |Ȕ cd ÇhEnc,V7d&R v0{#P8(4bu(P\ʉ0mqġcK|+7>0>cۧ%7l$b2oγCښ+Twһ~ _?mό"o>졫'gc#PiNERkA  @A  @A \Vb| gY6J+VuRH? @A  @A e~΂ .0FQD\yu̧*AQ>[l:c6M)C>X^1^Bױ5͌EQFlVK|_y^tĄk|[5#̓Y|~Y rm$HڤNDv!x 7."}vGq }~sWO=><8rmcuҗoMџ/7#7SNn*\ ]EPx2ƹo?UAZcidD:~N9u-3}{|~죫=-vÇO~|h9ŗWu^-D||S-N/Ĉ9ap:989G:3^u㮯_#2_a']H_Ҫ; d-O|{>ߨO/O?^7|~^rK^~ѭv-r{_[xw ~R7_Y ƛ g9 #Os:thKҢ=W31OsaŖS??tOV{wΕ q++Z3'V[|}rT_G u=gW3_?K=ğ/rzO?yO?Gg?wG%TxT?=3cQ;k-`0f=SϏ/{lc;\Vĸpya?<]g3-vc_ryo:Ogk~Xc>eϷdkTמ9qC.QB6Xv})'CR>}(׈u^|Nnhs ϟ<ύ3#돬E?uG#Fk xP?N7ߏQ^RԏSc![zs<7?=(*yv鱓l+#Fj]y#޳cm>C.SӧOgxr u}_L9'?O>ys=Scg>ģ}䡇>}/|_ԧTl>IZu4cI-1<9SzǏ>Ӈ}N~CFe|acSߴ9teգ~!b/WW,ͷo G"hlR&|t0R2<򉏍cs}ZH;(WOqa,|s_mz.#l{|uKI߶ח~O5bVr{V>Um?Dsk6ϟ<\{EyOլ?x^pp+/%6\c%fYe׼9Ygw?'acNڡz?_k5yg?5Пyg?ϣ_w/~>-q2b>գŧsY1%>z|uh񱇯 z{q}Uw]Ƈ?o|tO~d|rj O=dP7ޔL}t5<-#O?*C1 Nu!'>-hCBuGӇhxS.r6O!.C蚃[cu)3SiK >2_ lv2ġ5nuOƇi/sB9W2㣫/cC~ݟ_I?_>;yL]lc^&ZzkZǹNDr8/<c5gYe9? YLL1qG?;C?Z={c޿'"y{ kuq_ܯvuݾğ̱A釂r]=sb P}ƒ7q*ǖ1c򌏍vcu=~!e=>nO^\>cd>ԝyo7/|vx1}ܖy2fqFK}lAcSwt\'$ӿL'&;|>r9|tlѓ>mlY ?ΧC2rxwao|kKu>ĸb4>ˉo.?N>S?:Z ŷmuWуc|l9M#e|Ư*C߱z|uX|1ǥ/?>QA>};#ϟ<絑G_Y^|w?5v?ϼg!򌀲mK_7d)O~12>s{} da}oؕoQ/Oyߟ(w`A82xh9}u>Ӈ36zgL[C݆1yᓼ]Bz>&2_]cG|Id :~ ֿz>:ܰ%oci'&ܐC;gXB=O1~J $FoHwd?X!cZ}x䐭<1C32c2zŗZx̓1$ƛu^7.شbO#?;1#?p$v^[1/mދ)'RυzޚO?yMx87~-x:c};GX.WE;fW_=~>?ׂP?٬?sds*4Ϭ?sY={DߛXx?٬?"&e.Ąώ?~nhym϶?@ιO sF^=>>rHqi!t GBF|iX2tȝѷ5N< zΌ#-y@f]cr/W|wls5=vλă=qaNO([SZ\)8Iu:'_"6ȴ!ف:YUNȱĠaNE@𰡅cz|ȰQNa;cs !r_##ߎ=2`O{ZHbfȰ3x.cCw=L|;H9\îdp2fGSGӇh<7i\%=}˃?|~r[r>CoO?|W_YmƇ}>޿Ăk/g.3Ϭ?G?1_ywkfa}g?}w޿?̵48d%O>?ϼswo;gM՟ؒ_C.|*yO|j|rI#'zBkGsAF\E-mQ>vcg9ի |ȗqA> "q]o0'.d=>:ښ/#z|t7o>;|&y][|ϥ={JYd눬?d-w?VpͼRoyPyW޿:"_yW?uke5&̵ e)O>CgB8'?cza?dPǟ5sspK'W|ˑA\~'?i v[Ƒ>꯺#&m. ν#>c߼O끌~oI;;tC+63F>s7>b|CO[{qhUwчM}x G&])0V_ [|A /|eCG=di ?92/|ƴG_9=CW}ZVCƣMO_=b9R/x惬uh>Ε>rH8kOncOϥrNUn|Aw|m?΃zgϝm>˽o?y7_ PYe˳"5;mJݬ'#y\SeY{뉬'.DϋIYgwY,ϋۼ]+q}?g(v)f{wI_9 BrL\92X|l飏}=G_ /_GL@78,~>mС9]a>.W֘.?hc1+xG&:€'I"EFX2a6I5 uz|u-[uh+z WV R1})-̟V}8GƱmV>cC_OuWd|k}y)7& o#78b&?OVq^o6vF^P71g?giocg5sf^9Ϛ;~~bO?sf=y"y9#돉J_sX6돬?F|N?g <'*b<9V>:\7u y/wﹽ/V7_~luo\'*b/ WzK=x==>2}!-1:V>|}!/-9v>w㗛g=>m1Wl_*y`Ȍg ҖVRƘ>ǯ |y7@<ԁ_UzƯ |B2>~GF dBX[.:TNi9c,%'~#ǏzpAr8/xǎʰgŗe|t=Ϋ+޸r/8,?M\r8;_z?3߬}O5y8k|೑y]sϼr ,COda>?yyE޿&yZϼB޿'yw޿uT޿8_vڣEguWuç1?l|s ;l/l[U|tN?zǯش؞;_hǗ?v/">8ru5hi[a>y%v?k8dտ~En>褈Rma2Cʱ^]e`o<}>h[as2>c{+#wZH;bjc|Ɛmm'Xs4D\k __kkぎ>>v|(Q]E9ӿrccO:i_Tw5»67__o\#}\_?|&r?l{yobo}zǸf՞+>CggYg͵ǼyF,O>+yw޿7+=k? o1@IDATϼg!CZQC_|710\}g;ҿ?twăh{a: |~eK/K;mсIEe|9_t!Ole.A;OA}h%tC1u~9!Οs(S־v9K=>Ƅo_n|D38r@_1o˻sqM9|]N?|./,Q?_}·7rE#돬?6#8p~#돬?^W֟Y<}n(;﬿ <;9 Zx;w9{~n33$s3oVWƇYl:< 8hO8~];9qZwu]={|}'?䡷$x92x<_}^˶D[9d< s12W;1veZݕLh!mhm:9BnxB"XIC4v_yuOdC~>#/m?l wj|n!mlGőG..ʋ5xqaU_"חc_6 tN">>࿾j_?b?~;dW_Yeޗs>3P?!xć?=>:ΜKmmcg|o||sxIqt'?hp26->m56>cdɀoqaIx2DuBʵE>@$3^ [d7䄎~E}p!bB_o͋G9z9:-c 'v?$iϼ#}A=wcL&n7/t3>6 }ZySg zs3FuWṟG(}$~7߼3~o?yng3GYd;Ydџy/?k(돬?#c_}-^YdG_YbϑM<{}H߯^֟Yfg֟YRl ֦sDI?uRak29Mw^_g?3>~髳g|?z"}g|yc>z9P/!Џ|9\e|ڢO7ck|s=[bA!}z+ζGOD W ?NC$3 Zh):^ˉYZVxQ9VNkLZsou[6⣍Sۧ>Dƫ = $yQuY϶Ϲ9K×=9.ug|9I+oLl.?sGX#]I|m?|{K?O?Σ>e <G ="6<n&ᓕ7?c,gϑ?׌ OW_~n3oYgכ8s}ٙ߿QYg=?K1)+|wq-?x]>hs/tB1mO|Zh96E*臖xre|}rCO|s{ş?/崐rbCks/cSkUNHh9)')(' ] _s_{|lO;N 2óO:C)CBC}hD.䛟:3V|xĂ2c[cc s%~_?33xp#w #yG?xr~]cT?+_cxG׌+|"ϼ3yg?{SwΕc޿?0ir<-O=9hs$lc\ B# yÃ=!ZbPN11s4b/F1rxm:>BE닖/x|1$Nw=>G#7H>-?r| ;b B{3>-|[dPT>&~7?K| ?~'<"f'돬x^vig֟YfZ"(ZW޿g?Oy7k υbdF_供m߲e-e՜?g{&׋u?Q\׿K؀E++䥜ld /e ҿz16ꎽ3Ƞn 9fZGNLݾ21mϟ>|/%Zc2cn>|sDГ&&*NԱB 8 'x]&GO]f||N{c!3<[eBp,%71A8;Zko|g3 g?F<12s7>z#/_ƧeLZ@_/6ć_ᛶ{RI/6CCy\dW֟_g+_yW޿xwpUt?D޿:r}a{f_psӵ%)?d!C~F#2/PfvouK{=_l_υmvݽVǽv_31V2G?`CBxA1h9 t!V1G߹X[o|91s3>:GLtWwuNvF{ ,OΛtԸŸ$~ɡ!7^`Ck}Ƭ2>d`g΃gK+r'7}mOM mBxa_.qm/o!''R?}.?AVP,sՒĢ;TYzH_Y{(a_yc<p#>C]wfdG?\Y+\ke=q"&ޑW_\Ye6﬿}#y`Cp=3fQ޿->5a3#^ >])?u ߱! g}tC7~s ]bwMqJts_ݧ'>NE!gl|惽x_알Rן>ٱ>9!c<}}2LZp#/L}1vGf|Ƨ3>';}ct h6bC;[|a޹m9z9bNs)Kv-$ X$ puKlg:>eRPOvc\XbK!9vq(!lQ϶W>yࡓڰwy +|?kw=t MKֹC@WM?4׼Cpc6p?gQB-4\1$LsgƟ?sx'q%*K_Ƙ3wzs'q%*K3w4_?X8/rO'wq cb_ Zg] ; ou8!Ү|۔?RzbQ~9Y\r#1xڔN$!&"\(4 }XaNEGA7Db1Y /<7L_튏=B=Җ/񑃐K|1_8_?c,'|dk8fi+珌s:6iSbO;m#ι9NiM|vz G mad_?;Q򾿺\Ƙ%GyFߍ7njØk~n9ׂ|5˳'µwͿ7&Bbcǒ81jz0bwlcou)c>ǎzM6gF>£O>@GYtӖIb J|Ǹ#2յXco{T=p؂SG}lڶo~OaW;F/>:v#6uSGO|ePx?}9q;11P6}<ѧ >dzCoǷM=9'>r|~_8"?sMݒeH|O{􋋼vמƯA>GΟE}q>מv0}}zW~ħO;)]C5uT 5__w]]]uuuu5nWϯW_5jWgƟ?6lg6!b_I^{~Jz`&w@}%~S^|r9q">XЃR^}wlb 1&d;`}-nN^궭+CaI9f |ڐC_Li+uxIBvwN%>ނ7zsκ/ګ_O̵'}gN{so_ʤ?oYoW_+ޢs}lwwͿ5ZFͿ~h?1{'P LL_dΙ'>^ub=w ;>kϏo;>'>CvСe~A\2"m;p_WPס򲍓hG9pULe_[ϋDRl-w|c?lCG|y~J|m,}mM}ڢM]a|ۖʉA,P;S_k[H|m+:);9F}ڢGh2G6VП>ؔelڢϿ]A[: #7}/z?=׹㞱3c'bv$<={;{zߞkyawݭ4b'L2hӵyPow[r^zfZ6nml=Gv$cNmN3zƟ?מhӸӒ3ӲgOVƟ'}W'_w(w|xA^KE"6ڣ.umQħ/m+sGȉ'2Ii[Ƞ/: (i׾rť ;:_|Mm FzN?N΃qd⠫MR?G?m{Ѧ.z6Xx_"ıi[6x>|y>>r}<59>OR_Yx&GF|ձDǶ>dĥ )C]|y؉%r5EFz*y?WX\7卞?ş=>;ۇ۠'yM{Nr9d&][ҧس,{oDG у瑨;?dSɉ1,lXlRp mE$|S祢>|xȥ?M?!2΁<)'m9M|Sb' >ߎ/%cS|m?zykY ~o޿{0!@_ʿ5jW_?Y?V3#igƟ?6lƟ?W9)>Wl\3|$i |<}+cYQ:rه t|DYաoTo!Mu )2[;F |ȱ/qb2 ]0O}%}g*RN|hSj`~iA; Jy:I:ѽlʡE"uq%8ߴMdw|ŵtBJ|li3<ѣ % %6h'uǃ>s/MI:iWFBCr|`'>uR"'`FzX:vs\V&K|Ib~;ij_>zy\k]qkd,h'fO]zYgK;{=oGu2|O?+HGnsqe޿1$W/KƟ?" KϿ+%y}[G돺y|昇5:D$&{mmڦ_LJP"G̨ް@!GI> ć'>m;> <Ok~8G%2Ҏ-e%E8HNcυ, V<zO;>|mQ?WW`8/IѼ>>W<;>|؁c9y9&}1ocFnG[iC;w^ /?:>y._c1!k;O|d_Y;d_]k6>||={k=Li1}}hc?{'+:SL_x߰>4p=4Xg{AP_Q<猳sB̵1k?6{W/CuV7Mq|V߲x'g3!;u]w %R:QGVB_|d_i>SAFިEl,O'_|">2^6ml[؁?}A2F[ڗFݘwi.@ty;&J[G'O??ȣ16K#Vڒ-I|W(?uz`WeşƵT=ns'#Gߞ?zmoq/4 _ߍ93Gjc?6ls&w/BObEF)xޙ~ÿ%Lxs-!??jǎG>?\GBSCQK*RO|;+︴/>z> ֝Mg)>4hw?4hoqͿ5jw?̻*eglwoJ 4`/?U/~O?6dW}y?~Y'n?yQqxk翣C_]8|s(h@>}`7ԑG+GIg^Ƈ-%[/6ϰw|rFvbZcΔڥ|99!}cvr";bc/ZuQ}Xqu]{ó:;{/Pߵz5/gguv]o_?a#C;ǺC}O4^>hΎhwl=c6X9XC4 nG?WX? >zڡgyJ{N ԃOqmy!CӯOmv;C%CeRŧʊ3a6qlɧΓQO=)C݆2//LҾkxdУ tđA^,^iߺ/VwYC@pćMc R9ǞծA⠛Ggcg1#6'e]yl8?x;>׆ڲt 񩃑g)cgC.-}_#y[;fo޿xhr6?ɿ6liRߍ4hq\A+fh̥+8^q?νbiWͿ7wdƓ?1o?~RĒ~䈿9,gs9ħ.ecԱA͙ :IK)Y k|mMM#>6oR{LYދ ՃĵDUqAYƟCHW>흭?A)vLxw۔cڄRRgrXN̉,3BcRYx"oq_Y;Ǜ:c<.ذG&G}d_8oo z`g:;Gx<>xڦ8wr z;хħ>};`lSB\;dn׻Ǿձvuygi6l9@ߍ@?~oYߟ1e٦ߍ7f p64lsދ܏{F[5Uzz4n~Ǫh5G\Su=<]x{??kǧ+N~uЕWKKRaL8E֑L>uFGV ^*ぴE/_=ħw$SY30cv)_><H;GR{ǎlMy?'xczv\G.ן ;><_Wҗv|9vי;֝z%&$6lgƟ?5nYߟ4hGͿ_~mx %lgEG&Lg/v~]#<80.&r"'|0xFhã>OR,u(iH!'c~lBbS>e+__b~!aڶ1!9xuH\ao}9~ljr8?g)⡎]tq$_|Qy,\`E\8:D/؀Q >}BS77>2%ŧcw|Jv|lI|ŀ/c;'lhӆGv<J|ڰ=!{/{{EWxnR6]1~a4jzh6XHƟ ?VcͿu)s@{4hh 9τͿViIGyV/h53;*;7Xڇm?|bPe)y/@O{K*/zs)&D7|yC9l*?v|G_;cY?7Y/<︝?|+g8!srL ĉ?XGmp:GiDsAl'>2;>;>wYj7+':lC|{Lc[:8ԕ՛ u ўN)O]'u}&Y}ĵL|xwT3|t~ԯ3$O?+/4i;Ǹ{g?2hu?4wͿVH?=r'̸̜W_Ϳ2sG?)_Ϳ;-9+3};,W7n;߬?b3(<PA;yli~Js2C^舟cR>Kf#Ã}nK.MyiTWw_9^䐁G]֑䉟 !8}qH)+8,LH̬cO>:vGQ l;2X&9F\(g|"G,:mA12Qm?D?|muq-ŧ}FͲk{ooYouVPd_@+Ye$s'?47GYwdk8c|dzms@.|;wnU{FgWa:2=Yg JYWYu_YGu/@,a}^37*8Wó]?ak_+ci'>IڀNi:|xbe[^y\GUϱІ2ct.EO'G[| m/>u֑W6Ke'2"~̈́|pE9 /zڠT?΋ToӮڵ<2`RjwTi _Ǿ!? }<7ܙo#'OK|3C-ԡħBq&~g~&O|ר'>%$>z<ٟ/>}8yS_tuC?3{6h??=40m=='ύ?MwoA_?W\Aq~}u|u!rlGe xQP{/'Ӈ߃K[;qROJƉ}焮x>sؕ&vx'>;`ƚvݙc~~ն㤟>!ЅhdtrП4p1`;iAJGӬ+ :.<|*^o%v?&}:R2{ֵl[sZOZO_Nx=z 4hgƜY7Wq^~mܭgW\Ywx~W_?7h\Ϳ?7nPͿgΝu׊/7ʿYK?A>hƖ8OI?OɩF;p+[AW+|DuC]|JǥJhG־,ńG_( 6u|ćŧϱgIߧ4Ͱ9q/TGFQJ:Jk}e^aww,gl2N@SwW9OŅ]9ѼQv򁇾cO;C\Z"c ÷a[A1#amusY_=)2zwcNzg?Ɵ?SY 7nkݛͿ1W_h1}yw4Xw~i5s\ԛ6l9ͿE5l3o׍r yZ?eO=?lGأz.u̺΁6d۱9.Z"/FQGGd^_|u@IDATm+,7ڥ>h?#27/rR 8'>z;>}oO#UNHgHƁcxI9.A;x.:)/t%>m8٤.>%X97XKq~A_yqԦvK?v'n+GW[GNkrLJ'9?O+|4'z>GN#~=^ߺz3@ P45Op^6n}磱ߗ2jG@ Ϳc5l]?Ϳ75/oo췴;W7V޿?W:} 6O|d??p¦G؀19)M|m_̛:zT:%I y;Gg\胑w!ħyC>rO¾ΓO#? # 1KO| юmPO{z%cD^9u?a@kNf/,q(w|!lC!#8[a9#_9ؐͳ,~bf{}ߊsg/~g?hO_Y WqڢߨuxKCUiO|-l9>=3Twu3:;{3xûv㏵GsWOόK5io׽G[oKn|cTGό[^uV4qgޛ?4XGǺG4hk/||ߟ83r#-⣣<6xl]ڥ_93|t ؀E{t[y :z`9I|?w.(s6Ճw_tQmv;>_UVNRg]d8y;K>`HӇml*g^̓u /?,P-m#+ =~h?<ǡOcv^azn 3}چ';^M Ou><ذՃlc~eġm ?cܗ\_|YO5Xq%w D׊5b_@egͿ6l{LeeySͿc5}Lk6jkޢ?6lgͿ`9#~xN?܋wK?:_?&>9 m0XCƞrl1 O[2g<ħwcc_3}ڰh'>3XG%9Qqu|B݇ Hg#@JzW`S:<(i'>mƠ=Nq'9H|t+SC!䒯]\#O_˱Ǔ>JK$>6ӟ8bi}_}$ՕGI}E&?X7:Ç^|PG?z~mkƵPoؿwoK_?6lׇ3;w]3g?icFKN26lw?{jcySQ A{T/C|֟v3D]ddķO=GLJG|?G +|Ǒ%3'crM `<2Rc%ގO,?W3dLޱQe:% mF÷>:ԱI:DWO!Eӆ6ca-G<8Og9N|cgOB_kyPvR^ӷ7%O<ݨ1cyFyVQz~{7x83'ip60vnwoE(?4\lWcml@;>6}a~0Gڐs?3@OWcK|JH'>:`_G'y>q?w):Iיp)ѾXdE8GI;ϗ+sw|*c.Gז!(>:>GN>zY&[ms06gx6:#i# ~Ҟ+v_wu@=Oz{=JzwNJ15j˻:5ll83(7^hk}{yf4^1fͿWls ?6l+F KC?'S;g] ڠhv2 yć/~b?w^=d!P>Ť6WfTo9dQyYv;GO`3Ye%(ӗbNuD6/ e EYK];ç_Yd ǡ.`[YlS/qtMuw,ilH\tØw;sgh:fǶ#/>?,ӖSW=ǔ`ƆW _{w\;]=zrxXYe'Pڽ{gib_<;5j¸23v_w{a\ͿN?6lIeiT柬pO~~3?g!kk{t_1d[ ڐmSס/^bXڶOLu[<qsmy∟6 |pĞxvu˶Îsͺ_O _m[ڸ߄xy ʯcu;րw,~gO?o_?_7oQ3A ,y ?ko?qm:NW]~i}{ƾ?XW/Ɵ3j=)׃q&%*KƟƘ3w|}9׾76;[Kl?gM"y dw| O9׎x m9ku~3}bؙ3<_|W RbE:Sp@֡$:BG^ ^.r>] /Pa!#~'1h'֎O?}Aڠ:΅cK_RSgǧ/u9K?m$tssIOW+e~_wwo1%?z[?~Éy޿y^߼'X ?4hcݷ/??uhLJxG>ƹO=HB:6[9F,䥎sîyuSĤM>N:b :}R*m1r,_N:ˁt`L::ΤTYX%PM )%|QKv#G}^")~51v||شC8;R^=RQ})xBgR+|lc}ӯOG1z_#K?Ov,? }j;v?zxO⎞yӦ3WDߞ={?3f$>nov?4hGW?ͳC?Xr^Ciu!>?sﱩ2<'Ǐ,9!osK}7iW{/NQ 9)r\#wÎ$m퉃=!= M=E[=py篼OiǒqOx(?j}ѿ~YǹѩtئG> a!$Y_^*Fŕ.cՖ6hS?Ç?W> 9!ϳ>Gg;>vX&utGש;'g?k53?=XW=9e5w-kG?Ɵ7ߴ <~{5hWO?O@Ϳ7{=k!s7z/6l35"3b m[sãoQOM?;샏}eħ a[2AQ=J8Fꩋ=:W ?mc+|?r_NNˁAG"(f1䢠?_ ma6 d?z_|/_Ԧ(mcb8}WYYj#mRCVO_[ٶ:}"O  xrM|uqă|>ůz}|ʹh[{Ɵ4hG?4ȿ4Z9՞om-x/|>ۅ/rv6QOȾ5G_3|/>/q4%cu2%Eg[wt|_2% \cH|O;桏2 l$u- fG?}vgYؑOri+ۇWQc1PǮ9nO$Dz;Q"v(_!~ؤSyFu{93yo)_z7wD޿{?pgm:0ְ.WOBͿVY>Ʈ#&}ե.,uuFW?AҖ?х9?!Ǐ=v,Z[ȉ x9O'Z"#Z~dy:)mI|ɂԣt3"sBF} ,J죷#?GV!5aWP:_ku;㤔v|mߋXC{o {ο??=_z쏤?kz,h4[~0/?~HO޿{_}kG? _q/'"Dkyُ?`yƊK ݿoZǖkQ;xmOq%:/[5`篸`s6e}7%OiRQOG9J^t/2F':gB(!yNm]bFO>}Z~?DP)QGҾG10w1SbSl"؄s8짮r?x9 6crI۴O;Ϳr,ؐA}~dqűDx:dQCɸ͟~LJM(|DǧO%z_ JhҾQ 9;uCg7GspPΟ؏,O;#r֑.m}JCLS^>c[}?r߁8k_EwW=z E=?/O΁޿{0GƟ4jP/Ϳ7n_eV___YgTUXoG>-*}7}ӎO[96mq?W#3^#uhgU}.uR|>: ļ %丱g|;sOo'& I'Hp,/HǣKz"ܮJ|_rqlJm0>}rǎg~WGl韷;vKxx)GCJO]\?GO];=o޿kw/e޿?k ׊< ŵw3iwgeuwl`M4jSu>6j~hyo5geu6$}#wߍ;f]gu+7YŸ 8^JtyC62P_{{#DGxc4SR{b}︱sГ!OyJC'nGJm+%)ċq#xQ=^sJ?<OYp-_>^ aCwa9'ڣCl/orS߱zk2~_ćYDŽrc+?ʥy?ϟ1Z^cz?c5uYg~yDu7v?kG?@~S <(ߍs4ngwE?p4: ?ׂ%geͿ3x 66Ҟr߹'w*O]dVֱ} h26-q<]2)YxxRy's뷱(oĎsÎ@i[YіQ& |xrg( %}l.m& mO}K|JeGT?W71^w|ګᮿygwTo_Ȳhq\煱%Iֹo_~5j&5n0l)9)gWͿY!Ϳ7n/ߌ X_Ɲ?G[_c\?6Rc3|p缴g9 Rk߷9o` r|PƟ?6ngc}y:\g#-x -+ tL>(̾GOԙ z?1GG9d^{<ؠ6mJ=~)O:}9rz'>9yg?<=fl_ߞ={/߃̘o~oĽA=ۜ#o<@5lgƟ?7hѿ?ظG_+g$FoR62?3f]p Og;wv! kS6Gct9oo;](md2C h 1sc1v8:p/E|e[>my2yA}mdv| eƦ00Q2ǂ3 Jy<]wvwLsȋO=OBDZ[WYr3g;.]#̫ϋGgϟ?ey'qB{kO⯞k=w~\lE? S_gK޿{1mgƟ?;ޙOOiW_?7ƟGw?/sGObV?3|3|7qP?.D=碾2FjS:ޣk?e|JmQJDA06 b](}Y,eRy_ @]Jt#@&6)K}w `"CcMƤ+|9nq(߅=I;\ߊD_7\#G/~7r?\=/z;O_oDN7oGL?7g e޿~s]pr6Xw(7P+Z/{rxR6X-ڠ{<3~i׍LXs޿=C\/ßr<`t:ԣ_=:ǖ7X7+$ƃ}bx_C|l]֎O[Y 2!sFt?Ƨԩ8GFL :%䂤=H{%:,+u# >$ OToL?; N S|6 uG?v 1nyjW|xc=|WE >Oo_?1my>}AB?g{?r=g{7?l7YZ?9YW:$ߺ2A𱓶XgC > _}<|:o?|j#sF9/?g)>mqҖmӮgS _,\9}_w.>}g;l?{z3wE?[OϺg;o_<wm}cq_52LMG_?rH#4hs}aݳ2Ϳ76>G~s{??z ~l6>Ugo;L@OƎOsX:Od{'_6mrV _36-WsCA~ө(cI?/¡UwJ^y6r;>ClJnǎk;SΎO۱)>ȝ9Or\? g@_ k6Ο?N?={i`hw#n?kgƟjߍ4WͿ?zrOs?4hߑ۱_?C`='{UBƟ 3|ly:?ȡgNCӿ5~?z?LJ '9?xХ:)!աt8i?n`ۀvg3|)hۙ *)6 />J1\ XO}ڒ6>eGWDz+v%e;M|m\~ꂡMu6駞9l)suqC="㷝? W|m9>>vym8vJd Յg}Y^}DGcK]mR;W?eAzdž8bPs/Ǘ\o+g,nhm#I;'E9e?u1W,> ?s6 øѾ!C ~ՃWZ~=/~oϟ?x' cf={,{5ǣO_sog_5?7<7q4j?3ܰ?6l'wA_qF6 hGGh3[~FwCM[vhCɷ#Š'E|Y8nQ=z.JjoToz$q}p xTocA>mǽÇv|o'r[w\;>}\+?ˣ K}?[ࣿ__ϟ޿3mq.5!!?<;qFG?6lyg4lI~_4^)E_?64'q{ gn}w~s_VdCmh2_.KSޗ/QҗPvY8}7Rޯ8 iqȧt~gW;G 1 >cp-ԣLLǧ=Jx@n'(}]G`|8%r <_(/sױOl´.RFGk 9uz.&ev|C| &ck;x(\_W/@lAG?WUiu{מyc[kOC޿9~ﺫXC_g={oqQ\l+fp4?+;{g~ bo7<CS{uiӳ³gO D/N_ A!)?\3H_Y-rG u+|l1+u{I!J\-l [S;<:eEKeA8("iǗbU}(Qĵ>D1R;zWzrgkR9kaf%ɒ-C.lfRz2X|b}r;NJ??iyL*6^E;7/ys^q|*__6j k}f;8k7!ynkQحٔkK9_0<ƸnAm|>0kVχRukk s܋B{ʧM+{d%W]5_-^z u~)};ʧ{{|d#yS>PngVȥ$/[:p)??o_S-^G#ĿD?% (>xMSw;]QU9;w08|>ßm !Pwy".?rts/aڵ?}/}Oy>T2\j"s>(О <󿦠|epP.g.㌱%_85){k]KkϽ5s&;ߖp?W{s?Ow3şo[?ng3?x޿g3?g>@/]B^Ks[!oYI-6|vs^kq.gok|ƔkY=\ Ưg==scς)1u?⏺fy>$@9h$γ:#h_RFf97G7.H@IDATdk}^?U>5Ž?aݭ3:u|%Wgh/-?;/V<+>'?=6ƿ?ʿʿ_ggc???????˿{s?|hナ䐴)/ΞOQ5 s]_إM9ɟ_?|SS웾Cü8{xxzYQ7=n\z>PϨϵºsGmb*køs}G짏}`t>01G;kC$_Զ=?5|eL쥼|CqKg-5g9W==G?x}ߧ=/?_sg'ş⯹>FS) FSYy*8`lkƴm5[Ǫ'/MgcaW/?L).???g}GߥkƓ{/{:Vy!|ٔ8[}şPSP\^?/7YT|(q>m3FIō1q<O뜣|(ý&53~?Ϗ|2s}I٘Gy|&5+{Leh3'u"O? v)گOv\o|xc"{,]]Bݸ-LYE -wx)Y|?B(. 3'HNo7?o$^c?腺/_7 g(:| ;[L;b%>_a=~w|Q޵9-^ےSyM>X<>Gw5cm~TaC!yyΧ3öKg=r~glڇcnʍx0mmy*EXcqܤ|0& kfQ sgQ>LG^Q (9ϖsZy῰o|-`;̭?K '?,iWX) l3-O*((X~ FsG;&~ЏY+/T]-O...^~ۜ{m}Wÿ=k3H|q3naO>ދԬY Y|`ˇ)a㬙}{M=rQwk%/{FΜ)8gW>x6{p9(3ܧں>o/%\ƤgOSS?G#? צ??g3?a\B{O~H,_+R>{`aڧ5()a5Ћ쯒?{gL i?+X?Zey͹K2,mu /LpԮc܇ks|GE{{\C,ʧ=f9[+(xΥm>={\eS'G#ӿo#W+snq o7k('GnGG, ocG#~[˛G+/=Ŀ,(@f)(**fWWWgwww#Σ2gŹ|p|kS{5C=k/:KoukW]ӬL<<·;yM>쭲(g:|pAR>sEԬu>mױ 5_5W-l|ߒLʘ=cx~kS&kl+u?JrMIA\??=>3g- ]?G#{zwW7{Ŀ?Gc>yۜmǿߔݰ75O|{u/briQ>cKowK=/M|Pg_?qf?d3{ϟygO#o7™)۟GK??ˣ??]J|q0ǿ7[yvNJ_^5ʿ?˿˿˿ߟ#'{y7y4ߞy[v/[gPQ7y{_%ǹx ΈT0 hu9溭w/׼&HlT::^c3KGq%=|<-Gx{s=vgm?;UYOS)|[G#?gDK_4fz?OS~'~OOpOR濜5GΣYCR}O)G[/Yͺ| Xk̜O[MAA(:SA׹/s\'ۇ5W~=S_}0Ƈ`mi r#|=7yf_bOg)'*x_W)?şo#W=??g3?g{} [*,,|ʿ˿S<;R?S}Ǯ?X^L`?p~Է#9)>ɜ_W|p`@y|,y\X7qC?׶کcЦP3)~\~=m[-_cqGuSyy޹m8?r|>;vn蔟uP[oCg?_}Ggş0yswGcNC_0]W_wcG;.(:TIa]ǐ2{1)**cH;?????s<̻˿ZuJVґߔIy1Zc}v~]z-ﻎ;{RE;_]_)(0EBPjJcsً>8q/OY7?Ӱ~Ԭu#K;.}#Vއ{}Ċ>~nI>l߅Egxbed" g'8DgaaܱO7|d?e s޿pibA޽z`e3WîOS%B?_{\ǿgd,,%Y9%V2w{ϿKǠL¿*$5Y3?"gjmpȡw=+vy߹C7:C\)6 !F*Tsg?kk%sދؽCT]*g|C=<޻g~%?unӿhc4uCyܾ?9nS9brَXіg;.(*\s}g̻˿ʿʿB;~d˿vʿЖɕʿʿk&o0XڴaIԾ=!LB-\[\}<εC^8Ã3IvR觠b]R}iSs/sZ9M+k?Z>GͿ@:mI>%^sK=Tl3?/iq3"߰kj n  U'ox]YWs\yh=FxPS?߿[co߅Hc?߁>o>g߭v,y\;)yG]/8TE_e`k~SCe̾9\#sd/4G+}Gga% Qv/P>_?3 쯒ֿz_z_/,x_37QOG#|C%<[G@J^z=:oF._W<]OO>Z9ʿuZgrko[~ZO^ʧ39ƞ3*/CeX SUlPh32*;"}Pb[w 9ug_$߹ι$߽_/y{K>c&Edտ]=m%1أok~7N8ROXu//.P;c#B) ILkE{oGZ)?/ԑ/{)j9nVCZ-Ͽ^GcBkvlSvkEa<ǿEOsOY?3ȽQ<Eb q\^Q\b3q[eSS{2Z }cu=gMw=??}svy*]Mϖ?Iҿ l}v MXǹ}?rnoG*?{.{O[??a\ڱk?[{ſ_O p>_WY?a);=G[-?cOz2i[}aB=owٛ}eOqb?5>8);fc ]ChSTSFUdėZEV]5boSOŽ|lnL I|>S>-s&a\OOG-X*gH?YXSK++(5B+z/gSo(((XyǽxZq×>)smy/`Lpͽ[7ğtʎ CAi(*DZRYvqk|ԔV*)sF}|e<k}|yy'}!O>{s_bO_/L_٠8WgU-xoGܞO'ۿ$lz&ǿ2&X+?Z^'zږkg s}}kwfmj \-8oXeSpSg0EVYG>N=K$~|Gg?J>2-ߟs/H߹/W-/Kſ s]0V:0BW.)pC'3ma]to1,ϱSĿ!BerY?i{O7ą|PşOSٿ(?_#<} oCPG#?z~?wGWwʿ7t?:'۷Ii[kgjߏ},OܔO39rBp8*ʤ22hb{\\\;Wz`ʟmmp&R{/ud?C>r~lL ӿuL?%=rxtcƜv5< :u;?ч3̶zƗO7xP_ g9D399l+g|?O@k] P]-..>P1&}=|bmgS7;ECwn*ѐfclg{fo m^_R[ Ι2g;~s5C_2I9N|+y_)@ώϜ~8g~sv7]vs{/R)85es=i/ q/H+Lb 5sk8g3)?}яsMΥ}uS[Ys=_ U^G@T@LErs85cFpgG M[MPُ w{_3uʦfgDw}X~|s//?&ſg{7wGGG#|?Cz?w[-o0 3[E\/s{?}EG>Zʔ}_=6uFT5 *4(5>XZl?swFu8[?|A}G Ggؚ/gx~?Z>H*yeo+GS)?ş|[-/~ 9 ?r(O _[[ DO_Smߟ7@9{{'M>>3=VމsPKn?S52 t4:FCH})1ٿuga?%qM>K^sڔ䇿:n&?ߝ`񏅓xĿ?W,sOx#\{?(,$N#f7 lxa?`'C_z>|({&_;*u;/ JoaO̿:3:c}^c<1ߒmSy/< Q;7JcP*s݇8]5ڵGq 8{Cm#_':3p?eP'?zñGa1ε.'E;˱/ OĿk4vGB1±g3cf{c!ϢW/?L).??şk?=GýW>|x r^ӦtmS;Ƴb-s,}͘5Z q| >峯swI>yڬ?ʷ9}W^[%Q?X }_Gbo?tA}(<1X<1|ic_/m&Ebſ_O|/rLc);A((*">ӘYE",,,,o%??s c)QYYYo{'g^;Σ3\Ky^S;'#|.dLӘGq44:ֻh2ד{sxk )55eο/,-w1!8qXL_g3?u?=_#?1z/yu;•-5eƋ~О޿/˹o4ZEhן!{|O H}1Byz hm{MzY>S:>fy{:+`״N~_'[!r8i)?_+lB?iA?}^\"T/yVChv :)9s,g>}Lx>t>ӿ/=Ec:me.mˌşs|_8w#?ccTGuog׎Fܾg918^ò?ʿ?|VGy|)......~[ ~(p1b.5s\'>}.K`p8>&֌QfB~Ov̵zca1 mH;ӆ֌O\ċZ̬;O߱`1AO=#ik\K|A!0v̵G`1AO=#ik\K|A!0v̵G`1AO=#ik\K|A!0v̵G`1AO=#ik\K|A!0v̵G`1?k@< `:+6ckk5Nn^9լÜ.O)/?A]7Y3}sR?ηҿoju9-Ć+qxgԇ#լÜA(Oy_7A]7Y3}]ʥ}Pԇ[լ3uS^M}:bZQ3g~=cgKҿSGl_Y9Q?ҿoꃺrIofgL}fFa~Kҿ%q̚9~蛟T.C:K>Lݲ}f{WǼ1M}. 3_OR1Ҧ}/m| B?ekFV}*mvwc7>S)7~[).n`A:a,$LPUUUߞ{ V)s埻Njgc)/oRϕ_/n!()M;3΂oߜ! 4M Sϩg9q\c5;׵;Ubƶkw\ܓ:uϹƶk{%+?h3QWb϶_;-'1#f_?i3-?SoЗSHc5qΘbNo0Q/oi#_o 2uJ:s&s߾\lɒ:&E-m">3bv2+MA_N?[g qQ;c6Vۗ 8Yҿ]gD]R-SWgbf[̎Xſ7)~$α8jgƊr'K KueLl7}:o9VG9Xo_.6dIvKbT! S6/hڹo]/siZ8mƘ<9\;Z۷5[Gf,?GB'ՕM1Fߵ̷ql3'Ku@GVW:^Z۷5?@؊8R6c_hC:µr)(1Ɲ>Գ͜/CO!tZ]9zekoLa+H=یe ѦZǸ܇z:N#\+GRw-ۚ lEg/~!tZ]9c]|wP6sҿ=Q tkuSe}[3#l3e؏6N#\+GbbkosfN':puJߵ̷okqmƲц tkuhSQw-cyC=I?DB'ՕNWm^!yec9ԮpPuqv:/"x0"nῂxZtho#nҧiobne&WO8QoF?Zң#w{j?şO7QF#OOGP7nH;<~TEdăq+?=h5şO{k~#[:BĿ__G/B@Q@Cmc;gDc|s%ֹq> ^ Nf`˩CWKW=GZ)wG%bn+MĿVL=KDc lS_;&G{:bU)EkbEs<*cr'GOt"|^_l#_رcLG,rG#ײzL~A;'ف#:|?3Fs_k/ꊵ'&_'E≾lꊵT-N_AS!fP|SW%Λc])+S3}OCT-//0GC]V+h?jxx1}Dl?ꊵL_A;U >Ƌ+%4f;PWէl"w VW$s#;kt\3yc=5|e0})W?=ew3,/Xpb.?şO\'{*!!!iK+9sݏ1߽ܛͽe9!8U;L-Ιs? A(=?UB_P3yӷ:5؜8U땸KbE8M#1@$7u$tB?=hvwiV187AdGݯhm:4}8QDlԳo7B_8M*F'/,ճo7B_Pwo#1'ʜ]zw]K.o<ದ@n"׮?skI{e; S+_e=oX+VdL1'_Ģ7:@_Wkr,cE3) DOl?O=7ێxǿ?ʿʿʿʿʿwrs̶9lh9|Kd.******\!4$'2Fqmgu5/:Ǩ)C>K[/ݘqeݏb#br\ϾϮ7ş>.{.(߅Da׳M{i+G Jw_1g+zS-cڊoR]8WLq=Gb[-q}}\Ͼ7>.@@b 4f͐LᚵucwŽĎ~qG:q/PđZ 9`Ƈ"n(v\縝8ٟ6h/؇mFHX9N-M@G_QNq/ ciCJv{Cv]'[92mHю!@G0C7q;ӿsNL MӿOB_?j6#ڍv$v\vIPCp/n(v\縁P1!t% Lۡ_ю.- B6hGs?p#񡈛89n'`&&_ /e5 aF;;U IDATO@g IENDB`typst-0.8.0.2/test/assets/files/1-writing-upload.png0000644000000000000000000274110307346545000020437 0ustar0000000000000000PNG  IHDR K @iCCPICC ProfileHWXS[zDB *6tUD숝Eł.ʛu_|?gsܙ{8ΗJP-%@֨T  :@)'&&E{IZH A>+RY!Do9P]  • {6 q\[Р, *dA z.X_~x!A) }v:Yj.ʢ$.'%?OVj,,N1g# q$#*b?J{QJ<,Qe 0g@b!?(bcC$yQj>#SƒtEjqj_h]Qg2_DZu S *'EALع 7>Bm38o#)ⷂ8N$ TcE8}i~A|b^+NSkù`DNb`Td\`ܱg"IbZ烴00N5Hb(/T[@VP'31 8~x*| \X@krީzB@'5?"Y#xP H *{E_X d*{#rAȃr(ɀ$2x*|?@&R=`b1BǍp?X]q6?'vC5B8lOQP?Ds@Mw<PǍpp\u܊~ ~xj; %"~Iw(rc~Tf ;6gKl>;azŽa X+vDVc'*2YREW(xGxd8+Ł_'8a^_ob D;7|΅`'9;6thpQ 8\q!4C` ,+> p @  φ\&`(e` X ւ `3v}'ip\z: ށD 3qD\6#H#Y#S9H YlBH#r9#Hb(EMPt(F9hA h1:]FНhz^C;h/0ML3ǜ06ŢT,aӱRj&`X7'L;'|>_ŷux ~41MF %rVA): D>і b 18xN|D%H$G/)'JHkH;IHIf!;4j\xE&{Bdbr"MR(9YՔZ)]MMM M/XML՚{4j>Hա:P4zzFhB"Z5$>IwB z~AfX38bF9c?"[ekMתjԺիP{9g:$`\:'u11%000O1;u<2]m=z:znzIz*uc6<<d23H4hA7l` 2(5mp!00pa=#(hzSF݃u  .omc8xfV^SP&ݦ9+Lv1f+̎=g8~%!ۡ#(v\>0kdHՐNT'SSg}H/Z Mt虡\]\3,|aM^: \+\ >cxWnn"n7ݙ#7yztyZy{Vz`c g^^3{}.Og#lGFl—ɷÏѯܟ_02@5)Ǟy( <͝=' bR:%x!,"li O{O oFGx)l |((IT}4E/c3!P,16&"IܰqgwĿKLXp'.Q؜HJKNz,cQF]H1J4RRrtg{ZI1c&97hl#ғwGʌWJB \!ff.|囵<+?<[ ِ>7:w[n_^r|F$W2tRGiczdHB]#*"PWTQab'I&Nv`ߦSSO54δMӑӛgXΘ;sf(rg>eo$ik2wGRSB/ܘ3o||x~ۂ ,V*,=_RV^e`_׾E{,^DRۗi/+^hu+X+JW]9nr (:VGnXcfɚ/k^]i\:n0PFƛB7UTo&n.dKҖ3jlmm㶷T{VW0ޱtLyiWЮZMw{{M{}_ľTd,C&gw4477674<|haG,>J9:h߱cǥǻOdxe']9}wµk߼v[y^.̻7_;<:<z0GG/<9 IS\ |K3Uo l{7wߗ~0#Oɟ~eWM"e|+ mR`e,̪D?aQY<{gC Ç\(Dx5#?:s-Pw|9[$>eXIfMM*>F(iNx ASCIIScreenshot=ؓ pHYs%%IR$iTXtXML:com.adobe.xmp 1766 3046 Screenshot ?iDOTs(ss-+<@IDATx}Vߵ9{½ł-PMh[jJ&iJcZ)J& (/i}14i+*-?Uт-R^Bxr{YX~k^{8y|s|1sy FEC ,Pk;M1o m~DZ`I}zyx9&}:c>XAu_3C(%6z߆1K?B2׌y~-eޠ/SM[ q XQ_.6$΀~Vm">3b2MA_N?֛@Ǡt\ uK68F_tboPF?:!ٛO'H7-[rsM5?7\dMWW׶\#____xk_.bF׆l5)**փkkoK+ [C`XnMP?GKԺwϒ=~<C/+>`שodX?Dw)n1WEk+7LDvԕ?jR?Q{â{5]+&{{Ru{{,b -rnIg'VZ~5ppn@#^83H ڨ?\l?|kx??k=^dmyb3~N[A>{-l"uiS_<7?VKՓ6__ꊩTU5m/jG1mDf+SGǴ??? Ŵqm3_QOOXQCvBȅ:1}QSH!+keurl=eWۡ͠Yu显hc) x6;q̞L>=) xkcIC _1vs!6N'şXOm&XX؉VhK???7;q̞b9^Jg Ayh#z-Uggc>h$DlJ&ODVHŹnvu-qf6m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]/ _/BA=䭓:ʳ.n~N]1?e]@~6:ʳ.M'_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@3gA@03y4,:`/DGyg;c|PQ/n(v'<䓿#c*ƶ$և x+TOQ(ߊLņߊL/Jl*U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6겿+2oW+k+>W1>qL7Jl U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6u~ܣSmjzr/Y࿐(o?8AbK*3o<cҗ:x ۯ?DG_ş?Q7H=̻hxP_j PJcW#6rC=̫+e,PwcwSw} sͼ(/u\he2i_p1?۳o:H+E]=?8";UWlo_Pq/M*/g;o7dWȏ?/Ro~?lA?|'ݣe\h//g;ƹI7z1^X,HE*@ (C.DoIzǡRF`_^ܦ|ǾL|_QϬ/,t7m_[]Y>Wߝ?tr.v't[珏w+~y?wsϝ?ws;Lw{ sz1=Qem={|x|!*LԂ L 8i}:}O#0 %CyWƝ0Hx䯸o5A e7_?ka/\WD׆{e/VX|?5pwk?uG?V_+lfnk%m孹X#wXA{-{9o?- ݐ;\(1A;%eBx3ǒ_:8 2;Dž0_x5f΃)_y[fg>-Y!1._ڒ⯹,,ԇ?3??_;ua&<KvK/tsoã>:a!݋l}|,@S>{VWK>ꡛ[E\taha1X`g`-1BzfJ? ~ǥcWA>e*q/ہ[H'Y}Cw)((:/S?? H(..^Dwww7GILWW\??\=whwߝ?tK/?O?^rpt{/ XTz .@'94W>r|*eɞu۟|3_/΂%SmO?c+쵰>G٤?;W ~lZ?+uCaYg{gO nC~Ӟ{nr^81?7}B,.b<^Ry]DKա"qis̋Iqwq";S޿?w>p?i'1~k_b@g?h?% t}i?lI l@ :Ο:'bΟ:qY k=w5klgǑͨ! O4H!p[3yĦ`\gbku qlS)~:?峰#|ۘmWɇo@1ϜOZӊ?ٟO'to7 g=_/?ſD^n<:'? ^z>wz_1~lc\2+G?>@d!<NS /" :)t|/y9n2c@s+?&Y}?b })YǟZ'Yk"k-@@@GGI[[UU[DGGGWggg'M2(...m“?Ss o:ﬢwsrΛyh.wqX y-iPvuOeR["4|L>}C 9'\&62cၜrɇiGv +w?k?_@no7__agv_ggggggggg1fgw-6 Fgm6c {5N} Ǯϓ!sxA6s![&UYc}n>o :f -_% ˷{Q<= _+I??^Hsk,Tƕ׉??ֵM7\tgtp T:_:nP/?g}g I_?{3):ʶ-see0}h7VzM v,RݲO~ ON|;ےq_6MVeRhv7OZ׆4joeRhKw\l?+Ly۠5vCs0// şş؂oblB_Fh_cTc[~sEe5g->_?igZ(--]z{wjgcoIxh1K!̔OÃ/K_q:շ9dUOl?O'wo_?VW[[kKo/:`D>q6?n{3SQ@R7|DGW(Xm#>˔1m_ /!+-A6*`oSmcb!wloCe+}?ﴏ:],1ZDyex̓i'3+uG7{"'(gs%WC9혴$(/4O ix:TLiǃEQUvZ*2Sf<Ǥ֑^$߱N|uL|.z?ӿ_iO'l?O'Y7{W????????сǍH[_?2'?,13c2W?Yvڮ+AS~! @UT\`RC_tP }.0׼c# +2_ÀXX37偏dʟH>SK8? +r߆||OOZ5s'danz?o n6?X+Cwwwwwww7Gٴj{1 uC[|oy?b۶ܝ'v&?7y?uL/zߝwF ֡,0dX.2Ǚe~A^>^Wߔx{^*5WMkcߟW_idW=WܤwLi7]]'fw],ǩbt,JdWl!-(*,6vnGE_?ߛƐ +{ܨoj;????o'$3^XMƼ_!{}oO*],{}Ryo CT<+͞M wL|b+g?h0O|o/zxSw:5c%ij'I_f7d??_t7+(((((*,,n_?\¾?wC?tC?tCZ5xoR>qrI!yIۏgËC^wGTG!TSǔ1Gǚ}k wL~{=|Uȿ3}=?~mfv5/ǸOj8?c.C7fzо"wL<|l9BYJS Cq*|dz}E}}ٹ %y@{)5Fcc#|]55HcϊuTQqU]UަHkM\"ROlCwwxK@?XB_ O[r_+_:6&?n&]gE?_u?v΃1%#m_~q>6Nj|*x*m2NYAy ˡgʇq|e29;G߅>{E{Sv/T|W&mQlKbyfĤoG1]7-(((((*,,,,,nWߝ?tB-?:  ݿ_ceSggx]W?f< BYtKR|=ċR*3bPpQy ʴ8 TJx$y<,O,nlsAɧˏʧ?2u{|._){??-fs6gCt?d?[Z߭\ϊGk;NJ؈ϫߋS2e.59E5KxW׾ʿx)x9wP~KEN*Vn~xF"YG\>UyhCCE򩟇Kl1yy`fB_[ϏCO|e睯+ %9ET߾G|/?їfMƟu h|NJEww7a?o1Ά)hCAoG׺??Y ߇{fijGgGE~닶>G?c郯3?_ +!x}}~N繥 0?,>* DMd)3(D ; f<\&cL>{A_O>}W> /{7~#kZd?Ogܷj{3r]/b!=) ZoW[ `+'C ﶏodoGۀP/_VJ 8k׽)((Y=IzHg:Sοԅ?;Iy>!?3}cxm\@<|Dxgwv: oj2}'\|ɣ5UIiԎ ?uW1Kף|.&y?Ƶn, MF΅'uk]?O:3+???.?(****z:şşş/%(...]$8'>Nq7?s:}}?#uSq')s{^2q<)D[g_y{1ߋ9?m~}2Q'Ǧ^sA+, Hw(OS>ɧ^>cPgi>cit,6SwWɿW߿)y.eSNʓ{" [/ x{jkv"3.>oϨWgO7??^~mO??Y;US닿.#??;]kr]w>?ry0?4>yO=җ˧o.ϫU':;жϸʧgʿ~#>g'ֳ#C٤7-_ ~_6l&56SGdJ;_l?ٟjS_Ο?uh%}qnMt:Ο:'@o=o_C|Nps%{bSx9%gq|þ?}HR}vOAϸEm_FwSxOꡩ嵝u(C~xUI_Rlu{N%{L޾G)\r#M/s,g^Щݏ?@ iws\nfҿ;RXKP(i?Á ko2v' o7l"6>b;އ?f5/o7((*;XWO{{_n{}SOټ~TY?ȇC ؔW)C;(?$ KΝ6ߙy/_YJ>S1VZz|'YM7{_OVWhHFEv8OM=*..~oG;Ǣ?4>zev]7}Y":YWB.+s'$=(C|ɗy_>JIp*+.:M\hz mW>oB΅qGd˧MgU>kMϝ"s~{v:n)uycACiHm3o_d1. !uc|x.9B=,;#SJ>31߹{])v*> W]y~&Viu O'dV=(93yt[QQo??<1̣'___K;:sm_sfO'sH}-XAYU9cGco?&mwU3|%EvE!cYY|y3ãS_~C \/,ŻP*3F]>C=48+s,x"29}uYR-+|g/>ʟ$}Wd3O#1QwH}S;VWLOb-Qӿe>\ڟ/8+[ga,o~)"bk)QW $! =5o%U? 55ڎoWN`1-ri!(UgtC[((oXtxC_b6HMQ??)(Vh;??ċ_|?y/T'vMIO=%їwuӿ} 8|-}{ eP> "O*t ʌx۟:ۖ%0 }T%E}nO|w;ٟgL8m߿O~?l|o?ٟէOg1~` 2t^(h[k:<ʡl'??Vĺ>WoړOW] ЋNJ~r5^^P\ODw`,,nkcFlK^jfϿ_nqY:e}{S|)?|96d/Uw)ۗ>3'dAy~g/~͏{ƇC/Cz ~`JEUVg/6}|l꼔@Q@IDAT":SO2O{/Ý|t#%N\&:_yzfM[d?{?j??O7c?آE?XW?tC_<}Zum_I<~t SOD&nOm@c2 /D."/N|3ONyc\1/wPwSO~p\d<3ğBqU0 8~Ts1PJlLqI_] c1^>eo?r}u)a;6H|w||?m}o{xS^/m?z~7[e?/7[ŏM???hgU?tp_'?tC?tCOwy+Ou/x8c@A=]G>c'*C(v|dڲ< |g`ȇ#|L$??4/gS22nW(2eC6Rȱ?&*/Xg/}|g/.;&Sz6gv|+c16t||PQsl?fט -*XR7k~c5B{[QQ,??2N|d^$_\7>Q]%)~xֈ9Cp(ڏf?1qA׾[\yX.cS?싌@K +-kC?߱qϹ{!?;?|Ɔb OZٟF`++a:?VQ1mw____s._^Cy KO=}?O'o0Cwb^ dЏiC)wg1j m#e?ncE~[aN埱1lXEm;ﰗ]x;{̾{K^>e|tʧsNʗ߾!S2g|gf'!?L:ht|8ǂm#G%l?e0u,-^$i:w/0?OOy/lcʧ/oJ)ql뼿O_۶oY9SH/>3RoY9߿2ٜB2|䇿nM2ꂺ?_\s쯺nd/>fXmn7.o7-(*"L歧 އ8O|m#@cnxI! -RO늵SY<ǟU_?8W![6G>)1CEt :cEg`"Sl˧wzHy3gB^0o L}C(r m~h7eS>e/,+ñB޶S;/)SR<\|ڕ/PcQo)鷗O?v||y/y^}G%{q]v\oˮ7xZ!ˊbٟµ$W$_'n1N;ܪߺ.*s1:iGohXW/l}4fD7$[? :;C/mCg'kC_E{jemw=3ozGc/eo۔ocgK@ו8|63DeRߋ6чvˤo)O9Ggt> ^~HG;@(C2GʃY5ξS |e )Sϼ|4S8;0?6T?c\& O|O||{ ?[{?-Bd??ſ$77-_GGGGGGGg<_şݦߝ:@$ eRhW<|fSGkC;bN2)4EG䋿V,>iyPt8O.CW?o+]$[sL>m)y{5R~s˷]?i#gxɇwΉ1% ҽܘg*֏'KNvU%{ y-#)32WSrM)CK*^ mG_bygٿRu_S3ȧ|S?)+Wy9Og\xT)֞|OOdXqٟ ߋfL7;Ka+|ohq_kf7jլ?6|?hwܔ[͗P,h1>{d}7;m}H6Wt)~8`<ʃw ?C&ාKJd=㑷zU:_^MlLF@P*`!S/ٳM^Gb|7߿^c*}y:{oEnR>cLJ?ߛoo+(şşşşşş7uT]]ś?mW/g?\x.I4񒗊?Ebųcӣo7ލeݴ c<+.qƾLx< 2)C{o.u븤˧mO@e| /迗/;[̃:s/o_^X/Ao3|GcY?T.zR'?bIA~G9Δ7!5·1KL)w@.c=KJkS?Sޔ/u[o?R9|J|r|u|8_Ci^a~ei4?vwdOnj8 ****bXY9|3Aşşşşş?6,9*^uG;>S_{Oz{^믿%}^z !H%O^~[}yۇ~+ԭ}嗉p"e;62 .hwt[珝vwaK?~߻tG?Q#u&OO}??|xy><<\_э2D/yKL\^+L?I,UR.9?3rMq|L˳dޛ*@SK=yư-۾Te ȀGT>e66q|Q?CC3} ?>>?/+?~rUw_.˯p{q(qvGeWo?|wG~~tp^;̹`h?α)̸o~ocR(#ӋĤ\L۔@RH}۔kthJgSA~DH_Y/SGX~T뗪*JF:哷mڐo?R/U1!I sG/ܹW(B B B B B B B B B B B B B B B B B B B B B >ϫkI?w}w~~}C? p>0y({}L>IwmC UmW y WE3}$>Tű:@& f”1|oxMJA /#ז`,Yg3S|Q>b)&a?7Oy/e*9A3Ŷ%{|x͋eb'I`}hHЇ~g6S?CʟJq|@2 ~>"v=/ſ~W|}ͷ^G!!!!!!!!!!!!!!!!!!!!!w w?;~ǿ'?я2_X.WwLv xy:BZs1eb?3 Ƙ㐷G=4Ǜh6h/~=t<|۟j 'r>T(^># _>R>ǃX)9ΝvH)Ia9w;ig}g}}_C__Uo~(B B B B B B B B B B B B B B B B B B B B B!\?wo,3p1߿,t&cϔ{ƴ>3mzȀ}i˔v囟sʧm|OX}sw)Ͻ '~/&LBs#Y&=>!?)m/)O=)6Q/qhSc^&_vLRRgw}7|?k7xK @@@@@@@@@@@@@@@@@@@@@ m%e~aɞ8A#S]cO_$~~|ַ__~wK Q@@@@@@@@@@@@@@@@@@@@^z][eO.3/{11yynN^kH MӞ>ew>mwnO}S8'x( 'xn;cw?0myɝcOf_'O)1^g,;g+zfy)}uI?Co~wށ5 OpWMM2^7L<;)mɧ'UϾ|6& 싿~~/GÝyY}?'/8Ky:);y?Sf);ʡL~AoOW;GewǠvN4ǟm@e|ly}y>/_/|åvjtB B B B B B B B B B B B B B B B B B B B B /^U_|W,sSL)^v/ g l.]$ǣ|{g:d_SK} @<1ϼ&PLH( z6?a1"zO 6(c_$? l~/6~|ίYD;w~kЇe?p{~1)ϼLϼgl~i>w1/){_oa?3eƧyA>kyHK ?Ay8Β}:Dh&ySA:{4}Ao;Sʇoʇ߾(yƵ47kiSwu,(B B B B B B B B B B B B B B B B B B B B B@e|C2=ysvz;{~ƠfKk M_}|;sY%:4eO)~lAA6!R):SeX1* cBLs4wg!3%}'?_^zס9 ~{~_cKf?{yɞՓ~-ۗuC΋a{ФwlRƁvۨ5uN+tw,8yqP(mT@vپdcA{|_}ȷ$9>|A}?D*ec\ >A~^D!!!!!!!!!!!!!!!!!!!!!} ܯmg􇗇;c@M?iʧ|xs i4or /<uǀHvbg߅@}qL۟ʇ1IT yc]B>}/2Ε1%E?_lQ@@@@@@@@@@@@@@@@@@@@o|7|_Yc{;<./lعcO{.miya=ϜCs|kc*:EYeIll~ D>q.o.,C2d=;l'"LH!ʥcn=xŔïז_W{(B B B B B B B B B B B B B B B B B B B B B@{}7˄ry/`"s^tv'?'8S)z_3}gyʎyzdFy-/ܩЇ|iAlgRW~X^\W3o_?1˧MbʌL_ˁgslƃq^Xg=O_" xx啗||_Ϳ_e?<#Gd;IDNp 4=9gRrAFqq9gR<&by :|Rq}x N>ǿ{_m= xt%_e?)D=|[O'}G &p )s,/7"u>S><)9OyIA=)ז?jG!!!!!!!!!!!!!!!!!!!!!']p⎱G&2ygɞ5?{gפ}]fgRdQl?+x1%.g<ז;ɋ? BzQ)Oԑ! #Ǽ/Uzzџ6H%".}?h=8̍9GA|HiS>}G2y6xkKg+_D!!!!!!!!!!!!!!!!!!!!!\_>Se`y>y2Q#~XB^[q|*?GD!!!!!! O|G?+z˳GX&!W5=B B B B B ^h^~}-//k_g@byG>o&l_4S_Pce^;AC!yI!ǒ_\zmmL>~Xʐ-#@{+p1~߹#p!~/֪B B B B B B B B n }wAnW^y|-/c!L?>bR<<һ1w)Co6]k7y;a=ï,'O~KաcGO%ke.'ϼoɞɐvs9w'>O|(B B B B B B`"}OO?@@@@@@@@=%OO{%(B B B B B Br?}'_\|dy+EfS!Gα~Gey쁼LkCy~yٶ|iHʳ2R>eeGXZϭB &il  !{FTp[QԂjZWnjkbZ[u2d7d'sܜ\ 7}s|$s㷘!li c :̓O=|cC {Ѯ-~֊y̡Ły?]>ܹ蘝7}!`!`!`,ZC0 C0 C0 C0 @jj$'' ,!`!`!`яnNMI&!`!`!`N!`!`!`!`@ мysNjM C0 C0 C0JC#/zK 19蓯9'ڷU'W?86kCG^4߽_Nxa~}҇qpЖzu飀1/Z!a p8F˃1|B SU2710`zA1 >~<\;g}{7I!`!`!p"{nY~O/C0 C0 C0 C0 hA֭[KzRa!`!`G#/jr _#'DbaC[ =!he c`*cc{sN3z0~>->'% ' A?yĖ #[8e~ ͯ0I~~ĂC㠅O!'c됑3'0 C0 C0 [Jn.O!`!`!`!`D1;!`!`l߾]5jt`,Vi}YRSNPKP?т[?g=x~~0?-CK8[U|h)>ǵ@Qa&) 0 xi9؅ bcIeLqR`ѧ t=K?9`-B=l!~~0.BAG̬i )C0 C0 C0L$##\0 C0 C0 C0 Z@jj$'&!`!`uBy믿.K.r饗JÆ؏0B^z _==\@&)<} &@hIca1kQꙟA\^0}??ơNg>OT}O쁹!`!`!`66m0 C0 C0 C0 C zhԨh"z C0 C0@AASN2vX&6༮\Rl";v{^u8iٲo^bcA$5i`yzL.2 r'}aK6h!hOȇ?֡=}C8_υ! C,OOs> Za9q 'ZԮzĀ0o 84?ls?cpmCNEb>Zd꜑ C "'B–;F2]>˅ C0 C(UJm`!`!`!`]dMOn=RAINJ͚Ijj~C+0 C0 C |`)Sٳ]#F,OM& +" nְaCiӦ"PKjJ0/;惟 !xHGK.vea?آO5e^ؐ  УOS'?}-3 c-}`˾v\oz- {`  ("ɡC8Olx/txa]~ØCXq8fc hq̃?8=#@:L͛ߖŋ'-"q)"*bV1ܐڴiY!`@#`h?CV!`@mG`~zq.q+6|PKl,[4^M"!`!p I,Y"ii duRPȯ 1!Qt*{HF0 C0 ڊH/̝;-acɂѱ]w%͓^kV䪫2r"}i\A^z%5k[jbbׁ@_ pq3_`^drYg~m("柬u/ gccpE ?:t2#ϼhqyƅƴ/a2?| h! 9>Xh GDנυ!O|`1!@hy`1OUN/";ϏOǘ2Nx2a}h:ul'z7c~̬O0D222d„ ŢC+cƌR1F̯l:eO=%ׯ%..\?30 C0 GBC0 ډ.ڒ@5! _е47!`!`ŋo_ew]9'D1j!`!`̙#/+wСrg>v_h4jH)_ve_Nz-]ziG]<<% -[F _s_$)\C0 C1C[!`@t"5F' _Խ=aA =}۬_a'q öEހib!`6vΚ~:MVX^N.]V+NeYe⛭!`!`@!- o^N:`҈9dSO=J`Zqƹ;m2Z˗o&Ƅ͛Ӹ v$l [ /JM2E~'s'_Q*f-=]| ٶm[CK.$8!`!`n_ϟUo!](1 Eiٸqc&ݺΝ;:oJC0 C fyߒ 8Jx d}cs!`!` &N(iii%v̯+ *v]~뭷M$=:`Uk^w-ظ5))IƏ50V7!NII.+ 1[Fc?}C 登S[^n {?y̘9~bG~yc!Cs#ON>Prbp $9 :ǰ/z0:yaz .>\sA͜c~1?cПA2kqc~=''Gw%Z'kϟ#[6Hʎ|ISg֓Pki0i{ iݺ$&&J ~}Ӿ[fK')tZdח]F6#{ /} Yml =NM1Z_L}5WofUjj~IbҥK %C>h9˭'T}eS~FFF0H>}䢋.+1 C0 #`Cl C0@^XReKDӣC'u orR5yAǬ]FҋuMvVo1 C$9߈a?u0 C0 C>%F7b~iWHn"b =a)&!:a91:L.2ذZQIb>vz衇 /FjD(|&UG`MԓO vqXC0 C;1K[!`@ $o7l] z?#{lRVH[P-_ 5֡L7H[w|6>66 C0xߒ͛7EO.]F,>1?ZpC0 C0"6Ŝ;w>Y+,,.7dȐ`~Z-Z׎ ,ٳg& ،gϞV7V8Ĉeq}O ;vMqM(' AS9m޼W_@~V)"柪-|pqD7G#Xn-ч 8_ ]q9a< }c}-߯ }npЏysX?mѿZ-DJ°Σ:3tesĖ=p}(" >c‚}yG,svoG̜7E+˲&KE?!-ZH#}]Ha=]"*Ź`Ӈgg<%n~ˤSҰ!>a}+$-̖ú'I|R֧0WXSi1s}//'O~N˖MJcF)3&ɢYڭ$$' z)ҺX֬S{ $7;[2ҥ \PA4Him۶Ɇ  ]vu1?K[N_s. `py_0 C0F̯Va!]*T_]5KJW6=GA>=~w'C:3g#lR8ȐY!`у~#Ik'Fb"K1?܈ZZ/ z<989!ЧFā-ӏzPG+B4 [;-ztVb}L\)ԕ9B1XJ2G_u S;v$C:wҹa9+!Mto! kϕuy=;%e~NOto5 EvҠaY?)}8ȹZjsAA5>kZK%^IOO/Qg!Crtsg} 4]uc~u ի 8PF!`!P0b~;C0 @*|v yvU^ 9*GO?]ن=s. ǰa'EYe!`uzIhtLT#G Yk!`@dHKK'3xH2|pw3a-4b|/,w:[777&0(:iZJ=d:(`bbc =zpbB[p?؃aӮӳAk`~օ9X7kĘч`?~7Q4>Kˢ,$ }yD_-<$@9jw2a 1 vh=n up=E>؞KFfa}k׮!]͑;w]ޱῒuE||O=@@ߵ[P>{]v~j}l~sO3h}FW%nAׄINiYfV֯__@nҤE I&xh0 'p~Zk!`u#jK2 CT߳m ?8IЍ/ Sܯ-J]W 'B:w'aEdiݪ;}=}] e!xؤ!`!&Eiߔ~(5JSk^$#{`X0 C0 Zx8 .t7l0iڴi6lt\NY;JVVɷl87?s<{{9;w+w4nܘT]vꫯ\m*Nj#BHIN8Us,у7/&,Vٵa^1vWmO.3ذ >6c59j=t~~a:څ懞 Ƃm1q{b FJE `N.:|1ŏ=l#`Ahyl/N QǖccjĘi1ϋ"knZeīOAL)rD"C^g1:mZw~̮ÊU{9b(IIIQߏ_fޖ7};.˩  \JtךVnl>R e8oPbt@=E.į@+-JԫM;wȆYexyr@҈*v:w_>3aPhVk C0 #gn!)*Kڳ\?`9?OĹ\=74NNŰ`mSs0o}:W]󫋠!`!PO<.IIIP1,=#-7n4o:*Fߛflr]w ٳ=쑟/WƉUjJr"+- c =:Gk-j#ld؀]9ΌX!~N9;lh8~~Cs_O|0c)sIPpؑ[ly̡Řw`냉ycP 152'g ?Ɓ9Zsڀ9X#uJЍaGI$]BQD'<=ߕخ*9>PcTJ ԧ|wW_.S Z>H~VLP SX{$IR3$TB bjm1v>mX8;V;~|chjMgcԲP_s rDX!`!-!`!#PQb~BrepvL;dSN$IFڜE.ˠzu1sd͚5ұcGݻ|bOv%=?@tP8J!`@XpLiU$PB|K*bZi#W2s0 C0 C`"p7c[l)WD&N(iiԨs=q^{M{g{5 *W71l wygO7YzFb癚K|=@obs ( dZAB߂ b>a؅<|~~%7K_.|`;:0_CB>"DB.zڢ:mRYwH9QzΥ @}?|:E:.i&@k@DNb8´Qk7Y?at{cdkҪWTqԧ)JqeP ieX 伡UiMJ#O2ŽA#GJϞ=.v:}|իbڞ.]lbT=LZlQMmRb^xA 1Bwr96-j5 C0 j `jg!`@T߲I-oܸAKR2Cuֈe!czC0 ڈ4}ˢEi5^QIa[ Va!`!*y/]諯mP^:o%?K7ƏScʕ+]h%cv-rFA GKޱ&C#s-ȤhC1aT;E Ç~GcNY t1}CLأ:lcFsa^ \c<'6OƏy_9tcц\yP+D}^313` zt}F]GQ&֭[%I_)SB>A[Сc@t/vrU(<{V2~-ҦM[UE}s޿Wv]+)S;+QwnI2~ ۑի:(*ݭ确#[2mϩWG#7HAͤ(!#~)~0^o*MW@,ɓ' 1ԨQraIbO?#yi3Sp~'-m|TeӦM/k]/ T)ϗ:֭ 6 C0 #`cg!`@YTO=;P.Y)~7Ǎ5ٹ{wuWSe#I+\r˭+pϿ@.l~LC_'8wݭ =kg䓏˜9738K.7wO?|7UI:9ܑn+0DK'v,۹s;v$haN*뭮b*10b~%2SC0 G%[nݫN|cA/_[VRG\RoX6m*-j!֯sI' ]+3b~0!`!`K}]ʃG~8hwWJjjjp\V*bWԗw1_9{OTvcj J(nz1Fݘ77慇yڲUgGEuq .дC,|3?m1v}#pCq}`b A|&/&q `̓h !} {9g!̉1.ዘlv`ud3s}VyPk`~O[6??xt̜ (E5&ǧ&K}}!K pb3쁗v2=[rtWmb 94HWdmUV;=jժoo}Kců@/9},,>jz͕;c^_\1*whuq^l"~zcYKN~ޮ][%S¦6 f͚%x3I 8#j2VC0 CF0 CA |6#$jŇU%hl7|p/.kHV_*TnDyW%aCٶm\8:@OEtcSO;]n'+//;){|ES'|,^=K.ѣ/  `oT\p`s|]ΝxkHޏ|pi׮}m0 C$L$;x0Q} 䝷r߭~1s^{5; RE;d{yx胇 (8Ѓs1asShO4l 2\hq-~A<FwB1d1VɡPuM}@Xhaϖ>c~J5kyvסoX%H @Q %- £B >QӪ5R{PZ_}), BxIW=Z%S=Ŏ[ ͫfo~W}ZqE~~}(5M?q#~;棼]iFwʣMZo]$gdd믿%99neȳuVnzy\))r#%1N?KnNN1cH߾}c!`sm+5 C9j+1n۶UҔ9.r9~@o֬4T+L{ҽ{=_}O4?n4? 5'lذM_}rgTn|9#_.\ /<̝ &(Sw1sl͒3t3wCp+ѯz*#oՕq)v 0 C|q]_ =v\OQJj&O}"i]7|s8Wkp!iq C0 C*BU"1n)&/D(:2bJrR 2=PZ(^&t}-|) ]G zַc׀: Oscs-9ЇUXtX#""?h11兠]\,NcC '1tʉ}aX-PGhlU9 ºӏK1=#K}2%;Б<@ǴOmx@1DZ[C$F,Y$7-:*eHCڨb'}6c[lUU@]TNh}7m:juuNO4^1njE5\wc|8 -X!hs Ni?-Z$>A 7(T|m9?/?Ed;}_sKa-_*k׮ V?`]:!`!p@ w@,i!`Oh͝+7pt898M6ɯv?_ LCCyQ9C]?h~s䪫~jJ߹]i;ᄃ_֯JYt鰃L ]\ GqwʠA3Ηa4}CJXSO:wɱvحz_ V.Pgk!`@x'K}͘1L.=v烻~) nx1}/>y4A1?\HZC0 C0jxYe>}L6MF9F92R)"ȈJ?շ$;bR=1AEh0h%F v1]7rC|Ç8#kk ;vqhb> C?đ&XXl"AzOA=O0>P9??Oc|h>jIe,䃎ze8XO{!iXu]nM( 7pMP;Ep:N8Uu/'@`{%KTrŭҭW+%kMPT#vv&UEL,^6UHpGwhGtTaP;lT5I:uɒŋ$%%Uޕ||YYYr:~k3׮_V%:~W퍭e!`@ym;9o}-㎗?̐+sJ I2x`IeΜ9uyҲeKYz|]zt!yP͈SaC0 C0jK[āH W% t7t4k48. 7)&Z]GFWRnÕz0H8Z,"\g8q[>C,GF aɋf<casڅG-̯ 31sa$`ǂ01/x< as0aϸF<a~Á9䆎+>/y-ρ1??tO?;gdGۨYe֞o~KLBdBŕE;Pt(F_\%;0k*wү_վA}ɑ}Ilzܨ'@|G}+_t9z,ܽG~U _Z0NR_+@Xk\<fp rvKAUY6e\ PV\)S BԦuԋ_r1U~p[׉Xu孷|uwÆ tPP8j833Sԝ7o\KϞ= Kcb!`u#sl+4 Cyb~~~voKlS? <>n:x|FF_xQpɹT3R~{Us?9'\a}'A%Nb>83jX7^6 wb#Qg!`@d,/ |WoˑG)GPF̯;v˻ O儦$#_M&Qdb|c8=H2c>-?y?s.ǘ0sɼcU=cA`y8*?C \u꣐p $.zCz. @G0 l~\h0saԱD|@>b^Q#ku6s-b.NFztA^&֭y[%A@Z, X$@O;gAw^e|\8iӦ2ZIn"g J`R@WքZ'+=kKL_Nr[{t=c4oQN>v\Exhe1.&ն誊+YH6rIUOG;5]N>c'6\_I":3ΖzJ6l\S׮]K/M`!`@T `8 V!`@C@ =2mҲU+yY[C9Th3[hʏKVϏ?*?hg^rϽIbbbP]]bq7뽓M$%%E4O}+_`1 !`@C`ƍ5Zw۶䬳ΎHN#GV j!`@,/ *hEňu7*P+[#+a^=IN?S1YG ̓ 1(>$@ [lO4t/1yB0/Î}gl@*򣅎Q{ ~s2?sÇ:1?:۴sW[8\EC` hz9a>¹Bf,Vǵ1/O>hb~̬ @(BI߿t;خE?4:5O%jw꛶t;\9ђTգ>"^`+F^: P]$Wӫa1xRPydU Uӧ'{^:a#~,H (xQ$RN[Fm@߰` wwBc%VM&jW?SԩriT_k!`!`_{ΕUj!P{.1eO9w}XQ"3]?nFw?O:k^N=O42drœ^oq?x v7[ŗQV??&q\u]O!Ikr#Ε~5KOqepF S!`^yeddjNDP":%CO!$S1tA_̓y-c嘼hU9j}3c=\3/[d B0>F P8@,.o'cL  Ba}x^p< a,-3.Ѯ[g>C8f  (ex"Y1^(V&zܑA/\ ED@Tꕉ#3KؾG:]t=!+|~xvi(1{pb|`z XKC}zl̓OI K}~u- _U">*jQ#[\}@M?7#[ fuǏV}mR_mg0|OO(W m߾\qҸq:!`!P0b~:C0 @cv[,~ufcv '1(OCsb_Hl,Kб<ҠA$!xzDVZg+>%v}']'(;wM8KIc~uر]>ܚ.YfɸeHU\}qψXX0 Cn!p _M*11I.W|F̏0 C0 !PY^VU+1b~& 2gwy- M*DLME^Y.=\҅|#NujW/Vw5'(q@|bi:ƀ COA\`^ȏ`v3?Ž:~ 9D˾_'70v&aq B8Fˢ1N `}B{xB2.sB>qiǸ[I a1GkF~en1vY'6\ :0Kd佻{7LS2337^ĩȑ:IL\ٝHn7|%?B⚢p|!عS~ZJ-G7ڽb9`]OgSַdIl}QqxTw}te uKY[d[s刡7?"g)-qqRG/-UY_aH}-$a~޵C6\/ÒG!կ/=z>+ E kҤILnwo5 C0 :ɴ!`D %l,G/QdmVhDڧ$ʄ/^8dP]b~ZZ\{M`SO;]!>;Y^+ҲU+о̘ &+^W/WV_Y0 C |uٲuKKƛ~IZĈB!`!*˪jF/WU P>&eˁM̯z.uZO;]E6~/Z1ǃlRYܣ{i׮]P`}i=&=$]{vn|P " "j=S /I[/ .=^c8Giգ?P[5.FO?֍VKל~rkRsDK[_-g.ruԇy}Y}{`-[:r~rrrPgC0 C1nG[!`@t!PYb>rTV{-dw%+KQ]b~FFy.| =Bӧmn^Z.}_d7p2hg)?P7o.3gΔw~K֯_\w2b9/.Ųaz7; 9u6 /Lt~/g=Q\B~{X >bpɓ&믿gBXd$ٳf9|싘 #W17 CMl޼I~-S;v$C#G]m!`@,/1nq]`7|Srs9/]db>) /#OM4U`o ~1mC )9cvl&|0.e~a<"?|9au _CB02?8a* TWHbȁ> `h1ZQ/Ƀtœ5kNٴx!smX 9W 6rF/Q~aWCeԨQjTII%_jg}#ޞ{yY`A__y啒Y0 C0j?F̯V`!}T__ﭝyX9C+i yzo%O]Tr_.1nρ#37"' ^1vyʿv|)&Ӧ}6??r?Lz}%6. Hll=ݏS{OK*o=S?P&LܗB䗧*͚5sI݂u@IDAT7ޠ@ҐO3-_V21\0 C#0o޼p/%%9Ey4j(ܡK3b~ 8l`!`@#@^VF^#}b>.][.]*[l7ʪOeǎbijJPDqSͱac٪- A4 a .2cÆc"Θc~Ƃ?|1}cdK3?x=sc &NЇXp!,X0@-q2Øࠅs:* s.4NAġ1G[Cxy[~M[?.vnI>XX\4Y/+[B.IϘ#*N S seMar.N:KÆx.!|V~;IZ̑ú'I|l/POIXOY <-njh}SfLE1s${/A_>PO .UXXPTbZT6ss$}atr#R_D"z5^}wNGHϟ/<~qɹ瞻JJ2b~TE7F2wܠ{&M9_L'c!`#Sg!`D1U!s9 ˝7^MKvv+q 'WZ?3ӗ90 b1.bp>r/z o6szC¯҂X}Y4 CK!PÎvю1}=#Ԗ>.r?Yv9i!GɦO>]%26KAҰqc__woDj]> [wx߾}ߖ.+RK˰SuέöS~(XoeϦ/SFi:A5Ӝz~%]dݺ\YB$V#Md$LFXַ݊Swݐ%-d@򋾑/10a.'t>" ^sYg%4$F̯4dtkL"f ځM7x:!`!Pk0b~9UV!`@-B$w?m Rrdݦq4y^pS?ܥKif{<ooI7))ѽeV{7n|iӶmw-o=yyy ,JnZ7nnFŲ$X_V׿TOʲ*_ߡ}9C74 C0 C`?!{NUK9rꩧJBBɷT5^y~F/!7 C0 C  1]vruEzKkꫯ;F, 棅?w]3w--^ ,uc'd@phSSQz4$ps'8š_7M1<[B?FvH?9ih<~K;/5q6X7<1NWMBJCX8E_9 /E|ݠ0}B01t|c |>3Z \3Z_ԉ}qpzFֻ%Vm ,Q:Yd#Ouw),"acmJ#m6zOBvl#I\Iԗ[O2w%HnL+ixP_ic~E_Ȃٲp˓?ɩ/wKVҫi?9{3SӦM> h/SSS$a͛7;^  TܺuZ-" WV_YʷǃL̘1#h?Z&!`!P0b~?C0 CŴU_ 둚(cztܸ3KyÏet]ou+ 6f=ʑGWC0 C ؼy|6}lٺJe!ɀG>eʺJ*dJeƆ!`!`w;Vc0 NT$dҤI } 7r#'ZbN:U>s9#d@_PȽ+ 6 $y睎}xgIIN1>ylu)3+睂]2vlΒsc H|xILJ' >P'xBugʐ!C[{=oW^rEF!`!`D {`Ԁb!`D`Azhu5TWwZҽ+Y|L=ȣ)W^sꮷ])$;oR"7ШLF_N!` 찹hQ̜9S22+TGzҵkW%)U`BIad}cS!`!`D!&Lз/6B>| 6,s?x ?vO'1; aB>&| DH }lrR-d 8=S 1`9'~Gc[A`fgln ;a1|ߏ?ԁ96>̯%c?U$ .? 9C@'}r-/0 qΘhy0 c-Ay1G_#t[>]'Ϛ1v~~</0萕NUXP_CN"WT2{l>IwPL8pQ׭1&Ϝ2 C0 Y5!`D# 惠_B>5!G] ۂ;;ิNMK&u]oukr0 ClܸQ7Z)6 ߞ/[ h͚5vmIΝ+ɈJ C0 C@C`ڴiݸqcix+Ζ`(lye901c6jH6mZ-r>H?)xGJԤsez29[1x6Г [n>Ӯ+Ώ9ȅf~U~E>G 1c<lh|hy`\T]1aYnŢY :(RB0AGG:A0&~Lg c1l-`=0?Og~^? |skG̜w!`=_Ω0 C0"#E7 C8pإ;dmAʿk[ia|iӺٿ 48dg';!CwCKꮷu K[!`!`0b] !`!`.v%O<>*'&&W_-͚5x.K]m`<,\0bkN{x=^{e$d" X08QVXh "8,9ZsZZ*jE"N ZVWPZ58dNY׳sf {=u=/}gewZ$E̚97_[ oaM/1M9>i r!mN1뫝s<a'55Vl}wk-Cc겓>c ]3굙#|l`AX?<ɅX5S=z03Zm}?ڈu] k>kFϽ|3?u]jgӗ_IDBH +@@@ܩ/ީH r e$w=}`9l(4GB B B B Ҙ~]@@=ַ~r7M6vo?c2s̽;}n1_&:{~ؘI -g͠1:x?=3 {Po3{ ۗL3k5ɬOƏxm4S6io5Y6 m}޵= 3u٭LA bӃ"a8n! ;N еq!!{s=B}kX>9ab9r^?!PWUkdZnYsC):]Hc=a*!!!w 4%S$B B B B B B B L cF!!!!!@YuoL/2õu{_}eD?`VƱ挿9ȫbn۽֯nݙi?bw[sB!^\HX2\i/HO}| ;Mb)d/p|[EE֟:VI.Ç5uى1Ϊ>OEB yҘ{Q@@Ko,[OH@@@@@@@Jzr7b=:xc> #4 = ׸֗d|Cfbm}uĽ5=+9Ys>Ɍg8cg^5kbC DZr[[^ p.>tm}}]v^!?fxvsewm}kWkcG'$!!!!!V^]V\y:B B B B B B B  ٳg3g!!!!!!p̟5k3j6oL/=i=v6zٷMĚGߪUV/{m}m}bO!u{g =[!،~?&~&mxxA3l#>0/# b^ hÇqP5_CҏX?=my6c}.B B B B B Re'բ+1wmX}{#6g!/=ocl.l谳mY]_6><ַѶ>[i [5A,'vLB 9Kk[zaWc>,:}oPǃ!WO^Y?5vuٝ=>m}yv ݔ:Z3۶"!!!!!!p7D$B B B B B B B B`_#0mڴrAkyB B B B B B` 1zulaFpai{7׽Ǐ=}Ɉ9ܮ!m}kk{&l >sёseFظwvŽwfU!=`Wi`#uىv,_=vɅik=9aL-{GI:\3݆*!!!!!![;)طL0ǒӄ@@@@@C&7xf=ҵulÆv/atz|^c{o1陶aZNOm}3#6лGG{mdž8kjkla`GD{C,3 q؉e:kuq6{*gp`>3eoυ!́y?,?59bu=wWl݊{$B B B B B B17GB B B B B B B B )7GB B B B B B vNxgT:UGL_q6{DgفFaT1茳Ϲn3}Ξ۾l{>z0zyz]1[؏XH6V\<fmuZPB×a>f|ojlzs|::c'xsǹɚF ;;33꘿r՚J"!!!!! իW+W6,C B B B B B B B .g.3gμʧn@@@@@ Oޘ(n1}6̬B1~gt]ߌm ֞kaݜȺcmy^Z߳do|`}mMAxvƅKVl}}_s>:uig''y\3'>Y]gj^3[rH@@@@@@K`Æ ݛy@$B B B B B B B B'0a„rPg<\_oGh]@7Yߙ|gg&wt >}>=̈،ׇY^=/6W=sk 3BBNclBs9rؙ;{qv@^ΉxV1\s%H@@@@@lҽ9zfO4!!!!!!!!{i oʟ8oGB B B B B B ?<{֌93WL}۸O2vl ͮˮMuL^lY3~hc'_eC؍u{걱1vέN(ċ :\>$|@O5a07?u7g _ϧ!Zy~vc?b5sxvޘ`um"!!!!!!"@>7n,7o.[]ED!!!!!!!!0eҤIeʔ)4䏄^|C B B B B B6 3Ә]L1^ >!k1͡>,㋘Xf:`]֡"͍T33AAsyȁ!G{N9?,>xڋxhAX i'5rQB].+\tBc}aZ?*h}ez}w[;z? mg?6pV~dZ^[QEB B B B B B B B B B B B B B B B B B B B B #oa{{5a͛_.y',c#_L{t!M?lgn{h}}w OǺc7V^F,$s\Puٳ՗!ơc #A'$קȌk}:5{X⬭LqD;q1@}3eM<:Zm n+̞yr= ulf{YCУcl/2}g=yXgFn렳o=6ZWS'd:uٳYng}~3E^S˰C &5M&x`#cMD m6vZdzy&gn뫫N?|ԧzlyS;8얕kD VOm4l}aFg3ȬonWu'6x̎6=@#!='kt>3#7>zóo>]Eƒq@ryi`{i/l>!y}|Ǐz<{=S _dg3:!&y=> t^ϸ]_݈g "'B;&:u 5hzm;:V޻\Y5qگy\sY#!!!!!!!!!!!!!!!!!!!!!@}c~1cgs+yӆN[]v}!ޞff\\ݳo~oڜ淾=Ҟ!o3}=I [=;h𠣉mc<:΋g6k#8|H<55z =>6|>(C{!I,:$5ry gbƗ|43k#a9\yq3SlAX;{v^i>:]fe[S$B B B B B B B B B B B B B B B B B B B B B`<0aB=kձ{%fM 4G9;ztDF`Sl>m=tgc= ~3#Oco~ug#W[tF{χVULH0V!v=K{i{AÚ lfÇ5{nͯs5uvc?{|o_AsϚS`C7yee 7VOMuwL/4brƼ1^f{ĊFN{ٓ _fm׆M.<毪~kkjkr` cyxry`z}Z;`У} Lg AioSa]7/~VU>kJ[w;o?|l3 ޘifB2eNbgfM aƧ͏bmú͍6{=S*9[6ج{mG%$x(ryi{~?`{J=~(댟X[.{z]o_!/~y>ҟhY{ ysK|>gBЕ^~m@@@@@@@@@@@@@@@@@@@@@GjYQ~ma{m"=~ǚ\]V}>fs;ՇX6 zڭ/~={Dvw&_`o/xk5cOy).a,:v"^XIk1To<{T\0hogd^<3=XՋn?rDB B B B B B B B B B B B B B B B B B B B B  eC_Wǭu̠ؾg/fWQ&|#_13>֧٦~Uwygn]cM.ˁ8j3]>oGzxrx]ϋz}bQxS=kY#YyNlz=GÚs{yaF!7y751w굋m-!!!!!!!!!!!!!!!!!!!!!0 O;}y꠩޾bz釦5î#5m¯.͋?F[>]o27|qM|νy?♢{CXB;kؼ5zޚZԺr՚E˯$"!!!!!!!!!!!!!!!!!!!!!0N L0̞5zu|nCo}l2=ƬaǾdYg&s͚^e ݓ Xu[Q5Yf]vku \fFy/tQu%9҃^LqX9MHm6krÆ#6g>͋a0!N_iu3ݎ5g!!!!!!!!!!!!!!!!!!!!!0lov=5ulÞicaO}G ziGnĵ_Z>q=y[mԶ>3%?O[<-mN}x`{ G//^l2t1cg @ISO)s9515|o}Gnlو_=AϹ`.πB|ys:ZnѶm6!!!!!!!!!!!!!!!!!!!!!0n77ԃn3Ϙel16%:ll_bs|?9k46\:l]5g'Ƽ\G,q`8 0z^nM?\^_0SX0?ogh}ȥ]lgjjtFv#=Cw`AypQzzDɉ5}P8 G=붾gT{=#Y[_F>~u+H@@@@@@@@@@@@@@@@@@@@cf8^aEWczކ||Efc谑GߺtS1=ͬ3wmi}ϺWYG5{~=ڷ(`'NzYe~o/!^Z<~U K چ|6U;"ձF<{C<6?k= 3꘳xE[j"!!!!!!!!!!!!!!!!!!!!!… Nil{.{6c=g&ǏL|Y~fm6{!}hޙg\!i3dş$8|Uݳsh40}H5ڜ!ՇQzuZfNm>ڸO}χ :_OoH@@@@@@@@@@@@@@@@@@@@x$06pٯcC>$l_13fU&v}gmuiX뻯]^gQk][_w ָzbEu}}=[4?H2V!`Pm^u\ Db\ކ֎xҡCeꪩO'm~Xc6g%cz/]͛j$B B B B B B B B B B B B B B B B B B B B B`<(GzX;ߙYw瘵֭xژUˮ皙MueM]zɋ]Ah 68{[=9Aa}frhS_c># U8Tpջ\}upAb:UUO&{^35\謯~ۚ<0el}|1%.ٺCDB B B B B B B B B B B B B B B B B B B B B o?zyApo0z=f6qnskѳGXlg/]3Sq66:eϚv]A<7{F{l{Vt#2H./Cbdžp8x,0sa|Smho2[{b]kNgb13[g,lCYdgjsD$B B B B B B B B B B B B B B B B B B B B )Ϫ_Qo̧~ef]WUkgůSm 6+N櫮]fĞi{GeM#Go>oWvƇǷc?"# sܹH{8ށ ~œ8<޺ѼzNֱ@IDATPr'K} Lj AK|zJ/^[a@@@@@@@@@@@@@@@@@@@@@G}oX@0z9F>61G.c'cSA[;~kK}P=yg&1 '/gU?cÎP?bL^Q [^Cۃ z@B g O謏yk[kl;!Y#NK]͛@@@@@@@@@@@@@@@@@@@@@+&M* F=uuZ[@ΌΞdU|kcF샶~ee/uC?tNx^͵ YϜk>Ʒ>bmCQiQc.&hfu>^VpO;ֆukg>ֈzΊ:bcˮ&ukߚuvƱǟS,8|nDB B B B B B B B B B B B B B B B B B B B B ##1y43lu]v{t=žٛd8Eמftn2ƲzsW]:ik={yN'vmCG{!4Æ @$zyzlLoe,:$`L3#栾q<Ğxֱ8OoM;{XX[_j[d5lgj"!!!!!!!!!!!!!!!!!!!!!@9CPdž:l5=ӗЇl|C|i:&~CO<[ Zx \]3+Z6C^c3^?љsou2LJQFG9sx ơ#':j5:c.tѮf3:Pxڽ3ظԱgt ?F~b<1a}f!=CzOcZ>ıׯ.;AeLڦUݜK]u+#!!!!!!!!!!!!!!!!!!!!!@9Ϫg_Q:c+v_~|[]}#U'uf6/>8m"f}l֏skWupsQ I !"}H-&vlyG:<|90/||b=/~ڱY:ޟ5<УV|r`CxL9K-_9ood!!!!!!!!!!!!!!!!!!!!rG^ ufx{ۦwzẃ5Bo:_FG~66D߾>c>Gg}fn֣:+H@@@@@@@@@@@@@@@@@@@@c&M* zuFwfyF1Hk?YKOr778b ?1بa޺ZSo},Ե6[:@Gm>kЧ>u٭G?&RcI9k/Ž0ccev_=1;9~{nc}e6'wأGA>އ~ ٯK^s-|"!!!!!!!!!!!!!!!!!!!!!ĉˑ Q~]1a+fصzz/;Lϱ{ubGȁ\Fg}F>mn˂ÎnψXtm}sWģ"ΝaM;6K\N =x7fk2o4ݓ\m :m5>^.|ϚGO.m5/^ҭ[) 143쭦W5=}4kl3Xc~kcibug%!7q:cW?N3`oˌO}{][3G`xs!/T1F_tڜr?9ּ{=k̅uJ={l"F™;XϳF.zSz޲kdӦM!@@@@@@@@@@@@@@@@@@@@@?'O*G,zu^jz'c5:Xo K3c6>լ͋{lmn갓= =+59'B >G`kϯGYC8|͇?GGĘxmx֯˞苂u[|H[H3?I7Ð="N}hawQݚXѳ'i>ΌA99{|XgFe1bPg6kbGmfB$B B B B B B B B B B B B B B B B B B B B 11zuL1oaϚbN=qH`o5D[{gNeg#>ɋaf mHkҌO "" #>6O^liӹsMtGzބYeFZ=6>g ':e,^l֭#!!!!!!!!!!!!!!!!!!!!!0 <9ձ+CAok_Fǚ\Em3L.Y_?|ȏXu5 9Xr[޽Y#_OaߜG-$|Ys`r)cƓisTsW8}غ8ofx#z;z zoP:lKm =7xSٴys7o7γ?\/B B B B B B B B`oVU^_ǭuл̠>j/fŎ=v7~es?ڼu&?涾䥾֮>3Lߵ%6UC9iƷkrHH}BCc}{X&n!!!!!!!!!RV\UN|Ib/r Ӎfb yް~064؟}\q?A sSӧ(ỵ˓Ї>xɢ)lw8؇  Zzul~bBO2}:zݳF3hZy?[>f|1#gm tߞZ_r3oMC=9ԑ5u]v=z֡wܞbdYpo<0zt%1ډeG@sFa8`Cי?X謡;Ag-l)=L쉵z֧~u_t٥)*!!!!!!!!!#!z|?,7xc9sFYpayVNx o6r!K/:z~Hwgc;ywwSt}+_+o;:'X^WsW(/+3n{ڈָ+׭[WN9~oa,^tI}n٘>g̘\vvW}I#kX_om_5}G#5b11\c,=no3>mz׎uX}]jl{k[ۙZAa}r8\m}}FmMe}f~዗,dVWM$B B B B B B B B B ׾r ݏM{k˼sMcڷ$zYsd翰ww6Xr߯|&|e51}to?l|Jr |.Or'?YͲ~Z9'wUc>s؜rJs>>=,gL8pj:xc ZsVkǘ5~df"okzcc /}kA QO,[yYxl֧/>i!51\׆<z.f{n|ݨc/hS˰k SG\ g8saM >1#W[3_ÞayaLc/t6#!!!!!!!!!!p:}ti--fΟ'喕+$̞]>wT1яw~/7y7.|15r3˂ vy˙3grrOw?l?r衇[/˖-Z'pB}>,Gys+k|!&vg`ozhЙуL}ɬGǏu5Mso-f5kh澺w9uQеqό/g1mN}x`{ GK금?yŪ6_/h>~棐zc؛ :m6593kżb͙|G?lXs.͛ ֬Y[~,_W7qUg~o~cyU&_zrE7_\hy[9昣8s7 E]Z>޻Lqrɧu|vט_\onr-e֬=eʔz9\lxk+mn+O|gooSC g2wSwMp@y3OpOn;X :3I_C)x>s,Yl ֫o،&ObV߬'3ޯپ+\X֮]]^#.l[%-_U> ;~3έ&뮞'ؗ.]}cڴi&;ƍ;< X~uaXyޙϽ4j'oO˯G.} G(l,!!!!/WZǯo``y_6>kc/T?zdk=AG?Q3W^2K~wg?cò|?p?~ݿ+N6&VnE9ygv|[蹜ʃjc{Azvq ?N~[տoU>ě¿g*{9Owv5:qO(۶-!_;؛ZQߞÌ/qn{0#Gn}b"'1za359=7g]vy=k?' cFs;J!rSNuoQ'%~߼} ?Gt'?yQ~Tf9s7=ymdǑ~ӛT?.TG>|[Wbwz|AjL^_*zPk^r3N,6l~F}k]/p}QO ؤ?Cbw.*;+?sy9蠃vG]G!!!!0N}׷_;2 S럔ziO߿ɝ c#x?餓 ?PrU.]/>k^yӟZ>rGwژW~XV^ݝuƌG>rA9Czgog͜?6裏*#y*Ǚ-^Wխ|j? 7PS7u?/~izܘ;U/X~|6Zŗ]s1~hy}y=ݜ攋/?@3CM/^?^_SV7v,={Myq~>6Ӟ2kjyw(vMÒnߜX ë_Hgw_ٙ{PolUY@@@@@@@@F`ĉ1 uacz6F2}Gn׿Bͳh#7}Ξי=6ši=o5wvcXͥY?Sͥ}69zx/́< _XKrAo"gm6ާ.{5cnG<>ށn@ڐߞ|Cc5ym~λ) [o+?nWrʩj U|TލXr߯|股WhN-/;eeҤ/1+_w?@o/lf=5?OD;}^3w^00{Y18//| vhf1{. |ۡ>E=ԩSC2a`B[7FWt/?ٳo'\zemc'}lX)~]VXs{^YdIZ?0e6!!!!!!!!!p'giϪoc}6`Oð:#+TL1z|џE_3>谱Vٰ#ƛ:oot[zщ7zuًi_b-ba,I`\]{ت9yŗ50#6?ַ{r!zDô6>p}\ s8߽1k. ܪ^#ڤi枞o_/so9ş̙sؾ~mG}n8oX޼z՚M+7o<6q+\zcy@8w駞޽/o7\K3;ϰ›_oLϝ;Gu;M:i̿&e@@@?+>›G"wʧ/t =ߐď$~ER+W>!睫[om|3+./_WvژO=?xoK9SvxƍI'Խ!O|Byӛov\xy)6-,m#~__ve9m#i6Ycg|_ޙv`;[w~~\z+3O9S}kTy;m|vۍ\/@]}>/9S}iC1_iS叟e~Ve<*64P˟Bk٩nӦM8zC7y$ 6Ygo blݡ0o =$^|e! I8äI{w8~6jr~;lsN |IXv0 캋ݚ "#P~b>E53^UwL]153օa>ŝ|Rlh]+6vWsc#tuW):Oʡ塏-IO,Sy;D6\̪_ XW!Ӹұ1RqXxRE0t}>_ct1-3tk-''j>Wh0ҨsIo1GNof]f[Ţc+2xJݺuQ\ <@Z__*/+/ؾO;Ig-7^z[鉗^zI[Ģ#"?`hݺuU՚ϲja w[;onY;.~5rt)r7C>,L65t5 ~[n ]zUYiT|PƍG9&?llj1kS;fO9@W߅_|Es7tCvC]{CxGv)0dȐ|{afʊwmpYr^x1\pNzzp&\wua Zii8ط~7tpW.pq0sxNwߑ+ۛ~F< AW~xψCr]W_}0rԽ9g˹OV]5wqa-`ewȍ100000000@0jJ(WA;u SWLc$- NVWrQ.䯚nʯy|K Z3}rb&jr+.-bΗG]--VΉ_-.0=ƚ|U.bEI_#z˘̩}z)li)Lq*^9\ZsZ@(&Nz9噅"&P|̹BXve^=te?4&̘]W%o7Sv1+t)O81l2;KcOn*~U6~+ތW[K/:|ClR,>kwᡇ >bm77|g>6-k6gŦKĸ.SzW_U㛆mYfhRo`~g~L#>`+5M`O}& xy9+%8IṛcBN /R׿޽5y^+?tJ_tZx.lOѣgxsO? KǓV4j _TSPH֛oO>${w)[WZ~k۶mW )y'pBV o}XmTk ,NO}::KyV[mYW^qUoc4 ?X|dZ*Ï 7;E_oOׯVaW_'>.{-?~og7_g?\ ]ZBm}w9o*oo?ܳ;MmE.Em[Pַ6Wpb>ݎ^/t|KW߅.C3~ͷ}Nsg4`|أk6wsw0?@;wn.Tp64Z8{mdwuo;l6`pu7d'g2,o1~u>ꩱ̙|xʀ-o!}ǝᮻhXiժU4oB7|KxuZ_J=jtv mN+M6$;-$ kq *N?߯ˊMb3^x..zaAʤ73+kY3gfΚ:+])!3rIv:0zM7x06m Oyc~mᢋgΜa~:}t0S O=JK/L8gϽb1,}ü tp^O ]F?6|b&`&`&`&`/iruYɳcK64t_kAmMw~{֙W^y%,_yhC0YCM2uJHOѮɓ|kxӺ+uVU!> KC]u-gs͟~1qFKYmcvtp]|SU՗_*E nd?F8S t]?(kֈ }qnC{kĿ?d?veXm;-72ͷTU/^0x !='~jk5:V0eO?b- +uǀJS^o\FTiI00000000/'Y^X豛7Ӣ/jM_GG=26 #jS;7#+  œAس&+v BQ,ʧ1R~|^*-Rc"H,mH!Ӿ"Z6 M=4b†<L䧵j1QܲтbɼN+6 [.ݜ#Kǃ'҉ql1BzTׯ_S~xLeRLZOG~*+Ƃ6ϕ[wuCnNwa~)JREC|ҋ/?7W[}0qq<Y'? wuGh٪e6^Ե0c>.|gV-[eIfmWY%|R~Yu 9YS_kaae l,>'%}.<X1TFwyWλ3[o4T]Ya~mg/{ =o' qٞN9%~^Y_75m4<p'hoѼyڭ{رCjY1f1GQ>++/>=0:UW6wψ{3]s煝wڹp?e^V./>9q6p}#sQGt>\a<0_xKw~b; vVK_Su!_?HO*OT.#G O>d"]ՃmX< ;|N (aZUy;:V:QtcPc-eKK}Mȸx^zB5ֲU.ZMV8ؤ4Fyc>6ǾVB ,HmtC/ ';8Q,yйrcOkg8X,M6ubjbp啃'~aq_ _t`X;@IDATvm\ߐ;u)/UZJ7V::v W^}eXe6B~{DVb} 'x|6$| kD>;ypZw9 |Navʟr̪ xviL w#vU]\_yÞ{dm _2 ~uς"|ː矌npBxRޘxkW\AS UN] )9ß\ TD΅SL KZ*=gRU?\49ǍO<;lѢE?յ[x&`&`&`&` =wߛ]m]w 'ߋkAx~kPgŐ_q[w0YN C|֡7gwz o0jԨl]{qXx~.x)\!> +9Y;i#u뭷^|KxGr{[>kaرOoMnmC۶dvUnPם״J+H{,Yve]' > 0n;HχOynMLLLLLLLL`H '$3:gZ]b_uER-u 8U3V5#.sXqqj|X|_vq*[z NyNW~5\_*nfOqJHR_mE+@iCÎ bM*_H:Ncd}qlt8-֧iaȡiu ~G-lӘ0I;g>ӐX"WQXMO<5fk@'YayeM64>tE.\p,)w 'Qr]v?{*77|pŕ籙?⛺K68|w[m|F;#{߈о}|$tb5X#uve{{SK. >Цu0[+\!_oob<ixc!㯂iRԄu׮]NBgl`2ˆǓs/-[ -\3 7%zxxoУz^"Zp}/>"|y$(iݺu3eʴpd?<;B 'cAHU?\n]v g{+s/~~׷U6&`&`&`&`&a?Ҋ+u{oVE10mڴlq&ᆛ  V;ZO# n$vy׿#~iyR=)Qa/=;m}w'6VRS玱g}.{MsώY*v#sϊsE ;0˝ Nlxe:4i8%p~v_1-(o/ìYáoGLX0֬ƒ<q8]nkĻ9Gc-l~Cx`#=]vܭ/(~?ao=,!>ͺ?СC Ct>w ൺ33f3fdk<'O9o9Ư?3 wLLLLLLLLL 4k,tvJfŋf]=5ʴѪ8v3[)VO\G`⠣υȇ2G~X~ c/We1ǏzgL2uoX}sn|lprQ1vqa~]0`EY#_>0vSa-x=b̐~q7}mc=&p`﬿|'-]&M>t'pr׿ T .0g  )\Sql|ک60\{5Xi&`&`&`&`_|rp;uJ2Þ{Q80/֙3wn>0myk}b%-s1a9nu6tе[ׂy ~l;C|㰍_n*fɥ%6d6D'VQ\z%a_l^mUÞ{oyׄ"^uxs}q' T9yo^/"lԷ Uy=}N<䐃7Yys) $}ف'=cى~i1=# kѾFE:m _[8qBfpM[V-[zU2̳!nQYF=;.'9/~Nj=60000NN3ۗIi i($]ҽ{n;Ҽ:0_ݕLqznrMfm{" \7?Ρ[\/RI boÎۇe ^g̢TR4G}cSkdQsa%بQ^b_ -̟9sfn &M\\^m 6]? >Aх^k'׵0?Sr͚oFPςƏulkw+?eeO?]2ҋcnMLLLLLLLL`ݺ >׌x^SzyPc09lT63X.Zyb7ˏ yS|ȯ:g|ؤ/2Bg^U~J.4W'd E=}Z6ko[sQ{.(-8G|[i̩/_ؼc7)VV6JSک]ѱNͥ}tZŦh'"< Gϛ'Qc1@&,./R2 0nС}02Vsicoj[Uy}iknvk4pGf!FVZin{d6"\pCۅF*]S&o檅!ySx^ ZOڗY Q݅A1ǟ `tj  w xp҉XDO8餓Ô)SrӤqЦO>)`.6U P? G'|.+.m}q_}7;udG ɓmT08JFȇ+z%͛#:Zu{Lok)Y߬>HhْzH] 9TOd/V[m0FJa>gF3Ϊ^]a.묻TlpBιAy9:>n>LLLLLLLL=f͚.;30ZiZ3FYj6W8 Sd"̧hO.k5SMtI9.VyU^0'E?bɺ~QBզk6#> ;bQO+bˏVj7nܶb@q1I'Vj ?o .v+ͷ,I u7\[0πwe\c< s<o&]_UPzb{}#BR߯Kx7K),TW^ivqǰ喛/Ԯ!ԅj@0Jnܣ]_9nlaCCn ˯|ic)?<:&66rо]p{%ok==Vx_?tZgEn &/SӦ9瞙ٕYƤ m]FS=WY CF=2;LLLLLF SM C ] ͛r% qOe\~-KeBqq~gw{Z$ߪ ?\Δ)wΝoKK(W,^W}%,V=;nSv7%<ͥmeG ?w ߍ7 ?|V4 u/wq(#&Ly= Չxt3r˅#cƛ,xqO<x('j2n:mjk,Y; |8xc"~Wu=R2xپ{`t^c}s٥ÿ/ԙЉ=S 9v4o5 ^Wu;z|D_eUk9ꫣ*Y3gş Ozu>w V ,JIa䘇ERGL05Č)U2-y^ Θ |G†zh?GyO󫈙Vz嗎&zU.tXk}GO~B"W~l+am0bjSZn z6Ã^ >bʃqq~ZI|P>Wk#铒>œ֯xZjex4?c0ӤI;{1 ,>5-ԫ{ IYAf~8[ +O84iS{+rVY|7V8rӨӦ^{XtfFą"Qyʹ;y[թgkں}x1jO=ThRV?B˅?g>͞_{Ͻޘ."0>ל~eq$'v;tr϶( 2$ڶm8s'yÍׅZWaaw{q5SgA\h - EBJD3DG FWj&`&`&`&`&`QMmxB۶FRs.`ƌى+rXne70}qd\ k?/?mkl_|p5٢Pz9%c^4$2{vUV7!ϋO41:thZn]]Wۙ @చkv:0/ U#͋RObS|N1}|(̤e{ŐrĩlNcP\K꟱%6c?t*~&6:|>:sKL4ּlʡFvuU IL|kjgNC%*gѺQl ʏ<+ǘT|?v^%Lƕ/s2־)1Tڏ0iyznD泤^Ǝ-;Ŭc5u={SO0ɴ\*|k l駟)/"|՗av+xs?>@n aĽw kdTbREs1aa] N;|`[I :}3kmQ_MoY3w=6li,!s>// v~‰}Ce;Tq|y}}¤IV[<ʫaܹ᪫nij뭷N[n£O-zKUrO~ZZ(wdz !Z8Eaü6.Qc<-"[gsi ǞJ-ʗv${~F9w+!auIUY0[_z%a ? Zvkcae c<<;9|˯:;N~0|W^e-)oեXTj)= 裏fLe cᕗ_n} ni.օ'|wlۜ>Ny-Ԥ0e_Rwc\d'wOU4OC[0x*..̯\'O" ē-a&?r%S__}Us0a 6\?nwɧZ*VL Xca,ïe ׆{- ceMG1 hQĮeG(f}H9S~b)?}~Y z[f}Zc'bȆ'G NO {ݫűE/|vz5Ņүa挙aw| ly)?a߽NE묻n|Ke/Uoaxt4n7 YP_`u)/UZJᄾ'ӦfM98lOozo~3d;ukx wʚ)ĮJ:v$-{GlaBY[C,Ka2K/^gK`9^{[owḾ:*..̯; fmjP2|],~,m&/I*̇ 7pc[nc# ><>`aRx!fNǀ 'vƏ}Eߓ]t C-[b TF Nv5yVk000000000Xb4k,t頸/SH 15˴\ ScLaj?}z?'6-.I4?9N1hÜ)?r[:q_.tʯ 1G_+aum ('c1z+v3aQ,1V\)G 5&L|wܹ˝wU~BwM ?p}·IzΝwKS,QW_Sa;#f*X0>y|\ϳ5Ta?xGsy>eg%K}[n FҮRpF~Lj~С}t<)߮4J+vkXe6[i&`&`&`&`&`&`ow|4m4x6f100000000qh낺vY5#^ H15 ^P,GoT2V4mj>zb"R|!n>O_RʃO(ĠZ6qVu+?-~]ev.&Y4BL-^m6Q>yZAW,96 Lm<)4A{WNPhGhSq{ÆyBr0F!Z˗Ya~<{yL[L`(.?¯ q$,8{ڷoWkZ曇~g "ȋ[hv'G&U+F7*+l>̝:u S۷P|籠shx|5{w5W|/Vw[kwJӢՁ ?o)}w 6,Eo8nW_=uiuu6sTsY 79}jln6r,ڇRSծ>{M>VAL2- l`1.{L7n>JRo?![~׮]ð-t+]zyvGN]} u}^9 f GvM64\= kXRrX|޾ŕ/t[:1|x̃. |Qggs{ UL7K/Rϳ ~A _bm7V [غp}qVmCV <&r(L>#,r'Arƌaia֬C5Š+P W^9,ܲsU? pǟ9_~eVD߶i@I kx᝷ M5>TѦMLLLLLLLLLLLLLLLLJh޼Yf'NtoE-15*sXc .vW=3:lTGNXs-:ŊG~l$`=^1S[ѾtE_,W.73>Dټ6(>6,X9ِ9.mVt{ȥ2|!j#^k?̫^ɥ8O׮\ZO43N' ZEgrV#]IX~ǂȁ]~?k=B^=qqTa~&`&`&TVr; KiӦk5)?^3E1}ꚩ/V1:-Qk^MF)wN1Q4?CBG~|5U4:ny 9ٱn͡W֡\qvB l a,ѢFe6,=6>v馱M׈N+>6@e>ͣcWVNPyl_{@'A4ּb׺dEħew7~H -&C%0vk>|]t Co%4m~YDž<<20pa1 LLLLLLLLLLLLLLLL`I$P^`{{ꋩ~a 2+vZgUV(6v)˞zcϥŤ/b!ʩxR<ր0f G1G_lSQ\t?-յׇh1҂1" <5/i.FdƊ#7ЧxSL:ƊC+*j;ƚUCMtjQ0 Q(棏)Ff\/JT_hQ/ß9.|4>1x >Dc# :DvV*'.9h}̡+zDvO3'rq Fϛ3fλfjӺM8qau:./Ez00; ,4iu|pR5.#ʾshsQw9jV3Sy"c/=шeS,R*ϧP~Zl*ӡ`kA:yiՏ * T0m0aV :t͚^aŠ+zXwN000EH`I? /\X/Lm&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&c"P~bqS5+^SPN-ScBDǏQ lQyj\ɟV{-~vˏSuDIy[IDkUhX&_6bbvl*4}W*Zd9ցOB_Q)GzW^ZnX*^&L|wܹ<,&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&` @B5;>9^ŋajj)$gLZct%sz$mFSQb'l'>VqyX3-kRy*vZ5GȧlT"[˴J62Fh*'lD:=KO+}%Q~ .zb7XO1;> q'] 1Jc^2j7FΞ]vx[LLLLLLLLLLLLLLLLLLLLL&nݺ=9^3Em1HW]2zUӌ-vZؤCSKM2.iɗ|mFJLDǖK!+Đ.]s vQʟSp˿ƭ1q KGf?Xʕ)s끗ZbC9~E,l[X/m꣼jQ~t#-qI%LLLLLLLLLLLLLLLLLLLLL!h֬iyMN?^3ExI]Vu*Fu̩XET,=c2&?OޱW3sULAbh>C}`W9]>(tIR,.DBEkôM0<@8Fx`)LghVO}椏Q1<exzPO+A5(TQy~I#S 4(M6 ]y@\xqb>uRKhLtSgL1-6E꫙/RSKGC5Vǖ象~9.詏f-3V.Okk( lgKݜ:j-ZxDGmB#:9D8t0vW Y }:Ȗ>!_O9Wd\,C4|GKܥa 4(M4 ݺv>8.xqb>BM1ºTWL-t-y)g[WfL:Ba>i.heKTS}5}FW4~cm4:O}0h]K13Ú|jS-qgC*,OhIz6͟Š&y~l/OsUR)3>ZᏞ2V^$M9s 3&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&` @ya~i|j'ZBgͫN:NeǖbcJyZ;DK%E~|ZW5ZX/\珪 i,k,J^cA`, 6M>H!C#0E%=h]iȎ94/sc[׃/]+|AR+-zgx0ݑs @ дiеKbES$:gT&TLˎy#6Bx⤢15Ί氓h1~WԏP]M먣yK6W>Wmq4_-5%c 4 KJaqaXCjSq:\19R~1I[B{yք(NOEG^e.d^?O_kj|b~`100000000000000000000LiӦ0kz1֕SWLA;5*G`G=3~̩Y݂1W^S~T/M[iE>+wf}z+?zbQ\ib@ 5.ak,HR|l^d=j5'BfбU=PEi,:ȧnSz|.V~8k+GUS\Z1'?~y e100000000000000000000h.]>-^3jS0LZdhċb zƴM1e>Blƴ';Zt̥:bhm*6Qlr+:G]56'pCk[.9lEKN"u B .ƦӾ<b}bKz2Iq~L1AKcb!zPXS9Ӆ 9KcjAE/Gcb(- 9w.˲ 4D'>9^3E- UKEŪIV41Tlc7#{yb baȗ>s_5ԩ=9'>}P>vʃEUCTM:*WU"h4tl D1p] >h!Wg>X#Oku3R~Г]ڏl#Ř>kҞW~奕0ҨsIo100000000000000000000h k/ ӢxUL-2B1}E-b7ojs㯘fLJ8L(r*&%]tL?#|)_+QZ9'NlXBjR%b7(b؊ D#z_=yS_,yKeKK>O0|t~أW~%=NƧ_8tw8!LLLLLLLLLLLLLLLLLLLLL!hܸqޭKiQ꘩=Vuq}6EsacT㌎>veY3-c#Q~Zj=VuҊ9G_1_uX2On. ̩_'0OqG~1q`Q,NhNztٌ@ACO|S+!C_ġU`ʏrJ c>i_X1I'{?|JCԒeqIΛLLLLLLLLLLLLLLLLLLLLL!(?15|ޫX'K:dZS3:DaƓ6zi쉝xʏ>i{tZWq'3yD+ǘKiC՘9]E c $6i-ybi_k-f&e~_1saC n&ZJ(nhALb^d^k-֘>ykOc100000000000000000000I0/9b*&_ mMT5ݪgZ=B<@_ze.atLhD5+&[b/4>QטU]Z **:W"xƺ|Nvq5Yo X7vB/\g,e8X,M;aQ~֙ӪO>8]qZ~'7=p000EK_,&`&`&`&`&`&`&`&`&`&`C@IDAT&`&`&`&`&`&`&P0r/;)9PXcUS}oS-U"8UogN+3NSÍk.Ne5蕃8;a;W\i̥/n^˭Cq~|j%, )(l 06`+|tH pZOZ3/ZbO}ց;.DQ٧vZtMcjN'{9LC_LJ<=Fio3001hĿ՗yV?-MLLLLLLLLLLLLLLLf͚.;qbx͊5̺(T9-zjiMRaaf>A!rK46cWk5g11q3QN 1B~A=}E:M}sbed%?^O|000)X_ZZ Oqơ{.N?׌x@ UL-2BjxQ cTϼbh,?6M!?OœcOyVU+MLlמ\ih3/iڈnEj"FeCzl2|b*L|/[W Z+NmjbvG:5!jV9TCȞ>rb'L=oFMzЬYУ:a"l$“BOC|&`&`&PU/HZLLLLLLLLLLLLLLLLL͚5 ]:w:(x͌eJӪ15* WUy)*7^E*=UKJjO6ͯҾfj).v3I0u*/+d\qG]6Y/JR8ڜ@hӴ4}ͣfdӧdG, iSl'$ͯKؐ_s)?vjXO*thV9iÇa*^ƍ8z|԰=\3XfF6ppi׸8,2Iօ@ J_Xi-&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`K0rxQGL05ČuriSLi :ZPrʥzh?G3Vtfk^5XS_"&KY_>EiLcG ҧev\|_'!X} faBj&٬=@h} v38"X+J,l.P>ّKktʯŢU0,|7͏N~I#s#jp-Qrp\ߣ*+x,N=OxڲNrD[000_n$7VMU# P 4n8t倸/j)`$fLA*dL?M ;U=k\_1q!ʯzj?m>uZW}Z0&:1/2[FI䫵hPB1X6!8kUXc_ģυ`G4ƊB$=vr!U~=0Ɛ?zYR||ojMrY:O9K7\ _0M6 '|lt;^ur.J=j[/(&`&`&`5"P+el{5ΌOЯ3LLLLLLLLLLLLLLLL 4m$tڹw ;5^3E=1%!VQ污ϕ c-/yvҲPL%O0-:rБVW-G'C|yt^ n_{ҺYgEAj :jZcg36IaT.F#}pGl.戧LKe-koi叝|O#W%11lDRE9C¶n]q M}ǫ""ғ6{}YhB} Q=5(6LLL '@}Igl{W߯v+ @h֬YҹA1xMƩ_eZ.D1]Ɣȇ=G`l[%'.I4?9ĠZS>V=BlWTli?1.tMiOׅ*< R#jy6a^kf16r^WK,ǖyt}.|Q OZ-c+VfXcbS/_rd'L9o _(?(mam~7ֶkW쵷֓6{.2`-&Ym5Õ @Xx}%wq~8LLLLLLLLLLLLLLL~@OWa̸4BUJ*1n:RCIH&4Dz"%RBT@APP(D! /A ZH&9w3;;3wfgwOs޻; a =-c=;8Ț̓CV~|EBE^a_v)9EּZN~W_ckW_O#(C/?1 BG| f,;}D>EQk{bGqW~|dzЩVbFs|敟1T's'na=c#'OG;٠~8um ):򯬅hMkuf>+wqr7!`!Pc}ô)v ;föcEk!`!`!`!`!`!`!`!׹ѣF ᷹~K 2dx |A*FL AlD F,t2|dN|7CQVT/6bPx+f#5yKS,B}n~R\|>ゅdi@fZPr XشX* {ȥ2|~x-EW~r)ڕKxqG}cFA̟~7~"vPE^dlZbO˶Ϟ!`!`@$\[Jʖ7jd:o?7Aٱ%z C0 C0 C0 C0 C0 C0 C0 C0dDB "PNΡEӇL:ƊC+*#!Q;ƚ]EzZ*W^֫C@q8}$O1q1JT|TTTv3&_<0G v`<6";ZIO+aFz)Gd8>/>5&OicRϘt'8`tvmZƙyImOH>[|cmL7!`!Zjom&9V\⛭'Ce[;r!`!`!`!`!`!`!`!`@%ݻ[{}~[7q.#'3CØ ޱ栋IּȢ/آhNK&*ؓOW}zUС`'5vbؠg{Z}8!@[i*1}T%_hZc)1tI+4v'¼+?-86SLT~1!_xmre˘2nS͎l3y>cݦKKꒀAI˨c!` iNDu6IֺϴMo)ß6Ǐu7 C0 C0 C0 C0 C0 C0 C0 Cr/ -a>ģf XDs "21Oi=}h_Fg~'δ|˛e+O_i&`(hEWNnKL_1qߛ&J\Wu GQk |7c-v"cӖ1_n< <Ŏk! Qy #+/l} ۚSNljoƤ;"i {iDBelGՋ0 C0e>u͟55qKpز6lZ&C395`ִE#f3FO]׿6ˮrgώoxT㨚jj2 C0 C -q5+~im]@5{5XVC0 C0 FztS__FyGz RȟI 3`[BcCz:,z@kU) C0 C",xdIrZ䴲eKD#'Rǻ>`N36cTV\ ?/֥Vy+[]qs=0 C0 F'wŹW#'[^,!P]ea!`!`@OAzʞk޽zsGj f($S86I3-vR:6q7!dSUfZ[\#I,8eS~t@'tqMfQShQxGb(, m:y|ٴX}a,{9vvlGb1'Q='?:mbG^l#>m주jQ~t#6bJCMM%!}TvKm&ΝO-1)?['sȘ!`@wF`ennѢ(O Q'a~2k DGGuo[lYx**>l+r!`!P }ֻV]_;tq:juzg]^vOMù…<;M0Rۥ@ϾY4},:7_T{wsQ{Y}{*2 C0 Cj:n u9tӓg=P|wQ ѣxbt-d~]Vx"cD.Y>%ˏ9tǗ|";LJy*&nƈc?ZvF~S9Щ>ŗ? sl'[*q!Z U|ւic=`y1u~c!3KZTr`w3yF9GDg*Z执Zܗ?;jPS;T^<6|Ɖ`}NGi?/&~ˎZ0 C0z ,r = ?c1#YYǖ{?roϚz9lUʐ-Kz=AqO_/_ e+UV^> }eeĆ!`!`T_kj V+tHƯ@Y%{w7?ȵW.xF̏Ѩξ$b~t%Z0 C0 CvuuOZ'}ѕ#Ǎ3_ |xHiEt3LȐN_͜|^2{~b+!F ?YvcX|eƐcsHG+[œ>>~&51MAXiE83 i˖8EA1Xس cp``b{2=~`yL~l/O;9*>{N׌jT<ѓ[ʫD6a So_ot2;3aշ*:&3sv1l) C0 C% ݒ%K] gg\͆YMMK)oٔIYutVnZZ%6M|߸X\bcXuTZ&C0 C0B@Ƽsc9W|qmauDfǩӈGӉ`_/qZM!`!`GiΚqG<tӉW3"'~ 83F4 DTU|e-dcqshVtbvR.WNP;:6lKmٓ#\[jRg{6ls{U+8K @`XkqX"_-z6EGu"+^nՏQ|bkKtŕ6P!Z%>6lJԉMM~ 7}q /{y7nzn4,'xԐml/Ulϩvb!`!`l'ϛǏEW˺g9sY(y,əo>`NxWriZa9kvx +. kXAqTB(C0 C0RB snn=ͷ\Y- 0r|1?{WHbjd!`!P~j庮H'uj΍3 v $a8ʢx@E'D&eG<1#w3DxĢ1lFsI4?+G-s}_1ڛXa^℣`\(YAN(,.>±cÆ8crӦc'nyjB'ΧzёWq6&AKW髦~fOybe%_IZdM6t'݂ik;:H̸η5Sz01 C0 e;)bBW[|?PLb&7i_nS{ʸRV[[k7 jmMKI*Hp.^i/eV!`!` smƍotW'D~b[f7_[M+Ͼӈ9Ҍ{1BO42 C0 C>u]+ٕZVO>?LSmF$!%HasBbwlc$ʯ8/lW~ėMlt1wZcnّAOl֏rn놥Eʵp8P1cZ \lw*vq+K{tتi=)=>Kt2x9^t+UA'7ܾԓڻ<У~2sݶm\>e)TKd$٨׿ _|!`@m 0ߓ-9ML$bywnĈ5ꫭ$ Z[/o^2dE+t,GIu 4n`+0 C0 "йȑkV׎;t- "j4b~CL^L</`Z !`!`]@-]uԵNR#yb1)gmĭ0}.[ a$3f^dM/b3U<Ѣc.֑_G|/n4-Vx^56'|7&j[69lEK$!踯b:3O,W#_l&ͯ9S lt (riL,$Wڙ6l\SԢH^P<ZtSNlj-W\vks[mwڜ˧L;^<١͏o!H%ħ!\}&!`!P ,Y|2?EWBgat"q?x]~}L{nz9f,\~0=zXI}_pNx " C0 C(o1= /{mayvVKǧ;8`Zbj濗U C0 C0 .@TRZ5o T{qѱN0@*Dibl}7đr8ytE[!`!`΍?׮ӽ0siCiFսZ"eb!`!`t^_us;I֩%b~Gl&~ocR}0ցfC-YB-=ߵ#:ömS/_BScX̿ҷ׮gP7 C0 @`<1_D6#-lK/5ɭ 6ZaPkՁē/>9ut[!`!`΍b\CtCSSBi][~9j4b~y4^L-2}a C0 C0t]}Jv֩%b>T{DԼcfm>yc{L 8 16c'3:l13-fHCV󴪇ژSeI0 C0 Cu]%qM3u&I'Gmas0 -UzigNgtZaǓ6/4Ďӧ8O~ZL\L~aQ,ʧ)?-:T^ RcK Ҵd9D@QxW-eH٢WLl [ "?Ւ_DqQKLbQb2i }–M5m&?'!?g^Ox oP1vbjD{}ijF̏മ!`!P̞lrrj6 l䨵^i}lBgi/=%[!`!`:vnֹg|SF/^ˏe0 C0 C9uswڃ1b~{Q>}n~l*"H-D-9xZyrK=ݤS*z*~?ѵ<_&f&!`!PC̞_?5C<5ۈ6_xɯnr Z[u#Z;^Y!`!PCڵv][ڴ({-Fhy][1U`!`!}W+յqIcx Damū,𱱅oL?U}8ŷWv3yWpC-U~F))Oe.^|iwC,S|Cn~|%J "v,Hc &1bd}nltpZէҩ`z|SBGyd۩nd So]Diy죊` (QEy~*FoC0 CvxBzMH",s2*lh&:[mAI Z[۴vЎ1:5 C0 CA΍|ŵiQZ:>6b~ 0 C0 C PKugdWk#gƨ΍='᷅~ì (2G #PR} x<8Dؗqll%[b1&9cagZ6cA֨5dx2'?Z[}6D>*s2O⧾b1aͪh+=ciŚS8tv|mxC,["01&tOW}W$dFz=e?&䇹#`F!`@Bg߇3ǘlį̅f#Lz`n)iM@;^J;^J:0 C0 *G@[n1 N_yϵo-p3h,p_\bSy`XU+z˼jR.GcQ ZFZD1/?G5\̡O|H_0&RT# 1>f-|Z>! 3a~7a}@|_.2U6a#63X<cCX/bm?· ~{̫ZWذG5ǹ8$3/iSm|pQ=[<ss !豕˜ŎŋA|_W"N}ŤvGGM+"<<1) w4 E@O+ ;6"&1+p ~ꌘj}C0 C6h!^ZLO#6_k79jAWyOr2F!`!`9ш9trh\[µ=1t]hkk#wNԆ!`!`Zv;`]1?=XWWƌy2-:D-=}D:8S|tfѐ qZWyeÜlc&KPRhqBբk# +>:AvĂO+bˏ<8B.!? Q^DcTæ߆6eXI5"KՉ/m2i|=!?'|@J7dZC0 C}}2O!䇖1gI?ƫ"&|3[ARnR3U!`! s-0fD*~9Nt|1<#$\/2-yܴcCG+hlC˗=zgGXi 5JUC }\ėy|7Zǔ=v /}ZK`Ǧʗ%  0BbUpH+Ab @WW J,lTb(ȥd/3(V^y#q~E-ߺx ǘI5" {/Ȕ"$|HS#g@!`!P#'}U0TU6548#ǐ )hMg}]vH0Dgu٬qg}~Κk2Sݣ=rnme_f^wZd6gJC0 C0z:76byq;+ڬ#ԅ;B+_ -!`!`@OA>ӵNsu:9κkAUJ|X__Fy_ AGB}S)Q9c;9 yC~œƊq~Ɩ8Ȏ|7D~&6:|>:̳Kun5/+?r(?|5]IBRE)N\05ŪŞ9?6]nGKa*?zWZaǘ {Dc%qCG L֛m:^Bo@>!uuD/>^K!n}Cp/߰_7e-kͶwv3Ovִ]O|uv:^& C0 Cx/A:Q~Z犆;qudenY :S>fTYtmmn C0 C07n\w=kJ+rֽ|sm3op!֌!K/R*c7-DzD>c<-"[gZsq Ǟhž7@KP%üo..#I-ߪCV%[-!`!Pyw?iO>T&3|mjC~Gx]nV]u7dȪnqR@IDATu-?.]qà# O5_L[z#Pb֌OZ7HҾ Xk|? ;5/ζu_vi/g!`!`=oŸkrŮq{wm?OkѣGֹb%+EN R Z pTl2kݧ>up#Fnpo5˽‹nyn 7pG.1@=HHkl0o~͋SHC1+a[tc#6W O1V n_kRY(HBӧ%>a,`k,LwA9Z0H슛_v͏n+GsGl6戧R~R zZ>1zdC~fO(T$O..~O[AMbqEljltmd!`|~=>d?21dYf2&[:41tu޽o|c/o% -q @[k)֗i|e]2a‰nM7Z#1uo 1Nx,fg!`@wD@$k77;;@-ȱi+VN,S&K4nqg;(-ŗ^ކTC[ b3ݹ?>=aɛn.Ҥݙgz, '}}sイR!wǟ,䁂s/T< s\Z][1?-D-!`!`@- P뺻կq~+W[uUw'vܡƌ~筭kQk#槿y+ޘ#gmD 2-dS85"z9:;dCشӏy9c'q)-)c+!'BlWu*6ت ?ՁNC\nC`>J-gZ'V-i1M6A?ط*?1RCЖkr[@qASN9§3ϴ;I T~uZfm5NcPJ/ԾX "&`*_;_uu?㥣<6o!`@wF@"{}~TDuׯ#9sr[wㅞ|کg=jKwU*_GEr(%I){kOZYhQfY|p< u};2N)s{쾧'n*Ϳ{lKT>\߾y}e/]x~|Z][1?-D-!`!`@- u_w'+}[/9d=4ΈYuR5}qcnj:Ǚ7P" 2y X"řmGOLlg(ﻙy ~ȟ^46t*+?-XŽl!cx+?-~][8Q/-bxayN!]Ts,0pĠG;Mc_9CIGW ʩ8ʏaE AX,)"kGi $!UNV_AZBͩ^GW~Si9<Q~dlmDi-^[(L dm1-#k.C$B>lέմl0 C̞׿eErTYd3 r .vs~-OF꿼kr۳>< R>ωcK?Dz!Fj+I}(uV;{lww{/y?rkfF+9swL^~Gc9*%-h_}kg2-G7)*u1*va!`@Iܸs>{C}_|a vzF}]y?QA}mQګs=v͝{9uk~y4O4b~GH// Oǂ%}ǟN}=WVηr*UAY?p{,.Gylxe[O/]~nqon!)mSQF}m'O4bGʄ=Wd|NZA.!s$$}[#kcC0fvӧr~BOLzu..g|| SީLpfF+k]w a>xsFrP}s#\˄Nu>xV1~qwgz!`!`}A61qf'x: /Eyn}nWugsnΉ Q_|gE4h?4b~GH?L`1nȐU2F_}5wAuGxGԧrIK'O<{^6y2~z=fowɧGy :qǭne:ֵSՂ!`!`pҼÏܗK@l/.肂ы>?Lnkj8 u '|p~~khlh5+;ٝ%6P6u^zEf o̘+WW -ҝyip ]딓 N~-cJJ|Lu-+Ciym {$I\l+lˆ {6G(&}_gQN#a<:嗏b+꣏/(.:aj{uqB4DK+.cD׼NcOv+6z0(@f8yvqLQLZD.+s RA˦u|B ;.ws$Q%zMK'| o[< CF,iZau)_t%4Ź[&yr~^T-J61f?Lj1.8˭tz'='vwy[mFH[EjVҺAM6i/F=j C0 CHM ^sUn?=gCmyj]>O{qnqL/')įӈ!U|{zĝzBnŭ:m{͛7xgB+՟ s_7GV\qE&~-iZK.M>]wnM6j46b~Z,C0 C0 @u'&_קg?q;~i A~_/ l0.qv1o-Ro5!nBFo'O&<}{-;xs٧ܚt:l;~L,6l2yrxFkFNt*)1g0~\?; /dL#+'"M$@8-rB?4S^D6G⡧/_tV6{UFCB+v5G;| Ķ9lWP3?P\)G}S`\̇+'}̱I1_d0=6DȎVvJ_*ⲑCE1^v8i>|#hCC0SgwЍJݮB .X!TwO{_tFVy>zr~}N64آ{>^Z%lVt:^!`!`tn61?~~uYxx#?tcrCJnTb~I`&~K {Rߖ.]ϘCIE1?~}[y^o'UdZ;D7>DƎnj7g'nsz;;+Wkr;:AxG9~Ԟz<Ʊ:F!`!`"u]f=jf׾o[DwWqB7n _qUa<QGo~ׯ_λ8`<=A8C ~V?0~ݱ/Yx啗y~r}ov Ŷ֩1E:cƇ׎똘Dgĵo{[{}yqBiˈ(0fw9H$p{ip5/"2vzҋ 16)c|i|ּWe)?1Vc/[ :ĹƎ\ԡcO'(Ur T<-P3Oʢ䫹-P}OruKȨ٧OOO>N?L 'J+A'ceHg9m{ҺDS[kuo=DO:Xsϻ6tuT8ג%K܋/-jh]WUw9aĦ&1jB e)*Wύh$is$05b~}!P̘9danUVrK`%r54[ Vާe "dpO釆}|Fof:F̧>;Zk]l :^,;nucǎIa5(zgϞ=B!#-ot\s}z`2$i4b~;XbAUx!`!йq|vof.?-FjQۻ/SUO1|:ZO#wTa=1 Xx ;ts_xy %o{c]w?]jak[O>h?=:a:fo|[n3Nl`O?w2?r]w#G^ikr0x_?sM'G%GsG<ЧE~ ,\d5F5ޘ#q?etN~BON٪O|D0yDL8֌GKM"k bzժ9ZD>(DVD['i#,4,D:D`|C>B~|>s=}ml5ց"}SPO,qb+8Ώ'6A~8/]jB2i J{6c3b~64 CJx?|lsu UZt eUSw]?q7hѩǏ9)|O  OM<̿N?rS&Ov/̭Jn[Z~/n/*^= 8~7ŭe޼noޛ^x-(%MZ7HҾ ϻ."r„ݦn^Ie z|%LםYu C0 Cܸx;ԓ Fy{)xc۵u C0 C0 Eu›xֿDx[oʔ8l0wPZA"СC_5[nuW\qUߏz*=ůӦMsz۷]CC[iBsvA!3O=z2zuq[n[gW|/[p͡X)71rmZ R>y+qӻW/1t6oN#qb8b >谅gV8}K;B,b">kĖB-C'"=1kR?7`GW8?^&JRW51T VƶDeb6~+SqUK,rC<ŜD0DzeFaۈ) 75t `. ~bxڤMPI&W_}$}!`T5~eǗd^ jY?o Wֲf͚zb~ sA?42}O#WثVr? ܹsY?Qx ^?;GnwIIo2:}@'_y'w\~\VuTϊC0 C0G@qv}P+>f5_[ѡ^;_|09﹇~$9)ܹ瞓T|bj!/YX=ŭj7JUwRA?Cpxr͜9#?ڽ1,u;dںꃸ1uڥI(][w!`!`;m}[.w&jKwUeLE3zfq緿]~A7o {wbV\|Gyzi7~ ⴧ80D: Si{J:ucFb'Mnyaip Y Cztb^Ʈ`]^~%'d|}h8}L & ѶOE}wȡg[c_ϙq8^xwc9*t*F{Y?v&_/ZI(vuw?>z{^ܾ_d^-n3Oװ*ڴXa!`@"㿨>sO{b[{5\|]|p舜| #DR-|>'xn7js|ݶ_r -݉'Jo3W^sntownq-gq Sߛ@[nrKc|{!`!`@ktߡqrqLJ'gm`( .oSf[oϹak5T{>}cFȮW 1ZQ<4<,b#.2~؋-_l Oy\̡W +cK\(?1ÏW.cϜ5^qyքlgMunGWT"0bjA'C_D:I_ aW~ИZヨTvlɯ8UNƹ̩~b'/_l;ok6eטT@H#>ٞ][.} |V_} 64 CFtb^ɋƮġ+.r]ewvv-!Az "mZKoi C0 C|-7hu]f{{ nny|{|AH{qG:}tSOlӒJX^n󻊔ip/ZS΀stIm~%?>H{cmT<#o2mrgqwo|ewﻳkݾl8Mp;䐃 WNF/Bs4 C0 CAҼ={裏Gj.mPyAS-5?xXb>oaݲeK[t?>,Ff% Cztb^ _3Jg{VHO$t,!U1ҿ Lylk24:]q^{ n?r-R:uw}>Hnb*UY[}10>^&tj(/v3fp{[?lR2-!`!`]@_?ڽ⋙P?9Gs 몘_{E19w_p<pcܹ瞓#j!泺?M29\s"A|̳Թ{ R3|g"2mn-tW]uiG)fLV7v? wͽ~xF侮_20 C0 CH/y~+[lɟ?.=)SOO1W[ߍ?(O^y5կ~\Pn3ֵNsu{~# 4}3"'5 83F4a$!&ҹc|4OKW,R~D/?cVߖ=ȏ=Ŏ}&Ձ=Usسa߫ZDZ/X`AXkq祏//H>٢g[DyTWC>cN:eNclAztNW\b6ҡW>Zj 0u"x2.Ύ%Pm?` {b~ux0 <ļ_I%ꮺFI+^qO}8e:/"'Bl4$1_[L9qK_{9qiSNҕ:Ovz sbK(ȿ+K<7 e]Iߧ Cg^O;UW>봎Uh C0 Cz8Jmxׯ&bw? [{3<_Y?~kk z+/~q;[D7dHK>R;-qR6b~)(!`!`@!}G}ܿ+yx6]z/\~ZA /q7dl%744Kӎt̙sx/O?i˖-s|{}nwE?uCKеNԜo%Gӧ;f4 mxΨ &DD9y2>l}7C'N,?!$氓h1~W؏ZE(lc7dX}Sjs1j/X`<q< pذa,rz?zt!1~:b.)I/jdʼn^tU\ƪM(IU~:iO(TS\pgYI!`T1`waJD/dw :znuh[ 964/W-Wߧ C\C=N= C +i/e.!`!ХyZ yǟ׸R|p%w): K5y׿{BwmWO37@ի77\ +wSCs} _Th@z|}| Y ڈg憀!`!`5@x!|/uGgM3Vwk*K$KƒZl &؃B!x$0a d $La # b,K&y^w~W}[]{W}9翞[ySΝ;÷y[[xS׿.\y,/Vb>ѿ K1;kŊ_uzb~W6T%Z?u޽;dkyPj7 _L5xpחST4k۬9?6":`lQRKs)|fⰉ,>2~Ň|b]ʣ˗|M|iFF=ѫvު^{ĿZ}oyhFixmiQϜk'Vl t|UGU?%?:|i?qX)=1Zr>zexWJ:U zUA[2?d,ҁ_Zމ>H1I'shQ~b~gw#0"?Bݡoq'}\"/>ux|K&򑥵O̟zІw=߰Ď5X[qK>vgWS{۷+?|Pɍ~?;|/t\{k%<Zqm~8_vo/׾"<~pŕ/3vQˤYa0F.Bo7~{_׉;/}9\7xJ`q)3!T`=^rC Yzz<~Wx _Qү^:<?Hp$u-;3T>xS|j^4_mQ*+G|2dolbZ{Ì"cmRcΪp1Bn'?ztr6(^yUOōGڪU8} |!nrhKCC,^:u@' 9h,Mc-6v-z/c$e0G'꫖BX&xB^y}ҟ*'{7}2 [iVΛ' pTZzmmb~F#`0F4u݁G?p˭(*N?@'u[ޖ:o>l) *—wn`xK^_ \{]{5l>?8|p8TBxsᕯ|EXvuzhb~NFoxc] fDNC*'Yir|0呿j:#V8\"e 7S3V >:h.]Ts(y cDxѱn4džqCGŜ1kҞ5V}եPD~-N:"^0FfWoqfo |67(םjܬ F5b7WEe"(NucM G<7F#`@7!kfb322M핎o/7H VOՎXed#X$._W4޾㣣td'n~)}5~psx_VZ9#`@!7!L[Vg󫀯sڬu.io|`o~; 7Tt[hߊMCǚ{c;T Z*=j~6$b?q1\~q8!#Q}zֆM5#C6X9T_kl ةM#Mj=9B>Qn|,J>,E8pң ˟h (tɯ|6Du˟<CZaL}zz5WyS,z>:D=599n~3Ottn"p£>V/z Ç>'<6n_|ll,m'%/}_{#`D@&7}k_EVg{Duàl\^ۯ3Bdvϗe/#`0F oibLgCzmmb~W`0F#0uTTuM̯yF|Uۑ/{qE*xر,2zڣKIG1_r>zS}tZW2&Og+WT'և/MCnBF $6Z$v-Xx>ZCφzE8i 8L8egb-f9zN/l+41s}t)U~_dm|b-~b>tp ^ط&[x b__ ȳeGٟ͛ oK^ 'F.Mo79=&8n~u|!2狉;Se0F"׿'z7K秉3 뵵?^0F#`A^͟RR11FJ+c= 1Oʘ^dr5WDU->3k =v>ʋ-a|N4"5cEɗ7G|T/k>>5 ճHmD=5xZyn4bV}!Zs;6ЇigB >sZ|XQ{ FudCWx JQ.-L@JϜv1dbS?4f(@ .q+sa_RGh3'O.MډY;["ptǯBUs37eK=scqTW.єs/{Ax`߾r_{ey~u˗W 8+J<<3F{!HJr~:{AWg~?M"} ({#`0F7ڢQʹ^:?M̟lh]Mo 0F#`nʕ굎4by7n+6Nūinj5L~/\eqWqMI#cǗqlU-ԇ̌xW<>XC~Z lyj0Wu<zj+ >ظ$CDR%S]_yd>U_kE/pkMh?B} A@lԡGS}tڣƪE =c3FƶnQIpJLeA/iygoboK?rHXpa8$~]j~1ՇjH#`zhb~cς)|c7"[?FFGB:&7<_-41_̮24;e0FDW kNF7*z41v61+0F#`?sT*W:&W҈Y___ؼi&0H+EF`#2s\]/Zu0LJ^1ԧm&>ql?cZ+MN|hky:)[>FWnzlTCȟ1v|yb9[ M7Kg!\¯XX/>|ڵk{\ O_ {o8p@"_uYiO{Jx ~1\tх >χömݻ&׳ZV^.{\ |M#P zZЛ:{/ZSCp斑[uM̟Uk7 zm:/ib]ehv@#`0=@AoUibLgCzmmb~W`0F#0uTTuL̯ĥ38C]sؠ•9eGU7ט5Íl/]&`!K|UɋhȱKzH=y9MkӌeGȇ9GzʏNv`K܊#/'$PKDc|O.GCTWs'\':bdWMzlC=|Ƕ殭÷;Ɩ,O̟|Dn}Ų,[,|+_4̅q~- ox]XɚSWocMe./_n 6m,<0Fhbl;Tnw*>0+fmq613]T0|!2狉;Se0F"_[w7 VK秉3 뵵?^0F#`A^͟RR11F2b`l! 3דCGdT Ϙ^1[iC+?zgfG\8Lk^ɫ5M.yjXa+(6)A]*u %, z-V 7f% wBc.0#PU.Ck%>Zr_:ǎ(iGU_u۷ydsIpL̟|DEM ͓ LyS>%onc>Hš5F#`@5zjdjlO4OʇLEG??FJj>beï.p)O`ˮͪ@$AGM@@zql(?s XGOA/?|v1Ǟ?_kQ\R;BSP,6bT_/mm۷܈KG A31h1kyݤ^xaذa]x÷oN8|oq_+^q]Yqpe9>y4?_sT_qQ|U%cSfFkNP dB9X8صqUIG.W%xi~k9`NOC_{PtBYDY..fE5}=nG“),^|u ^/8>r4|{[Ò%9{áC n[0F#P6MaX ~c_[Ni{41Ӡc KF#`0F^z]R`XLuzߪ#/q õ'6N nqd&#-xsa.28#/Q $^ }tZl+GV'փvt̵^xB=ᏰΚEIjN-9cz6aD~AbW#Wu}bT?X58rӰOLɥKe-koqO1ǶȌ(tp`KLA/{ G̯4_zu]_o}Kx[c{_*7wOi}xL; ?|>83}ᬳV3W05#,>5Mxm_J=g]^/!wIK8YIY'lHl[V<37u]k?v7^-sG]v~p#ϗ߭Wh0Fеuʳ#H@|m-_"u~U]~~33lKF쌣U#`0F^z]jlUOuzߪІuWc'41ezT8Ɛ$5)z9:?Ø'e&c| /:堧Q>j"V}bNf㴜["N@!.|ȡ1+< Ҙ#$v65h3ژ0}_WK.;:1Mu SD=I!ʥ8+,>6arm;qX: !40|7+k^:A2⊗77۝w05/Yre$_ssU#Lo 3e11?^^/! [/`C/Wg: k7 zmc۷#ɖ6=[ ߏ!F/Y/#`0u"kŋ /\0:^[H01XؠƯq^:?M̟$ 1/;Pz)F#`0-D^׵ֆk^!}qhۡ $L*=q)T6Qڢ(mE#'C&;6^+օ 6N4iꫦrvtIB}bGUSyT;sq|NF"o6nB `+V/7L=Xٟ ~^' _?K*Cc.HG?ᡇ/Z0 O^|Qxӟ.]R{`+"CD?|ϒ׿"o&N>y'Smk 0e$$s~4KҌv#`0FqύWwk{-v7鵅kIewPbzߌzh,#`0F&#+ cN[>b"©S4T| '3IW~b kƈrEؗ6塦ϲW~G/ƚgڗd_꫞)?5 I!Zr9tgE`g(F]JsmX O(jƪOtZ+C#K=vgN=T8L>O>5y2>=1>o][(,@:r}iqBSvکa">CR 7/z'4 ˖- _׽?OԓŸٟǎk<  gv0]cscca6~nVf/Z#`0Fеu]ڑkpg[5l?̪{1@oF2F#`?mwn<HJZ~qpp lX$Gxǚ'f,8 謱G8LBQ^+F+;EGB#ʙLjoMDZ)ca}ȿj)/b!mDaɆ/`ѴY* l\豩^9:D}us$ cO-=_ji==gǑO",Cg v9D 72&[|370i3)%_}յ?k2yG>w+{w~Ɋ+ yW 2[gV.z^k½Uǹ|GO[ ~©t'9]ΛVqn<}é pchz>_x'7F#`@еq@شܮ{ȵ֭XS_[9t s42t;1&l1q.#`0Fw/[_͟QRvb~;GC̿;CADMFk_,2\c7=ÆQ>TCBG}be#>U?NqX}ɮ=ua =sՊڄ duECX$Eb6x4m@cMDFt>1H:Gu97Zj_D|CcjS}tˮ\.|cϻkcptP'zׇp5?hvrƲót7~;?~˖ϧ'N`0F` ZEخ..z^k½UǹU|.>?p}3B$w|mݾ߱H߿{+W-+X[KK7bF#`h16ܞppV|`v-w?}\+^[朸x~Hљc݋Vb~+^v0F#`@k6~ʯ:Jo%b팍'CG M? aXazjqΐI-U<>ʍTCCAcCTSȥ|aNXcL,(/:C֖׏ڄč-\Z2GHnX:գW#Wn̉(@f<;<('=XJϕ 'Du2(rӴYȌ(tpL̟|`% gʉW^>)58`Stg?>\cOS8䓫!iUǹ|{½ |taŊeӖŋ{kJvH779}Pؿxv4s9+~zsgq}5yԷrG#`0Fȯ. +>3v\-lkkA+0z3k#GFk Gk3Z(f\k;'Z{1ḊrM/[y\#`0FsuV:D3bxT&zN OՒM1j\=cxġc<8ʂ ƛ\6zݘ?bD羪>+wGuZ3P^)cWS\%V1ZT8F(Fs'Od`CG/?%؈4j>k+zD~GG~:5WoݶV X: N'z_߆Ogx/i|.W g}VXjeXϴgϞp}z8b)gTk>kPalݵux O/t0'z ?‘GɟpCGaʳ:»?*t^{uxk_tzk·oA"沎> ;peP#p"ZEخ^Ո4wުb;ojcn ?ПɁos-Y8%Xkߏ]KN:_jYc0F#0_Ɲth{G|!I/r{#`0Ft ~]-GIuJOc;apţ]DhJ"21Vq?cPG+7{3ęVjEr$_W=i֬uP?=S^r"ʉ27QEUzhs,Jzm&).>G|p9Q\u:ғANuu ԓ0V}b #gLX[^G"H.|0,m;'[: N'zd>>+/Y4eWظqc|#۷}'?}-On,X>OO.ȳzps.ȏ /|1a@?9#`fDUt14R.}%LZuIo(`Nf0F#`0F#`0F#`0F#PF`pp lXʨO0q>"9\bx4蠭 OƎ{(Stz8f^0'it4r±f8zD}sb[qo':D~R¦`zEN9cL,y"@tTxl=c8L4׉5H`tT}rHXO.y|-VZ>Nm;ơ`?4Q~m['8kxZ>n<}Kؽg &^7&1FVmK/}zv늯nq61yύ0F#`0F#`0F#`0F#0X6m:dWlb w%D,N3šq|r2|hp՘ucS,Z+|D3ƗUOzrHI\5_z#ܫȜrд(-X:z-4%bd' l 8LsV< W=K~t!?z&z'Q<:5rq^|^~ͿoN.2檫oL9u@UiOة/,]ڭ۶oWtXR*xȖz$+ƅ㨎?VZ1^} |37Pv(b>8?/O}3o335\.''٥g­U.guVؼyS_z0sA5/Hɗ42]hq61Ɍ0F#`0F#`0F#`0F#C믈ȮW .19a3L_M /6fQ-l檣=>FCȁ~4kQ}{\6ʣ:"\uaBWh5 mj9k3cASt`"rhZh i:8Cs(Vsu2F}Ő'Xwil޵uc_X:tBUssqӇz8%l4N=Y簣0F`:ZE؞~zb~1z:&#`0F#`0F#`0F#`0 ¦+OGCV2t㛓W;Wfya0߼qt%.įfh]Jј'ky1W}zu/Ls%f*_( Ÿ X +_$ϗ$艓o^?+|<`S>8lU+)31Z2W]$!'޾Q>}H-gޗdb~#`ڃ@&_4jLo Ne0F#`0F#`0F#`0FAD̿<.gol<1.2|bhp^gœ+|!+]M<&^vzO \^qr)~*jQNJӭuO}O÷~TMsam 6z>y]"Q/z"u5#?liy]lbKtU,>H#zգG<Ĝۚm;U~Dmb~[#`: ;h4o-:󅘯!F#`0F#`@jUM1F#`0F#`@!߿ lpUIX(!U_yT_zėUIsQ 9h]ѓW8LcqU!@'/"=cs |_zOkJO֥ܪ^:b綁8'^U?Ny^kU}|<1֭÷#Hj Y*cn>'91Iq8իVtҶ#`ԭ:|b~qS8.HyrRq _0F#`0F# T0#`0F#`0FHZyۡĭ0cGcoɠgN/"c&3&;cO~:rhmQM(7U?Gq@C9ZǗ`ÇXtPOrXZlT,ZU(_I:`ʁNW-ɅT^S5CMlyNY"=z 13FCѥ'oޱeleY: ^i_UKlb~L#`V;8?1ϵ G'Zqa3E0F#`0FF [_] 7g0F#`0F"Pzb1UC{qDVG#ukFir|0呿j<#V8\(?l/uO X5dࣹtQUΡ|5C\~^!ұ1r "qs:`GġV>ƞg5GǺTzjq!^'sƬI{XU^B1-cctd;x-F"`b~{oUVV=1t!0[u*0F#`0Fy@nB{ #`0F#`0F#P"_v1?'C6 '1:8ѫ>^OgL\8-ui;}GG)e$8&wZ0EUr? Lğ8=2F#`0F#`jDb{1Ì0F#`0F#͛.ۡf1s[Ej~6$bn?Ef3/~3rICT^vz:T=OZ9dC|CŻF Brዝ4 4֓Cy!SQ_g΢sXS.z'=:ٌƀHʧ^``CTC1>:D>E/>ԧW}Ws.)N~?ŢWCSc;o7n$8&wZ0Eߪ:΍~b~jW@7RwLv#`0F#`h z,K>*9CSչ\#`0F#`0FU3#!a!cǦ[."/'}X|iɝg|1tZW2Ng+vDǜ֡jME7gBXɥ ɬEbdž(гaޤ|3+'z>7(NkǙXDyDNr^Į ʅ/Mk\]uIԭO̿OuL#`@;ӟvQv.){pٿ ,O}6<^b+.)vbUC> %*+#`0F#`XTqٰd7ȕA-0F#`0F#0(;ظuu^dr5WDUӭ~B/`ig.<\]Y'~ Q}֙kL=<]yڭ[o?FYK'!41bh/vpp?{?2:n䓗.LxCz%^.=<31Q\M3F#`0F#`@/ [WQ*B7{ U$Y#`0F#`0]@Fw86D(\j" _HJEP[+͚]sU}y}8d-ʭāF9%G9U_6zrH%GnƜ>o&Q}& =0G57bTG6t5לHY|ng@CV.6 |S8Lcb Tl:Nr1W\&a%UI7RϜŸcU+&{d0ѣQXhaɋB__~9бˮyaF?69~I燅 >m@IDATI|>E&W"dC阖duG!1ۤ8+0F#`0FZQ891UF#`0F#`:,7n+60īinjp1>yt_yiV\4%ۃ28MʑGuKrrO_X8-A ~aY_BzcǎhlI=_Ž^6+Ou}呝:0W}Ů59(=#Vr_qN{X象gL~m1JY: Zi_ؖf+`#Еl߱7HXwr]Gm׈PعpYg (’+˒cҥ'> 0LM'0F#`0F#`z/h&COP&-F#`0F#`xMCǽۡD w"#0;QΉ-rQ ^ausbOL|^$TصzWמZyD(impBsnZtu|#IJ!=fiXhl^$8L:U~堗~+'kW}tS|Q8T?csnu|\F#Hn qx#`@[/|tⶬE{p;ҷ ~j\':bdWMzlC=|`k,噘Yɫ1FG~xGB_ک 9QВzB?xH#򏍏8;b~q"=xAb&K_MSҕPr1g[넉l4F#`0F#`fD5x>1AokUpWޟ+D|8F#`0F#`d]q+cG I\/2=";\g+RM|hŒ?Ǧ虋3iҫ>yfɅ>U-r]8LcŰ99˘#є_R.!Y0Bj&٬=^@h}@&p@żrhGRՓ6K"+i.GU_u۷ydsIpbIGk1F{{0}}{ʰbiYMsv;1E#)XxVի7)Ζ<&WU_OW>Uܭ0F#`0F#`: > Ӫ7#&\=qL=:#`0F#`0F`>#0886_weÞ 拣ozn1cC7~WG,MsP^l%g|ɃIC'3z1N#I4]>W}zP}r#ʆ_]BzE R|]U?6H8.p0Q~xU^~hc=*ֆ?^v<̧Xlѩa_ڭ۶oOitl&wqj0Bv'GR ʳSO=9,Z4$n$C?rd$<؁pÇם/?lr2͓T:y\Ta>:䬅:/덀0F#`0Fv!P}O`uVOß:ʗ9^O#`0F#`0Ft%}}}a+v$6ع-C>VKsĉ7-?S.Dk-hO-}>'>u5?_sT_qQ|U%cSfFkNP dB9X8صqUIG.W%xi~k9`NOC_{PNWJ#`0F#`0FF[sP}/H6>?)NGEDJOό0F#`0F#0__ lܸ= >1CĦ#-;>i0oqu[.K`5\A]xC} >:G1z&e uΚEIjN-9cz6aD~AbW#Wu}bT?X58rӰOLɥKe-koqO1ǶȌ(tp`3[yQ-Y+&!#s NȈ 5a'8,][O9yI=2+b>91Xyr*ҥv,]MOKeKR|0F#`0F#q V5_MMWC9˘TQVy`0F#`0FA``` mXwUО&8e8pi2 @lט1aC#N>MxqXk27O Szu+&Bn'VTn8N˹.trˇZ IX@ͳ <^@bgsZ6 <ڇXzKyU_R}|CTW2^ mQlO6c獥e̵L/C0F#P#3c6v7+Ǐ3OW+ɳ|U.EYI2fG5b|B{Al}}%nɿ~ҢͿ{F#`0F#`:cX|VVI׽WO\܋αa||< )}sqEO0F#`0F@IvINK}k~[J<@m8ʘ_X$az,/ZpqSf.4}1zr"Ģ)?6|qX3Vn|#FWu\N8A&_>=q)T6Qڢ(mE#'C&;6^+օ 6N4iꫦrvtI"2CZ+& M0'.YKY'3x/ 2~"WK8SF#`0F#`@"mE?N4TF̄=Og\mL z5ræ<YvO>2·PX: tɖ-lh&lgLҿb\1.bVZe#`#s\E2G(3QZ5P/\8'8yt0zF#`0F#СO?rt$={úOQZ,-us+"WWظ͑TT9-F#`0F#`@w!maQہs22zaT?G8LB'2^1E\qXnhHzij^9񭩃h_Z :b,,WW-%63P"ټ6(?>,X5ِ,66qT%vrZ+=6Ջ4Gc{a`^>ad|Ċ,V')=$㸢O ClI~,v]r2/#`03!PM;1]kqU\{bK.:O\S1>)<.ᒳ{=ޙ0F#`0Ft ##ߋ/4Nt#sg͎t?Ғf<)lԤ)#`0F#`@ Х+O°H0Z&8ɲ徊G6!Ce?M!X V!|R>ր0NCQNrke1&\c!NkGumBFC.-Xy#$S_v,ѫO~+7z`G_ 3WAlSuQ|ʅm=>Cv A4'mGF׍ GV /ƯYpa/Ny_Z}8#`0|}{2>vǏG=(O'Mzz><`+&wΌ0F#`0F?>t,ݯmҭ|nide4j=Fy?kj}=7F#`0F#`/]LDB p?F_mCg 18t̕^>GUY!RT? =s~T'lyi|@y'䱌)Gr -\'}c(l@yCG/?%؈4Eʃy~ʼnO\~r竷n~gš#  c-՜&kaEa,4+#`;ScyWw.Ox[%Ex8%Cs_01~/#`0F#`7GMl}i7*GtVό0F#`0FV#0Wb#GC=}jO?lٲ\p\ v5ڄJO™3fʦ+[mPO>PN11;we0F#`0k8p(&¼uof(nb=\Ə #GGJ0F#`0FnC`.{}M /,_<]vJ&GơWRc;a9c0 !ȟ1qrXI48gZɉ-gړ|* ~+^~iq!&WN쌵<>G -;DcQk 6MqqX?J(Wrkl(~Q)vx#.|0,m;;I$$n=.]?='&D74Ÿ-ј)7M/O#`0@N CԀ"GN:k8M]sQΤ'd?H)~I#`0F#`0FH?SDvBzHSO0:2F#`0F#`@"0[bm?>-=SN9% Mlb@ذ~ݕ؎AXwI"C$gΘ̏al葼'2:I'Rr|5N̓W<Ňr]Z9X3W=kӹ]ʭ8ZlbY"_ m ?)aZ0=szHȜj&< :O<6Z\0:r>9$'{5]c/B5b3tRjmy{c@ rhoK}\Ǘacako8kkO,9!zcSGg#oŖ5>Gk6otGM7՗;l̗GQ~ )̗D0o|1כb=|eKόgUyjP'os!!!!!!pYiw\{{oۮ5+f|&/z~4D@@@@@@@,}*̿{ʗ}-`̵s=y$3؅V,֯_m[mWB2>cAXn~Yz.ꙻFϜ}~1cO~|XHuЌaC9Ϛ᧰ѻopoQa^ y`h>YTbc[\zĜaLÇƸ=b1?WaI'TN;Y]rrֆuϫI)"Ω]V:ucc-2fM_lȕ:mꛙ+1k荁޹y̏-qcC|h1S^o.c^3w qP;Y:1yCx0bz{b D~auo~c8g/A~7G[}C_u'bϯ/6=G]iQk5u|bmSbl[H듵c[+3(a0wm ?D5Uq_s)}tO9XC}fx /n@|%P {day-Ӷê&֌ǚb\ɞ&g=y)O߼KקO[;˽bxիq})C B B`1 Po} G-+gwCڛf{>Ov&U* C B B B B B B I`Qa~|17-}qf]Ia4߱  :j?;oTAMzCm<]Zd}Co\u6?j-JO:1oNaѰen~be:G&k[5ذ_<c@z=c4yLў5}-zzl>>ڱ㏨w-osl]Go!M7 :GoO|>nܱc򿏺@]"[`؝W,_^0w{8n}ߪO=Øn!!'9AdB WewK|nFw8û3@@@@@@L떆kC=d1h5Yg٧0LB B B B B B B`IXj+W(gmXQ}ӶvͣH:gT@5uY ~h9dk)3Ǐ9 uѓ>׶-6OcccF#;6-NGrZ99sD_-w'8}>eb~I {:XOM߮# %OMx[(쇏F}m!Pt?5}}Ia&!!! X 񫚛#6o%{P և!u}o|?,^a>?Pzm~3S#O9 )Ia9YB B B B B B B@{\]Ø2}ּ]v=6%L`毬W߲jV1w)h"{tv3˚"0]?WTc~o~֬]UM`1ɇ/ћZoO9&9xn!7e|2_{ׄAB B B B B B >VOlذPݵY[m=njEf~{mݕgκɌS/k鍧=:zݛ>|Ʒ616{aׯQT~@vrñgfs zu$BXHbnlZ`~? ~?5?7sb!zPXilؐ>7sƈ1G~@=1nɣӖOh 1QB B B fha~~ͬE;gش3Oc9l kAncMB B B B B B B`0;ӊyxpwbم, 5U4`?]@@@@@@,MK0'_\߭kV[f:=:BQN&i[-yku8+Ee䷆'gl36U8?s`hӯx%Bl qq0zu:ˇzE\>?s3FO;GǾzru槠s3;6yr \c+)̟Oc@@@ojoX}9!͗k}խ_E$6=-(g~GK  ÃLa>W/.Q4iAja3Ư)c@@@@@@'D /oWk0/X+$S8F_m"V;EfLu8.ǟ1:>Aǜw=Mb]5$FϺp|>H'9i;Dǫ:˅ @xoxzǵ:Caޘ@1Gg~ }}sÚcXS Ϲd|YGmr݇o't%iى'<5oUK-HɁkg&0Wu}9fd!!!pXhO̯'ݭ0~l7JVi2OKX19O̟;o|놭+9r+_x) B B B B B B <06bpqcs c4Z6mv D0lj1 B B B B B B B`Xj˗//眽Pݣ7:fJ<Ϧ&4l;?kӰF:l57S? S!w5sG6k5|b [M#šI=1B?:Ğ[ۙrΝOWR?ȭJatx&J@@@)Ca7Nnb#]W؎*6_V?xt hcǎr4O B B B B B B > ^ G3+͇i VM33|@m۽sh XZaʕ+Y]T߫jgQxo Tuּv}1<1<0|_8 #7ٝ67e-g)#B B B B B B B`5K0zʭUWEx=eV~XLJ=Fkcm'תj\=j##އ'15ш5֌ћoD[b;ֶχ65ٓ|bѹ=tim _imum&M_UvB/Xzz_ֈs9Ob~ً8}~:^iKw"t%O̟O/(!!!>1~ݤo7+|H<)įoVyb~, oW'F3\P7\ q 0|}=T ԟ%=.̿|[mzP(lJu[o6Ro̘~[ovs㚟yn|؋׮.hcG|ɏyXEO՗޸u|g|0y I%A[P|q c >FH'c#/lܟչf8zq? c;ỵ}oit\{LC3nf;"j B1!!!=da>|a ^0Gahڇ0(uǎ/}is-*C6_uUK'=H!!!!!!!p0v]kq%]c.gɸHŨrYٶwtp* C ZaUʆkybWk"56<, GO2=k\LU4[zu} {_b^Cq:k̉ &gbNτ !{жnby9XnL꙳~1:2"sYO0bg:lc>c@N ?b_6an?zgN<ױX5sLmk6onL#7\ ԚN2 0{aH@@DիMv9Y݀d?J!~ S`%B B B B B B B` ^ϕvUcQ~|c #9 gӇ@@@@@@@, Za+Yg0(̧ú:l51#\%:c JQlm6ƱYd(!g[\7F1Vz1sα5c9aZ3viz-wH  xYG<$C,R% ѻF|L7+zyc<1_Uyc_?EzgQk6_!::mʮvd!ȚPo@@@Oի j&7Y*9_0-_Vn?['?'3&م.Eݮu4 ͼ |3 Xsk{C B B B B B B`x/_s ;vcmwf0(|^Zdckxְ^ϺE]ydž^bӨmƿχ ~ kǞ1Jcǩ&M[D_cވD9㱧MA@zl9;|Ơ_E}oؘاkbolz5>TGg:<1MllNV͔[n+;wM?wȄb\!!!!p8% E)o_=yz~wǝ8q3=/kHгQ=mk?{۶;[ ̼?t=eQoz##B B B B B B :,UV ^T߻Զ6.P+MOQ/Sl}U/&`;&1( u}~3>:ha>k4޼WִamrL\gbp<6zGO;hG, [?}~B.ؐxi1s?Ĺ*tNoNzLJ|UWo|ٮE();wNV|x^Sx9m@@,& DnPLe|M?YNW;0 E"`a>w*F[kzp1֣6W'0{Bc8@@@@@@@Gk K0zԻjgE}ruN3hf=akǑ1Ǘ5uEG~롉5YWWmcg#z;wu85?"`6ƈܬP􎞆1@5bcc>̂o iG\FLaϽ:x>?s{>)_euW:mv-ߑc"l 2B B B F.nN0e~>1UZ@@@@@@"0*ݠVoA=nsIacXS-f9B B B B B B B˗/_rW*׭Z(s)=[N9v{u썡9R[sn /qƖ8hܵ:l:|c:X8w]OOSY3zK,|oclfx} +)>S? !!!0gs3f|ZIo%32 . 16UF}kRMnr{/-;@/ N`)ssmڨ= }5s [ 2\~E|9cXc͜>zj~L5?qc9й4WUM(|:#G6.cr čYo\Utbɸc΍C$;i>go걥|ooWMrLټ(ΚR )?ߩ/B B ^W+l{p8W7OzNC B B B B B B&pY-Z1ˌ^նm:\@{Nfk3{Vo_g*B B B B B B +VXrO_YtY/Dֶ6g ?ZH cZ/̭[flm5c|{o4]cX+a[t9mzlgգ0~swg =dp#0,sa,~kaw2vĚ̏밍ѿ9|O,36e/{:lczӇ}<ڐN_'/va]w] oA+WcL_M8\ ]_@vgz'E}/Ca@,o{r׾Vn}A9я.+B6_sr@@@@@@_?s`)̟zo}Ř{+/UV ^TݭUE/SCL2=2j)l֘ 0b6Muu8s2ƶO3=<*Dm~|ݧ:v_t7ý` ,T<<r{A#fK@IDAT6co,__b[!ivÓ{g{cacܸĠYlv|n+r[ٹmLWv՘^`G˿~ 4 )̟& Ûda>ׯ/_:z9/Va7oZQj_a B/!!!!!!!pv/熙W8ڃm򡮙tu@<1?336eof63 vvM@@@@@@N ڰ>~k"az\t |{!=\fqY|g b댍m^|.޹cN jAuଛ?u+UO ;.+^'3\&[ ;q>ڱFCiN?z;Aok>G31Zs tg-`g-:l-lr=119h~йWb05K>gN>ɚ4n6cO<9y2>b~AGvk}[(+7'ti=S(w~C/(Czly_Vwy:|_:[ O̯E<%UOQ'os!!!!!!pSa>J6Xpf>:`;s,L~Ŗ^0KpQ^G'T_Ʃ5B B B B B B B'r劲|v]O+bb ;o]wUwT&W*׭Zs^% Ω'f]+?qiءC5z}Eg:pcf(`?Y7gzk ˽3c|O7qXH6 2@ذasr :سF.ƣg|uI?HƞuO.\{?)w/_3c֎ZqQ oZ+uw|rkʭ(_c U9}tXolX>:-|=rg~ZqNa&N@@ |OSX@@@@@@b n[t߮g G7ag،Fb{ϧ53fC->|౻l_8p޿ s8F!!!!!!9XrrֆukӨMFSL}v\.@ik޹cN}~Б_{[= Śv5isե *s&,⦇`ŗo}[moqċ_pay7/ W^U.qWē並2Lay!!! $|.[6SO*DE=ym| 7u*C=O?tޫ4B B B B B B`i0jŸ(|bt|.xej3Z Wk,}!5\ٳGVB B B B B B B# /u{."P M~bBϺ (&ٵVl9STO=3ciG!4Й_c+c_l{1.:a{W7C,7l\@u.`uۈF qu |1&=X}g1AO<1b=1=W,0P|T Ga\׏@oU]tT$B B B"[a~Z:Ir3K-_,3G-`7|h-~HayiC B B B B B B$@a~+ #ݰ]A"Џ+.f~}V#Ie&Gn&Q@@@@@@!O`vmk䡮I՜!3K;oFYGwuWYb,4''SUfz_@ 'bkJmjfe0^54ij{i$n!2vzGW1sl׌Ŝd4^\q>ΉX۪j: v\cG.rb}u q<J_x@}O mÌ{:#rϬ#o2}X3QǸC B B B B B Bp"pK0Ss:j-4KM,&"ў1ccǬ3\l?c{&mCC̯=};^-.1|zcسf[@<R!CbGӯ6bg1;6sI~y ^u} S_?qÏ|X{.GKmk{5ݸcX]Q>W*pիW-O8{+*|px|i9ipiM8| Ha>9kwCXuCyb>L"!!!!!!!A`Ϧ Ø+1gk0xf2e!!!!!!K7y˒{b>`w:lsၺd7ִJFuHO2:ԑg3ֱA^_MшI5cٓEu}=k>lxEh|# MdX=%|CB~|Ϙ5glf~ FGLc8^!+ǼϏݱ6w:l;({ l&+W,_)+VlwIaL 80zW?=!!!!!!C`>o_5ydb茼7v_Exp@@@@@@,˗pqr}mwFmx|uSDlM3!CSKM2y1kq1{$?1EM4cliG7zb9lcڛgk?$9ܰ:z7ByXaXuڛ3kqGg|X)5وś~ey1?:#k;[.ݱӕ0 M^n}Hy^Z)̟#C@ 0z,)B B B B B B  k570Bm(~yb B B B B B B B`!bap Զ6Mvf-ƺd,.~ [/cgN>~Θgޱ5:h4zρd|l@gOaf,[poQiL9sיV9Ka:E@%~p=Ǹ=b1)gϯ/y{LmzKw_LIi-Ӡ!!!&.?ۇs/FO-OybO ݷ|mO_Sm z0{&UXGT܏doE6kN?QUX+V(gxb>BM16늹8 \O֎ul[̜u11}.u֬fl~lW}1~}ޚMcn~z⾈c6yq3-qņzXs {8Xl>^o@}V5x8f<8O7?3>x'kN-^}=h> gH/ʞx[vkk/Ѝ@@@^R?;cH!!!!!!!?|o1Μ{@C?vn5k2J!!!!!! ! /\n'SL=15zk]rD]jcKғNo3Ae.~㋎˞\BYctj݃vN˾رs !z/@CiEƛ#wNLغ7_]W_6j=艃ϱ~k71G]Y0G^Matx&J@@@^۷k} k`~@brڋqepph08}=:`o-k} @g3k)do{fm/:{CUU {:'W  _r7=^ʗO^_揑g!!!@)_ =O`d!!!!!!C0xM@ 3:DOu;Q)H5B B B B B B F`i毬WP]qSWLA;5٣CН5/^XfMΚ8W-Ϛvɇw9?zsa1?cψ}kn>>`= 07>:ckFuؠck("u7sƈ1G~@=1nܱmMWR?^Matx&J@@@ Ha4i&V@@@@@@Y-1 ڶe שּnbuzubk&i[- ׵:l2/c֨&5Խ=9t5ul[=g9Ck}^ P!w}\u ;` g ac1>=;GǾz|:msSP9c߼ F[.ݱӕOgS?!!!i~R?M!!!!!!&p(/kip}m0l-‰s'Gc@@@@@@, +Fa~_O5^1jٵ:lO-2c>Ưq<ƴ]LJ8/1]wO߿:jIޟu|~}O豛^by9wNXBa|{րqe< ۘ@1Gg~ }}sÚcXS Ϲd|YGmr݇o't%Og@@@0Ofb@@@@@@ z}f<G?̵i˪C{y XX|r.`n ꘹ad}6E\ac1vY̘6aylӻN~Ú9#I5cl [w>1-aa !q#9)6g,zG's@Aԡ'b1̏\a0&?ݯscT槽>`/z[bON|MldŅ+)̟O/Ц0:<%B B B 04+B B B B B B M`揟?[o"rW kQQ>O?ü@@@@@@@,R,_re9kú*jg{k-JzYggtE㩣[/=_޸أs_u8˘ܯsִ9` 6H,䲛d5DPl}900'-z}~caC m밉~eO="f31~ɺ{ ccaKs}8񏮺5?•WK>qlWx)̟6 ߲e6ר%shMSNk 򻛳@@@@@@zե^J \Rmzk+W>k@@@@@@, +U< XLޮ<&OUո5 =b~eanI}?gLM4b5cwo۱}>|1_U؏ɞ̏ͼ ٤'OgnN N;hk0=oڰ#z#g.xFm8t}bg^O|88GM6_si+ybtxfK9ᄇ\{CnXk2\Fo7/tԃ%xo,_,>ey-ר,_^?U{Fy`m5yC B B`IHaOe"@@@@@@8 /f0uC՗򛮪|DB B B B B B B`xaжڸ@06USlccK)c/bj:k;7Ƈk~RFoK~:v7~ǵƠW񙗰i @zs`ǁM/ꏏ1}6OFG^#ظ?ssp~A>!v4G}Ӷk7og*/)̟ V˚~cc~ϱWMj1Ǐqul'gb|}~xSۚ[Hqִ(O.Y܋7l|ӟz+_ZN<|.$G.|WU{pYHS?};,eݺ8e!!Qg=sKa0"x@,| rCb" {'֮A X XrŊrY)̿6 `]ufj?Ɔc~Ze֘cokKMXGg[pbf}lXA_:cs8Yӏ9[w^c=v.T!O88눇]#q&u`pYwO<αGOد<1yFg =c3Fm5Ў<=E{@ //|mCl{K;;CGutcs?98˥^'?/QH!!pرcg[*wo'xbYүj3(oxC\.r,cy@ۃK &X$K0Ym7^7vq2:tkSH 8,7\Pk(a2Pn2(aӮN0 uchaˏ y{>Q0̏=c-!&64=sSM 3ν߳။scOpӓ9ˁaYs/v4o|6A :α1ٻѱO1:k|ChϘulybi|Ν")Q뭷_Li 7]T ќLaڷ] (!!!!!!!0MRa~_|VX6 k٬ukOo@@@@@@@,R,_jUٰ~-%_m[m\XVbaꇙSl}U.D c"{3u}~3>:ha>k4޼WִamrL\gbp<6zGO;hG, [?Q\!!̏b^gs?TqޜC9ӯ޴2~(g?]9WO,ϻ'vF)r-7S>˖-D֮-{_nl~('P mثq '!!!!!!!0ukaE{:Cm:n 2S?\gmwﯷR/!!!!!!!0K0Jڨ#HF 1s\o2=:\ׇ4%~o;3f՛zhb}EL|YWWmgѷ=v /czK`G3ABi fcwn?$Us 1@68Bp|21+q_0vroګ3Ƣ7{un_MZnGE-[\w}MW|v}ʎE8ވ?Ut \\+#~\K4\moЍ^y OPixcCr}y_Ι{oNqe !tzw~-?>W}Σ˩RcO׾^6]>rw3a>O,|')̟/R;hB B B B B B B`1 ,|q˧>vUͲaYw~58C B B B B B B! yuk/o(̷FeJC$A=S`lAYǞ1ښscO꟱%61wgb'Ꮞ9}TU箓7`v /Tܐq uk=kBAMT =>gk~7vظw?߽a׻_\9e >?:k[-wQ5S0J[>(P_rꪫ7r駗>i3ǽ>?C|lٲr '맕u 5k4^^GMuWJ9Sʹ_~wsor-ɲ/~;xiv;7~#O{X!ښ{Ǟѫǖ{]51uf.8kڒmOOa◼xo& ZۺukM@g|VwX^^K/+_g\=E =[Lm{U,u{}-j[Z.OϺ'?_W娣>OLٺc~{~l۶\x=[Ǘ-x+Oy_˅y>Ox_e+ʿ{ ʏH@rmnoۼ‹_p-?c?^xj'?iݟ|q㇚}hy\֭_7@')?Pb{Oad%B B B B B B S-;o Uhj?Y~0 ["ׇɓׯ_K$B B B B B B B`baZozY/hֶ6 *#H cZ/)^ĞuՆbc?ԊqX},t䠷jo:UΞGcy: B~Kl>-w(p7œ8 s2wkCGq'kG,lCϘalя4ֈf~d갍NrY36"<1R8p/ߟT>?;WWMQG?6=GPN=OS>|yOֿ;(gt{7ˋ*wo0ZU=1IW߫'^?Ƽ{SaV {=]w=k??Z~jso}_F}/(worVfvr%_')̟R?B B B B B B B`>A;)_W"@@@@@@^ba>5֯[k0Ѣqꈩ!f P(ldžc}stvi?zu9c'q?k3? 9b_ilNDZ~a-6p/;F?/a φsx^s8x09Ƥ 4˸חXǖutcya虣Xu؄5X17,#?ks01hGv5ݸcJ?毨?{?rO} \Pn+r'.6߾}G+ڼE򗽢? OJ~ޅ/GyD馛˫_r7c}HGk?ȏhyѿQ-矅RlR^ה︽X/+/?y|)>ws7׾g<9ϙe wa;-GA _YOƿk^r[-?b7@@B~˟/By>k/J?_7z׻~NٟlW%oQ,B B B B B B B`|oq$YOV_[ o JÙR,_re9kú zasՁ:c}Q{5n4}o=1|ӌ64ۼOO$6 :l̓s#b\k!M[lAo]6~V-\Yy9<$Ehuz}ƁC7971]Mu{@oN{F1Ga{s0GX'g՞ofƝ;Y0:<[a8,/ѯ6/}>m΃# -_/l-&[WLN}ڵw;7dy/(7|S}-O{W(|}ݵm,'?*zj{ϩO]wVY^??~SO?_x_}A=-߾<я.x;fg>[75K_?0~~9?~~s[~~ҥ!!pPm~8|V sǞcߨ2ip1ǖÓ6;U_ei9i/e EhSb!!!!!!  [z n vN+<v6X'[`"RŏI'׭O_"pX=6}~ s{rZ麽G3?뎝㏠K;װ7?6g|-9cq8tg-`g-:l-lr=119h~йWb05K>gN>ɚ4n6cO<9y2>b~AGvk}[(+)̟O.._<)̟$`Ow?GWTWOzlyoM}Oo|cyOi)ыxP'?oW_x_8QG>('r8[O}ueˑG5^ wZ?| _([~)x |߬Fy__sO-k^[>-e]V 3)_Oae@@@@@@LR.̧:Ia4>*!!!!!!$ W^U֯[{Q=ZbjUYwzba谱9ĥa1.spG?6 1؏uXoMstb, ϡd~s~d!sxA 6'^s ОW !C;|͏{[u Ś3w؛'`~ރlI6a6y4ЀNx7Hy\qlos_c8f[{t :sл/ͯ ="#̫7m腼:<1: )^VpB '>O̷0Qn>n-^o_1 ev}Oo˛<<=}0O.UwE@IDAT}nN:q7(B B&|lxk@')?Pb{Oad%B B B B B B RϽp?^?X4}}[aIٰQS^C B B B B B B D` _X\WOB4ꇩ-!QkLѽ5ɮccl՞zꙙcO3?:Ę'g 1e<0gX^?bۋq1['ba2GүusnF<76z_̍ vf41}UύX=~Ao z{`;>pxu$%Ep@&ikөU'mlnV4j+ՙ:5#V2dXJts/XI-Q#OSk&qmUdUKlAa׳lCw}6~/am'|c|c~0j_~K)ĹWGâ8]~7_om~g?1^~ݽ!N뮻}u??_[$a?h=7ほt=ۡ_?'۽)K_}|icl7QWie4e@[_Wu?co>4:}s~wU~U?D'O>t_rѷ鏊N80BPE?@@@@@@MfS _$|c>_T忲tDS*B B B B B B n\s.ٳQ I9 ߚ3GH.>a4yq= -}czkđ&q!Xezse>5x_l4M9jNxh=j"O-@|qg#_!1󨏑~^Xw;~ы<6XTߘܹ/;|E?2UN~/wWWx{{;ozӛ7wo^wO w}W?ݻxY ;bL!!0+w>:?Xַ|W|_>>}2~k?V&o*B B B B B B $/Jo*C B B B B B nT(߳gOwwxyΕG4eumAwd46~4+DVÌ~ј~ꞵX3Kˣ?5蚺΍-0L֌85ыs؟}tF1Κ9*2׽<^KSikړQkAg>x0gޞNm bXmYG=O==71<#{G8[{:=}-8| 73E? 7ӅN~~^]zW5.o=սN>]B_ٳwk.[_re|%{K_Ow__WLh۷o]??[}?#ouY@?j=hkk:^MqǿG5BG?9D@@@@@@YDŽ<IXO`{.v|ty-a~hf΃ߥHsct?֎Qg>EOOcSsk<5X63_toYcW0c])~ƥ=0#k~"|gi_0ԡ/D Ϟp3)Z˵Ϡ}ijhm,Ԑc'u䩣sh0oq C>Qo?_~Iwԩk!'?}c=_u?7~bԟ?tﵯ}m=vݶǍw:hI+{EソonKd!3O_F/Qct/_d{ԟ;s^/m8082B B B B B B B`;Q#DYߔ_fW*/|e -Gaݻ{]z9]ÏcRh4KȜA,zhh}X}g.v5=#&9<LJ鷟~jk&>f Djx(у=q\/+l Lx{ya1/XGjQ<{i/elsHhGVV0tkX_R ^^>ov͈sEqH\SXOw}vFOf'?sL}Kg^[6zw/|{+_֧?cX}W#g3;߯k!{G?:}o['?x`5qv\/_,OԷoݷ˯#sñL -/+ۥ'AGaB2C|c9W7G]. ҪyVǬ辸:c_S#=>ǚm}9aTmk6?kgχc}}iXs?HZ{/Aϡ0cgX,k q:PA2i1o{2Ǐ)ב}RgԈy{П 39wb ?vыm_<YÀRjޅ[Z t?3?*VϾ/otG??ڵ wv]]56 7wu8 o߭Ov;~n=ݧ~S q~{;Qݯykw]!{_Uȍ@@LO ٍgF?N$^702"ޏX@@@@@@@Qϗ5Y:@Lycthcc1cFb"#g=s%]2:mͬ5؋=>'>{<5#`,{̉g9k[>s'L.İ.(U^>-txbLyka}ok,<yӗc,#a[zNf>6?铍cXY#^ǘc"h,[cO}5s~\myq6{^ۿY7LΕbc-" ),oxaszmf~mJȨ?1k!=Ӭk+/39zO31'p{0l7 vV~Ⱥg/}q=xC>ĹWGâ8]~oGB`'}+_^w;?JbƯ͎0y@@@@@@l?#OY:@@@@@@(XyOoG)Z}ueO,bccgTLֲ߼2k-O/k\b9 =y_\ŷߴ|ӉMr\k̽n2'k/d>G?}o/u =# N⣯uY{6߸R F>gn.O?LYMl+߶[y]Cۮ 笙߂^a]%}|c~/Cƛ_ΝuCPwm_.٨S?B 'apL#e*@@@@@@$nDa>g>KK&AOaBz\-Oii)Vd#=3iVL07L׭o7zgO4xojkӮC? s]u#f]m񸫮BW {a䡬Ϛ{AēpBVE]L?so>e:꩟emG.voɷk~jb0֨d;UJ k@m=Igڮ]nbZ~G?F9stݥK;]w5m40#2@"iñL.σ,= Ą@@@@@@@\< _?t۵V+G0-2{ʃXϚQm2sh>sڬg#>Z5<9[~W͈YocQOe:pSó'cr1oɄ"`\{shK,s aGxf b ^Yޗi|'{mM9/Fk5G~cGWV8o=o7tS:q# g?v K^{%'?W+_IR!!0%w%FG̣07?\^+Zbj(Vg+S;M [ }G{eeonA<ñ'sCk}5a=m0cڽV_)U`m]}\DYbV̜Z~po?smk|5#OO|,1pfΙsۗQך0#++Ο_zlrq{٪gwo߾n^^WoK"c@@"̟y_$NG̱0&(VWM2Zd 1s˃ٽ2fFG̜HssS@]vܳEt94ǎMJ`WyrMR"_#)D? R"L!!!!!!!M"̏0>Z)!!!!!!pGaݻ]'kEnjW>1cbsXWÜ?1qg<C'm [5=r0jPXC=~jX=z1M7$p(g-F's@᧾f3R93^a1?=kkg9og.~?>̑V{?g>=}ryD-< <7l7"@@@@@@l#ߞOV@@@@@@܈QY:Py{Ex}1W:dFSsTԎ>6zigzǜ%*Q]iL및Y<k3bfxcm<Ȧ8 }0AqvYaj-jyFŬۯ.դ&Q6̭E,gl_BF}k/ߘv~c>19ܹgmK}ž=[on{DG!!!S0 hDC B B B B B B`Da6}R6B B B B B B$0U?V~=6荙SkǾe][h,ֶqejۃ:ҟ8Ok`d-Zz!mr2 eamG01k>ALnkk/1b7?QgʃivFhcTw\5uXm m.1mm<1RC>{EƖe5 w"c3zG{w_m>e(:`Ϛ÷q9(ۗ˞y!8ia.TrrTueZ51*&:j+[ժgX˴k/3#hcZ뷆q5p.'bkkЃ5!uMmܪQ 0@pq1/0E>~oq>İg/\=k1##f g|ѹϜ̱sO"K_?vǀd!!!ioن o&!!!!!!!-"̏0[>X)!!!!!!pCGaݻ]+Q zerU5ʭ0=b!ƈm[^So9#j-4s=JSs۫SBY3g$γQ߻Fϼ!' Ị0qq[:|rsgF^_Vkǃ1ڗ\Þ1ϩy?jVVx9AxiF/}|^0F?ko;G-muhm2F/_sb0}׵9>rg'#{0C?bn)][~tu+f/,ߘ?Ko$g !ap2XR@@@@@@LB '$&B B B B B B &!0Ӆ#F$̃\s3:c| oQm.xĩgfZt3?u=zhjosEMrWunw1i?k{1˃0>~,EE?Ko$g !ap2XR@@@@@@LB '$&B B B B B B &!0{Ç>X<(]fLUMBu1☓昱J[Fy([uϵ5gbCq+jSLm|؏9>Psi5cajcGܖ[5dw:Ϟ#D-ӺHYk0r폟|`4nkolco~ca}Gn/(LE?"#ap4XR@@@@@@LB '$&B B B B B B &!0ݻwwݻ@ۿ9:ik:g$=k yo^qU#X{dNMm^tk\Bk_^\U}bПs8z][H 1gqQY"P?$Qt½:~1/X@@D vñL@O9IL@@@@@@LB` {tGLyΕ=1^xkrv_2X[fP-qh,3HEc]1cs039W']'sb.>k0Ї=ٟXO6v^ڞ<ρPm 5< Oe`9s.9 }.c3x/&<!?ֲͥeƜǾ71<}X{&FVVcy+ Ϟ<<7'^XFr.#e*@@@@@@$"̏0IbB B B B B B B`(_XX,z<]ŠY#QEg᯲2sv_4c?51r1h_}&5\uՁZ]6yGe,fs{ZkYcpG=Xc߻ψosQǎ/x,+ߘG!!!S0 hDC B B B B B B`Da6}R6B B B B B B$0oWVyy3?[C{~dVkyqjǞu}G듏g]W#f;gZ`_tr3yb1<ì=Fsg2EcG~k9y/ςZe=o/Yoh6 {!/b}b8=e:/CN ٣k1g2k|xk sþz:g)>6z,=<(3f.{+9N@@{2B B B B B B B`G?$1!!!!!!!0 y/,,tG!5ȵ?{=G-q5d5V_{|@4kya5yߘ?ߘ_(̠"̟#@@0ap,S)B B B B B B &!a~|N!!!!!!sa(BoU'*f=%3uq^\#cC mXǨZ?#q䠉nc_5=bv;w=3ީksF Mk?G>{<9x``oFcl fq5WO]z؟x>g}njs>~m]{2 v-ḩƾ۟ީA YܣT{;|tu,E?Ko$g !ap2XR@@@@@@LB '$&B B B B B B &!0ҡ(3A -:jE V5HXc6Oʹ*a|o۟;KFfOsfA<{ֺi>s9G@%Kc^b%N1;1W&1G۳1?10'~Z{/[GhlvGWVf/8Yz#9K@@{2B B B B B B B`G?$1!!!!!!!0 yݻ>try< ˴j%F̃a8ڑ|4G5gm*-~G&e5|>3j{tV۞RSM4sbyo?מyM^!3o}p&Nl<>FR&˴Wguu[=Gf>>j=/q^6ǾGVV(%k!̿g9K@@5 {n׮]k _Ο?4K9U?Zد}-"̟ۅ,@@@@@t0g!?qQs2fxcu_y?a\r+9FuD!!!!!!L` C|c9Wˣ]'C =).Vl#f~ǚm}sAx>}<֘m~Ax}|=>G'oKFZ{/Aϡ0cgX,k0q:PA2i1o{2Ǐ)ב}RgԈy{ПPމ}˂[ʳG/^}f@}W^0]_?,ֱ^3s"wñL+mK"̟ao%}Id iQPRʻ8S1]1ȈsxX3a?sK,V{֚sr~kwmK]Ġf~ќ}rN|f~؇}Ʌe:⃏̓O]$z /FM:= s1<}0¾v[5ga.(@KÈokkٟ=Ccx#+L+0zW1j#̟זC@@ ap)XR"ʿI~zھ4cZ>q 2^oEL@@'ap0XR"̿I`,۵{m cXMe._gd3aiy^|.k&WB'=e~ ߘ_(̠RgH!!! D?;08!(?x~϶0q!!!!!!0;SP(, Gi)Vd#=3yiVL07L׭o7zgO4xojkӮC? s]u#f]m񸫮BW {a䡬Ϛ{AēpBVE]L?so>e:꩟emG.voɷk~jb0|ccǖJ,/*Yz%9K@@ {2B`^ Dh?o6 ^"̟}af?oXC B B B B B "0ŅniѓyXMijO&2uyC=r+uE,f.s_ uO=gb\+Q ?o{MJ58lbĵ r]u|-`bCv~۟cgl]ܬy~zkeYGP5s䝝߾ք'YY}l#̟7@@0wap,S)J L~@@@@ Ͽ0V> &r>s,P{<[QZd<۟{gמ,GwWOą ^rFr.#e*"ȟ\B B B B B`g0?kɍ@ZOvQ{{/,k41#KUw=FD昇uĩqǜ8ƕi<3oFOFfF=:j{I[=cn f"}zPcaụ&ffM'6 YQp Ĺ\9P0}o=Gaهat0Ì>bXch%o:ęߧs'9cO|EcDa,%B B @ýcJ!0 򧡖"̏0z|#ο3B B B B B < #K*N5+F_2#}Ƈ9*jG\[Oc\4n3|m=cNFs.swuǬ~51y]g6mdӉc Z^m>{8x;,0ra`_XC 5xƖi5s.?]ȝ+rT}XFp_6zlb32Zzkrc=][h,߸U5ArO}'5{0\FHm Fr0ޟC eiAX[PF01k>9 ]5Z@?^}Έϳ_<5s`!>1mk0pP 0^D!!sH ^jñL 7C+!!!!!0_"̏0z~#ο;B B B B B '0nA1HS3G2}ok Dnsik!GcY}XSÿ4@6,ٟ9=1k6;zrSXK< >s|eX}'bN9kBe9 Ksk6L$i3^鏘F[0Z5ܮs9^[qt'njV^9 yI.)Ro% G}!=+~}\џ>5_,}1kP<~gTǗO~beVY"K?];?p_m^ᇳu^ۇf!!7{2B`&G 磓!ş5l+oN=vyC B B B B BQ{{/7<]zeFƳG:d}k ]}ʴ'm&G y{'9jI s޹)!լςX\3٨tfg^zG{rX,{%+/곟5!W9&g?>^;LJ9ZQs}1㙳O,ߘcǗxQ ]Atһn{OC]=D?/;kL G?T"οa&;!!!!00'~c~~5{jIN!!!!!Q->P9WhFܱj#msAFd~w<3ϙF#W:`%׾ưg {sbޏ-_l:^N^K3w15Q a<>kG]>oy@:B B n#e*/Cvλhd缫4B B B ndwݑWbWEt{k:B B B B B B`\9[tĈy!3buFg̃<ͥ~8Y.zFgVM-mI.ʴ.5'e}1xAߒQl(L ~. <ki#!Z[óRe G/f>+Gė&a#*ԭuK$v|:I*_'~'4C B B B B B"0{Ç>X W%;0#>Gǜ4nj'k#c<{Wsm Xckʴ?S9c5sW5ӏgq[2o!y'apo8X|ϫ rYf S$B B B B``Jc+ ۪ \W{nM1PA7-ٛ=b9Q@@@@@\(߽{ww߽KgLy#`ޚ5x)5sM8k_3kao |uɡ?<<qj~ cxg?5O>zFӣS|0'vkwL,2u<k2K2Xs1`tݺxr_unGm ?Zޗgʴ'jC[sW1PAŮ)םA}o~Ɣ_?,E@@"G?T/wߔ[N.!!!!M ' :2zD@@@@@@l< *Δly_FCfE*cjNs039W']'sb.>k0Ї=ٟXO6v^ڞ<ρPm 5< Oe`9s.9 }.c3x/&<!?ֲͥeƜǾ71<}X{&FVVcy+ Ϟ<<7'^XFr.#e*yopbX'9 EϮ0K~OvX)GaBwdЃV$*:c Qj|Al2361c>#hb4|jwmg-|5è}g.>z.f D/1׎N߃3 Z=_f/5S˞ְw٪&t1s:GX#>cxFxK*?v|ŋlf@_Xۈ9ܫ#kaQ}.yg!!!0"G?TqzK9zݹJ@@@!a{[3:B B B B B B`:(_| `?#c8ꙏOVO.u1jv}'jw>qgt߹k1c̱?~Q L6< >f9fUrC<5̱=yyVj1'=K?gM?ɞnO=z3?9Z{N@bOhn!!!!0/"+}˩ @@@@@@H`{.v|Ly*Zb4hyk+Q1~zjc>q<‡Y{Ze:lF?N/D? X%0OD!!!!N nKDRB B B B B B  ̣0aa;tay<Ny&c5/VྍCkxy}m=k`hgυGve.{\ǹïNsثlMgت!V"<䰘W} ^a7=M]mO+''\o-xÈ2cGWW ^hFr.#e*L;A>a'sg~r<o aI~7䞓2K\@@@@@%s,Ty{hy#V4ȾOV3{5cm)=3ky&sAi=jY3`gsI=srmͺG y_0C-l]֘@}/`}P8򭍟59c2kC rۚ&#fڵYsg5=Baa )B B @ýcJ;*\OMN!!!![#a~W];wWߕ!!!!!!pus.8[E譀JT֬9dF1΋kdahCk[g$4mưG ng/X;cm.~֨birPpgG35@Q `xbmÌc4N? Cs~oqǏG}²^癰,a,!B B @ýcJ;,"X{OIN!!!!0?}{j\!!!!!!p9yٳm/ϹFWdeRUt_:|`6{u7b3l,}f9S@@@@@y/,,tG=PX?Q~ȁ@A9?PG]y٪P rg6cnmrÜϼS3m3|gNƒs9G@%Kc^b%N1;1W&1G۳1?10'~Z{/[GhlvGWVf/SW￟н:~1sݝwܾAV!!!sO ^qñLCcƎ{5a,yV#@@@@(ƅjGQp#Ms!!!!!!Y(߻w;|<[eZKAkujgdcH>e|飿g691G&&k1r&E}s{9f;ů4¸fdq'.ϗȚ~FKBBrϜ=gS5ֵ0 GM\uڳPCVu۟x6s׉Cle) A}Yݫ#kaQ}s#_7AD?܋083_Q&Fn^5 o_]>l;{Y{߇mCK'(߳{wwKt}<֘m~Ax}|=>G'oKFZ{/Aϡ0cgX,k0q:PA2i1o{2Ǐ)ב}RgԈy{ПPމ}˂[ʳG/^}f@}ǬwvWGâ8]~:d!!!0" G?T~_Mu`'݅ne%8B B B B @+W~=_ػywv7=C B B B B B`Ṿ0aa;tLy|tňNcc1cFb"#g=s%]jZsNo cb`>^Ήo׬oϝ0>{ꊋtS[L,~M}Z2kssb^a~k쩯fnbO㜼QoM Φu?`\k5kf~ЛɹR,uŁZXs!-/lX[CߌOmV 'z:g=_{uQ=f#/%QjIgOvA1K#`07wݘ?9^(k_V׷Eh2F#`0[ ?O7f @:ͼR'YK73Yi'Oޙz F|x7\"AvХvfﯯ>]ͮ+_]~#`0F#`v:;1p o̧~bUk!,챥Xe13K_9{|1U,ٓCعzUW ԋ=2&%9hl9lB -rBʣ:TrXc+?]q H\k&> co9rL1m*bLJ2(}r53k~X'; ܘ+#`07wݘ?ijƧ](c_V}+>D0F#`11mf3a~7JWV>վQ:0F#`0F`+!V>tm0>3&a9#͠"NĹ^vՏ, ቓg8+.6a'5~+G-E>/ۼ:Xa-^T2ʯ`Ry< 8v lX9G 090c,ty @ұ7F{Ո ^dU\֪M(I$"U~xt~/7 qQ'RD6<.άa ^#`%1 tE 66B6:0F#`m1?wV{i#^d1F#`0F$vfcZh?xuNwqoU+b5#?tiV?2v^6mы_q_rOѩ_MldycB.9?rlȵGKR\yҮw50P0(gAY:@l[х".$9G :.V~: k_(W>Uc=zƳeJ eD2jIgOvAUw-F#`67揇ґ6xNؔ3ن4lFsff6lޝ#`0F`k!icn=+ 9Otz/7F#`0Fl5vbcW 0[{EF|: EY3R&=<’7/[f!/əue׋iR\䶎3jjIgOvwcV#`F!vcxX:!7UF^cvoHq0F#`1Oc5XI1Q׼:ld=Ʈϓ'o Xd= TdA $. }|.ωAX]KܑJ()l#̐iqE_3d1j3c#`0F#`;1Ϟ=Փ8|U0`N3*w]gD̃ 6;?"3Fv=7;HgV=A!C:ʯkt@  N|)'⠃8#f0)`́(NxٳIY`^a`ʏ r1K kʯzV`d/q/rލ[R#`0ǃ܍aH"\(ZKk=bsnZViY,#`0FFc~\Y/Y殽,"s3τZd_1F#`0Fl7vbc}Çq* z5xrf(3cVq`-\[y s_lج_[c&Hzt4@6,#)? | ԞXCW }GҤK8GT5zxd Oz~qO`6! TtY \+k6k埈bLcT䬉'=6=S<ĭGN%V@ ^I>tř5?,o|?Oxcv]0F#1<ݘ?4.0nȹ^ܯg=c欴 -ӈ?vԽ>uߛs#`0F`'"P7懛p~t$iz" `]T|!4c:8vsq#`0F G`{7"5^x8ӘNdy4; Gekzvڡ7p?dʵ9gTyWMCe[#`0F#`v@`'6ٳz }aA4_^dQa3}$rE.'1?6IJy>lVEãg:=DM0g? F֐^ăgV,fkoNJ4sU.s@ȱ6N|cy56ʔOVY6$ӜۉWLjW~d)]#4+6H:>T =|cGYA$-@p-O(]\9̚7>7o"0Fl(nn7揇#@_=̠]/׻1s&ZiEVϫG yTF#`0F` 9p̻e稍<-b:h|Ct̹N[>.:wXhv]5ZZb0F#`ؾ}U6\q2 +L0$XӣrA혱4٫ ^#4!ɘdS34KHyt YyU^٠ '.#.*W$6ͬMKL kEcލ^#`1t˻/~#jY5gEhhƪu-Rlϥbcr0F#`6Fc~q燮k(ie(rّK^2Wb1+jZs09g\2h?pĭ7uՄ+fptյ|D{#`0F#`;1U& |G4GOFu?LJcfc^~DQb(n8?cKldZFdѫFD|W~fP~bCKJDUI)N^0f5cN !Ï! hz:f| #_r`6]~ߊڰ?^򡇈ú-|G0=vٳliK EOZjĨm<dOx7zi0F`W .ґC /纴W2~#jX%g>kX%_n9¯@~[o0F#`E`5懍J\]p;K}((Ϗ08ֳdszs,lc0F#`Xovbc={']qa cy[#K@IDAT!^r?M.=[$W3zY+?<}ҪW+CX3_~A l!<ɷ4iK8RPL6pX ^AeB}g@ؑ+ϯ =|=3]Cȱ6fɱ^r.tQ?qM5([I>Bř5?,o|?Oxcʖ]0F#A1<ݘ?4x?m%Y29,J} 䟗?̋ҡqB0F#` oB~5DߡImgJY;2Pz\yy}WMG0F#`0F`؉k{V_~誀a ~bN2i鱁gZ}}T_^<zl#zɯmHOGZ& lȯ=n\dQP!ᙉfX X$<Ě]`0KǬ FeG2?>+G~qGl:)?^_jAZ{ l叝|#_%$.ӾQ]zp 5⤋3k~X';x»1F#`v nB1<,i>m/׳!9,J}Cő} mr+XWn5#`0FlCfM>?3:6Gsϟk^[F|:y ϼi1K$Ɩw5Ke1?O8&J{)i3hse`Gs10y0_$]6UӐ}#`0F#؉:pm0 CM/CL23;=4טӱ| xM#ajffɘ>crBzL369C!+#f!VyZ!BO ze "CGI&_dmx9R弓6I1U樘G1 tR]0`jA.+r*rHjGaSq{=k>ȰW6^|_䈍G?r,Mw~gL?>s79w|׷V]z+`_Nd*=)m(zpފ#`0[ 7wAܘ?z1$.gyHŐ|]fcp$_61 ĂRϢƶ3F#`0[7OLmgE:-r@9YǪ}^c*Ytg󼜙BlWBF1ib0F#`@vbc՘2ɉ]ѠK093V|x[)}`o/$c~|⃨Wþ)9,fN~ҋϥc+)bQOi͆Ylav](a=1䣸 ٩dAHzW~S'6ڠC=!N60.;qmz+;~կNuM>14W-d^F\$KJ$<|.άa _0Fܘ?UvcxX:R?޾lTQИghц\M Pg .`Ҭi& sp\;#`0Fa,֘_9ӤsBIS$©xRʩO'DFtf*w5o?7|cmg1da^󙯛#[qc]q_}WM10F#`0Nl?}ա g *38tk.Mȧ/ుzAˇtD? ?zG=곖\1s[끃Ś8b d_W.7Y&AOl^F V^ch(hn'ȥ1S52HsWsKqkW.c|ֹD‚YȞ}xtqqh?t;Rz"s"}z0 5ޤ3k~X';x»1K#`07wݘ?ԍ@Vص 9i3zu;gj6VUO>#\}oS#`0Fl Rcb3=z+oQiO "9uj |j=o jć4WաC:Qs}ڕ´];@VzuGi:Z<2[n׼-止|:m HF#`0F؉kkkҘ0 #=H=`ƚfՌ{t0C<@.{&#g-w㡃()BF~bHy>+|۰׾Wm.t7鐫O[u(WP-GXhVg# ")Ril(9C]il 2c<q[9F|Cލ^#`1tv|j]KchL0m14OcuaUf.EƲX"ќhjz捀0F#`xl|v{4sw5K.Ir٘<Lʳ[P-AVLwȋ4[&ϼc*ܗ0o]vgi]um@j0F#`0Fn̿&sk|=ozBM5ptdr[cax|Iqc ~- C,!/Lk5';9k|C/Y+lC7< WkBDX9z}Y1ߘ7|cOvj_t/Tm)Q8-]ɓۿeӟr\8DIy&]Y"&>ލ%^#` 1tv|jݤkX&6jX&G_*ya&Gr6giZe>0F#`D+TgYVm~1М}msksn3}]5E1F#`0FlQvxc{Pz@CʹB#/usR<%3㇌0F|Մe`Z:f,;|m? :lW|X3@q<<—#/G񕏊*7$/GGkտx@G .` Ez챑m 2Hv̲Y5AՇ_qC>9$?C.2 GY}1~tݟn?UwoƿՕ~Fu饗_{wŀ.q׿̫mG ^_OkwU}7Wǎ. Ջ^5գZ?61IFmC6̚7n90F퀀ǻJnKGE ϊURH8QWe즿֥UX1kE\8c+ .%J-,2F#`0sq2ߘLǦ96U9[ >8W0X9u>?2/_a>|8lAAWM #`0F#){VW\~Џq2 Lӻ iVoCšA߱tZ}|?=ҫYoKAUtƗo(ړOZWl(ʐS5vb G=.GXOT)Pٔ|IS cu,埯4v'B/{~gT0xuN'zՍ e{simGgϞ^ g>˪}Hi_껿ukӾ)SnАZ[iW^p_6)ZU}EmCbq:ΗVa5Ǭ3yJxuo^f #%մ(Jrm$&c/ ة6c8$rVbV:'W~|i?Qb׾G8+26Յa\z-GΜ3ۓ߭# 5_[=j IU&__}W=M my&]Y"&>ލ^#`1t&>)ZU|CbqNGmMC+Gʋc&Ҕswc40;MTB#`0F#|7;L O՘dNkc:绉x:z8כ}8!`ؒsP?>?*֩&r y9 efji-B#`0F#`A`'6w޾\ - }a5 #㴝tc9ӣL~_Su׬8:/j"&=֬LMWtbjOZ jK%ĦU03k|H^rfK]EKk}pTFFL'zrCX>y~9=,KNrbnGg^UթSO~S3y#QϯgU{,w71x#^]xGcQwEVo|3vaӃm]8EM|' x4F#+pcxٍaH x`/ǬaXOQWSâicٜ4 f, hQvS1b7MCiE80F#`F`ژ3M=A7"g;-椛}'i x伫V#G.CɷgsZxAo >mW^TfFby]g2z̼Sn_nq5]uь0F#`0"+8mabz&b4cf l=:OlF+Oy- vPQ*X2fB>f6~psask~?g3=G?U懫g|Uu峟Q}7xCh!K%ytqfdOx7l0F]ǻnKGJC<F(bH&]0$>:YB:Ռ)}vEsKȾ8 %%,K0F#` Иf9LaI ~iOyMs噱-YHz-#GU-)q{DmԚ0ȆR߈sjAzF#`0FNl߷o:| ߘ0NAah~4ˬ>f5cC5:5Y>̐ߒ2W>?{マ>hkؕi_Tdʣ'BP,[*h*T)Zfls5ą1}ٴVyr^U#~yNx䐚Ṱʫ=tQ?;jPSTA ؉#g*}lοiOVLEO- 0ɽ1wlk>t:BuE|#`0Fl%ܘl_;g-Cvy2[x-"sk`nF[ZĭVp̞[rS6Q>:Oe]sF#`0FNl_[[.?|asfSk%CO1ب~x_F'_l/YjZ$B\1k<ʏ-qc!b ?ZгV.׬C8ʃ=A;5>-M*|QƈNm^$$/CWC+/T~SGWdy *|U'뒔C<|K܋¸o9$ۄ7W 7YRg>so○b>~5wU]Wi_#`0F#`z#[]qn ȯ)QXC}%C licZʬi^!sI,[Nʏ<#|ߚ& c:Hu/ϟnjC!>mQ, ž <GP/ׇ?sI¡)wٳW.Rg|TᏜزV^Do̿[n<}Z{֞zRy͵_W}[axp}Μ~K7慨\WeEkyzDjIgOvA1+e#`07wܘ?5R_͗/ǨaH "%5( '(!s^@:;cm}~y=9o#'l֔팀0F#`v![1y9s ^p0?A(9tpZye[<NZ˚5]j_qkԠ7V]O{޶Zk,Nɟ_3ݐMXF#`0FMF`7_3 1^d9kq~"[+]6/=^HK[Œ=ȏ=Oދ[u`O~@3-ь} `R6( @^& /oH> "gH-<+!١Lyi-5C/Y~W@dȕf0.9v#gΔ-Lxwµ}kտWz#ϿV_ /zT׾E!#Ox3o.仈Q-O(}r5Ӥ3k~X'; ܘհ0Fǻn)ޫo^ίRP_!%{o?$~6?O2[y]X:%`2s^v.gfe^k#`0F#ۥ1tPۘ?y;ZZX+G`3dgl6c_kz.'8*!m]g֔Y,m1[d;.˦+gF#`0FNl_[[]~ͬw 4 `Kf\/;f<РYቓg㟿]T\lN$=k=DA](l>`cɆxSy b+fI;v8(,/b1a921XKZD؆U#zj'ϧzWqY6 &WUt;~co_O~t/C.u?'s'H/[>u7zOgY/z*EE /j06:%9g!&>ލ^#`1܍n*5 RRWC Αٲf8j)hG?MQV]9G F#`0Fu@`g6毅W 08kNOAό:=`F#цlG~i2wEY;|I>Hu#'6G܁z}Iʁʯ\Z *嬱^S9i`CNtyLE!P<fdș3th7Ux͍¿_z֕_ސx˛xF&GO 2[m 3eKu<'E.j@6:%9h!&>ލ^#`1܍l*rhaHLMu β(i*4#Tf;YM$NeEeF G][{]>=0F#`v*|q'.1?}>Dk< Hzui;yro̟5TO0̻ 1GϟcJ̌&[%mgZ҈%F}޳GPk)#⒲=463Xk:涘z.廞篮s #`0F# И18[5ޫ'CzT%Y&6Fʁ~_ȯX>o:'}S`dATP2?+?_/+,^K]mumLm̟wi΅tYnƮhce,u]VmWK`Mc-әba1ho8̤khӢ-^Ywφ]y[#`0F#|qOU;øo)=l+.i"Acza#ƞgfiF3S}Ҋ!rŃW '=āЉ/PtG~W &9P)/{6#P ɐ_4 t˞8LAQ.fɰa YU֊LC<vEGi&'> 㲣Np,ۗ&nWil殻>Z~uCַ׿ڿٯoeno@0F#pcxˍa#hk2( ״zQ1Gp~bq&LvӀJѥZ֓>9&rinlbϯ Fj1Rܴ$*&z,l [j\L꼊aߘvI:sSUϺ˫o/ލK_ ;#`1܍:l|ٽj!3Jjk(sHI&m:dցWMº)fe%/,䴌x:WȟY2˜7u;0F#`C1?v}ӹVm!QWZmU?drK2}m9jćU٘M87bI~<+&iD"sW.)ΙŤƼEƚOoCzWYƇZ q%?vʃ;W\!]_2+n`c,S|C$chJ"vl[lrV3C:$ 6O%Sp9#"v HQv[211pzm167ǫ[NZWo߾B3e,g>яW~թS>^ï. {znV/T_nU ג(s5ʤ3k~X';x»1k#`07wݘ?-RO_M/ȳh %5ś9$6ٕtVTl$I["c\*m+.>mfmZ,º5ѩYVpnF#`0F`nOCوud'E&S'y=Ձ;F(|v'PMrf{a8jF_RY s}^ksc0F#`Nļ,nT0kpU93rz1OX$[ֹ>,-</ج_/31D5ףcM aIY) "jm=j(tȖ&%_:đ8)>#PxN~['g ^O'^X/X+Dc3z%gMg/t6篅oO6ZvۭWo}T?Q˾Ez _Weoy D飑xhy|s?OxcW-F#`6C]07揇naKU,꟟MxShJ0O풾\ﴹ\_#w")IvuL, b͸gF1!j *Zܲۈy+ղu#`0Fw:{s7D$J42=;$Mxc}jO-M3pP]bÁhi}%*u.φF !2*eB96/NϤyy1^,΄}[ٓ^ˆA4֟}kFijiZΤi;,f}u3;㸂/ j0F#`Xؘwouh̿- 9:>f0C8<7{QO*R:';c\|`c~*rW~`;xQ.W ٩nU ty r(`π$niRGbhC$Ԥ%#SWɃ kW.zդ\ڏC' <̐b_~ʏL{\;~˻Μ!w]}~'P=_ߨ>?LK{TOyʓs?wF{T}:W l܂a!7zm0F`7 rDZ®|jE9WQ8X,蚑q[ iSMސO:rT =|cGYA$ۀ>?~T]K^zu]YaN xcWF#`n1<,wC_h/Wea]6 !F(DU6I\9N+7\_G0e>k\Syz*i&D'2u}Aа5#ih/ͯb~v(oMF#`0|n 7e#G!HH5Ǽ|*ﯱӽti&1xQo;󱘼ӉaqY7 T1q{}2q5rRY^ 댆o)Pҧ8wsGɬ2] e@IDATÆNKښnKohaz]_1o}z_WwUU__=jj.X[WGz 5Ǥ3k~X';x»1ԋ`F#` nB1<,wrxO,_nϟD}q1ё6 Shj#0:E (̴Ft1~m(kIB4l$̓gN L>SLMF#`0F`8kwqlDF]Ixf@tj/2Sw[c~< ҽt~G}.vILuf9]R#MB噲˶.˟D3eS*k.*Vo"RA_ ƲWnԢo'd&ٸ3Ut65f:4ZÖ=3gG_flQr'.2Xs_R~6Q, rgV́m["JD)ڔU&!g34#g S}@` c]W L+Ɏ#S~xW<ժf+r(Z?i?pĭ7d5CDV“|K6t#)&T8Buq؄A 2bǾ3 ȕZsBO>cVٿ.!Su|onLj(pŧ?{zWw}է><я^W_gf=sso='?2GT~}<YUo|ROB$J\C1̚7Xn90F큀ǻNn˝)ދo۫QR[S@H<q#u%/."N#ƴ!9>kQĈFq9F%a0F#4A+f{f$ai"-Ҙ{s '4[r3u6Ho^ >>ɿ1<6JXb&ު^i]77d32/T`iI`EBI%:9F>m6#g}$$xA=D $IZ+jZd)n&TUsmqje;ٰ-vO9V#`0F#`ؘwou凮 0'֑8uӼzk-×~=?i9X^'qzɯmHOGZ& lȯ=n\dQP!ᙉfX X$<Ě]`0KǬ FeG2?>+G~qGl:)?^_jAZ{ l叝|#_%CUay_V߮n<򫭺6K9}VjevkNcSr ;yx<ݘ #`07wݘ?;1X/aS^%g/Gř8f4O-qAk&< F0In)oęz'.WJUwS> 1༷ u08je Ng#`0F#@c=/W D 4s'i7l@,Mf|3>'Of4ȣ`.hȟܸOiSk0]M:&AO*ו4%NqUIKk;*)ISk0EI~-sirO gBOU5Wƨ 0m />פ-\+0F#`0Nl߷o_uЁktwqojbzX1]/=Gal͌[9󓃸Atʧ؊ [U:òSȔ_9-b#_(`U)H<4 Hl5^5h3ژ0J|ȱW,U~KE g(aY#^ Xc;S<Ǭ @ a<[9f{ҙ׼ll ˟W?CVP}w^̛⧃֢/[j9/z@woyfK/`|M5Ĥ3k~X';xݘ #`07wݘ?;1R_獕/F81wQ31q -kʯC[˞Ҙ_nB,0g\J]NŞMbL&駑uMs1سG 0\8P2]7ަS|Fk9I'Q)Fup&?{cY~3,Y"a^K,^<$/6 N"HlQyH%@Ģ8TlPޗZڿsNU33UoEsVi똣Nec^cS7c#`0F#`U̿q[~+`{#bUC¬tЫEO-fYx%=CNv+xVWura'3AKǮIXt|狮(MC浦aɎ bʥ}aS4j*jKCk<:U‡:W,5r0w^3şxۿ?m /οyCoyD?;_?Nۿ.n^}g/~ao?'?e*?n1rE!/?xry07 0F<x0x7Ƀ*f//RXz[>[瓱)P,IIG ؗߟ}UA,f*&߹6E%, aI;HI$ߴmoԐX[a+F#`0F|g l7جGR4 O0V~bR`>'ܷ䴶}ں8o{T۴+߶n5.l׮1S#G>LNvbZm|?|;kn#+s<'6>c݌0F#`0GG*OO`;O!г2G/{9Lp~ ,^z|z} Ov^vO<.^2z͟ )FыW}S>}8mN2BG~6vxH1Eu$r(FyUū>1~i&G6zvGMvj*o =&OƇT?''zW__?#WL'7OLJI?O6l6?7o~mR [/UZ've-~0F˄w7<<,b|/!lNoixŖmi#%}ZYbp)Ejjʗ0͙JSΒ5 %[9U숫98S8TK|Eu:K9#`0F#!0Ǜ|;˪]I;C9&YOwl|-d6RzES0G #I6^3^e=ʶ@[vp.v my*RbSM,սC<#|WkyU)`2tig$]$W8ګlN?1)6#`0F#`>`<3ތq1KLsʬ2i'F/`7|8?uh>$b~ EU1E\P@MGs+gѼ5u K{A\BX_#L; d ʏVM$K1NQKbS`SFi㐡~xUZ#{߻ji?{D‚U{?C؞ 1U77Gqܢ'w /_lO;}ȧaB_~{0#`0?ލ`񰼊t:-8KpZ<DJTX2򇖜hȾl6M8ȼ/d:l/s&bh/}+^:00=~0X[iZ)sӋԼQs:0F#`Àj0?{XgH7,'u"z`7sT$ -=d=? hr-fa0.i+;<lFC4cQ튟u3^S\, C)x=x%דK)=b壂z?8S8`Y~;A7_>},n]yZ2F#`0F|\7nl,ov\t\&C5dk]ݏf5`k޹zT'^Djh_Olpz_]g"F&?-zd |Dl blҦKZ6K_?4@=xc}b:z΍ >!;DTdٕ %՗+$|>߿}C\wyw9lO?>pУ9rCWN'>?_`n#`x`nUa|Y-/[8ZN'*nQ;%n*i!,}lLݲ,33S-hJa<:s-|t-eexcbN [ eZ??Pl;MX440NہF#`03 ? c@6[2켙YǟߘʶIO̯D!.fuOƣ#Zu!cBQNrkIyq[A aEHS_v,duO~+7zdbC/G>afsrBt]V.lK@] \:OQxb~soēB<;ÍOY%ö|&[ oOzѵd0F@ǻ?W1S6~Y}:'/t?)VqZ߰(qS?N>C+O8fJXRܟ1-UaʿU|呱U;\+\Mq}]޵a7vaoލ3#`0F\.͏j4+HyY 2O:,{}>{:} E^{tNA|)-K?ѿH5Ң0a&jrn} {,{w:-Odžϔ*wY%zrjM%ūYKRjZG7GD?=uqqX0F#`0G y+.>usT5P?F?ژK|Kf%P+|;If/>|gU=f`Tx.j UәU9zʑyQ*FI?K<@EvvAc"lsC!jsQCًO=$?{~!ő"qlȟ+uq?n?(3Oa^וꃶ|&[ oOzѵd0F@ǻ?W1S6~Y}:'/tZ XTbZ:֒u_uɕYToVZϦ' 5K>!UL/ݖx@)Vob,n%RnlE4(}g^שfG(F#`0+? |KʚoC/oKJ9TM1$ջTe߿ŰS)Ǟ"ⳏI64ٯlb0sb2cW's::bR9V&Lj5SrC i@?ckCd|$PW^hd)raIYi-)Dh?%c]lzcgY,u0F#`0F\ׯo^x(oN\fv\Rvd.fh&dlL! ҫ3H6B(ɣzOŰJO|C:"4sz{}sSyTPGgTX~u#O>P#Y8|ea?|߿Bڳsf\=rzî}COoyqltu~"܈Cki/ܰOqgUZWf}˭%Wj%?޻F#`><<=<,bK8).vC/O%l5Neel;ư&Cwi5C+INTN&IOObh!D*s"%l*,=\= 4wP*)G11=?%苨T{mn'T̕3eNѴU)NK%­nlH])#`0F\nV8;Rּ"I(JM9mdU&d9)ok+~9}! /=u7}v%Z5s :=/ؕMuǦBjM౲MyuS׮׫K\m䪩W$=?9QICVۘVuUE=scl83ƎgHqX;#`0F#`U}[qYdixKFGs/lc =WQF8騯gl+9z|d'N=kdgeOdWrw-+$_ɥ=+ŏA^fE8h'D:DdxYuL,y"@OcuC$}ȩ$<}/Vr'7OW^}E>4].'yý`B_~` \ F#`<ay3{#lOOԿ?)Ů5־G9lfC/[c1~3Bk(!lfrz# #-e5@MTb;nTݯuےPbw[TbOKD댇^0F#`|*޼@6}@OL|;b3ZB_ydNoIx&Y%I/l`rwHc?9[,v,n =NrgE0˝s[_B_R5p_r C>l =V_kέxr>eZ쬛Tw/h[M-{\",>91#i0F#`8?Wq0z/p;q](P[aX3sJ,>jeYjfYu!:K~^_ݡ O|OND˥ UOzrH$>'أUSp+UElҦaXK N,+,qʃavxj%yɏN54^lĉN//kQ]>:Ow^y]R.ܴSնh/rE!/?x{0#`0?ލ`񰼊6~A}'4p XndMEuih~1CJ.گl<䓛'xbO~bsuQ!=svr>gTl9v |?S_~{T>4K@ӴYw3~ɖ+2?[|˃f{F#`>b<<=<,b|/~_N'i1*s"6:2h'=+2e\ȟiKP~>̧~m' +0F#`0F\e?˿~Oz;iWp~a酓Oyj%էz]V̌ԷK;U&澺kvrg:ƪ?~}H}0F#`0E*߸qcgOgtؙ3f"3jlŗXT{dxbT z@/YuT_LJil\93^#x5lGus&H:l&m "PȩN ^$#!@k]C2{Pqڧn|< {Ū~A'H!OX!ɸw^)B PoR5­M}0J/~:3CF#`UGǻ?W1ӱyr}t#ǩoQIHD%W!l?eT>E9QN ///^0F#`0<<=<,b=-SZU%k*rȋnjvZ_@(s| /&(Lu?_|泟#Y#`0F#`=O7??ֵ/ Χ Kbaцb4LΚS/:"SwII`=5Fub_Va.{Uc,ƼF#`0Fƒ߈0.,24p =2$;]=b/ƚuꞳ>1r&zO}t\">vc>1} }Xυ`R[9t8u=E̯=XÇw^}a1}AVOK\A>'ō0F|,x0x{0xX^L^>4i*$l"yma!P~R| 72_0F#`0F?|NzMi0>Mzǘ*{m/"OY^fW8A+މ$Omc.yiO#`0F#`7n\<o*o QVH'nl&vb'|I2ī>>ʋldG&8\sឹ,^_cܪb X(<Yc@7JUnC/rE!/?x{0ײ0FG.{0xX^L>>Oޓb F_ޟ`̉HDeD'}jEO*dahWd!_~P~j l|'>Z#`0F#`{/D3tYl=wWJ=MmKWŕ,ciK 4^y 8-vrأԻq?z{@;#`0F#`.̿~3`a\oE3W@;3G<3qkiGW,t]me׾M5hl\P5 %7G\&YoG3>:"\y48j:0ҦU6@vuC tB=W>ȫ;הKUt"w͐uVOMU zUybSoy K@ިa6v3zɖ+2?[|˃{3F#`>"<<=<,R|~_J4N'feAOş5^ gTSO?jy:>~웜s!ዟ|ۍY#`0F#`0Ǜu g@~|ʓ^iZ#f}8x{]|0ƞ?Y'g*3/<͍ۚ]1KVͮg0F#`0F\7nlnzz;.Vkax掱~WoH#N]qit"72ɏ+)fp+7UۘGq3^Ǘ †z_EqklZ clAUK2QM>s^tYы )Q3'|e[˄7o*Ymk4|%[ oOz`0FAǻ?W%S>a/}?=A>~_W ΕsxHM s^ٛxIJ"W=x0 b(O?򗿜0F#`0F~oћp*uw }u}#zgrζ'[/fE[="FZm]1w~Wbl7F#`0F\8# l^띸65xht\VgC 494| ՜C4kɧz:%r Vm畎ׁq}p]\vP{}dՇKFǾYTzj|)>BgO:xW]VW^{˄79&QTw3xɖ+2?[|ރ[[a0F@ǻ?W!S>A/?H"@/vӦ6"ᖪ)YS/!xM<?6`)?0?O'Oi~6ϴM5F#`0F#FG?͏~.}pѫVO%c$)Կ/}d^(dlW愥XC^z&nN%E[m.[~ŘP#`0F#`΍VC 2gR`@ GKzV=>o~L nOô45_`eދ0F iˇ91|?~}hX/O]l)YSa;ZL_rxc6boaf]^Gzfu"1M2NA4C4M1+_ՙU18YvT>~1#i0F#`8?Wq0^^@q=3ͥli1~i ?|l<2̀o6TUvV:T=ĜrȆ^C5w;a?ɡ< )⨯}s0)-M9bpң a $z+V RxU<>:H>*>*<<=<,L~Ce!uN4~9/~ѫō,JT^|ʸEPò1]x 9e`}[tC-:Z^m -1vaPי3r9؎F#`0Fs"poܸyֳH^ 5Ca:O5̊=X!tV ï瓎k^^|jSUyG};照N?3;\!s>+}h_&m! KYĎ PlڋbX90`/z^_9sCn|MRořXHyKZr*'vU+\c_>\D螊''"n$C&#̇]B_~`e#`0?]`|X3#o~"'t?9`*YS{c1JfU9h_bH(<0F#`0FF}?OI}Җ {^1|?}oWJմGh_gtZ P0ides>9բ1v6`v~&ծg 0F#`0F\o,oV\4<U.>gո2c-b?T_zcUwҌ5OuA>;>xꑧW^pvTOݾ}{LnjOaUy%/>o#`x0x؃at/y":=mD$kn&Ũxiԟ(_c_2GˎC0Pde{_孁r0F#`0Fz??~tާ}Ct&nW3#`0F#p`;q׮2UskpߚƗycf5oM*.YyUgX՗_rZ#Ouʋ 8)UySbXsEEP::8+tW{rcnt>ڟjK4A<ȃ-|{N+4d\ NJUn` VA_"#`#w=<,Lyי/q?Aai%'R²"R/ ދ}~yڗ"9k0F#`8 8ͭ?ݸrVY3̊uꂃ+_nG/AOύEU_6VrndžLtTH5u&| dڃ|{Ψ3:;7LQ.mL@J3o.6 |S`G/P'p\Ȋ 6 Y'U$8VH|?86y<Sw^y>%e@ oJU<_5R~?12m#`G󏇷Ø_6:!5N4~/j1#5yez(H,*䘻O3|2>'|r>_C0F#`0FB~~}= |fZPxsB{kڗ>6>OϚ^|hi.N{2ƳNT;W.9aWj0F#`88?`q1Og`sob!Z_aKGlG3͊ S:PV,>شWSaftīr<C~ڷd|UCp[A d|U?zM$(CgC<|88vHpv_y#;uAV}Ů=#ԁqQR+NUzxC뙗wRt/mcYZWf>-Wd~'f0F<2x0xڃa̔﵏CNb=D$kVŨ tվVlZ~#bˈ !piʩd0F#`0'!@/}{>XL0>>\9O[;U3%FvR.S]}F +O[tE\q'\9W{+9o0F#`8 Wq0^8v\Ke]"C4QYES]]\n+\6C{E?R>a*kNXċ[(|u%w"1h_cv#`0F#`7ozo߈띸hԘfeXe k Uœ k^͠Vח8G'Ξf^`zl\&l#O^H#G.}QͪCˎN2GzdG ?r1*r+z}eD-P_عT?Hu%>$ 1&+6bX>߿}DMnXLlTBɠ c5aTNj #`Gǻ?cc}/}?;_]j5# ɚH]xA'}g0=7 [Ո̓FCKa[e2F#`0F# 7e[F@ЧWgP9d I_Bj0F#`0F`A>1?`>C(X9{Shfg|S8~ b/.,U,ULZʰgsJ #`0F#``<3ߊQJc<>xM?xbaftRC_9aJd>>y>C-$bit6ţ#'v.ri&I]> ^YUXQ )O0eaM78@i(#VQSGz`>ڻ␱koC/CAUC؈ѩa"nʋq4eB)٬Jʼ L. [I[.-e/]^0F|4x0x8{0xX>Ey9}q܏:ND&]ǗQ5X{‹eɭ|V 28`>)l_WVCd0F#`0F#@{|=]cH&C?, GsJ;$PMn2&Oҧ~ZiT&]|C9EVnW nJ`#`0F#`@C*[ߌc׻q1{;jFf ^ 4I/Ŗ^-kd Qɹ-cץ&^NCiy!K\s$Tq쁧*OOhc9ŎtAyqt7F#`0F$Wq0͛[=8qƙ_f旕Nc5kLx=q'7+v5{UeOEl [>!ι/t9ţ?φsxH!ڃ <ɀ1˅R^W,T_ x.c:+2z+$lr)Yy~Ǧ|19>ח_wwcLpɔ,+s dPNᇀ-IY#`0 ?ޭ`|3{#l|bмyi}vDL2J7#aA'l9|2*shGe)yzR>ފ|_@d0F#`0F@Л~{OGOͧWUsL ӗ;M2˯~>'_亦1wu_Dhzv7&e㳍gq{\f?.Ȍ5.F#`0FD*߸qcg|#㢙Ր0+2$s"jO5,fYx䄈AϥxlA~^!ų2dg ;9:|\8vg%N:ŢU?#%>_tEl"65 Mvl@W. L:4I_US9T;\4 _{`UMQ}U|>YwŨb_{M 럎M+Uu3pɖ+2?[|:^>\c{/F#`GØ)kaˇ=ɗ桂I/cuc]b?R/ ^c-lOp}11#O'n|k~e`&#`0F#`0# ӛs}|W52GW+{G;3jųnyҳ'.d< /V'b?BL<:dy;|O$ mN8†5)F`ndX O(/~[ji:AȦ®>N} 6}ǟ|\'D\OW(L nRN ϰҺ2J>T!ƃ0F<x0x7كat/ˇ<ɿzeqAJ2~$퓟[H.%ͬ'<\-a`~p0>GQKg=ZI^F#` <a0f:Cs߿heEOD-Eŗa\Cu}2rzo_1oa|t S )9fB/YhK~5F#`0Fg~w ݇9Mt|zM_tCZ|Kn'pƖ\Ӻ)MR$r%:6=!/*AF܉h0F#`h\7nl,ov\t\&C53_at w?Xlrá)wzy*NaS ًlp )F+sɮ?M6>?7N s.MjSt⥃M_?4{T^toO*^GPϹ׾U'^9,ċЩ>:ɲ+zK/VH|2΋`0]* TwsTP1pߐ=?k#`w=<,L>/y︵K}W#Jg.r/fʎT9jzJ>}|#{*Kگ~e@MF#`0F#`i05hS2';賑 #z,}>~hb#ʸݒr,' [>먧}RH9c`wr>P+)n0F#`B +Z\<.Yh.0+v]fнfe뾊GV9VxgǟKA xrh`_~USȥ|B΅N3^'Nʋ?|zPH| fȥ +/2$@ `$kE|#^#R~<;7؞SuR|raD\zcPV`9xbS~b~p 'ꃲ|%[ oOzZ4F#H fˇ1S>ˇ<ɗ/Ŗ~jUIuJĕa'Pwݸo+j[bdl;i$k_` j0F#`0q4\__Ӝ2dOOO#!zc 擱¤A;|ʐ=8XT[1i?'tØ !v1F#`0FAV\ <j"01\r'COJ\V. wT?_|JϪzD+k5&>W(C=~|:ObڜظD  _d`Mo$?VI*FE g/ڟ'?WdG~!˯ֽxr!H|RRPK\A #`0?M`|3{#l|HΓ|yߩ/nO-%I]FN2HRHcCZβ3@29q f, mSP*Uj_6WBzN0[cF.y?n{8#`0F#`NB*߸qcgA\0tFՠyIBtf?\#>,jؔ: HCǥ`g|0;>pHq: <{l^eRxޔ E@Vd~PoOz_{#```|2#l|h}47}11u*%."_qGdtk0a`>G3S,[S惟#`0F#`NC~|WW}5OӚSѭ3OW?A-Dv9R;|2^\Ko.s߃t=>+Vq3F#`0FU}[qz/.:bAzv5FGS/|*zXStW.ԔjjN<5-=+=kdgeOt+V^{RLIҞ  "C "n"2 &<  O<6^WKp FGN'H@@rBa!>zrt\_|^|5]&9u2l*gPOfmC-rE!/?x=?k#`#w=<,L>P>$IԿX֓$\t{_((>P[tvOO'xB~<11Ώ4~b9#`0F#`؍}˧א}>)oWG}1Fɦ]zOv!'SwL-Z|KeMK'lQ_w9 IRno`ŘP#`0F#`"p?$[߉CqP2; uoXE k_ZÇt2,53ˬ{xl%?|P{'V}'fR}t'=9{~Q멎f"rpiSڰth%bd'K `Sj80n|GG\D6DG\l_l엵ǨV|T'z;t.M n4ˬJ\+TzX-I|3#`x`Ö)g_pʇ<ɗK}qW$YJ(+5"}軏lK>_;/i_pAIb:?_AJW#`0F#`x7|/}<?A%FЏ[b˨َ;Cː|=n3hz,%>SZ ʮ؝]IE#`0F#8ͭoN\/aY?}iKŦb/+9L_E} ވN]D #.뜪NS~aR.[s$(ڨi9<!CXӱCJ |\=k£4 ύU]ɧ+UN{P ꓓALة/,T\O~SИ.ycObg|%[ oO._M#```|2 lz2|yߩ/6P$JK\)ŋ^I&z}YT3xQ."j0?g`~|π#`0F#`>M;C5|_f3]Oʏt~|zJ6 LJ^3 v=X|K]&>DzN}k=;;k EΞfs 0F#`0@*߸qcgOgU dΜ1Ǭh~xWcS,2#Z+zɪ=>4ظ rg>L\ &Y6ʣ:9$\KvGѝHpQ!t0rSG@I8`hW}^OR_yAUbOTC^_C%q}4?0ˁ@JUF{B_~`ޅ0Foˇ)SǾ/͹ϟc4$Q;%[b 9xTL4O̚5P6x}`rY'o6_կx0?01#`0F#`~37\{X|+-,Oʯ!JVzk񏿫F N=|ѡ//̝=ָ7L>Yj6KJ6(qe˖{2elSlzmau<,F#`0F\ׯo^xĩ_'C .QJG㇌/;Î/救^@"Ƿ"U P}|/byē_F^QσYYlE^LC^CbvGP |돀8p|]Ob)n6>Mg&F{T>S_dՊN$bxbK|=Ǎ@޴IشR-f>Ԓ-Wd~u|sF#`GÔ)c_`ɷ/e>|ZMĖt2(_ŋ^_<3~j'}&\Wi5C}' =|̓ b2F#`0F^|OFZ T P?4|SΚlJ-Nn|-~Du9ũNJMiz/R}}1]`!8#`0F#`NB #øxb>-kKZi-+|6֬8xLUq R.R}D8EDžr)~??DL>~w- !u=O O,tb|sI/:WaNuIƗKo*H^Xk%1/yŻw}"76T|%[ ox`z]#`ǂÔ)c_`ɷ/e~V$+q\/jGu/' %̖Y#^r'2~5F#`0F#)9 if_V }ShKÞ=o+I&%}rsp)ŏ.dM3Y\V& 13bzʰC `A@;#`0F#`N@*߸q}~3NgHXsΨM.?Vt#7y<$3M|:ɎL2vq셹1F=sYiZ=U_+I󱱾QxDžxCZ;a\zdjӥ!I5h=bgOz/:*/&\T_~ᒄ^D<=}2/%$n'a*+3jgӊ-IKx%#`0:??S|} _$'߾@D-E ŗAR q _cp=EQO_byZ~fk=A|!*'><L&#`0F#`8N<1?z<>IT39|赯H`~5xOws% Hb֜|0/'TE+Y?_qg>ͥ}_{>cCo0F#`؅̿~3øފLW|Wڙ)֐}~2~3mdsGW,t]M㋏K/_lMҬظg+5ţ'7G\&YoG3>:"\y48j:0ҦU6@6AWu:y!Ut`})꣗Xn2ʯJ*@<1۷t/L QSi{5ĂS 3?8/~:d?1rw#`G󏇲ÔCտHYh'"Jgy<%^zޱ>6A6t!Gzeܴ5~Ol_vX0?~k_;hhs0F#`0FBQp~t1 #1}'fd]H\{ 4LB-ꥑ3 Jy$mV *b&t}mo0ʞQ4F#`0FU̿y֭g'a\oǥj +В-Wd~'#`#w=<,LH>4>/V2XD%-/룗O-c&9dg x8|XNMr(aa56>>]tl4/mK3M h%l^{qOkivzgPb#`0F#`\1ONމ&RFǥauV;PJNC7# uGl+b1M}PwjO~x #YP9O~|*^IxQ"`{^8~W1u a:GV}xHY{dtK&·3P?.dx3W}eQk奻w)oLpkd`,+3fɖ+2?[|ރkt-#`x4`Ô)c_`ɇ{|Q}h9H02(WJ"׮T|_݆?͉oteg!O"$~ ='W#`0F#`0Ѓ|Yԏa}~4 Ôs7KxS=V%WYu5ˡsʏז#ݾu9A?;C]0F#`0"pA\ xix3͙G~\"l7C<\(<٥NvT7Ҿ7AI *ȧ (8 2"*ҢIKڌ*QEq* A_ QDm햙L}s9uo*׸s ~yĐ!WIw}jړZإ3MMrؕߦGJ{xg7g ‰ @b)Flp%%l6Aa[9E F@!V<4ׅny|! F !yIϨ73'ܗ-s][̝7 (2Hpl16̒G|y>1 @  Aߥb~\2أpApg|I?T¬T_هD˧f;W;zU_>rtqU7>n_P"L@ @ @  A>_7Ofڈ{H_,\_='=0?s~bku@CUTҬT_هUɟ:>w' |qyy:b|#3X;N{~$$@ @ @' bʪZoK;{\sWX с65 T'[jsUzٔR_ۤ|>QCdVy(FqnW.n閧q_LM;2!@ @ @`,W[m4uևϷ 0L;*xȌؽUt;H+IX1_ղ>sWS39`T^i62NyWr1W=53"ڇ56ݰEv`+ K'$6"x9^ f$勞yY_9sC.|m8׈3U''دrb s—C{,Ro.u]67ψ7` 2O70dVp/}y>Mtc@ ߿a2eCdγ y8zc)n1]Z*:MKњܚSSyV)Ǫɱ*M=Xm@̷NwI D!+ nUuˬ?)i鵯}MyK![9XPd;|ZSx'`{Wei{ĹdZ+l#(/QWc>p=(خ{|kYo@ @ @ X^010;&7{X"uȇcӭ;^y1U/D#X3G0t@IDATZڛ|ɭ|zGLUﱜv}|F$$tMD4Rųց V$;Dg%Ÿ>ȅ^2rGTgN,6Gk\?>,E5yK]yjgϞ;cĈB ظV.skM,|d ُ9郘?P=6@  ??,WL3(6~<||^R><DTӼlڕ]Ck2";>Y'=#Lw//kQu>~_"c-r)yc~&ˆ;N@1?wm]p=;+qƙ {6S~-?:o7!PyS h᪍|Avogmb>=919:QӍx R\''[Țڌ'EѰWZRlTէkݎ))o@ @ @ 'ixnb+Vg&@W K}T;~C/;|˨6\ʧ< v}bF$NM+ Q?N_|JW3"Q$۹Q|?ՖN{u54}tu{t^n9&YϞ1by:n-}i#< ퟷc_Z[t;> z?MnIzn{7󞷝 b@ @  Ṅ|OCk C 17í]E1XM-|{F̷\ؐbwK}s7iǹWQC|Z-Gۧn4nYk@ @ @ Xn"1ĉixcvK-sic"rK27kbV}.fvAM!/#k곖^5uN k-cu:bTG6t#q*<ʥq"3g9:]|Ŧ8F_sD1*6َi\gS֪_<'1"گ';>KߨWWYϝ722X/U*frJ¢m_(07x*C @ @ 0^b~tʔi9Cˏ{CP6*HtRkkN 湑 Tyd?jnֻ+Ȓ, "Pޞ_aAyc~@% /\(m =rm't%3jZ+򆟥5x나_C@ @  .LǽCiK{Lj*̜tUHgjz[UN|T+oU ͅ>`৵Mk=~#Vȡ`ΆXڴ>98qNCDR/%Ӯ` O9[nw/}K{yg|{_:SQj>xlzի^Qǎ'듎I @  CcޟnI&;w3~ԻO<8鬳\a{_/kb>KW7Tσ=n81>ߤO8~Kok_@ܬ.Bk'qekUjcgQ =")kKX by.@ @ "0}6S1,;D˄^5Ew(xl+:F4[걳F/ZuÇ^1L|Y$+zcg}ć9z[*EY(H~M/*4NDMhˉ UNŏ ަS=/_WF+Nc駹rwG>e+(o*aD;1s^h 4M@ U*e-ĒG|y>qc@  E ;re?c`͟K)w7>iv<>nFɗX{|3X"o:##f$|3,63Q?6<O~/8я~Zqr[W[ @ @ fKM9WՍ7>!_|\'_k֐[->rM;>. /XX>]*cCpz`g;k3DU|,e")kKX^?DyF#b@ @ @ h#0'NLS&ou]vs":?rعq*2<:9fI3NF>@>ҳV~tm b3g?su՛3_O|[^U|a~Vo'g&w'gd_K+T*!wE:YYq6EQ}ϕÿPq== <=B@ @ ; )$a8Ĭz:rcT ]'Њ%?)̏86=J՞Ň&2VI,vlsp.-s?rP9#ˈǡ*K0 ڬ6\$'+AX :8E \bݮ+ѾCG-Mҩ*iZk4:葲>kbėbVͿ {2Xp[k[[fnb#kX<~I @ Aeb~\2p˟% Ze%f=:7GKi +Q=\#+}nӚo%F7ƾ7XvHJߋ?qr'kW_f?)yv:ӫ_ù?K.KmH :묓6|W= ikRtW9s#?tM{~Dx㍺7tw}w:+u3ᄡrO:%?x\`H>hw_۲6ަ&qǽgtׯ]Y PGL;K/nͰiºI?m5+mݮt7(mfKA&w@ @ ?Cw/>Lp|W"}'||k31r=d&}Kxoӓo6="},s̳ rjl\g|rܮNTeH;HrDL @ @ m"1Ҥi[fzQc"C>ǜ|1b_9frʡ)<%>c-M]C'3zѱA.æ.Z.ū>j>beoTBъ6担ǜAo@ @`\ ] ˕)= 7Rb^~P߬$f>.k |yDl7ƒ+?-+ɈK*bvU>޴?ߘߍ}9M?ӌ.txg'Z {|p Nꗮ7pt{S_Z7SOh5yGҳٮ?u}\wK]xqm_o-nG[.&>^ˋ}צ?)Q{if_Ei][@ @ Vf\69y|V]m҃!_`J̇OZ%Ⓣ0=lKl.ִYOII?'g+c0 Z冔KCVi2oHg$9"&@ @ 6c/?{)ڹccv=NYYC^ kĉ7-?S.Dk8Zz/rOZU}jΈC=P}řʅ|U%sSoĢq* m"uq8 ]'.M:raǿǜZe}ԓ?~9>sVP(sUTˎYV*5~|BVZCIMӓO[5ҽ!+c!Ob _S/; 5{v[|ޜm,KλMycߛ?CotY&9 ԧ>?Mo}ӦG^m-6,۰?(ˇ=7]g\뮻 _8?i薶 qWӳ @ @ 3{f[ϼsOʛre-Kd}R~榯g0oub>ui7{h;w^뙘SB3(E.V#e==&m_0$G@ @ @ F`,W[u4uC\Q;h!#-;>9Ja 8xOif3TS担ǜAo@ @` ] ˕)= 7??K@h2>r}y,FoBNzF'0j[;kz{*3[.ޘ?މ{f={n7ӱS,1wOMu&lI|Ӎ7*-Z{y_Ҵ./tox;6h]ڿ0qt_I&q_v;17?%?co9KsϽir/yn$c]w%=t{?ޘ/7nQsuM/4iE_?͜ycL;kzRe ޮuC~h:O!1@ @ X9s(9VۏzWz;7+Y.9 U&x[Xo(}61|ocOb>o'F LbZ5}^bsw\ sṮO[<ڪm[{J;HD\ @ @ B`,'NLp;{x!eIc ]\cI0K?Ü܌'mگf}j=)#u+&Bn'VTnܖun8꫆!G$l`gCsFc`t2:15`}@r)+\/vts O#k+M]!ʥ8+,>6xϚ3>IF ƍdU֗fnb#kX<~I6@ AUb~\Y2lpsgzI68DLG.ѱ5[r@#` kVm&}j|tD/Է7O!MXbWV]_W{EW{Mnkl頃?MB&OLՍ\k߭Xܻi#<+;^3}_H;'MϤ/~ )Sn-W O}*Z/N'tZWkiw2}g=zdJ\E/z}QEo_%旁}n:KUiU{I[A̿ʯKy+Ig)?WsSN9tK'tBz1r= R:x|:97䧵_f+ CϯvI @ J̙Mr>')s_0ߝoCsI-1|".z^b:6|\Z~-6G4cr쉪 ,kW|(WTڹF'@ @ @ c_͞:e;xh adMsyPjӉ.4c9z=%=CNշimgܪKE#A௵3"ʅ<:|G5&l깺6"ѦF\$(BNm^*F\6N0u)AS.j*j@ǎ=0> QW v\ψgϙ{٢EC rc*_i&l>担i^@ @` a2dGC!yo&ڔŒ\96+WuYW14_Wmvu1ߙhjzi[~,\$-r>t%IoEʊ&_zٗq`~7_҅i=_!#dm/ iWC# +__kěّz8>iw?6xF̭WНr騷ֽb}o~5~ ~iRVba?mO29}{פW_i/OK"kһK u֙$q/Rp lׅ_hL5b @ @ X9%RI{yB#5҉!O6r}&1d{Qo{+~nPtx#c#F8mNkN0kؙ#/:|ElׅZ',`'bW5[s'F~:!Ms곦Mvj*MzAMތ>~AO Ocywy)o,ˍrk}Ӎ;I%e9C/cn@ @rʐi 2r? a%$h,#Y<-$e]tlCc;9y ^+V̒.|HdX7o_4 ,imM5Lu(Ʒ4G}TEv۾e vKӥ~SgZ3w?t\Z|7u;~z;??o[o!Vno_~{~{NҶ͓OK~_[fg<_*tM{Zc n@ @ f5s4iR:<#xS;y#~|+d, rGluƺ쯥Őjٳ UΚ:h Kݖ饨ҿej,~N#X E@ @ @ "1Ҥi[n;Ltp9[,Ϧ R1z%#M]Q<~Cl/:iG|$`?YKeAt^ :b.,toW-%P"9yNDaê _bjn*An'ب1bS=)υO-命ܻji?Yq FEc[ÎMY .LZ70sK6YycN e @ 0.b~.s gG{D;h24+3(s*T1)} u[y`X}VE'Ylo7#{6O}="ߘ_H[oha^k/sguYomoܧcߛ? ɟ_>s:-xtͳ-nMw̛4wC+lJysM/ O`:[Ïgo/ݠg>'Gli3#wy$j8}?M:%=c/~iT}<%m;KӚkr($@ @`,"0sf!yx#wxMF{15yEGP=u-tYo3tDyڹG@ϭ8S ,0{ډSÂ:NE^iJRKk>g1)^N@ @ @ 0V[-M5x<sxEFCҏMFϱ|ؐk Q'^Bjh_Olp/G/SM:/uNh_ǾeC/Zf`Y@$E>l=N@sʓƷ#~:׮*즮sWVMOrh_9S}tZˮ\/|oy칗vgj^*K37d5_,_g?bC@ ߿a9Qnx89{|)C1Um! !V:qGlSˇ4W_̥E@'16<(x[z=KL1U:}f, FV-mTSCeL>`oiw@ @ c1L?̮|;x=\h`#vhF!݋,[x|?b>3k9TObUG.ckT_1Ir̵?[c>ioe}SLHfȥ +/kDv.Z#zʍ51ȬG>ab[TdD+_ʵraD\zfPF`yڳ f0sK6YycN 4@ 71:rP3ӣ\prRb: %:*QJ>nEɉF̗{jot%317 /Nz 01E/9]y~KF/ ݈?iwet]w_sW^i#<қ:|!K]wyY뮻jUY7Ǥ|m2~bR?=$Q>g_@/A'3[|TߑL|E/Y_?E:yu&na:sӎ;%@ @ +3g%勀4Jt*}gI7{Zޚți!#Mb[|hEyWN̷񞝒N5x^p=wǝ8KW.o;vrqN4 C<ːZ`oY}f @ @ '`a; tr5g"۶úN>Kf$ka榪EٟOn;z'ZyZvthj3 :'탑)c|6#QpMONK~3(FkبŅ /z,#_h^?|'=q\PĪ>{Q} ?Wd/cG(q73l9.x`!7H%*6ĒG|y>%1@  Aߕb~Lt6~8<|yyjIZ}hݮ^e/>1?{wD|!x^["gcM1K{χuY'77^?/ tasϗ};&p1Z䭟oĔկ~U¿3_I̟5կjO=y5 ɓ ߾~3f\Љ뭿~gvmf<_]o/mi^ȳ}=soyө~[✳Mvzv+ 'tх׾뭷^e ۵l`˭կne>*M2α^{dq]{7ߒfͺsu_ !Ԕ>1@ @ |fMGcaWOK%{jȦokO!Vm(jnSEeMgelcB2Yu1@ @ @ "1*ɼ.;Ciˈy?Kes-3o㇓,jB3^mfE6bͼ͗&CoMS}r>\rz ~\G-CϨMG&$7|:Am5s6be+Iʿ'rN^Q +\ hO>W}FD99A?ю2rî}Cs/2Xp2/?y8G|y> @ Ab~Lt6~0<|yzSj$h,0+#70ǽ2}_>3_I7܈A~NomD>跥~#>?7|}m_c5?9{5:e^R?^L>מ/i<`rgGH;Mo~|O~]$0gK.Gyo_X@ @ <̜lRfۏzbiҤIMz|7h|h7Ӻ2nii![JO)GǭGtXնl܍>5;N+Eç:KچEZu[$=2eYcd"*@ @ #cjyAB9ݬxԬ3g$F̉cD_bKs8qZV3W23Kc_>~ڻM=/9bx\VƗss% :96%NIǡ8>'2;>ݤ ڣH/܋|ec$UX0'zM뼈G<ҫ2צivl1g-\3!f70sP6YycN 4@ 71:r3}XpRbvD20+}ik+|$b>owP1 aqϦ*傘q1yYs״i;t}{y.><F-Ew7Zt{[3t-Lاԍ?NzsoG1O_Lk9H閯$Jsc^:uTw7}ߪL.ipKv#͟?$P+m%1[01ui-U4Ng{u/~Q+grrwk-m%SnℙLw_&_ r]pEK/ӦE @ ʁ̙O$F+H)b>^ iiW%kҟZJȞz]tL|Wٱ(.',fJщҩeR֚<閣R{䏜@ @ @ 06I&_ފ7Uio Y3k<ɏQ6H9G_SSaԨ<)tAAN8Ȟ/tiWr+*#ʟj#x?ֆY#h)'8tY3QGy%tA.MgæKk}hҗ9USJ 9Ǻ'75l/{6 $5aXWֆXȚ//ϳs16@ A A/?Kʇ JWKtⲒccYzy9}$4Fokm9o_ogS݉KI J;p`ɱ#oq:ԏ=|}>}SN_Ujw>rI#_vٗ-gH֧rj&rU{SƭޘZk-t&w%_4q3W+]Uy^{tˬo@aW>cM?zdѢECޘx})mb>vy.9yŴs>7vZHڲ'}};'NJFE7ӟM?ez5_OoZ+L8Lچ.@ @ ̙'F>ҧpM큪yc>҉V}y'xl*b>U`ꓥw7Sz;\x*U U&iec[(|Zq^b RX7 EZ~,9@ @ @`| 0Zo6S+xd:b~s fpr.͗%^1Y_+t bZ5 CڲɗXWeSK[v?aSC;H|ԏ2} 1"\c C&|3Mp ks7"뮻nzKwKϰ7vF2Qz<ץϜz-_%}ҟ: I?ҭnmYj`ʯk&GqX{:͞='g_7 mb9s͗zi[_ݜn!P x9ˋ+_gn_K8v?q3f\ЉmY:;׿vmd'?.mR@ @ 5iҤty=b۟9C?צ>syCW ?zI'~U|^Tmb>m8;[7|^.b%&w⤴G^+yNOnOV(O'*w OL#<')VC{?oiw@ @ cH̟8q4eּ1.;p1Ҙ1r?A[nJ.\,bHZ6F/vF 6*x9X#qY~;?6y:Q~鈓`P.[$ jϦuŒg-; 1{W@6sc^d OuR5W<?''(9焝ߧڱ9.-t!_.7*_ ,|d ُc@   A?Kac\/?Kb::BiV ϗONOQ̩PӏPH5?s Mψ9m\+? > Ƈ9~ϱ$MU'm>ȷaaҤW$Fl7"S[[: At& G;ފ]lo` .wn-5w{|`[|ڼ2lDPD -{#FGzWfyGx~[ޔ>SuL@ @ V.\{7lRrF:~WK}\16o>oL}"{OlhCwMb>-'^Cߜ0jTv4݉Xk4^Yp(}Rw@ @ cḨw:eCco*@IDATcUkag q!3b%^2uqK}A_P8(VdF}ŐX꒗Wmq3D|uȀ (]nJeU6*G|y>? <@ @??,1,݇sizW]O1U늼VSٖo1b~3䧷%3wH[E{O}:]pE/,koSL6;<k7"I>1]o[o/z믟 ?O*F|7ko9-y?}3i56|']>D_*?6ͺeVFN:t٥3j7_sO7ڼ׿~06p\NR+tOsoCmĉ Vs.@ @ XYON~cA7.)6g}H:j[hUx4hŲƷlܰ/?_5u9Zs|Zz+|_ 6CѾ̣99ʃ8+)c6D"_YƆ͗<ņJD,/ +_W뛀ߌ@O|%XRGJ=y|p$ʫ9W.RyhGu#9%}oGYs馛H]y$wϻ0]ի=4aiMozG@ptW#qƙ(MF_u閛o݈2~ʫ9?iqh뮻_g|$✳Mvz/̝_?.b-z뭗nuC.R\7mQzQoIo<ⰴה13._6oqnmq86="@ @ +g|K!{c]-oo1veW_Fԛ"Co+W=0džHn,cݲ_e/rD'{wચjUJJmjI0tYmĪ2D` @ @ ;01C4typ8β#$VB6WM<&FvF Q.R}D8Eǁr)??BL.c>~]TC\؇-*>"@' !N)uru'tb|sH/:WYC1&_Ŧ5\ *.tEW^⃔>ҡW=FC Og733!_nW *9(c_8EA @ VAA_˷|0-&V7dˠCYJ/_rcb#K͟:$Eb>G2sG@ @ @ EbjN|]{ V*3L\LjkӚORM㣼ȆDvıƮe{ݎQ}6Vn9‰ǁk5sa+s:/k 2^,|Skȧ7U_~rA/!Xg==[ frS*ZR湁%b<17}1/~l)@ ;#a9g>l|0<|Y^"r< (Zff%y|fʩ0ϡ|o՗+g;5jUFXti;9T:uJM}2hsE| @ @ &15#o}]{xZ%񝇫dv^tN,6J,mGM]Z>unB漌8F׾K<{Y͜]T+&C e:7? s=lV}l:Gۢ\meDtِ69y k(G شqA t"\\_qW ǦuMѾ[KG,6:WϜʫګヰϞ=w BPݮj[Y/ciyoۇԶb`\E @ "b~b~LxH~(<|_d eȻ~ы ƥsLS<}H~c~I̧mTo Qz&$@ @ @`)Я6ڣUki,b>}?]r1XjeRY98*i֛ݻŧyQʽIm,tHue戸@ @ @ EbDSl}]{xqE{16vc`ZMV,v8Ҍ'?FtJ7(^yUOōfDpWU8B~u;Bs'>"C?*IB6˹6kΦX[_G`$roW-ɅXtCMleNً."#z 1Z3GC907ϙ{e ABW3\`nm%b<1'} hc@ ߿Ka9gQnPxys.͏%Cn1].αJa.![YiN:lT :UN˼ZdQ}̻-d"iwHM*ze@ @ @`E"@ 1;=16BO\7c˄{~W|5œguK#曛AqyӤd}rZY[}6iũ'CYίu~_o2HsD\ @ @ ?"1g#jiǣvx/N4:buNCdkS# uGl6mW.|2ƃ_C]S3W y2OuZ:S9O~|J[+{ 㓄r Fm+'_ -1$+fN.FqUαY>sDxѱo֌ =5ѕs[Z!#뛋5ss\UQB?o…$8im*sk ,|d ُ9郘߂7@ @ A7Y^R>V\M"y >_lڕ۩|c>9rn/{R-Nl0_b\_&ݓbřo.A?5y$B@ @ @ zђϛ_罧1mu;|oj'wO_[ mtyFoc TU|N\K5b.R b#MkPJQ}S}] olRtc/@ B C:r3ңXA6&b!ӰE9_er~ӎC)y]@ @ @`"@? 1weo=*z'ѻ= OOLkuYҺ.<+vec n\te;kь>gl+KYǶmEӶi]{ܑ/@ @ .cOombW^;m|c@ ߿a9Fˏ%bN-E,A9>.SmG+=/#ҧO"YUb4KbcM>2iwHƱ*>h:g6N'McC@ @ @ OO_/xҖ|_G7®2">zv0a:Yw`IDzrD/]Y*{vKTTIܚ36sVFέO:]J@ߑ#@ @ @ Eb>HNpx!aOzc+EC(R;6|1~ŗƿxae>^:g:/sL}K2?|9T>__-$釰Ar鄔SĎ Plk/a}Eϼ9!@6uQkęXDy󪓓\W9k†rˡ=c7?tgg )2J|̭ QrP֛l>Hۘ@  J1Xb&~^t{ 9{[*>ڔeyMb>K-Ֆ^I::#1]~=@ckc @ @ g/n7/9 Az`zo'D|:`'[`I' RiK]`}=3%zr,kLeLĭ9c3gehQ߱iuzU^Amä߇t"@ @  c]{xX`e5L!ƶjN78F^y1U/D#X3GZڛ|ɭ|zGLUﱜݮψ5IFj;: 8adH\s'ځ XF̉Fh}k]}:oO5yK]yjgϞ;cB .3KZ70sK6YycN e @ 0.b~.s fGn7g/?~T}۟ZAWˬR¬TV*F7 b=P񌞳J߰O.67WA/iwL'ՙ@ @ @ t1{cz\!gOo:T<.ozJJuU2gy?.CZvri>@g4hGl @ @ M81NjݠuWM3,>-+s5ġg-5ÎMvWYp^3sU?K}T~9tU,cOyČH(/P:! `|JW2G |oFG]gDT[:G99@ȃQ~ڷt-s1dN׉@ '`nmk}{} @ @ @ lWbԯޚZz|z&oP>b>@K\8#"f#:ۚy_C @ @ c"1ĉixcvK-sic"rK27kbV}ki7CuˈDYK:'|:G1#8AH|igNzyq)N窣sl \4W.֊ kկTxWzɥoT++NYÎΛق+ ~+rIrkͫ΍C|d ُyd1@ q@w?,1,==&@bu^my9R)uo]ĊO 9zc~@ @ @ a @ 1?Lo_|!{mfו{X8 :T٦柠N_4Xb~{/?JF-2@ @ xA`,W7udw1nPj:3B Ǽ^:f<4+L.FZsMQGuKJrO_\8ჭA ~Z۴7b!h:lN;} e#+k.vIt>ZP:r0?0"A~ũ>:ň =s3GVc9stBJ \&%JM37d5_,_g?3@ /߿a9gQlˏ%wt&WӬ=Ag1>ŗ5ݷS۩1磟j1ߝj-b{>9؛}4Ӧ&NT;@ @ @ @=/+{iyyߘov##7ַj]ovZRG5va֌]I>̱k?/49`^\*󘋋Q,ȯsEى m]<b9!=b\qp"u'(b%i,4WNاlQ%M:w[84 U Z 웝f0<=^7GH+"+{$z:~jyXxEQBl毙G"ZH{xxDKw] ѸO/[}â?1IcE\l" +F <#wء/:;KC;R*lXAvz"Cs_Nv]h,l}uJMc>ҡ48 q11nA  @A  vP΍4/NMσ+1[lk> -w]BʖtLCukFg Z"~ j[uqVG9u=>5F@A  @}|>xskP+XX֔6;혱C mztF?Cʘ3>2f^={7f{e6q1 fk^min|Ęk~ex8^=2 kF9k#_;hG,3+3~Gy&ryA!2k?ȵTQlNft0C>lެ?~OƇ..ޝeOWkܼR3k~X<Ә:[A  Hc OcH]%6vƼΎ0Y&{)آMØs}؉v5lLMʻJ%ۡ|%QVV< _Q1/SA  @A \ug5/evQW;N%ɯi̯/阆tTfHvR"bMf!*X~[n{{V-O @A  n71Ou=V>b2!fCfL@Ƭ"~h}?#~f9>rL{Tn~g|51E,1ǎgv c`/_v.blL@ݬa%wX @ 61+q_0vro+3b6{u\&<ȡ9?ks1cˠ1G>/o,tIpfSWk|2 u>x A  p+Hc.sχ%FС/:yKCCfI\'yo9o(i>9tïec;7۲6wrۘ7+ @A  @cy~WeU϶M˪ƥ`n3 ޶ϢEgӵ{Ǫ#d^ = :_4yU2s˭31 v5p>N]ȿi})z~%$?3˟]i  @A  @g)7SW2EPbh/X5wZufL>sVrY?{2.y W561a6 ;0 @A [Mļǟؚ!aG9k =|cik~1G={cV-}g2Yy?|7毠\ $;]!BVzf'V/zgA  ^%i?i?K=~ј=^qYc3{UuǼʵÏTNî&!0]n؞1՘O A  @A  pWҘO*OགQ Yz{}}v=t-G߸[?{)V.7f C1fom0ۜo#>A  @A >nbc^UWנRfGZ=6X۷ uØKqcs,d`vb0Q^?:g8c^1:`{h @A  p{_o~Vo5lbzn1>~{]A\d`f̏DN}rso{!{^I^<<@p!x0s [|ȱ7qͯ/̏-zd<üa힘Y#X6kvGgCztΉy?k{xyH6 ;bѩG1 : <3hx\co~sed3y:tINWmpƟ߬4lJ?oXi̿k @xU1|H1|X^b$/J:yKCCFyXŽ|0quen⸗vl~0__1՘_o @A  @o̧oҧ7,INq\tY+{^W}ȕu%n˞ӏ(=>KfYvyfz B[鐻ƞ۰:gN?fo>N͹@ȈφY-2lmlB=119[h~WbcBo~sԓӸŶ :AN;̏6ŶoO_|"tINWmpƟ .Fa--,<|  @m1|W<#`Ļζ/`·5` ; PC\y,ƙem؏eh˛eOcFs94{3 @A  5ؘO-O{'}:lA  @A Mlo댟Sѫa񼦟v^T;.cc|M;dqYcG[d*v>kƜ}& 2c~\wYM$; 2@ذasr ʗe4{trm Aose~ʼ㳞'{ў}xtoj0ąwflU﫹ig;xӘa= A  JHc`NcH]z|l/-=;e~`Wɖh?C\}u$qïeS;`_65\YGm/ژt_슛N @A  @!M4Sާ˻7Z{U? U@.P-yte߇熫c/6VS&ɜ ~V]϶?c @A  n/71޽{W!ӷ={ϥ3iǾ!O}T^hV MYMհa@{B&xPyԗxM\mNۈ1ck~πLBf~d 0CF?G?\#ZK@ ͷ- ѐNípFs 2ۦ: @1|8#`x 8XRN;w>>U}Od;kcVړe穩ffar55l_ʎBuX˼1  @A  W!p|k_1yaƮwrwR2yWCYiu|cؓs=I1cg[# e8 RF4 A4o: m@ i?Ĺ·-%4| ׽׺ӏX!UZWw#i87ј7@A  @#Ѝ?TC=Ա K1|w˨jo1?x_:MP|e5؇$ 2@A  @%[ R 6ou%d<%37PK3fbrfmf2'6 }K>ce961⫏)Ꮞ!@ @Evvʙ%tOn9^ܟAi~9!?T|?캢o~Ӻs̭|o`F6V?g[#S9) A  @Av"p_{|5왦wr=Vs!a͠X$==6~zۈlщ^]j%ub Ɨa=O 3&%jr ;{#90?z=ݠ<g Cnޏ3ŷh'B=3C31A~Ϙ%^sx76NhB:Z 榕Yâ?  -@ i?KS\xh~~vȖ'>?f|!mCNA_]{*<,Ȼr-Qʺ4O"-+k:֌RY_W_t @A  @85&ߘ?J۵.Oc#B/.cW,@A  @{]}_׵KA0 TQFbxjU1C_ y= ??Û3id~mwn>1{82q^3 M)CbЯ[lf1o;G{ދD> 5`#{3zυ?r(7y-?'>~3KB Lɖhgu7 M)9BhQ6΄Oc߬@A ҘayN}0}|J||*"ANm̧hf]QHg#_|  @A  W!07Sw|՗kݻWw([ ;wv{tQ^.wQ`}1d{;]/tH֛~c>6ƅsv9\?϶뽅_H3|! @A   ؘzMO5W ʴH#WR"b:Z3(#OMBNNm9uW=1鱆׏=Y0~ܫ:fH m] $?qh73O82/"kx̎KyAċ`~ .rxG˵8A|Đ8^!V{#'6O>/,6tIp1r-7Z(4e?8aY~-3 @4J1|X^bS oG=Pbw~#&{ kV+{Wy'=2̏ Rn>P6IأnMr@ rʘlK}𰂍k5^xmE\#3ȍNr?G b2>uȰި>DŽ]\.es{ѤNCN ?8b3 Ә) -B i?*{CsCC~8YQ'Hi ̨#$Ƽ+cۘ_)^7/ᇜ*kG8bi idA  @A D|jYykrjj}XbB n8yc> f5/*cO@A  @71{W75D2#}6c碳e}! P1&l;yi4rkHs`A~id12$t cK_x@7j|6큙g9` ZC\XoTgs#$;@IDATlš=񼨯/v2` L/ؾY㝏>~'/I" ݳiGC4.M*ҬDh\/Q~mfAV6i̟ @A ]4Ktc|5|;d?dm_ٶh*A\y]!u-ETѿuK!g-3ޘ_1鳧ǷW4 _gWN A  @A  po1ڗ|c>QSN@FޓM|-Vw8rb8ok}6Vz{*^bcD @A  pݻ{KY ޘO_1 \0yXk?f^dF/җ[YK rc wmcK\?9=ksc?^V8Aϙ q=:.vɍ=#c^R2f0 7k/P?іAa?3O[2?:C9C%5~Ǐ~4>*t1|k?Y=T05pof6i̿K @xe1|P1|X^b.}ƶUCCC8Y. kcjv[(ӎ/^1 uĨ⶚{o׿SU.fvv]};ik @A  @8ژ_5坻wG|՞4wܲr}vd%92i-j5@R.kbN찣nW,|ByYKul=l_T>|Q @A  nbckv]]Ok|b:+TF1[f =ڡǖʬi^,JYc;RƬ-gBg5q_*7Ա7i=:}o?lc>1>lc,64=|-4Ǜ#_F O9 V1,'>C'sV.|f|ܣGNlY >1}/2Eo[!|2_W ݊M)U :0Ic߬@A ҘayN}0}|LMC>C8MP k>ԛk6K)5O{S,1fdc~ޘ^0A  @A  p /ҘOKs6}Ňssc>:,nm_u56-I_@>;쨯Sk<8d-Uj-JoWL@2͉\?EX'{g_{w{%z~h2юl@a32H9C9yלC)ss^tV?^|eE7@2cFL|[?Ǐ}&"ێi'C4fh~&&nעoL#o̟ @A ]4Kds{{]:[C3Gv. ky_m9h2ю8ؼQxc[CRw,ts @0:־=#zg~׸ݛ_2iB.Ꮿ(o/.hiz4Ӑ ;xdZ\ieA [@wӘ>,/1m}8l/ _ ;SR&z·l飼i`qZOAش嚧GͲߘ_o'Ww:w>@A  @A B4S/0 oTĻ>585~EmWN~=Vx0EK?׍l罄猎1tyA  @٘u]ֿ[ *AN_1 d Ž~fЭUi8m V͏-6W-:_i`C>>&W^2ʾ"v,@пMNQW;$.Z7~.|?f@A  @A1v9oÿ[ Ԟ7SP_3ZV_|Z{7ߚyuOMnNWkgvvG}?W5F A  @A6"p߻w{ao 4 Ӌ] !gܥ»@=;&8Z->g_mR|v S{Dju#nbQQu-_1Ͱg?2oyq@A  @#m̧RA+47x3%,:Np @A  p1ޘy :FưYBTlg41ONb;yb [H_xtٞ936ha<A̺9ְ:Ⓚ/K`npa7Q=בBf!3o CNNd3_^zXó',o~2KZc҇. .rwl65n|vOM+u=E~>x A  p+Hc.sχ%F'll 8_ewxi~~g(%p\رB6s>d;}G]S{d#k݈avԵ$G}ENUs(^c~ӫ7l>@A  @A @`c56wi֯Y_,0 f^e$uc;]VE\+ץPc x*7Zܡ8^~^S91@A  C7_jИ?7,LIā[X1ջm.&'1f/v=rh_9# &?uυ @b pf0%bWP཰ʍ (!f3H_/’wז&|AaK9oƇoW-׳]>_TKBwkܸ=57̚;aO4_5^@A *Ҙ>Ә>,/1R>ac*[K2J6Xmwm]ƛ!G S{DӖ[av`?س5?wҘ\LA  @A  pn̯B`c~Gư)4}x/1c|c@A  E&6SO_k}1־m6M].6c lѮyfl$ W ;Ca~ƃ7%Xآ'8:ܳc"q#?O&3)G& sy@!'dx홉,`Gic.feذl~e~C9v"wA5~ǏC:U 榕Yâ?  -@ i?Kc\gu/^.)?-gOYWsˉx=1 @A  @81:ҽSoէn=1k]By+â.çmbbQd=-'٪[$C=+ZS8y[/'s@A  -E&6߻w.5c4Cl0էrweZ3Ok٦vt1vKc? ]~ⰿ9{aȌ=2W<ɏloa0?3>ܯktkh"9 MG y3!E?7&r6h[l~c|!.&د1ѻwf7 8ϳLּd7em5nzvO=PiiJ]T |7f@AV ]4KߥOA1qkLC>C8[AV}]3}ԇ9'2s*׮XmOiȞ--I1㒋io)o̟@A  @1\ݭr(kdjܭUvlA.,i?hg;js# @A ہ nM]jUo_l396[=VXKCf['ݛĖv·6+ѺǙ'{/K6;ILځ@+pڡc^æ~;I,k`G,@㋎8ڸv8egؙd~9G9qٍf|?eRv7fCTkԣ ~pߥIy§1oA  ni?eNcH]m:[Kۇ߇|)X)op=Df^b=Is6?ɟs7o|@A  @A <+m̯YԴo]G1ӍWɻ@bvOA=5rJt<+;4v99%FA  @ޘ*fUlccK1~Yov]p^5vhcG|ɏyag~"gxftye6nc<+D$9 ;$̄` lcH췱!lܟ6\>܏1'> `ǀ,/1ߗOc\g;oe~}={+yas 1zU̫\]{k7?3joɋ/}cO1 A  @A  !ט_2>;k~d D,~Ur?ы9qA  @A"p߿wyc_jG za63#G3-ְa=kzs g_ḇY3_ꘉ!aKY51G̶l2? | sz&l ݃g G'Xc,7&YY @iV/.:[Sl!}<@n?yc֯&_D!5c=8:+w|ޮG~_"0 ]};\˦hijb̚;a_w @A W@vχ%F'll 8]~_oRlXҝU}s"3rX}%&mߘO,f|@A  @6tWK=)d{grekQ_/E2? \:ӡrbf;%L9I@A  D&6{>x?ՠ1ξb>fcl?U7{Ӭ_G-kb[ffdsl/rch]ckyq5v]؝L|Y"gC088zCr8&y_:g8Ƀ kW䂋="?y c0cy!c_?#bFwjOcR. .esWk2~p;x§1y@AU!!ay >>&u|߇w2J"v, 6>\9Wv7=Ԙi`u|>=Q|A  @A k&w2%7)TK-w:B~18MŶ| 2NޘاG9YRy!cᣏ!,I" 7Zv5D굁.}X/yycE\l" +E ;#`x 8^~2yoi!4Fyk6OÄ @ԘA  @A  E+8j^蹬=qCVk֣]jR2m=eQ16;Y/ ɟs̓1 @A [Ml̿Ճm]?+6ܹDmnjl/ߥph L!Ɍf|ȇ͛5~ǏNX v-& e8 y7&>*ƙieA [@wӘ>,/1ҩsJ!![t<3U}֕d̫\R.h & @A  W5S LOm˔ͣ7 N7:Ezy-Hu)G؟#$ܓy?v;c'?ۭT81O  @A  n!71OuIV>b!3CuPd cևa?akόXڞb{O\dXg_sbXs 9s5_v.blͺH9 Mk(uD&AzL7#{#rd懇йW94gm~χ=>z|%cKB .M^SsJ]ϬaѿvOc,@A  Ҙ˜ay >>&u|߇l)u2 ;!tݫp+yWv\*l y;W}zMPA  @A PۿkߘO1l3=u9ىIɿ5N'5Ξz-CNt >KҖ4O` A  @A!p_ՠ1e Exg F6|N1<>0"s7~(U\øs~-qюbEf3c>xd3>mr^lWv/E$~YrCƙ7L|{t ?@r _#&rs0k{׏5__g>C_t\od?d|m_}`sNdU]dlcּqjcE˹UC5~^?A  @A  !k̿uԫi̧e:c0檝)B|'.Wd1u7D}Es.6>P u? ~V?j{L;o͚xhoZ; ;9cc^ts~c c@淟Zyv'<3~X{`0~%j[s#'?N&zrő 19,ڋ!XŇ3 5wmDbГO{33 m=9ȱgoʱ|lW&+];}/Ka!Bz4tOsL`ԿK %ޥ9A  ^i?i?ĹΖ-& g(\>\9Wv#ǫ}c5^A  @A  p٘_Z{greKy8fTح?lVWK~C1fl_Py<<1D܂@A  @{v.g5>A?1 ʐ=걁gھe}_D-ӟ5d#~l5vr ?>ټ_ͯD{D~τ=d#kxA05 13 w`Vݸ 퐛bmGl:y̏Xל=[3돝>36B wk=57̚;aO4_ϖ@A |1|1|X^b.}ƶs-ߥ!!$,qa` c>\9Wv1VMs8~4ogA  @A kIw{ awbHv2-ؤ1"SA  @ ؘۺ[ #ef"=4kY}}92;'63I9ᱝ󓃸Ȍ :[͏46뙯}>rkC < ,yx6$!gDXC݃`062co,__b[ xy_;=1FmBK? ȏx @ 5?cnB\6M0Sg;x§1oA  ni?eNcH]=.c\gwyևl)%q\|ugiẹ`l|W3=Y׵[By;gmGd_ט7/9SZm^e0E8(u="e})b9~OYv3ؘc @A  n-71ycť ?kM093Ǿ;PŮoI~|:/{oþvCN{;;˻Bn:fH#7gp8_?7!#>fm;<Ȱ  Ǹly㣝A^:K>xY}SON6cO<9y3>d~AoO_|"tI|k_37̚;a_HcfA  p{Hcuχ%F'll 8]~2J"vF00+jiiem̯Ww C:IYZ<-ۼ1+9 @A  Cz}?̭"Pc>9\ogOX)Tq o-lfjbp0A  @A *nbc߿zw[^^b*JzTv^TJ66џ 캬^xm1-2]!D crc>[\Ƀ~\wYM$; 2@ذasr ʗe4{trm Aose~ʼ㳞'{ў}xtoj0ą;J6d\}u7,aѿK 1oA  ni?eNcH|_>v1q>3쇌 vL>hgoP~o1鲱1zԙ@A  @A Uӈ/K4s&,jذy  |hl=b!m~cC54Cߖ|g-5~iUci뙏 @A  @84S߹SjowϮV#?殝wᏙ *kTڏx|.RY۷9"ܓyO`Me>cc{ 쎑1mA  @ܘB3aئafbޞdu; _i5 # ?15?:Ȝ#=1&»?x|ɸ?6/iDs!6.kH@f= 2c#gz8`t~zsݔog/q}Zyc1@A  @A:ļ> 1:&4sEM hJcD @A  n71/u9V&Іr<ȷ:39<43~XY@5v1[*gzg[maĽg1q=Ӝ}Ƨ|_}nNt Ix@G .` Ezvvʙ%tO\9^:8!##>j>~'O{,t %tJitQ3k~X,/1R>acC8]Z-e!VpOlo·C˝Y v1GA  @A \,G5דVjݓޘE7]@ s1[WvZs? ٖ-!fwSaQc٬:eMr?39z1<9A  @A Znbckv]]?=.Cj|:$ȤھgOOz-X+t]5__K3?1울ږe%Ǝ\g/4"vn5<Ty?Cj?cs2 Zӟx  o4s [|~Lk.7o~fϤ-~vc}mnbBDf/y[πx86C2CbWlC4pHlgy/ڪc$xK=dxތs8o^fmCG?Ǐo&tIp[- ѐNÍ~0;x§19#A  p Hc.rχ%F'l,^ri?O8.A  @A [@yt 1 @A  n71_޻k "HA12vC?=SfSS[y)ʙ!DLzY=YC^1CDizHO$9Caf|AyY+gv_ " ^Np;Xq '?p=ǙB r؛9}}_|eKB9:wECWk}$ A  p{Hc}χ%FJc*i}tQbAվI 1cu>ieȞvgX_=-{?Wc[io@A  @81ΝzZ)swԪw̣^y|}]qyZzNW"Wn}C.PTUHkѵ3d[ֳ #c @A  n771I+AH048r3Vo6M/5=)yt9%^ Om=Dc0?2HCټ'v^lcڛg{?z6ю1n +cv-!Q/ 6~^l7gt4{u&q6#7:OX\l-:<#zƏ?~:tIpp-7Z榕Yâ? 7_5^@A *Ҙ>Ә>,/1R>acĹΖ-eV`߾OzC~B;/g}}֪1jF*kj'ދ6 c>@A  @A+xX_}WΡW@ yPb11 9( @A  p߻z{15>A5$R2l=6].:_ևV̚sYOMؓt5}!rρ6>:=91?~/E|Y7ݨٴfz3k qaiLGmZTr`Pk7{~  k^g󢾾3KA܃9OL/%3'X`fw>чO$@/ jeգ#Uee4ԺWցIX3 @U1|;#uc >>&u}~ؿ%` ;SRu=C!ZQW;$9SJ&1 A  @A W@ʡC'0mC1P{l=s@A  -E&6߻w.g5xc>}Ә>,/1R>acĹΖ-e(V`~LOW՘O"=d|o?~7@A  @A0iAD@A  MG&6kW?յȯ)Qa_1o[?Y;ز_5&kyl\Aʘ%L쯆7?6O|#<&{8Xss6Bs?er`ɚrx^8tq=g"g=yI'K{,@_fK:ibQ3k~X|#N @44KߥOX)u(ڥVk/՘2 @A  @xWޘϿwWw֪xںjeǫ([ %܈3=?WbLA  @A 2npcRo̧~b DzgKY=4+m<_=3q \7'r[cȞ\gŞ}vؓ=_n99G;N!rx͜_h>> }F[ Bq_s}CyѹƖ [{ݸb6ʐ3qn~?Qз@_lT64DC>G=ƣGK7f@A"]4KqU ʴU.F%K2#1ޘݼ1_3 @A  |ۍh5۬/ HLc@A  @Xv[ƿ/I>gD<.ru6zSҏmk#v. ky_m9h2ю8ؼQxc[CRw,ts @0:־=#zg~׸ݛ_2iB.Ꮿ(o/.k˴=5M,zf'|ޘ?A6 A i?Kc\gwɷ>d?d~mW1%9z,wvȩ;HӖnA=Q3l1՘v A  @A CP߻)nwǬwkC=̺;w^ l2&*cdLc澀 i^50ApXy?aU#k :E,~v9&%C3"qwP }y~¬?c @A  n'71^5뺢Ttb)[q6A6/mљotl?!G=z'O $Bw ѸVzf/q}߻cg/A  +@ 9#w6}|Ll.%_ ;SRu=C!ZQW;$9SJ{d-9o6gRk<-77o@3 @A  "@טOq\#G tfCzeݸyyzx @A  pݻz_յkװ{;FeCΚy<kzE5cFn߽飿qg|{!cjlO]{^cˀa/\"Ax `1=nīM V>G_l?&eo0c`XV뽘@ًkx#?g`Fo'>~̶B;J67Z榕Yâ? Y @1|9#w6}|Ll.RhXw&9 SwDӖ膽qZI+N8 A  @A o4sޘ%AA  @Ml̿Wy xoO42z~L\İ?;mḿx<9A£Ppcgl\++x9usau'_&Wn{>?q 0f0?:D6i5<{7/D1?&}"Ws[!2[)斒Z!19#A  pHc.qχ%F)o@=@7?zuSd|@A  @A#@|roz@A  anpcoAc>=[L=>G"+}7k|ӞnWq b߂< kCLde޿2zɹGob{b=G@ b8 p1L.@LՕh=(lc1?rY׋/{!>:y/,y_[fB=rs.y_\v?zKR. . j<چ˶mRq&|* nqW.eyu ,ă|oYdɏgS~A-ut({~%fH?Ȉ1X?SA  B}1X.1?/"!懘s @A  @x3u|t\o]oּE~| 5G j9敏WK(^>aΜ*r:Mq̕qk4KB̟83 @A !}To5^S8o!sDe#?"f~gfQCϬ~xІ|a}r) ة p+~{s# @A !ONN߻Ik|K@^23vlE YR;6z>uݏ|iK䡿B̋?::/kk>\6f×a}f>=6Ewe!>&cC^as"EϺ7'z>[!e3"杻_sbwfam.|/u]t7oe 7r7\閭u,GafL|cz A  z18?,i/23 "[ XdzRW{nل~9wPDha\RЎ'|a@A  @?0SC|c%}A  @ E_ubwΒ]6a)՚=^'?ŒWzb1쭿{p9֬[%k}{=b^=$UtL^35xX鷃I.5#zefG^Y<<庮OYb}b}f#Oo^py=z+C# AXu3US̓2fXһ~CWg߫EA  pb\b&~^EB̟Drul1U+Eo>:}y$ @A  p^ 1lB̿ 6 @A CG_/hy- ?^^5cc ߘ/y^5׿{Z}bnWFgmu:Wc깦>Bc}ӷ1'O?gQ' @bnDZA  pb\b]|of89,C̟/A  @A  p9!bOI,A  @A 2H?===w15] (3cckQnG?_O9 "X|znNd7VZ{vEuaS^5&|A5RuM펟1|FsPϚ滝5:o>d~snjyбf ưTlr;Npsm.r{T#'1#=?&l+wbީޓ?|K.% 0nTGš1wRG1eA @!%f?KX1!ߘ1~ A  @A  pbeHA  @A 6H?}1©ZN3o=Yq?B} `udYZг&?kG5>x?<NȒভmAt< 6|ca3d6A  n0!懘?,)yW$QKN) k @A  @;p 1B;ILA  @A 0H?>>>Շ>k|]C0w!WWr'cgf7߮n.jN-G}|P^lǟ5va\ir`kzrb~6"Ϛ?{#V˫yqY6]_\_XlŏKYO59!VQ\ޭ>5:̊6*0#Ǝ/ߘ?BX"7NKhmf~qmfǺoof@A bntr;4o7$$ @A  !|dA  @ @_/54rp%;j1]2${Igݟ5Nn4d{u`c %ֺ`G0E^%'^4Z;:/FzGvЏ\ՙ8(uPKΰ>~u[>TlMfl0C=|ޮ??zdz3.)$a+F[4O ،!oMA @!%f 1pgR z1?.3Ŵq.YSV{畑gu>ĞZ/_~eoݚ3Ǩ}oA  @A  p #C/yDA  @A8pbu01{^233/f蘍%|hc+uϏZ[,\{I,vukcc{N#uY3s~ sk,_IH/af~\^ 쏽r#( b]J.|ӏZ:K7սsAŌ/bO~E7jT2oY !e+`L|1 l@A Bm1X.1?/"|c.Mb@A  @A#bCO_* @A  [Gw|qe r9v8>DuX/љoQasog,y?K|cCC'舱kt3e^>['7B6^I(bC _?6A$AGC n-WaZ=>n{[ ]oÎE5Fl=z>,nZi" !bnirB̟w8@U`gJ_<H^y| @A  |c>0?l)@A  "8Dbѯ>ր{ ׻oBz_3N޴~g.?"ǚ=kc@@/Zq͌={+b6Jԧ`HaN.qE{s b\K yX37? D_s^xz|![vrY;z,ߘe)ziMM|y\f$˔qMn)W;tֲg@A B]1X.1?/"|c.Mb@A  @A#?|p1?}@A  8DbG75-8\eDvy컰z;w5WaN=v|ُ끛M}srN>aM<1ݎj!Gsg1 * ŰX^$k=&]01{ w~ڮOk978r3f}rY^zAkX31Ck"ߘ_(,Pa yGԗd|/MT A  p1;aL!ϻ0y&OV>@A  @AMBmܱߤ6 @A  ?zzztJ_qp,33x b\c^/=GG>=_K5YSI>f{f=53in}]۱'}gc i3BweW/#/n^&xcۇXze^K.ša]2kxR2 @A  p|\5 Ktx IL=9k3}\B zlZ͍q /j[̅pAO>5f|郞|R}BY!4U ~-t=Ӡ=w|Э.!"  B 3.b2o>z-ǻ @A  #?|r@A  @C$>+ՀK 2}~b(yc[SXסv}kؾfe>Dx/ 1?>4lM.Hb]j lro>fl֫أC#ZX{=%[Z{ϾǑO f{Vkl"? 1Xps!oTM}7OaeϓzA'}f@A& brryy 1?] @A  GbR1 @A % p@Kk7a ~dt 1z&g-{>lHǞ<5z}a_O6bl^{M6[zya2&$xU΅0YĦn:ͅ޾>̈ѓggF74%ݑ@Ap12aL!ϻ0Y[A?渫NqYa+7e*|:U@bF˗g[L1*|+3 @A  p 1xB̿!! @A F׍|ϋX % 3cwrt/'Y[5s7_|3ǟa}t9YOb e>z@cg1$W&.E?|^Ի !6C.6/{D@X{gGѳ';b~Afo} 紎9cU>ca09^ߘ^1PXpUΦjY fL|c"  @ 3.o7$& @A  ^?!柿}wI_(B=- @A  e81u_Ր PDow1z𒙉C<.Z!4{m̞D3G kRlo>z?0Fz,zλ|XhXcljlN1@EvѷяY? 6%“A ӋaC̓O{Ϗ=b?jO3n% bDzA  px{b\b]_ oJ|/{}ԭzB,7ϿyC7R SSDL3ݧئy<@<ۯN:]u) @A  xY7oЏ`<51A  @A L]ѿiˈ݆=ޱ6p=mpKD0z˴mbϚc.ӋZ?zu^APszZ;̮kUeAy6Ξ5C6碌H{3b^Sρz=9Ki}ao|ѓg+2k{Lw ̠Vw]kpA  n!&?,i/2_~~Wnu,%j%?'ӓ{=t#Ű.CϹ"o-O[)MvGq/z6lt=~:9X6${ ڍ5w{ژcn~Cu?;|R|03{ b=ByٳV7XP" ' .z֎Z_>8! FGN<r>zri_<}%!͜ ͮ&7hX7̐X=،s=X>Mt A  p319aLg 1? @A  5 bC̿/%@A  @XH̿}||~W~QN#}=$b98Ƈt‡K gaXvz+kb=RrY˰>:DԓC]^G[׳n<[ʁ- au6}Iavb^`Zk9[Ǚdvo"/YC?zsaSqf/藹Xq?y礎, nڊiy7͓p?mç>6o@f@A#bn~rB̟w!>YbsLuL1mKV甕lye9㨼Qd6j|Z3|oݚ3Ǩ}oA  @A  p !sFB̟83 @A !OOOݽ775WClgy̒Ɓb8l~Ϗ1gIS5b^~3:3#b?k،ŗXx~={51†[=>1rM/[5{^zX;ׄ >ر1컖k|aYl|ExattЩŰ ր3Nq .pO/Oo7:XwOb}l7<#%;5~GO>2XrDQ7{N@A ,wBKb+0Dlr[?O-98bB>s|cdA  @A ljP1~Ԓ> @A "p۷o}x kbxyżU7_NdgL,u&{Z!%lY[Īy\ׇ|krЛco}fb_{xJE1 u$wp`cEzC@O~\1_דlaSkVnRfb|ģNч1O~g[F`4Y/e^Y @G c&]{3&QWj@A  @ׁ_^?gLV<г1ayVJ2.k̿WL(^ö9[?^g4t3G7ܝh !毀@A   Cխ[ 1.2|bp@/YG2Xl,WzxLvf '1oMO,:2"jQrw~saXʁ-h @O˚X_1cF_ "ֱ^^{|A57_]5Co=f!5~g?,kE`μ_ubޖA  pb\b]qЬ(b~~~VF=eJo̟3 @A  ljnD4 @A  C$柜>'5k+$ayΨx+]$w~9LGַk"k{qo/(57.úa4+˚Sq&ˣw= @A& brr;47z:Dk1Ç=šַ_(1y3G8Sx㧿ȒƯY/Y @;!bN]bRU/(ߘo_.1yu8^I[kA%\υ=\s,A  @!8Jo8qzz1C>C A  @AF'''G5]!r% Bk5͋?::/kky#bm=cϰ>3bȕh\^fĎ (k{1 =^ߜo-g/8ws~͉ޙņec\uҽWߘi1x%uOMA CA 3?J1O'D>u]=@A  @DV|ƏG1W!/t@A  ?.쾬U |=T̒Y_6a)՚?ŒX_y=k8шklo۵1XTZNv}|vH:wI/ę|[<{~A重V I$ 23#g/F}vr]קO >}v>kꑧ7/yv]=z3F7"F1Iw) @x31-aL!ϻb~om3Y@A  @x[\o*\H>FB̟83 @A M ! ;˫,q1oüy˷&V?ش7pc_5C,vo^flze6o-\ns0+Ihj_ s {. `|k<1{>oFG]gF?ksP5} x=ѿٷ:}{Nm?x?{iu!/F @@!%f 1ޕ7~strʱ)?ߒ" @A  p^9?|^#!O@A  MCG~7Ʒ50;J gFGZ_ݎ_=DO͞A|mkc&bݎ=9G龵b}6 A#Է}{5cmv`Hs٘@gO{،|3O-ǚ=b kA 8bo\-J5rO3bٓO;>kf^߸2{'=ygDY_7/ @o6!?,)yWBo{$ @A  h.Cr3 @A  nH?}1:ZN3 ^)!g/b,7{mX5a5!5΋X\$Z__Ybuϵ9S[_Cͬh㡲3?k?x!,qi" !bhrB̟w%ݟNH&2 @A FG&ruJ^1:A  @A8Db>_^vM py{a=e Υ~v!${Iwֈ:^_;qG__kgѐrHσ0[XMlk"^9:vy<^@x^4k}>ٛA?rAgVgnãek[g@IDATB-ok|/1;!uo}CP#F;5L y/SdYp˺'&  bdrB̟w%ݞN-/bz A  @A msߚbC?r9A  @A 81! 3!3#:shdc6z+C>̺G^t-GO^{M.=Z$Z1\=^f?95$$ۗ0 pH.VA@zG/^j9A\s߮o{%>eG-{_%|޹\FmGz}bƗ1O?wx"KBuc:u YFۘ;ӏ5_-KA  1 ?,i,Cc`4J|]/Uv6!'&bgAuSoǫmC7gU?JtvF g#Uҏd^cTL>x# 䛳[Gxڿ&R7 @A  pޮ7os 136b!A  @A 4[Gw|q/k@%@%C>ǚ|=3cYL%XƗ<^[-N3c=cg>j9Ľv}>5OnXmPUņ&v/lH8@@zZ31gpÈ>z[Y?|8~!j^͇'5{/|6JYܴb|n11%8>EA @!%f 1?|oS|$ @A  .Ez ye?qgA  @7 C${{eok;ηf!^t7z̅zGXgm ^S~[:{`ϰqB FɚYНigN.qE{s b\K yX37? D_s^xz|![vrY;z,ߘe) fGS5n1@A 1rlj 1Y!ZA= :<nئyڑ7My A  @A q,ߓ;:G5t;:kOkPkoYLs l=kfs1aυI~ fm0HݮcZ51 lY\gm.^гj9g 9z~=P7 nDa0 ecJ/e]}Y @7wCK4~ޡ|c~1??o;c>sYܰX1IAS_y*\^@A \!3? 8i}H4y(|o~CF$ @A  19~C4|b A  @A l#p|\_׀/,I=/y+'1]4sq1cÇk67>c<3h|t}g.s:| }c>3qEG{2,&9Az4\e8˾qSf7=ē˚vHǎښ>;{{;Vo,51'_Yu$8 ƌd| o77p A  pC17:aLϯ̷ES:{dzr|b1O?}"$Cõjn#PC_krK~ӇuK% A b\b]_ oJ|ESrnYbC7R =g ӿWR0Ov'17EYu}N @A  d8I?AޫzO18||||t03[ǥ X =ڑg$FZyu5l9<$~t@@A  @!z>ՀK2cC>1zjyVtHgcBQ @8xB-1X.1?/"/2 8Zms2=6C7R ;~9kPgkC̿wո @A  p8Db{w 58v2/.qPEd e_sχ ؓFOB5 F }3^v¦}kC/O>U݄*չB4MG\/#~:ۮo~|{ok_">p_{ tG^ׇۗ??zo, n`l5*14 a+˚S1Ǚ6 @ 3whlEU\;9ֹ8 c 4F_=xoMHA  @A"b~{b+={ۿyd A  @A p&~^oY °afZ3{9ں2wT= Cxrk}l5G.;1'z5v1/:CMHrٰy#.;wO?͍=1 2{vn=uɌ76\9:7MBΰn% )c]$g҇nvA  n!>?,2?uEU\;rb?zcA  @A ,_X9U@A  FU I@>Irm軘=kxġcof}\j-^[?ژ##Nt~6|7wK=zkX#=v=s ]>,K16}6~ۏxl xFn`";DǬzfˠA觽ǎ1q|A`ޯa0C6fa3cMpCA ׍@Cf׵MHݠ@gϚ2V[ "3uz2̂l| 4~Ɠ`ןü}{M=>Ok|,ɇݾjGOa, n؊i$ 1wk҇n6A  n!F?,i,Cc/2_~~WB̟G}"2 @A  \B̟/9w{oD @A  pS8Db{w~[5AB9/ZQc,ѼC$jiџ5q̈9Mo]cgLkr[dzge}fI_,>r%'BL7'v\&ZԦwċ)^ "cW˵If"91n{z3wE_mPOam}b!#aM\ؽ.ћGˬo-~R㗏|s, ni$ 1wk҇n6A  n!F?,i,Cc/2_~~WB̟GDt.Vg u@A  @G >!ݞ[-:QA  @A T[Gw|q/jw ¼dE"C$gϚo|I;>Gq$ =5u[qg]u]KN^7/ۍ5qU3bOtvOChffp]'\:o"{KyCě`} .z֎Z\}pA}i}r(쁞B?>GOnt?񋧟}2$8&!gX7x=،s=X>%@Au!b1X.1Yzƶ__%e?!DdA  @A ?_r !G??~IYܴ~I 3mcf6\O?֤1l@A Bߍ1X.1Yzƶ__%e?!DdA  @A ^!f, A  @A!pӓ{wM P.Y{|Rb0# {Y;';u)8o;?6Nk`cx^IHm43w=^;in,tۤu@>@\k#q{MX:c'7xf?=X_qMة/]G>|,qc;fTx=،s=X>qi" @x}?CK4~ޡWs/?+!ϣx>@A  @o.!ϗ}B=[t@A  @"1;{e 1^1GOf^"!13>r!_X|ڳW\c-ĺ޽u/y!z􂝽\߹쵡7usMþkwNP^FNG^ kb 8:ڭoZ8K}C9~Xd-F}c?B]S~ӳ3+MdoV]M|1wRGi" kE b\bmJ|] 1iC@A  @xs1ŭO1YvNTA  @7C$߾}wW|c>C^1o-Ʒ^Î/{!#C1K.W>>U&7A^6ľ*6}|c.`I,x|߇8}{Vc'1æsܤ~أGO |[1|c/.kb~AƠC}3XǾz cæ{]l8|uX|;'=||Dq;fTG!h3{z.u}9Ń@A \ !3whlEU\JoLsh 1HVg/ώ<)&z?\OT A  @A ?_r !nщ A  @A"pG5kuo! sFQԷI&vGַTk"- @1?,wWsoo%y\131A  @A e!b|o }B=[t@A  @&1w~[o5щ!)d>3qKs>2~ZZn+Ǘɗf@Nc7!]'7׏\kG5Zb^=z-GiȦϞO6Gj9@:N^D=k\oy=\TO}˾?oR yAoa7ѓO_*$ƍUsS5oc7C6fa3c]7/鮧 @sr;4"*y.w%|u7HdA  @A 2',~E'* @A !OONݻQӿj YE/by[=dcF͞|1uԷ7c7/717m1@>qM{U/zu_IUAc\t_lvm}X|Y:k0s`}k'gzo59&S;x+ĸg|эo䳇ϟVdIpVL&!gX7x=،s=X> p A  pC17:aLg~|<b>G:ӄ#9 @A  "b|˱',~E'* @A !O_ߘ_Nr1$3#HrNC~2~r͗3ڈͅ156ԗC?Y[ùauqTkm=' _UA6@v# ut`bFP1?sw33 =5um}س'ٵˬPkE甏, ni$ 1wk҇n6A  n!F?,i,Cc/2_~~WB̟G}"2 @A  \B̟/9w{oD @A  pS8`buOZb>jp! I-4q4pr0o.2?>7nN yr?039K_ijnc7-GbţoۗD/D8 p3L-@&vJP`Pb}Yd7Xz!?6X}X__fH<` Go}K=ߌϚWm;5~xR%!M^17ښa0C6fa3cM7&  A 3whlEU\JbOD @A  @%bncv˒ @A  nH?>>>Շ>{_):Dk1Ç=šַ_(1y3G8Sx㧿ȒƯmMBΰn!h3{z&}f@A bntr;4"*y.w%|u9{ytvVGd˳~stzz?\OT A  @A B'۳+~E'* @A !ONN߻Ik|K-zyر}F8KjG_ϧ/|{^Hbz A  z18?,wWsoo%|u 131A  @A E!b|o }B=[t@A  @01㺧_/Xq\͒]6a)՚-?Œ̗zb1쭿{p9֬[%k}{=b^=$UtL^35;X鷃I.5#zefG^Y<<庮OYb>kꑧ7/yv]=z e0(Uw3f<̞?l߹~Ibnz A  1@?,i,Cc/2_~~WBh[g}$2 @A  XBo,Ձ?%QA  @A 4Eoj𶙗U?/>6Y<[|;7pI/涾~eh0C,6o^flze6o-\ns0K]^Ի MKhaneυ q!O|'}!0࿝u^~A=Gȃzou g0cp#WLn&!gX7x=،s=X> p A  pC17:aLg~|<b<憘9 @A  "b~{b+=ۿyd A  @A pӣ{w?ZpyΌ236fyǵ={==٭v;6G龵b}6 A#Է}{H}j"6;~Z|uyec=w;kt\kb3N`<k1k܎\\q+IO. z}ʼwj=Kd 7j> Gۘ;ӏuݟl @A ׈@;aLg~|<b>:}$2 @A  XB?y^ߐs[m{k p9t+;IZ'^It3ͩ-/ew!krs!q A  @A "1B|Ntk98^?1~l#ٸ2 Ȍ?v|ٻk-ԇ̌x뛣:7~_k'|`us_˵*Xo|\8vċI/Ž^ͳ]<ک{+znOzP:9?Af7FbƆ5Y#?'sJE7m7\/u/=،s=X>%@Au!b1X.1Yzƶ__%eOǿW˹mC7R ȺCϹ"ӿWR0OvY1@A  @oEOguӟcҏqafKzC;&l#J{xII; I ݝ*8GlH`T`^W`Wq\@Qpu"AD % &ݝ|ϩァnVs9ʇzuQԋRe?GPme޺WS9-G1ǹ[9*z&iZ^ 6qpNk0{??O'& @A ͉F$sO{3vSGʸ A|G"\d o]#ziS>>P>)ج?kl}ćgkyK1=[Y_,ՈYMd r =yXlŏ%eYO59!VQ6'[}jgs3+xQYџ5v|޳aDzOF]5U\ZP# ]7CWr @(!/2fۿ~tCS, zjjoWJ?kPDhj݃4f=Wj-sA  @A`#h[s_^Gs}z@A  F`#m6q^Yep WY9{8ȝ1^<:ęޟ58ӯ_kgѐՕe>6l]b6}Mɋx>rUȑpᡙ=4k<>@͏ 33qţ x X׽q 1ڙɌfbϭ8Co,\lj7CtVgmX>)A  1q9a{9|<|yl97U1k+/̜o̿epN @A  8|d|cW_Sg>X.-zĺYD!}C:! @A  0B`(Ǽ xĐppQdc6 ƒG|f}~LeQkɅ9Ů,blSA]̜a| %4Lcl6*9 O  O7 22l>{u\\jmGŌ/bi]n5Y&P#X[Cj3󡕶:Mmǚ!揁MA M@!/eTKwƽӍn -_{lCWST;~jlZn}kjkђgQߘb~9@A  @K@s_^Gs1/[[o\@A  @lDbqmvl?re.benR! _u #!,W`Z=>n{{R;Bk0}}t78e}Q4@VY*TJ} +ᥒc^K+;tI'eBA  FG ]2fhlAzm-4K?f(-F@A  @Af1=bͼl4ߚ(@A  @3؈-[ :cW2C`AkϷf!^O7'oZ?|3sc͞1@@/Z_Ó_53}?쩇3o\QU!_kdM}-t@sr ia݃ bQU?c@V_߽{ɁN=@> ƣǟޘ z}lW\V6eu}|c (˲/}3jK7CVgmXub\@AC ab\LM>^OYWB綷ӄK"sA  @A ]n1p A  I1q:a{9|<|ynwC9 @A  @u|cA  @A F$oݺu8},2 Kff"~'ʸˮ,EV)]5UɪM ˟rKsW1* fA ]2f<b~nB̟翞 @A  1'{|cz{7 @A  mرսϕ1\e=|b=~>8G|YV!xC^13WYC#Bgޜ}|k ^ЙXx'[˼k-B{ b~|hؚH𰮋 lro>fl+˺G8OƱG<%[Zn-)5?>|X0ۋYcMw/]!$LcQTc @K@8!/eb~*M$ bn4?77VEVA  @A Y;k(bWC̿y|b A  @A`m6"1Wwneוm'n2^3b{?nT/7=oٗÆؓF_x8k:~~_e9ﹴ{&b ~ ro9Xo/E?|~Q'$^ lؼԐ7b@IDAT.;wO?͍=1 2{v.}N똓1V_u\zFC/s09S%.\aLuTMߛ%ҫTIp҉wEA  1q7a*1|&',Kxu&$ @A  \mb>xW%o){2oٲe8܌\n):SUϾj넭3җ$,[<Um+3H#x}j4(8w5:QR$#MK&>μVY;97&~A  @A  N̿\kːȽYP΋1I^̇5dfб7>jE!܀Z?ژAUό1p{_u碮=z>d=sTyXhXclj6~ҏxl xF.`Evѷ~lK'/֧Æ^?=>?vq_\/v|=Yx! W"= @xkb\L>|<|g=^˿FzX@_{ە= "4ͽي[77<j@A  @Eﴵeb~/˾R- @A eA`#=w\P0ː3 wqvooCÞX7p=mpKDf=k~྘VDسKː?O3'k}+ɹƏZa}3.G* 8{4Xm}?CǓss,{x1>3bߞρmeY+5O>oU=?{.>t,\Zj7WK ja#K%}[7OEA M@!/eTKXͬܗSl +nZ1A:sض[ߣ#?f(_ A  @A A |<6soo̿ΔI Q @A  nHߺupc_Uˀ .!uu'gXkxY[3Kb}yy{YּD͉guqYXx}Q= {@P!cW+>'S{&g)O,{< "y[ߺpB{ٮyE .ptEKA @!/eb~*$ #bnBQ.7懘_/U @A  WJ,1 @A  6+qۆO;\+2 Ge =k\ct<6ڣfG3pNRSS_ףѵb^Ƀ^>zf~ ǚIgn{jcFi/!ކ# QEdZ=Ēz^>1gMpѳveu 8D}ё)}ro}Fw2NwnƲ,\KX#Tb:Mmǚ,@A lB_ܥ1qX.c^z&',_޿+/Ы۵nt IhI*yՎz;(o|c>(D@A  @7@YnC̿,1A  @A lDb[ gr+ʸ n;#>nf|CY7_p,3;uXc3rzWH_!ꭧ\~z֑mg; ælX0F; +ı{Ǚdv/"/YC?zsaSqb/藹3>G?r|ܳw%:Lp ej F[æucM" &@ ]2fhlAzb~M嶺RG?@wݼ~@A ,x7;}O~nnwpکw Klm @ = 1^ՓQ @A  i؈m۶;wl,2Pw'%ネ$_68lSo1%O}bSלch{&csPsZu̯8\wDB#hi9{{=…}PYַGX5YG$sa댝|^Fkt` j|Q3aX{2Nٽg߮,_4@^؞}3ꪩePxU}S_(?Ļ,yDA  p!b1qX.c&/#דgoJVbn1QDCV1cf|"Cg- /6fkb 9л%/z|ȏ=hzƿ^׆<Ιq;6} >B7\ Að ր3Nq=]B^XqїA0='I>6C#%m8C^R]l"˃@}pZk2|haSۺ.'$ -@C:a{9|<|yZM7 %;)KL^jjo]臞cnj݃4f=t-[)oƯ4[ߨ!19l-q$ߘO @8+o^wϝt_<{xO]e@AH1'9oqA  @A`s#{p;.(W2|N1byثǼWSf_C^GX#]"QǬ/{&/by\ћA̞b_9zzb%h l HE@O}Rz|^8ly?˟r3c#=5eo]gt>'w%7e>ԋֳaF 5U:MmǺ˟N @<!/2fhlAzb~-?7懘+&sA q^; @A  N9"'q?q.OjB6+=I<&^;|gZַ&z'_s??BLctԷşdsa_X|݁]4^eM,t1/zz|W_.6rkz/X|Gz1w&1-={/۵9ԋݳoF4U{)f<̞6.B?9Ń@A B_!/eTKw%|no=͡1hI1h!A  ps{?:|w͹u_c?/|!@Ap1=B?WδM[ A  @A F`#n=v8}˩.sC猊[QB&nj]>EB'O/gs͋6C~G/'coϣ6>][~鯯 [,}>epp>`X5>{jsX_{ d/ [<#yzׯW'>5ߘ_PXB/}3걩uDo<̞6.B_‹@A '#b1qX.c^z&',_޿+!}EdA  p3qCU>2~ZcW/1W/6c/͌=w1PA=9?zse]S>kh}ty': G4dSg= {u&BYV񵎠Q}.7t'e&Ǘ`ÇX:G$p$I1ݯmW4-`ce ?Y__ַ{r!z@bZjbsj/"3zs]={/۵?mE .ވi?V#T:Mmǚ!揁MA M@!/eTKw%|n}=M$2 &A`^PSѝNag ?+S?}Ï=uS"{*1<<nG@A`r !UoD @A  Y؈_1rM(2x/'C:3T,'Y49'oY<[p#V1}}sCe 7PauqVrOy_?Dj^K#r yq0z v,zY Z{_Y#gݣo cCOMtl}qgMOٵˬPkDw,\~Fȩ13muf͏5C7 @wC_˘3˗J;|_@A`3 ~小'?t1{_{ӱ~ç(88na]ON. A  p$.s !@A  fE`+2 /aŐ$}5- eEV5xs'#N.2k~W ?> ~3uY=OЛ9/19ȅ/vj3ȃ`s='y!3qԷo|-&_w`@S4g.fSN@\a\ =,֟<̮}Ŭk3[~ݛ8~?c;gjs2{Ͼ8{dcm5BN!h3{~߶n~Ib @$ b\LͬܗSV]JM]m+$:xptOs=ſ[ u&w%u֙7GKm1z$  N'=dxӿ. 6e7OAEA ́@99^A!ⷪ* @A  ph601r˸  n%5a)N78 3v͋aoI}g 'cM_rַG>+%?R8NC4AWݱw' ~ǕA~~{0Ʌ?}[^`@^yqoyJ}:O~՟]S<}}󒇳e}{/90F², \Zꦩ7WK jaXpene>)A  1q9ax^OY}+!sk[m)ߘϗG@A ̋s~χ߻g嗝<|>xw~y_G?@Ah"b~{'^ڊ({\MY#7CQF1Df5}wsnL@A  @EחQo# ? jo1kr ġg/ߚX޼gׇM k}ry>~͋95ټeYcgba>1s E%an@Ï 0>k<~ >gmuZGsMyc :~N>6wnP kSЫZ|haSۺ&}KpBA [yr3s46 x=yf]a;۾z'Y]rǓ}_]V5z;(oA!@GWO溩gy/=Nӊ Û޲wE- ۏ 7ⓟm p3d^}u+$[@A`m{B_yb [A  @H߶m۰siK{U/[P (3ccnˢ>{;ŧ͞ANjc&b{rP5uz߲b}6!L ۃ}g XGs'\6AY|og΋Y،cF뇯 |<>. yS_ x{ƋNη1 wl@A`"b[?O1oD @A  Y؈;~W1˲r1#<|c^\eGNqT;Œ?v|ٻ.jZ7GVz9oZõ8ჭA Z?eon! 9<k cG<$C$} voN|[^ .v{q?B} `[aFA~㬏336U{S*LpFL!Zxՙ=?lo[7?֤1 l@A lB_܅1qX.c^z&',_޿+!}EdA k59m)?oە[?pbG?ٕZZ@s9 =s_S\ frbGFj¦'k!!5bsm,~ / ,z:ϵ9S[F8YƋ:̈7}/?p@& ׳oF]5U:MmǺ˟|cR\4@AE b\LM>^OYWBv}IdA  ;}pΓ/^dԣ|yxx~8,{O_;Up^rz8 A  @-~b|/x/:QA  @A lV6"1۶m_e\_p! =e EU]bd/ Lޟ5= n=ӯ_[FCWWU<ٺZWl`\|豫#c#C3{hy}>ٛA?rAgVgnˋG[jyA\C}{:b3[1P[qv})LpFL!Zxՙ=?lo[7?֤1 l@A lB_܅1qX.c^z&',_޿+!s;[iIu+GGPZ @ c_4w7}ߔ^ś޲wەwp߻-헯Xg|W>yaA  @Z$kcGOzay?"!٢iL@mֆCrX=^ 쏽euбo{-.czȩY#|YGھ}yE .Ԉi?V#T:Mmǚ!揁MA M@!/eTKw%vbA  bh{:R-'}Gh-г1WN~5GJ]4s~÷~}3ɂ@A WFyBoD @A  Y؈6~y^]|9j꨷~ػqߊeR/<תa,6b{.t78e}Q4@6bڏ9:faSۺ&}cf@A` b.tr3s46 x=yf] 1rOo%9 6(g_p&ĿMyov)-e;E3;6'sl;K#״E@C]nzs'm'kf~S=gX߸B Fɚԛ[< F4.@,ދ!Ģ:ra2/1ǚG{ ;z㇝k}9G?1ޯmꔽ.PeQ_$=fXSPoaSۺ.,GNA  -@:a{9|<|ymo 1ߗD @ؠϽq:SO)<χ{߻=Hb j^~\:4ה> @<r !@A  fE`#{p;)2/>q{ZE*#rÚ {yˬ'=P5I"Wσ_tsOfSe9G'&ގrL>̝zaϚL`0kcAb7d}5Ye][8Ƒ|^0y={Vul<~ƐߟGߺ%.i?]#T:Mmǚ!揁MA M@!/eTKw%vbA  Qxk;<9:W=~g*k˟ŇGhmEs{œ֨0 ]gdʶw53" 6!>{|щ A  @A`"۶mv8rM.2$_C gh8@~9:?aMnfI__5}}j9f=P!Ose۾tַ\n}a/F?!qH=<<1C,=2%ŎaͰ:퉙=zUU!2y?c318{{ٮyD .؈i?V#T:Mmǚ!揁MA M@!/eTKw%v+|(bmGKP?@A`ny'o}NvyNU|3n9/g<|Y}^:e_2OG@WyBoD @A  Y؈[~^Wq]% 3I&#kGg]+Rwٻ̑eBzͨj/ G[æuc]I'e^@A [rr3s46 x=yf] 1[rOSX{H HVo:8+&sA |!#p߇sy㍳9ivֈ1Wbʽay خO~^MmK=v볧}bNMe17#O{Bwp/eBzͨJ8g (\S6}?CA  6!/Z8,13˷o%v|(bYg9mGKG A l,ym^7/nov^1~ڗ_8ӟu7|`\\py W~~e9@*F΢i>O^!e}Q8G~HG1g5tb-d}k~~BE sxȀ [/uQUOɁ?6j736eݣC'#YX{O-h{}G>E,EHݦb K&\1Fȩ13muf͏5C_˞v@A "8C_˘3˗J6|_@A`##3SG~ç*Wy?x3|3xxݟ>pg>T@A  1=B̟e.~E'* @A ͊F$e12+Nd5fŒљޏy^scO}}a_O6b}=tƖ嘿/lѷ6Z4H:a 4IM]y =⇠PuJnڷ5O,B9\ck7z0#s|YC:x2!1jj3CVgmX>1p A  I1q:a{9|<|yϭm9xPe u. Xo9 `y,DW oMŭX1?kG>w;<{LA ̓@ '?/K@A  @ll`byZ^^|f % 3cwe:C5s|3ǟa}t9YOb e>z@cg1$W+kcM,k!E=xb3aGS_sA>77z`G/ͣ~ع9cNfX}{sa>c`fs03<ߘJ1…!ZPxU)u]|/~> x A  )1q9ax^OY}+![yu&& O싧>S^'_̇L}=Hz9<,4O165yS?G<6b{_<`#0";яY? 6%“A ӋaC̓O{;z8#/ۗI{q,Ƙ!Zxՙ=?lo[7?֤1uzA  pK#b1qX.c^z&',_޿+![}EdA W~ k>{1/M:%;7X11l3[ʲo=_?}JEA l.B_} !߀ @A  6+grM,L]Fܷ]аg6¹̷I.?=k>v\YOe^T+O3'k}+ɹƏZa}3.G* 8{4Xm}?CǓss,{x1>3bߞρmeY+5O>oU=?{ﮃ1E .؈i?V#T:Mmǚ!揁MA M@!/eTKw%vbA  l%ޟpmÎ[vg[s˧*;.x%ngGJ̿_2OMw)W~݇? S(@A`s!b~{0m'?7_t@A  @جlDb֭[wn?\ӫ|!U5{8˲dzZ4Ϛ8f&5v}icE{>gҗ8?1Kj7Y1}9>_5hJu?qe/~YK79[GE_mPOam}b!#aM\=ͣeַ,8uv3eB ӏZ;yѾw 7Ow?GNA ͅ@x^OYWBo!@_H|s1_yp!/t'i?)nk/pJ+멯GqoOxT^|Οz{ܮoA ͉&8ppx;U~Kiӗy˖-1ffnCRt<`ŧ.} [ّg/Iꅭy˲ͣKN(^ն2EM播ܭ+RՃ{ݬ&e{Yd̡}C@A  @H?q (21;knIH{3> .5ef{e]c3^XvJɣo#)'5 C[O=9=#Q#uYw`@Mٰ:f}IavbVc-eY[36^x}E^1Co.l`#N1\\lK}-@IDAT:c}t#Ǘq={]roMs"E1u̇V̞6k҇?n6A  6 !/B8,1S}/=Gcדg/ߕ9ZM7#;`ܿ<}[羃"ꘛF Ϳl]/yr<)o47niT[sIFr,guMђk&@A`>ϺtO6&wG׌p\Y~eꏔ:wcf]S;)}A  ^N[Sc#!77 @A ͆F$o۶uعc;ߘeח2r3CfIeYm0b_6Rqб~Xc/z#$ycXC99:WGa.>L#hi9<{{=…'1A W~zx.>k}[jp;?|>0ewҫ >|Լ|׽`<7]i~Ѹ2 @t '{|cz7 @A  |y;[edK<;8R<ZXd?)F}c.yoSƩڽeY e "PSQo1y]: A  +b\L!淫DlemUkY](6~&sA l,멯};5L۟o.<̛kcϑ~i3s_?7S_uFC _ct}]r[棍@h^f]\ .-eT(7wf@A` b.tr3~y|<|VFkkk7֑.rܿuߩ~:o6K7uC_E- @(<~'W^77iGxK׿S(@A`!p|y;JRe޲ep ܸ踇ŧ.} [ّg/IEyyt ūV|cÞ@A  @(l`b9x.ȯ O@/YTcowx46 GZַ&z'_sG}n@3_TS}.; 8Y{8|E1F`EP/bk6u_.{|CW_tCo=f!egeX"GzaLHS5}oT.%?lo١[?oA  6!/28,13˷oFt[CqU2=ȫVX?wPD=zVïcfA MwA޲`_ ޿atz]Y5+yy8 A  @A F$ozp]]8gHs3 9zm{~#[u67 Mg)7?4e?><ܗδ 1ןm÷|f_KwkO5S(@A`!h[ A @A  67[˸ n;=^1v8:?ڣ6(˚>}c}b>6Hsѓ7WY5G}Ka}pyLC6e~ǟXgm e_:y|G}PJMؗ^{۶'/31 Sv{ɁY.ZT2JpiAQ+䖢w]br]t@A@ šb\L_G&',߾-4ofC$7:q$| +>5_{)=S?]H#/{Wuu}~mԧy2-GBauԷ7c7/717UcБOrM{U/zuHHAc_lQiZ&}?}1#~63>o-B&XŴ6>N/^Df 1Y#093{^k~ڊ,\(hru,^} uA'6 @ ]2f<2 x=yfϭo 1gb@A( OT죇~Sz?^Gq;s~~ <ӎo>"!>yLeieG?NӖ}S(@A`!b~{'~b||щ A  @A`"[ 1|c^Qep)^N4:duf;XNirOO߲yqnG6bBoˡ?Y[ù?^]Q0~>ռG* f`@X &35>{FǻGGdžuֽ!#bϚ^OYWBo!@ˎi?5| cƯ۹ ???ipw'OY=k%瞹fWq}džϿh~wO2" 6'!wyG7!1eITA  @ H߲ep3vS˸ntMԙ^$?1b;Ə8Ȭ_YV33f(!gl?f >br _fzRO`Cgo[L.h\֟øDzY0!a?3y]!XY>g7Gq{pϺ?{$%ԠLhO=J$\ӣK$EAxoOO#ZaUjQ"Zx\r!xEMBb2缟]ߵ^d֚5{{ @؛@B_- @A  *>>tMUƃ{ ^aB̌gtvt1~Kn'o/Gg^WYN'7WQW˰>3b[H AryAI~m/0s9}g7'z>[UY3"m͜_sbwfam.|Ͻ⢻|c|Y-FVFT[Sf (.~>)x A  '1y9axL?',߾9#o~ؿ}'MvT A UA{}ܶ1|6??8ӎ;'|>+;O}3CO{ÇÇ᷏stf}k޶rY9@ABopB_- @A  *cq<`s4K&G7k+qGr 1ߗD @8Oxwý?-~=\A^n|ѭ{~EG>OFG]gF?k8e?栞k@ȃzgsjw7 N~~Fȩ 3mufk҇?n6A  !/F<,W1S}/@c3˗JbA  p 'm^} P~dxaGO~s_2~kw.~?<|_r> @؛=`C_1eITA  @{ H?pp5|cx >XvY93z8ؘee㋾ŧ͞A|mkc&b{rP5uz߲b}6!A#Է}Xk :-,_8(<1.5v5db3?c@a-Xt\+*?R՜njدzӎ⚰Yo\1{'2:~#??QsM^:M͏uQ_Wr7@~wo_x%ûv˰;WkxknTvO=o鶶R6S볟qp?  @(.{AU}կf꙾kkkþr1tZzU['l\S^Q[-hCj#,ˏlښ3zueYq2]k:ل{Y{sLc@A  @؍ÇB̿ Ue4cF8Q?1~fox,jwƟX|q]qAO}舷9<Ǐ͡} l}jX:f [XLpH/5 cGH.%@k#yG;uao}{E/Z^{S13ʠ3bg}t^kk1cCϚ ˸;p$"7mQsCj0󡕶:M͏5C_{^@A +B_!/UTK/y2~f^7ǿy.Q9"uCWU{:CϹ"ͿTmEګZjL)QLszƞ>=b~1@AB]5|ȶ=7/xƶ6G>szpj]9_T~e{˷A gwLjo+?ߊc捏A  @{H?C+wwXy ]2\dGr{b<6|ZvME-x)ZzcπL|_lǟ5va\ir`kkyK1_,4fĬ&lzF!rAz|b6?/ ,z:ϵ9S[F8YƋ:̈7?o<5\B޸ 3꣩m͕҂ ٥8_crKٻn~e7 N @;@?a*1|Ʀϓgo}?%|Lb΄ * ___-@Z|k|'^ۆW}&ݫ 7\+O /|ُn)Ory> @ػhB_- @A  *kn*2(c'\if (K w.njoc $xt3u{ֈ:澾0ׯO|^]YV`/fk]}mzM^#G]5/M/N hf/vt^>@͏ 33qţ !x X׽q 1ڙɌfb+8zR"+71'ij0CVgں&}f@A`o bsr3 46 x<|yqiB%9 3~w _5_3衇N W/su n~IS~wlK ]EEA ]B|@ !/ANTA  @{]N̿ˀG \/י t!Xy3'5:23]G'/:ˇ&>ZǮ,sA-wle9>֢Y ɖ%4NclֆGA@zG@g,uбo{-.zȩY#|YG1'zCܨ~Fȩ 3mufk҇?n6A  !/F<,W1S}/@c3˗JbA  p>"[ -?q ~-ÅQo_?Bg>yk?{p-]|˟;gÃ-Q G ͇~bb/{[,:QA  @A Uv#1  rO-bev)4>DuXOoQL%XƗ<^[YV!gr#zѱ }e1ְ>bwVB2O0{cDt1B<6ľ15~qÈ>j꨷~ػqߊe9zL0.t7˸GNQ4@6bO9:aaSucM'& A *fhlAk[S6xWo} ?i_dq yl1D@{C]~bboD @A  W؍z~`p![ާl7>9a6:)Z׼6A|j~ Oڼ'kf~S=gX߸B Fɚ[XЅi\ !6N{o!8ؽpA,#vC}^x~7"9#ة?~ؙl}Oo|o>+.c:~7>o*"7ƚz3muf.xr# @8GN'}[B,I[F@5!淇1/˺Fs#7a'Y콶kf3}zEe\o/(pcGL!Z'xՙ=?lꟶn~Ib @#b\LM?',_޿+!# wF;otFۙ@m3n7YK_4[ ZPlb}ӟ}vsWuX_o[$ @81󡮟'KXNTA  @{H?pp57{zo!i2b8 D1.טưK!kr3/O,~}MA^t`fPBM'>;_8}go ^w~!/\s@b#=`L@k}ce}|CX3+A{{bfselco^gcr0USɓn"7l;G#T:M͏5C_{^@A +B_!/UTK/yb~; +"sA |lx绎o={ӿ{<G"qnk{4myS?ܛv> @B_- @A  *ϗ>t-Sʀ/,I=O+}*-Yi5zr"Ġg Z,vƇ8bg=8wo}3vrB>[8uƢ#y/z4\?7KqfA7}a N14O.kTE2#pF5#ةόo}cQG?r*!P_`=f\S_oaSuc]O|.; @rr3 46 x<|yQi6N,[s jƐo9 Vw^td_ /gokW&'~c[Z^d> @r;!~E'* @A n$揾1_brͭ0@ oǏrM%x1w__¾~5>kw6?~1kwxsm̈1G39jEٜ{.ivֈ1Wb7ʽ,0Z][85>zgO=Ħ- =cPӯQ>~e2>qox!/UBzͨj/,[WaSGQ}tKA s@9axL?',߾ۑ9E^ A UDEplKk^z2\r[l*%1{/ ?{K/ޢ" 6!o>;!~E'* @A n$_pTe| 4lM.Hb]UAn'ب|جWuqc.2wkOqqSĂ^%e<󏄘_X16dcSf<̞6O[7?֤1@A  B_}1yXb^zƦϓg/ߕ6|_@A|Gn60V%1o--?_٢" 6!ǹk$D|;)謏νvs/3">*8zUB:bO9:aaSucM'& A *fhlA @=@C_1eITA  @{ ]L̿˻y °af쎲\gHrcnܖR=lϰ>:Ĝ'džX|2= 3Ys&^̋5~go}^LH rٰy#۩]չwF ~ě={b#d? b1'3bsهv_ `637VPq۱8!Z'PxU)u]| }+xRA O8!/*f"2 x<|VBoGyu&& Vy_m{={Ɨ%3yq]Tc:Qό1p{_u碮=5X#},z΋"؜i?1c9G@t~gV/ jX^zo~#I'q=8zOLXd059:aaSucMW^ @xr3 46 x<|yߎL̿|ce;ws1aJA ݂o{-sE 1^[1c>^p{-(@A @B_- @A  *o.2(C4e}۵߽ {cm9잼-C'?jqcǟuY.&$8[n|^gME "g9dd@g<vY[oρeY'vƇ<ɹǏll`ܰ~Fȩ 3mufk҇?n6A  !/F<,W1S}/@c3˗JbA  [_m//zM @!Ig)O,{< E~ {!X>GOntq;:Cedfmu̇V̞6O[7?֤1l@A B_ލ1yXb^zƦϓg/ߕ9vM7:B8Z?_wSW]MQ s:o7k%V%بNU-+׹$#_?_˹ZwLU A ݂/o{9Y+_YIˌ[o-)wWA  Y4z !cy@A  D`7Y~un.w2>VO-# $b9?| .5e:K~}}E=5=+9DƗa}tz''5x=ouO" '(`ؔ c޷1ډexMk/˺Z}yAfL.5!zsaSqF/X땮>vĭ'Ok&˯"Mێш:aK_M1w-ق@A b\L_^DϓgoJ(Hߘb" * oͿᶷ2\n\?_;wkon[Q @1{;:ߋc˒ @A  p|c=eq0>OQ.y/)w=~ƆMd%/}3ꪩ˨7CVgں.+i" 9E b\LM?',_޿+!#m"2 nD߆zl4o$p-=]ze> @ S6o_%ůf꙾kkkþr\Y񩋪g_u5U/I̪y]?ˌ'.?-5ޟ4Gsd<EJ=4Ef}6ѹo̻ٟE>" A  @A`o"|yu\]ebyyDŷ?a_?:a߾q:f} 6լ}㚸~ޔ>:g:!E~:Η<梡, =8^1"}2=q{˸>>!qZ?Mꯙ{4~9IDAT詁/{:S!o̿;o}a>y7kPS[ڛ!h3{~?mXubNA  p1y<,W1S}/@c3˗J|; N;u޺=cnz;AyZ{Z|3u_mlHZQբȼ4^Rz(77o@VA  p!k{޶3o}sMo޲<~oG@A8^^r;$!sFBo8wA  @{ ]L^,ȯ 8\~㬽=-"/dcc3{$1e}k7b15S#\>VN}O}{_N/-}.s.׳&/t1/zz|W_.6rkzoX|Gz1w&1qw9yrGDvzaLIS5}oK˯æAߏ.6 @ *f"b~n;?VX @ }ۛ|ooc}}p[Oz[l;u?|^7 񍟽EEA 1= ml]Εɦ(\#x?βYc2(2߽?zLo_&Q{:. @A  6gȇ{C猊%AM2qo׏|d}jL'O/g?:V ?E;{c~G/coϣ.5>][~9m}gs磱Qӧѣ {`O tkc7їDD{{NOyzeoob}K Z==o/(pScquH5c+xcRA @ ݄*fZpp',Yo:~ u[q塺CϹ"!Q A A߻M__׷򦯽uxl)ww?u> @ Y4ߘ,8e;_ @A  ;녘`ChS,|fqh2(˪g~Ob}|z}Y|ifl ؍oѷx%7׏\eYrk>:ż\xqД{4dSg{'Y#eYA:N^D=k8kzr\S=1enWG,v7k z{>>{1GzjTUBި 3jm͐`ՙ=?lꟶn~7]O/A   !/*fhlAVj YEpQuv7Xrg6~:ۛ1ƛzgOfUc |P|W2lWD& 94Ek-걝lZc,:k0s rO.dZLk`sCMl}NMdF5bQk`FW1;)x A  '1y9a{~} }z[yg+ f(ۉ.&35>{FǻGGdžuֽ!#bϚfַ.B1ĭ'OR>Jp+{~WNJ[æiǚ!OmA =@˻!/UTK/y?'ο8F!pl.Q1uCWST{:CϹ"ͿTmEګZjL)A 5Qբ4^grQb 7\?[s;st v?~⧷~k>W7p8|vW}W-}p[_{}A  Dh;&Ftk> @"b~wt1W|1E; @A n$毭 O=`<w=φD |G\d ѯ,+~3k3kg`z97ksX_56br _fzZO`Cgo-&; )3G' b\ =,֟<̮}Ŭk3[~ݛ8~?c;gjsiW=vNY%!I/A  v!/^<,W1,#: x<|Cxo^A  {z+m/Y7\=|w}pŧC%ïϧc-_rY_XSټeMo숹X[3ό؇Ǧ;p*iI~m/0s9}g7'z>[UY3"m͜_sbwfam.|Ͻ⢻|c|Y-FZ$ @-;b\LHy 1Qڋ= v/'o}kf^ॗ^8|Ë7]?LtWoOjxx A  0\ 6.vpoڊcqAwe-}gl3y%nGzjUBb*ݑ@A` ber3"?R3w_G˶'j,}_]MQ-T?s3}_~!Y~7/z^c[ky,$4,s {. `|zxb́Ostntpf:{_c깦<1:~N>6?q~P ,̓-4UJpiA-䖢w]u/R# @A`w#bor3UbM?',%ο8!plzh& }S_>\O'_~pY!?|]086߿V2,<9|c }φ?pp_uSe~ 1|7mmQ @,b>gr>b~:9o|@A  @"o@T93z8ؘc(ގe瀈f F1C{r}˶XkaPcFhCX|@R={(kfyʲ#ưTlr:Npsm.ƕejNcFW={irqMج7ǽsIW?qבKd7gÌj͕҂4~-E+U! E b\L_^DϓgoJw˙|߮_s j| 7\_wF;?|ؙک@oˏ^}_?/ j!b[?O1ר- @A  *^>|be@穥견fx_U^\eGNqTŧcǗ벬6}o}sykכC?v5\>`us_c=~ V!0p{\"IKF~L7v^pۓ#ԧbfAf7FbƆ5Y#qͱwIJEV nv,F nw)}?Hb*@A\!b1yXb&//"3˷o%v 1Wgb@A` mW~]΋÷+W A E '~bbW[,:QA  @A Uv#1mmmxuW2$|e(xlCf뱛ZS>>P>)ج?kl}ć*g/b,7{me9Xh͈YMtBbsm,~ .^|YV__Ybuνksһѧ~q67uYcǗocxMd%7gߌjv[{3muf.+qDA s@˃;a{~ئE>rU‹fYkGQ b<:sG^^~u[ٚ؈a&z\Tƕw=F>tܰ~WNJ[æiǚ!OMA =@˻!/UTK/y?'οFC=);u޺=cnjA_Χu_m~=ӜިNU}bӟ~1xg侓`3S5 ?K'[y_>y_i×9A  ;,zB猍p @A  w01{^233F:fc83CK=~Yѳ确$ffWG}BZbWWum>zrfz}VBe Ә0۬ Ʌ+H쏽e :aťؗ9y퍜Y5b.f٫{g͇볷ׇ?kN=k,Jpcq4bGN!h3{~?mX>U% B !b\Lb>/˓ @8+>:/~w{P\ٷo̿zg\3uOXnd A =@<͜?"6mEM|;섚kf3f3beA  @A`o!\p`8x57;yo(]fX:s~%3va5ܛüKk+*ġLntX5:䲏^>['7B6J(|bC&v/lH8@Hdž71毆/nGM`{7=[Y,{RϞ~b#ׅ~qW=vȩS6&pFL~ Է_Mb @b\L!添 Ue)69w`T= RmKF甦e y“9 Y!p=:α ? 'GhxO=|iJkÅ_t`x̣/'?Óᚧ<~' }J;@AC |e%Ӈ߽P`)~g @A  H_[[zݡ痋ˀ{ ǻ=ߚ=x>m[i\W/D5{`A|j~ O~O:{`ϰqEU|5x 'Ҹ@ Blf.Bp{XTUG.O%X3woDr`GSO33}{ ƣǟޘ z}lW\rIY]u]o|8ߘ?eUE"kK7WK ~-E'^e2 @ b\L_^Dϓgoߊ߂Go7IhL롫)M?5({(?Yط 1!A  @A @9hl]ȣ(8_I.~VPu#{ӷ;kdJƱm/zl٬׹v9}~~<>1/˺Fs#7a'Y콶kf3}zEe\o/(pc'>> s%/crKѻn~e 1o~Z A  F b\L>~zjjoҿT+gQ|c~'@A  @{΢'s{ J3L_f]paf֊3,>uQ쫶Nʎ<#}IR/-˖4.z"?猧{1 @A  ؍ ^sS{˸ IYffp$c ]1GUcXӇ5vy5YקyQ|zW!7kfbuֽ=z AlXC.>Tfƿ Bg+^|8 $\{DX{1^i11%ŎaͰ:퉙=zUU!2y?c31xTO9v#'O򺉬ܰLRS5}oŠT4KcMEA =@˻!/UԈw6 x<|yvM7:J該DL/ȜA  @A ݃g룼F/}bc捏A  @{H___rG)ce$+})Yi5zj Ġg \[,vƇ8bg_̈ε>1ĩ3vz11b-ʋi6\ #vl˾qSo{oMsXT io=|GX`C}uKJ?zS0GV ۆTכ!h3{~?mXuo_^@A B_!/UTK/yb>Gr8=͆MNI;| @A  p>!b~{˱B_,~E'* @A n$揾1_brͭ0@ oǏrMpa/a_?l r;x?㘵vO<^6fwm}5l`xl=4^;k}wo{/X`'1&`>1:{%7qk|/X#حϞzM;5[zǠ&ߌX?}e\}λC_("@}QsMUpbPէ?l(1_3 @;{b\L_^DϓgoJb" @A  V 7 yBFoD @A  W؍ .80=p<Wb,#iZe b^ژ P_||Gzs1򭩃x]\~o-ۯ-[2y!LJ/^뢪:ܛʲ!qZX{=%[Zn-)5?>|X0ۋYc'b +& Fȩ 3mufk҇b= @8'>t-{X;pKFp`r3 waCzɃXOB5 F }?[ز{M6[zyabZLHpY a 4IM]y /5~EN@^ok_">p_{ tG^ׇۗGw=~dc*! 1'jj0CVgں&}f@A` bntr3 46 x<|yѶi6N,[s jp k<7}'^MT A  @A =@C_i) 'qr3~y~ PK1i^̇5dfб7>j,[?ژ##Ntk>\Եg1yke=]y_Z$S?G<6b{_<`#70";яY? 6%“A ӋaC̓O{;z8#/ǔGxSq&!Z'xՙ=?lꟶn~Ib*@A\#b1yXb^zƦϓg/ߕQ7|_@A  @/!o>{=bщ A  @A`"_ů;|rO)2L]Fܷ]аg;ƃZ86~8%"㇠gާQ=i4 ڋj\>{ַkマ>feleAy6Ξ5*e/ЋԿ'9(ZYc go}fľ>>3gQkZ|_Xw=~dcSdm5BNN!h3{~?mX> p A  G1y7:a{~`!U5{8˲dzT-fbgM3brmYqrVqdzƓ^!!7YR}P?{/˚1}9>_EMzxq4ދu^$~ r/~N7=[GE_mPOam}b!#aM\ؽ.ћGˬoYcuQ쫶Nʎ<#}IRoN[-h6B\j?ش5޿hj6l8nF@XR^hlB_޿O{YL<ҾH @A  D`7/pkn,xw^a\dY3l1kC3pNRSS_`^_U1 ǚqD}ӽXs^1#ƴ]}..چ#\h/.D7=k̎KyCě`} .z֎± FGNCC}_'7K˸ĝwy衇2Jp3GLڇ^:aC+mufk҇?n6A  !/F<,W1S}/@c3˗J|;! -/uߩօ~9wPDs7_~W еgthc@rlZO}\C΍{ owJ; &;U=u@A  @E/[߹FJߘt@A  ؍__wݡ Vw28xF5^Hr>am }،%?뾾ʚX}镜rY˰>:DԓC]ߓ<~_:'b@r0lʆ1h[2X&eo>< {u&yɏћ b?؈SG 7~F}u>:Gq'n=y^5Y~-nv,F ^է?l }˽k@A@ ݧ*f"b~nB_oOb@A  @k="s|^~P]ڣo6ٌL<2/F@A  @[Fbá@*CɐY{|qH&X1̈|daCǞ}~c,m{D{o:?6Nk`cxJHx7ڨi f\{{=}PYk#q#ṱuN>o ~:{ 55aX{QW=vȩS/J Po6Dj7-M @8/1y)aBow8P3ؠcTUB(?ږ->ߘߐ @A  @`7~*a}4S e^+.03}kEzU['leG$7-˖4n1xUx1Owq A  @A v#1}}}8|˻ 1^1GOf{3̌\dWc3_b%X zswoK^@ȁ~4`go-cCo6>\".`7޾o[Hl|QᅑуZX8u`w 7{Xqї9~~Zxs?B]^RƓ8z֍ +J P_(^zs%F)SSvƣ'^e2 @ b\L_^DϓgoJ%οFP=IM2=ȫVX?;(Nj+ oRΧ5 ؍{j׳li䮣n~ؿH1gpO @A  /8^ޟ m!sFٿ)'t=m\mng[t\4G@A  @{Fb>H;|r7*oG4Cv+洧=m)pOO~6{B^G=`C|}}^8(<梡,\ =8^1"}2=q{˸>>!qZ?Mꯙ{4詁/{:S!o̿;o}a>y7kPS[ڛ%$8uw:@A {B_!/U̴[@~ot#)rLOjj롫)5zQ?Z8\ͿYljkђ'|a@A  @p 15zy_7o\@A  @bbʝ`|c>\d?g1p1!V|!˕&t[bsYDoGɵ?vs1_Q=G sa[,>w`@ 5zMWe_1cF_ "ֱ/fD?z bv|uM7}ԕT53z1K˸;<9X";@ٕ2FSBoT.%[u+;tWf@A`/ brr3~y~f֊Eճ:a+;%IŻ-˖4xUx1Owq A  @A v#1}}p[GG70eGvhmzm{~Y߲Ӌ{[ ?E;{ح {ͥ{ֳ_}r[D@IDAT\Uo6 !T:H3(HW4i+RmbE& EJBG(H"^H67읗ݝI2=gͽ{vv޼o ^Ioچ6ƽ m>=Y)^-qbTOclNƸ63Gh<拎|˘zW}* z Ĩ>}ia4y3[HăieLg@2A}S %#8#^yЫWƒ#?b4f/L_K"j -"˅{z*.3սCW_Kװ_MJZ6ZW9L_ n6ф!'i=t1EgC\O+E=O$RMYNS+XVZg_xl-9jclzw%zè/66pa0b皋a+Zm֍>.'gˍ_|T_/6hllHr3F=+uc_U֨$8%{4Qr̄4)g@V6@nA/ɋ>}Os |_̓Zu5'FRnG/SZ+vէOMU zUA/nې &U >`pi J*L+Se15a_fj;11pG81~h;1~X6b&QR*ҙѢÖꨯ)Fʫz/n4-̅  cfq5f}D t% 9ؘOv&-t> I:e0G꫖Bz@T l&4E;#ʡ|g 'N2i4v^w̯GpGpGp 'gxħ_1*j(GpGpGtGb~>}޶q)8DVE#Iw''_be#&\PUCmZ>~ҙC?Ok'2*IU!Ӽұ0R lX8 R:`EVǞgM5FǼӲ>6DmǪ!^cIkV_UVB1ʻ4d'78#8'o_:1~X6bJ$暿\MJNNqvD;#8#8#81?uAڎ[W[G9#8#8@OE}mT[ YXHS-㩩? .l֍1W.R~|D'^9fC\ƒв|ȉNsI/ij+uqj/5 !ZP~KĮl*.~lZA!ڱMK BUuIO;'. b 4y%3gRʥ`';1pG>81~҉ò3U"w4jTub>GNs#8#8#8 NO."ωcjQ#8#8#{پ|ٶ 3TlH?qgÏ9ϴ!#Q}Zi5U=OZ9dC|CŻF BrዝlAדCy!SQ_ƧjQ&䔋VIN/> ҡ'ա/ZЪ`jJc>iU_X9%_1OX$fqV0qųfH㝘H{8#t_}aو*;kBp5y*:1ӣj޽u^^N_3:#8#8## z?¯hrGpGp@w$777Q#}:ն} ^OE*xȴرQ+R;:|Ѧ~ŗƟi}/ͧSVyGyY>u5S_y#E_4?lOh/_tU&Ru`. K YĎ PLإA`ddL#% p6BWH9v#8#pb~ve#fr-\MJTϩasY$ɹNnj;rz#8#8#8'gyB'81#PQ#8#8#SmN-vZ ?Y]ū,oL_ωCX|kb]mk8EU_~fhǏrGpzN̯~vb~lLt _&O%_^K:1_G#8#8#,81?\8wb~msڲx#8#8#4#1O>aa1EfYWE EGx֍S;z|ѧ9 "#FKڱ1&>4@׆QT1jjM kMcFՑ ]͢5'(G41)=c&PӝMq_ǺQ }>@.q+cY7 c/bN≣E4_Ov|'k¦zi}ř8wbmȤS͜oť;?e&C#5C-a~G \#8#C_?_?,1S|-]Sɗ'sk4~|:#8#8#"z?¯hrGpGp@w$7F1y sYjFN3C_C~ lij0WuغE=~5 *3!|X8vDdqHv_yGvX5WZZ#ԧ:r_qNkT_hO~B 8i%--ri$i}ɴ2BN![0Y?Oz'旀GpG h'F_K0jTĉiuDx8#8#8ۮ'v< ڢ=pGpGpz*ݑV=r/ۧm"spF#2cT]/ZuCTm&>ql?}+MN|ךZis E?}Z47km֭^TȶJФ5҅˂*NŦbcc"[7TOWV>JS]1O>:DrJdRZDO8Yi\RMaV*ۭle3?c~Cn#8#0Opb~vb~lLt _&O%_^K鬝tp60Zz #8#8#8󳋶'v ڢ=pGpGpz*ݑߧO0rİO_mmv•1SE WkGo~<5${!jGM˞] N/>s ^:FI`ӼhUXՕ6`ɋh}HƮ>HWhqBբˎNc> ?rANG^IZ_uiSvP_xl>C4AiU1PEl[ .mmeI.;##Dkle3?wb~#s#8#0pb~vb~lLt _&O%_^K鬝81_#8#8#,81Opb~m-ڣGpGpG"͉~f靘_Gp뷣_?,1S|-]Sɗ's:k41̘ BޜyWm#8#8#,81?iOpb~mG-ڣGpGpG"MMMa#}m3l{ )ߚ1xuU: ʼn7-?|\^iĚG}Z0:́1+TQWQҧ>j-@&. !3a.MuŽ>/1φGʟHv?l|Uk G?s_Ʀ~RŬ7d䩗;AiNvN|:#8#8#".z?¯hrGpGp@w$7Fӗln|"uL*#Hˎ}TL?ۈr/W<̓_tHs6캊7a>:G41|5'enP_kҼg͢$5'@-@aL,eEG0laؕ7__~'Fő T\O_^悞fاU<~!GZ?]|m+ vli_2%f<Ŗ1? oމ%pG!81~;ډò35L,!<|y.qb~v|:#8#8#"z?¯hrGpGp@w$'1lӗlfHYeJ4csAV1ust~ɇ>iOںE&}| /:e6S}|%Dȭj8۰["N@!.|ȡ> tUx&>G H,1]sb01`}eCr)+\/vt}6 Oƚ-c+u`CKqWXG}lʧ`[ض&N2ƥ`%9Zb#[l f̏>靘_Gp뷣_?,1S|-]Sɗ'gN#8#8#8 .No_,j(GpGpGtGb~sss5r>O_c $L˘+%uUZa6uW|8Uݺ;O_CcvZ_}Ɏ?5}]G,B+\6ZD1^}W=SMxir tgŒE`(FՕw(`?9 >1|i&l/#U14OlSSy}ǟ|l'໨m+O%|·P4 K*L.SEk Cvo O7S؉}.#8Aىò3za8!<|yY/I/~tXf$xjCSD{ZCyEb3R6WlzQZ&1 ?>+Tub~?:=Lx3|2JWa2i S~=>xX~u]׉v!<λ0qh_ߜ|{3QlXub^~?|Baƽǂ2"2u3Ͼ4$ j|yo|'>CG`Es]ىj#8#8#(tGb~߾}ˆ/m\T lcg=~:qGxF!FQ^Ʋ*F˺ UGB#ʙƈoMD\)}au?__شϸjX=D x-H Q~|j XllZ:4V>Zlg8F1Fҵz\Rӹc1?4|aA>}l6؈㜘oH4sT>5GKHn1ك#8@GN̯)kaw̯CN"g_zwMaݵ=w];lj\ s ZZfo}pm5iN:.nk;vνώ 瞺{߻6p˳aQMW\7ZgAg gv>;.jb9g{ݩwƹNy Ĝ} \ Y˹1cZU㾎#8#8#tGb~sss5r8l6N;/Iٸ˾i>lHZ1yH/!N54/t'V6bЧ)ֺ%ZZ161o3W-&$@VgRld&&M Pt?'F {ZGvSsy&E'^9ǎ&: :Gʅ^ˇ>ܖf&L \ vklGp'_?,1d/"l!`Nwf lTX'|x㏎#Pi'C˼E`nfyRjm}zx]^XgAaM7Z9\}6$ }Ag:vӿ{x!l_X̍jwֻ'yw n9'\obY&L$w[zyj/ZN~{5sX|b'Gmlو<%{)8:#4B91OmpGpGp nLV86|i'\h6EŮͺҽ8ɲGi.}HϦ夯xrT>r)s@cgCQNrs'T}!NsK뛺6!q=D!&ک/Nc赑O~+7z`G_ 3VAlSuQ|KʅD\z:V9hٴ?o(4"K%7U)Y?s,( 3c)fD̏>9x}8#_aو2x3_&O%_^K 㰜+n3O(o#ӓsA?rf3>dӋX81?G""o_P{as L$6c\r5t;sI>2WH,~c|I.B}2^P X#izkyPZbII#D1><@~"v|S!򣕟lċOm6j>s>)G'{;zDq:C\zp-i&L|Y: si8@2T2UO͑eaf,[L~g#t sp#8#to_aوj0\MJk:y9LW8-$Pgr_ߣoN8"oѰp, {OsEk_oݔ<)te^5Ͼv~)6T }Agщ!8`!81킮OZc~¯8wGpGp@w$;5b_۳/66q.#g1aX6.I]Dd]AO_z]=LEMe[vSE>9TVc/_SEz ~\G-֏zUߺ * *3E)Vt>Z)4|ʡ:i3ǚYX@x!O?"֔}|ibM'v/dM4pGB .;##vDkle3?wb~cm#8#0opb~vb~lLt _&O%_^Kn⹬[ uvk3fNK?=HONa/.S>cf8sۯ}S]M q#-S'8+DAK\%:z`ѯ\Zlxv›w xX̆+/vb_ݸ\xj_rO>ZC/oRau7n]pxgqm9:,U|-kۧ{&%b +?ja([n&My; /pܼO-ZJC]-c5c/y1G;lzXe䲱Ú/_rrhgﯿag 3$~5MƬtCv̾}<|#-ڷؼ1?O&=r\ߨ˄6ǦcwO7>{2K/g\e|#IHן?v~G◾FXq~єrZnpSO.f a[o⚷在Dz}l]??ۚ7txhs;>aw:"0z?`¯hrGpGp@w$777Q#mEfwB9Zţf̛y"[7 HqrXOęVjxمxr>$_WH5&'BLkmi|7D*N☔Z HEǦ8}ŏ8XwIs8|:ғAN<I>1'z-u^y\UV 6t)ZZqi$8"$7).2dGYl>݈wb~^:#8='o7;1~X6b&^/" Nʼn٩k9:=TC̟0= F<~݁\9VDKI_\~auWz#<7MoZ87;#~=e}^sH$M?kW 3v}^O-laS ~p_ôv=u}ZZfo}pmHӵuO!{aۈG7ʛHc6 aڴ5Y1KJ4ƴKpV50t lt_0]q䍟̰)K߹6q-.>aQVt?Ζ.cN -{}6ȗ7(Z cߞoRjbjKv]\XgU 7^vP?QY$7H_ؓ0F^|aOi칧}9\z'*sdž,^bKծ"<jr|h_Z@;.}~V oGcvW'81㦜+gs#8#8#8}Çck~6 EV.2Dryal葴%2:IG}j(zUZaOAFN8G˜/tjWr+*-l=Cq 2FXh*'XtډKO-Ēz!D;A&pfݘKc8FGN'D8͓΅Jc_ѓ8yq|2Ӻ.;ӉG|.#8@AۗN̯I/W9=jg>l;1#@Eb>(|.}O{t7{+-%."zGyw(?(#_`xKxW^뇟~kEy^X$4/Hwޝ}0>0߰#?kW.0h%Zv7v]!#_légpE;k?m&WɿjwG%w%wi=$796ԊvK>qۇv\+A/e0}'`߈VqݼofUrgݡ ؝ȑ_3le.Iט'8knpq# O t_ .{DŽKv11Z-ow9)`[Q΃HϳZZÇux0蟦x̸ v~>C{<صw|[+^ĖߞrGxɎ/Gw6Rt|C+ǧrkwCJ|xbM;e ]^AŇ;v{axiط>Uu{8CE[ ms{ŋ f9ǂ_^)Q^_PY*7]Ҽz68#8#8=HFm6N7K:)4sD,N3:YS+bm˛pBq&6Œ~Z\G4Wo:G|ɉ/oFǗM!ҫ.1sTlXHuQ`Ӥ4ah5ԗ,X6-V`G_[7Zi`ciW-K~tA +6惍8i#;JiUYض'N<^oG?44R6\2UOxd-c~߬'1]8#_aوk&\MJ~gi:v?IL^uўB~9t>1 fe񖧕SB%j5rl߼S:ᠱ S'47GTN~k;Cd?ዅ8}.{7m2$.]c\,t.SkCxm{q'<`??mnhc[28-BW};|軂!G\y礸^>t|8]ؑ_g|C'1tۮ?PvW[`} d. O0qnxo_=ToGsp.ڿٞ̚5+<#zM&[d$^r۫t;Q8jc-{ %+y/5W['t#:#8#8#ݑߧOs9b8w6Η7P?MYNEiCzb\e"lO/;'u]:oƈiz|~lڨu:)tI)tIHUI'jϤ`T8@ar ;m 2WuuҾkOkGP ;;Vu՚*K;xZ utjڡ7U\ |mȄKc!w,Wr2}j"[l f̏aAT|8#8 (N̯ߎsb~lLt _&O%_^K"!0(84!͆I"38.臞:1kz.#Po%_}qՅ۝3pJhÕ"8}ռ!_w.|sR_h~~{NOPQzU?kWu\!\u~F2ywC'3w`UokR$_;0yj*S>dɓ.]7\zXJipϾXsǽSWC~pe객op>,_Z*f >ڇw끻sW߾qb1+%hG/O=~@jχZx:v׊)Ͽ8> >tM>\>oH ^C#b~WJuѧ 1ɎۮZR%^M7>z{GprA>@1ZğonpaUN/BGˉ[ۙuh:1ڃMU#8#8#г0jmϾdẇW̩'.h yX:#.2~26K,dxK'FWK^>vG3W-lǦ>c+`gMp;66ۺE|]MBS[ :u> )N:R0vU_94f.A44OR_y!9)<EQ_1I+{>7a m  #SeQjBle3?'7i8#8'l'F_K0jT$%tPuFj J&i=t1Egz;(")g6S`G'3pp*"P-1{&G4 r᳟s$՟~^Wٞ7>%%_|cǿ%ȰT?rN~óvvJJgTJZ=۬ZhÛo}sl]ԧN)1:)jtm}_nrS s渽CVX/%|Woz}>g>}l2ʹA̡nweh5Ö} !gn햫 QQ0\hs/z0~ks}XS5f9S=SOR4w+xwD񙯗wVc!ͭÏ88켱a~ssB?}~Ծ㸟߄:8S̥XK!ia(WgthG?dn@?jƌ cBDtaY-s@IDAT?/_f/=(r1&%B8lڞ̳g'L}'a L|3ޙ3O5l?)\~aK{o>bjqYu;]vXsƇamO>Z˜N_ a]י#EYb~=rkO+wO ,Xxo?F/?|jD*_dF*?:=X >KY]0#ɱJY}i랊8#p]}JK]-YhXazaG;yu'mn??qƢξ!:z`G]ū ]=>۫+}ħ˖h'aMNΖ~Zoσ?-akAqrGpGpG}11/[˶q|9knq]:6|KU$NceNφoOsaZT$@XkqL:KX$]b!0E&=h^i tZ8!]ӕW tUZw8qҔq--WBN2UO"pHE=}~>tGpzN̯Nvb~lL^ES79s'rxz#-n 0`YD2JDhLx _h$&9)y O>ZdErYSμ'!~:ά7͜<8K>eѣ78!>Ww_ܝYN\F1 Onu9֛}WTrSb7}# /wPobvqGogxuϲ-hŭW ?;U㣰Nk}TZwؓ6\);goM}?hR\8""tb~GJ1G#8#8#8hkV<'ׯ_,GM]]oқL6-4sGQ#G/Q $aQq*ʆMd.?Z#׺1lS#~g3is|˺/ˇQkeL:WkEŪ,cbD#,?6|G0614cjӦ1P/ xH9!ʓkȧ57U_~^B"Tyo^gr.;(αCjr#TFم\N~B+5-¯յ#8#8#G{󛍘?;Rl48ԖChS,=:?aJ<}m֍zA>ŦėƆ$ycCOm=Y?znSQ}Z꣓(/4nD9jZ0Ҥ1OZ.>d|UG꧹GA=ǺŚy)꣗XƩoS^Š\U1WaL0iVR4qG2USsF =MG=GR+n817#8@BN̯I/Wt/9sa;=.B8O:pocb8ȫ,SW?ڮ8JDѢu Wt8 N]¿{#Q<_?\bm }-p7. w?5*;Kʼ:J}Ia9o~.ՍKS=7/G%#wgv}<^O>_Hz/?86z`]n>쿎 }߯GCw\h>}q-- v.]pC/ob}nTO:p9o stz|)Ͽ>;z%\zḟ_N^xM'rǰk~%컲ޮ</,PsxcBk1ׄ[\Tw9ǎ#1NoqSCpGpGpJtGb~0rpe>Mj! nl܍ iꩾ\U,v*haKuxU=7ZڪU8} |E794WeCC,^:]Е$`cb,:k.ڙ(_I:e0G꫖Bz@T l&4E;#ʡ|g 'N2i4r,%f<Ŗ1? oމ}.#8BCډò35L,!<|y.qb>vN|:=?aW)oG.?߰+D-:XziT;]vX35ŗ?~~J̿¾_va?5G줩mws|NYgWՙuW"3/q^τ7Æ ;슶TN۫>?Do}mpa홨cV;>lrabD]hɯÿ_sH9l9o(zw~|c:7?B Z)4%NO. [ͽ:.<7ͨO7[$g6\C3u%~ve^Yw{o኿>ng@F>ܝY˯~6;zA/n+ qOGfw?4/ˆ//,aTqW<U?kI1FH## w39rw Cpa70|uOޢdijˇXb4~gZiqmp}9 9?raۇnҙZT5-9>3Uf>?q/H&o~0>;lo۾$^z/loI\wY$mWەWæFGvss/z>?8F:/pN>%¯DGpGpGp:@h|8C+}{7S\dpXŘWydWN՗ *>* C˦!'|-f>[7UJZgޗD-D;YʯZNJĮl*B_;VzZA!ڱMK BUuIO;'. b 4y%3gfocti Zc2*ӧHpɂ03-W?:{XaЀ9jpGp7N̯ub~lL^S7};o4fД#հ;ky+#"1 M}wcO%gIEgT">72o}om6hзO/?qw{bRb>y1h%礍6Fg1ZՙuG;I_Ac7n1: ]q)[9"󻚻3kcN]9>uMG11?%pmܕ{]gpV78/߱|!#P\ub~1]J#8#8#c{N|ٶ ;3W/ų!s! #N\dl#?F3-fH !mūƎCUz|I+z+w;5ȃ`S?ÆOyG},J^s dRLNhg1 "z+Z Q%t0FSV5_\bC4~E-QKMbm '_vN󝘯#[G! b~G+x/O}8/wOʼncI JC^|/|6!6V_e`Y9g̺#3'~-KV<] 1;6'κ_.bR|;l?ar2k/9 ޕnn+Dr>Jҿ/\} < s;~Κ+sN-Έ0O>_ym/J_Q+^mOF8?%]u. h}ϒ$e|ֻ9>o^x>{Gl~6J-n L|-nJLi|z|9պZÿsM%Zu5~Qrx8Cm~Bmtm6St轂+3}vM)ƴ% h+hJmP齉ĽlԮ~Z{!ll9#8#8#acmNMoFBXa;6q!jEjG_O:ԏ.V'KB}tʋ?:˺żħeheS}ZD|5&ZHRa҂SĎ PLGpG` aوk&\MJ~b;rpHmɫq"ڳY=6g&L~B>;BǻMq}WKe^Y;~6q 'zr}Sïp{xnE`] ?O~ZUC1UM~;|D+/4阾@ǚXEɗ7G|TT9}OMB 3!LR QK ޙf ?A6a)Ÿw k,-5g,5wl䑏ƚg>3OTmgzէUzI+/yX,b!&L?@|K 4T>5GK1mމs GpG d'FZ$!<|өDB@ab3&0]Sy/.v>3LC۝}NܚW:1c\U#8#8#гmN-(,^5cy7=c񭉕vlk8X՗"Z#OuʋMŖWk|Cp'&H@R [@iAÏ `|RW4G |FG]ET[:5:4堞!~l֣:O4o bI\C ,ȈZb#[l f̏>靘ڧ8#s_?ȝ_?,1S|-]Sɗ'g;cux80;w0h%Iˬְ^ĻYqp _@9b~cgrW񌎀#Spb~rى]3ȿӥd8#8#8=HӧO9bwѶaƕgiQF+ޱu/Ԏ_ii,>inlĈђCvlɡ P'ag@ Z>c|XQk FudCWx Q.ML@JϘɧv>dtbS?n3FC_b8KXq֍X xhWzŚ^Z_qf.Νl2iq3g["pqiO7IeHxd-c~߬7=0h@#,8#8'l'F_K0jTĉ9uHx8 kv'/q^3PSX{A~/['nۦhNc"/>.81OZc~¯8wGpGp@w$7F1y sYjFN3C_C~ lij0WuغE=~5 *3!|X8vDdqHv_yGvX5WZZ#ԧ=a+FUz䧏,d۰\B)FBV`ڗL+#Dkle3?wb~ >pGpzN̯ߎvb~lLt _&O%_^K:1_G#qwC G,>>3yBGh0'2pb<K9='] Yj_q8#8#8=Hojj Wl6 ]|eWQN.2T]/ZuCTm&>ql?}+MN|ךZis E?}Z47km֭^TȶJФ5҅˂*NŦbcc"[7TOWV>JS]1O>:DrJdRZDO8Y.@q)0L G2A}Sۃ1pG81~(;1~X6bZ?{nivu~Uu$:Iw tT@`@5DD.33sDAAD #@xLuU_@T:􅮪SڿsU'kj9uZ;{A2yb>:}IdA`?3}=}N?>vsxߡtB;>@59@C[~bf[.*A  @A t#1ѣcw5x84rp%;1;nزAqQ<2:Ƶn4d{ul2f_%ֺ`⚼Gf?<^@x^4k}>ٛA?rAgVgnˋG[yjyC\C}{:b3[1PkS߾%E6 n،i?V'46Mǚ!ρMA @!MKew%|u 1ߗD fӿɇO7}̍ӫƝ5piQ~ԯNy}GOMu xgG5~J_\HA`]B_%~E'* @A >'?R! 3!3#:`^3CK=~Yѳ3]֣zמC k-r]]-1^f?95%$[0 x\^ 쏽Բ#( bXJ.|ӏZ:K7սsA[_qo},&!1ꄜf3Cfi}X>9p A  p@1}7:a{[|L|yߏ!@A  @v1a'YVNTA  @H̿ӱ;︯c5 QA+kgB3KT|510;0ej60/qƒ3G?jل8tɍF;\Q&ca}r#jﲄ—+6dakb&!cwe1c~ 7X'^5ލc}V|{_aGR5FX͇z}m&pfL~:!Yx=?lo_w?֤1l@A B_ߍ1}Xnb^z/g/_޿+!s3M1ߗD @A  5&;w~zwNhgzևO0~==\:MϾiۄv+I7-o-{gWuuxcAG5{=@gMig.s=kcjf O5`szcV/{덱_ȍ~6ߘʦ,ڋdkXWhC+mmfݏu-7ߴ)>@A +@:a{[|L|y/u&%HL^Zf]臞sE1w}o ݿl]VCZUFHkLJ5cY/{~Z0'\1v|Qc̅~7|#ÚxbF;:kOkPko\YLr l=kfs1aυI~ fm0H]cZ5ƛc >\^/gղrч׸5ߘ_(lpcrQg]Ҋ6Mǚ!_pA  !&>,71S{/Bc!懘sc^@ A  @A  B} }l]kaVܯfvB5Kxf 1_2 @A  p؏GNǏ񦺓xqp,338!1.1st~Ú˓X5c}j9f=P!Os׵m_:[C.>]_Ihrŋ!\<,ع8v{b0s>2o.ZXrY_ ~ޞ٣\l 1q+Q @k @A  p1!>h/>_/L#~' @A  "58~}ux|aIy XA˙f}\''B zkcgmn|#xfx(]ַ?sa'k}!c+Sg,:؛ye1 *Ћiƹ[M3  ^8uFЌǟxrY.Sc\[O>5f|郞|oqy۳_lE6~5kH'K@6}!}XrMI A  !6>,71Ӫ/g/R]ٲoCDxk)eCY"!R A E+.L ?Y @_p}xVw臫v}03CKhzM&l#L_IgR m'VHgg}HSCSA  @A`H̿ӱ;xS]c5>P.1Oʌv W R1z!x2C6fcEgZC#Bgޜc|k ^3k:_o-;/-[2y!LJ/^R5vrZnjzl{tb{d^v֧y[~ʽg?ƑO f{>kl7xyO_HlpsrQW]6Mǚ!_pA  !&>,71S{/Bcɳ/ߕsq+!p!Qxk)eCϹ"!R A AG~m/o~W]N @H8^Mbw#|Ngugg k}ݏ9A  @HښNb5]d5fŒ%܏~<Fd e_2cOc}a_O6bc=tr5c_omiۇʴr:@hfC^kƋw?-7?>};k$D|;)謏νvs/3">|>u6MBZ̖Zꪮ|ha~&}EA @!MKewe|})$X wo{ȑx-Wf1*A k?h~toߟѥyMooo/>3' @:!gB11? @A >&Ww|=OB3C4̌Qҽdm?N>3{G k\=v:cNr?;yѱm_Մ! =" X{gGѳ';b~Afo} vis2#nܛ /\/s0u n\c/ 9:g`a~&} f@A@ bnsr3+4 x<{] 1/l_?2/@\ Xm_؞B9 6S3;=Oe 1"HA }@Y8YGO%/%b>%37rͥ{֣?gQl=8al5a0ֹT- kbo}Șb=s4UXhXcljlN1<@? }G!1맞YFDxj3a}z?O?=1?vqG_\Y[N=xg#/(Yhru,V~я!/mA @!MUdA2y[ 1uC_ՙ @$Bߤ^@Aj!b]?O1W @A  *U\Oא3 wqwhCÞXj\{$kzGf.2k/N=ZR5z?9Q=}X;̮kreAy6Ξ5*e/Ћ'93(s,Ə{x1>3b^ӘGkYꝚ'vƇϫqO>پ]mdc1guBNΙ!hk3{~ش߾~Ib4@A "b1}Xnb^z/g/_޿+!#n"2 ??7_V/ﷵqCĶ^]ǧw<<6yzK?bzǽl|tI__ߘ~qz=OL|x:TChzM&l#L_IgZ ūv]?"kΣiZ>W2ǹۭ18VRڅG^MoA  @A ؏;XԀ; #ײ%'BoN쬽1~\rbG@8RE:/?q?\JƜ8[G{E_mPOam}b!#aM\ؽ.ћGˬo-jy5.~A  @A l#1N㾺yȊ8Z@IDAT0ٳf5Fq`ӏYzd,:I7zjyˇƎ^'r±fo3=Q_h7ơWm̈1}Cuߵ+:af { ΛȞzfx%!M>=kG-[.pAxёPB_|q,_ѣYGKY:p ælX0F; /Vc-l{5ƙdvo"/YC?zsaSqf/y3>G??x?W n~I'46Mǚ!_A  "!ׇ&fjWhlA2yb~? +"sA \|_~-~ח\t#1Cm?]GS#W}oKۚ?O>{n:q?0bxt_>S}zw4ֿ7{?>'CŶşztuFfA  P0b?W7/cA  @H?ztk:~N1O׀?ܿ%py,Y}-#aFC=Ȓ7bKg-858쭿^5YS1eWIx26ڨi f\<{Gn,O-3@*{|}rθ=z=B-X:MgVk\b:p{H $ =|tx+3?qPTK @X -WðW?e⻛oMWX]XO%@u^|#?z-Vz$M~+_s>UsCMϿ+cw|= @"b~˱Bձ,~E; @A ~$ommM'ƺsdCfaCVf|"Cg?$c3_b%X zswoK^X;B;{kz mc\".`7޾o[Il|Yᅑ1ZX8uč`w 7{Xqї9~Qxs?B]X>uFbMdsh/}3kh4K@6}i?l/q!o=O'A  !ׇ&f* x<{ߏ!LLA l?}U_Nz͟髿;>V?NOxtzpSH!7ON_?ֶGVQǦ7|ۚmS~h: !>w^K-o8 @A  p؏|\7|c>C^1-w|X.?Y?+ yawX8DjLJ 7<Rxfd^6ľ7oec.… X>/2}/#X\vcQObM1ZI5c#=5eo]gt>>g2_mM7 G[æuc]bվө@A#b01}Xnb^z/g/_޿+!cy"2 2o?K^gN_՟|gOֿS^^2ړ?ko_4}﹫%u釿/_6,Gys>gi_鵟9{6A  D c'cYwA  @}LCkpsk<?J/,ߙ 沖8E\_ʟZ!fbғ}r |"1e`Y9^z^MWe?^1cF_ "ֱ/fD?z bv|uM7}U=C [C_^˗JX#G<ޕ8whvFr5S) -!7i3:i~*/E~d틮t_{Oi>_u%?_vQ\AEA @oW{Ajщ A  @A"G|Ck[ zauԷ7c7/717?Uc |P79U= >"ա,IBqfKci[ԏ/kŤBܓ YԳb7PۘS;x+ĸg|ѵoC'ϝ&!k:!YPBJ[oE?҇oA  !6>,71Wwl%|u 1gb@A`Wl_zQggogۛ[ዦ.A{az晳W}k|| +o˯я+NFb ^>W{jщ A  @A"[E̯osGj<]c{9ՙb9r!??}ko ݞXmČͅ156ԗC=S򳶆X5~ǽR0~>mսKr yqa@v. 1э&35>{F<ƻGGdžum}qgMO^k[Y֌~9)Yp:!Yx=?lo_w?֤1z A  pe1}8>,71S{/Bcɳ/ߕ{tx +3?qveJA \{|4x?fN.]] oܾO_?ӷO'9 A #!j-,,'٧ѴgkEVlؓH'ޜr[_;1Ae|SXa}}ȉ^bC_^˗Hڻq4,!p!Qxk)eCϹ"l`0eg#쬗*ii.l fUCoA l.o>s>nȏx􉯹.|6=zQSWO/_~~VıQv77' W__^H`5qf=:\:ΰEӳo6ayfJ`lykq+uٱu/|;sVD)wvlWm܏~~0WY9WOLA  @HL5Y8/!CnwqrY3GZ633f(!n}9ثz|I>br _`zQ !y>Wi,p k׀CO~9 6:g&k>:Dk1Ç=šַ_(1g,zXLMb^PSyG6 n|1S.j~47Kael?8Nt~IbEG@A bnrr3`xA2y2>͎z"dzrWX]K s:غyI{9X\7L-pzͫ_c7@EA |1s1v!/e@A  F`?󷶶|Sهk4{9y@^23%gIcX˗ƿ?jޭOn/Gg^W-wx'~7We3b[ZHAryAIqm/0sxg=7'z>[&^3"ݜ_sbwfam.|8Σ\vVߘ1x6KL.=~;ѥ&}EA @!Mԉw x<{] 1pi$2 5Cg~]#_ɯw4xO?~+o|7_;?"S׾Ǧ7gZ L{?v^yۋU6M?p|ɟ՗~'fz#uݦx뷽qzrטUA M?Wߘ@1H1xYf@A  B`X'kosغK.GאpμSN|f8 3vb}6ư~ܳȱfZ/];#Fjq-'{>>+ /W$;ӤL -? VƸ~$tG.@X&yqoyu>}gls3y%nk}۩S??FG6n`r3FA }@뻡!M̴Iz 1~;jXpAiۿ>o7 O @8@<{ק| +x7鶗hF>: @zﹸ|ceﲒ$8 @A >'?R7<,d{y%߆/|c>5{vk}c}8s[_254z|!Y~7q^3ze6o-[.X:YI(.sۨD=g|s3ìQ|9؏9yc ^u[cNm8}桷=ihugF7"- @؇bL!"Ӹ~RQv!Jb~$@A  @AE[ ʢoo'=ߘe_y@A   GoOgjavpΌ236%E?怈<3f F1C{r}klA5ჰGo^@u[Y,rY yec=͏v5db3N`O. ƕywbnq3<{J.M@|Y/CC]_\zP]*|d]wڡ?|Ӑ= @A brr3~yYe;2ڥnv$$aEIF^c=t-E;~9kPd76ߘJOV @A  @ O?7=kVL_ÇC9:\:NEӳo6ayfJ.f BɺٺΕغq>Ν{v+֔FxƵޮg_q?yh_e=\%>1A  @A L#1ȑĉc1Z6N3UwCxa+EFx+Gy$cç?eQ\ԂmZPwC}fz`>Jk^XkS.M_XY3gojXh݈!5΋X\$Z6__YbuΣksһѧqq67uYcǗoOy!,Md#h7S~[Gn}ןrK~݇u1@A B_]1}Xnb&/"ɳJgLb*/ @A  6 C[>> UA  @H?zto;hkp+,=e Υj~1l%Cy;F1Nqm}z ^]-yu>&/cĮ/E.''^4Z;:/FzGvЏ\ՙ8QeZP_b>,71S{/Bcɳ/ߕ9֙&|_@A  @,!>W{9jщ A  @A"ω}}{u﬿#c}Ǚ3ٳ"7jƴkru G[æucM& A ׇ&fjWhlA2yb~?+"sA  @AE ݇~bjg[-:QA  @A T#1N㾺Հ/Gy ̀O,Q9c?kf8kܛüKkeI~&7:b{ rG-׮gɍ  _ؐyƆɯ݋u #!!MaFQSG5ލc}V|l֯NQoԳgT cBg}am|xz]XԀ{ #ߚ=x>d{i\W/D5{`A|jq O~O:{`ϰqjB Fɚ[YЕi\ !6N{o!8ؽpA,Uӑ ;y>/< ?jݛ? D_s^17fB;ˎXNyg;lʢHFͬ/ G[æuc]s7m% @A !b1}Xnb^z/g/_޿+!s3M$2 @A  YBw9yBoD @A  pP؏#G'c5?dE \eDv|X3Fa/obgkXÜ+r:G5ČvtמV9dd{b ,{/5ž .ژaͻX_?r-'lkk78r3f}rY^zAke[31ףqk1P@ΘsuBNΙ!hk3{~ش߾~Ib @8 bL ->^&^WB}EdA  @A \\mb>Uw㝍L_3.x㇘ۓå,>m웶MjGֲͳF(^Ͷ3W][wKq>n.;lB_/G> Yy|cA  @A ~$=zt:~75>V/!b\cưK!kr3/O;~cMA^t`fPBM'>~\v'}go ^w~%/\s@b#=`,@k}ce}|CX3+A{{bfsղ 6\Ʊ7XG}l?f19ϯO?t9^7MB6cϵ?j93Zik3{~ش߾~Ib @8 bL ->^&^WQ@O`޿~P7]K s:mwg,m73ͅV…Y|c~1@A  @0!>>ZA  @HښN󾺳x|aIy֢=:=e˙f}\''B z!kcgmnc<3h|tZgF̅pAC_^˗JyLb/A  @A k^~bj/g[-:QA  @A T#1{˱S~40=3c?je#ӣCp1@)YG3Yk#kcF>zַV7sAO%F۽Q`Ƙךg?!fc`>{'64o-6AM>~'j~GW("@{Ys]լ3"~7@fi}XIw= @2>C_^˗JbA  @A kw yBoD @A  pP؏;:7=}j%!+\eO=|brT?E}$wM1 rC^1qC#/ȳVo1F5u^ЙX؏e^b5bA /а5 Ëu]NQ˽Ymq^c.2wkO8)bl/Cg//b ni?Y'46Mǚ!ρMA @!MKew%~ 1WD @A  @-~?O1׳ @A  *58~'GklX=ykW}>ڈag[9KD}aӏm*jB\IElͣgx/߱GtX*R&}[7kZk@>:ͅ޾>̈<ַ۸F6 ni?V'46Mǚ!ρMA @!MKew%|uپ0l jtwOs:ĹCS=U@A  @G­{>wkm웶MjG+jykٵWU~Df֝GҴ}les[cp ;:%\iRg!`1- @A  0"u>\oDTÒ;j$k}ye >3kG k\=v:cNr?;yѱm_Մ! =" X{gGѳ';b~Afo} vis2#nܛ /\/s0u nܥXCf3K@|Oa~я!oOKA  >>C_iËɳ/onv$Гg%8uӵ޻=cf+7m1G<8e.~;پE_E pVA  @A k=<;9e_l\@A  @8sb{>YCH !/"5c6=kxġcof}\jG!<~1G3G n>\3^X52Ʋ^g kM-^ͩ_#C1=/|DǬzfˠA}̏=bGSy;,x!k墦Gs#VNZ)eA/8 @wC_˫e;b~?Wyu&& @A  Y@B_5*~E'* @A ~$9rdı7=}5L]F];аg;ƃZ86~8%"㇠gQ=E4 KS>{ַTM^O5~AOǎ?Z&$\Yl|^gMEm "g9j2 ^3| όط4c>szɇݾjSOnϾCd3u|?Ӭsf<̞6k҇?nvA  !>>,71S{/Bcɳ/ߕ7|_@A  @.!O.3{MX8fIA}콖-/9bxsbgmoc.E{xq4ދu^$~ j/~񹔌91nqz3؋BGÚ8ћ{]ģ7z[YZN7xŃ:yl~Ni93mmfݏ5C̟7 @wC_^˗JbA  @A kwyBoD @A  pP؏;:>R7k@!+"9{ x*=lݎg(3N~s}*lkS5{G6jcF]/!\ 3GQ'\:o"{ &<7c\l± FGNC󌽐CX'7ԸC|ٳl~Ni93mmfݏ5C̟7 @wC_^˗JHbA  @A kN?w~zlVL_ÇCu?1hzM&l#L_Iiykm#fۙvq;iu\8n@XIkwu{}6/?ף^,<~\ @A  D`?O`wIH{t‡K g:DԓCؓ<X:r_zҁC96emt%1ډexMkeo1< {u&yɏћ b?؈SG 7~Fcu>:׸g?W:E6 nڌi?XЫY|ha~&}sf@A bntr3+4 x<{]_ʿf>=Vyz?$&At-E.CϹ"꘻fgmWmʳJM V…Yo[{w7"Et>qL|T A  @A \Kߏر1컖;ö *ЋAZX8uč`v 7{za-P@}zsy!9~QƐgo,u{cW۷ &9ȾUe4!hk3{~ش߾~K]Bߜ{N@A \)B_!MKew%~ 1WD @A  &_w6R:p3}͇as{{t>\U?qM8F2A^6ľ7s6e21%hh .Hbl ȘoE@Ocr٩F=yf>o6ż˟k&L=xu)7zC=t|h7md~KG3mmfݏuOWN~A +@&濡5|yzqhwlJ_rL [q??BctԷşbR]?¾X|!h @F=k/.kbA#0g}5:bs/7=ơoy}ԡ3zg>x-,@ٗ`qtU)f ([u>C̿9Ń@A !:@IDAT\B_!MUdA2y[ 1miB_噘 @A  F!px/Z F7描;g{}61އ/G> Yy|cA  @A ~$omN?j|`v906ģ]?f-S'=vq/z1ep1a/9}1=:0y-1{jsX_{s;=!/:ꚗ+&≵>k{z~_o/6PzWΙJ[æucM7֧ @vB_!MKew%~\1WD @A  @A.~?Os1W- @A  6U;XwO!)d>3qC]>2~ZZ+Ǘɗf@F;|w\?zsղz[h}tyُCZpy/lx/=:k\| d|#EԳKA=;5c_>zuIJmGkO_31 N:}mRE6 vFͬq4Cfi}X7鮧 @Wׇsr3+4 x<{] 1li$2 @A  YB} !rբ@A  AE`?nmMǏxj YE|byZ=dcF͞|16ooo^_n43bnj[8Aġ;nrثz|6|EЫCY" ǵ͖zN1_I9`}k'gzo59&1vz&2Wq150kߘNilܼ~Ni93mmfݏ5C̟7 @wC_^˗J}L{{:r]sfg+W3@A  @!mսKr yqa@v. 1э&35>{F<ƻGGdžum}qgMO^k[Y֌s($ɗbqtBNΙ!hk3{~ش߾~Ib&@AJ!b1}Xnb^z/g/_޿+!#v"2 @A  ]B9yBoD @A  pPꞾ|8CShhZ5"kea6\e~|$oN9쭯 2)f̰>Dg/cLSs1k3ѾWzY 2֛C,ko,qX__fHA!\zf5qc_m:l7x3YJE6 ni?V'46Mǚ!ρMA @!MKew%~ 1WD @A  @Cف?^ϋǬ%QA  @A 4#1ӫ:xjvO1Y"?1b;Ə8Ȭ_-~3|3kg`z97ksX_56br _fzQO`Cgo,-&_:p)3G' b\ =,֟<̮}Ŭk3[~ݛ\ZP̃c}t35yAO=x$3\[Ӭsf<̞6k҇?n6A  !F>,71S{/Bcɳ/ߕ96יf´]G{,zWn~ܡ˕JA  @A kwyBoD @A  pP؏;T-{J)zyر}F8KjGߘOZ4n}ߘB}t}r'/kL}Gs٘__Bu 2Mbdžk{1 ŋ=뱾93!7@Z61^q&1o$3 ks˰qS7Yru,B~я!o]O7A   !ׇ&f* x<{q6A̿޻' jIW A  @AZB O {gM,6>N}:(gvM=K~!Y~7/zm^c[.9ݖ\G[*U9m. %'`77̳ls86uiͲ_D~Y#SUL%TV*jJ%4u(= 0>]5s=GHs.3#؟p\}sP5} x=ѿٷ:}{Nmo=Yq?B} `us8][zg|}ۧO)Yܴ~I 3mcfok҇n6A  n!F8,i,Gc/ws/?+!cn>@A  @o.!_ !<~щ A  @A"pӓ}xuOW5$|eo(wb<6|!GzhrLJ]o p!Nf}Ycf˕&'> ^)!g/b,7{m],{euMv~!rAz|b6?/ Cg=`ևXEssmNz>:gs3+xÌ;|b1G"sA  @AE ҖcO1YNTA  @7c$柟ܽ58v•f@rR ?f|q-${Ig^vֈ:^_|@͏οvЏ\ՙ8(uPKΰ>~u[>TlMfl0C=|ޮ?>x .)$a+F[3f<̞/6\O?֤1l@A B?܍1pX.1Yzƶ_:_~~WB8[g}$2 @A  X8z_? Ri535邷0~czC;&l#J_IWZ ksծ/M_QwΕq.k4J޸й{] }ou َg@A  @#'Q! 3!3#:J ƒ?QϘ={9ӵ=>yY>4XkYZ1\=Q^f?95/%$;0ӋY^ 쏽r#( b]J.|ӏZ:K7սsAŌ/boE7jŴhkkX7Jۘfǚ!oMA @!%f?K]\JO~ԭo zFa]臞sE1O l݌bRB2OoڽXg "q:]pk9lĘ #Wo fwcoo#zv<쯪a,6b{}t7xSdYpӊBSS5/=_lƿ~Ib G@A bnrr{4"x<_~_?uJ\-%*C1 vo} KDA  @A D ylO]@A  F_~_֝?j=Ληf!^o7ٳ&N޴~3~9ȱfl91˧Vo>5u]3aO=ta}J5|5x{'XҸ@ Blf.Bp{X#vC}< ?jA$v;;3\׀0=Ƭ_ݯ\N{='AYb<$W8j>B FۘfǺp)>@A W@:aLg=~K|] 1coi>@A  @o,鳓O?'s}U]u^w~=?= @A  H?}޽;k5ϗ(ȑ֎kFYo{5I"W/:j\[t7G-7#ۯ=B}ɾso1 * ŰX^$k=&]01{ w~ڮOk978r3f}rY^zAkX31Ck8_(,P+Fw^úaV̞/6\O?֤1l@A B?܍1pX.1Yzƶ_:_~~WB̟}"2 @A  \B̿|O]@A  F'w_{ IYff&1vƼ5z8}Xyҵ\A^t`fPBM'>;km_:[C.>]Kheŋ!\<,ع8v{b0s>2o.ZXrY_ ~ޞ٣\ 1q+Q? 5G&$a+F[3f<̞/6\O?֤1l@A B?܍1pX.1Yzƶ_:_~~WB̟G}"2 @A  \B̿|By@A  MEggg'~q?|aIy XA[iyL3wɉa<6|xkZ͍q /|q|g.s:| }c>3qEG{2-&;Az4\e8˾qSf7=ē˚vHǎښ>;{{;Vo,51G=YUsS5nmb3c]~N/A  +@ Áb\bm%uQ4O..,[@?x~qG??9=,zn[WW1@A  @o!}B=_t@A  @#1{˱S~40=3c??^jYo'K/s9ܓ5b^_¾~5}#Ǭݵ{ϵ1#Xk[| fgs taY#_(^OckMvm}btJnh_F[=vjzǠ&X?}jg_oPDx:fT C wԷfCGkbzz A  j1p88,ηb<2ә @A  1ŰO1gTNTA  @7c$ɝU/k\b^Uf"ׯ'ϗh1ƓA.tykc6F_t7?>b(ҏOqۭ:bztdg,Ў [ȳWqsFZyuksծ/piݿ4+[7]hTqsw2w^w~=?= @A  H?;;;wU  kx%K~Y/7=|'b^x8k:>[Cgl-7.^1M?ֆoZ'$xYNS &i鹻l= p_h=⇠Ę:K΍}[7kZߚtG^ׇۗ|%! ]17ښ 36f|z&}f@A bntr{4"x<ߓ_?u+o뾩nم~9wPDO_ 2ʳ:}% 竪gj|̕r^G|).x>W[3Ղ@A  @oEpOO?ߴvoA  @AB9xÅf0,iu/{9ں?_T5 Cxrk}l5G.;1'z5v1/:COH|rٰy#.;wO?͍=1 2{vn=uɌ76\9:wc;u,GoԷfCC_OKA  8C?KH!܄= A  @A!b k0g߫Vo~+zβcL̮$C @A  p8rb~$N d([ }g /8tìR:Ƽ:#Nt~6|7wK=z53鱬c8BcS@6~ۏxX#_<`#70uCcO=xfp֧3y#iG#?B\G}=y-x@6&7hX7!/ᮥ @o!>8,)yWa2 6$ HA  @A 1%~Cy6}OlA  @A mu]j|]CδunCϞXV84~8%"㇠g~_/(Ş6_\֧\׳|=ѹ'k}GPsz>v]r?!vm=klEzx:=GGMfA6?@Ϻo}fľ5z>sz]nP;5~_\`, nؚ 1eA  !ەA!_ (%zA/wsxzSX_?uc)P_$ӓЍÎzO]Lsɰy (ZyVS..$b>ZqL1*|?'gW=Wvj @A  "bbw9[yuc/moeyVs2TVeql_prr~nʞsx @A  p8FbɽkaQKjh^!99z$FּeFXXOqrVY[dz>פ/q~c?MA}콖#/9bz9z|_nbݢ6; ^M"AøZ}O2;>WI q۳u {/jz k 1kGou7OjYɰjdu Fۘfǚ!o]A @!%f?K]\=^?u#$%dzl)K?;(rb> @A  #Y4|֜{5O΋V{MA  @Az_ wyzHrqf|E<}Cå`f,YrK5镜rY˰>:DԓC]^G[׳nw-s` ælXv_RX+ıZq3K~t֐\Fb<:/6e1uG[=SRG7-/4US͐`=_lƿ~Ib G@A bnrr{4"x<b< ?x~rqQd󋓏>Cq{s A  @AMD 7zR@A  Ag'w|'5SChfy̒KYl/ÌGVo6tk gIS5xtDxP:fTǨ!h3{،s=X{N@A *B?!%f?K]\JHbOD @A  @/n}B=_t@A  @#1'޻뺧8yNn1 v|WfyawoEY_w&?M5q}ȷ&)=:g:!E^|]b%h?$/u2=qrY|]ObM1ZIG3:Eb?z'O߃n_7uͪ!h3{،s=Xt @x8C?K4~ޣΗߕ<|A  @A 7_>!g/:QA  @A T'EOq8k']?Jo,ߙ 沖8E\_O-ӹ=VN}O}{_n/ =;/ !.z^>.kb~AƠC}3XǾz cæ{]l8|uX|;GtD^+fwͪB7C6f|z.u} 1A  Z1p8,i,Gc/ws/?+!s3+@\ X]<8裟z,W7˫JA  @A 7K\>!c/:QA  @A Tvv;{e-$ayΨ86ݮ3vjM'Og ?E;x^vF Ǐ{2\z@簾6~}-7%#vzB/:ꚗ+!≵>k{nO/(ԫX3f (<6BX҇[@A 1p8,ηb<.ә @A  17>!Q/:QA  @A TV~Y/5^cChS,|f͗|dŇ>cW/1W/6c/͌tΝn >CлFOnj9rk>:ż{.A[6ӐM=ǟXgm ruz8kzj2ѫ#}מx[TCg^c۫A=xg, q:fTx=_lƿ~K]K% A b\bm%uq4|A  @A 7NaOqۭ:bzt`g,Ў [ȳWqoFZyuksծ/piݿ4+[7]hTqsw2w^w~=?= @A  H??;;{_5W5VK0.26'58*3cjnY#fl>a:ۛ1ƛzgOfm1? 8r_ bп$!Ƹ辶R4-`ޏX&uo`rO.d[Lk`sCMl=vz&2Wq150g>Ȓ歘m_z 놙_Zi3{،s=X> p A  pC1p7:aLg=~K|]ɯ@O`ӿ^uC7R B?;(y/߇muf{f|YW"3QU/* @A  "Yg+_< 1| L @A  ^7H?+b~}b /j|]{9ՙb^"r!??}͗3ڈͅ156ԗC?Y[ùauqTkm=; _VA6@v# ut`bFP1?sw33 =5um}س'ٵˬPkEӧ, nr1S^hi!h3{،s=X>"  @ 3h,yl?VJHA  @A!O|b~=q!ߠrA  @A 4q]k@̇S n1da9ɾD75"ka6\1?>7nN yr?oafX_r޿:8܎nZžۯG߶/{ !^ q@fߙZpLj}6'Xf7XoB~l̐yA!\zf?5qwj "KB|c;u< #hq|0^@A NB?!%f 1pɷyag;0z\Rq_y^y|A  @A B\\3`̙xW~a:cWv,^kwxe 1_2 @A  p8Fb>c4(z )y'5?|<3o?h3uY=OZ6cm˻F Brዝ \oalc;76Puo>gXav `Gc-fuGXS27=~Ƣwgj?}o==$kKkl_u<.3hWA)[Y @1[b\b]\[?ŗ(1@O/_E^zFa$_ҿ1x%Rjkdu<.3hW<n=Hb @b\b?2\K8yP.= @A  PB\\/|bn @A  n:GL5^1`+\̒Y_7a)՚-?Œ?@޼z {o5hD5kb7}Z^}Wu}-'{>>{ _V$;ӤL >-? Vx~` ny ȅ^`xb#>s;O'~X>X5뛗<\yޮ{< kY `I_^>Τ1A  n!~8,i,Gc/wso~tvq+!py2xЍ>#C?)yf{C;? @A  @ |5RT @A  p8rbuC[^OvW Xm7f_oM~޼g&'ip :y:5ټgbPPBCsۨD=Ƨ 9C`;7:83Y[71\S!~ 뱎ϾsjǟMcdYp#fI ̠_^z3C߂7 @7wC?K4~ޣwf3!c'y2f@cAG7%C?Vx$ A  @A 9ӓO? şV3L_3[u1ixYX =6k+ɸ#o-g<,DF(׹R615QvfTeQ×}}sgt"1Cn^4@[!gC bM =B}{зzԧ&bmSw#&@IDATlL ճngc Y\l c1bc qKks7C[9'_ɧ5a^o\׽N='_"p,qoVMM|4Y ׷f\경.rCA  1p`8,i/wsR}ԭz:MO'5yzFaM臞sEV6%kO (ZyVGS.?4E~! o @A  g䫽9c#!O= @A 1n>w/j@- `|:r7f4>3eﺖæS23:oVٷ{|ZsP=}-z `MC}#ap/C$;zm7v}h>o=Yq?B} `us8][zg|}[~YܴbTM}7 ae\[Jz]} 1A  p[b\bA ߣ'Z&¹dZ9?1??d='7 @A  @m3qR sl]gtRr_~+;Z+Sb9 @A 1û;_5!A+EF8%QxlWE-x֩娏u36Cn?֗+MN|{ͽVS.C_XY3gojXhˈ뚰Bbsm,~ .^|-z:ڜn}t!fVPYџ5v|x=DqT͐X=_lƿ~K]B7 @7wC?K4~ޣ1_K|]e;nu<$Г rO.C7R ;~9wP26|0۳['  @A  UoCz_y’5 @A #pwUa_ W7Q@\njow=_O$xu̽v̏NNp!۫吞a.>ضE>rteYexqE3{Ѭbago~t~ϬƑG܅ZP_bN>`x @A  @X0o˷O{f^1u<@A  Gȉ_07zyȾיC#1%G|f=?zp%13:ˇ&k-r]]-sA}p2#Z_kQd1aYɅ+H쏽rȉNX[r>eG^{#ztg|YGz}ǟ'bRB2OoڽXg "q:!bĘV߸aZ5u[Y?|8c~-~gaU cBg}a^<||3D7*$u 9Eܶ4@A@ ݦ3I>ߵ|b~>1gEoN @A  @xԛw:%|^#!O= @A 1OOOO~_ֽ?j;ηf!^t7z̅zGXgm ^S~[:{`ϰqB Fɚ[нigN.qE{s b\K yX37? D_s^xz|![vrY;z$e)\ъ!/ @o.!ޅ8,)yWa^GA:Ǚfuc;#y幘GS..$b>Z |#L1*|?w}}§CVs$ @A  .]5H&|!_>Y @A  p8Fb'E/k|]>|ZIrÚхeq𞿩!$^+`5z.t`v`-,lꛣ|tkvtמV dd{b ,{/5ž .ژaͻ]_?rm'kkc >\^/grrz5~O/(bTM}7K@&7}XP# @A1p7aLlwsoosͯ:%sۯLЍÎzҰyW(ćoA  n!68,i,Gc!懘|])}維 @A  nQw- z1W+ A  @A#p{w?O5_X03{ئZ3zL3wɉa<6|iZm]bg_̈ε>1ĩ3UKxE4BNwM;6Ye_ظ`©A3ƛ[.!#5c}v>o >Z sdI Tǯ'+xTXfKK% B !b\b]|gZ zV6%sʥ~hg'{|r>A  @A i"!/;q/8B@A  BO̗uQPʏCfgaQ{-ןTz'_2S%뇍PSvggvG?ƌc}o=c$ o͹БK`g/:|%{{?915۵~+CX~n}ԳOlکiZl'|2>b}AO ߫ǟ}oBY!a]b0 eM>}g̻?a˞eA  p1pw9aLg='{l֙MW > @A  F#U;)g\ 1AeZ A  @A"p:?*p9Uf4{ b fjHbǏ:ļ1/:sr\#Z9{|k ^3k:߮o-wBCXl /ur;9F-cfZ=:y;=ү׃]rewkO{`!N(b 7*F Qi' @i!%f 1p7b3^}SO:a~V#{@A MW[BWq=Tw5D[#{O<=8Ok?g][i83C~hDŽvY+(5r_ͫ&k3g:k3g:w\V晣q.k4UW@d A  @A!p{w?_`ȀTPMFS;|ؐ^=yk+YþQXm0:ckui/lѷ6kr?! dub 4IMe^kED?m'|^unۚ䗈O9\cD>:ͅ޾>̈|?G/.p, n 1eA  !ەA!_ (%zAH7n1Uϋ>~e1{y~qdb|A  @A ׍@'@A  MC׽|_o[>4aÒ;j9^Cy͗s >3zG k\>;1'z5v1/:COH|rٰy#.;wO?͍=1 2{vn=uɌ76\9:W:f (zkX#=v=s }YhXcljlN1ԿxFn`|CcO=xePbg~GcGG~pڿ={[d  ;@A !8,)yWa2ΗZl桓K>1pz A  @A oG q/B'% @A  c$߾}{w~]O5!g2~nCÞXH84~8%"{DZŶ}-ע\Yoe}z^O={ַTC^O5~Ԣ&>gv]/+ qi9eޏEge5h'?޿z|ПYuM}C<q)$akKklau 1FۘfǚmA  n !V8,i,Gc|bMB@A  @A5 bC _J @A  vvvr,x\5 C((ZRD2 L IU11̌67!qrqƳ~gm}fI_ 탚m&'BL7'v^[rM,[Ԧwċ)^ "cW˵If*91n{z3wE_mPOam}b!#aM\ؽ.ћGˬo-OW'}vSȒmAIobD*߃@A  8,)yW$Yb3R@ A  @A 7 ljnZo֓n@A  @8H;qaE!q !d\ct~GL<etƩglڈy!c8fz5h7]ukcF;!\ 3G..D7=k̎~%!B}bguC`t>~ 齐C}ѓkg', nDa0@2 @VBVxv2\o]'w}f@A  @}byS5 @A ׍1o|__SH_{(DXN3z9C 6|Cå`f,YrK5ON9ѬeXzɡz|GYG;9aS6F/)N,ËlX x-^k8`י\%?:kHGo.l`#N1\l2:c}t#߭Ӈ)#KB_5bRz A  f"b[rB̟w! @A  @'O dZc="1<̡ixɊX =ڑg$3j^5M(^ö9N>ӹ2e܌swY9*"SA  @7 c$柟ܽ_׀?M 2Efy̐9u"Xc\,faCǞ=?N]s}G8^~9uZ_q 6y&Jo QӴ\{;Gӱor]oı5YG$sc댝|ԷVkt` j|5aXv<||3˗&ƍ:yۻ9@2 @VBVxv2\os󖅘=i8 @A  EB2b!߃@A  @i#1~Y|b>bH̗<;Eil G vr^׆<5!vl t;Az^9tjx15 SG\C@Kh9 kӛ/̓0cX!Oo,uNO..4E 0μ_ub"nOA  F#bn_rB̟w%%>) @A  @1Sr @A  !p۷o|xίn|^OGCv+Nn1Z3]2k:ak|{-u 6լ}qM\i7A^6ľqo6KU1 u$wp`cEzC_F'N^U.C 6y)u\+7_31h>S_uFC G?{-F`ܴ_mH @G@!%f 1ޕt @A  @8!9C3q8@YSˍ=v汾z}g}l򥙷k]N'zzv-Z{oy\~tSkl !2?{. d?A_xȋgmKA=ꉱ/s[:bwy7K5t5Z=ރ>yvAȒ7*%ݒ@Ah1p2aL!ϻb@A  @@֭['5ɭzOwNK V|b혰>6GZyX^<UZ]ۦ3$)fjz\鸚ʱ2o߿l9m @A  Cgg'w~j YEtYg}CWkp!7{fnj[Qތ1޼3?{0#FgnWqAġ|W2lWD^& 94E͖zmi~ŗ50#~63>>ַ{r!z@fZjb9Ӌ7B{ֈ9G}>/"BU{^úaV̞/6\O?֤~~ O7A  qr{4"x<_~_?u!+o뾩nم~9wPDO_ 2ʳDbz|UVcdĐ|?HqEVA  @A  6136b!߃@A  @i#1{Ek5^N4:duf;Ciӷ# nܝFLo.tO νk{uZ0^?Dn빦IB`W_1\D'&3Z}go}ֈ{{t͞a}l詉k;ևPŞ5=yͮo]fZ+bO>|dIpd)H&4K@6| u >-x A  p#1p9aLb>Mb@A  @A#b>'@A  MC׽s p-,,'Y\dm1ƛ=1G<ډ!B.b: CNtWg_џwu%~/!! ! ;S ݽR/6X=,x!^ȏ͵7}ח>1:8[R'&UۡN׽9eo {E!$5~<{{dIp׬$ y\fԯ/kL=zǙmA  n !V8,i,Gc|bMB@A  @A5 bC _J @A  vvvr*x?Kq^23vl!Βc~KO^5|Gǚ}r5u5S<sgXuM},6sV lر!E}m/0s}g=rpgbeNrѯ9;ذ6 {sח˺W?'ϲ_bS A  &"bZrB̟w8 |b@A  @ߎ@r1۟X@A  @8Vqݳ/k?>%nüS5%k;X_y=k8шklo۵1XTZNv}|H:wI/ę|Z<{~A重V I$ 23#g/F}vr]קO >}v>kꑧ7/yv]1g&A  @A  zx5ƙ-Py=-/mg?cV;d\[˙5.Pm=s?g4t3G7]h !毀@A   Cȉ_8F Q S^5cp񇏍/|c.C^5y޼g&^~ehGbug}gxlZXqخO^BC t -P^.{>oFG]gF?kf?栞k@ȃzou gNe! 1Y$ @8B?ܝ 1pX.1St @A  @8! 1A  @A 4~~~r|bkfT (3ccw\˾㋾瀈c3m}mP۱'4@[!gC bM =B}{зz^1цno V1 z4(kb3N`<k1k܎\\q+IO. z}ʼwj<Kd ??|b @{ b]b5:y#C?:@A  @/ bC" @A 1n>w/j@̇* `X1~l#ٸ2 Z1_k9lZ =g舷9z|Zzsgkq[A Z?\[HB/5 cGH. 赑<ͣ:\d-=aFA~㬏ktm-flY5?|o>TdIpK#%  berB̟w%%>) @A  @>FB̟8{A  @7 c$柞û{_5!AC wpr;1>#v=vsQ ^uj9Cݮ7!Nf}ЬJk^s1Z.=2&lzFb =y\_ˡk~s0Cι6'[}jktm1?<|gτ4E 0n\>1"M @86B? 1pX.1S󮄘ħ3= @A  !1!yJ @A  <~~~r_׀ WY9{8ȝK5Á$Ay3Qk'k 7Zy1fk]}m{M^#Gn_E^&'^4Z;:/FzG_;G.myyx^ߺ] q%cgX?ĺO{*thg&36b>o<Yܰ|bHz A  p<{b\b] 1Ogz A w"2 s1 $ac i ؟ f@*/d/V[ I<3h%%;ȕ2*:.r{]yNP2*B B B B`Ҙi)9B B B B B ^=ޘqݑOkGL0b~s}̈vzyhdc6Vƒ~f=?zLrQ&k-r]]-؞SA]\/3KK80"X=C;zAx>#!\ó eG-Ϧ:o.fyV2j[=볷3 ~?z{,$ܨ4/,!!!p8Ҙ{\b4ϻ%;s}x\g?_k0xuT3g?cFJ29r_BQH[ծf:~2\sbTkrofk&L|Y-~e;oϹm>B B B B B G_{tu߯k(ڙC6|N1kba;0e60/qƒg|Ƀ~rql~&7:b{ ryZq]l !V~/$~Q@&v/lB$AGC4 L+0bx`n{[=R;B0>:kyރ;O(Mdi~µ>װ^0C+mcf?lƿs=Xo}sכC@@@|yҘ?i%f`_%|?x+!pۖ ={=t#Ű?O lwo'5~WcyiWGYgߴ~3~sǚ=kc@@o?z֧kfySg`ϰqB FɚYН9 !"9\p{B,Б ;y>o< ?j!;z㇝k}ksƬ_c_lZyG?Neoјr\S5Bl oMsK~Ӈu/.B B 4.1,?/"iOc.Ą@@@@@@|Ҙi}!!!!!ؘrOjksy={cl<~ƐףV@Az x>4?U-i̿*W?~L^]OOV^C B B B B B ^%iOuҘ*os8խo(}R6ӿL1= >ǘv{yX4_z8}X{~p|']_^EGM1{lֳ> Y39;k;\yt؈i3υ^TG//LxC,=2%ŎaͰ:=3{C!2ye1`|Ɵݻ'OxDDziKc~e@@NҘKҘ)Q|~ 7@@@@@!|?Ncyj@@@@&p'''۷yg5I7gm5ݞi=5b3dž֯GE㣠:>3b.Ztĩ3eKxErhy6fsaめSC3ƛ[.!6cG 4>#@5#Pk,Rc4߽wӧ#K"0`~e;X,C B B v"]K2V- "|>VFҘ?95B B B B B87ۘ)GsifgoǏE|S=m;=Oh]C{}fj#Ǭݵ{kcF>zַ1v7ùБ5b  0ƼkAYMmzgO=ωM;5[ =cPoG>5z?y􈿅"$M%ݒ%B B @w+Ә?K̔yWҘwg!!!!!!i#d$C^C B B B B ClwaOj<ҫ̰=Ĭ劦bčv֚C1?~lU/ QyVoc5u˳3kYxo׷ykWC{A^,6TCGs;9F-cfZ=:y;=ү׃zS<٭y}gȧȂٳO>klj̿"0Ҙ@@aHccrҘ?J̙B B B B B B A |l1rk@@@@u#p'''۷ޡ1W5>A;*d5}یn}&g-;|ؐ^=yk+Ys>ڈa{=tץk"saӏskCoVvЬ΅0a=wӇãgxo?#~:m7?>@h/&7y=5o#>p_{ tG^{.3"_޽ ȒpCӘ;@@HcerҘ?J̙B B B B B B A ~|}#B B B B B#p|O;* iiי{{u_17~r3 3YscM,]̋5~zR&$އxry`G.`u;ȧFϞ>^l}<>=.3C~hDŽ5@@IDATds̿@(^öv3m:wҌsleKl6fzf'Z>ϥg5zz9./%}N1o<`#7od`};@t~gVo#g|g~GcGG~G?}3n%%܉!B B @wOӘ?K̔yWҘwg!!!!!!ic4!!!!!Cl̿q7TwW5ְgenCÞA߱6"鹶o'Y>lg~Ŷ}-7\YoKE{-?O3'k}K5tƏZ=>v]r7!zp9<\y@/RO>sX(,d^O>]gFJ~y3L%1Iw$g !431ޕ4/ݙ3@@@@@@ e~JW!6柜nzu7~]w5h^bmjѼLCl&cbgMo23Ďך]cg6Z嶉gm^!!7i9gKNoN쬽r5բ.zw ^REAøZn|fv|.q۳u ,j'{<g3vxQo}2[k|#i̟!!!!!pbcknu/?6r"H!} zѶ6GL<=SG}{g6[zgǧk;X63ل5h7]ukcFJ}#\h QMdZ=`bC=o@OYc.z֎Z_qCO<,䐕co}F~Gw=z\Ȓp3Ә;@@HcerҘ?J̙B B B B B B A ~}#B B B B B#p7W{Gu7>Y QFڇB4ӌhams-1^jz{،%?^RoʚX}ON{Y˰>:DԓC]?3o^:p"Wl`x(كv_RX+lX czyי\%?:k\σ8xtrq=/8/s3>G?oݻ'OHYnZtGr8i߽LcX.1S]Icߝ9S@@@@@>1ߏӘSr@@@@@z1du;|cj{Z3|c&Sޟ "!!!!!!!<?^g?GˣqLϺ'У X =6SWQz̿;mD<3>Cm:~am2^sbTX=ߺxl_6a:nK5p9sB B B B B B`MONNVoOj|˓ niV>c~Wc3_bK[+6@:ǗC`l ,[5 yׄ{n|<$|uᅑѡŰk SG\޳n}sǏ51g szsyzXwzNb}l7ƛX&DC`QOG6fPC_/rw=4/$!!!eHcH1,i?J?/c(>'^H1N釞g >4K*W*(ׁ \Y< ց1pl,p`cEzߌ@O~U.C 6y)VnRfb19g3ݮ_\د,r` " ]ڋçeM,/t1=C=u[ Hc /Ҙ a'`.?>mNߎG;we쩁a}m&Z^3bLyz=ϋeb}ezxb3}7 7uΗ#1'l1R,o7_=C |t1rk@@@@u#p'՘^Ƨ5hGuwih&{t~3H#/zb}X_>6k]vO>ѓGoZG5-Esm}O`ϞO6#ZZE^D=k\7tzy=TO2ѫ#}֞x[TCg^c{Vヰ߼{OHYq:v47Y@@@D ;a4(b9e7[:!!!!!!E |d1rk@@@@u#p''[yoj|VjifM/265|Hгno2k&5Bnӏg3xZF3#榶j|'ZnzY@C,^!Hr08;ضX|Y7:k9`}k'gLk`sCMl=vMdF5bQk`F716D׵{P=k5uj| #K"MNcH!!C i%fJc+i_3g 414!!!!!!׍7_5hM4 ۓNFҘ?95B B B B B8w߽^l}Oc-վlyHdc1~8c~=7C':3kg:ę|[w=ӧGD%ݑ%B B @w/Ә?K̔yWҘwg!!!!!!ic4!!!!!Cl?99Yݾn|TwB=6 Ӧ>df|hD8ԎOscm4YsXSټ\eM~7v\3όxx+np@ryA=$vl8x_{c``n_YD}k98gbyNrq^sb̲am.|]_.zެo ߘe 72˺'9M@@ 4N1,)1Μ)B B B B B B`ҘGi)9B B B B B ^=ܘ~ݍOj|Z?T6~ЇyۧTn.VG ՛[aom}߳'ǚ5zk1{6}Z^}Wڞ$QܙCz!;6s\sOkG.efG^F}{<庩96]S1; E% -(/zqAƧ }vnt83糶::/s9@<:}{Nm4}?~iu4/F!!!pҘ\b4ϻ%;s}Hc>#i̟!!!!!pbcͷ_] z@Όeflrv9hDدm}mP{A5z XG;'X\LsngiV7q?r#ư*6ր܎.q޸Zaoj$8fgO>O. z}ʼ9;1x4FE`&mfe=c]zy[.}@@HcnprƟw8pgU<ϗ?+֛nHHOsѿy%&bgaAuS?}y36nW6@rZϞ :+1<+/66x~B B B B B B B74柿+ N1ƍ7i ꦯ>f_?Ƈc^fo{+3eﺖæSfft[=>at9rog! 98  ǎ!6sa#oN|[\ꅋ3Y=zAyNOkP1y>:c][RR{?ɓ',7mtl&yK/m@6|hH 4o6B B 461,?/"iOc.Ą@@@@@@|ҘGH'@@@@@\7ؘ||ޫ{w5>a04ۯL/2(xl؇뱛ZE[>>zcϠϙ^lǟ5vl}9aF5Z=O 1?|cg͌g#V˫yCxBbsm,~ .&Z:ڜ8F8Yƛ:̈7{KYq.iy[9m9D@@Ҙ۔\b4ϻY/>=#:}%˰y1L^C B B B B B  iO:_-5B B B B B GOOOWnâk-6GrR ?f|k@IMgݟ5N934۫吞a.>ضE>rtv/y<^ hf/vt^>zGo;G.ՙ8Qz}2w75>Է1;!uo}·MdF 31k5˻zv%EDzi0z<\fԯ^6 0>Τ77Y@@!43?Kp|c~1MBB B B B B B ^4r_/%C B B B B @?.ğ֠&a=z:@l %G̬{~홮8z3M.=Z$Z1\=^f?95/$$ۗp`&fEr z.w|PG(Bo7g%>ӏZMuַ\eԶzgo-f|4G?~XdIQ:ׇKcR!!&4ᆬ1,)a510Ɍsg2 {s8cC3G?j98t6?1c=vߘf!!׆@wӘ?K4,?Jw_?u< ߱m걱Ǔ}ndu㇞N^iJ<37hYn# Hو}l]ocTL~qiSOӘ~1?=@@@@@\Oؘ/[?;Iՠv>hiWGgߴ~g.kA羦OZÚxb{뙈V B}ssΝ$;'@/gL~.`{\` ݼ#v}b_˱F9Ƒ|0r콶Z5C^_>Zo;;/n s/r.B B BҘ|6W1^-40ywd37OZy x1<-KcYC B B B B GOOOWnâIOk4N2=,33c5a~9:?aMyt6~&k|{}j5YY*#fL47ؓs9a#rSό?+ xQ;.q$\{gb0ƶ ˼7\;:5ú׏fxLoZ8~f>/vw<}Ynئ, F!!!;HcN. JcXFiU/(ߘo̿{&!!!!!!/@(:/!!!!!/!6柜nzbՠ_&ހN~lv{k@A0>~'߯x#Ȓ7YtKr8i߭LcX.1S]Icߝ9S@@@@@>14Oy n1NW7yu/?H2þc֯+7YkZ!xC^13W-7(G!Z9{A.ς\eu]Z%_Y(2y!LJ[ _^R ܛj98H^vO-hg)}#" fϢ?M^O1N„JcJ!!A i%fJc+i_3g 41!!!!!!׍!6柜nz_ z5_l3 ݏFۛaCz=Ag υj#[ ^vυM?έ }ڞZeMHB:@8$Ë|Z~y3\#K" McH!!C i%fJc+i_3g 4q~JW7_w|=B3aئafZ^gI}?M3ǟa}t9YOb e>΀@g}cI~V֞5v1/:CgKxaHS_չwF ~ě={b#2{vn=uɌ76 <zlf7濙o/ n\xcr8iMLcX.1S]Icߝ9S@@@@@>1#dEߗ_۶C B B B B By1uݟְ 7յM<߶b>Kf&{0TPjkcU=3~}_ R3z=He]y kھ~ۏxl 7 72㏏ :D?f3+؈ jXx>l3y#iG#?B\sڿqރ>}FHcD!!G i%fy2[?bAtaχ{=t#Ű;g1gާQeڈ6sgM}19Z?zu^AP?jQ>v]r7!zp9<\y@/RO>sX(,d^O>]gFJ~yĀ6ܰ*yjn&g?[o~F!!!M i%fykHnXJO)}B?פ/q~c3{k9!Ǜ;ku\M,|ǡ{@PE0|ˤ8bl3w?8B=1k̅"y[ߺr߹w;O,7V>wn .3hqRzӯv%CE@@<41,?/"i̟`~D|}e9B B B B B B'1/:_-B B B B B H_{tu/} k9zi$cZ>7?֝vHGqo36uMm1gMY;j9|!Qo0:rZ?_pCV}ѓ7j|Nef皽AzL16߹~It A i%f`iOco@@@@@@i#4濄_J@@@@@,!68>^ޏk|VSz=M4bK?4,3;:K~ֽݥޜ53RDƗa}tz'~&#xgu6ʳEPX0F; /Vıx-^k8`3K~tְ)qf{^|q^c]g|5޺wO:$ܴucP?oElS/64_M@@\ciOcX.1S]xQj٠繃LuGbx.Y?յv>=1t6\l2:G-GMg6SGg>1ةkNchqcsP:_q 6'/* ^5?`}pZ{Kc:uR_@k{FX#6sc댝|kt'7RkN}Yo޽ӧ/MdƍKeKjvC_/6_TK]7ͭ ن@@@:41,?/"W<~k~XBz9Λ鱑|blwoEY_wf5kc4{a598co}f*/*1\Ÿ o~3=qVlc'1æZI#=5eo]gt>߾?2l]4Uvs_Kxu1*cLi̟wA^| z~ GUua+7|ڑ<ߘ?5B B B B B B |?zNc~K8oj"OGgc2?4+xLvf:A b.kYߚßXt |eeԢ>19g3ݮ_\د,r` " ]ڋçeM,/t1=C=uc1vLjGyk9װmfg:w\晣ܝh i_!!!!!pbcɍ[7X]RsFâL1c~d}ki'OgOb^|hg3v8B_v}>r޵OVcߤ1v1S:&_S?~bϹъc@@@@'p'՘Ƨ5xrwih&{t~3m~4Ac}b>61{]'7׏\k{k>:ż{.A[ @x/=:k.>B倌uN^D=k\7tzy=TO2ѫ#}֞x[TCg^c{Vヰ߼{OHYqOևyy4̠,SMsK]Oڡ|cz!!_4sr.AU<Ϸ}WBz9Λ鱑|bM{xl_[&z@u >WW@@@@%p''[yoj|VjifM/265!zvOoY#fl>a:{6c7oo43bnj[8!|r妇U= >"ա!‹$!q}aKshmyŗ5`}3#~6ַ{r!zXʹ6>sj,Df 1Y#0ftΓ'+$ܼѥuCa` .3hqRzӯv%[ k@ i%fy9`R~_?uC}RdNcCOog.l[oşUl{󏏊g@@@@u'p'՘_ߘxXRFǰYT'Ndȣ5CG _X=ݟ5u:WWMkm=+ _T!=`ϫ ï.uŌ`C볷>k==:͞a}l詉k;֧!7{֜kvm}2+Z7?GD<;/jkX/16߹~It A i%f`_%|ꌿ VgVޟc3@@@@@@$oIcF߯{4xIShzYT^dmχĘyiO7{k'<zP֋ui}ɳg_Gy%~'N- % p3 0%Zn.6lsAaAzs̓͵7}X__J@IDATfyC.~3>kjk>ǔ,7ytlj6  (= )c]_}>[x kA i%f˻H o_56<u:Dk1Ç=šQ.#Ncg,zGq&1ߨ{~)%W'4USͣeͰ2ΦRgcM4p!!!p 179cL1|1?;m!!p<}zzR?eo}^?%.lLFY?臊Ƴrcz8>>эǫ7V/Clw߳տտ>/Hry{yx㿧 #\mon|@(>`!|Ro?yhj?Ǽ{'}TPLϺ <;. 3C~hDŽ>Wq#o-gA(^öy_^gqYg2^sw^9+1 "S@@@@5#p'''۷aʏjn}Kin6 >dfx E!6ïSX/'Yμ\eM~'eX=6Ewe!> 2Ď kb 3 =^ߜo-Y7L,b޹;I.kN잝Y6ͅ/3eS_/ݛ,F^Ca`Nc_N!!K&ݝ4318z G6`7?ZsmC;'@@"Ol?3/J}>ՃƿyL#!{&P9nh?O{{|c#!!!!!*8|R< 9LyCmRmz}ZaN>\}ǰYc=voG>+}mOv}|vU!gjm X重Z y;LrM?9 A ٱGs;OnsN >b}f#Oo^pZ߼{O뛙"" 3̣eMe4ǔFW;tƷ iB B B pi43?Kp0Ыy|Qݖy3=fC7 LhK _<+잭OG*0ExĞkUϞo|p~=;[}{>pVk@@\?Y=/LK'7Wk~Ŝo?yůVa_Ld (׷7y[|Y}c_yywc&]~a1㺳`q}Ɨαao5aǦݽyϾקb+Fo K}?8[^c[ˑ|!VI(/HanAyAÏ 0>]5{Hs.|`(,HKe16߹~Imه@@u 43?Kpy]~_?u<^mKTO^bG֍z;(r;{a+7<Ўi̟d!!pH~hxHחk /ޤ9+}H=_|_=[=L@l8O,?;ZWasK~jр/gWG<3sΣ:o}b[g?cV;d\[˙=Pm3l]C3?.kQƋqk4ugfؾ^_:,X\?Oæ!=7{1k[_39ؓ_N!ׄgзz^1цng ց1zY(kf`<k15 Kks7C[9'ٓO;>kf^߸2oN5޼;DYqOև2٥eR{ӯv%ߘ3@@K \b]? *y;?֏tXϛIM^b!CϳEV3ȓo[ 7w|YP$BE|u}S5A_{iOHc 5C B B B B ^>Cl?qcuM?Ac>W]x0:z<4W!fu-M_k>舷9z|Zzsk r[A Z?YHB/5cGH.IK@k#yG;uao}ϊ^=#ԧbf50 qG536J'OP*$ܴlܑj껙Fmcf?lƿs=X>E@@\iMNcX.1KclO-d"VKC٥vҘ/!!8OVS_ x!_>˳տtْ#B`>S˓o̯.LI[ ߘ NOV|s>?V}#B'7Vǡ/O~.LIOOOWnk0zm gC Υ~vၒ&{a3Qk'k휙h~Czl ٺZWl`^ ㋾XExq𢙽hy1>ٛhgVgn˛G܅ZPx X׽97:b3[1P/ kYnZfa`NclC B B K EseC Hc]p2G3 z~!GLuOa}症yN^C B ^i|[g_J_F"pT׾ߚշO}z+ Wi}rշ^?|XߘWk_g].xTG~qxg,Ў [ȳWq/FZy}Oģ6Y[m:w\晿ܙ{ nXlCyu5;m}uϹK|bB B B B B 'o*g$}=3{>dZ^;cXÃ&~hcf?3~3GϞfbfWG}ɇZr1{ϧ?zs\/35/$$ۗp`FN/z~( @-rkc]\.7#g#ztg`7zgo}~?z{,$ܨ>? 2?gcM|cy!!_4trv`xy/~WߗOQ@+EfzrW{ny Au#O[)M (ZyҘ?5B B&GW}~J~W^㻇v|كs%2B W7V[|lr$ߘ? ~_;0UC B B B B ^6Cl~~v/Ԡ1eY;C26|N1kbak7q(Ӱ7y36rS=/<3y_VXlIJY|ؿ^ͻ""MjG ae4zy[\(B B B @wӘ?Kğw4FNo\?lSWإ1_:C B ^e?\_{/ɍ[_D_>L"!~!ߘS9!!!!!!׍!6}[?{Iՠv{5{C3oZ? ?9c͞1z}sc ַZI{^S53<쩇3gX߸R !_kdM},^ ց\a.B8ؽp!jȅP7kz}ɁN=@>5`9G?gcV/ݯ\6z޼ࣟ>7o,e1$4M| ulMsK~Ӈurs1Ә?K4w8XӘ&!!!Fෟ>\͟إrB8>>Z}u2Oǣ/G~pW7kgzpT1O_Kг1ayJ2.l̿חL(^öy_^gqYg2^sw^9+1 "S@@@@5#p'7nn߾^Oj0}fGZ;>]Ӈ?8 ^1'=v|sfSЏΙxb[͙׆ &9w유Aس^H{.wE 6fݼ#g`F9Ƒ|0o&{cl<~Pf}}Oo/ nz x>4?U-i̿*W?~L^|&Y`z(ce9B B&l!,47ˀwyzǂIdV~)y*GҘ?95B B B B B8խo'5>a8}ӳ[ilטEcXT ?aMnf퓮ƯdoO 33:جg}|j">ܞ8ρְ[rx]I8ޛYVޫfz!buQ5&/1ĘܘAP&FDCc"nzu}]uuyYk> gU:y&>'99vA'xFۇX+bɥbGP]/?a92FrE7 6DXy~Ǧ| @8a w}c&`=+\l1gK *%[Bz.F#`fr3g91|i&l/#U14OlSSy}ǟ|dg|Dzbe[o۷W(,Ä@~*[ Ǿ%1?(/u>a:m#`?8MØ&Og~&˪ d]YO+e\*&:ۗ0MĎw8Џ(mމ]4:*5F#o01* > ΔEj{g<61;_V_0F#`XhGbҥKe']86 \ec_tb#|V 1Ǐ?=U^Ʋ*F+p|񑐃g-r1[Syi.蔋yȿ]_غxBA@uB:LJ &'$C'~r;9F-E7!jq\|\R빫9?:|aA>}lqLWH pqyˬks&)o?710F#01pa9g>&fb}mb0  <01h.'bllٚnH#G9- Yɝg#t$F +ۚu|y]>ycoFC #`0F#ŋ+A̿;`a7~"~B_d/sRcLD5KS uu=tnKv161o3W'$@VgRd&]Fɣ _}Q?k'F {]GP7׼U"cWUXvBy_Ck֭λ f_.haB}y زO^$=2F#p01pa9L/Wb2^Z#=?/]Jbc]Yt1BWr/x#`F9|3z9TObUG.?9Щb\\k~ŷEG?|OH<dȥ +/cDv.X-zʍ11ȌG>ab[TE+_ra "Q.=vV9h9twPpҚ[镭=Lp)AE!drLE/~^H[zh0F`A `b.r3}L x:y-2dEYngwd&u=t9E9#`01F}#089Sb{K;xb1F`(}b ߚI1?{=^A}ok}_Cg:tco0F#`E`Wvs"6}7MӇLK:C+C6EX6Z-Zŏ8ѵ:`P9e9#u,v=P?Ѥ'I#D1\@_#;ȷ"?ZIO+F堆3z)G'{;zDqG\5k_;63na@7BfϷ&SnzekV1? o?71F#`&2?8,1S,g*_>Kߓ]gYHV|a#`ظ|my,th;SbKy2d1F`(}bw/o? < #`0F#`9󑘿hѢtwDZ%q.#Qymhs;sY$."P/zkFdS.|ib9=TٟzOէ՘7TY^8Q=P}Ӫ3O'3Rl|t:ISթs9פȊ?œ.UѼuNu|/Χnj>kP8Ncͺ,Älw=f61? o?71b0F`_!`b61pXcY_v/`.S+뒲`]b4Y0M_;kNDZ6[r#bwժs訖Ӫ#`A},<$8Sb0-F O`bP$0F#`Gbŋ.08 C(xԌy*ytL`_dtZD9%VNgZnM<}կ|:'hE<\1urbR}rLKTxZA-^'$P\t|ɤ ڭH/𔻞|ec$UX'zM뼈G<ҫ78_n;7c&=ߚ/  ERQKz[zh0F`A `b.r3ebx31>61FyM[yvZ>#0c8@`1L0F#`0H_tIZK̻an!p!3&?Z#uK<etN~BOMO~D0;zDN8֌G˜/tmWr+*-2*j\}R|Ik´@ƪ'8tӗVG}%tA.Mࢧ#9zh9U}A@:O=r+͏q]GOntq w޾C%\Lx2F#` &R?8,1媀C^Kp zS:5MIQlV|Qc~27F#001_@OhLXzǑ#`'{F01(AxF#`0Fs#1QUO^qYyW[Hv8⇨Oy[|CåLq]>6Œ~]_P7sO|92WrM_GHzғCzN~Q_Sq?VEXC҄Dk_R(Fvb9t8:8qIj0!E .S*͙RJXN7F蚃10F#01pa9܏x|1F#0;Yb~!1E3%X#061۶m馛nMGkzAbzYl1"OGI29otKN۹mM:.< |sK\r7NnʡSn0F#`X`Gb%ӊ18pY,Ҋ,}(6_V -"cL:bYw1ةy3Fd3Vv~l:T tKGri޲ՒpROD'*? zNkBL&*5(M#q#"saUW-v.O+A9ɹ!9a8[v1e(vwEU.{m.{&3wbk\LI#`?8MØrU%/"lг(;]%GV|Qc~AƯF#0ش9 yF`8L~e,mq@`[zF01(AxF#`0Fs#1ieaM-6Dcag q!b%^vg,Q†^9k:/yB vƪ>5lGusNp;6; >-x "P'#tjd H8鈫 EhW}ИPq.|<Ujۢب?B]wYw e(o^UyLp)A,!drK3]s.GuD]#`0F`! `bலr3}LL;)t:yh<]gJVw"َg}!wsɿr˺$r&Z 4% dRck:Uײ1ܒ;31V:7pX*#`E}-$8Sbu,=H0Clc>eEL/8#`0F|$/Z(req-C[T)(Cxʃ?F/?Yg3_XǷE"|_ 6>>O+}G}C|kr07Icէy`C4/q:/tb&%r1,9!kptŠzɷ_.M}|֓lʧ M??EϙQGO |ZtÎǮ[;Anng|`6[ %0ȿ" uLo0F&a̔}LBW3K%u`eRe|#`2&3|v)1׏7YznF`a!0馛n/8hEm~;:VN3`y:H/h8;tΥ&lkZֱFO>Źǥc.9QFЩ`b~7F#`0F,011q)-*"'f׸>Ћ,aʱm1Ӓ>1r&zO,:|KS#\:Vnk|C EŧX$8& N.}bQ/zETGk(F~ؤ4Ɨ _šŗʫX|G:G^-y98c׮۰zXf|a6gK 21F#`@/&13AocM/B3^6B0KN_f-_b5ksr 2~5F[ӘJ\"ϙ?rXzhd(O[3}6YY761z(ņE#`0F|$/^(\Ҹıs! 猊ǹz^6khp,6DxԢ1l≕(/>'qY,q^t;F[W>W=W-9ȭjO[TlځSX=Q'>ENoǣGW[ [15P}k'ċh9bgN4_tU^ƚpQ}KU}?; C(\ԆRͯaǜ .%;o⣖1]#`0 wMØ)cb3oYhΔѯ~or.#`fy]vLcs0F#`0 I_e7v$nuwnbChS,nl8lpiX>19$/>/|>6iq ͝Ʈ|ʂ;/Œ_d[UD5׹dNA-GMjҚ3u'Vln_Eu.8yPOݦh^ʭ#qm[c_Cuʫ0f֬Ywwo|j6LgzEU.cmdpc_G1\'#`0;&b0fr?~<K#0}bwg:22kLV+b}ʚO#@W۲w{3}9gF#`0F,#1iŊexo!npEF#iYܪ1b>Bnƴ'?Ztj57(^yUOSQnt_U8}!|!M>rhˁ`ÇXtg$a&I8麯Ɇ3iQ,Vo&oח T_4&3b.j`Ӂ59eg.%hLQ>@.v݆;w2-0!ˌ֤l1e>_Az[zh0F`A `b.r3` x:ycDx$5k0#`2܍!G[x>F`f>1;泎51|Z&ZpnBԆVg:gF#`0F)Ȁ/+-q^ht""HZ;MotsqC>benO}Q,}l/uO O_5I?GcBP>!mu5WT$h5:t~51ĸ5q] 0}r"ơV^g姭5FǼr>6DWcǪ!^o.Y}W]Z :Iy0!Eՙ\镭=fnZɖ[0ȿ_a枋0F}Ca9g>&~<\d(t<+N y|k}VƋꨦˮ9ka45QcW6S<۾%C*GhO'J.]@@b)PeH5%l4D>zD#|R.z`S_Vժ|i!#A?zg.jg|asEu| \>U&@!VЏL}ME##`0 wMØ)cb3oߙ %]lj)dze@P]|9EHYwPD]5&1x)Bl &#` &) ibTkfm۶tMf]ЬAYJZuu-e\(WǭM1ECG[tO$9落t?aRi(0F#`0 H⧜qi%jP6?18?Eρ>nQ5o|-J>*INztD}dD:W>:OKZL!Q-ZaЧ>k+G8+u^G]ljk֮zl w0!oX/Ml17x|3+/~ŇGQew#`X?lbLtk?N|z=ujE%s|ͅtWtS3+FˡjME7m! K'$vlbu_sQ -' 퓔/zu}Dρ9ni.S8(ous*'v͝VW.|94ǺUCw\w.d0[vTQ}m榕le[ŏ>M`+0F,LE61pXcYO'T|~ԻM_t%#Z=F^.& aF#`f3dɐ]S7G#&릁w̟w#`0F#0cb%=ql[Uԙ>:C U;_@T_zV0VӇcMjjn%# U3Ǻ/Nv>>} g*maBjND-5-N~8A~` .843;6Gcͳ'\?>EiէyK]yqk֬f,v \̞oMr F2A-G&#`@]f0fʟc)˚r 1e#`G}+. t7cbb|=\,P#0mn%tdw;d4/+ߑ;`,K#sůj emͺHP7~;Uh\rd#jȗlQ҄IikgXAC:g1F#`0F`"0ωweG^FF QX U/6|l|ת8ŷ&V~رɮ>>wa.U})sU?K}T~9tU,F7(+K(2(P:! `|jW:G |oFG]ET[:5;v^4堞!~Gu_iɷ)֭pNC!@ wvIQ}m榕le[ŏ>M`+0F,LE61pX@IDATcYO'T|~'/:}!veX% CO^zrlY?;(ҍ51W#`XlXq!#s7|41Yl!0A-B}lSߛjZ~9X#`0F#p%KOboű58:s-9-z8ʴhcø/]9 "ױԹsS|mFKZ۱1&4@7YT1jA#[uĨl;A'<ʥ H3N.>dbS?nb Tl'pS_+.Y~GsO-JϘ|?8'lWW\sPǭ[;= _L[6sJ2A-G?rQG i{.F#`>@lbLtk?N|.~O_t%!ZF^.}sRe~e;sxMDt'ӪU1j1FAU?|Μ)1}c6?oA`;Y[B]t!@Y/qֹI تwOc-i¤贵3tϠǡAp#`0F#@ŋ+C̿+īn4cFX(?1KWYlGfŅ)VcǗ6zsu|T+4oU >`qt=~} g* gBܾpp$'^KaG/]_yd>U_sE/pkNA%qPQ+NW-Zl铟>_'];wR2Lp25r+[{̙R>d}қ߂C#`0 wMØ3/%_nVPǓW"s}Lr?/Ge>hfb}~ #a+d?&tY_k_._0F`01{ y'>Xཇ~8]ټysZtib7+e#pHS>Б$m86o+8쐑t)D#pˤ>1X_X+_aMZ|&(;6} Şײ򋶳褏'7"};9쥓Q7O`b~7F#`0F,0#15)'xm\x,Y=B|gb.2B_ ⺋[+ENts}|[CnKhl=3Yz_ʯ!V"O}dyV!jV"o*աEO;̚ eFJt\ڜ *%{uSH*/~q11]0F, Lu61pXcaBg*PN_t!Z)w\GP]R~gR63v~1F| N=_^?>vؓ>%;J??&_>wy/~WKohX|{cνޗoOz[zͳzSx餓NL?I|o쇲ϣ>{r=)nyϟ&to{<ͣSI,߸apτ8Rz扴P y#ܷlH_w~)]thzA]\9mI_K7?|X~ҥqu#V=7X1* UŷW}KOs]v0&ر#xAdUu=Wo_u/A-H' ΘPu184TMwπ#`0F<'tsv3ctaU!>b_O|fu~I3ҫtWױENbKWriGOBE*3 J0 &\$'+Ap+ fpȉN WtCs CG^͍ңS}FŦ+檱p͹=Rg:?!柴~WoNB 5ٝB3r˘}қ?\Wݳ1F#o01p8?8,1S,\3/%3PL_t0Z?51ZuH935׮vӝ)XR`bbl1>˟2^xv/|c.]/;钸1_eղ:F#'Z(iS0eʡ)<%>c,[tNgr#Fc\Gth,|F  g*&:Yc!"cC4ob?:/\0bU5uW Z᣹+1zW|lݦ~|9d5X:/t|5kׯ{#4@V)$57ex? / ^t=2F#001pa9܏4;3o=y̿XegS]ͥɅ"dMRi 1?1'3~1FYB`><-,w_73ȶ͛7grmA.t~s/({Tg6mJ~x_קk6aӛ~<-[,ڹs=NM̟f2c:kH~Cwė_./3NMY^J=vS>՘mb 1_ qgҁx3U86ޫi\`b0F#`C`>Grj8C`gXC^ H-&oZ~O>Ns`̡ UbUmOE'wN ׅSNNę,X8u1TYG.C}x9UXkɁN=㇝s:luţǟJ/{իckping-Å@~RM[6C|-aKu}Uvw0F&a̔?K183/%3)r&5Aco]J65Ln0F7bnͅT~mk6K~c`g.շmۖ:Yٿ%/N3uO2(;`gJ̿ci jb8w̟93!䙣# }<`hL%d/Hoq؈< <: qgҁ^zg#`0F#`󑘿xѢrռ'-q'fX]Ҽ8ҲC-oDZ zLr/W΃_tԠ/AG Zu>pᣓO74|'cjNIf} ucd X:IcNLwA+.$vmחQjGqF>]0'W./sAXܧU<~!G]>P?Hz@a Ä̱` )F2A-G&0F<?8MØ)cb=#~:y~>ѱ$ !-z>Še-TGuW\ح0FNw~/K6n*v—>ׯOkzի_t9?q~^{:/`xݿ|.vܟw?guVC˻?^th_xzI'GlHDZ@yޒ'RO;z$dCI{\DM^yؓD#v)m6nHwD;y\Ǩ4=ؑtґq< D9<>+p㇯rq#iSGIĮ#јkO:sG˻iD'v[;%v?쀑ĮmH] Qu39t_'Og1˃R5ò ~aҖ~G}V%ZFr~Ю9*s[9L0#`0F#` 󑘿dɒbI'Ӑ/s2-2n@lŇiM49qO-IGkǷO SZ>j"V}b5Of\cּ+"Kb>X伱A&cKΜ~G&&xwYdmcժQ10F}B![~ҧ>̧T~w7ěӽם _xawa:k8__M7iN3{"p@Xz;{#46EWW_YH=#H{ ox}_ŬYu޳lې_ݹfxٰ~CT=^;O|b~LzC?Szmş'`29k"]OEߋ>=,>œW(N%<:>yx@'Mm7y\ɢx g##drw' Az 1FC1ۏ02 >3v9~޵i+61c# xGBeMxV.vGz6/~+zc:Ec~51]#`0F#`󑘿xrŲK2Gɼd?{;+ʆ,8ӴɉCamQ<-h|$贬ƪ)vr:C+8ve'bQ-JwI2yDb)65qZ\6]Tx4i?RMP0eŨC tcP``UXjdbVa  ;gĊjs&r-!G=##`0 wMØHwN|'/rPZƔ1Eqŋ ,Щ cYT8/SA},X##`׷|-HOˮVug?ʮ#詯l~W}S>'o! DS.N0c#/:|ElׅX','bW5[}'F~:͕!M}3Mvj*ot6;DOts l+s wv eoWgrEUނV1? o?{.F#` &g0fʟXAtLwI{2c {JVʑGq]J/K(kA'lOi>˭w#`fBzūӚ5k2K.M7ovw7KPnݺRvi/nl?s?^McitSuG^W&t7iӦMgC=ow6oޜ>Hc~Vz[Sg?^ڲeKoc˿KxvLjbO$vgGy+ɭ3| ࿎HwO3^o)ߗ9I]>qD<2KOMO?kt;6M#bS/fAȍsz UywDY'n7I,Mǎ.yy/ {bwM[SטP]?Pj3$/Q;Wo)iƏf.]/;ҸMĬ*‘W՘U.zE7A*F+:|eBˁ:DyFS6_謆#!y$ʩs&jp :/r'UKy-dN^'Q~|jrB8t*FQKcŦzctvc>:էR빫9?:|aA>}lQrLWH pqּʽl1gJ *p?a}>Hob~ ^0F,Le61pXc~ O'T|'/:}!gdEy/5ѩ Nt?&^y߬Ur)b b~.ϫH[#`0@Lgހ _S1^?x4qO;9!%>{[3ExtA}W]=>}SJwuwz衇ҕ{oO;{xOsf1ۿ5cu!ʫE[eX7)p YqOH_uK-IgJRpXiS_K[ B u2?rxy/}BxHJ?؝^7|䙣 w熾ba٫+ %zƱ#9|/%embՍ7yh]lb~ﻴw{ 9#`0F#`*󑘿xr2ncqpC7kcVE/n2=w[· 1&u}%u U}b8׭)6=:/uNh^ǼeCX_۟`C&Ł0I&heԝʑGq]J/KBí0Fw1?/|؍f|]_ŷ7p2駟mt-EAD:&^sms?}g:Cvى-gϒ6tobgi[WeliOb_n<-KK7}}3+ {N3U{<{C2g׎Iee!ݍϢ dًr?}xV?߷bggzW(vH7go%c9gh:I#rW1>gQ޹+&sYf3ώ\/!x^Bi#Bk˩2\[@'OiuϠFpGj`55t/2as0F#`0F`"0E3s` n>pF7jhn:C'YW(7~e9\AόG('}œXdžKt1vt$W=W}bEy4~B4ri `4V^GrgL vD2c~ع9UG9iWz\xHK@]oUZ;!.\֚[镭=Lr)AEo?71F#`&2?8,1S,g*_>KߓEpPɊR9(^4kS];wٟҚtFCZ;kb1]#`7b\%m2>$bW='=#ON*lm;o;U~U[WcvM|#vf]wޕx_}믤zt Ob~z֙LaӦ^Cx.vLSz; {1SgxCo-)}+%yOMO;9t:=$gc})vFqa;:qhJ<YRމGcoxXY\!iBBK:C+C6~/6|#G 7nC̗WTףԱumD iR`9$ј8}E_#WՆKυln9E#^VǎUo^vY[p!ִ %[{ܴ-aK'-x=4F# 01pa9g>&~<?|.$g1v_? Ϥ3&_7vG"mb/&z/c M #xَ/yh:PE W\Wm(r@JRވv#Gukvvg~0ۘin{j)b>|t7g~&h~>1﮹_!zol7E\L=޼P˴ui;#`0F|$/RzE;JL]FY^6|spE6n&3sEv݄ WMԈlŘ>GT/?ƊU?q5AO^ǎ?OH0SiOPt8cLI)Vz>:Ax)9œk dcǁ`?zOh::>QSP75U|5o|_'ޱfqLaB &Unzekle[ŏ>Mo0F&a̔?K1ʗd]]giJVk'OGؠwM;ƭ0F󍘿xW݀'c9&] a=&ЋϽ3N?+"s='+ǶwwջA[m_w>q~W,Ox`'?gNG}t3:+_sBgaSzeR.׳d&Yb>&o|չzHzzT~/}u OM+Z>vOM'~x[酧O5t# rD6ɛ_ǎm9쐑4 6f[b>?_@Ҿf/^VXvq\oű5ܐe!(5cnV+1On(Q.ӯęV,1Ej :u<}էŇnW-iG>~{ts>͉:^9׹u?\'*<^^'$P\t|ɤ ڭH/𔻞|ec$UX'zM뼈G<ҫ78_njvر \̞oMrM+r˘}қ߂C#`0 wMØ)cb3/%:!weX% Kh\D׵笍zl/ߜ5 1?W VrG򓋹__0F`vظY3W}͏\nCI7|i%mE'Ʌ/xQzs?<]%lܸ)=wq驝wʕy^+'ŗ>wIGqD]'/}qy/%~0=Oͺo=G^gD._xs&^ivgGnQ5_Y|t~<KΊs"QQMw?oh:n N}9xZՑtgےg")yZώ&v?"ݍGKO=v$=n0/0{fٿO|Y'3zs&1Ҿ3~k^xHuaӨJQ{ ӶcZfX^BcS3Ì0F#`XGbҥKe']8;{u4"& :V~81Fx8/HʅU_+OZ,8$eN"S+V^sQLWt|5.>^)>5aZ'Z ND:]DQ_`bC=]B}bT>6f_!ȩIۍYUBa1ɍ8]۷4$p13urW %}8o!4dta;{8՚F#`F]<0fpAtL[d]]gIpKQL]E&zuƟVsک6|z!ݣg~OL ȝb0i}M{KOcs'~?Ќ?d~헾rKޫU:3tÿ[~vzRa-[U睟v(_p/KЇ>~7~ 1?9L? ̑=ܛ/fSzjZlY{|ڀ&S0*5vWN&('ⲸwXܚ͕_5J Ƅ초Z_ܹLD7)Яf#z''DǗC!ҫ䐮9sT[THMJV}CN,NV`G_G7Zu`W-K~tA +6惍8 JiUk׭fr2 .ZfB>)\H(Ŗ} vH*A-x=4F# 01pa9g>&~<Xc1n0F`601|/%،'l߾=}ֹil) aK^|Yza ӟI??sIw4%GI^t G>iOZ3> ϔ\$r!#k>}z;O-<4vf:Zt\?uxMWA$(l$=<x힘(wsebB$ƔzbJZ6 Kd"}k{~,iCKg8ΎyR8q$Ws^?"ey)Lf"=D}+FґO#+s_ %U]v̏\2ҴaƘMDFFʮ/d{v2!!snr<_t/MS7N*FNM"TS2742uL3zSMkPV0F#`XGbb2v̿;]fG\fPl bhjɥ8l0f1]WrQ_w1ةy3Fd3Vv~l:T tKGri޲ՒpROD'*? zNkN.,tm:R_ԩ9GI="2<Vub'.juT眰S_X4@ _]YQ^i%[n ~O.b{F#`1&p0fʟXAtLwI{jXa, ʑ]E&=gmгH7.JlLh\8!OU矷ׄrF~5F#08L̟@/|G}ŞM'(+"cg)&p%?zꩍn+_;Ӳg?+A̧?|d7W?m8W> _ǏU+hwN71RO^7MBQΎz|ftԓFKM$U s_~BI#gd~孉qIA[b>s_x1vۋ!s6b>XF}P}o~K1ݯt/3qs7F#`0F`"0/N+W,8=qpB@ !K1wehb?}ۃM /Y3OjaC5VǗQ}9Ïf.cCOC6ʣ:9'D]7>K4;A: 9uԠ㮓/"#pīrh}b́8SGWNC_X͓q[TON]\P,>=(XB|eho]]QQm榕le[ŏ>L #`؇?8MØ)cb3/% ,E t%gxk/3܏IG]wV|st#~O2_wY};1Qct#`!`b|_)®o|C;b>N>7'pBۏ~8AZJ/7O忼3ӰK铟d3:|=シM2ZgG/s<}>z]iLE|Ǝi<=&s#%O&ǃp.yƱ#9S51CbkWۻc1G2,|sґ#E3n._$ 囘}7X':f2t_? Km,4F#`0F`!0-J'\~Y\;`|N3wut +>X1Ʒ^ b_~g3_XVǷE"|_ 6>>y'>I<>y_̎yĦ3/y ` X^V HכoF'Nupi|<`S>]8lU9W.R}hG>ٯ ?HO7/fr~s)9We>n{soƯ?#?"==1 ?;8u[kQãW~crwc_ on.hk^ܓ4Ȏ^:'w>t0Sy<7 5YԤ؏  p$\^{8/\x>Jc/KߍI bw¾(ʁ% 'T=slD )#_(ňH/)p1Y+;z]|EbHP=!8>⍗eȋ=[lPͭshM8/wkQLxlNܻ1f 3`uܘ9ݘ9.i,{|QLR)7ŇӜYD~o4Duc0f lИtӿg4_{p9Z|w|;ßwOn}x֝%k@<9ר3`̀0Āωh;]v7oK#p}"/P__l2ǀloя1C(|#j^~5- ^t)+!13=Y ~&GNJ/|m>h0i,kH͜+*#{G; 3`̀0f }e`^2\g㚾qZ 4 3#F_-гfRϵ7Yؙ#fa:koQpOfD^86QB~!c;Bs'>"C& g:fC=ٴ~+B V?L?/  (ri 2ճƇz]Lrb]DFbfCx_s3b7woJ뜹5dPӇc"  xN3`̀0{ŀ7wݘ9.A*8w۩4]/ TOh ZԜYhC)N6IX ̦Y}1_{4f {7W{f#iw<) ӆ}sh/ӟN߅XSK[[ך[}Ө),9^a"Sy\V?GkN*3f 3`̀0f`+јoB\W;>Y ^= X7#4(F2OO1x+qt.Z!{o򫇺C\94d> Ո!<+~V U``ŕï˹N XUň`{Z#gZc߬9zrXZiGkI笹+/\1n.xٚGmB;nBlg{f̀0/u]iC7ǭN ï ot֥[c#hlqG]l ~L̉KW>[G 7 3`̀0f }c`?[qИ_UhϘ ;qPofďxzs#gT~ى6ߧ2>G9_vI{Q.3MN0jkcoa!{H9é\'HZM̭9P3pj.1zc ¿cHUAr?jY\oz 9{l pל%S W 3`̀0f f`/M}gʾ sGi6M?ԋ<+#Xf3#4?Deg~ȃM9#I C6c. KB Xb'786ͧz0 O8#"Kbsbqң!˟RЃ/<"<(tFQ_.'ŐX:j~tFrHO\d.swڍΙi%["yc{7f 3`·7og7omDkll x;^R/i^bAkV3p:F"Т]ИϹ[1}c>8Gq0Q=o͏ӿX̀0f n?cer9cxc.1MA%a9(fv8Nܞo' J{Udc-a_@ α?5s&7|k>b|X?͏ZYEM٤ND#9x[_t* #eJaK|h|Dˏ8HK[ښkVƃ_$4擡5$~M?۰$f 3pA 1wڝg~c_f1/xbpxgc:MԷYǟ7eK φ1߄lzX!ko2J?y9a(#L\V^V̕`̀0f 3`2W._yi_|*;U4{cF(p?Ƈ7KGzzUcǗ1M| =ifFG <%U/ iZ'|U rWy: :lN\wht&/l g_8ʯص'h?B~ `jaDQsbĆ9̑5<⍗~mRY.ZvL6n~uM+rd/͛sݘ?K3`̀0{7wݘ9.)KUqx>_t][vFć :^~<KLf 3W 1.Oϑl2ſ1(n4۟sc>GhޘDȿu>2cTĊ:4k̼>I4sH{3`̀0f 3 bc>>zq]qAǺ4_^dQ=ʵ1>8E|E_4CުW 9m&Ç8 6ǟ9vQ+ &>k.)g/X3⧽sDG"mB'B,'Wq:Yl+?N^M1M| _!V"꧹0ٻc9:D%Cd+t0i6a̬󳩯{⮎3`̀0f 3`]l̿zp'8ތr^iF5GY C~Vͳ< MjGhk~s/?F͕=sSf{bRqi_K|M"4CI΂:iF4sd#=kvX43J'lŁW^*1;(C1Đ^o|v1NjA-, c ; 3`̀0f`pc殯76"`x xe1|G"ߦSNq.#W)̎f>cƘ 6g?BЧq"q(7r~"&ZN0ܘ$X̀0f`pcV]ofpc]L CG#n?Q V %no-DT+F^ >P.q:n꺽[M1b1gڪ˒r/et}#eƮ|WMqW0f 3`̀07W8(Fi标\>dFDvz)81*CЊǏ|Ysc@M̌+tW?4xkrI,vbsKkO`/9_FDʏb&lS†٘afz='C;z1MrD'+:^e|a(3Gi^(Gj~ʯß'o|g̲M pdv+sAM*jh͛_kfa ^3`̀ܘqH>>^gYׇ|g^8ȞڵNZ>fv>}cg%o'&BZ~&kژ>-ߍv3`=-ޓ 1l޴#o]11yj۱q=h 9tryySީ1a& w̫-qژ:Ōۛ1b1gڪ&Rҏ?*L)h̀0f 3`^3wux'?8hW2"sT|QsDF Cqi- XpA/8ȏl1M!FG1G;XGLS]>W~FP~beLBⳊ6$aejH$AGP<6D&Fi\0b5yWF᣽+5V|l1kӞa(bZN=A1<~śqɲ] pѸ6jjn/˜p߭1F 27O 3`3]c7omDZA:8bԇ|g:J-;PNZ3g藫ђi{c>_,12Jeooo܏;޼ϙ1~ӟX\vO3`̀0.nw52p)?Z_~+!O[,f l?0 <~W T7GPٔuz1?a Z$_{2ДD6bCdXv\6Ί3`̀0f 3`]ļG}..qwh`֬i^$kĩoZ~',gN?k:DO-ױΕ'&:5+.T)(|kNtmu !8EXp"N\$*u`aK c΁G_kW`'ȁW9x7F^jl Q7n[~cHʶLD7ʦU?"GcBf 3`7oB1s\n#R61=TW:8bz;E3]/;@"L}Xw|Ȧ0"ss7̾H]ʱQdͽ1_uOᖍvc~^ 3`0-N2wGݘ' j́B{}bRuYc^,*6fCXຒjR̀0f 3`̀[v13<ٸf YӼzeLJ9G[f>'V$D$^^_tX\z/>SXktNȯsҾ""P'f>'ZIJI2GXsbj~1.i~5O4Q/.̅e/YbsF0jz>!?ߘ,lpa[gͯΙFZr}=wc<^3`̀ܘqH>>^gYLܗaqluw|S+)|QJc>\F5+^f^x1?|8O}s9xb̀0fpc9{ߵݘ' IEs :%n\Z M2yMguN?'Sq+!T)d̀0f 3`3W^=qq_84N2=,3rPRخ^cU0K!'`3>阎~5's|k~rN|ʏO)lu["N@ʡ^n9 UtlHsN("srڃNF'&򴆌p_`)?!9Wˏfx֞Y_X1MKq+.#?6i`p?97^zm~n,,^&j7:g榕l9͏9n̟0f `nۈߥآb-{D×⬒2-֔Wsr՜gy|A!?5+7Gob2:7ø 3`.7_λ ]G:iWCDZ̀ |uxx8<׳ |*w1QA"/hkD;Q}+̶06Boclo-x@98>C̀0f 3`̀#v1ʕ+3מ|\oF I5bK2YvL3VуCSc:ڙ [yQ<#}H_t][ )D֜WzB Bt ҕ T}WdMLnOà0π/xEݘg O8hy1z,9NǭN^#3G4Rj}[Ծ՗y m3Т[Ȫ.P7X캲b3`̀0f 3`]loWcqq͵k>f#z+>~Tt|S=󩝞d|OlPS5>dsa_~؄CN>ˮQ#)Qv͵&AO~d_\Ox'~md C>fvb_ݽхZ',C1UN\N{89>ic`W~>NN4}<rf|Dzb2O|y 61?dNW\S5oiϭM- 1<{"_~1Ax4f 3`7oB1s\n#Y/z 2V4EMG)؅%Ҕ`E-!9I~..sDA7jl$3E|t-kgWGG|,3%ypc>X̀0f` pc\oa'裏;yq}R{x_ 2/F5}N]s_OZZ#}}bҗiژ-quo!T)tD\+cI uS5y%sRXĴ 5{M3`̀0f 3 bc}]~gr㠗GxuE/4"XfQ<>1' "\ؕ_1&QW~D:gbæ*,# ,IKHMHuB:ÆơD\0j/i9P4?`b˄])}_i3F jp_Y|ݘ?!K3`̀0{7wݘ9.,= ^oo[a"0>mVWH)tkNt3{~- h !h7gCأ!;;s̀0fpcE_U]>}eJ<~ǖ#gm̧Q,P_֘YF[uya^!A8i'ZbArENùUQΪc.~~g0Yw]p0f 3`̀0.6_rexS437⠺+œfՌG^.q[+ך/G┟xI͡}#?{uT~|hDWu^ko! lĨO[~m 4s"Ԧ4G%N@sIsuE'cydxahsQ~$^Ni-k_W~0"灘?7㦓eɶ Ι[K5}8/ Fn̟0f =`nۈts_[a"* ]tkq^Ytkc>i˲&{5cJL<$0f cwM`nߍk0br5=Tcr71|w1s / m9 #NA뮪Ok߰<)S=E~Nug̀0f 3`2Ír^h]4̈]GLՓ,[U<>Ə"T4GPþ+{@Xc@9U\cNp4ⴷ lB|ejOv,O~ =kb#ɬ#s1#LFD򕮮 Fa0rG_O@/= VYLSjК|5o.:YFYU6QutHI'N4f 3`΁7N ҍ{y};7?[՘O}Ƙiħ>;|c~IB9 }y|е!_EHN}áۛ!5IU9{u/{,3i]}t@Mx0f 3`̀0f`?oU|=5rj(DxS 3pyFP*~ecT+=#~]}? ]P9|̑|O·mjzڜS?qH5o<` ?>C(?%؈W#<P~aC/? ="?+>vG?\?^{N`v,sfn`ɖ#k~mޅ0f eۍr6i1=^R/'@%bL[ )Y|T̚7}:EMB?3Lٲ1?#>RShp8 b̀0[ŀrx3;7ݘCԧb~cW66_^Tc~o?^c~ANo(49_uP)8ŘsY}T/[WWp0f 3`̀0.6_<ߌ83M2u[jCÚcٸ=Gϵy?̥W5>لŚ_X1Z|C:s8|гǎ?1]O8L7(<6Κ9TNJu Cy*F3'HV|]h]ѾuNWx Sî}Cxo<-,f&j7:gl9͏9n̟0f `nۈߥϰEȌ9zW,i:RM) 5EH5hoGG1|hg$tߘ3`̀Hܘ;.3w=7#[ۘ/7/Vע7S"oFɷ7$]ʴᄽ W+{N>fس&,:/ GzW^Ftx(xn61V3JW9skLɠQ_6o~́wc~s3`̀0€7wݘ9.)KqcӇ§\* RM) V2f4?1ESDسQ?⎇u<3`31f`hc}_?Y@G 3p_<_֣ |c>U0oD ?'RR(hX/n/fso|i{`mi\jcVZJǸڧ>094{8 c̀0f 3`̀Mv1O?㊽qp7LE%4fA1:z`l:OQNqҩ_X)_G4 hO`cZq:+^ecDV"_vOoB8im5‰VQ>HȚ:&邈]'E\GLKkh LC~T0ĕǺ_у8>|󥗟{[1l\EOZKZ̭Y%~ۼ1ލtͽ3`̀0ŀ7Ǵ76"w3nlPw㻼>_3>cj:]C̮4_7\4%,{c>‰ߵ1<;5fg0f 120d@<_32`U17{}ć5'O$ZZieVǰo ~ducrxf̀0o== N \ryx=t4}=Z̀x`՟19֚ѣ ԥ5&w佀,jm~zyou3>\+\Rw[:f_c5g0&.'t`ߺc]|Ǚ3`̀0f 3 bcիWkO?ǛqPxeJIF1l<Ŧb/+^qұ&WbV;';y5"{CoMuʁNtIqx|V<ԍQi0cseg] k Kc:i:_tSʯ=ǼdQ3<Vy5bO>W<?STsN~q/y7;QW1c51??̀0fx;ҷv M2pW>+G 7w׳9 0{B@7_4|1wo̿tyĮv ]Rt?!Uڋ_Q\sX1O3`̀0f 3`]l̿r̵>8xc>}T*.yX:ˢ@IDAT̈zigjlŗX1NZ91ʅ 0k<ʏ/i=7ً+6aӜl腣<9'Dӑ[K8$tb`ꨤG'\1D:IG\%C`WC CkœD{ Nő/b(V+>YOE_1!/o\%,@ڏQ5sPYEn<|1 3`0]k7omDx~Ze./b?,UԹ'g!L)oC6!t<јO&JF{mgOYab̀0/By#ޚOnÞ3p3w߇m/d}:?<nb2p5s'$ԫ4ӬN~r3y;([_6?~1?H3`2[ ^'-G.w4|O=xF0f`=>3Ǚ'ԓ/<(a/h]ؘPۻ{iGmNc~mvpH; s`J#i ns[u1OCnXt`ߺ.̀0f 3`̀?v1q5_7ӋLN1Hq=ЫYv*V8XK1}اaMGK_9ї7_a)~L{k,I69 }eQKNB' U\'Ǧk^"Q/zEG9#?li5/6WqՈ/]U,>H11o>bPb׻]}7M~y֬қV˜pX1B/3`̀ܘ9ݘ9.iSU0J}0(JRM) Vd|zWP.ʱ1=|+>ˉD<3`̀8'xkќSZ1;o~0|_ƣ0{4|ߖ91_o¿<=f[c> %tA?{)5i)K՘ZU#E0sUҫ=KM㤩1ĥ{ ğm:k W{W_C+Yò0f 3`0W\q_j$CU}*)˦fj)Ӝkn4њlp ?쬉cr)=Q~ NX1͹|Xk.FD4lā,JrF#~Vs4=:PJ` [`Mt:_6z}Lh=bgOpj>yZ{//pIA/!Xg== uoKyl^"n̟g+3`̀07wݘ9.iSU0L=bf:tZgvfz)$5/17\9x|˘4܇^ jggV&1_Wͣ0f \417[̀8)7oRbE04YY^D1'|!_4;/e}Uj(Q.m@Cml-slԹ5{ӧbӐfߓnU|' TV5!f̀0f 3`2W1|-^MA6ssvn^7𣟙8lTԳ&NQ~KcS447ji#7liuOE+ tW%<զ)u'Vl"4IWytEgK+tjt)=1ڗtIJ&^ W1Wa~ƗVA ` /Wleizi4䍭Xks1,f 3`7oz1s\n#R~U0:bf:)PZ. 1?13GK2o1P7,XrOȽ5:&ߞ"82N`|?R@ߒ3`̀0gwn }+on܀f`}_#V+G|x%0@oٟ<\R1Im̧Y"#6Ps>?Ghԧߘ( aNl4q MS▢c18>Q\0Μ̿ }֜(oUʷͫ/mZ*g̀0f 3`2n7gv_}ty+õkO}6֯FV=XӋVYӳN5Lj[Ց_{SⅫ|Wot/Xr+W 1{^ǗQ.b{&\ hg"lQ,!V?L?/  (ri 2ճƇt1|ȉb^tKњ9" ᑟs`DoKݾͶ,撩4UWsk^ɠSn*͏9n̟0f }`nۈ*|._>_CP/P؁fqkϰ=8mK60̩YhO=6;5?gJ.7'u0f -a7Ӝ_?%[62i'ƛ[GoM-^3i'?Kۂ7h&ujV&?ؘK9)6mW-N^ɷ变Ɖ?++1ˇG*=UG]^EyuY!+i+Jv6f 3`̀0f`8Mco]y%<|}Dc~1 8ތ"LFǡfuF=5ʣS4OOQġ#MӹQ,sl_=՟\94dࣵt1?D>V U``ŕï˹N XUň`{Z#gZc߬9zrXZWd>ٓYsW^F zc/`֌\DK뜙?eˑ5X6o~́wc^/̀0f nevcF.-sZE{|`|?MOi6eS )Y|s7}:lEM=B,]I[ˬi@2S4mϜw9(ݘ3`̀&[∗Ƕisދ"~[^<\\{ӿ:n~' 39O`x'α. /|>ކOϯhWF0EF}ヺx^nemFi ԚKW2V_4Y/r:ơf 3`̀0f i=|߽+3Ӻ}h.?I)_5FDsM9*Iǜ^d?cfS84<2qc~3`̀R,F,f>3Bڦua6.fGo8_YĦ4^|i!y<|o_?~_e'sR'-:Nr RbY%5S]tluķnȣ{: ?LԞ??k_:?A4c^_dEmϨ~ov 1\qL`0s9%>8~$-H{wsnN=Ĭb 3`̀0f f4o''w%jZP|ޚ_n>>z8cc۴?&b K|wqEf΁>i<3L?>PxOh҃m\\_o2NplO:w! GqmȦSINhܜ搂H|ia.Fp50GGÇ5œʯj-p8+?ŢQC4Gx7 l\:R 9ش?bEF_ݘ?K3`̀0{7wݘ9.˛E7`NhmՇ*MS1TG;G8+$57>š웓>iܧ< #ClXqȯT0f 3`̀0f ܉l/uy -!joHF=6Z&ffgmX;B1g$EqW:_W b8 3`̀0f c4ꫯHд.?n7_kO=_C^=#T~ҫ;6nzljg_œQ_k~)?:Qb:2'O=g ;",ʧP~FD~&[Y'l,$vlbu(I=_9 ߘ(N{Y6L,"ܶa~]{g7̅/XǪ1 /г]…[MΙ%["yc 3`̀ܘKqH]zހYw/ԇ{) vK|h]sg;oAr"'7(I4泃#ޘ'>+5d?̀0f 3`̀0f`|ᅯgI~oD_-Yw_5~{Y -bOS6fl Me~Zz^N6M!u@8ѥ/KbZӚS F&p0f 3`̀0f`O8mc>t~ԺG]?_8(x=b/Rrt53N}B5tbXGG^j k뚹sX^F^mtɗLYK;\#Ԇ5ųց V}qEp_~`aűɁ h}Nq5ϋ?i*Ϩ9 .G$ǯ_'-0Y&j7:gl9͏9n̟0f `nۊߧϸzU0}^R/Wea}ږvK|h]Nqd, ?ǜb5+^Tۉ77ì0f 3`̀0w`:1?<ў:y̘D~1?47ǃޘ?k1:5{9<Ӈ)]€m^neih5eW 3`̀0f 3p Vi^-DVmM :W"qdy#:(NWMտM?63og]Ϛx;6ٵ&<*”=bɏ`O8#zenLKx!VUU< ?FG^gD[:5# i>p@t>#}K'ߊ)O޸oi<ܐJS5}5sPYEnx7O 3`>0]e7omEgܜnfe|y>e3`}5vH.Qqkn/|&Q": ؚ>딌c/ Rhħ1?ߘ 3`̀0f 3`2@| \sm4gOc~ΩxqnԮU|˨o>pk,4$vO&U‹DbN/oR*&qè0f 3`3jc>[__ =Y{}{Fy^:\{Iޘ8ފfdj gDO2#6F1M_Վ_FOfA_6F0$kcc yo,S1rAX#[cu:bG6tk 6&"g櫝9:eNz'bO819kD1E*69i.,֊i k$8FD5x?X6q<7nܭ[61M~4?eˑ5X6o~Cctދ0f 3p 1s$1s\n3R~>W[yI}8f";,v|K{97ڷz+`[uJ[_x㓍`pȟ9bB!b̀0f 3`̀0wbk/~k2g:ߘ:6n{M )Q8v^"Թ5M 'rɰ`GmeU]9f 3`̀0f =4/#mZ,}+/<4Ac>c=1#TC1oΗ^ef/4+.L)0m~c1U.䧙/kK^ӾW94O`P>9"=~k@0tO/>8vD'!jRAp#;ya+z]{R.#'" FAFD+N5W.Fl虃?'_ܾM*61E;nMq]y3˖#k~m ^3`̀ ܘqy/ w56z0ˠd|?MOY6eS )ÊBRsG6f[Ԙ?u F?|jh` 4#6؄3`̀0f 3`]PcA)7wlof15Sf~/Ͻ~!Ԙ_dO}''|&jXΏ7T>W}r 6 sy\2N}u`SS 3`̀0f 30a`??kSvoġa UկL/2B ZAV=vahiLJU9m&Ç8 6Ykʯ^i0`^\sUpI> |Ϝ? |[LW%Z=rl4G=b9!=b\qpjiOW`4V?ͅޕ!(*aD;1C_CQV0jvYXȚ_,w7?桎1+.7à0f\pcvc渼>(^g?ԇm^6 @Uhdz)Zx85uРNl{bG15g\}`! 3`̀0f 3`@a_(RJ6i7G9?٘_[VfU{Q2o5.[aI{i. =g-um+*n7{`K4{caL\eͺ}7x!8 3`̀0f 3Wמ~8ofTJ3 5=j ķk4٫ ^F՟9"c/;qG':=Mt1M88F%VyM>ئsp4CI΂:iF4sd#=kvX43J'lŁW^*1;(C1Đ7#bm`swڍΙA5}8/wЍnߒm3`̀8Wܘ9ݘ9.$C*Ӈūb,[ɗw1`nskJ*>y} 2ב1QF\#k:&xSaf”v7'0f 3`̀0f ;0lױ46TM״o MSɈъvFhr5A\OH?wTh-lly`)tv1f 3`̀0f ܕo%x=V>izYCfDdיb69Xa˟?)kbYg:Xz \ʏ]\1Z?z9|_ŒLئ10uRڬ6\O zNw"Bc-b$N$0WtP>)=:g`jQC_?O޼߹ϘeBŝ[jܒA-,jLk&b'( 3`3]b7o{ iӇƫ/@}H_E/P`הZ*>Zg>+9yhʤ-C%GGCu ㍆ alKcQ||ȯB0f 3`̀0f ܁r _o1?B[͍6fc>cj 겨1_=qN0oΝOhh{ā5lFT 9sԵEuǩq1b, 3`̀0f 3ؘ}WzīqИeY9(nըN9~̉mĎ0aJnXbѩlt(sts}4EkxgT!V6$$>hC©_vFDtq5cCob#VQGz`>ڻXcoǦ1WK>֋r(u^_x/|02h.hd~_fXZ̭%>ՌOj 3`>0]e7o{ iӇƫ/oAc>(_gQb25ֹ`35xx{6D6MmÐv<nOà0f 3`̀0w`fQҬCꘄ/o֧]֘_Ԛ=M)Zc~nGhllF;kLloQ[siE/UOq:`̀0f 3`̀X]ļG}.hx5hY/*B̉SߴOI>gat+&W 7SKushΈkXs(BB ʍ9ɷDl\DBq6$DvH UŽǜ\5¯$N>㇝s:lCgoK.<o|˷mI7TGլD#X1[à0fpcvc渼V}<}pj<,᫾d|?MKQT8f:Wu-\A6@cQ/K_j/^/p:ķ hw糌JsB0f 3`̀0f 99?<|*6jO~O>lm֧VmC}F U0vMz(xS"PJChQl 0 /ť~Sg0ΧYWSΧ8 0f 3`̀0f bc˗gyqfSWQ0Z}̧q=G+c$^^_tX·l #sh?̉'ѱ~'e霐_}ϵE kDN@a͜|Ned.2ec]kiΕ^Ł]ǕgPF-%Hl=32ɏ'2Qwr#͡DJ@lUc?3yFV0+z 77}IV.l S~b)?biԂb'b}?kqon5֛aiݙY%J![C 6tA'3`̀0n?vc|"]C_7!<}b.jR)h)'W @F~5E|Fc>jҏ qҥ15_1_̀0f 3`̀0fO1?q1fA|3>?jWc~}~Eq3/p/"qnGɕk:Ŝb*Zd3}+(a+V1uUK)ݏU1wb:\pxƹI 3`̀0f 3`Vbcx^ߏ냸4N2=,3sqHǘvs~ ClOS f.`S>AN_թج[u:)r[bhPm$yfͱf`W ڌ6&򴆌/z/_b)?X\+fcbp}5>7,;WRJؒNB7/»1V3`̀xpcnO8ˏ] [joT\ŋfX]/g/:^kgf(vbs- :U8vgO:;?7 |3&)AL9 &;6HW,Յ C6NN|tӴʩjSqΚ/t5 C>/_rdc<|1{&5+Uus5ɅXoɅCA'3`̀0n?vc|"3 ^?@nCx5懰Jϑq  XJUhw]k>௸ :1_TKGc>M[1dZ'nO:b̀0f 3`̀00G}`9ơo9QkeV}γƧ91dÁ-+eBMz@Ӗ2l#F `1*^g=tőmW+Xq8m7f 3`̀0f \ؘ?1_  -Y3ocm&oSvPc?6Zrf_ aSWFK_vZ^13%NS<7}Q7Ӛ #>V;2C>¢v(aQ\lʏpj%6~ d0^!3+?kNlSqCL 6ENAدw~  @n2JUnM,rf-pȡ%f 3`]gn?OS|ƾA׍ssFܦ爘:-j0UhsWlx o#lژ 'jߒO>qUc>9imm\0f 3`̀0f gȿZ5Fh&5βэ9s)n:oՄOjPƘ>y^ Q'Zɷ.~a=ekד_cJ[g k 63`̀0f 3`]lgm\sW+OmM?1zB<=~:-Q|9?8.pZ6fNBP`g`4A=곖^1g|oMZ)2>`ʥvN1D2׆CɆظYɡJ\Z+36 1W?֌d땟\#{]TO3>G< qZi7N4` nnUougt*}TevcBf 3`ܘq4Eq:a|Pƒ,=\<󆎾xѺoTXsE{9T^Gc>~c籎=w3`̀0f 3`̀0Ο5ϫyΆ2ַs[V}qXMjzי^8sΝ6T?ad,L7B-!2FR_/[-Mbn[:Gc+9_Xg̀0f 3`̀.w1go?ø8qћ@b58x^};x=k0_?P]ȏlp|}ɮ=᣺ Gݲg+W7xA:Eq1(b*V[蹴!NQX<9? 3`̀0f 3`.d?ɃiJ=fY_1?E?q pM:按sI~-n0/Ͷcqg˚~Gw2+v0W8W2 3`̀0f 3p1w17s0azu4JӽzeXQlpuPx4όM ^?HNCX5Jh*鴃,*^s׺MxS"' ̡m:/m|k~(o=_ Oߘ}0f 3`̀0f p~f{99-?֩'ď8k~1ά9\B8҆9C1ʱ/_K],]\t=t}~]H^z?""mf 3`̀0f 2p<|{Nj(2ѯ6}(zdCZq918+8ֲ1,=38|Xub}u?P\Cft_5b$&/Jt_u*N?6. h ؈ _d`FN :pIϬ 5O-z_q3ǎ!?3\~ݿs= )K1XZwfĒ-gߒ Lx7/zì0f`n?OS|~g{!,M? |/ZW<^k0N<Yw q[3P٢?rx7gc~|m>ߴɺ3`̀0f 3`̀8glkcp>TE49vί/'pMhOP:1G, LVE?1T?^} zqc~#â0f 3`̀0f`]lϾ?4+Pr1@sKyмb!e5ex̀0f 3`̀0Wa.6߿7^/]\4P)T}jjWyr8OaGxd dWKؑz\ԋ#+?$lrc(韦fAp=ČKL>_1#koݿPyѝm& A:mB1!!uVEbZ:@V~|ig(2~6®}^qW~e6ij;{M pwM̼%[άa%n̿Mܵ3`̀pcvc|"3~|xK!f/2K'~aY6>χ' =ka%YqXzp t\ĤY~Ԥ&|Av*vk߲13SzEVl^3s6ڇ6"n"kdu/qȧ"Bȏ#cuXC~SihZ!T'6oһO>4D7\Tug捬zl̬A%n̿Mܵ3`̀pcvc|"3~|xrϯPZH~b',cH|C^tp(|ʣn_{Vk;6bp(, XBGv|Y1+WSl|/fbW,l~GXl 񙻏j3y?nZ5쫪7Һ3fl9E\8d»1ϮWf 3` ܘq4Eg'(x :aycҏ㡂8 K8A9K6Q#M-lLJoƏ >Ls1?֯V=~5f 3`̀0f 3p_~ӟY3Ӕ/Ϭ9cƹ4{Kט5}u毓mё3J)KͷTHyu+\S:Įg?=tt/ӯ.ǹ0f 3`̀ w1//{Q\˜Ǭ{0y65Y> `g-3kݎLlULtn ٻz.kʁ\/~ظ |hIG/DTO0sk㲳<rciLǾ6C*9(ęʯC93 ύU^؉ϬN5(*P垰_\Z\/λoi] JUjXoݮ3`̀0f g؍it~>8qT nJJMhM^ [}+~WoleӀ_o<U6G?ޒ[2f 3`̀0f 30?{Oٌ;ь M4G><7Wx5Nߖ;)c՛u~bhHL/M`0O/]=M>M}PA=3`̀0f 3`]l̿ٛoAq|!>` !4GeϘcf0EY %[YkHGW Z+%.z0Ocb=ԂrI{Yˆ^q;{b0رq'?xGmB#N:9d 9 '~ ] ʯZS R Naɯ8{ *A:C_%7z'o?q540(]QYϨyCKY"K.rō斻3`̀0_n?n?OS|~>}4u|ˠuEktH:ä}0-o7:&,jN}x^{9"{3`̀0f 3`̀34->og82sy|k%?Οj'b5ㇲu=|[>E7"1lc#t^{i=z56f 3`̀0f f.6|G73)W]+@+Ӳ[b`W22vWfM:Z2؞KJ,,^1WG21lqбV~fՀ ΋ !,q:Yِ;9ڰ|2z2=~`뉃6Ӎæ ^I}F=9V^4oO<țni7!?K_ uݘò0fg܍i&$_'1,}q3:7RjxњrW6'1#f_ .A?mgg}女??ْ[2f 3`̀0f 30_/o˿w/>n?&M ^?HNcXX?D?c;FhˠX@/L з;\eB05Q70xշg_W( 3`̀0f 3`@2/>q e4?M ^?HNMsE99ϯ÷},S.5U y}Y _>~K v1f 3`̀0f dn6ߏ:6˸>N_1 a㐉 FWg- OCGǦ~i57i#7=?x1ez+?z:}.]@Ty4G0f 3`̀0f w1go_ׇqZ 4 #ӋӸ :zy|+_ bfVZ#3C7>AUc^9_c0_u o%62hxѺ@/ շ'(mgt ?5"@0?d ?laJ;B~OO8{3`̀0f 3`'| կ)>~l\tsOVCMCmκ1T,Xc]c EA/&Q#1/`9zzMRYL8Ǽaf 3`̀0f K1?1GQ\xht\jVgf`gTèz.8aC8+~C<|e q_2䋌o򫇺ʡZPCn uW> E0W:6˝ut`db13\]V~d3wQ7kf.dž\+djҞ%+2kk4>#mbg?Aч>Lj̋p<1?1s mv-ֹ ; ۆl')OPC.K B㡋o+xmCC~ƈ07ͳ?=|?Vg:3`̀0f 3`d??ͯs>IS t W~%=3ʉ_+so?Tnrv,Ediݙ$JO3 ?8oɅC&z4f 3L0f7柎˧-R>g?Aч>LN̋3`̀0f |1 3aW Xda O G<囯b!FLSU :zq {8c  m!dkzWxkz_RmeSmh}n\ Qٳ,)^ Ql6-9t(GVC5\ceƱ}/O>w~ه~c>K=);o!,YdFTPs`oiU{ߖOşl^kKy SszxCC>n{_c̀0f 3`̀0qoUq}8NO1'Afk6M.~EFF癙fa><8C*=Ck?ȊuR53X`8 lWx#?Co )YINHHt良xE6 Lf(t`X3ϬWkH /8^WϏ|3λ7Ex.]a&YZwfԒ-gߒ Lx7 3`3€Owݘ:.H}}|՘xX?T?Wz]Û mIͷ Z*^.,\=t/Zs>jJ TιLo;m40 &ڹJ0K#sdTY?C<埞MjjvXT V7 C>{RRX\"xì0f 32駟6piϹ;S=q3p3YG&N?ώ9;gt'Ce ХO]L9;csDƽn0f 3`̀0fJ k? ~4ޫX Ü*W23vl$Ʊсc8dK'vϏL}=C6fKCqYXiƮ:T؄bP !Tر1Dn:,f6 &1+>"7!, zմ`1%k/2ˮڙ #_ʫ_?7'?-U՛diݙySKY"K.2ݘ0f g761t\>Y ?ubG`Q :u`oUh |p# qqA|x"A9{Α[^3`̀0f 3` ߏ냸8XfWdf5#a^1=:cP~[a93c^UĖ,lχ0Yc~F`O:h h&Z8Mz3I,q" g-U;6\tNpʃه3K&qz~%{Wo?cqKֻꍲ̼%[άa%n߳0f g7>1t\>Y ?ub^y_N H[ˠuEŽ8c¶6|r9k~zVMߌQs>ߊXjrjQdf|G^jcQbb0Pu\x8ʝ>}wo>vd^yEmGPK= 3`̀0f 17<<?]rtx? \?+P:"A}' _5Ku(&|Ծψ?}=ē=#:\IQS6jUCMWTʕz´k2SP ^r^v}\ roذa@8)CvAZByYq1z3`̀0f 3`u? .>#U>Z}q_cyBdZquϛ1P|_0e4z <)~ˬ!f,S|Ú j@6Jъ-!cC`V33 ~[:՚e`CQvNS6_}{ÛndӺ(K̛Z̚[r =^3`̀x6pcO)C(_'EX5׏iKoUh]gL؄[/0)'0¬9Đ?e.0X9ߜ_xĭC_9fݔD^9 M]IV 0Eȭ}4UBzʹGJ{>gSk΅9Fz r#Jq;7b'3`̀0f jx8p˱<aKKmǹ.?} szϷXq*egjU#Yuxt${Z ǹ/|ukޛB͘5 E9w9\¦0UYv{X<ڔO~3 z~2 aO[q@嚘h7p *?}=U>eʛ};a,uTb_X3`̀0f 3`!bcxU1q..zuqT93zz1a8`Xw;z{ /5>V~٘ݎ51tl,s(? |ʩ=af_5}G ݍ8p$b0)=kvdtLz'bSSf͐Hņ Ob_9X+PeLcf^YOv0Ş)_/0F\/?|o}7A{ț+Ք47d˙5?,!ˍf 3`~ 1t1t\>Y _?Tncx_6'SQl[8r/ZW7f3v28uN8)vͣw&CyW(-_\L||J8}C?NjX{.Tu:vO7"t<uK7[uCnl9 gƽ Mf 3`̀0٘gwxErm f`Xbyq;>דA:I6szPz IK䟖J> C#V16J2Wmri$z k^'yş>Vf 3`̀0f 0p?ٛoNc1C̞fqc0q`Vo6xA/Jf֡{+ fft`_1ȥ`XCzNuk V9$'0z r(CbHCn  Sq m1ԤAF|Y+ZU+z]5)5xP f"3C1/?G=JV.fl葉J\3Ry&iwFqFYZwzC6J%Tˋֈ 3`̀xVpcO.*_71<}ُ/G1Ԗh72hxѺs~L9häL;ď|P\Ox}3>x+db./k'F/9^xuymcki%<95&o'SW_T Wo0f 3`1xvgnWK$tz0iU$Y|b\4}gWpy%LZ>\YseϻxϬzfגּut> '˭&֩ɐ!K|-sQkq>oȯ0-?ڑ':劗I#RjT_ĩTJ)P_C낎mq3[BPJCP ֙3`̀0f 3`]l 㯂ׇqA'^d'E(xl`I]]E_Cl.zুM#cW=ʯ^ibBF=\=N@r(> GfڈxD<}#!zfI/8.6&S|"_XW faՐNsIVLjW~t)[14+6lQ)3Cxd`ÿsQ[@޸Tu[7d˙5?,!ˍf3`̀0_2n?n?Oc|~}|ayX?dG/C$n%,^&֣q}Ĕ]>̘rcᰓjWƞy!~.#-5eA##G"*QN+B{"ig/g|'༰0/ќs f3`̀0f 3 @7ͦe:j!h4\1DGH2?9ڙ`zVR g} SȜ3h b1}R/m3ZP埶 tf&H\qZ,Ⱆ7e;ۦ㰆<)T!cjA09\g!2$Ԝte̿a 8rm Lz'o?XyazUoug-rf-pȄwc~ֲ0f g7N1t\>Y ?uAq?u @mIͷ Zj`+ u1W.͵x3`̀0f < l=9[#fʡܩ-8+ ,gRޤ1}~.$Tƒz&8cw4vNO,1R5l_ ϙlK-[- jGV|Py 7c౾Mz^p ߸Y83WČ}n'.cSFr?TйD2U>0qX,,7a3`̀0f 3`oY8=ĬCffN3C.tǥ~hуv=>z1k^M\W/vBLY>E=A^dfǥ`K';ՠ` !*VMY lw"B!&9"E$\bW J,0K1O8r6S~5+V5$s+zFZrјo>o] pFm,KΜo̖S?8o͋nZ6f 30i7柎˧1ӧ׍{ ~~̏=MTwlx[8r/ZWv0cf4֜h/}! 7̜DN DW[܀XԈvsKX|Mh_Z1W7}`7ݥҺʥܨke0 3`̀0fie`6況xLţ5 ҵ򴧐|L.5gۼ>n>F@bu|29rzT!li|N/_FSʊ}!l{W[\>Mc71NG CJ`JX"ra/65 {B*HԁMU`@+Or-iųƦ o}Zu.Wq[s\Tmf 3`̀0f 2p_x믽hW2md͜.'V:|fVdk!?SڴV Oġl}g-[9Cgbޘ;TG9]+?r(?t _vmV3xli1%"hz!g W/r0 Fˏ5 _bCytԢiYWD7Kzn0f 3`̀8@5[<3e'{VuV T|;=!߈!`Ӟr5pe۸*-?e@R_Uj`̫b-WΕ,xX^3`̀0f 3`n]l㯃]\Ρ[!^y 2~pNz9gǚ5|꧖^eUW23^kS _~ʁXFL~xh70)\D(&bpea"6.C:baŇ!s1Z;N>agb_{c=xjc,};. s|#ӿML@E?n֛I>^Eܘ1f 30q4F:ͧX-X?p?OtlMvv)^E°T6}.q ?SvVAO.}5gaeְ-lց8ZdXV<Qz&nXI.4#Ŵ:q2Ւdq 3`̀0ff oOyOZ|JOCzkooǙVݳ}(*'Q/lgC?1ҷȼU3)˶zv#/!Xc;]2L -gҬsaz8oqьX Faf܉hW9䫙8 #~[iC>bt;;ij5'fਵ;;9 yba 3`̀0f 307_q}Pu`Wi s6xՏgC1+`=:r0®ЛM~q׏N3T2t;:7Y;r0kdfXX$25S;u,3]q p葹oͅxaʏXگrBLYC C1?X{B̼[o5?(!ˍֻ$3`̀0_8n?n?Oc|>A>\n<> |Kr %ͷ z@Cuk-sĕ}Se4ҙ7gqyB 16 5k[!lCC.m6 l#jY&S^վ϶շ͒50f 3`̀6|o~gVy^J3^w_wuR?Ƈ.;4/}7p~bq7WCgO٘7!txӧmlh.oieݛFRl֜>Ɯr|FPw,⯃L2DRi umq/U,PtwW{'.Ru_˦?$/8Tuf 3`̀0f 0piZW~T H5cgW ʩ8^`g@:!/91w=nC7d˙5?,!ˍ鞻3`̀0_n?n?Oc|>a׍>vo9bADnR/Z~6V{ gceŽ!鳫?!>TgKꌩEͳzrrqA{~:]ɗޒ0f 3`̀81P<'s+רxBE'!-[}1_v=ϼdq5%~]|C>i9h23L|/bXۢEfnD^vI z}pDg*#)$]2 bHH\qҧph\[.rEcU+d"0x)u twݶ k)o4kܫyè0f 3`̀w1|c? F8@?x =3V|ppeq~S=j' ֒C5cjSϲkV|,dgWl (?zʯ|/*SqZ!tħ`j`GfGXt`خ6,bC>-YNSƏ F6K>dvgM>ՉMvr*n<730{?O>Bq?](TirU=ߐۛx_rcm 3`ŀOǴOT4k׍cA|7=G 4 A-AidKP-*W>tn 0PY%F'85=(PO\D*xqxBcP ؂v[ꖛ(GrfXLު i0f 3`|㩒|^ 2s䲐?sg{BNx3f5 Pֹw_.kC), i?2 /cdo/J fW{: kym9FbhA|d^?'}}(~cÙ 96+sllM7`f"to۴5`0ͯlvhy>׶C֘W1 3`̀0f 3pbc /<8{W|o㢗vr 9l.3Az`b| 8ϸec+tHU`4A=곖^1оT :Bڇk~R\|ڃd"kCڈ⃡`dC‹Xl\ڬPvbF.kt ͫkF ]O.ő׮\'u#`V-Ӵq}'rc~0q7ѩ曋&rf-pȄwcxl̀0fYbn?Oc|>qq3@K1r %w3HxѺ#V b/\f$Qf [)Zbb|]>EWcRGuEFZ-l 79jle3L3T2f 3`̀10 9G5רY6S3[@IDAT7+G :sA $Oc15Nm}Du/᜽Xm3E+IHo^S|zbjVK ㆍuʲ#N3kײrsZ-ŸCH=mC80{V +2f 3`̀0f 'a.6߿7^1q}'C|a5_ft5wV7=߲~cMrk  g7s~ėQ]شnCZWo6yŠHeZmţ$뛆^#8:7%XʫϕϠkX@2f 3`̀0f ;ܘ q&'Cz8 A+.tiWOl+0 _i5x.GPLd_PN#Q5v.t/$VY! E  ~O1T Tfn'"X:5E-ܸzu_\y֝7d˙5?,!ލ{v2f 3l0g7柎˧1R>kB_'eX}/@mI̽oUhzϰC蘝Q!&ARsjTUD:9#ONJ^FcbV}M_Qwr%ØeFO{LuQhU^nu_/ a0f 3`31P#97c}'ѷi"qhOL$?1 zL? Lyh=;<.Ӆ˹'nGalLMmsq|6Lͷ2PT_ڽ.7psaVz|No* ~{0f 3`̀0f |A _mSro iSG0g1F_re=Ԋ% k>>z)_zf'ZqC9 sWs҇ Z=O1|%|TԺ'|lA/2 DY85FxrsCEi)g'{=C~g0/λ{q\TugMzsm̬A%n̿ 53`̀pcwc|#PAu\Eeq3-a[h|xn{ǜr,X\jጤѱMlK,'fԸ. QS^瞤3(f7ouYUv?~ _6MU Ǵ?J};.OgԣG k#0̀0f 3`̀0'e.6?gQ?룸3M2CZkaE߱lV3OOjDA=:j9dS,k4\=T':iM\†*u5?U~%xA'k plJzAmROps.;d~_'sCEu ֵ<ܐ-<3<e'y.S| zmj#ߑ*֒jNʲlY6@Up|\M0ڎW'9# 3`̀0f 3pJbc|㵿~ArNfMC̡f<cf(!W2vi*W?8Ϭ= CǬ~A~p=ČKL>_1#koݿPyѝm& A:mB1!!uVEbZ:@V~|ig(2~6®}^qW~e6ij;{ߌmb|z-;3otɖ3k~XoɅC&o=w-f 3`,ܘ:ݘ:.H~ YY"q`mv_F&4gk^wŜFvfTA0g!K~%H3GQjJX{]"[=nWtPAKs\n0f 3`3ϫZ3y{f#ߘO zg|d#sIǗk}c KӼ7Qwv0b";\7O/"UwEƒ{GךHI@>}چ!8c&dq)&@ʿ0C\n.W'9߭.Im0f 3`̀0f$ ^xpk Y\E"HC1:N&l}ƟetNMJIV́X#ˏȯnbj!Z+:Z$?`*5|"HYzf]K醈E+ČpT#CC@@B qX=}3}o}ɧ!z&1̼UomŏoɅ+ mڶk1f 3`ܘ:ݘ:.H~ [gEmQh,. %t?Rݬ9_[c:s[Yiҕ㘌Kvh7:fqWj<^4jGx5̀0f 3`Qvpϒ5*l'Rgjl].Mg1xg?7#@g;\ggU׊^cgLNcVC|1[$"t׉iA3&ﯖ~g=ũB,ykّGa0foAP@n1oc-K x V3`̀0f 3`N]l>Əa\aftYT4,8fd0K?4o~г̬uσMGY+2OLD#R~t OzbHkWOy-kJrm@ .cVKȎ/6+C!Zx~fvxa5GjGX4T64N٪,6e>ʫj\{?3B{&iRT֝Yo'x_wcBf 3` ܘq4Fz/2,DŽ>//Ev =fjGzm`_1LXuNHDԇp{\ieZdbS7]73Tڥ&YqMih@:wNXs"c3`̀0f ={ݛgdSCyL|ژ Iu~gEZAvqFTt>%`Ztүeuk;u-Aw3tA(|L*۴NpIcZojs? ;""mf 3`̀0f S1p<?룸$. ޅʬ>f5݃ƛ\e031tW>?=[+"%h[%;LD XBU3P1@pI\8>|O_Vx\O͢=y%[YâV!. 3`[f|ʽ->z}nc _oz,-~1&d]/Rʖl[˜ 8Acb3`̀0f 3`=zɳ' ro̧(6Z<,v?fG<,AV56K,}iZC21ʅ 0k<ʏ/ GS+6ds5k GysN vl;Ərh N Ltu2"r)N:2"ڕ_ZS 21 @ő/Pg:YC_1şA^pgjLǕ0P>('gUU?F/̚9?+9cà0f -ܘnߏkR[/yȟ=AKñ v7LKg0&0e]<Gǥo[Q?![J { =zMp e:R\rV98|:w~v}m7f 3`̀s \{cs:~5{\1Uc~gٸ ~NN*prϪh^oIEbۧq *3P_s@h590e'QKi8)iޔO@ok uƍe^Hm0f 3`̀0f`Wbc|buMtzPy_WfM:C;w֒͹cH,_jdLJX3dAlkdtY灍3fq< ;'f ((?'LNX122^ׇ8pi^փC 6aos\|ĨFV^4C ߘ/@h(%fxVf(U~`11f 3vpc~<1?.Gr}^H?<-mQT`aM0e]˕U{AaʾF^9NAM!Wyy^sLqWu {Uܲ Boi"{q$RnYOszmf9` 3`̀0f $1_n6旍ᆺӀ(ے"W7 V%r>w5eZ挹}A_߅_ nf)Wi95:fQ]9f6*N+%E_WSHpS\zlɽhz 7̀0f 3`̀02pD%1^ddB4TE?4Wo<&^vfO CXʥʉ^q_a)~O. &bXtɯ|Zg,g%?;0$8 Y'E&OH11E!= Q]9bM:՟b_.k|^_|хX|G:nj^38{?~]GX<)bUU(d3d+3k~X*W?Pc;Nǹ0f0hwc~\H~$ߡy/*8mCLKQ A+2߂rZWN9YH8e#ίc|G{c#u{W<D>av3f 3`̀ Yqܹ[uFQn+?ePK޾yRqª܍[r Խ~e 1q/e.^q (f!.f 3`̀0f 1p7Ec_1oqcԑ+b5٣cG?3q!AyǪQ~KcS4s;TE{Q c.d`s;"[rXu:uϚ ƟXͲ\|DBd|GːY3WUrJO򣗎X8 _CUtU zժ0X>o&ʅ꟠EUU/c65hж>4= 2骻3`̀0o7dz}F*ܷxK Fp<`RaYbTc||4_n պZ'5.EjsTrR9KOM(GDCiٶ2tY)/H8GpN}̀0f 3`(451R;8׶n;8-7N>NE\l kjNB17X"떿?1Cq#*aI\2ja-Skh~IYϫ*19?pOoLNLOU۸e%SK 6g-4Fi^u6:>YU=4f 3`̀0f \]lуgϞ2XKCja^dlQ@ϚdMV,vdج'?ftزM1 _ a[j|xpZǗ bC!nqYVnva>ףX|!V&aGW.bzXtCNlSvjEdFA a3ᆪ,kb7j֊ua.fkmy Wp 隻3`̀0o7Ǵ. 29}IC1u1gߊڒi)MuȺⲾhٗ1X!4lAa~Y1s3͌\[4u6MIW~ǔ[6p'N9l4uZ蚞i/3`̀0f 56sMQc>^uwL=u#Q 說}Qş"Ǻo?>mzOjM>J7I(y6w[Q|g,#t9t3$z<2u>9ckPyWN|nd9חM463`̀0f 3`vd.6?M8ؘ^=8ԬΠXtNdbr<+[—Xdl_=ٟy"sufP~lɉ.˱,k姡A>\I,YY\ScϾ>}]VU\Ɩ/j[>1<[2zè0f>0 q}[#$ϡQK7[4TXg8릐ɔ56O">Ž,}z ܊nW-,[>6pTvƼv5f 3`̀0g1jgGolb{aƤnV7OW$m}\ 74_EPB{6ڭͦ* 'fZ4ك8;wdO+_Ct6f̜,*W)*^/5vs}x:`01s^3uŲCً_ߒ"']QZ.<̬aQ~\wc~Gf 3`n21?.R/q̟=B?[m4TIfQ7eYO`Uu_Q֢+ iFj \$Xg5#6;L9"Fwcà0f 3pA|7>k]gxWýd{7!˜@/٘E;w9iH-n5.po&F6\[tmncc쳭fv]6^ Xz̀0f 3`-17擆R;dR햗\}6=C_>ē-48f~}^( 4Yִh9d,=Q}3&Ǧሯ⒥s|6}"v+()c_tV>+N-{μf>v5f 3`̀0f \]lуO=Me&rhWٝJ>dfe3Cc~_ExzZȏNS]!6\ds&?_X.6fՇ/33T SEbQeբfN2/z_9 Pjٚq&!ܺ1^abWYXroߘ=5XfVf(U~11f 3vpc~<1?."R/q̟}B?CM[@hRce5iCOks k]k hf jtfY"tv]9䦲>S7q0f 3`{;o7I=1]nxWtվ)ߘ raD)y8 ;R/ECCYzY_'i¦8/c k g{9VRbdc̳N^10zh[K$~,T{83`̀0f 3`nnuU0`_Ӭfrt[|{Pn|-ǰV^D3c^̪M`KoG|/T,'ϏE7j:L:YOD+䇍{qz3`E~`Z# h:{pm?P~C%_p~>oHqM p쪤l!lef[ W[à0f0.."{[8EyWGrlc : &ٗl !k<ׂ]X6]Di_a[k~[!r%~j_4^;x]͖'w$6f 3`̀RvPTݻ\ߘ?ӆdɻW-$2=1XDZVZrro]vH8}r3'8bzbFSM_VZ%)Nm1#'' 3`̀0f 3w1Aqmo4 `箾jոmn^c9YߚXaZ WYpC-U~@LJbɏ`O83|enKx!Vyx>y12AFG^gf[:Z?GL p`|GOuK'ߌ)xxq] p!W#MU 3Cif[ 못3`̀0o7dz."{[8eyW8@~NCIe5iC?w~9n˷#`yj!ءm[a3;yH.W5x?̪@ߒ|VTà0f 3`1ߓ>577[q#]oД7(Bf1%uG?Q6ue1 l ,|P5bcaI=.QT}i 3m'C-紃ZO.tX[>MS"u{f8"q|$\sx3`̀0f 3`.e.6?~UۑA(2bS?Xd Tllj\$ B,OIZpӎ͸!,b֐˨;Ro'l7}ҧČj8YsK}x˴UW1Rnq:沏?盁gg 3`̀0f 3pcbc>x'Oic4U_u>f;{"ѫlfŅѭ~cK~*žxF5~Y/ nU lʧ2__wߑ-Nnź0 L2ErCލt]0f ŀcڍqyʽ- sgЏeq i9fvsdmA/U#zlK0MƪJ>~{8N ,@/8Y^Z/1ƵvKf 3`̀0֘?mP#n~6xg MկXMxc}1rSEi!Y[|5W0d9~>J-ʆIQT(~ IQɲ {q}g!? P7e2JquaX <摭|4 veuv>?z?)Nf 3`̀0f >|?eP{jfHEfsUrndžqݢ7 \E+O%?>zŀAo39>i`S~fW4p 9\'\> |?-9GlDUNdɫ >ĢS>/_ Y>jH9I&+?:-ͬ!*af;|cO_x\ UU0̚9ߘE3`̀x 1?ݘw܋҉^^?{~/a?hZ6%}Q&2T,yCDX̽Rh[YMH瘣Iqe뾌ɫ3+{y|ۜNl `v^f 3`̀0/qolTt#$IPԑe44/>0l@H:eYvj7f{B,#``0+/+l2t~`d&8:9fI#ˎN'# Y 1Y:a+\><92A.]_9?jZ*tά؈a&||?߿y)y\\0>TX~p*uqc~ϰf 3`>n1?."Ҟ/{~^`?~/a_}e- TU!_giCz"Fug[bؿ$oMeUb&1KN=049t.NӼ-3`̀0f @i-7{Y) ڦ6לe7=4u/[IM{/*}*b."+sQlƔ?~`ef! |K La"YŪ|zNw"B!rDHbj % TS~5 YxUkRr+zFZ1/?E<.\QUUl aa,?8Vn:1gk3`̀0w7wݘwiϗ=?[//y,C?cWmы&UUW+)j^ڱɷ7gΚfkM(͞{2˝;zU3IJYѼ o/̀0f 3`.'8?e_\Pś"ߘ_?po?2[{F|bFxkݴy&G[r=j*nw-sX#[\XAw#esq7 3`̀0f 3O|8hW2O5䠟X4|CeƎ0a*6!\ XbġS3Q>dts:B,CkxgVAlhC ' :Yc1!"hz!31g#V/r0ծ86ʟ|P,6bs~t/Skn_0f nߏ˻K-n^flcpkj6gzdmJ!9 1y :uL8S_5UٲOd5OqWcyp:ef03`̀0f 3`nؘ_q_*zi`gY/vSߴOXI>gfl90q0_+LU~Jf?Ú|TkW\ _FL~]TX~p*[ލ=^3`̀ 1H{g%yŰ}qmJ&%)ۚ%hgT=qR4pEpZجahf 3`̀0f 3#1K1{rp]2Mɲ;b>e[k7{q2I:vH0eJ,sWjW=#ݼ%|}B&/_\+ewml%l.̃†])׼ 8{ z0 p3`̀0f 3`nؘϞ~ 8_efv0D

`%hPMN$s ";'ǚ]5dtb"Ok}@KŎ̡"_~4ÓjbfaX6Z?cc?_sqM pS֮X`U}8}9wc~Gf 3`n21?.2^/8ؾ$)1l/Fo 85۵ T'U5H;;f[NB)RγKx[q8|hYhj-5htboxX]f 3`̀0֘?76>>7lD/wA^C `g6I(dY@ɾPB|5 ִ0^(2/ 5Z~ \6U={#bl0f 3`̀0f %bcG|ɯ?8V03kvknT}βg9HF&džqّq(h|4R42-իՖ_okM3 3`̀0f \;ۍq&uD9 Ψ1xLt⯾&NiH{:»cc|vUSuUh#K0LE 崘פ@uVl@46[Q,K۲;_ZLټW4KNՅ(VtCa㆐7f 3`̀0f ܘؘ?}ci?h@L?XbzNO2jvT 3a_~8T욅O<?1.Yk.3C1ʏ^+Q..WӚB>V;2C1Eu Pp%+?1S=T+1M]YOub `C?xʏ|%gz"C6bs<̬aQ~\Cܘ?sh 3`}a]i7}A*t Ks~b4&cX-kJЩctflSRiϊw(^ͳ>R-|wm^hNm),-5=̀0f 3`b5=G{SDo߾G߶+%]þ)ST 3oE *覽 ^-K!U=sekөJ 3`̀0f 3p }O>MUlU`7_h*Fv>2Q<~cl̊/:aoZzaQ5y:/ՂNX_KlY=HɜNH'"||(X99!Xl:Yɡ*:36 14q\u>\vR=^Y84j?M~O1S7W6{>+օc5?,o2n 3``]f7}C*pKKǞFcXjJЩ1ǡY:-mnmƓ=+ekBQ#Ŏlf Mo9[N*+VV3`̀0f ;7߳/{#xAU[qe"_}}ZN&2K{:So\rhN7X7k+=\%2Az_9Vx[1rõc1)UǛGx= :^2o[qn^`uC̀0f 3`̀01p=zgOhS, d/V3eWo2ze_#c C9r~5SՅF <+·N!.u^뜈Q]GݲWP0]6Y`P$2Tt]UGϡ_>i|s1Љ>T9nn_ C2v|_NZvaW]W~03Ͽ\=.h<]TUU< ̬aQ~\wc`+̀0f ܘEvc~\7r~ 'ݿISbWc4p kk:*AV9Nٱ5$v!(֣Y=f=##b yD yp>(̀0f 3`+Kc>yO=uFϻɱ:1 5{@r3wci>&;p g1Zl9]2VkfVf\ďl= Zy׹ [qnwH3`̀0f 3`nnue|Uz9aXMuXziWOlW?=@~fd9CȊXPN%yH&[YâV!V3`̀ 1H^N}<IJQ!٦Z98iY' Yfc81Ynؓr; e,n}o j̀0f 3Vx_ogVg#Ż4:ǰM ߐ_%Ak?~6uݲkc}ⅷ™ -Ý͔2Wr[%~ߔOIus2f 3`̀0f 5xcȿš&@ݭc }CL_23qX Y>C6tlKό1Dg_usKcr>dFE 8_G.UO@ICC1ZC60> #L :'=6.9ZT6p3'{ǎ8?_7k`¨ 6t̃2̚x7_õv f 3`6nߏq7}D*p9%h= a L[ YI:򮱗Y' Wk9^:c--U3WqC*V|m2f 3`̀01a`~H3اhi2o04YFr<<1;stv^L>~+|=yLalp٥kd °{^sQbm[Vmrnh0f 3`̀0fm1p??o?uꙦwu]տن5}Dz kKI=?zd鵳 ل&C߲S~0Ykp%7TE^?\G.ԡge@U8kdTNJzt:Ix<#%'HV|^hsP:qd}51+]Q].<,̬aQ~\wc~Gf 3`n21?.#RW_x4)1Fo(8 K`^OJҩwt} u$~V >sۄ9-bVN1Js0~2/|q/歘ޓm=f3`̀0f 3`nؘѣ<{qay>j<2L̆W.?2q aKvВ#8L+V­#+GV~f|cP~1_u?bAL&vd[r7w&D'GQ$ A:$~  H/kl K=C8đڄ]E6oyR$kyṨq-| z1)"IeާйGs)ystx( av1f 3`̀0f bc':coi֓zi$gA1:6&?=gQF8/,䔯ўwA~[^d &=֪Ov ;Sl U!_$cp*5CD'"."kdu L,8!O<6YGKk}pTS?:ZWuΏݿӗ_|?mSjs]A].<4̬aQ~\wc~ֲ0f €nߏTo{;ha L[ℬD9kaB{#9sfqt8}ܺQV ;_>e`̀0f 3pimv4LYw5%l=65VvꞤɓww^_"{S1^KE%q$"&s5)+4kf/ઘ9 ҤRz(VtSQQ]֙3`̀0f 3`%w1~1FaF[9ӌ6G3^jzuy)|_ݡn"+\#hd|9Cz rMK5_s>QϞR1 bd'C'+C!+ N^|tA x腅MC`#NCtVb9(f|_&hzPualef[ 3̀0f ܘߕvc~\Gr~'޿+)87Fo28 +i;;D)_Y;}sBF~ʕˑc-Z,(}l{{e80f 3`{_6]~={zp/gEWOGXe,+Lk4eLӛ/rnM,/9bk}Q;<#nI<cyZ)A(Ih˧9'0,f\HI1L5r ]RqgvpEP5f 3`̀0f *w1G=}7)qhлY}j-Xˊafǐ^qұ&WbV;';y>hűfȞ< S9)#N'F\NP uYIu&q\XӱMJ| ɲFsNd 5saW3vtQ7ɊgN5(U|9a'q|󗟾~ ʅ[mQǟ?|]0f 3pc~\1?.#mrÞFSv#'=cHü5&2^sIkXMFe.@.ɷX5mYm̀0f 3`sc>m=3m믛4{K/h6{yyI-6$4kϱWEƃgo[ⷦoqs:,3`̀0f 3`ؘѣ<{8|24K>cQ/2ƦX|/YjZC21ʅ 0k<ʏ/ GS v%{Z6QCC_ : :2 daH8djhW~ahM-"J5:uqK~c1ŪNP~lW 89bg?<ٛ7/4W@ UUe3d+3k~X*W?P7_vf 3`*nߏn7}D*|⣗{=}G?FM`V;e fy.q]ꦺD-_rYv㦔b8|Z#ڟ`̀0f 3px_ku{$pC_}c>;/= lQlG9b,aI\6ߦ{Z.AUb$h/J0Fw739rs(3`̀0f 3` w1>xO621AO1:WW:=wÎ/k+y`-ߜ8t?lFV~|?MG2qP5ԦqбV~f6/Ϙ?*/8¢L39:ax_ezg¥GxY1؄ MCʿϹr9GCۢ?nẀ0f }ܘnߏt[/{.G/} {5 ү&9,GZuw#ߌK7Z)qknRg0f 3`̀؃֘}{l,[iIʆCBW5nv_Of[xC5UyrngԺp]ԤjfўrNI$q.k_ !BQ9N/p{u>[<8 3`̀0f 3VÍ "ߘO/2lt5z8>?ǗfcJ\T bR.WNßqZc'?⋬:B,U?XJ~v` C' 0=EP,|BAP/ze(bfH/Gg_kp@]U#]@| 1O?ŧ}w@؃'uUU? C4̚9Ǎ2;0f w€ݍqy_-֋rc4F k雷ÓGN<0 y%:hW7ۊ*;i|_9},lG:r m83`̀0f ;Ҙ06.0y.p0f 3`̀0f3p='Ϟ&*HIedǪ]+zLc 5ƒgӐ`WG-E1/GK>%+ G`}P8g< ˅"38q8a>=:PL` t(lM!.hSC89EG^VmE.e XGVM.jyV\Ɩ,?*W?dݘ0f {nߏTo+)8AFc!L;ly#'pQԌ%u3-sٽ&cui:ì5f 3`̀0{0PkF|= IhHWVU[궾1yϋ2Rk^8Sfl5W$6C{čîܩ$.@V1:&6,zv8`|׻ &^})>)11f 3`̀0f kfch/q-6:r;O!hhXML6=`GGŇ|᮸؅K+Ui|r5 <9buC9g:upP:a RQgYOfD.>"!A/e(?g,8:rJO򣗎X8:WʏLN*jU~|?7@y\B UŨ4̚9ߘMWݵ3`̀x; 1?ݘܳ2^!՘p ly#ᢨ%-bQd?滇}Fݩ\.*e9 3`̀0f0pu>ݟ4 ٖf|Xbc]UPcy[{<6nfGlO9lxQVKnz ;x}C̀0f 3`̀0oؘѣϞ=e8z`O02}ؘ#CϚ]dMV,vdج'?ftزM1 _ a[j|xpZǗ bC!nqYVnva>ףX|!V&aGW.bzXtCNlSvjEdFA a3ᆪ,kbWvEyź0ׇ%y8zh[Ǎ^3`̀ 14>8|ܧlV©p6c5#27 8b:!Ng%{'̀0f 3`nk̟ζ͍" A_?,J~yS;`1_{[{cyVn-pfݎڎsIUX*lL?6cy,{ ǘ3`̀0f 3`6w1Q476c_WFǡfufvMڠw '' 8=XB\Vݨ&z?9tʡ9'zC,Z+` OJClX댿tA*0JljY""E z.`n\G F]re{ZgZnʏ =9e9e43ׇ525%+2kkjwߑ"ק˪b]y&[YâV!%^3`̀ 14Reܿ^T$[caTlp׾l;f1!B_Y=j0f 3`̀Zh?ht32(9*ܚmRs~&*d= C:S\T[}56j̇uU!Fڎ܎I9|Dg0'C[{Rcw,>Mò0f 3`̀x _O0O3X2A/l!ffؚ]/;10EG9_v.=#c~3}+^V *N,b@KA)Xpd +0!EQ~ f@!Vluaɛ/3M|ac?z缤g7#e;/o%51Ek?곙j5?,o2n 3`}`]e7ǥ jձ{=hj\8?[n"λ,#mcȕ?QuQì0f 3`n7ߘhߴ}`7PJb5mq +yNƝRlC,%\N{cϓ@Otsf73`̀0f 3`;e.6?|/~A_D0}lwgD[I|wqEFXzo?ď̲3`S !z! Cw`ዝ0I`<(LEqbqң!Htf{n-?["юǦԂmy>[M*%$cc=ahv0f 3`̀0f \w1ѣG>y7Aqh^=jfG-cӛ"֚c~_E|,j=`2|K/\l9F'kdŬ d|GBj̲z\4H~ӡsL-D"N~8'̠L&XsǁXE,3zbG>Z'\[~Oy1:P~f'.8pϟz\\uYU}W 3d+3k~X*W?dݘd+3`̀07wݘF3PǦk03XWƨ\|a/2oQAG(\#ÀG0wӌyts87̀0f 3`&w1Mn̯;^5X]jN\sÏ#9g8mK9"Ph{{t?,xbprv4f 3`̀0f cxcޯ`̛@uV_5jW6oͶpXߚXa&U~9?=Pb_~a*=bɏ`O83|en[Ċ>?1 k@H&B"5'䁯>y12AFG^gf[:Z?GL p`|GOuK'ߌ)xV+` YZb]y&[YâV!^/̀0f ܘevc~\i@v{qgsسlFssǶyc ;>BYyz(Rw^eI[OpRv2f 3`̀x81?^\=nL۽l3)e_Kl擹tlXϫ4Tt!,!y"Ph+>gY-ʳ5X{ ٶ}۞3`̀0f 3`ؘϞ~79Wqìͳșӣ̌y~`Q}Yg{,/A#r/cV~k+l`hl dX,a( kU|sQ@ȆLKHYS|#PdŦ8/~ ȬAؐ!IkŅXkTxWzɎ`qNؔ/W\[0_o%k`\SlAlef[5k0f 3`"nߏl7ǥ([<;x]FP/ƹ92:V5ɣjsyp9-G Efgr 3`̀0f`}og{Uǻ^c1&m|䝃.[qm_>գey:}jqRv2f 3`̀0f \ w1<䓧418:L3C1~/_8iV\bWГfft+02>ʃ_,1_O7`) 'jRu e_8}~N|X+jE/r&h?aq! tzdǟ?TtwEź0M2ErCލ^3`̀ 14qʽqn˸ 76f 3`̀01~?˻c]FuimZeХⶶxJRr\I]N*Nf 3`̀0f +c.6?|/~AqA4_^dl(xl0T߬.,r$v0f 3`{ܘ_羜 j$7uSOy2K}tO~Xn (M]\ޤB8AVQU.W} G0f 3`̀0fJ?~ǿ qWY QffhF&/;5hWb4c s~DcLo4҅XFX6`ep]1G''"t:idd#=kӿvX43K'lَG#W^<ȥ "1;P^ZCٙ1Đ?<7k8bq- pʓ֮@X@U=h!V!^/̀0f ܘevc~\t=gy{~d/55Hk+GIbb^tJ)>;yJ:3`̀0f # vګ}le-J{72b9!foW23CvzypY1Xa˟_3#c >3kLXj^EG~C>*c."+FXZ㧃\/Y5|_"`{ 00uR*VG='C;ztD'>0Tk,\M OjYCY+?~[>ctwEՇź0M2ErCލ^3`̀ 14y BN>r˞fk0qnQ1E"?ΓoO+70f 3`gk̟U_64%Njߘ]?;+hv$ZY!~[֟Y۹>d̀0f 3`̀bbc':h*գ̃dEYV:3C&cfm㏬[dl) bS,8?KN|Z FG!c]5PCV3+_6n4H|ӡ _vfDjP?\0b5yWf{V|lb˟|֣F,k:_~> h{> ,օo5?,o2n 3``]f7ǥgvRı\\5ƹ sg~`=l:|^f 3`̀0fc|&|}>_Jˏysc|F cSx ȕk-L"'3s0[P{zs_wk>X" @A` 8I|{/yw5勿o^Vsg]'3Ӂr{pP ɼuX_هpE @A  :"gK.<[QͲ}si‘O :V]lUC#$_+O,6.b}7(z#΃N>9gu&uJGsaJp2DG8s1ݺQk؟hyfᣞԲ?/`݊Zuv3m>Ɯ.@IDAT=e=_PXCOZV0&v> wq1oA  N!CTZ RgΚU̱HM&,%dK/Q?A  @A`Wb/wW=U77ߚܯҿw5K">jY`Y[R~1Ծ M^aYzV )7cʩ@A  @8^6]QdozY/!<crt968A6;:k{uYE|? =j۟\6V/Im"9r}!ae3:G?w/3` cea'ZֵԲ?!, qٙ9c'ZEy+ @ e=yu۷ylg7ovk݃{}}Z+x`=?z|š>!1 @ saJ#Pοx\}?,ά2+bYc~pP yدHW> @A  0/!'h_g}stO{ fqۢ]fuw\9S$2 @A  6]xثeQ|aIyCX|yL1ةe>>bEѭM y/!޳kkc!c+f./‹eY^j:{uCZ΅ O 9>4ߞְw "?B3:'~猠 CzKJ̿ru;7O oݿ~J~ɧ>gگΟr#}>-M˯uas8b.z{s8b./ك@A BY?4㔚a_ҏ=Ϣx3BXtygYYe @A Xbj\fk@c(5M#Yu=_)+<p c^vPM|]=a4 @A  NH?wnp˓Qke%C,? ݸv}xH'!F9S b]9c,6ku8?1 5Gvk9x/gf-t˺:繅fc sy/EO ۓ /X^V r;5G/cg36}i}K?^Sk}m`w!{bM"Nw~?g YCMu֤>8/oE@A4 bxO9LX/ǞizEZD#o,3",|l A  @1_!wIλz ByMfPt{*oD3Ͱ}zs'fsz 'npDۢ$y W[tVw:޲Y~@A  @&󷶶KC7?9<KFp3؍OٗÇX|ͳ? >{86SC9,n6s:;9΅8pӇ]sث ,+չ aHE?1 ԉk/Ml;#q6>1'D|򭡎X{l 6cZ؝xÎE+;%˵ktB[_v__=?zuvwܻ7o>vۿ]ݸ[m'ǾJ|zO[walMӊ"X{ ! #bx8Lq8//W5ӲuU}2Dz4Ǫ|;i@A  pRX/b8ÿK1|!9#~6{7,k_O~\cK @A  q# /0BC4̎Uut/'Y_k>1&/T3,cCn>5$ߞ֣ጟx'j;:Ķb]lCy10r`rF_kE=ȷ6vG/Ȝc qy5cMv\cgkX9` vk?1M??۽'˵zwo4Cj鿘klL8/~_z1CX1ƌZֿbp[g @A  pT1}3;kK̟6+oo团.9`:'Փ8Ozy_vo6Igݶu9rXm-S2 @A  pl812eIBo ӆ*9?>aoz%u؍Q/Cx7o8cݾvvȁڿk >bvs `]CG\a?kE"8}G>>bg_<0"? 18 >%SE3n1N[?v<#/W^؝; ;__ _~OߞQ>+}^X~ώ8wjky[Ϛ89R၅JS; E }aJA8F}sދ|n=qu۷y\yͷr?hⳓubݟs99R/|2ٛwvΙ_^Ћ#@A !!PBTZ=Zy/bU=ռ2yd~=cA  @G@t/vĜ 1so]O!\ށ9#\ C䌮>`rC?П\订XϾpC5O?igX9?Nmlص/_C̓,r?NW_~r^Fѿ~)7s.si?xYSn>WwPzN! )A taJG7X}vKi}xM0eU1 A  @"brޟ-<ڼeuV>iwoozfk= @A  l"133\HyfFY| wiuy!i&o@ݍiRYfwqn3m<\crщe~کI&njۿgScaJ"5X-I~rY^VCֳj2XwjQ!)΃<|l.j񠜗X|םc#y\{^qo͕?_c?׻/L('~O?Xs?S˔9˴?Ԭ)7;g~q{C|S@A bx:LA?8Vt z~k,Y!e YI\A  @1^b~Vj}Q{G @A  &#wjY7˂?vY ed ]n1>t|/Î<|8ӿo9%Orךo{=>Fe-[J(xA>C{a%8]b:!iPA/N<':vD2<־C=Ϯ`s{П>P ?ł.߹cb9r֝~2C_v 5?Լ//5I>nn>WwPz^Gyx@A `Bᅘ?ttGn~_LGݓ`UYV9,y2Sb@A  u"/AɿQ/_7|/Vj-8H+ⶂWѳ{6Dk; }َbA  @A  H.]<#ϐg W3Xr%S9+ vk`lK]B~4l/u[5g}حc bc9wQ'`÷8Jbtˠ : F^ nkxftrӇc, !a[uNC?>C#e=ҕbLyfCL7_W}>M˨us8b.ʧA  {.!揇e*-}Ѷt;p\s_ ,GsJ @A S@%ۮwU61 :_[1\vVay͹{V29]_Ԩ/j++lpI#TGK @A   gv\e8]DCT]/O?9C^GĶCKVɯF?1E:y"O)ml=!E[͓sXXZB[p9"m62;yƶ[JȤ?1k!|pxCjL3Z| }ݱ)ƐOloò ݯ_W_~r^R}>!M#m|š>!)vA D KaJG@}pmkÈ9aldY5Yg݂@A  p8)>ߛ?~{ʱ_eZد*̽ʹR; @A  pl01ق'EO̷pۅ]~?(k{>>Oto֞ho)*<ʞ4?ح)7;g~q{C|xs A  p*1bxX P/OIY0d}0~0@A  N*F߳]_Ԩ/ku ًa,19|c̲heh @A  $ob?Ue%aX=688C vb\E1֞:n,'_}؛ZgM?:>js.j;?bok = 'ὰ@n}l\ r&\w}K N}|PE<>ENsYص˹m3ַ1Uu'Oʕܥ镗^}~g_??XSҬ7u󡞾s8tj痺A  {:!揇e*=|Q`f|p8)sƮG+F@A  :#b; ON~xWu^fu{O]Vo @A  M$oomu/`(Kn{p* ^3; {l.~tڜ٭g;6|fֵF#֦[jbPO:pSYBC.]D)B qVwbZvsEX_L` ZΙ>L{sCO|mMCdǮر՟u۷ɧ?c/rأݳ+_˴jӓ$w͇|Ι_^)b9 @8%?ރ1<,S:au0NҬ(g @A !wk/*_= o|jlz[PsK"?IZ:_*(9=Q^fY}"w9J+ @A  l"1OHnDN#HrNSC~2quBGy~A=rEvm梓r=at{~1i8skkQsIe m]m\rb<Z~@79>;{ܜYLJl^l83߾ v^}K^v?{.!oct <'Mk} LO_9C}:!7F A  pj1GbxXz P?(uH6НԹg_@A  *{lUʪ6!LθU7lt{dAFΦ"Ĕ}ӈ+?w>h:}(WA  @A``bs},-)0H3bc,ZE:!~iPVK}i,¯ 4=~Q'Î7%!BM!ò;>@Ls&#g>r}Sҷ]7>/0rlyc?OG''w}O\{[huzs{[?.U_7}ӿ}~8<';@}u/wq16jA S@=2 >bF:Pn. ݦgY<@A  ZB?{y>]N{y& @A  M$9s3-}7vq ^ 1yđ'E1r7C'F!?~v>{`GI[Cv[RAA-bӛEN Cg-;I`(i& su@Aabt٩î`džc/vmpFnlR7mjcCICe=u굏޹C^ݯo:ŋ~Ow3q+<](Ѵ՝38߽ǡb9 @8%?ރ1<,Si#k:<u"n]r@A  @@GO̟XY?N'}aZgق@A  @ǁ&󷶶K?_|,o!!0\XL]2;~|r!ڱơ˗&mth:٭U\iLGn?̲?;b[dAR vHbVwsع0`/i,v5آV1Y &nګI-&~ggtkrvo%d-O>'~g~;{XGxL rΙ_^)b9 @8%?ރ1<,Si%o:2Duql A  ,?1M<s.'}aw;,s @A  V+(aK&Go>) [>3kx?0vks8hoX^f,Սmci2cSab-+ҋӃE@+pc+KR?`RxvYQ #,⣎1sXN3'q؟9[?:.uuSǯ\y]ڞy㍛~N.oSrr^˴ B}x|Pš>! )A taJ@}?թ%`O!3 @A /1F-Is6^A  @A epb+e:? QY^5cc u8˷&8{9p,߸h'>unݢN`'WYHj,k g.DžV5kӞ-@?Ύ|5pԙq,6ι1k?z?>}_;ſ\-M(<]HϠ{7;g~q{C|S@A bx:LDX&SA>8 \8JA  @8K/_]{ |ʙz{5욊cU?Ɖͷ&}w3{w54ލ˾QVE K+@fy9К;g_! @A  M$ooow/}x#o@A {1H60tIc3dflmb샮vkܞ8Aڇ8E؉[X(P 31,.\%@룾u>pb\d/xANvYaGA};ۋvt#.;_}VCB1ts @#b 1^iam{@A  N!nb$Mz?,'L@A  @X-H?sLg.>[(K0b"#p(x|C[^S_rk7oü >ÅF<+MMbXؽs۫SBXģlnE_l4^~C8G{rX,>uscqyIE6 ַ1*8uk21Vdž[]Nj>'՝ݹ#Ųb~@A @B4s@3CSI#8,Kb8i=%/\3 @A`1tOe3 @A  FC` O?_@ze#+.3e T؉mթ$xxtD{_?yf\gfѐJ[ a/51:uG\,S fyc819[8jAgfmˋGiۗz@ԉx,׳ 9ɎvrG{z+;{+ 1?J-@A @c3'yKi@$՗%<;b@A  ڲws @A  jpb+˂G I?^2;3ؑ?g{˂k/[NbxA  G b% Dyiy A  @@K{j{}dA  @A MB`mw?\yN7ʂ/G7KT|!8#y(l g.u?Kb㬯U&ȱ:6YrVnS!WqK N;0{Yw "y6X]pZ}X#nvqv8o*ؿ;/#|#޲r;w|m)z>ݭyh;ϩzSooݐ>՝38߽ǡSGCA  ?31<,SiE6ZF$Jl2nrȵ@A  ןLGJ(YA  @A G`gΜ>w7˂{ p˷ !^{OLɛ6q"NqPNO/^{BJo'פ>8CsA  !:1<,Si38 $O<7* @A`LB_b~ ._쾋v#A  @A  pl"1{{x 7z,IYfgAFc ]1oRAcC#tj/O':mzP5Yg?uNksnrv.!j8 XV<sy] s9~g2^L<0\ve]K-β>3vU*kٺbAY`=P֓Ww_}MdNO$ @BY?L>t"F^ @A  ?Ḃwf 1U/]|bē 6H$2 @A  pl"1kktsWz,’9 4ߞְw "?B3:'~猠 CzKJ̿ru;O\y}{/p.__`|:[2Gšޮb.Gyx! @A`1'bxX#RxyMHFA  @mo~ӟ?a3Cpw czo#7o՜fSeA1Kګq҉,~ @A  "ݟ/1fA"G8avvT|xêT>I&Vb31v_¾qX=>w>qWL>]>vcWgZ`?`|3F},1XlJlAyC<5̱=[<؜!s^#ϙ~ΉO?=[;cѓ؟8cC{zW^xm_(Nꧺ__^V/ݟs߹v/2HMu󁧾s8b.?8 @{!揇e*_Łq hWR12 O]!嬏cY(@yQ<[͑oM{9 6k0~^%9-4C{!/b}b؞\xTm۩A<>zy;>!WwPzN~xs A  p*1bxXRCCQP@A  aߕ;'}4y6GNA  @A &󷶶g!Ze:eMF5/.ᾍkxY}m=|Hۏ3u{Wȳsa?aaow[ԩx;\cn}i;k1YdXġSY^@Ķ3`a>yRmO꓋o u;`Sg\vD|(S/]ٹ|.Ct_ȏP/)qxLQ /iwO}5QqC̟2 @{!揇e*>Z46Se3kn@A @$~35IG׵Gˬ\A  @A `bs'A\haÒZΐ$kc':zij & {ZZc3~6cMj;:Ķb]lCy10r`rF_kE=ȷ6vG/Ȝc qy5cMv\cgkX9` vk?1?_>/r ݏ趶E#K13/QxbmĆnvv2ˢa7;b+W}_τmgwʵ}+˻ZKB1K A  ?c 1<,S)JlA  @At#b~W8/c}HzZ @A  M$={{҅^-fYr.#Sg™Xd8ipKDÌ]{6ND8Բ?/javU7 BkEOb3Ϯ^ńp@yA͹y4ͧ5(ړ]oMc!Go?;ީA z,IOSsCwKWv.י#,uy# f!bx3L p?B̿* @A Ӎ@!!b@IDAT@A  @X=H* z,ͲC(K,ZRDB,U19ƣMfGЭMn]?z'g\{I>|t{'cCCo;ifvEu[?wk['6/k:1v/ڼ$q,:!8Oښ7]b>@觠۟\uɣY "u߾{oYO\ݹ~m^cuBb:=@A`s1gbxXRC& @A  p:1?~凔Ԉ_A  @ADbs݅O?WP|ʒ8_EH^2 16hgdؑv'26_3>윍UbwgbZ{9VƢ&ktؙIwo[ǎӟ?!z I1;0;gb?"|ѵL.uct|UycS:,+'ةv|Y/x!34A  6{!揇e*A0A  @C?WzGt @A  M$=s{晋)ReAG;d쐈4[)^CåAg.ry2+:ƶ32+5D˲?6DSC[;zMލ!>r͟{܉M5X9eyY&]Z۫ͳ>>xcݩE]cd§8>󱹨v^b1/{c_wb쏍x䁲s۷)Y'xh!,A  6{!揇e*uA `]DA  @G سPE @A  @8M$ooou/'ZͲ]w*s q6g5_,}OY_z;/Z P;>޽zSooݐG՝38߽ǡsG+- @8?c1<,S)+=պ@A  )D /@A  @".();\b3am?f'F.2~t%\xT{Ί:9‡=R;1j`,9K{Yv?wBąX] >-,p%5]-286ׂ! %]<K`CokksP쏏Po.}`YOteŻwX"k@}Ho'ܓa_Ub@A B!?N !꟔'9@A  6CSν@A  @G&Ϟ==sG /OGCv+Mn1._3uNlۋ1S.Y<⪹ XxL~v'oOO.62~?9-͕xtO|[ b/ E'i/d61;K;}aq9gby@5_[Эk.1H رSz˷o(ȱ"Pv˼ߝ&c},i@A`#1bxXR8ZfA  @8:!r3A  @A`=Db o.9c*'>ĭ8v- :xM~q.1Ss&3~y/zcc[u n?uokP͝OB[A.NΒӇر-]kkkp6q'u*_3g&:m?F_rv6qq% v|rL  1 LF A  p1gbxXR8ZfA  @8bI g @A  @X6U?\PTYChS,B|fiLĠSԩ3~ֱvcg|هN{~vu]Ԫ?vHP5;:4x P gu'BQ+E]D;Zo؈uyNzj'ǹm˙|ۿͺ`wVp'?~΋wR*Nb:=@A`c1GbxXR8R\A  @8i'@A  @X6]xقz,! E~,x vr=MF'?:Bm3F g3|rk^51'Epډe!! R"t;l1O -`C{;Ģ/&m0k L-dhL z=𹈡'~f!cWXzO̿sیY'xxD2KA A eaJA#I? @A b!懐R̜A  @A & 1JY7˂*^N46duv?XNijO&آ:ۃ={gbۚb_ ǎ }@pŃOKvXvHA!K;?vr?snݢUd!NOU?/iwalM_Z^4\x@A l<!CT A  @A  0 !S~ݓ@ @A  @A6̙\|\Se z1Mbb8k vlnvyE[?vb5 "Ĵ9ȑm}PL }rb N ;mwG ML sf֏ @!yC,q)j9# *>t .yl^Qp$5؉.>5oyGu{ÎN}te=}u o*NvScA;)rA  @ b%< @A  b/ @A  @ 3gtx咿UeIC ]2\dVyȜb[;~k ^}Z_nП1̫?rI wn{uJHs 1xtv✍ޭoh/B.Bkŧn.q,./ f?7`7\E{nMf?6wk+xQه1?_;wX"k@}p= j! @Xm& @A  @+B WJ @A  @8l"1{{x|eAG+.3e T؉mթ$Jy-gwm<:o'۟,Z\{Q\ڊZusmM㉣}ٹ/;BĚKbc 3; v.@8g(jGPApyJ-b3^f6Kճ{ is;,O_G߾k,NB_'Y@A l!,CT A  @A  0 !懘?$1A  @A  fA`mw?\ QMUNDuɁs^;~a=<[úm&:Y_QM3c?tlEY1۟6B>/+dv`Dlһɱ>gFqT|g#kw^G~=Gne=~w(Z C 1-EA  q?# 1<,S) @A  ,b, @A  @M$9s3?\7˂{ p˷ !^{ɓ7mvEvy#r9o l,ۿ[ڟķp6g̲yTb[Xv\ ɅgXK~/.TmO.9煇BW߳[O?B?c'ص ~mnWB&`߹n'O@YH7UorWwPz^Gyxx @AT bx9L @A  @ b~N@A  @A`6ulw҅gou,p{i. GZeέp.qP k(<]t>1 @A 1pt?'` A  @A  $!懘K(A  @A  &l"1{{x%ozY/!΂ b\cCϱ!đg :ى']I\ض?=,೟UP:9z9Nj;y΁m 5xu ,+^Թ<.g3x/&xcC. ;ֲͥŏ AgW O;*j|l] |cj(ɫ;/߾&NB_'Y@A l!,CT A  @A  0 !懘?$1A  @A  fA`[[[ݥ+7ʂ/,I3Ux J[-.r.|>T/>gɧ=a"siz`#~sFᎍx{pF߻ώosQW\swd/O?GA  h01 @A  @X!懘V @A  )D`?1_bXʏ)CfagO'N~R=/?Yb?ZvjxV/I}Yr[|8{&.\;b~ֳF-hy a>sc,6b%<{a!XמnrslJmtb9/L?ħ-jxOGO1!e=u+/6/uBB_GY@A l !(CT A  @A  0 !懘?$1A  @A  fA`mw?|^+ .1b,yǞWR1v؈!|겈ÆX>vsfN'Fȳn6G5},ج.a{YVᱳ:qmg$&x'P}6u۞ԗO5kMfl[ socyOteݻF hD2KA A eaJA  @A  fA gy$& @A  ,l01r'CG ͂? aX0;~WQ+ҽd}mX8xC̙x!D7bOQz̀pfsIvVtC'V 8bs1/&CZl]Έ~`mݱgΙu!?ܶ}Ɏkl-|@k9vn v'?_PXC&# @B!?@A  @A`B1Ib@A  @A ̂޻ܞyY{yOuwU!h+S]u.&/10\hP]UQ` f@ A"Kptj@Gm!$1HKUuW ƙs){ϳkMﮪ<ߙuZˁ :1"Y@HT 13Y?ktcofc\8Bۇ81L9hX1[{{31u}܏56g%44xx9qsqPΨxbÌc6N? ˠ qַ~8̣>F_s3a>0Dw@" wDzJ@"D @"m$O落D @"D 6Q3W.01C4e {c$V_GBd5Y_d~,晵سKS\gj؟=u];\FkEObssN<}D 8 w-e"D @"D H0I1@"D @"m0hu/uo@A9ZbuԊ#aU{L&3cM"}kYyj͵[糶̾X00nj~;{rKM9ߚms!'3,R}H:X^68fl³|c=4'=fяYsE>~跿}գc|޾o,'|EK"Dp$ݷL;U@"D @"lC a~m~'D @"D @!pGt_c(E-1dZc|Vq9Ǐ3h񙧏j9X׋lvÞ?cP5k󘹓"|๹֞3f̜0c{O/wa< 3xlGdZ?cR~~ПLY;ru}D 8 w-e"D @"D H0I1@"D @"m0…K_1=v*:fDj%sX9̘9{̞s5gEīy挾T|;۬ϙc}}i1E>yg2 @/j}.탙g?`99uymH'kbx>}9{k50|Z9eA'xWܱd{A`y߽ұ?36-3{8=̧?nV@"<3'*E @"D @!0?a6b"D @"D 8Da_m b>bDh1q131jV_͙Ē.ٿj^sM8o cbӜ10jG]8go/k᷎}8M\35|ڼ Dè阡ǰk`G C +h5sւyO?>9=o99ԙK6g_vŻw7<^X~(7u쟏ojD  $ $?1"D @"D g"0?a~@%G @"D @&(?+^|e b>C]1bT}jūSf9+Gػ&vEXƙj'{㚼yw:۟wpy/KIb'yXX ͰA g8>b2?ygX#dݟ~Ùpiֵy+i~39zO3b7n[߃a5{JQG @ $7L;U@"D @"lC a~m~'D @"D @!pg_=1Tsuh5Xj7{άޙ`ֲ< ZWp!~>/krAǙ>?=| Ěߏo5lч~Cc~|0y8Z5/я} # ⣯u{7߸~|r;}|?_{eR"D[@}ÄcYD @"D 6'wRL"D @"D`)?_}7@ꘅ)Vd#=3yiVLİ6f,s:o,ϙzi7kSA? k=ZF7ͺZq?~.? `.䥬Ϟ@ēpX.Љ~k <={rS?9ǯ\م'g]s{W/?yڍܥTO0>Iw@" wDzJ@"D @"m$O落D @"D 6Qhug_1V+G0-2g̷@WgϬ6{ɬ5Fm3gk?뫍fƬMog誉1 zr˵U? 3b&YPxý>1XրǤCS 'a9'gsMϹF{֘5Goo|m>^1Hw@" wDzJ@"D @"m$O落D @"D 6Q4/0oU὚h| b5j>8crc=GXZb 7P <5q!ƽZװq1\8RF .xq3/g:0kj1cá׼|13qo s.{#Ş5wͮo_f^7_}>#'ߧ/]"D C aeݱR"D @"D` o;)&@"D @" ?71Ϣxjأ9f1"{68"fc\ɷn`Ԛsc{s]C3MOj[,ÏOf,2*yJ>9fRdz\?&lk@c@qÙk?,}ac#ÇG<~.e|[޸ʗnݢUO tD Ho0w,D @"D ؆@N@"D @"lCΝ[}ώ>ƛ8cFzS1uĩqǚA{r<3oFOFffϙ:j{I[3cm "sz3qzO pQ:{sb.,8x(>Է08xf0a؋Y11guoo:ę1LJ9ӓx_sl.@"!0w2aXV)@"D @" D @"D ؆! 󏎎VW._|~1q{5 W9gjaΊ7<DZV/M<\Xӟٺ^c˚>o1kcϰ?3={Ό7߉͋8q# Ry%9 f GߚP`X.fwyL0uw֤&ޝY6E,;!t1b>x tD H/0w,D @"D ؆@N@"D @"lCύ6c7/#Keͬ1̛1õtgFc1s_u9s?YXo/ff,];# ZMfbNe4?):w>ęxA Z/A ?{&3{nܓ8pٟ{ffߺX?yڍܥmO tD Ho0w,D @"D ؆@N@"D @"lCo0Ba{uFM,zc֋uaޚ\8sֵ??nr7n-h'>g;9k.ur3rOΩK28$`bf#|rA̼k̀!~6>#[w]}A?q 9{3vo|n4,}g! @"$0w5aXV)@"D @" D @"D ؆! /\|ibWhHS3G\b?@<3f G=c]sSh>s.f6`M`1{c\ȱgNm6?u{Ա~\~>g3C,qe3P9c y̘ϞzCX>;޽ѱ?36-3{8=̧?nV@"<3'*E @"D @!0?a6b"D @"D 8Da+W.!u NUiFnj5FL c>jfbcsN,{ck/Ǧ|[cC}XkyoõlAڇ8cwjY>5 9|$=u6[sp9N=O_>̘5oFb ?k>6o۷i>=}BPI?N6@"G OD @"D  $OƟP@"D @"5C;wng.?;c9a4+EPQ=FZBm\_П1Wij0_45a^sK3rOZƐs\[l^ÜͬyƏ>̘9'׮;"l/,X}߇M"D  00`rG @"D @>  @?F @"D CH.\X]s~e@VY9{4 ȝkc&vwM4Ȉ/ױw|gc{N7=h:10fk_c835u1Grxlr:>N>G1=xf}6x}g51W9auoGϙ9ЏOKn|]>X1Hw@" wDzJ@"D @"m$O落D @"D 6\` 3/׫Cf?{{1@͛|[Ʋ}"JO_D @@}˄cYD @"D 6'wRL"D @"D`( K~n1QFbcı&1"m7sN5̳8Z[ús&:޳\\|ǞsX.sc̷?=Om\ψ;慬3_$%Xd@IDATXg9"y>@.ܱ\Θɱ>{FcWguؿWs9#w1v;wm Oh StD HO0w,D @"D ؆@N@"D @"lCΝ[}_mo;YoAEzoϚO[U"D  wDzJ@"D @"m$O落D @"D 6QtʕKώ6[c'F[|,<=jZ#eWZmy| =4fM5sΉg]уAAMk}ztꑏy3c}}FD<=Om9u{1G0`ݺfr?1 Ψ?ZgrY3O9Ԙ1bƇv? &@"!0}(a D @"D 8# *=@"D @"&p .._zxc EYffHEc]1csXGađg kj3Nz,qsOA]|`fЇ3ٟXO6y=ދLxC.?ֲͥƚa_>3{[k, y+ ϙ15so|m~7>%ߧ/]"D C aeݱR"D @"D` o;)&@"D @" C\xWxs Š#QEg_dcV칚i95~jbg1h?s&YF򘗛3^Y^Q}&4sh'ZbB3ǵ=C|ۏ=1k8#1[gƈX׮߸z>X~`k&@"SH hHI0#D @"D  ?Ve#D @"D!$p{1_a["GUWF0όؿOcrYoOVO"35ܻu}8=>{l}1cܵ{1=c̱?~8?^y9<0{1sGv?{,au l'8ϻR<51y_8?{yOIw@" wDzJ@"D @"m$O落D @"D 6Q#V.>xkc|} h*3GOڸ\!*Ư1 cO]q0cYk,1OF Z5|wg-ֲouɝOl4ۅ b}b=yc]CN 9{1sf\0<־sum>1@|pkS{ۓ ɷkΉo?>[ 20cX?ҵW%4'|ЄEK"Dp$ݷL;U@"D @"lC a~m~'D @"D @!p_|-40aE̜;r:#Wk>1&3'a|5YO rfOQzc9ͱ&滲~%v6cM1yp( 2e d>zƑom[8c;״51s7?Z?l f/?_p tD H0w,D @"D ؆@N@"D @"lC_ C, _$D٬5df1kmahC{Ϙ[g&4s{=ýܙisYo|lt\s89chgC_dpN<1a1Y|eq8[?fs}cQ#oq}r?s/߹lCH_;D @@}ӄcYD @"D 6'wRL"D @"D`(?+^of2xw|=ݱgh\{I\!f/i?kZYoꥩeX.?5잺Ň_#N5q'19'X(pVۼ|gϚ#6Qz6H|Y>sqd^ęO=ƹ۟޾iA c9ޛl^vݻeD0Hw@" wDzJ@"D @"m$O落D @"D 6Qttr:7@ -:jE b=&xh1&w5<5kYgmfd,yqcF?͝cԥ&FΜoMY9^Ou q)>|$q rC,qىy/k3os~Y{q~kkݬŹ"u߾Ǝ1>{Wo7>p}"%@"p8[&*E @"D @!0?a6b"D @"D 8Da#\X]s1ΏEFH]21>d8ɜ|4G5ΜgoE6;aO1ƚyIo\k~3f_|0cf&&@"p(K&*E @"D @!0?a6b"D @"D 8DasVx{y 1XgjQ8ӼgisP}29u&>>So|mJgD0Hw@" wDzJ@"D @"m$O落D @"D 6QCCDY3w9S\~f=cfO|wmAi|>4"3jE|>̳G c|XoցJbϼw$ܓ5~L1<־ΜSϏȽq>`Sjp-o c&L.p{>Nm^FatcX 5p0}#o! kAyX[F\\7%/u/]ݻl/,?v: 7@@"D?͉Y @"D @"3H0L?#D @"D C?~̕K/g21CSPء1>U)X#^Xc];"l,gL}5k?qM{b7tK 6o?f!1~嫷oo8>RN~G @@}لcYD @"D 6'wRL"D @"D`(?::r{ sƅDUM2~1sZ 3{gqcϹ<.z3:2ky_s jߙN/1a8}3?>`<K-a|ޑsYg}׺콛\oY F>g>>֟/ {h|U=2])@"O aaݱR"D @"D` o;)&@"D @"  a/>c Guwt+LJ<4G&XbX39o7zL4foj㛵Ǡ5~j~e}#f]s͸w?q}0Rg} {uLa,E]L?kϵo=cemG.ؓo}ⳮ9vƋwR*'ˇJOD @@}ʄcYD @"D 6'wRL"D @"D`(̿pt|j#f3[c+gV=dr6{fnjG fֵF3c֦3tĘ@=9ZM 犯X1b? ,Ebbufs QdPLc1l,o-b1sYsjxzO}pɚ8^pkXO܃8̘luu)xV`s]}<ޗp 51k^s>go֘|7{f9OO|zlcbϚ;f/F{/޾Ml.@"!0w2aXV)@"D @" D @"D ؆ gQk{go|Kn*'|EK"Dp$ݷL;U@"D @"lC a~m~'D @"D @!psέ>g_{1#KUwFDAc8c qch7#'F#?G=c褭~뱶]sFF j98s駆u8ègi9YĉSrb~|qm?߸bTCf30gEcX&sog|l]y\eM瘵Xg؟=gEN9 f5f@Y}Όϻ.>֠kQ8{c; a7n[o> CtD H0w,D @"D ؆@N@"D @"lC.\X]41c|c 4 șQfYX.sk Dskg^1SC9g4@9vl?r0{&b0so 3|6DXˋ R?{.?Pֈ˙y!8fZfpsm-bϵ$o 㼷{bZNp6נ{bC\;QF  xCc>a{ sQ:9}ao_{'{cf f/Af7|k{1s5Yc7^۴k!?'̿SD @އ@s£'Vx"D @"D'?OD @"D ! ϝ;31C0b"cR(xΈQ#vsn-zX./~s@L܏qfYs}V0XsYl%53qލm,On6:y1?\'<˙kscxEc'|co fc9q폏{z6afܱ ;$̿GD @NA a)= %a@"D @"|@'~Z@"D @"! /\|o4rh;L:h+_$c<<3n^{ΝF#7u8c`%׾pf gkb3,u| |4f9>c {_;G-muhs2F/?kb0ss 93ۓ3rɡ1㉗ݻ<){՛oԧoy >:F @ we"D @"D H0I1@"D @"m01#f!f_W̌y19[ͥ8̬٫O]Z\{Q\6;48jЗ53eƈcXXs&خ s10{Y/GXc9Zc,s1۟6Fgĝh|VB֙/L}}3 < y A zX.gX#of|ލxҏs:߫;gqO^~;6g7ߺz^?e],W__^ίX3kGKaѮO"D"0w;aXV)@"D @" D @"D ؆! ϝ;301vtóޚ=xlޞ5yꦍoӯΙxL5{p6>f??}]3?߇=y 7\Cq?Nm>%rqAXa^b8w@"D 0w9aXV)@"D @" D @"D ؆! Ο_]rxk hZ]k=W~6Y6cƬIV|9k<>z0;=hoON=1Ú|rs|콯w"߳Ǹ".0}aϚ<`H{]̞1[wqOrYc8Q`Y[r}X.kf3s=c</VƵW}Cu]u5EP?N6@"G OD @"D  $OƟP@"D @"5C_pauϏG6Z8e4h(R#lWks|qÚīuܓ5szP5~'V'Fm=~^"{೿=rC Bk2.pV\5ǜ9cq|{`lƐOkseb9LJfW!{?8ìe{ʂ8sf= @ /_}GY_gWk/\?܅ G__;?,a @"@}cYD @"D 6'wRL"D @"D`(?::Z]| 3GXÿVǬs5sk03b<,笭M yό. jYsj6F 0眽l|j D1/7'g8Э8MhO>i {ń9fk{Z{cpG=c߷όos]qԟӫܟWƿz`_/?v}v_̿GD @NA a)= %a@"D @"|@'~Z@"D @"! |oϊU}4_0?3c*>qh=_gy>Ya?upzֵ :T칳Lj3s~eg^~ֳ>6¼x>sa YcX~(>XHSخOqw6ykbk0~Kfb.L<ÅɃ,g zvj[3LJ9o淰=+?|w{yg?QOw1>kۇ0귊0_[}qce/Y}wnw2曫hߏWc{d}w0]D CH a>zݱR"D @"D` o;)&@"D @" C\0+c9rTd5fŊqe6?y6cOs5џ\ag;.}9ދ3㸷gi{{jy\ǻ.\7?aýM]mO+'9'{n-xÌcKn\{Џnݺz\{K_?gsޟv\؏}m^O?C,{^ğ<۵0TD w0w,D @"D ؆@N@"D @"lCύ29*ZhaÊ9wuFt&ٳ9|bM:eգgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bns>Qxe六|NϽ3~#ٓ9f}!1q wik2co[3~ ~1X _rb>pw3{ lD x $WO;U@"D @"lC a~m~'D @"D @!po}/{gB l]23y[õ60!g3G9ýpF ֞^ `]4c͹7Yc >?6:M9^j^Nf14s3j!/28'cg0㘍ϬqFBx2a8o3>1󨏑7vLGk/ϫ?_h/ݏίs C?;ZD @Qy0+D @"D 8 O)8@"D @">Q3W.01C4e {Y$V_GBd5Y_d~,晵سKS\gj؟=u];\FkEObssN<X w"D  wDzJ@"D @"m$O落D @"D 6Qttr:7@ -:jE b=&xh1&w5<5kYgmfd,yqcF?͝cԥ&FΜoMY9^Ou q)>|$q rC,qىy/k3os~Y{q~kkݬŹ"u߾Ǝ1>{Wo7??υM~/ū_݉0C]D CE a>wݱR"D @"D` o;)&@"D @" C?ȅեO?7CX.Zdh%3C:ΌS9~lG<}W~ƺ^dl] hY̝͵ݞ1cŇ{i ^=Cgx>?"{&:؟5g1K{8a'N?p?יB Yy?s폟㉛/rd__t۹sVwOȇv>f w"D  wDzJ@"D @"m$O落D @"D 6Q~]y QcZ]2~Dj]$kgEӟkMu<6s栿>X_yg kOޙg">ЋZK`#{~pa1>,t7E@rg^;z?k_gΩG}|f8 w57qNY1v;wl?<{b?#oݿᷬIϬ_+V>L[>;~w;;c2,{>c=|SoD CA a>sݱR"D @"D` o;)&@"D @" C\/#EtʌsxX3a?k՜K,l5؋3>'A?~܅srMf~؇sr!s{,|qvj.0}cNZ@3Oy3 p8o ܅yӏc,#~agzOfμ?537x>6g_vŻw7<{d_kCѷ}۷.^|jK~/\V?l[~(7u쟏ojD  $ $?1"D @"D g"0?a~@%G @"D @&(?+^|e b>C]1bT}jūSf9+G)eعy>fc?g[x/ru\ScyF]mg/v x|!/#g5B9YǙf]?(7G>~z޾4c/?q/޺=;?X_տy}YOYGV>'?!G=K3.mV߫0h+D x $O aXV)@"D @" D @"D ؆ } b>ZdRgI%xb9zgY^'~'Xk^?9{U=w3?\@\O8%x6Y8b澬3G0g'{cgܗ3k~?[\b9F~1w9/_}{>_];7SNHD @@}cYD @"D 6'wRL"D @"D`(?::r{ sƅDu{x>7sZOܣ&8[ψqk_{ck_{V =fq|ӟzHD @  we"D @"D H0I1@"D @"m0h/~a1c#EЎX8?tNgj#g,1kK=F{߬&fX󞬭34{kmЏ/>{Og%Fcy/tbgm#ރg,=㽬me?]{ʹYӺ'c_ڵ/޹Ko ^umlwYwY@"D $>'9MZF @"D @N a~D @"D 8&p GG˗/>;^oZ=a֫@IDAT9c5b ?{fɬݣMfv5Fm♭g3>f59[~W͌YUcA0k o#{I ~}dB8Kj0^v\Z`> 3Y{ja~ cڃ31l9w#2q-1޾͵5G~.]\?s5-x})O{q0@"D}$8'#׳eoAɻׇfԘ9X߇XOe6?UC | ;s0ͥgc~(M?,<돇3~X2#F#x]ɛ5>6֟q/ݺEl.@"!0w2aXV)@"D @" D @"D ؆! ϝ;3}7q@nj,U>1c1ꎉS㌏58ƍyfFߌ8̞3{ugWw95E,fP ụ&f'N \YYp ĵ<5P0}o=gapهav 0Ì>bcl#d3u3cs'9Ե7x>'ߧ/]"D C aeݱR"D @"D` o;)&@"D @" C\x+c|j #Sկs>Ü#nyc^xjYs?ur]5}7:cbm?Ǟaf{yWYO:KHIH30hH@qPAq!H @@  2" |X],aI:IUw<]{o 7>]y?|xc m^dľ.H-䱗3LP\]{sy00i,~mkgC >c3b3b֝I-kMν;lX[Xwl_Cz}\m7G];rQbyۗç?[onlذt҉Gxr;4x䃌0d@@@0|_2B B B B B B B`G?$1!!!!!!!05,?:n-`,5br֋ ccVȋZ#c朿_u9ksۿYXo/ff,]#UWZMvbF2/;sIL~-8A+88cCQ?maRx>:~23cg/xrFc{:5ן{g0s~i[::;/߷fff˓<99 O>ʦMw/{{Nٻwoog?T/fj?web¯ˢeW0A!!!p0|_2B B B B B B B`G?$1!!!!!!!05.S9*a+G0K]U.yewn(/}{=l1Ge烌0R @[<>$B B B B B B V@*5C B B B B B LkQ?55Un/_SMuav MU@Ό23g벋eߞ'[!rKL[=wm9cO zO[ٟ q=}1{67r#Oagszrf3F,qǚZdpsm-eg?jO3}O-ęP]WmA?˟/yڹ bfg ^{e׮ˏ$t1|hi@@@0|_2B B B B B B B`G?$1!!!!!!!0(̟(۶mAQUeiFnj5FL c~^Ze[GMyNZWsN,{uٝk/Ǧ|[C}XkyoõᬭAڇ8u7QpF   9|$=u[sp9N=OOAf7|k{1s5YcGױifgi^~qO|rɋX_[sZ7fbb]SO=eДE?)!!!G > F xI Da_@@@@@@! Eau=zv}긱hWF!WU 9#F2{Ϲ.>u's&G ygG ͚sl$on{ujHggC,f.񬙉nmu9h]KhB.k̵1x"|ַ1j8==k0gk3k3fjaq>|1`~v0ZYy>΅s.æO @f!!G0G?>!!!!!!0?A' Aqa:#f!f/׫Cf,{ۼeSy󞾨([3q^Ylq w*)'xB|ӟ+_W؏HyJn"_I©!!G.G?>!!!!!!0?A' AEau=k븩 zkw=kM8k_3ko | ۿ5:ikf&{7:#X{dMl>t\\A{?!}QsCxqj~ cx8gf`ڟ'1'6lC]mu3/|ҷ.(ۙ[zů~}2B B B B B B B`G?$1!!!!!!!0(̟(۶m9:ցmtN]=ٷ^2k{5И5Ԋu8'uGfm6Q #>'=z'=FD<=G6\&/ž53y {1<g~`ح8j'A f/sGm}f޷ef68snCc8p./{{r? *+7eg=/P=m˳?[+y_ܟ,5Vx;_ AǾ8 X@K(!%<B B B B B B I Jz@@@@@@EaTٺeӹqC/!F@aZcGađg kj3N.{qmOĶA]|`fЇ3ٟXO6v]ދ?֪8ìe{ʂ8sf=_:szY7|gwɻ~]E/p },ox_s] {ǟEyzWK/^/ƴ0L0S&B B B`X&eKr@@@@@@ M $!B B B B B B !e'_]ǍuV$*:c '[:gL31S#?|ΈAl읳61c>3hb4|jwog-Ω|5ìsg.>z.f D1/s'sg8Э8CCsO<Բ5]::9iz#~9gY`qNj<3FͥG'߱sz z.yu(~7p,n(x.PO>-ox{1eNw:_Eym pd!!!0GHJ;B B B B B B V@W+eC B B B B B @kQ? "GUͧ`OcK'+'֙]WWv_qYj=w>q1{=~1ckz 5f5fU xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݺb8O<1g ~r=3vs-oX]yԻ/,??۳.zuٹczs;ݱ.(stтۮxGy+_ZN<~%|H$!!!p0|}cJ!!!!!!!0#{Z_?Ultn}u|h*3GOڸ,gGx9SA>̺=c6X|֪_?Ѩ}Yfޚ>.Z.Fqy!' ۓ/X>uuu> 3z3gnscoa{8W\ozY>5Ͼͣ& fb<}֜mnUpOO./xK}8;/+PWv `c=x\~x^Q6l3F!B B DS0|,S)B B B B B B !a~|O!!!!!!XɲmfWqcQh1+FWpơ5od ~e_s[3Ǟ:=k{?o3..}9ދ3㸷gi{{գь51&3'a|5YO rfOQz sgsIkrmͺXG yޭ_ݣa^Z^غ1\;wP8򭍟=9c2{C|5cMf\c{kqDϹ_k0[;/׻]ˑ7%o]P/6aCyAo >Wr@@I }描e*@@@@@@ "̏0IbB B B B B B B`k\MepC[y'Q?cg[~蒙:Ƹqq=cVo8rD.3bv;Wwwg2u}Sۏ5g.x?l4J9^^N14sԿ5 O-@|qg8#_!6Qs$#@#T ADa ߓĄ@@@@@@ ֢0bbmccoj.cvsgx3z&͵g~M 0g6gbϺ_/M-s벋afumluu>qj==9̮r4r^=k.؜GY{#og 5qדY{Ag>Ƴnof{1hY{=O=ν71?31}~Vqrĺgn9̭̽['g_'_)X+E7uC B B&a>2B B B B B B B`G?$1!!!!!!!0(̟,۶n~t}5uTahQ+jWh^:SLU19ƳF̌6ή9g橙6^5m>k3&cÈo3i=Owˮ.51r|krڷ g6.kat q)>|$q C,qSY[y}SÏ٧{`X۟ɣwk.[Gw/uYӻ;ϔ+.?v_ytyҺVt E!!!p0|}cJ!!!!!!!0#{Z_?UltN}:nC|]vZdķh%3CΌc ?Qg>q ?{c]ww{bZvAM4֬cN}ZnϘ1svsÌu?Oxff'=k̎&:ɱ?k΄.X~q0>jڟ8Ϳ ྭޅ~?ݡvj;'d"\r~MNM=?c޴'vٿϏW6n[oҋeWm5oϺ=3c]SO9E!!!k@#T ADa ߓĄ@@@@@@ ֢0bݺr[S߿@pvk#"VL,q3kbZ2zhķh>93jwWޑRSM4kbLJ鷟~jkK!;o}p?lj0EXJ9 +lX .jbv?xcE]㳇bL>A->lK,gܗͱ31Gޑϟ*׿233S|]zr~i?~e%<~~ɘqv A&B B B`mw@@@@@@#_Vʆ@@@@@@֢0rrlۺ㼶~1]1TfĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&b8g#@M>:=| k<}0¹v[=wa-(@10-s'~?g7:msK u~_a/||ӟ+{T%<&&&ʱ[*'pەLE0vef!!!p0|tcJ!!!!!!!0#{Z{=sۖ_U)F(PWTUbb; k1)X#^Xc]"l,[L}5kqM^;im|;8üm.p?09P x!k~ 3ª!XSάǙf]/[7G>~z޾4cO޵r~y>tZCmB B B`0|dcJ!!!!!!!0#{]]b>ZdRgIף.xb9zgY^'~'XkxzџxV;p_Zm6:I< qĴ}Y2f`O,f08y/gbOyu%kc3~gs:N9{l?IJ#~i!!k@d#T ADa ߓĄ@@@@@@ ֢0rrlۺk<Dq!QU3q̜G6zBx}6ٺxF9{sn6ϱwa~׹[w|hЉ$X{Q'A {|`=jq`O|{_ # N⣯u{7߸~|r;Sק+Uh|%UJ!!!p0|acJ!!!!!!!0#{OVaG_W u Guwt+LJ<4G&XbXS kK=s^7ic?y?~{eVm~.VmBH\KY='3#k?(bYۿ%|G^Ox/k>rٷgSuO_]Ϻ'c/oܱc})vo)_ʷ妽{L(}t9'\9f~pAE?\.B B W0|,S)B B B B B B !a~|O!!!!!!Xɲu:V+G0-2g3u+gV=dr6{fnjG fֵF3c֦3tĘ_겧ᦆwO,r1/˄"`p1ݮluι}%5`2#g1~o/AXiГF{֘5Gӻr_>ϔJk_#׳\Zb 7P ܾ5q!ƽհq1Y[k.j?)\`m]}<D.a|p_ 51Ы]sgo֘|7{f9OO|ncbϚ;f/Fyaggi|_=6m><۟wgYޫn{oPקO겙Z^|?)_c}_rI'樅#^B B B "aRt;08^0?~!!!!!!Xu֕{q蘑g#"Fs F1qjf޸4ٟsf1t X[9# `S:aԳy m:IR\ẐӏO 1O}9 3>gkfcMf{_֨!]пCm|3=ɹCgع~'>WQY_p ~{ >G!!!f D?6L@=IL@@@@@@ B`- '''˶ϭ↑9 WC`~u̜s欨qm=}mkSϚ쏏5K<>UӾky? 3cxc m^dľ.H-䱗3LP\]{sy00i,~mkgC >c3b3b֝I-kMν;lX[Xwl_Cz}\mW^%//3~xxmrr]yoa!!!00Fu&@@@@@@X DaXP)!!!!!!pDXs{m7ԁޘ_GʚY19ņ11tgFc1s_ߺ9oDcjYw3ڮmcwv&?1#͗kΝqA q1ס0E<TQ `1描e*@@@@@@ "̏0IbB B B B B B B`kQ?55Un/_SMuav MU@Ό23g벋eߞ'[!rKL[=wm9cO }غl雈cƶ7cl6|"u=oY(k˙y!8efZdpsm-eg?jO3}O-ęP]WmA{+ʧ?{{g2B B B B B B B`G?$1!!!!!!!0(̟(۶mANUeiFnj5FL c~^Ze[GMy31f9'Ό~#fG!>o 㼷{bZNp֠{bC(\`ͅAc>a{ sQ:9}ao_{'{cf f3f g|ѵ9ϚشszeZvͷ'?ev_?jQe|K?8ɇ6_P AG8 X@K(!%<B B B B B B I Jz@@@@@@Eau=zv}긱hWFJU 9#F2{Ϲ.>uW͡?m3m?bƙg͹aZij`7:53!3xy7l4|恌.{!a5r\<^|]v> X[r5}mkkrw㞞k|5Rه35w۱s}DX=>\t˽}|\|;c 0Oo}_ʗru_(gʎ;i/|êT EG6!!!#0hDC B B B B B B`Da }R6B B B B B B$SSSeM֏:ցq,rh:WWLl:h+$uy<3]{ΝF#Wu8c`%׾pf gkb-pd9u| |4f9>c {xf}6|y}[kb0ss 93ۓ3rɡ1qڕ;kn(=-YlݴhR7}妽;/>lxWpJ@@L }描e*@@@@@@ "̏0IbB B B B B B B`k\2th#gV̌y19[Um<3q1{rbꡩ?~}u٭ͱ{g<~sk.eqq.FMepHb4<;~Ax?5 }o ZCw~|gq];o=X۟}7u[o;}?~K~T9(?C Wue= Qȟ][ T+I8C B B%a>2B B B B B B B`G?$1!!!!!!!0(_~lټk@F-kgdj#Gǚ4̝u~xkgzԝuAL,u1gu?&~c9Zޣ.;s1۟z;q2,׼u&}3G{13{c`K9ofKyU|_Ra/۞᳿8?;vھoO[wwtO{XD[ʅ~sպYgNo >Wr@@I }描e*@@@@@@ "̏0IbB B B B B B B`kQnݺr3>:n1vtíޚ=xlu~Ϛb}l[.ѩG>}XON{N{V x{l@M^=kfe#Ycywa0{3@IDATVr_cQԲ?kk^onl>qP߾[i/R ű:\rej 4㷗\~~p%z/.k>n}} #m@@"_, !!!!!!!,G/PC B B B B B B!SSSeMg^[ u(G23E*cj=LJG1L:ŵ=YuYAgb5zbԶ?uj{/>C-1.Ļ?q嚏By<,Hy{sc|?\~e]K-9>5þ7E7}{'fV]vf-[Wџ3y?f25qӻY^U>ϟ]-?ǽx.+xze_uʝt|o?C|Qr 6>fD?CeE(*@@@@@@0?vr@@@@@F`- '''˶ϩuXzaE쑨3w:s\4s?51r349kkC93&FG}wofZS͵101Uιg.C£eeH.Q;wgs1 Zދ3 LN9~h=aҙbx1=cG 1G=c߷*ң9}>W}u9 jṟFy̞vO>_g̘95F7˹Aυ+`gc,>bA!Xמvmr>+XksszZ.O==e|b]\v-[(o/}_.>ׂc=׮ Ǖ׾#3/^rQGK21ǿxKar!!!02GFwPb!#B B B B B B V@,C B B B B B (kQ~Tٲyӹԁ 1ZecZYWQ1~Q#|2S$k]1c,>ke/ h>[QoMwy|b- a|{Yv~h8L<ÅɃ,g 뺺:vj[3eLJ9ڷ=+?y{w{ygQOw1>k6q*~8 ?\ u}^[(=swjgckysS[[_ůy@|_ pPl~1 $q@@@ I !-apr!!!!!!+@ Wk!!!!!!G((̟,۶nFu7ց6c}btmZcƫMW;8~쩃٣OF=>9 l>srA783{{#^u9Q`XK10.e1/=;py рhHOxɱ8ox^ݽ{o{R_!>p9'> Z71u}ƕ;#?_R9oLJ|ҷvyw)/=|*A!!!C0H`KG@@@@@@ 0?Zd@@@@@J` ϩUuQB3#V4̹.;3{5ɞcm)=3{LJY a03kR+kǚ\b[.>CwkWhFq.{L 9=>3|kgO:9mMX3X}ZѬ=s`f~1Ν}#_^KTyֳlٺito>otM"'xB/.SS-W//}׾v}w{n+~X2C>9B B B`"2B B B B B B B`G?$1!!!!!!!05.̿2Dh[y'Qթ3f=%3uq]]= ~!rF {L?3q N۫|oveke{؏d6)y>K?haG:kf{ыۿ}s YYk\wSwuž}~ [/_׼ ~ǎe۶-˺{j.w.}A7pCٽkO/巟dK|p/(!!!#0DpH0P $a~+J#ZOLL3myL(coj.cvsgx3{&55~4ɞ0g6gbϺ_/M-s벋afumluu>qj==9̮r4r^=k.χʣƷԳ},d۽3z sY?3}S[SuYݽޛ]Wގp|{|^^Ox@0 T @C["<%(B B B B B B V@*%C B B B B B PkQ?99Ym^SMu FPXv3HXcq ?{c]ww{bZvAM4֬cN}ZnϘ1svsÌu?Oxff'=k̎&:ɱ?k΄.X~q0>jڟ8Ϳ ྭޅ~?ݡvj;'j /|s;V5GKxȇa42@@@@aXR@@@@@@ B $&B B B B B B !֕3=uXrTXVfb; k3eCF`a͙gW]ݽ&ܕjY˰?>LSC_{']| qx죆g $P᥼>f/ReXaZu퍷WgL-R=g<||ja{_b9m}?>c8cgg)퍗I?/y{}hyc6"UB B B $a0 89  a~+J#ZOMM[6Wױ÷ԡ]Fʬѻbuɜ).Vl3f~1[=gY;j95AgX_yg kO޲˵">ЋZK`#{ξ0U,tE@~ק];Ǻ?־ΜSu|f8 wj~uuo :6عk}Uj~{ۮx*`zCT;Pp{ e5ooϺ=3c]SO9@B B B c0|,S)B B B B B B !a~|O!!!!!!XɲmG_[)3Zb=a}3FLZdG̙Ē._g&^~?O9Ǩ}4w᜽\j{:7ar!s޻.{|q6y Dèhǰk`G^ C +h5sւyO?co|m sr0{7sFs7xPW|~U*nGVo (l5o#m@@"_, !!!!!!!,G/PC B B B B B B!m[SyUb>C]1bT}jmūSf9+Gػ&EXƙj'{㚼vw:۟wpy/ۚ]0xarKkq Ě__[\b6F~1w9w㴝ӻB{/-;w:͎>z}?d[ bg^^紮E]f_>/,!!!0@PE?@@@@@@ DaN)!!!!!!pXɉmsG{mߙ sƅDU+~1s Ӛ{"_qcϹ<.?ƶ:2ky_m jߙfC'.bEYc<81 [Y[==9{.+s':m?ebjHg5ɵ?ktL]~b~kwe?}'˞ُ*?;o5,[o?^'}_]rWxΫGG6!!!#0hDC B B B B B B`Da }R6B B B B B B$6U㼮@h[)Vd?'v=CqY=2qژ\\uXꡧf5Z41ƚ~dmmޏޞ?~H|[?6m ^$`.䥬Ϟ@ēpB].@ Yۿ%|G^Ox/k>rٷgSu[9?kzZ`;vL_o?V}_*xyz)ſw~s-U%zvT~1 V @Z*:,B B B B B B O J#ZOMN[7]?긱  FwL5&v6egq8k}no]Y_m43fmzۿ=CWMyɡ.{n9Fkܓr1/˄"`p1.߮luι}`2#g1~o/AXiГF{֘5GӻrÞk/Jٲus9Xַ<^j/yU9昣o|xĔD?ER"_L!!!!!!!B"̏0Z)!!!!!!pX*̯qcoQޫPΌq!*Vv꓉3.:ۃ<|"35g鯆gm1UWԟ=ÌiZsQCI5laĵ vAlZŌq^?{Ƭǽ33~zku폠#/{7}5z w]>;Kwկy٪ iٹsWwϋ^~a]rwC061% B B B`mw@@@@@@#_Vʆ@@@@@@ְ0q^SVXXMr'S{4ǬRZd73G>Zd r_=}zUj7l89 @ό0H!!!!!!!"̏0ea!!!!!!p$Xu֕{9^WǍ':fdr3QwLg|ı7.;33Yhagp7C'm [53r0jPX͠ƙ~?5F=GMf.,8x(>Է08xf0a؋Y11guoo:ęLJ9ӓ;qƎ޺oߜ=呏rrM(>maG?(ą@@@ C ah-a|r!!!!!!&a~N^@@@@@K`- '''˶ϭUu4"Wh`~u̜s欨qm=}mkSϚ쏏5K<>UӾky? 3cxc m^dľ.H-䱗3LP\]{sy00i,~mkgC >c3b3b֝I-kMν;lX[Xwl_Cz}\mהO?uuuY62U!!!&a>2B B B B B B B`G?$1!!!!!!!05,?:n1`,5br֋ ccVόZ#c朿_u9ksۿYXo/ff,]#UWZMvbF2/;sILT \c}o ZOA ?{&3{שܓ8pٿ_nfNߺ971}]vR>?]sSw?oa!!!$3aCJp@@@@@@,@/K!!!!!!!0O` g9*a+WXƬ;Ik^5qΙkm4pso\=4ArO}8'5w0s־\feOm frߟK҂8$`bZ#|rALok!6>#[w>֠kQ8{c| a]:3i?v;ʻ~GuTyO?#~pWGdK^@@R"_pg+!!!!!!!\GPC B B B B B B@kQ?55Un/_SMuav MU@Ό23g벋eߞ'[!rKL[=wm9cO }غl雈cƶ7cl6|"u=oY(k˙y!8efZdpsm-eg?jO3}O-ęP]WmA5D[D~~[ xʜkZ7u3{agn=ǺrY@@@"aXR@@@@@@ B $&B B B B B B !e۶-ԁ041菉A̯C6xi6u9L<IJw]ݙOȷ5:؇avO=\ˉ`O}s_=?q#k?b7E/z{n+O 1/ ~#]xaLل@@@,A % ya!!!!!!$a~ %=B B B B B B z֢0ݺugn=> uXa4+EPQn=FlZBm_nП13Ϛsl$on{ujHggC,f.񬙉nmu9h]KhB.k̵1x"|ַ1j8==k0gk3k3fPsig7|3uj:큩ラu$=!#Gޅ[#9gȵ?~ۃ8b>'}FXs^[|s6F"_Ր]gOoaEirv|r 7\No|ʩ<\˺ugyONLWމxsl@M5sFsւe%cwa0 CnQk?9nnGm ?Zޗg괛3O9h1G'7}Wإ]o+k_[?n9t*п<{S7ObggoG? S!!!B G3ϭ ,!!!!!!!@GPC B B B B B BO`) W\Y6nXzQE#eAaZc0Kađg sj3NNqmOĶA]|`{?=1j۟\im.=yjx8Bs \s$\5ƾg2^Lx1C.~e]K->>9}obxLo:=Z汶,?{|ajϙ[]gɷ*_I'X_۷|VoeǾw}qK^T *ԆcE?f)!!!0|2B B B B B B B`G?$1!!!!!!!0 (̟*670e{햛?]v?D'jc`OnlzcM*s_R֯?1E@}=Y8@#@#%9!!!!!!@Vʆ@@@@@@0?T_+rTѼe<ġ=vNT|p_}~r;kyukǞu}G듏g]W#f;gxQp>s` ؙcX(^X0SOqg6ysbcoOOi~CO?q'أsmw|x.+{W\n1/K_rQ}NX!0q`K@@f" 0|,S)B B B B B B !a~|N!!!!!!XUV ׽{}Sh*;vquZWό1ŗ.q0vcYNP'FAK͚m1gg-umm4 {!/b}b8=e:·ijG/cd~uڭay.̽O/ߞ^wYydYGϜsj_u8 ;۷o_TnOV)!!!!!!pXizw DA1G׌X161~&[;~٣OF=<>9CgkWhFq.kL >>׎}gϚ1 u!}^mMX3X}ZѬ9`|c7ݻ|_(o7 BlUQ'ԟB*EGf!!!#aXF?>!!!!!!0?a>' a,qa] Ek ;ꌯ??5g.<|h{q=bXc#u^#xkcuwgX;cm.s;z$H3Ij@ 8ҙh&?x ckȬk~F=Tlӛ,OƑC<~8Úul]ykL7<)-C_F~3 T \sܚr.~Q98.xq/c*@@@H 0Tr Dahd@@@@@@0ŊM~qKηp,Aҗ\nW z៾\G1fg·^0_C B B @Ehg#(5B B B B B B BKQjʲa+]5h!f/NmN}Gju6O~(d?gc":Ci/sxXyIwp\k~#fNofw_i>5E[>_"k}L.u ɱ?sOvo_0>jڟ8mP,:9kχ2buWO{;S>3'/|A7哟txo6,[<(rιO-˖ᄋo)v_֯?wܱsͱ}[L\G?ȸC B B  aHFvD?2$@@@@@@H"̏0NB B B B B B B 0Ecw'#z؞mkXOڛ+BcbA&WZ<sr؟Ģf0O?gr%2"מu9?P˚M 1z6*O.~|^gmz= PoQ샿򱿾u̱O*/|W>/;= >\xŗ^TN:9 Ύn,]9N~Iozm9Τ˚ 0D D?2#?I!!!!!!!pH Da!x@@@@@aE`) W*7CA/~{7e$a1sL95eECx5ه:h{gmП>=-(Pk=9fl\[+*`2fvnɼɜ=^bX]]/_ꪺn8Fj{>ֲ'>w?s雷lj^W~ O9umϿ༲zCرcGy{>X>͙sZ^W0<}x)!!!#0hsD?C B B B B B B0?CJÐROMMM_^_ Z󦑨v1sɌEUhgkcV{wNOh>3Ǩ˜ft'^Ήgw1b4sd|$/ŨB'0s`G^ gk☓yy̳~@c|mz>'e?A-_VgK_rI9ܧe|UkgϾrW̙^S?FA0K!!!c a Δ0|,S)B B B B B B !a~|N!!!!!!X+V7mz7#GE$>jCIV!B!Ul>ꕉ3O!.ko Ϙ>{>s=ٷn_{kxW\L6z4vу 0G uŁZXp!ql/F,3X.7ض`MrF@IDAT[9Yn{>u9gH-ňӈ<|3?ߘmWgc}]~x'<ʅ_^\!NXp= sWk_9ky׮|ÜK0K!!!c a Δ0|,S)B B B B B B !a~|N!!!!!!Xߘ@}1TXA9Vo<O%ugTLf{[mUw~`ӟxsm{3KQY{K]bfy'6 r\k̽f˺90sc,~b\~ 1;Zϗ}C=:^j[= Ή#ezU{|[{\Z_p^Y̕_Y㮹+˓|ҜF!0Ey@@D?&LcJ!!!!!!!0 #sROM(6nxy|>QGFCdud`scTpO+'5be=f]̍g1֣NG5u9XncH2~`ȣuٟlމs$8X{P _8`H֬Όỏ3`=Fs1'ڎ'7rʻzmeY|F%s}jYL46z_O3? ^0~}"od!!!0& d-aXR@@@@@@ C $&B B B B B B !4SUz볣>1dh5 eGn㫻&#QaϳcMmtΞWk͞zmFjXu7ÞԦ?~ki7?fr?>Z=N^y(' !ibugn#~ާNgm쏿G>1== ۳S===sty{Qv?Y1C*^x~yqN:aU>YV~GF!0Ey@@D?&LcJ!!!!!!!0 #sR毜*7{}{fWVT̈?;:duTgP=ӻ=2Xc1ugrcĈ&9Xo{Z6anGjڇ:b][?G 3kk+j,A\fN-F}o?sĚc~Kp&瞅z艰;X>>̷Oa֫۟׿(^8ʳrK.)Բl^\O]yxM9K^rќ1/,H!!!"aHF?>!!!!!!0?>) &WY !#F`˼Y+gXSnabGM>3|~;/mszCGq{ԟYv8[]aB?!A%w^u/ ۚh?~Qx0ug͜\œG?1|=;؟Øo0)goy>Q3QnIXHm,?Y|5f-Fqh<qΈ9P0}o=Ga>HFgn~vۋ<}1ZzsN=yaeGÃ#Ϻ[~h^;?序ϿO_'{o_iO{J9s}Z9U>#/(ycKB@@"Ґ! *a!!!!!!!0&G?Rʄ@@@@@@@Yi׻>9B:͌VotE坜K'~8 鏶6=GE|۟?V_sr1bPKO֞uu<yaZ^Ț^}0/¹g1 s o}bE ^\35sh30C5W׬?8_ڼv=Q1'7~|~ 3O#W=lƷm(k[vۖrYgoU>>ˋ0a!!! D?7aXR@@@@@@ C $&B B B B B B !QA v jP.=c FsC;eWW?{bp?yhӏ{a=g'~0go FrьCFMlm~\xybZ#|jYv ?9֬xipn,bYٟ9qĘoGnzi`krz_9cӞ>k}(W_>Y痟}Oǰ[zFŢ71)kOlu@@'a^pcJ!!!!!!!0 #sR\lܰa]y>UVΈOm9m,Nb0F4ʈsnߚ԰>Đ~;gLv1Y=%8z6;æ?F_b7|3Ա"<3.sퟺc@g|y0cϚ=O,~ z~B,k409֪ks/?ˈQX >wLmzG9˓t!9mw7-=1{?r%/:$(/S"}foG?*9 D?'yoD?odI0?}!!!!!! (̟ZlڴoGf]d<>MbbSXσu:ukgd\ Q;Aq5'|P֨ݽYc=o;_-6ϴYr9#Bri#+47a sG=[gF>7ϳZzI?>G1R<#1?x7=+O>UYezU{`_x}zYsܚrکg~3zojZڕ/kOyX{ Sa0!!!0_ϗ&;!!!!!!!p(Da\f@@@@@I`) /_^rƗ7zO}bw#QE9V1ꖩO\LJGf=sPgΨc#o_cocN]swW,bf>2ư-rOV+n'̵͚1v;/gN?L1>{frXSuv1˞=39X]n<}}~gow|~γʫ5y˯|˛~g\p ŘA:=B B B#aycJ!!!!!!!0 #sQzyNnٟ4sPy[.s+;F288kAzX^j[Ȃ|@k;gԬm ٟXȡ.9#9gOk8Qo?_#_u޵+L=[nWܿ5ȟy?~O:^YO|,u|cbN8D?aXR@@@@@@ C $&B B B B B B !V,֯{}櫑 :c*byaıF<˨LJXʧ&1":G~zǚ]g=beraYs6F{0z:՟jN{`eg ǚG Ä[U`ě#xrQQvuϜ=}@ ρ9Ї9`4N;p>S׳Yo޲{ٚ|?,g?/:˟~E= T*o~3y,ߡ\pj@@K 2B B B B B B B`G?$1!!!!!!!0 ( r F'nM0~uİǃ&#o屖>kHW}PQ4u!{&x8}Xc$~̭q05qQZ}aܟ#EaBBkp/xa/gsg6sۯ~o7Szx=J%PB B B F%a̋0@&@@@@@@$a~!!!!!!(̟ZlڴeMnCQ=1ZiFjcϧN9#dkƨnǺ=s&ko,#]Q/M=̉#7,Sm?69F I}.Ú11ּH.O1 !u1NxAs1'|eưQeH-服=Пo?o7e.6[^n+9~,ߡ\t/:C8C B B%a^}cJ!!!!!!!0 #sR\lܰzQ)Fc>=q6E<~jb#ja֭.Z<䫃fM=Yc8Gk{ڇ==G,c[h3N9#d^j!E<r>c bs0X}:ķk4s٧O}ͱ|2b̉?>猃XjC eg ϸo=P_AK}(G Coˌ0ЃN8 D?aXR@@@@@@ C $&B B B B B B !SSSeY^Xp+@WX\]k0b]c4xtgO6w2ٺƨM}1]eϹi {<0rxwRmk[G3 0Ϟa\yqc`mOۛx폯ͱ?u߳w׮=#Kq\«o2}޽&U~߾U@fͱo_=sWo< ՎoG;>`Y@@D?6%L@9IL@@@@@@ C`) g1_a>X­H52Ụ;6ν1WɡV'eQ=0xzQϚ쩉?kjC-G{?w3;wn[]Q\s!|31 Mu`Vֵg+o'=΁{gm]c{R >Ɯj_FGUY[qծ]E_-za~w]V1zLa0t @sFFX#_(!!!!!!!XUV ]Q>ߩZj_n֪! 8ry/E 0YbN=*'=b[SݝY} Q|ڻ&#<#~`\33ޑLmsޣsj_=I}_|CٷOl\N8E;/Dh(B B 'mG?>!!!!!!0?a>' a,EaTٴq=;`}:"OEY1:#ƞq6Y-3{ad:R\uYOkI sQ7<=wƚu<9i۟\g֣F۫.gX)j`Pۨxx<^9q˚!q>sӞ|;sٷk5f F }ў8D}ݶyI;S>Ǜ{y[~E;Pa0xQ@@N"ێ0|,S)B B B B B B !a~|N!!!!!!XՇoG̣uuw:1&6G1R\;>0Dm [Xk35ͧ>yW;MVm}yOZ:X۟\m\/`a偭k_}þ@`.{§Ŭfm?}oܺ>ֶ̍?uژ1<>U3&֭w7-L'^ [yֳh>/4 É@{描e*@@@@@@0"̏0IbB B B B B B B`K\ge7+rG+ά)۽ޙc~[?Ƨ}<ׇ֙ڮtV]mmb }jяcm#{gg!:^uf6-塨^ #=(<,.?Q]i2/Db{;)'؟o§?g'gϚ=_9=/#{#7cs-[ݻ#Mʷ|eDj \ŕv@@aF 2B B B B B B B`G?$1!!!!!!!0 (_bE9{ӆQQpY s 1Ѭy蒩E>gUǯN:cX2bfM/ov5hzcY8S?uڣNoisw1؟x3㙘cO?kbsoig.#y<ɱom޷ɲ/=B9唵z^R1sXK=_\yvrZdm9Ɲu𛘓hяYhC>_x eG ZQ:ꨲfͱeusVN=픅\Pn8az2׍Ewoދc^S֞8"%N 2B B B B B B B`G?$1!!!!!!!0 (_|y9WQy0ħ1uVfo 11#n1cnY?֞˹zhjn{Y>g1< 'DmF2 <0~|9常1b99Ǐ wŋ${gmz= PkQO˟??zk_]9Rtsv @sFFX#_(!!!!!!!X+ ;0]1zu VnYq<c~uͯ}4yYx^CM8Wm~[|φ}'^7x?gh )"HjxA ?s/h_wu :ƋUh0GN{g\z˜xダ`]O.=̬1Xߑ9}k`~_FG}nt7崙Y@@"0|,S)B B B B B B !a~|N!!!!!!XioσQ1p֘e%cݱk,+Wݜy891xjbcCM-gČ#Y>~3zbٷ?̃<%g"<>#F@3+un#<|P?}Zȃg=7sOcG6O_oO 7~]awo"G'anX8#_(B B B B B B BG`) WXQ޴z7/F$>ꦫi!B1Sl ?e|cXG f=alҧ> Ax&|F<ym6Vm9mMc= sRZ}Y O{1bzcd>/O?;#q~ۼaN zd~jމYYYٛ$76u۵wB&ۮʗaú?dxu/*\WnG? S!!!B G3ϭ ,!!!!!!!@GPC B B B B B BO` ^9Ontˬ3zc訍G sjkk93r8W3M5gNgM|mjY7eYC68F2<%Z?s13?%2`3oyX=|<~X1c9^}cOeqM.f?F7柾ez5{$ॗVy?s'-,!!!$a[cJ!!!!!!!0 #sROM(6nrTh5d3~ku_[G!QV\nc?s4\czyo ں6o=S{Wk#s+im==/˚9Ï 9512{}QĸGsCmzWhϞgqglv枵۵ric?k3&9̇#?,^u.!!N !0|,S)B B B B B B !a~|N!!!!!!X*_z6#Km)o,#erAsv=Y1tMf'ΚjgMr;߮џuXneWsa0 fm0fu[hyxe=Y _sO0][8״ C|o+>!~Xc>{m-_y5COmgl<}}"!%6 A1^E!!K@{描e*@@@@@@0CNu,B B B B B B Bp!lٲf͚8 >r'wQ@z|hlTٸqP}+G0OM4kLgNkj!H5[5V٬IhkW԰Gk5ѿd`Ϙnc_(PRV{lc$ag/8|d=Guw糯q1`7ov͞=ozcAo̟WC@@#a^icJ!!!!!!!0 zg 8,aTo̿볳>hFʃ1~}uڏgN QnuwIFr8]3jY[ݵ5H~{6ލ}gkž >k?(P`m]}\L-XkϞ 5gY\b_1Ș_:?c[g͜sƖ魿g-cDa$%B B .#T a,0ի9JbB B B B B B B oso̟濬ߘPXt+oĊ۫Osό̵`|CsZcGgk1b9iE3͚9f3i>9<~|{փ40o|1yy'6 MH{8Ysİdz>^Z[5ǾFk0=أ#ֵVg<&5'{1OkOڟwԇoW胨C1b41gdGm2d wġVW](KKkj1o#:뿭C.#c1F.i\i臦ga6?9㷷u97Ƶw!ìӮXbH}}m⏨/|Z}۬#)~ƑEB7¹|O87A!!!KU ~ap㔨E2uB B B B B B B I` a>gسg=?YvW}#,Gޚ5bF|ꌉјþvlk0Wxj07#4yE{߃3S;R3Ȋ8mdzl>r" x œ9#V1^Q# `m]|@skc.\z8>?9{uizV[nu40=kO}wT}N*:M^ڡa%B B |"?F|~vùx[N/.t Iܹ|,<@ٵkWHyC!!!!!!GqDYfM9ի}z@4u0?YgAƺN; 1:b M1k 1ߜ}FX[G}2>7#o0ε=Ga0}̩#ma΃~#F.P؊벿'F0=1:o}x~kS85f}֞?qc=ɳ?~ca;OͿ?cNB݋=xi?/ C B B` hȷwgao?Q%0B B B B B B B`Xa~;}Όu-8q9QG~t׿Gn@@@@@,2N8~O" B%0C|o}^]W볳> sh14È!ٳzekGnj^mi6u9Y>>kO{i_M'z1ck<~92ȹQ7,:#` ˶Ή.|hm| olÜ:vNèb08<>'޺vڳ#!Ǜ@zizu#kbݛ|m\֮=qE!!!Kߖs"0+B B B B B B`R (_Ȅt_o} x>=%߲eKmx(Kz˦M&L9LCﶏ03|rz{7#A50#F@=G38Lq<>GXzhnj7xF]`4F5 z'jx>|aFuڏ'`N #g&|g?{t/qۀ\=c4?_lt2B B 0/동-яPLQa?^tnj/RaR}W@@@@@@o>odw{>Dt1cz魙w 9z1<034c@@@@@L$N:viy**ADs괋ï.}jHMj`7׻fuaqĨnO ~jƐ{5zWd\f\e8y֭X KzA!Hg+p'|e|P>'ޗc|0,X׃'=17(g[#0{[?`=`Z`&uf!!{ッ\y_@wF:~䧏ޜ)vaa1%C B B B B B Bq!0'ƯGPXϫ+ƥG@IDATάK9{3:%߹sg[f!!!!!LOzYz0G E`>_~'~=.,7#wFx3FAgP1uvxiƇX:=h>9p$v?ug5{wFg/#>koh~{&j3#Yy \ 1 =rx3Rk\a>~Xݜ5=9S۟<ƳQ#;[?+/?zOGؤOësDrUGj*ޏ0Rv!!K'KYR[WV~H~K9Xܗn!!!!!!!p [ݿN^͙: Az.20{)_C B B B B B`b |SO`!:A.y(1Ŋkj냾q0{~[Əu&JG,zf`ՇNٺY3#5cM|`mFfOYd^t&}qBRÅ2ƺ> zO]iϞ?skR5srY۟Ě z/}{vyGg+^~l&@:Rz/!WޟנNc'$!!!X|E6?G/.w?Sz|18n[е0ɧ_@@@@@J +Ɓb /b!!!!!!08r9LAsX"u w;˗_}c?-uTãQvnx U|1bhwGM3>{0'ݣV̺70iϧf[=e_ۿNgoy0zl@M5sF/꺍ϥ}9uC|FM[EY@@@,u~ye8Ǚ_ͺ=z?t~ nIh/ŷ;@@@@@@L20FE6w/9{Nxg&M!!!!!x}/CC`P'sۡ#߻wﮋŸſk߇vZ;c5Ĉ?3%*bӧƙ5pZ:gİyc?{~b.y6L̬o_sc1Ǽgo5`F .ÁXŬ\!9:`M 1"V#zAL[ƳgYFnD:zǾ:yl&@.fnZo⌽w1n!!!px804<u?w~z?{t?4?_6#oe!!!!!!!0f78|; tz1:vٟGGI@@@@]nYwCرR!Ѥ@6zI)JF Wp4޴ mrQhAP"z\@Hi;cy<{zzI֞?fY{v"*tUt1?"P;0q]|>淽[~U?ݮyc s Cn{=Aw}g{&$(isY}Juӆ}ՆM)!|qAW[nWbOX>4It;WKс'ްU}e G?-9eb}e@"$@"$@"$+CM~'/BUM=HD HD H{67n8y;y/K~O~_hBnbQSgâ%̱z)k.yg:Pz^U{$m/3{~Z=tX֒:6SzF4ޗ‱u>#m4demJre\urA؛m}9]/oE^O|h |x>$>}C/xGk?C7n<X5f蕍@9We= ~? s98D HD5̓-=$Abs#_r–9e@"$@"$@"$@"p~0w_}o2z|zCǮko_ oO~'? D HD HD H<'o{Kk#^_[?_=3os3ÜEα.WF3/::[zH_9=>V.Q=I>1Vǥ.v[Ǟ }1K>zW"AAP޴ yhon^CB ݥԟ\ RWC17ts0t|JD H^ `~t8F:1PPQ|#@s#|2HD HD HD HF>p>O^X§??9ݡ@"$@"$@"گړ~eܿg7ou/?n=O6gJBb{θU;a%g=҂~!'mah'>m~21e`<_4C;0;O;mݶv;hm\U|쩋O\|Ϫ\[n_>cpo_}#ɵ4Nڱv<{S ~SF"$@"ԧ>2&`>9W}[ F^o̘3D HD HD HD|>_u޲5:t0'>}}[ %@"$@"$@"pG-oy{Z"pGns=7Z>.{蜣'bx|.آ֥.:϶ŧv;Z>T po+<{ت۪Ħ*\'8|a:um0EN09` Z}@@U> ʫ/6\,1~lL|eSDZXڇ*M]?{饗^whR@9tuVP,oCя7^R/s05D HD5O}-Z_̿#8dCc#U5a3r05(e@"$@"$@"$]~o|]-t*}g3HD HD H{,__qw;k*/9C?C?s?3vqك┞_XDWCѦ//rLW])盵S;|K\|ضVͤcO~X+:m}.}PN5ȁ^zX9`inFիPPkA/2GG߭~gŀaSIG`z/GjFG]ڠG]bv؏o/rWA8D` byygOdb4D H>`~ {oo$m"+N9Zb/v*/Jo\$@"$@"$@"@?L;F|>hpzKwaov2|K~h?~ ID HD HD?R~/t"?GON~Z3z]߀/J~j rJתY|K_8=gGOb㧾v;mςWy^:vQ/kwv9(:-<*Ѷ0hO}xڱVc?tW6z:6P >\b#>׿??z&p: khT1jw%mcE{~)OE6D HDO}zK8_@2HHI SZ/r0ЄD HD HD HDz"?ρze}wޮ2T%6o[Us0?SO=u/|^NSKD HD HD.E=C=t7;q]BL"\68|77oPs8g9Wsf/_KGBZ)a>æֵ%:.%g?W$.k)>л4dcL]EsA=}RBGk%Pf"Ӷb~RBp*ؖ2GyOԿw/~K/܅vqz54Dq8(;?^ӱM+HD x-D|aC R]{q!G=1)?D HD HD HD"p`p}4v:4k1Z"$@"$@"$@"$GU݃o~s=ֽgw]=zT!|3mPrA_Տ'G(]zYkYq LB2H_k؉ENJgimʾ!gp.c7rцt3Pg]. _l1cǁ ;qZ>^ŷ\\Jt:%c>??vuF!t?  *yo&G'G1$@"$|zpc[ǠBK=.!#j0/Ng8f_}7|<̌-HD HD HD g"pK'<_D;8hhŨϒtq߇"D HD HD HD 8z.{0߿߾u|/[>:f87bNxp^C!lsJ tX{y}Q%lk=/guaIqW>A.^CS= ~>m-|p);,9A=|m)уFKц6rnM'z }spgSw؈+8Gww|wx?7ѷPw?A_a[}:Gh#{Vi'@"$}O=쿘n$jfMWGCd_pkt9׌*HD HD HDލ9-c]c|_8:C`;cȕ ?tV"$@"$@"$@"$Ge?}?|O؏Oǟlivqvsϔ%9Tq">=(<ݪ{96 Q %$><_ G\k }.)~!?* D8bԾU?K*ՎQ[ ֏BAszXTx{#><.|%D[UocO[|  LMqe~䐶|b!ƍVG}|oy߸У/̡WR˦:n9{0tŦ3<,O5D HD5O~pTn du-Kiek*E& 2HD HD HD x"?߾_m]c_;zsm|GێO̯H=HD HD HD H/ss/ӿ ?gy?.sK:m>pm CL3m"=! d>=>+%roAY=×lptNᗫ5@!ak0_m0!҇AN^~G.^CKV턾zԭ p$~׎v=7=}7}7} o2L9ń07i?TBn{5r Kk?D HDϴ?~YAnvR;??_SYcS郲!d烑ct`)ӻkW|~=%G[|SC3~M][|jn[AkK)osN/;I)ρׁ9`|pj@ > t"8VGN&6QIこ[/ж6< e?^zitv7 j jݨ_loui? qR'V6KE|+|A޴ׇg)=yj>2 #- ZC?J޿]b{q+OC/yG$sO=污#N=j$u=Ky_)v|<,Эx˛}]_s*wwz_%MO>dsA|C8?|c>+=xr~ay\=gj|Gs/Gcv]rt_K*x[7 /> ȕ'%d(]!_? ޑ?y8e@=o_ɿ~gùu%W/ _ɿxx&;-}Nԭ7o>_~s~|>}G>駟n[G:%8ʕ՛/O_} %:sQ׎:?OcC^]V{uqq)%QTB>Ēoo)Ѧ}eWq}ҷoSq7f|볒oYyU{cg;%ƩG7ϊe֟?uGV\ɿvKت'2fɿ%@Of1G$N;2?{ sGz_3Vy5?gfg^lvGkCku_1է[G)_ qe%>luS~\GV5C)>c_RqG|Z\CGG|W +W[x!xC2dEfi>["0TѱQeu`&U;!7>xֶ'8dO|$8+E|kXv̿#3.pec~3#W.$߯_9c$?#?||=1쿳B?!_l9b3B^u/~ܚ6ځW6v'dU|՞~v>md>qooYmW}[IqRVW}؊AKSutY't$t`ÇG!Ǟ8=SV_| )|`_?B)c@{#1/m7nK)>uvX_LJNN;~t oL(ߖ:6uV|_+ĥ7cbl;= yB; cBܚ'/ Yg9$ǜg8sdcH|+WCI> Ρ<'?:ә#g^̧"si?/3#s(1J9<˜P8$H %tAz^l~;U\} 1aZT*>U?>rH:SV !=m*~j*]o-ũ_ST$h1vЊ}@f.|_]c8W|wwҿ>T{mlsSC֛]o<}_R|!G>8Z~ħt<>C$)Kll#GF1U|tkѯvq>A۫YǏz A|Aɧ.>u8]'oGG[|+>2W|t·P‡V>)??<]ݩ޿d9{99%o_ɿ#&$J oΛdq쿲ruN+쿲2+쿲;G^`l||&q)ߟ\Cy3|'߱{C?<]ŇF]C?U   }J!jK]CZcRV|un[G||J/d+}eu]HډؠO=ꌉRF]|tCO[`a'V|!?ZCFƂ gW%:LEiëاl՛f@V՛AWN Ul Vȑ8^tӦT:OSBE6_=ąGՃ):rHq֞-6W?/U1ZV;R9tHWC񲿖Os5G{go_̿Ygf˚%H˒"׌ye䟼+ɿެu{Gd)|;ye{|"yU䟼u=Iɿ'NZP׋?paG^,+xeLj׋Lygƶ |OʩW|7]6%rd߶rKRG;zuħ~?rdCR_=x!O}ʊ_,tC_|\WUDYG)fz?A ZklV|cd.lA|Ab'"dska+ u*C RJʪzճTTB ⣯?DS*s݊mԷv[F_C_OI|gT})]P׆R|[$< ~c3=y ۩xA7b?s-;#5+guf<9?c3xnSuṢ'O̿3s5Y^dρk*GsԺe<#3W7Oɵ!J]skX2o_Y+Kds 9|dQsnZf3<{e)̿y$̿#*uέucU̿U}V}ud\ncwmC ,;t [v<ȷ];N]݊o \uG&>Z-6u.QoN :E|ki?ԁE7^*۲;GgJCtNYz?:%2/k!d~y[cԯv[M}^./Ѫ=[>ЃǏ@8 d _Iȱ塳+rJ.hKw;}gYG=|8~ l<グヶ2;$R#?[WcS_y'#.yF?߈K̿c:k?ܧ$g/1/f5\x7E#f3C?Ü'a9k<8d5쿲{ 8dws_A>Y:Qg}ʡggu>?K=|jǟ߰F|}aoccGC>~bSb{s*o>f*_?v_\ |D?XG>xMV6l}!슏?W2@_?"ƾt,Cێ` JiSc(eG`O6֞}}$>mk){)!F|ڐe-a5~b$hWq- :u_[:^U1/}TW?І,sL\llIB9O_N/>%ko|xF!G>Cyƻ/D_f9?lYFfgo$Sj򯲮$Lڙ;w?c_7k +?yW;ssecM5\_3!!aJG%ߟ=U1ǜw>Y]>x%oLG_\xէSGOlU6.Fn}חvWڢ<Nj +>/mOle_ЭA;H|S~_m-ŤTU.R:&!2x&/`g}1 P^ :Ȱl~C~i _[v!tW|.RJ9 ~W ysׇU{7mlWG_-|:u(%tC*ruO냱`WS1jjk];uKᣧsA/&|UNt#Tk[r<COz+BS9fM_x 62.56wA.bK]}vOm#ݥ 'W%|08J hef]Ёe9M}7%d_ | }#kg?+oz+>|Տ8[]k;s ||>[>p?4A*2u1'_3x@n@?|_ɿ%J5$ kYRɿې\/e_c~4{5τg~/|g߱fGe9C~fw}s'W`;?Kۯu'lc'|![Sc[>h3~byU?ȰE|c't[7vån<&̺|~QV|t>CS?Q窴b G;1 3n8bQǏT.Ɛ2T|yc㘐Y_|H;eU:z2H?q_MV˵U:?ߘCoEƳQKd= 򝠄GĻ%H#{<?x6zau$o_ ϋP?$`vc휣"+GɿΉHxd1ෝɿH^a?&LƐ6uy?u9 {k#WiHjp?YƳ}EV~_u1p_BƥcDGv+>rmчg+q_u؊oߪ/~XrHʵok ȏB\~s`!WǛLQB\? .7fc+yC|l+>A9F|T6|)wƫ =1Fѫ>g xͶT}Ժ6uO|㤔g)'OoCAW61?sK?o_~08w^t;bc>CYYwk#0𛂹Yg"oV,$Hckh; ב9YD%I373fo-v9Gvo3J95½{_s޸ֲA52Wy/tmSBKy*>T9zgS_؏VPryo[(W>?V SsC]RN )ml(z\caLNKF=t6W^pv,C:Hr՞vk}p si*>ӎL{SV?W{Ir}U :FmJH`: .M)ɷhO[6Qي?q,j'؈8w'P<y2d3r~ƺZs#?ƆwF>D$wdGd{,DgSA;cGό?7"?3?3?>nˑ9fODw?}üE~sE$l}2YGg҆(:|hG<}Ѧώ6~Ti#ן≯:#>2t |ڦ%W_񛸓|cNwIWcja\]@΅ ѫ>D}χM}_#Г.r)iK`3E?C_ŧD!QwS{K1h!|T__h+C!q~v'%d[;ӮU;/>LxO?.xͬS<'o֟#H+ȕ<)쿲;%ߟ/ƺ-6|||7ւ5d @IDAT|G2{||7|r%z5|Os Q?q`g>]tL㓫>oXo[&|!@R}?OY7v'WL}QJb_0Cg_v,JBbSwh>}}d+XwKtObï]cwB_4vOˎp00Luk!or:|.1?t!+~YP"מvf1~ŷG]H|^x؈.?^+~knbƇX5'x O?\9>V؁;}-P_/e<]|2d3抬3$c 6L3gOr-B_gfZw 0օ%_x7%ߟfoood\p}&띾(__6C+7Vr0m#Y$mW|t]၁/Gmڪߊ 69ȕ/Kd1}S?H|ˣ\6k{lקrt=`~se@ aڋw}di;~ď}O|}RfGo?2RŀR6EOLk|@>㗯? V)k§/g?_޿?Pv(\/y;ޙɿ9OG_eW_w#Ytc/wI̓>_e̙//̉S>0ȶD Ah/sZܳ>wсWuů9y;SV_³?c_ha%mHߌc6!ѫE+c6vl#:z`kUvʰhgyvܔ;_C?88KCBnsՆF?ѧ.f>HȹI!A[jߛ}t 9~H_վۊo*>`FBOCꩋY؈d3ȉU?<~8Cj[}:nJH_otUd&mLZV_N!OY:~m>Q+(o !_B1tF ]0S+S}uk]}:~!u/JR:|3GQw:Ӈ}7P? p]Ġ0h4XR|dSCb SO|n+Cх/xG{t|V[dY ] -|eaopoëNL#ԏ2%:}ږ_C/>,>|.5'/DVnnZ·B ;sdl$H#G&khVYy_3.?gsR|J?&FϑO,JuU~_ɿ1}O;w'o߬Y\o0cxgPBΫ̸$Ha{Re;?/:Ywb]kXt_ ?u}Ka٦I}OVՃo~K/z6c\?\ [ŵκwA_uo?_!ү|۔>ʪ Ei8驾Ht6m!|P42~[gPQG=tӮA< ŧDW||ë}n=ڈ~ǟc^җWO'xebG~}:ǸGDZo) !ӏuT/t+>G[#;) ~/_9g(Z#x1}x?9$N;w߬P3e1 ~f5Ig9[<#g˹#?y.|6;쿳;o2| 70g??YypC»cw y_\l\gSCY|iSM:my=b}Oxȴ2_ ruǧmeaï>зC.>6~'&m㧎 L|j`E\LLTVFE{ "4U.Ы?V| _{OWV{sűD>W{XhS/C#ӾC.._"8߲]ik XUcӏcj@i׾Q}U!/ RxB5_</_W./_޿ɿ+ϻ+W_ɿ%J+W?&L3g?Ӄ<9^s_N#d U;ѮAv=I],TWua+>uo߰$>~q{x;_>^,?ǃ~ŷb|S;k>r&}BǾb4N^ Rm]R4}6x <|>muk7\WXцI[pZW.胒K|VlO1p:rj'|W|c9"fŇ|t C_= _ -6ܯ5=1׺|We<yySƼ7/se?3Ϳd#_ɿ|Z䟗;w5ɿgW_F_f=߇쿳#.pAyf:TuϿr1W|?ѕzO`PR8(է.>}jk7*>!uBz;~X{uO]|}>>z2.Hm㬼?gO->ե.&O⏎ȵD˶&:҆ԡ.}rOHŷDأ5ǯ.ǯq%~mj'\uLJ.u0B]790c%}XT _B`QV>usS>| 8I>ujڊoC;WeKL^Je?7J}CG )Qu~7!"GJB؀~G(IK|#Mۍu\^7; ($@:UC-y֛x_|k/cPǗ>$O9vѡԡ'2vŴngR"ӦE⫣_p!!_!?85M|+>uR'ecFvXw/Sѫ+yU|\>C1/|2u9'|F2zkYѦcxo?l6r1)iC:dža.^0NߪݦEXU;/|U|x?6zŧx[u/%Q'}rVH[DGZAv` >x E?Bv`C-|m] qMo8 j'z>`裻Ç:ѓWd,xgV|lƟ61ж.B&&zK&ox U|1u^7c'C^dw<?y'.@?ǜSX|$HcYF 9g"^+9%Lj G>?\c G(W/(.$yvoflZ͜* mޑ쿲ykb-xl|S|ީ;6|t(1/n.F=xK] ۅ |%[|"2SBG^E}k]|8~x$_ߴ_ǗTk,U؊ת%;u\ %2)uJl <6}[ >N%7f'or.~)!.Hd6%/5ѩ>˦|b#>Q:~tσ:~l*>؇_or_1cgizť/b!3V(?uڱ_cgg)1<g?y6d9&gU̿d7GIs$Jźs|'ɿy4߿G~Ѧ|ŀ1?3?g;||aO#̍~S 6\3i#~#%LxCo s?=χ#p!)_K*RԕW|;+o+; >z؟:S$eW, u.t)V7<ڔ_~c!&mpԡP3ăk(!P/(kN 6lUOe]~8抏cJ~:U_t῾]jqk9 L|0g5K]|cAr}F㯶 \bP"s_yůݸ[`<~/_柹d%!$Hw_dGd᷸쿲+?6]?Gg[;쿳v}dH݂(G _#[xwe?y+{|B<^M7}<O:si^t5q~ק&nV;?Ϲz$\|h LV|d!ΜRGoW3. _>ftͿwfJR7tA!<!Y#P_a\+Ӯحz3i "}TǺv6qh}C}J8S_я>ŷHڊ ^ŧ>rv2q-Wɻ*c[!g}$=?}3wù3;x);0Opesg9wfGɿ&yÚGf1?G9sH=ɿ'N=c};f3wp! c7I DZ]*!|:6>ύթv_pcW;=$O[lц8:|ڭ~J%C؉eRB#w+oKُ:8)/2/Թjӎ~JgK@ZG7hCfC/79eķ5WU7S><[_7bk+>2Hlчw]V|Y`ȍ}Wފ-r__$>u0~_YC[y/-1?wu2ȱf$1 ɿ枍2?2w)E߬dG_"0Ϝ!wksTWl7?N쿲+쿳{5ו<'.\P'f.D9%:~dSײ6{X+u|.9cХϐWwmSrO)t TO;?:;nem\QO>0t/YcJ9z+>|%gL[RO>[z%|'?$>%v:ek~gڭD]m7/c1V2{>yeS:zֿwdfGlʿd'\SXԜ֓g%G"XC7ɿ1`=L;̩|OjY?g$J5${^c Q\5֞ Ȱ>>oRj'q-?>~7W|xc@W|:uE9>(rhńqM?ơOGGuޜy28C{9AS?6"zWtVe mSo@{cn7&=t[Å+?ǯ OR\q#G%NJkxk|G7m6%!|ǃ.t tLwZ'o֟'O߬$H3g $N;#??6%D%N;7sC?Ǻ(n$H1s_c:#wOE_ݸ>S5&VokT 1=_㍎7}=,iS僡1cG]_=jig8?!6 Z5 < }!kG_[C+>|':_]쾬]`;$>mRV| =H"?Y_l-|c)8;jWێUѫϟ>>V|t cᣋ[i_'>?a/\33\7O߬?%L3'ɿSdGew?C?C?C?K?[?c?>^ WWxy栳9tP[W=Oʺ]Cvŧ`-~Ү62.H^mS1u LJk< rķoȴq}mV|lGʑlՎ.|q֑Ƞ-l¯LGWJӆTx+[|d 2Xd٪{tկӮ_D_.&z'UyCY]H[ <~F _=Χ/o޿yfnkk͜i#Γ3O?/;zg~_p %NYwCW2v3o̿YfuMp|6k(qJg"2KLrpnM;w3rtL9c39Ig?jj[Ve~J(!?~ѓ zGW mO9R[qhˣ!W6!>znġM]k⋁]X8*:~UW|r!c[O];J>$NϐX`7ȎNv莛C};k~yӐi/o$ro^6<$ГGݾ(SO]|JT7@=uH9۵׷r>|qagI?kO|u闒+7fhO 9_ Ǐrd[[HYU{%} $_ Mouuu~]rQ*g'o_sf׏1;!o_ɿԝ?CU+g~$LsHGOd̟G_~~dw;쿳!.g埬9]矺x"E^㓺mѾ#6ԫx{V1@__u6ڣOtKȑQri_/mo}ϥ=uH\c+?Z_s9~Bt:I C&|}FyhsS)yO[ׇ@W|1||(ŞK| >XC|Je_[|d늏_ǿƁcӪQb ŷu 8 x0?Ƞ_(ϊÖ0,O޿?g?\GX$:yy.eߙs_ɿCyH̋ɿ?- =FcpAW_~`sΡă@ɿdBp#/V1'd1bcngRfGc𽠕1'cM;d[?kvVW~9C?ԥ䲿]/._;|x2cŇ/ڡcȭ7|qCuTxoSVRxsVXo?|eq8nr$vc@s( "|emG}n&~Ăx\v;U⣳⣻ëO'60 >|r~u#ť?]V}~R7f)5E%eŇg[z9 [{bg-+J sH}_|O2d3:_d% %b2t]M;?j>{ם'#?]3ϾDcOf^W_eU:_:OdGd1:_fNKJL/ɿ'N]ד_]ߪO>m7??W{=tQх_ǥyM?D@ $&5m lio| SW,px0!1k?ŵ ~cW}t࡯ ˶#e7N }Q/|qԭe|lk6~@c6M8_Ã׺"խe<#&yƜ%2fs5N J-fqY$?O捬s{\#GrԜ}Wj#ψyxOd#ZwD;-uKoU?v;Sζ7֊AW]2gWùf9ݵ2mYf~x87/@Җp>V͝uu5o3^Y&HGwʴf/_]A8t0g<ć2cJ1):Q5͒:=|yZhCk9ƕ^(3yʐw^G[|c2:l;Ky8Iܭz=?6<ć1>wx`>iŧ?k~P"6uh31:'\ϪL/w_[8rO <>9>?BW|O8u?}zGz[QUo]~I.,Vw7+'ʿʿ/g___>/??zގ{@7Ox=}4_nvcyudg52c>C?4K82w V8ss(Y'sţ#sY|o]D&r7?_񷮗N9L?H*u2|̅hx?h@nRŀ:m W1Jf]^yΥ>8o;%r&<)Ρ(W|4;*2Du'ED#@Zx wcU@{vFKLJ~VUbs;ç9PZuOwzn;e?A G>sƜn_ѿw;y???-*1׬{V)***,.w˿?sP]m\]P3uϊ/ʿ˿ߜg~P}v>øgYP1?%'*3OYSw"Wc1K>\Ч,ݰʡ|*~xTOʗʛgdN@Sw_^q.ȥ=5_Cr>vƔ~>[EOuչkxY3<rv.cyw_?4SΊOsg]qn8/P{WvYÈuz'%k7kQQeUG}'z1d^YO,#ʿY9ʿʿʿQ;?߁^ʿ\s埻,..>b#n($*,.1#~>sWUd@kSY1_z?Rٞ\@\r-cΣMLWspɋ|hq2Ɵ;/|R 8s[s4b1_E`,:P i EО< U <(x#>,oVkغ^dR,ܪ/8#ϵN,M/Tv?e@wkqe9n>l>>ߚ=]w̃>|)zd?vA {Ra;]oeGX gp]fm٨_Y}?}C8Sz?|Xy}LsC.w]ʄã;2ş"wMq8;߿7uzSI釟ww?)>roWG>b>s~1nw[ץ[M|ťt} iCX* z`BygD|ȡ>o?2QFs.|@SW}+)>hġ\OYLV|(>sXF`}ʱ_s?~cigA2Ϟrw'#]yl_/sm"%пL2-s.h7hvkяw|xެ1GBo7sǮhǮKGEWq%}nzFzU]]]=o#߻>}o? ^>Ή1Ćދ?%23͹o ߊo2K϶{r_,x?xUOȐg^+mJ*3Fr?s(m;19u*ҾO۪:}Sܫ2sG/ӗ+rW\>s 1#/3qߵP:g^0>I~?w/(瞕'>%D|t}ge8Ρl;\}572w2[e?<`H3ldg)kk^x7+S'>u|6k̃ӧ<:_Sskv_a]gƔM\Oe>)_* ˭z!c\qh;?k'e ٟ lm7=#3γė@SUŽˊ|SY]QUYY{Leey ~c~ wc5˿ʿʿv/ZYYYYYY{\Y{=rgz+/-y̡=59>ωONBL~!鳑ħ)Iuvu_(]/$A(+h;Ϙsșs)\xW{=?w;ݿO?W?oGC=w73;8R]]]j؆?Q?/>6BKNv'w{]X{x Ȼ:fI 5As#6%g[Gp;~f?}+ĂSE|%102ܬc(ͻ6J l!^iC6ka[Qss=N؏z!|oS ?МOKy u>mu^gU_g>kF$=(m/\owSg6x cׇs_ow7v;],1洟S_g')şşşx????{_̱П:VUY]]޿w?k1^ _8O1~~v/Og#:f|ṛцw>k';Ç#md@+>2]cC.ۇ=҆#uck#K|JHO|} ~3羶uBPJQn~II Q[g0w*:$?KE`a<[rҞ:^g{=U ^܏riï,1hCQK?QGɿU_͡y^f ԕzam+>3|13ym3Ǻ`L|gyS>k۴W>Xqv`ﮓǽ#P3?1-m,*6'i#"BG߻(Z@IDAT>b#*#Asãl]ۊԧYd9es5|<4 q-3>e#>c/%wͳee簗iCi1Mi;!,/)8iCiNY]/l.kAةʼrR埜Q}Q%@Cz0}fz@J|׸re$0w;S>|S+O91G0ӉK 'ʖg>6D}|k)>Ȥ G~3:AR ߽)cQX_B,;͋CeC@?uuCŠ omJ_06İm ַC]|0\לC}?e 9G%SZ7Wmyǐ^g]|>ħ^m[?:|5|dID?w.ׯng@]X}c?O pO »Qul :D9ؙ:u|mN?|~ү؟=RQa=wƱ=/*UOy3)!ş^??1'8)c׾K%pf͔9ilSw>j&3 ̃PY/r,c]m˽?mf /ĘvLm/k#]w-KE~@6OBNm:B18<9@ć_ .|1="3:.uhŧ0\x$Xۋ|s!RGk|ߵQKsr#f:$&mꐲoXg9bo]/xRcu"I9/@UIQg\RK>)!gI?Qlc'>|aZK2̟kA+>:`mʡto]/΃>(ت7]?ŵȃo݇ӭr1]࿆/+>cʱl/ Fe8A{@T9|ql3~[09>/wqeᚲf]|ת,eЦ~O~_{Ȃ&>')ٓgsW|:236tuO3d?/VsnBgwwNw^OO { ܉%̹f_qFWkL|dsYMc IʡyⳖizŤo֯+cc |qO?s/D9uy8m1\:%% .R*0觏6JU/uۖQ! ^:9yė 2(ŧd8G>V}K]^F#&>c_̳5?ǩO|xhkg7>1GQ|X?r?w݁CԻeԙe-#YqGEwPZWw]ea[#_ş܄Q]ACQ/((8Ò❱,8| vSGG#?? c(ǝ((2^j3-l,!@-?[>k[oySBbvvߖ+2UgoxK?16|/'7_נ"aQAhs`|>@γȡ d?zg\|/JT(6֗5Sguwڞ2L{S+K<ۖ`P#1ܿ_ ?%ʚʁbϤL>~5|NS좱oCWBʿj76}|&*>b5^D_GEGk7EG_r-s>gysXrSW^~iS/}"66s{f ~}\cC\ő5Ӟ O>3_3|ƑO]:_F뢾 JGк4)9,*ۺhJ߇LɡW|e5L|r͇1IAķ.5|e9q8Ɣ/Wk1ɽOYs+cYu5:#5PGs1\ˊG :g/2)ߊ?~6w-l Άvf^H[d?zNyfO-L>΁1^ú_ş#wb+???Qy tQ} }hǮ RUY(**:?'/oD_x߿?Mr;o?|-9g]\KXħ͸d2Fݹ^_K9[巯ԙ{/\s>s!L0׏ꟹϵn+뤔V|eN?Z?|Nw 3/stzfcR'?OߡXR)IoW[>_Ɗ?{2ISQY(((( z >_܋M }L]),,'gߜ{}c6V\J2j\bkYUo|AD[r=Soe||H̽X`)llhK̛t|Oٔ1mGs߷#yQy<ȹ6|f G<J6ui[>d3q[|!J|hC3WLblfKbr%u@X٧luqa͘F&V!dN|1鷎 >>Y#b]'2FϊgMbSS/HPQUyߏ?_GU܇\k3A߽K_zSAߎ S9޿`?O?OG%&gCr;?A.c [e-`\3%?_"62!q<<_fMcܿkR6m'?ħ=Ϳԁ_r-ȰƷV48b}9bbه}ʲYJq(Y3 kb|g>Jg\|1(,JǶo;G=L~9s|>Wl Dg?#7(<|:)=B/gPQUy;,((( ]?밙 9\@Vc˿˿˿X9b?_|Ĺ'>z{g6?Y}+>/3a|i3V|Ɛ Ec|h>x\2{5|9l>%rl)wcȢtZ-B0 <1wcueCT6)Ck?ǑV K ́qmӆuPG&t y-m6i#SBsqxL|~ā:ţ힕O=|q>kqYʽ]u|8ewp " O'Eب_+~R]]]]޿/[`Q_z޿/ϼa^}Q~T̹,z}7O[V|.iCs?ױoY/#u>O[w_+/nK6so/B,1n9Fu=Oo'6AAJc*χby@*y>te0Ϲăo~h#S}S幅|pܯ|r)-oS^#kg~wqRB}ꟺog~gw=uaCO;k=q?ȳݰ3yd6ZaC?xOw?mL;P:*|meaC?>w}{c_www񷾣F͙uG7 ޽uAqC?[lã +OohGQ^'=y?K<1gws 50OR:>?o J^m%)ăUq0|@[܋V_0o~W '/Up]|ȄrO+ C|WO 9ߵ'>ɯ\e sΟ{51Gys#k⋳u_#ߔ⻯O}gMꟺ =sqs;_dOG;=|)5:-(^@_aT臻B4yV?ʿʿ h@<lj~-_߽&@3߿p?!>r/c|/O|,!Ȅ࡟>HysgΑ_JƸ\ܪ0kQ|{ss>V|%><ʁ-|u*[;1g= }qW9Ýݶ@G3mEG9Y\\셱%'?rB_lh^m___şߗ0{SeGWSb)gCWߜ?/}Fo/Ng[1JpKy4ǜطs߶(RW u?2h h/0Vyb̵(S~/s yLJy֯3~g>}lY׶| ꓹДedm<v ^ ~e>^}󇎡?zgi86%rp7?9÷p7{NJsCgggwG=fÑ[?k{Hv=Cz޿i[o?Ϙ|rUlã)'9>(Cc--|)s!'+e_!ϊeA}u1>>ȷ/f[AIJPyC*ևU66g?tlu<ٟ=6/foA{LP[~@ 곍Aws Ɗ?????????q??_GH>fI})ܔz)ck?lJ؈7:?+{qgu/m3fM*kkk9w#õgsys@[~u\hgz~ m!i*T,<> nE:뾇R5|xh|*;ݱy|8#׺xde铰k]dv}pFef d;ZwkjѶoC{,:t.!)L<ʻUQQQQqD*,x]VqϿ(edblG I+>qyC\D4]cΛS*qI9EX]=[2y`Υ.kD.)~o^W1_gĺ\tn?e Ce>>МC^:.>>9^^B?gqg2wΊ?eϼuʇ75gG5/|<]~B̻;:4fg *?mٟy1s\>S_o7?5}KOR/Ƨşşşşşşş{}Skb/:~U箋;~, z~'$fu-3~-63|<3|oM{ʇC]Zds!s/Ηq^?Obޭ+dBS*RGs?bAcM0v>,Xs)M|0 .(uH^+k>/] ɚq q.\8g߃U/D)GG}6(>DΊ^SmM~w{F[˵8BfO/x]$r*>!tzP](8|Lw7A?Cs,8|(@7Pk~~Vqml7Rz68-Sf OG?m;g?nB6ij-/[oe9|5;G?ȅ(wcܹku,e+ozAW_ba=9&=cbk_ӖC)>%co͟C.JXʛJE(6@X<ԑ)>`̒9kЅ>x;(HdA&N|K1Ƿ:'[Şg;]\oWySۏ[>2{sYxO 8_'_6ۇ/Hg y&.()v6Ԋ??_uc؊Oq߿L{2???Xs#2-*2dKpWwӞRQQq،?x]O{ >^]r]|xWuW&lG>×o~ ?u0'CȗW3r{ZO\xʳ:i _ٌ_ßrŵ<×[s;ݿ>l=ٟOg=~^GOZ?Ϭ>8E6{^pw.***2ĦN; #Vy/k+gY]]]m}1W|У{Cg珳/c|̵_)N`qFݵҷ3};5Ϲٯ;׃lڐ:8k胐Em"mT㸥㈞qy>t1<0l[s[1bS"L|ϸrG@]/ӆr r >sŧk[g̅ ~?+X. .=? {́?zKlٟfO_0n7.T?sPUY]]}Ď#59rOSy?#$㾾'ns<*x!OI 3|dWs}Q9M|14w_oGsW|n}q]|cst|뺌SB;3H- ZͺC]E;z!E2!:߇X%eL|qLxGYu~:N|e\?s.t.S&'?{E>|\xYE>Wt™[8oݿLiuٟog]?3(*2*,Dz???Ն2Y|{%l?l'6z((0~((Zcs̺gEa{̿qϞIyk߿gΙE&f]#2Cul#M? 6C^*yg~7ǩA}ŧϿbY/?뎃l[9 Q[gk3漭zkW\לk}#Q|??d@v3 cf}?Y}E?ʘ{c}/HWWW?g|nXşşşşşş_a#?"????hQ,>_X.$/~lSs-cLD9g}ol9>ۆ/s'&}qOSwE6mCo}#ōENJF"lˡ`6۪/ġ {Zٮ{ŧZN.G]|4ZC 9#j?G__bn.ٟo絟osaI O\On;QF߮[????_şş߯EO/?ʿ???;7AG8uQ]]޿9)޿_|o}pn5/Ϝ?~{-Gco)k_>r`@5?sN,J#cs^oKs͔!>4}A ryM~臐;}9SZC|J~U_>BʠtS;kw5|׸|z M3ϹȹƠƟ@~_uv{Q/Q7kM2 ik?KuH?}&Cow?z7<7Ak(z(*,.ow?p!sG\s3c|o3\B҇q9)KEت~xq㠸.Q$ϊo`dg/Z\] }Α_WW_}0lA|܏_L[]Ck?̨'#;R'}W=[miU!gUg쯱L'lr#}(v#sR}߽ b7 @7>D{o3RYv78_X/΂6c6D9*(xN8#^Ж|Ƕ_d!>>?y99e\:~'ÂP>J Qgrcr|Vv bOyZ"1&?2W|]w\?|'V =W|}8ggQs>Z"z >zH\?;e>΋z9uٟzҟ-KO+Ϋzwo埞vϒe奔O{y.~' nߊKyڎm?g"ύuw*3~],/Wc~~?{bjW߻NEwww{oM{q?ݖ'Tߋyr7] \l;~-cuoZ":g59^dC_o]?xRc>0sgχz!xE)Qsg 9kc[9_Y+(e[)9W|ރz~]?ڟ_'kOmggggggggg޿O{? _om$oOGRwߖ_`=2Ο݆__|Ί,gܱ3|d3?39_gx!b>(RԢ |H!m2F }v<93V|ȣ )_lü[gy9zԿ7=ݶm?_K*=lyDcƔbX]QU>Gl{?%?#!C#|[x| x_e,o3F{>_>n35c9ħ,cA,O&ÜoɡC۪/χ2L9qkʢ 1G $k̹Ȝ^ǧVV2rG|[g>9kwY-ý~߲?ݿ_,?{~|ofO;?.-*,.&VU?{On˿ʿʿ ߟΘ |TGtߘ^gw>s{YkSBM!r໷Ƒcsh=̿oQEŲ~كG%:VYGu<4΁qs}Y#}.1~Ǩ9@gbRZwŘsߖoŷHYg 9G|gGY5?u:8mW_wrX??ٟO\6ͅ g,,hs?ςg#y*z>qG یyn?m2zN<ǨwؘO{lRBU^?9g&NGge:lg߿>z'_dۿGƙ-ezġ\!{7e5C?|˽06%9C| 4T1Fo !>+ϊ1EkƐs9x+>+?\Rh>B7# z>{GYc??~fݿtL:"OG;rĻsoţnnڦ\>ĹϵG[cOyy@M M~~   qCz!##u_<\?s(eW޿~k,...(*******)3yUoZK~ȸ@rn#C|ggV)|>bȗM\G^'҇,ByP<ȇG݇f6%B q3|Lsiÿ⻖mՅw#PЯs-s#=|~hcun+n_Oo?3-?Yo'CB'ډOr->$^!1??_-,6N*(("w>ut5IB_WWWWWWWg)'v;9-kY?oʿY#Ɵ~q |\̑фr/>04`̙\ۦ Jx8Y8w":x^vx&X{s=]Zyh>ڐgGG3Y:ں>unWٟ/<'}?@7?GGGGGWggg'0֦?qP3/_ʿ~Z^; |!O8J64,u,_B)W΃ʡ ɻ+oʢ_+m'OG}/>#++Fԥm2C;5Y?2!f vG*ukc[qh㰛/_>KG30FWW7˿ʿʿ?˿˿˿˿g8ꧼ Yw ^Ch\w]-{/g-3[=;&/!㞫ϦU)nջ'·Åy!#"u9T$)+?u1t5|oy  _LXwbL|$O[|3&&s<Ʂ/PKu?~V7EGGGGG=wGJIϾ*kׄz)((((((8⻫O#,~#sA߻.????????ʿ?۸yo͇>q-WYlqՊϘtTw5|1Yufηܺ^~kMZ9_Pg<>DJ8y|f]G6}4JSz(b^W7=IL.uO7ꮑrɳu_0(Ĝ?ޞſ=-7DIDATg?&Wg'q;.uw_VqZOX?{b|ʣO'q_ |WEw}C>sk=kSG3?yo?ٟo7K Q>\?g'dv,5Puk66ᅨ?tT]]]]EGGGGg୿)>ݧgX7A?20Y=x&v۴Ϻ$! 9rf\`]_WE%9{`<`>LK2>sy[EWs#Cx迅/?|r{ _(ϽW3gu_{߃ﵭڮv?ϳ7K?_{޿vRSz?O;?{g~Q='s!cG_Gy6A6s(埬C{Ꝣ5[_yno/Yμ_ٔ|jB;yh,:4AR>z< oPϣyݿ)0 ״D?;Pg#ocikw,oܮ,\g뼷#{ >sڑ E}տm +< >\:}롱_^dZS|u u(-w[,˩+ O=?w;[w۟fdz6_\M "Bcr??Fk 9r޿ hK{_ojܫ_'!?|sKww??.%,}ܒO/[/cl4?s&3)K b@]ʽs}s?//rjRq&͇m>97V.ȣOY[7̹wXBz W㫯P=Ϻkw>UYn}a`~C2f䁗6?2c~x_\ӽ0 ?{هß# k;[wHٿ7W'o3g???vPol DlAϟ؏oSF߿lcOhxlo׽ )g@[׿+)){Wmw?lk|!񷶎9Yn5s+7ֹm/)e)>}1dOɃa0-FάCug+'>e۾ڽ`C\:#Wgs{[_[A? umS9_W#{w?%uB}G;Ϻ'Fy#2vgX {]K?G; 4Su^mk'^xF򿇽@0){7ǩ8l5)(gk?ܓj9??{qO}_ ܅O<%i#>"w aX#k]c=g=1҇Omz,C㡢T7b8}Qc91n}; Dr>? ΃}İ:=S93ǝ'>軆ؔ?SG?Oߦ:wi߲?w~d?ƺ~5^W'9r~?~g?ӱ/?WWAQUUUQ?ba}G,ޏo7v@g? DLޠܷ߯Ͼqo|F3^O|h>f~J>1>bC߹(#/DP1Jy"KA`;k`oRR|hdR?Ç#Y3h|qǭ?wٟ1D7|M N7&/HٟOgs_}?}gnZ7}._G-BWWS =x4B_VaK?p>yto"/]݋?] m\Jda\7?siB!ѡ ġ<8&*m|̅~М+>ʳR?/&s+>@\GMz]'}o5~Oٿ_/o?ONʦW̿o7_[GGS??o=)z<WrOSK?Xwϸ[h>k:?k_>P:%Dlϕ* {<@Ϧp) <#ԹQ9fqd# d ˷+ B㟅~*:mboo߳hc?ςb8+gd?w ʿ??ٟylf9#r??w;ԧbw̘c,??8#+K?쀤/>wL;j/gD?뽲M79%ﮕisg]]2hgWùN˚>s>k߽\?*_ú _Cȏ㖎o,/:Ρg{ qM|/6>8ϺCl{o仅l|?W?e<ٟOgO*ow/|Og ?=F7{zRw'~5}Kggg'v'ߛYnq-{2}qdP~ȑzgO(%:9ao=hv /Q~z@iϾUc?:rs)]2 Gp` wGڿO7 @s6ϙuy=?9KA5O6$>g=+ӿ{@_??şşk QY9cYh?lOZYYY(.(O4P]m\]Pc 5|r![ y6xvh@-5 y׋4C9NK,_ᥔtL~y>ǩ_g_ǬrhC_Lq{;M 3:zrG_98nQ?'\(mhks>ǩgz?GiC_K9N=P)***zg;@J>Ɯ[>ǩb ?Ӧv64>k˼c{~//< ԓCA8%F?䘗`G<@S ʊO? ~<ȵ;]-|x'6%_A'..?K ~YKw3/,xYYYY(...?Cz?Ogȝ FnS/ #<cF't_x7{?29E=ژ M|׵-a~Ur•C8od02 ǝGo7cԕ#g+?g E{;o??Og;>۹A>Ju?=z7/pǹf1@O+(*<~䝠G]C֏~x&?1/++xonRoooOͿOc|dݵ4t Жw4\yRrp!|s<븼ݪ/gܹO<y8c2c}Pba׹.9z>u;ۅۈ}6|w-%߇o}(8l{Oenio?OW{PqHc⏷W___miiPUYgrR/ܝk?q^gg'73ûGrD>?ncGʳoYߚ_k?zR(3z\ D;VuV˅^r9[zh+^9ߵ1~ [ ĝKWoU뼿u|1>ٟv?mlw3C`3-SRO1/68 RUşşşF}PQQqXGQu؆\yw_MO|3sY_o\h}st1?̅?5i:aۃNu?̙,Ji8GrV|7_%;У9Y|~'w?/g|u?ϡ͠l?ڏ?H_;(K?OYWWW[X=+=?g' =;;ȑZOc~vc=|*Ԁi_рa5DCM۠~xKu]hs9WV}! r2F~}+|i.|=?wٟo;O'?Wo7؁Y#uM +vh?v{P܉#^I?wO{#~_d"_H:D>3wj@SLӇ8g~Xdb.FcA\/1q(><~3|XCY#š=crG\}fcQI}vsGUYIHDY}܍?;QYFno|xzCw7T}눭?QYYY=v(!1ʿ|=oc3g~m3ٿߎ9&&zxhKto R; xC 1siC3]nmPvreykTw0IŽ=~6Ρo9_'>>}AGu<}+VG?C?VYmsOf>aƎ?9yu{`Ӈ{i3}xobZ=Cw[\27;>G[̘g?Wg{{5OskSo}ཾ9*HK@ mŬp: #uWS['^hsPS|||~sv>Ksԗy¶~I3+(xa1__;׺_Ow1ù|b2lwx( p7˿/y5Exws)1VLv?şϯk?¿91L5٧M1ڦv{Yca=9iH]Ǽ}]ԧs;_B{˘^׸|0QhgOcfO,b?vxKtcKG??Nx7flڿ?k,uϼyԮ{L?\c L_B74&fޢ19}<!SSz~a׏|~>/ ]K>5e߿Jş#f>moI7Lc39s6L1LK[mԳ|~Y3`fߗ_uVi3gOC܅8i){M'o0Θ}=q`Kw`{;RP\y;O؂)%c_YtW|>J)**V)\{#)\l`Q]]}úsw[#X*h@cX9?l{|DBonj5sg>\A:c[1O86m0ʁ:SOaϩX:z|3KO_'t5i-mˌşg/9wGGGGs|,9ՙo}-xf)4?G?׿˅p><^g}(v{s/u},.ڐv ٟ\E-3kdGu}~1u#i;kKucb?AaLqڎ9R?GXzЇgS'0rvνQ7,&! {s/u'>xԍu}~1u#i;kKucb?AaLqڎ9R?GXzЇgS'0rvνQ7,&! {s/u'>xԍuy_Doe۷։Qffksushm3Koaj}>z0祿7Vt5k|}0FNoaj}>S{Wcy/M=L~U=jQ{y/M=L~Uχ5Aoʝnfc󹺏r(/M=Lm~Ugjj̾u8mCPhS7iw岁%mD-/oejE>m,_oLMǭ?H<3hcſ}ldI[30QK:[jZdf[f'WA/SSqϬ&G5Xs_.8Y LԒZV3ٖ2nԔq:3Q;c6VܗN5%UG ?>l0\:5]5i-mzǘg{g9ֳw0={w/ȑz~!4F諕Ӧ8^;Ƽ|l&?tVNM+zǮfUH=e 4B_6q1]{g5/5&}rjJ]9^;v5"Gf.mMj)(1:C=۬I!4F諕SSqޱp9R6s_hChW+M1GqܽwyfMKD 4B_RW]ȑz?GBhZ9m9ec̻P6k_C'jMjԔrܽwj? \EԳ\a?@#iSQw/cuzY:QChW+ԕecW3*rm沿цVNb{Y=Գ͚ЉBhZ95w/`P@~:/s 3:T8ǽ|,֓3r Z[9ܲio2Q[_GAQ)3ޞS7SGKZ:<[7?şo}~{}~{ۃ6R]<󭳯U7D&fV)=h5şO{g8(̷ԄV7___9#:WWgvy1\:ZE>umo'OxQd&Y. Z}9ch%b9}j&wGRbnW6Qb/;(,3m&=?şOg(ZssǙSn&?9YSN{)egL-LNz*(@˧RQQ__%`pɏy1s].\?޻v_X|1?Ͽ_+KO6]-k[vC̠/xS+͹.Ԋz*])_b clkTQ1}jx1}DNsn??Ԋz*(vGGQxcX"97jZ=|۬4?:`bop cuwNN5{);{|/59ON)[CA/4s},[+Z*?OW oy/c {*@ R<$8mhe6cc:|7뙛v{9K/۝x_EVv~6_k%Qg])\tb[N,j|qhkXƊOsNtbSϹ3˿˿˿tWҼs̶woI~_ݿu߿@h\NBb519fڎ1s7/mL}ܵ_~~XgS9cڊovA).>1suS-1mv[q~D9Vݺ)Ob[-8]P?ep+n}L[]-w.(Ł2g8Fn>.Y@"ߘ_ ba@L^׺9ڎyj·51.79ʎ~2M2dm3GP&GOޘPnrLٟ6^?j63ڍv$;JN2ܜ!k9ʎqQv37xQ`&C1eZ@a˴ƵHvonʴ!F;ֆX3GP&GOޘPnrLٟ6^?j63ڍv$;JN2ܜ!k9ʎqQv37xQ`&C1eZ@a˴ƵHvonʴ!F;ֆX3GP&GOޘPnrLٟ6^?j63ڍv$;8D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @"D @>\IENDB`typst-0.8.0.2/test/assets/files/2-formatting-autocomplete.png0000644000000000000000000305401607346545000022345 0ustar0000000000000000PNG  IHDR K @iCCPICC ProfileHWXS[zDB *6tUD숝Eł.ʛu_|?gsܙ{8ΗJP-%@֨T  :@)'&&E{IZH A>+RY!Do9P]  • {6 q\[Р, *dA z.X_~x!A) }v:Yj.ʢ$.'%?OVj,,N1g# q$#*b?J{QJ<,Qe 0g@b!?(bcC$yQj>#SƒtEjqj_h]Qg2_DZu S *'EALع 7>Bm38o#)ⷂ8N$ TcE8}i~A|b^+NSkù`DNb`Td\`ܱg"IbZ烴00N5Hb(/T[@VP'31 8~x*| \X@krީzB@'5?"Y#xP H *{E_X d*{#rAȃr(ɀ$2x*|?@&R=`b1BǍp?X]q6?'vC5B8lOQP?Ds@Mw<PǍpp\u܊~ ~xj; %"~Iw(rc~Tf ;6gKl>;azŽa X+vDVc'*2YREW(xGxd8+Ł_'8a^_ob D;7|΅`'9;6thpQ 8\q!4C` ,+> p @  φ\&`(e` X ւ `3v}'ip\z: ށD 3qD\6#H#Y#S9H YlBH#r9#Hb(EMPt(F9hA h1:]FНhz^C;h/0ML3ǜ06ŢT,aӱRj&`X7'L;'|>_ŷux ~41MF %rVA): D>і b 18xN|D%H$G/)'JHkH;IHIf!;4j\xE&{Bdbr"MR(9YՔZ)]MMM M/XML՚{4j>Hա:P4zzFhB"Z5$>IwB z~AfX38bF9c?"[ekMתjԺիP{9g:$`\:'u11%000O1;u<2]m=z:znzIz*uc6<<d23H4hA7l` 2(5mp!00pa=#(hzSF݃u  .omc8xfV^SP&ݦ9+Lv1f+̎=g8~%!ۡ#(v\>0kdHՐNT'SSg}H/Z Mt虡\]\3,|aM^: \+\ >cxWnn"n7ݙ#7yztyZy{Vz`c g^^3{}.Og#lGFl—ɷÏѯܟ_02@5)Ǟy( <͝=' bR:%x!,"li O{O oFGx)l |((IT}4E/c3!P,16&"IܰqgwĿKLXp'.Q؜HJKNz,cQF]H1J4RRrtg{ZI1c&97hl#ғwGʌWJB \!ff.|囵<+?<[ ِ>7:w[n_^r|F$W2tRGiczdHB]#*"PWTQab'I&Nv`ߦSSO54δMӑӛgXΘ;sf(rg>eo$ik2wGRSB/ܘ3o||x~ۂ ,V*,=_RV^e`_׾E{,^DRۗi/+^hu+X+JW]9nr (:VGnXcfɚ/k^]i\:n0PFƛB7UTo&n.dKҖ3jlmm㶷T{VW0ޱtLyiWЮZMw{{M{}_ľTd,C&gw4477674<|haG,>J9:h߱cǥǻOdxe']9}wµk߼v[y^.̻7_;<:<z0GG/<9 IS\ |K3Uo l{7wߗ~0#Oɟ~eWM"e|+ mR`e,̪D?aQY<{gC Ç\(Dx5#?:s-Pw|9[$>eXIfMM*>F(iNx ASCIIScreenshot=ؓ pHYs%%IR$iTXtXML:com.adobe.xmp 1766 3046 Screenshot ?iDOTs(ssG8@IDATx}Vߵ9{½ł-PMh[jJ&iJcZ)J& (/i}14i+*-?Uт-R^Bxr{YX~k^{8y|s|1sy FEC ,Pk;M1o m~DZ`I}zyx9&}:c>XAu_3C(%6z߆1K?B2׌y~-eޠ/SM[ q XQ_.6$΀~Vm">3b2MA_N?֛@Ǡt\ uK68F_tboPF?:!ٛO'H7-[rsM5?7\dMWW׶\#____xk_.bF׆l5)**փkkoK+ [C`XnMP?GKԺwϒ=~<C/+>`שodX?Dw)n1WEk+7LDvԕ?jR?Q{â{5]+&{{Ru{{,b -rnIg'VZ~5ppn@#^83H ڨ?\l?|kx??k=^dmyb3~N[A>{-l"uiS_<7?VKՓ6__ꊩTU5m/jG1mDf+SGǴ??? Ŵqm3_QOOXQCvBȅ:1}QSH!+keurl=eWۡ͠Yu显hc) x6;q̞L>=) xkcIC _1vs!6N'şXOm&XX؉VhK???7;q̞b9^Jg Ayh#z-Uggc>h$DlJ&ODVHŹnvu-qf6m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]/ _/BA=䭓:ʳ.n~N]1?e]@~6:ʳ.M'_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@3gA@03y4,:`/DGyg;c|PQ/n(v'<䓿#c*ƶ$և x+TOQ(ߊLņߊL/Jl*U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6겿+2oW+k+>W1>qL7Jl U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6u~ܣSmjzr/Y࿐(o?8AbK*3o<cҗ:x ۯ?DG_ş?Q7H=̻hxP_j PJcW#6rC=̫+e,PwcwSw} sͼ(/u\he2i_p1?۳o:H+E]=?8";UWlo_Pq/M*/g;o7dWȏ?/Ro~?lA?|'ݣe\h//g;ƹI7z1^X,HE*@ (C.DoIzǡRF`_^ܦ|ǾL|_QϬ/,t7m_[]Y>Wߝ?tr.v't[珏w+~y?wsϝ?ws;Lw{ sz1=Qem={|x|!*LԂ L 8i}:}O#0 %CyWƝ0Hx䯸o5A e7_?ka/\WD׆{e/VX|?5pwk?uG?V_+lfnk%m孹X#wXA{-{9o?- ݐ;\(1A;%eBx3ǒ_:8 2;Dž0_x5f΃)_y[fg>-Y!1._ڒ⯹,,ԇ?3??_;ua&<KvK/tsoã>:a!݋l}|,@S>{VWK>ꡛ[E\taha1X`g`-1BzfJ? ~ǥcWA>e*q/ہ[H'Y}Cw)((:/S?? H(..^Dwww7GILWW\??\=whwߝ?tK/?O?^rpt{/ XTz .@'94W>r|*eɞu۟|3_/΂%SmO?c+쵰>G٤?;W ~lZ?+uCaYg{gO nC~Ӟ{nr^81?7}B,.b<^Ry]DKա"qis̋Iqwq";S޿?w>p?i'1~k_b@g?h?% t}i?lI l@ :Ο:'bΟ:qY k=w5klgǑͨ! O4H!p[3yĦ`\gbku qlS)~:?峰#|ۘmWɇo@1ϜOZӊ?ٟO'to7 g=_/?ſD^n<:'? ^z>wz_1~lc\2+G?>@d!<NS /" :)t|/y9n2c@s+?&Y}?b })YǟZ'Yk"k-@@@GGI[[UU[DGGGWggg'M2(...m“?Ss o:ﬢwsrΛyh.wqX y-iPvuOeR["4|L>}C 9'\&62cၜrɇiGv +w?k?_@no7__agv_ggggggggg1fgw-6 Fgm6c {5N} Ǯϓ!sxA6s![&UYc}n>o :f -_% ˷{Q<= _+I??^Hsk,Tƕ׉??ֵM7\tgtp T:_:nP/?g}g I_?{3):ʶ-see0}h7VzM v,RݲO~ ON|;ےq_6MVeRhv7OZ׆4joeRhKw\l?+Ly۠5vCs0// şş؂oblB_Fh_cTc[~sEe5g->_?igZ(--]z{wjgcoIxh1K!̔OÃ/K_q:շ9dUOl?O'wo_?VW[[kKo/:`D>q6?n{3SQ@R7|DGW(Xm#>˔1m_ /!+-A6*`oSmcb!wloCe+}?ﴏ:],1ZDyex̓i'3+uG7{"'(gs%WC9혴$(/4O ix:TLiǃEQUvZ*2Sf<Ǥ֑^$߱N|uL|.z?ӿ_iO'l?O'Y7{W????????сǍH[_?2'?,13c2W?Yvڮ+AS~! @UT\`RC_tP }.0׼c# +2_ÀXX37偏dʟH>SK8? +r߆||OOZ5s'danz?o n6?X+Cwwwwwww7Gٴj{1 uC[|oy?b۶ܝ'v&?7y?uL/zߝwF ֡,0dX.2Ǚe~A^>^Wߔx{^*5WMkcߟW_idW=WܤwLi7]]'fw],ǩbt,JdWl!-(*,6vnGE_?ߛƐ +{ܨoj;????o'$3^XMƼ_!{}oO*],{}Ryo CT<+͞M wL|b+g?h0O|o/zxSw:5c%ij'I_f7d??_t7+(((((*,,n_?\¾?wC?tC?tCZ5xoR>qrI!yIۏgËC^wGTG!TSǔ1Gǚ}k wL~{=|Uȿ3}=?~mfv5/ǸOj8?c.C7fzо"wL<|l9BYJS Cq*|dz}E}}ٹ %y@{)5Fcc#|]55HcϊuTQqU]UަHkM\"ROlCwwxK@?XB_ O[r_+_:6&?n&]gE?_u?v΃1%#m_~q>6Nj|*x*m2NYAy ˡgʇq|e29;G߅>{E{Sv/T|W&mQlKbyfĤoG1]7-(((((*,,,,,nWߝ?tB-?:  ݿ_ceSggx]W?f< BYtKR|=ċR*3bPpQy ʴ8 TJx$y<,O,nlsAɧˏʧ?2u{|._){??-fs6gCt?d?[Z߭\ϊGk;NJ؈ϫߋS2e.59E5KxW׾ʿx)x9wP~KEN*Vn~xF"YG\>UyhCCE򩟇Kl1yy`fB_[ϏCO|e睯+ %9ET߾G|/?їfMƟu h|NJEww7a?o1Ά)hCAoG׺??Y ߇{fijGgGE~닶>G?c郯3?_ +!x}}~N繥 0?,>* DMd)3(D ; f<\&cL>{A_O>}W> /{7~#kZd?Ogܷj{3r]/b!=) ZoW[ `+'C ﶏodoGۀP/_VJ 8k׽)((Y=IzHg:Sοԅ?;Iy>!?3}cxm\@<|Dxgwv: oj2}'\|ɣ5UIiԎ ?uW1Kף|.&y?Ƶn, MF΅'uk]?O:3+???.?(****z:şşş/%(...]$8'>Nq7?s:}}?#uSq')s{^2q<)D[g_y{1ߋ9?m~}2Q'Ǧ^sA+, Hw(OS>ɧ^>cPgi>cit,6SwWɿW߿)y.eSNʓ{" [/ x{jkv"3.>oϨWgO7??^~mO??Y;US닿.#??;]kr]w>?ry0?4>yO=җ˧o.ϫU':;жϸʧgʿ~#>g'ֳ#C٤7-_ ~_6l&56SGdJ;_l?ٟjS_Ο?uh%}qnMt:Ο:'@o=o_C|Nps%{bSx9%gq|þ?}HR}vOAϸEm_FwSxOꡩ嵝u(C~xUI_Rlu{N%{L޾G)\r#M/s,g^Щݏ?@ iws\nfҿ;RXKP(i?Á ko2v' o7l"6>b;އ?f5/o7((*;XWO{{_n{}SOټ~TY?ȇC ؔW)C;(?$ KΝ6ߙy/_YJ>S1VZz|'YM7{_OVWhHFEv8OM=*..~oG;Ǣ?4>zev]7}Y":YWB.+s'$=(C|ɗy_>JIp*+.:M\hz mW>oB΅qGd˧MgU>kMϝ"s~{v:n)uycACiHm3o_d1. !uc|x.9B=,;#SJ>31߹{])v*> W]y~&Viu O'dV=(93yt[QQo??<1̣'___K;:sm_sfO'sH}-XAYU9cGco?&mwU3|%EvE!cYY|y3ãS_~C \/,ŻP*3F]>C=48+s,x"29}uYR-+|g/>ʟ$}Wd3O#1QwH}S;VWLOb-Qӿe>\ڟ/8+[ga,o~)"bk)QW $! =5o%U? 55ڎoWN`1-ri!(UgtC[((oXtxC_b6HMQ??)(Vh;??ċ_|?y/T'vMIO=%їwuӿ} 8|-}{ eP> "O*t ʌx۟:ۖ%0 }T%E}nO|w;ٟgL8m߿O~?l|o?ٟէOg1~` 2t^(h[k:<ʡl'??Vĺ>WoړOW] ЋNJ~r5^^P\ODw`,,nkcFlK^jfϿ_nqY:e}{S|)?|96d/Uw)ۗ>3'dAy~g/~͏{ƇC/Cz ~`JEUVg/6}|l꼔@Q@IDAT":SO2O{/Ý|t#%N\&:_yzfM[d?{?j??O7c?آE?XW?tC_<}Zum_I<~t SOD&nOm@c2 /D."/N|3ONyc\1/wPwSO~p\d<3ğBqU0 8~Ts1PJlLqI_] c1^>eo?r}u)a;6H|w||?m}o{xS^/m?z~7[e?/7[ŏM???hgU?tp_'?tC?tCOwy+Ou/x8c@A=]G>c'*C(v|dڲ< |g`ȇ#|L$??4/gS22nW(2eC6Rȱ?&*/Xg/}|g/.;&Sz6gv|+c16t||PQsl?fט -*XR7k~c5B{[QQ,??2N|d^$_\7>Q]%)~xֈ9Cp(ڏf?1qA׾[\yX.cS?싌@K +-kC?߱qϹ{!?;?|Ɔb OZٟF`++a:?VQ1mw____s._^Cy KO=}?O'o0Cwb^ dЏiC)wg1j m#e?ncE~[aN埱1lXEm;ﰗ]x;{̾{K^>e|tʧsNʗ߾!S2g|gf'!?L:ht|8ǂm#G%l?e0u,-^$i:w/0?OOy/lcʧ/oJ)ql뼿O_۶oY9SH/>3RoY9߿2ٜB2|䇿nM2ꂺ?_\s쯺nd/>fXmn7.o7-(*"L歧 އ8O|m#@cnxI! -RO늵SY<ǟU_?8W![6G>)1CEt :cEg`"Sl˧wzHy3gB^0o L}C(r m~h7eS>e/,+ñB޶S;/)SR<\|ڕ/PcQo)鷗O?v||y/y^}G%{q]v\oˮ7xZ!ˊbٟµ$W$_'n1N;ܪߺ.*s1:iGohXW/l}4fD7$[? :;C/mCg'kC_E{jemw=3ozGc/eo۔ocgK@ו8|63DeRߋ6чvˤo)O9Ggt> ^~HG;@(C2GʃY5ξS |e )Sϼ|4S8;0?6T?c\& O|O||{ ?[{?-Bd??ſ$77-_GGGGGGGg<_şݦߝ:@$ eRhW<|fSGkC;bN2)4EG䋿V,>iyPt8O.CW?o+]$[sL>m)y{5R~s˷]?i#gxɇwΉ1% ҽܘg*֏'KNvU%{ y-#)32WSrM)CK*^ mG_bygٿRu_S3ȧ|S?)+Wy9Og\xT)֞|OOdXqٟ ߋfL7;Ka+|ohq_kf7jլ?6|?hwܔ[͗P,h1>{d}7;m}H6Wt)~8`<ʃw ?C&ාKJd=㑷zU:_^MlLF@P*`!S/ٳM^Gb|7߿^c*}y:{oEnR>cLJ?ߛoo+(şşşşşş7uT]]ś?mW/g?\x.I4񒗊?Ebųcӣo7ލeݴ c<+.qƾLx< 2)C{o.u븤˧mO@e| /迗/;[̃:s/o_^X/Ao3|GcY?T.zR'?bIA~G9Δ7!5·1KL)w@.c=KJkS?Sޔ/u[o?R9|J|r|u|8_Ci^a~ei4?vwdOnj8 ****bXY9|3Aşşşşş?6,9*^uG;>S_{Oz{^믿%}^z !H%O^~[}yۇ~+ԭ}嗉p"e;62 .hwt[珝vwaK?~߻tG?Q#u&OO}??|xy><<\_э2D/yKL\^+L?I,UR.9?3rMq|L˳dޛ*@SK=yư-۾Te ȀGT>e66q|Q?CC3} ?>>?/+?~rUw_.˯p{q(qvGeWo?|wG~~tp^;̹`h?α)̸o~ocR(#ӋĤ\L۔@RH}۔kthJgSA~DH_Y/SGX~T뗪*JF:哷mڐo?R/U1!I sG/ܹW(B B B B B B B B B B B B B B B B B B B B B >ϫkI?w}w~~}C? p>0y({}L>IwmC UmW y WE3}$>Tű:@& f”1|oxMJA /#ז`,Yg3S|Q>b)&a?7Oy/e*9A3Ŷ%{|x͋eb'I`}hHЇ~g6S?CʟJq|@2 ~>"v=/ſ~W|}ͷ^G!!!!!!!!!!!!!!!!!!!!!w w?;~ǿ'?я2_X.WwLv xy:BZs1eb?3 Ƙ㐷G=4Ǜh6h/~=t<|۟j 'r>T(^># _>R>ǃX)9ΝvH)Ia9w;ig}g}}_C__Uo~(B B B B B B B B B B B B B B B B B B B B B!\?wo,3p1߿,t&cϔ{ƴ>3mzȀ}i˔v囟sʧm|OX}sw)Ͻ '~/&LBs#Y&=>!?)m/)O=)6Q/qhSc^&_vLRRgw}7|?k7xK @@@@@@@@@@@@@@@@@@@@@ m%e~aɞ8A#S]cO_$~~|ַ__~wK Q@@@@@@@@@@@@@@@@@@@@^z][eO.3/{11yynN^kH MӞ>ew>mwnO}S8'x( 'xn;cw?0myɝcOf_'O)1^g,;g+zfy)}uI?Co~wށ5 OpWMM2^7L<;)mɧ'UϾ|6& 싿~~/GÝyY}?'/8Ky:);y?Sf);ʡL~AoOW;GewǠvN4ǟm@e|ly}y>/_/|åvjtB B B B B B B B B B B B B B B B B B B B B /^U_|W,sSL)^v/ g l.]$ǣ|{g:d_SK} @<1ϼ&PLH( z6?a1"zO 6(c_$? l~/6~|ίYD;w~kЇe?p{~1)ϼLϼgl~i>w1/){_oa?3eƧyA>kyHK ?Ay8Β}:Dh&ySA:{4}Ao;Sʇoʇ߾(yƵ47kiSwu,(B B B B B B B B B B B B B B B B B B B B B@e|C2=ysvz;{~ƠfKk M_}|;sY%:4eO)~lAA6!R):SeX1* cBLs4wg!3%}'?_^zס9 ~{~_cKf?{yɞՓ~-ۗuC΋a{ФwlRƁvۨ5uN+tw,8yqP(mT@vپdcA{|_}ȷ$9>|A}?D*ec\ >A~^D!!!!!!!!!!!!!!!!!!!!!} ܯmg􇗇;c@M?iʧ|xs i4or /<uǀHvbg߅@}qL۟ʇ1IT yc]B>}/2Ε1%E?_lQ@@@@@@@@@@@@@@@@@@@@o|7|_Yc{;<./lعcO{.miya=ϜCs|kc*:EYeIll~ D>q.o.,C2d=;l'"LH!ʥcn=xŔïז_W{(B B B B B B B B B B B B B B B B B B B B B@{}7˄ry/`"s^tv'?'8S)z_3}gyʎyzdFy-/ܩЇ|iAlgRW~X^\W3o_?1˧MbʌL_ˁgslƃq^Xg=O_" xx啗||_Ϳ_e?<#Gd;IDNp 4=9gRrAFqq9gR<&by :|Rq}x N>ǿ{_m= xt%_e?)D=|[O'}G &p )s,/7"u>S><)9OyIA=)ז?jG!!!!!!!!!!!!!!!!!!!!!']p⎱G&2ygɞ5?{gפ}]fgRdQl?+x1%.g<ז;ɋ? BzQ)Oԑ! #Ǽ/Uzzџ6H%".}?h=8̍9GA|HiS>}G2y6xkKg+_D!!!!!!!!!!!!!!!!!!!!!\_>Se`y>y2Q#~XB^[q|*?GD!!!!!! O|G?+z˳GX&!W5=B B B B B ^h^~}-//k_g@byG>o&l_4S_Pce^;AC!yI!ǒ_\zmmL>~Xʐ-#@{+p1~߹#p!~/֪B B B B B B B B n }wAnW^y|-/c!L?>bR<<һ1w)Co6]k7y;a=ï,'O~KաcGO%ke.'ϼoɞɐvs9w'>O|(B B B B B B`"}OO?@@@@@@@@=%OO{%(B B B B B Br?}'_\|dy+EfS!Gα~Gey쁼LkCy~yٶ|iHʳ2R>eeGXZϭB &il  !{FTp[QԂjZWnjkbZ[u2d7d'sܜ\ 7}s|$s㷘!li c :̓O=|cC {Ѯ-~֊y̡Ły?]>ܹ蘝7}!`!`!`,ZC0 C0 C0 C0 @jj$'' ,!`!`!`яnNMI&!`!`!`N!`!`!`!`@ мysNjM C0 C0 C0JC#/zK 19蓯9'ڷU'W?86kCG^4߽_Nxa~}҇qpЖzu飀1/Z!a p8F˃1|B SU2710`zA1 >~<\;g}{7I!`!`!p"{nY~O/C0 C0 C0 C0 hA֭[KzRa!`!`G#/jr _#'DbaC[ =!he c`*cc{sN3z0~>->'% ' A?yĖ #[8e~ ͯ0I~~ĂC㠅O!'c됑3'0 C0 C0 [Jn.O!`!`!`!`D1;!`!`l߾]5jt`,Vi}YRSNPKP?т[?g=x~~0?-CK8[U|h)>ǵ@Qa&) 0 xi9؅ bcIeLqR`ѧ t=K?9`-B=l!~~0.BAG̬i )C0 C0 C0L$##\0 C0 C0 C0 Z@jj$'&!`!`uBy믿.K.r饗JÆ؏0B^z _==\@&)<} &@hIca1kQꙟA\^0}??ơNg>OT}O쁹!`!`!`66m0 C0 C0 C0 C zhԨh"z C0 C0@AASN2vX&6༮\Rl";v{^u8iٲo^bcA$5i`yzL.2 r'}aK6h!hOȇ?֡=}C8_υ! C,OOs> Za9q 'ZԮzĀ0o 84?ls?cpmCNEb>Zd꜑ C "'B–;F2]>˅ C0 C(UJm`!`!`!`]dMOn=RAINJ͚Ijj~C+0 C0 C |`)Sٳ]#F,OM& +" nְaCiӦ"PKjJ0/;惟 !xHGK.vea?آO5e^ؐ  УOS'?}-3 c-}`˾v\oz- {`  ("ɡC8Olx/txa]~ØCXq8fc hq̃?8=#@:L͛ߖŋ'-"q)"*bV1ܐڴiY!`@#`h?CV!`@mG`~zq.q+6|PKl,[4^M"!`!p I,Y"ii duRPȯ 1!Qt*{HF0 C0 ڊH/̝;-acɂѱ]w%͓^kV䪫2r"}i\A^z%5k[jbbׁ@_ pq3_`^drYg~m("柬u/ gccpE ?:t2#ϼhqyƅƴ/a2?| h! 9>Xh GDנυ!O|`1!@hy`1OUN/";ϏOǘ2Nx2a}h:ul'z7c~̬O0D222d„ ŢC+cƌR1F̯l:eO=%ׯ%..\?30 C0 GBC0 ډ.ڒ@5! _е47!`!`ŋo_ew]9'D1j!`!`̙#/+wСrg>v_h4jH)_ve_Nz-]ziG]<<% -[F _s_$)\C0 C1C[!`@t"5F' _Խ=aA =}۬_a'q öEހib!`6vΚ~:MVX^N.]V+NeYe⛭!`!`@!- o^N:`҈9dSO=J`Zqƹ;m2Z˗o&Ƅ͛Ӹ v$l [ /JM2E~'s'_Q*f-=]| ٶm[CK.$8!`!`n_ϟUo!](1 Eiٸqc&ݺΝ;:oJC0 C fyߒ 8Jx d}cs!`!` &N(iii%v̯+ *v]~뭷M$=:`Uk^w-ظ5))IƏ50V7!NII.+ 1[Fc?}C 登S[^n {?y̘9~bG~yc!Cs#ON>Prbp $9 :ǰ/z0:yaz .>\sA͜c~1?cПA2kqc~=''Gw%Z'kϟ#[6Hʎ|ISg֓Pki0i{ iݺ$&&J ~}Ӿ[fK')tZdח]F6#{ /} Yml =NM1Z_L}5WofUjj~IbҥK %C>h9˭'T}eS~FFF0H>}䢋.+1 C0 #`Cl C0@^XReKDӣC'u orR5yAǬ]FҋuMvVo1 C$9߈a?u0 C0 C>%F7b~iWHn"b =a)&!:a91:L.2ذZQIb>vz衇 /FjD(|&UG`MԓO vqXC0 C;1K[!`@ $o7l] z?#{lRVH[P-_ 5֡L7H[w|6>66 C0xߒ͛7EO.]F,>1?ZpC0 C0"6Ŝ;w>Y+,,.7dȐ`~Z-Z׎ ,ٳg& ،gϞV7V8Ĉeq}O ;vMqM(' AS9m޼W_@~V)"柪-|pqD7G#Xn-ч 8_ ]q9a< }c}-߯ }npЏysX?mѿZ-DJ°Σ:3tesĖ=p}(" >c‚}yG,svoG̜7E+˲&KE?!-ZH#}]Ha=]"*Ź`Ӈgg<%n~ˤSҰ!>a}+$-̖ú'I|R֧0WXSi1s}//'O~N˖MJcF)3&ɢYڭ$$' z)ҺX֬S{ $7;[2ҥ \PA4Him۶Ɇ  ]vu1?K[N_s. `py_0 C0F̯Va!]*T_]5KJW6=GA>=~w'C:3g#lR8ȐY!`у~#Ik'Fb"K1?܈ZZ/ z<989!ЧFā-ӏzPG+B4 [;-ztVb}L\)ԕ9B1XJ2G_u S;v$C:wҹa9+!Mto! kϕuy=;%e~NOto5 EvҠaY?)}8ȹZjsAA5>kZK%^IOO/Qg!Crtsg} 4]uc~u ի 8PF!`!P0b~;C0 @*|v yvU^ 9*GO?]ن=s. ǰa'EYe!`uzIhtLT#G Yk!`@dHKK'3xH2|pw3a-4b|/,w:[777&0(:iZJ=d:(`bbc =zpbB[p?؃aӮӳAk`~օ9X7kĘч`?~7Q4>Kˢ,$ }yD_-<$@9jw2a 1 vh=n up=E>؞KFfa}k׮!]͑;w]ޱῒuE||O=@@ߵ[P>{]v~j}l~sO3h}FW%nAׄINiYfV֯__@nҤE I&xh0 'p~Zk!`u#jK2 CT߳m ?8IЍ/ Sܯ-J]W 'B:w'aEdiݪ;}=}] e!xؤ!`!&Eiߔ~(5JSk^$#{`X0 C0 Zx8 .t7l0iڴi6lt\NY;JVVɷl87?s<{{9;w+w4nܘT]vꫯ\m*Nj#BHIN8Us,у7/&,Vٵa^1vWmO.3ذ >6c59j=t~~a:څ懞 Ƃm1q{b FJE `N.:|1ŏ=l#`Ahyl/N QǖccjĘi1ϋ"knZeīOAL)rD"C^g1:mZw~̮ÊU{9b(IIIQߏ_fޖ7};.˩  \JtךVnl>R e8oPbt@=E.į@+-JԫM;wȆYexyr@҈*v:w_>3aPhVk C0 #gn!)*Kڳ\?`9?OĹ\=74NNŰ`mSs0o}:W]󫋠!`!PO<.IIIP1,=#-7n4o:*Fߛflr]w ٳ=쑟/WƉUjJr"+- c =:Gk-j#ld؀]9ΌX!~N9;lh8~~Cs_O|0c)sIPpؑ[ly̡Řw`냉ycP 152'g ?Ɓ9Zsڀ9X#uJЍaGI$]BQD'<=ߕخ*9>PcTJ ԧ|wW_.S Z>H~VLP SX{$IR3$TB bjm1v>mX8;V;~|chjMgcԲP_s rDX!`!-!`!#PQb~BrepvL;dSN$IFڜE.ˠzu1sd͚5ұcGݻ|bOv%=?@tP8J!`@XpLiU$PB|K*bZi#W2s0 C0 C`"p7c[l)WD&N(iiԨs=q^{M{g{5 *W71l wygO7YzFb癚K|=@obs ( dZAB߂ b>a؅<|~~%7K_.|`;:0_CB>"DB.zڢ:mRYwH9QzΥ @}?|:E:.i&@k@DNb8´Qk7Y?at{cdkҪWTqԧ)JqeP ieX 伡UiMJ#O2ŽA#GJϞ=.v:}|իbڞ.]lbT=LZlQMmRb^xA 1Bwr96-j5 C0 j `jg!`@T߲I-oܸAKR2Cuֈe!czC0 ڈ4}ˢEi5^QIa[ Va!`!*y/]諯mP^:o%?K7ƏScʕ+]h%cv-rFA GKޱ&C#s-ȤhC1aT;E Ç~GcNY t1}CLأ:lcFsa^ \c<'6OƏy_9tcц\yP+D}^313` zt}F]GQ&֭[%I_)SB>A[Сc@t/vrU(<{V2~-ҦM[UE}s޿Wv]+)S;+QwnI2~ ۑի:(*ݭ确#[2mϩWG#7HAͤ(!#~)~0^o*MW@,ɓ' 1ԨQraIbO?#yi3Sp~'-m|TeӦM/k]/ T)ϗ:֭ 6 C0 #`cg!`@YTO=;P.Y)~7Ǎ5ٹ{wuWSe#I+\r˭+pϿ@.l~LC_'8wݭ =kg䓏˜9738K.7wO?|7UI:9ܑn+0DK'v,۹s;v$haN*뭮b*10b~%2SC0 G%[nݫN|cA/_[VRG\RoX6m*-j!֯sI' ]+3b~0!`!`K}]ʃG~8hwWJjjjp\V*bWԗw1_9{OTvcj J(nz1Fݘ77慇yڲUgGEuq .дC,|3?m1v}#pCq}`b A|&/&q `̓h !} {9g!̉1.ዘlv`ud3s}VyPk`~O[6??xt̜ (E5&ǧ&K}}!K pb3쁗v2=[rtWmb 94HWdmUV;=jժoo}Kců@/9},,>jz͕;c^_\1*whuq^l"~zcYKN~ޮ][%S¦6 f͚%x3I 8#j2VC0 CF0 CA |6#$jŇU%hl7|p/.kHV_*TnDyW%aCٶm\8:@OEtcSO;]n'+//;){|ES'|,^=K.ѣ/  `oT\p`s|]ΝxkHޏ|pi׮}m0 C$L$;x0Q} 䝷r߭~1s^{5; RE;d{yx胇 (8Ѓs1asShO4l 2\hq-~A<FwB1d1VɡPuM}@Xhaϖ>c~J5kyvסoX%H @Q %- £B >QӪ5R{PZ_}), BxIW=Z%S=Ŏ[ ͫfo~W}ZqE~~}(5M?q#~;棼]iFwʣMZo]$gdd믿%99neȳuVnzy\))r#%1N?KnNN1cH߾}c!`sm+5 C9j+1n۶UҔ9.r9~@o֬4T+L{ҽ{=_}O4?n4? 5'lذM_}rgTn|9#_.\ /<̝ &(Sw1sl͒3t3wCp+ѯz*#oՕq)v 0 C|q]_ =v\OQJj&O}"i]7|s8Wkp!iq C0 C*BU"1n)&/D(:2bJrR 2=PZ(^&t}-|) ]G zַc׀: Oscs-9ЇUXtX#""?h11兠]\,NcC '1tʉ}aX-PGhlU9 ºӏK1=#K}2%;Б<@ǴOmx@1DZ[C$F,Y$7-:*eHCڨb'}6c[lUU@]TNh}7m:juuNO4^1njE5\wc|8 -X!hs Ni?-Z$>A 7(T|m9?/?Ed;}_sKa-_*k׮ V?`]:!`!p@ w@,i!`Oh͝+7pt898M6ɯv?_ LCCyQ9C]?h~s䪫~jJ߹]i;ᄃ_֯JYt鰃L ]\ GqwʠA3Ηa4}CJXSO:wɱvحz_ V.Pgk!`@x'K}͘1L.=v烻~) nx1}/>y4A1?\HZC0 C0jxYe>}L6MF9F92R)"ȈJ?շ$;bR=1AEh0h%F v1]7rC|Ç8#kk ;vqhb> C?đ&XXl"AzOA=O0>P9??Oc|h>jIe,䃎ze8XO{!iXu]nM( 7pMP;Ep:N8Uu/'@`{%KTrŭҭW+%kMPT#vv&UEL,^6UHpGwhGtTaP;lT5I:uɒŋ$%%Uޕ||YYYr:~k3׮_V%:~W퍭e!`@ym;9o}-㎗?̐+sJ I2x`IeΜ9uyҲeKYz|]zt!yP͈SaC0 C0jK[āH W% t7t4k48. 7)&Z]GFWRnÕz0H8Z,"\g8q[>C,GF aɋf<casڅG-̯ 31sa$`ǂ01/x< as0aϸF<a~Á9䆎+>/y-ρ1??tO?;gdGۨYe֞o~KLBdBŕE;Pt(F_\%;0k*wү_վA}ɑ}Ilzܨ'@|G}+_t9z,ܽG~U _Z0NR_+@Xk\<fp rvKAUY6e\ PV\)S BԦuԋ_r1U~p[׉Xu孷|uwÆ tPP8j833Sԝ7o\KϞ= Kcb!`u#sl+4 Cyb~~~voKlS? <>n:x|FF_xQpɹT3R~{Us?9'\a}'A%Nb>83jX7^6 wb#Qg!`@d,/ |WoˑG)GPF̯;v˻ O儦$#_M&Qdb|c8=H2c>-?y?s.ǘ0sɼcU=cA`y8*?C \u꣐p $.zCz. @G0 l~\h0saԱD|@>b^Q#ku6s-b.NFztA^&֭y[%A@Z, X$@O;gAw^e|\8iӦ2ZIn"g J`R@WքZ'+=kKL_Nr[{t=c4oQN>v\Exhe1.&ն誊+YH6rIUOG;5]N>c'6\_I":3ΖzJ6l\S׮]K/M`!`@T `8 V!`@C@ =2mҲU+yY[C9Th3[hʏKVϏ?*?hg^rϽIbbbP]]bq7뽓M$%%E4O}+_`1 !`@C`ƍ5Zw۶䬳ΎHN#GV j!`@,/ *hEňu7*P+[#+a^=IN?S1YG ̓ 1(>$@ [lO4t/1yB0/Î}gl@*򣅎Q{ ~s2?sÇ:1?:۴sW[8\EC` hz9a>¹Bf,Vǵ1/O>hb~̬ @(BI߿t;خE?4:5O%jw꛶t;\9ђTգ>"^`+F^: P]$Wӫa1xRPydU Uӧ'{^:a#~,H (xQ$RN[Fm@߰` wwBc%VM&jW?SԩriT_k!`!`_{ΕUj!P{.1eO9w}XQ"3]?nFw?O:k^N=O42drœ^oq?x v7[ŗQV??&q\u]O!Ikr#Ε~5KOqepF S!`^yeddjNDP":%CO!$S1tA_̓y-c嘼hU9j}3c=\3/[d B0>F P8@,.o'cL  Ba}x^p< a,-3.Ѯ[g>C8f  (ex"Y1^(V&zܑA/\ ED@Tꕉ#3KؾG:]t=!+|~xvi(1{pb|`z XKC}zl̓OI K}~u- _U">*jQ#[\}@M?7#[ fuǏV}mR_mg0|OO(W m߾\qҸq:!`!P0b~:C0 @cv[,~ufcv '1(OCsb_Hl,Kб<ҠA$!xzDVZg+>%v}']'(;wM8KIc~uر]>ܚ.YfɸeHU\}qψXX0 Cn!p _M*11I.W|F̏0 C0 !PY^VU+1b~& 2gwy- M*DLME^Y.=\҅|#NujW/Vw5'(q@|bi:ƀ COA\`^ȏ`v3?Ž:~ 9D˾_'70v&aq B8Fˢ1N `}B{xB2.sB>qiǸ[I a1GkF~en1vY'6\ :0Kd佻{7LS2337^ĩȑ:IL\ٝHn7|%?B⚢p|!عS~ZJ-G7ڽb9`]OgSַdIl}QqxTw}te uKY[d[s刡7?"g)-qqRG/-UY_aH}-$a~޵C6\/ÒG!կ/=z>+ E kҤILnwo5 C0 :ɴ!`D %l,G/QdmVhDڧ$ʄ/^8dP]b~ZZ\{M`SO;]!>;Y^+ҲU+о̘ &+^W/WV_Y0 C |uٲuKKƛ~IZĈB!`!*˪jF/WU P>&eˁM̯z.uZO;]E6~/Z1ǃlRYܣ{i׮]P`}i=&=$]{vn|P " "j=S /I[/ .=^c8Giգ?P[5.FO?֍VKל~rkRsDK[_-g.ruԇy}Y}{`-[:r~rrrPgC0 C1nG[!`@t!PYb>rTV{-dw%+KQ]b~FFy.| =Bӧmn^Z.}_d7p2hg)?P7o.3gΔw~K֯_\w2b9/.Ųaz7; 9u6 /Lt~/g=Q\B~{X >bpɓ&믿gBXd$ٳf9|싘 #W17 CMl޼I~-S;v$C#G]m!`@,/1nq]`7|Srs9/]db>) /#OM4U`o ~1mC )9cvl&|0.e~a<"?|9au _CB02?8a* TWHbȁ> `h1ZQ/Ƀtœ5kNٴx!smX 9W 6rF/Q~aWCeԨQjTII%_jg}#ޞ{yY`A__y啒Y0 C0j?F̯V`!}T__ﭝyX9C+i yzo%O]Tr_.1nρ#37"' ^1vyʿv|)&Ӧ}6??r?Lz}%6. Hll=ݏS{OK*o=S?P&LܗB䗧*͚5sI݂u@IDAT7ޠ@ҐO3-_V21\0 C#0o޼p/%%9Ey4j(ܡK3b~ 8l`!`@#@^VF^#}b>.][.]*[l7ʪOeǎbijJPDqSͱac٪- A4 a .2cÆc"Θc~Ƃ?|1}cdK3?x=sc &NЇXp!,X0@-q2Øࠅs:* s.4NAġ1G[Cxy[~M[?.vnI>XX\4Y/+[B.IϘ#*N S seMar.N:KÆx.!|V~;IZ̑ú'I|l/POIXOY <-njh}SfLE1s${/A_>PO .UXXPTbZT6ss$}atr#R_D"z5^}wNGHϟ/<~qɹ瞻JJ2b~TE7F2wܠ{&M9_L'c!`#Sg!`D1U!s9 ˝7^MKvv+q 'WZ?3ӗ90 b1.bp>r/z o6szC¯҂X}Y4 CK!PÎvю1}=#Ԗ>.r?Yv9i!GɦO>]%26KAҰqc__woDj]> [wx߾}ߖ.+RK˰SuέöS~(XoeϦ/SFi:A5Ӝz~%]dݺ\YB$V#Md$LFXַ݊Swݐ%-d@򋾑/10a.'t>" ^sYg%4$F̯4dtkL"f ځM7x:!`!Pk0b~9UV!`@-B$w?m Rrdݦq4y^pS?ܥKif{<ooI7))ѽeV{7n|iӶmw-o=yyy ,JnZ7nnFŲ$X_V׿TOʲ*_ߡ}9C74 C0 C`?!{NUK9rꩧJBBɷT5^y~F/!7 C0 C  1]vruEzKkꫯ;F, 棅?w]3w--^ ,uc'd@phSSQz4$ps'8š_7M1<[B?FvH?9ih<~K;/5q6X7<1NWMBJCX8E_9 /E|ݠ0}B01t|c |>3Z \3Z_ԉ}qpzFֻ%Vm ,Q:Yd#Ouw),"acmJ#m6zOBvl#I\Iԗ[O2w%HnL+ixP_ic~E_Ȃٲp˓?ɩ/wKVҫi?9{3SӦM> h/SSS$a͛7;^  TܺuZ-" WV_YʷǃL̘1#h?Z&!`!P0b~?C0 CŴU_ 둚(cztܸ3KyÏet]ou+ 6f=ʑGWC0 C ؼy|6}lٺJe!ɀG>eʺJ*dJeƆ!`!`w;Vc0 NT$dҤI } 7r#'ZbN:U>s9#d@_PȽ+ 6 $y睎}xgIIN1>ylu)3+睂]2vlΒsc H|xILJ' >P'xBugʐ!C[{=oW^rEF!`!`D {`Ԁb!`D`Azhu5TWwZҽ+Y|L=ȣ)W^sꮷ])$;oR"7ШLF_N!` 찹hQ̜9S22+TGzҵkW%)U`BIad}cS!`!`D!&Lз/6B>| 6,s?x ?vO'1; aB>&| DH }lrR-d 8=S 1`9'~Gc[A`fgln ;a1|ߏ?ԁ96>̯%c?U$ .? 9C@'}r-/0 qΘhy0 c-Ay1G_#t[>]'Ϛ1v~~</0萕NUXP_CN"WT2{l>IwPL8pQ׭1&Ϝ2 C0 Y5!`D# 惠_B>5!G] ۂ;;ิNMK&u]oukr0 ClܸQ7Z)6 ߞ/[ h͚5vmIΝ+ɈJ C0 C@C`ڴiݸqcix+Ζ`(lye901c6jH6mZ-r>H?)xGJԤsez29[1x6Г [n>Ӯ+Ώ9ȅf~U~E>G 1c<lh|hy`\T]1aYnŢY :(RB0AGG:A0&~Lg c1l-`=0?Og~^? |skG̜w!`=_Ω0 C0"#E7 C8pإ;dmAʿk[ia|iӺٿ 48dg';!CwCKꮷu K[!`!`0b] !`!`.v%O<>*'&&W_-͚5x.K]m`<,\0bkN;0ϫޟl]+,,E b5jybFs K4+轊DPclQ(1\.jBԝe=ϙ.;3 }3眷 >)=&1C xcuИOu %iؙ?=63'A.>o}s۞gr Df꘭Z=r?}eccL]vҟڧ5t 0kf[6P6zo,m7o|yB=k}N}Nڈu] k>kFϽ|3?yu0<2v~+H 1VPsI!!8ޚkWkV-7#ѝs +^H@@@@o7 u9fX~ߖﴋvo?CQGUvZ$]hο_f|grG#656gA^}=su~uLLַx B@2?H{1ưG| l[izgFN1'{m,zć`.YbNr>NKGFW_'"!>i̿=(B B B%_l?"!!!!!!!!*ކ˹B B B B B B#P__ߘViwY9%%k26U3hcƇk}aMs窚XlꑓG8X{PmaP/Y`S> DZr[[^ p.>tm}}]v^!?fxvsewm}kYkcG'$!!!!!Mexxy:B B B B B B B f %KYr3B B B B B n>/|rxu1a%= YF1X[UjeﺭO,b_?6ݻn̚'s+Y'VO[DM/t-`uđ&\uD,u m|cku~cbc(Ě!G,uߞ6 <1߼[=o@@@@@m ʯ:?B B B B B B B viw]nk]9\@@@@@ܬOEWAc>`O:#0GlGϺC^zFǞ\5agm599[l|XfuÏC쯯#_Md=ewfGLqlDH@@@@@o۲f ?@@@@@@@@jϟ_g]X9O@@@@@4WsEkAئx{13G5FFtǞdĜqn萶>kzG=6kc99wnkCXl;RC3 g*ͫs݂vI0C~|$F]vLVkan,,ba'Ye,:|} =CxϬ.}{.tEol4͂`&64B[q@@@@@@@7H@@@@@@@C7H@@@@@x{ =ZW>bg#=klUfO5B:Ag}mvs,eW;ѓ?\|vϣճn@G}~B pb!0woւ 1]TS`[5| Y;ěC?eM<0jVk./ᑱsJ"!!!!! 2<eaf֎n3:`ܮoFg ԉ|mkA}|յUn_gd6z<{|YMYH3DH>0szH>춦 p;c%xANe9Si3Y]g^ƍ3!!!!!!Xvm|*  ̙3e |$B B B B B B`{O>Wcfn6;q{w&kYvߦO3?'6aVWo}ϋ ?j1UL~uئ%$\΁9vv^5ouy맽<ޱ͋sjPv@^ΉxV1V!!!!!!!5 6to_ƟYlM@@@@@@@'0›wۍ_GB B B B B B nn^xa|+fؾjmܧO;6fe׃݁:a&/6wZ?r벋!hZ:=m{NrxGˌ{P?v^ݧ'YEgnJ.xa>vḉ0`Ƀyܛغ򛳍Æ7ypvc?b5sxvޘs6mmAu֕믿l迿}@@@@@@@T w߽̝;ДЋo@@@@@f⁁24XWngٷ2WuOYLjqm}g_2A=}ڽwqont䠧B=ПC9ڳu~tk/a /X\Esuٻp ?u>{=kܣ19sV=XnAos?k9eW)u?:7@@@@@@@@@@@@@@@@@@@@@F翮Jmטk5oG7N|ӻ۞гX|3k0G6!z6#Eq콣ށa}|zr3.đܞ05 {qȪs7m&<!!!!!!!!!!!!!!!!!!!!!0; l.{-zJ=5uf{YCУcl/2}g=yXgFn렳o=6ZWS'd:uٳYng}~3E^Sӓ˰CLdpӦ?~e@<&XE6 ;u<v3Uug'b>SK=6<vϩurx<I`pp -ZpB=uИOA"fS_՝Nb~]3;|8SApևёF3Nό|{bst v$bu٭^&t}CN0 #G=xxXAܮ+>~c}&Wҕã1U U⡮1zuOL_2=}v1uK ϞAlnz!:l舱?cNMc.4y]8/Y9afx^Xߪꄽw/~Z$GK?Ys`G%|gíƑ]X#3s{~@ڬ58htlg}#!!!!!!!!!!!!!!!!!!!!!Wױf,L_m>׌GogmOs[Շڈ1W:=}ַͥ5ᬝ=5a=+#z1-$x &vxxm\5zڈaД. Ƣt-``#޳0#zt<>o>9y^P1<=O]v>U67rx\"!!!!!!!!!!!!!!!!!!!!!͛{ WOuA==b}[6= bgVLye1eB} 𧟚xm"Ƈtޛ|a\0Q{o>㪪UCuSI3Dp^\^= ‡D +䄍oF#!!!!!!!!!!!!!!!!!!!!!9sʒ ZϾu؛L0b3:kdže̞ üNӆĶ^46rY=b8'k=v̾=֯ B}DiIzž5uTsŇc&6./P[?~԰xDmٰX#㋘:`CO]73㹌cFG]}Qo_:<2vNL$B B B B B B B B B B B B B B B B B B B B B`,CXu Gl2 m<:zӧ]K=l6 F.6f}˄ښcc?o篮]/7q,ݴKT!9kPs37kٍ^^y`O>7vvfe/GC~KtZiڻqVX1L1sX62MPGB B B B B B B B B B B B B B B B B B B B B f#xh Wֱ{Flri~j/[nj/y֧wmמj3=ОGao^sssV`ïݓfg6-1񴂷q`"roԣC:cόE,ul >;&:u 5hzm;:V޻\Y7 kgVSH@@@@@@@@@@@@@@@@@@@@,%088Pߘk_WA=Ĭ'acV]4}D#ư!6z36obFۮLߵ5wsRccN1/t:mSyچvmoOv>[R$'?{|c÷2s'6A}ẏa%޼sت57lHH`pp6?:Va/5 1nc}{LJXs1miPWb}yCR?r[.3"ε笪,ik<>ı7ߌĢ3JR= ޚ^f/l.f|ɇO;6bc>>Z듓υ7=3Fg7e6|:#/c߱5l("LD`Μ9e4_Uǚ:av56D~d=M=й^+>ube/7\m}bБC1=ZU55!Lftxxڵ{f ,yk>+@ .>Dﹱ7>ٍ19;6M>쵱`Y{V<1(u<<4Ma^gzuӻz˲y,dϛy~"gj=4tiϩ/ k YTǾ#ݼtH`N^xWֱ:&b|G߱qeߵo׎c6z1>IJ_sn}cy#n{3q{{[uYݦ'$|B^Kq cמ{|wbmM\7z{<‡A|;[&'k| Z5ߣW.U UC OיA}4_l2.;aOMGvbf|3OMmbO-+lݺǚ\ԗ3qe'f`#ֻ}ߴŋO;A p]ϋz}bQxS=kY#YyNlz=GÚs{yaF!7y75q6 Т'ֳ_Q:hc!fMk~033?cM=g𫪋o/3ֆzfǰۺM;4y\tGiksoOy.a6sQ\su->AX#Tou!'{2bF,߸u$B B B B B B B B B B B B B B B B B B B B B`kɢٯcM3zi'~dzձF_ߍ7o?=ǟ bò~ngdŶy<<;qcFep]'okgJ⡦[(^\T7ƋpYzt71c3kc؛Cއa ?}Ar0fNƣGw-_k⑶>:[kn-Yu^H@@@@@@@@@@@@@@@@@@@@l"000P-Wձzys>BMwl3>vuFX= Ke'Gi,˼pk8C?fC>g{n;?gbxssk쥦%=g^xaOfl]8ї7㧽c~fDg&y|Yk=sޏߣϫ#cӗ_IDB B B B B B B B B B B B B B B B B B B B B`3gNYx +܆d#ezYÌ}4FL,5ISC9:'/('/>y>kFgͺ>cϹag`^1%A:l85Kx1r:<m:8> rm"3 QG>tm~h}={9gk87~kA^)#ֱgte>WU=1E>eŁճum0Y78}̅ A}\}0h}Yǚ˳[?l̞: m_uM@@@@@@@@@@@@@@@@@@@@@F[ޘr=uaAg06h|WY֏_eGt{}͚ w_ NamüZ۞!u!9QqMk{)N`AypQzzDɉ5}P8 G=붾gT{=#Y[_F>u7W +/^xbŠ:a4=2+} 0ы=Ǭa#ubzYg^{o][aOun덏,k.>;oP$NzYe~o/!^Z<~UMK چ|6U;"ձF<{C<61׎9z|ֱt:GB B B B B B B B B B B B B B B B B B B B B f)xh Ac>`O:e;=XyF?315>~0ޞgr CϺco_4ks1Uy&G=2H[_q4|BVuΡSDos!hsZ{V.{D=~ny>fjG9ٷXk㪺C?9>Lֱ誳7mt$B B B B B B B B B B B B B B B B B B B B B`6Ҙz+X[mS>=z4;lT^69]FK<6oO}Z}uG<=WGb^ڇƵk-C^:|!LCyq1Zu;!qyk7xg⛂vҎg0{fo aYce.m̈3kju#oLx$B B B B B B B B B B B B B B B B B B B B B`6Sߘz1߆rMì+X.}? |S֮ ?O~{ɣ稪NggeOf}O~d~{.hgx1?3ܷvbKgŽ߷'$Ať ظ[ƒG[]niN&M~!5|;)AǺo}Y[s˞5u`,cѱ5gm(@@@@@@@@@@@@@@@@@@@@@*{fN5[OOazzYkG^za^_Z_ԥe>gONfr09LNm}z붻yrgB j999룳>~NmM쮱{@kfgo@tĴvboϧ442S6qH@@@@@@@@@@@@@@@@@@@@l$080PИUac63'Y{Uژmh_5>uًekǩӷt>ws/>{3AO>9XG۸v_->^y^5Ӭ :_ibлn'`ˌ3/6jXv]mo{9+b_cڸ離@@@@@@@@@@@@@@@@@@@@@*}o̧1a{ {)ϣßqӋ=m(k,k|!ZY1zk}mUNZ=1Z58t5Ɂ}n{<w\;ů&bwrxOGo\Ƣs L?03b^|@Wo =!֔z|u5Qm:sf\"!!!!!!!!!!!!!!!!!!!!!גٯcm6C̚bKFCX_t>!w_ɃvlZߞgk gN%?y{?F{zelL]r>mz&kz|c#pm~AO-c]fsÚ1m.|9\3,a=p{I.o! 1BCOb֯Y!ַ"謯C96i?ptlͧ6nAM % 7?^Q(;L3} mfǮO]vaƟxz|sx {~bV8t֧Yg}|̅N<1==Sıׯ.;Ae^ͯ+Ϊs$B B B B B B B B B B B B B B B B B B B B B`ؼys{WԱziv_՝~3׾eۗ?Œam_5{.غG?Z<ڬ]3>q]nrX=n9m!y!rr!ăsXcC::Ď?/h\,!Z;"ַg ~C>e9"Cco4e-̙S,^xb=:[s ni&N16zm^_ȡOƞh7ݞ?LoGN eo?vc rm=รTaϚ\Ƌ1< .NژM#yѿ.;AsSLJxlG{yόzԟW~#cgDB B B B B B B B B B B B B B B B B B B B B f)2hWԱݙSf#dmij/?}gAo/`ykM=O=?{ijPzsoM`C[q2A6~efK$@3\=bs~O}Xk0IlNe,sG|{Ag:k&C&!!!!!!!!!!!!!!!!!!!!!0 C NޘO0}4 3SZ=җaؽ:fc#@pM.ֈMks>anhsQk#b6eA C_aGogDg,zzbEGqArzxΰŦ̥}m k.͋Sx7fk2o4ݓ\m :m5>^.|ϚGO.m5; H@@@@@@@@@@@@@@@@@@@@$088Pߘk_WoAo2jzY3WL<mƎƘ~e}Z0KBnuF4~#=#z|oam̈Է'۵5o>st L78 yަrֈ1t{/,fkc^}[ڼ)V;@޳Rs"M ~3vx@.兼Bа1t6㏍Z4<ԉ!GμG?0|;'E?w~5o}ױؚ6ld$B B B B B B B B B B B B B B B B B B B B B`63gNYx!WձzgzS=z5=vcr6_?YXӯ?3ys>im0fF\]==+~ޅ"V? }V5MOH0SaqCrXC/3kK۞??|[}ǵ&3&c#š4㾭Y͝GN֞XYDz߯=#!!!!!!!!!!!!!!!!!!!!!鯨7K̰}Ulm&!>c{a ȬǦէq''s&_xfџm,14^g!'`'L+wxry`Gک-,:[07z m<ڙ05'qk̈!\ yzc7=Y5YEi̿|M5_@[FسطӣcocqSսMFX]e&:Z;w.;ޏYH,k:[뙣s M'E.p׏5bn<_N<0S69NG~y>g>399ȇM gue Zy3nH`N^xџԳ_UǺ:چ{d5kbͮU&zzyu_Fȅ36뇏MGǺϚX}m,9͋zVsެ̏'zoNTh>ayp90PxAfbog9L>gol]vkf oofx#z;z zo|(`:=kbɪ@@@@@@@@@@mWׯ/|mƷkvun!!!!!!!!PC O,:]fWl5 3[bG]vbMgɃ?ڼu&?涾䥾֮>3Lߵ%6UU9iƷkrLIHćgb] ǚ}ϙl7vcnƌ3v_N#=03{z"K{\]v{t L@b<7VG}l6<#omM~νvϋԱttl͙7@@@@@@@@@M1ؘ볶>} 5ݷg~×m} [SPOuap]oeu䡦5C{(m}bvbѱGo6{+_N'׾ԭ|n/ˮoImDokV*<_a_/;Q)>MhQޢrzgB B B B B B B B vUeޘe4+U3GM4:zY#/_51l}6ݦwQ[?Y^Mr aO>tm~k;S:5O3`cϔgTڃxAj~텙[^(^ƒi&bvm}H&kN}΂B>[ַu|ۚ;57ֱؙeEa_e͚Փ~-<}ʶ1n4MO<{~dc)a :ޙ\~qm)G?ꨲ瞼c敖׻N{Wyc3쪍\ _/\w͏nZBbtЩeX 5puƩ#޳·E9& yN{g+-gGa0nw-,YR?ptYrey'~ _B9eی9 ;1q7k\~[]Fws+}!!!!!!!!!!1u|)n=fVhBGKx+ӄl Xḃ{kUUwfլG.w_M]b[?6:gƗY\1mN}wx`; G.'XHߗxji}|Wsl:wiYٚb^r>e'~7#ڴRhя~Tiܹok9G=vǗ\wug|Ծ{^>u'[ 7 Wʝtmf]vm9,z>k|_-+^Q~ߕګ~1=p~Yn]xs'< mCVַ]?~Y9+˵^[>(W\~yv+xƟtnw}q?[}1],VO;!߾[~_K?{?|vyfK_ryK^K3Ï|x/ķcXz^4.'tb#i\O>0D|_oWaVGu?qKKTdGyK {5+VLH}<(W.ouA)4poC?=&ܭer0@Z=k ^1}{!c!F_ "\̈zZ|~szu%=B>:s&SWM$v2eCtm IMC`xxNΟ^hp;2::R^n]x?'/CCC;8UK/o_fWu[?ϻ_G(vD֭\v_]~nyCT玤4 (6[ \vYh=F-B B B B f% .ly߾|e``vXu|ڻO/;x_׼ڧ1>Q.mמ~ݷˏ~ 14w-o+>ݿ+&g3}jq+?:SwwWU哟D>.=yw{O1~cz#Qη=;SY;ڈ>yט=[Î(Q~+vm4]iva<vVc>ȱ„<)O.oOЇOOy~y c //Y@5=أ|/*'R{޴g?vA&q;߹-}@]'?W7=~0[V+wbڐ z+ 'Si}5-9|9yv?,o|ÛO~2~>hB B B B B B B B &#fEANz!F8mژm'qm'|͉/zCZlG6de'x}3N{aFk#ܞbSF@epza359=#m͇9Yg|9|13v?o̯"7|zQ}NƵn/;M:yCʇ>w7;=.wÍܘC!!!!0А6xezq S{JyKBV3M[ȷ_6 /_k|CqO9kw}'_N{i6CxiCȢzO-im@3x›%ox3_\}Oy)~TBumyq~q{A[20a >ru(n&$ݲMw.Lxk:B B B B B B B B n2p/<ǘ^j ; ԁ،o2t*ヸgV9{6^g8 kfrٍzqM}nM})eҾsh=@/,u%Fu9ၠ7y볶~K_A^S1~G#@w}mof >԰^rx,#!pSO z67,G{w?Z~a1f1|0tIݛlϷ^3TYm=+W7~ $wݕF9ײo~ݟ;O?4/vWmlҹ%e~ صМ?BS~Kלڴ2w=w//}K/zO-ݖ{7׿/_޹<昭.%N/yK`};έC\]znidy[W` ۽^}&2|'?ܫ2L׷? v5Xog=Ymn^{uoA/N&;15x|w^0G}̄p O)/| j{^{'<ϟ?<(sԟ}[_>{dN?)~ͫg=gB)~;ޱ\yƏ| /eh̏>ߥ;NblAVu@@@@@@@@xP:a !=b2>=eЃ=\5cku̞ ;by텮^nt ڳcMqԳsTU/zr2F,^3!$ 9h9yŗ5fRG|}m3>~#XZɅCPSksY|nm>r17:s&̑xcG[%\Tׯ_6-Xo`ļjٲe;xʶYvnw_X~i82-k>y嬳?{?O-vgŶ4|< .i{ ۳yۘOU~ey3ީ>(zūƍٍ/*_}xdc9#KYdE<5K|i9ş'v.,]vYyγ6w kwNC-_WK^ wot7>)g~S&6}yc91.߫xq_(Hۘ?::Z/e޵,׿./8E?Qַw~wVW@X`L1X{ {A(Xذ[l1WQ\Fw.f`fP{&a.jN8T;͇i##d0aG~|5E~饣/}|{&L!V~h/y0O_m3':Gy&cn[W"hQ1A}cwwҋ/G͵jgj7RxŕǛN6YJ@E:K~'B -4=ϲd#00009~!᧟~ ~X8!u^O?90v옰̲˄{]X??vJp7x*Upo;łe wv.}Qj,̗O$_.ui;ݺ^ԙy\x4ṑaϥÖ[m9M]N;T?a} '%.g %~o <9sc!bz?m.4 H +y&k*^1>s*b=c=1xƓw UUU0!C7.T`“E^{s#pХSv0\wi?>Ѓcr HM{ψ{'pӅaCR}/չ=Gxꩧ [,{a;'X}8b&`&`&`&`&`&`&`&`@$6[!0_! I{AּUC9k"RLyh%M1abN:jYS,|%ؕ_'b9i#z W `(L0梪(}@WLtONO< $_ėgN}ʭVeKK`U)&zZ'zDZb N3Sϗ977w[~xZ/~;PlLtǠ Mc_x~<ŗYS8 |w᭷ G~P 뭻nXiJ8=g /J*^{6:|clS,>!~!~뭷Y<\'_0_<|0|28 C<|V 뭿^1Wo_vܨc2Ra~׊/09!QX >a=toN;n{N<4s?7lvx3=i/}<|.;K]}x)}yO>$<OyDxȪO>_嗡U{S8?=~5\c '0|gwFL2aȽSo.ੂoPc]S|].P_ sЗ=-qhCd\aO~Zz5Vhd/+Ej[.$oˑGZL`|v; K}jGSиi_v =gݵGJn9xLZNϿ=ƍߨiBKc + Wi h8%^q1MԧX<:/ϹtMڗO:bSO?%,Kׇ6XP_ȑE`˪ӕ^mnoT;5}7ÆoƏnj\ ]v'#OHE'tv}__xEᖾO>dXxSޯpU?ʅG3}m٦+.˧u_E: Uϩ_wnjyaxR'NI*a^Z+pבG\ 4b&`&`&`&` iOx0s);bj]DWa>1>Lx<̝Bwj靘a=. ?Bq+?稴(̯7qJP-g1k()kF͘XƧ+ +\xVjn햰ZkN76t܀S߯=;W^{g}rUhC z*g:oE ܗZjz${&8'/>GY~k1D|I^O=#+W{qdxG5 'tB=<Θb~f O,t)\}Uΰi> /Nזxr:=];O @C6[r/*U=W8zdDm ?܎ꥱW.&ZahmGأӺbK8W3(}s)uh+vEWkBjX iZb9DXxZCˆYI٢WL\@D~ZKc|ŭMI,֫kbC_R-H= v8}f0__jeg}4p?wy2)r&/GNoIZhp;/)sM~VYuo@tJ +Q*W*ZK98/-.ө-<aNSXλa2-šk; _L9lf 9YStzX6mú뭓s1='bRSO?1 Bl+ ;>4T]Sa~]<^]v o'} )/?1d(Lxx:c3SO?5V[po=d ]_~r<TNEXy ;츃ԍOxJz@ru7\Ydpb"욫 ^{N8 4HkDQN=N#|OLalgtʟs~ 5}~-h$t!40f=DqN׍ {_'lu#?O:ǟH7bnzFYgFKWWI yb~C>0_7gK7La>v烌l%\+r)i|%QG i{˗]v0 P"93BLq< SOKZl=аe|7 zd(牧"o~8! XҦm4,i?{/dS,b&`&`&`&`&`&`&`&`(mۤa1xΙV5ĪxQwm걱n>s~/_1Ϝ5V\g秆We;K~씇9_qsi/nQcd}ylt8-֧ipZbO}ց;.DQvZtcjFW, 0{} _|KѪ10u.la>kK 9uK.*`K=I% }0,?O 6Q/ oRwEo]bNW"+.%݃?ڷo9͋ŗGg״)9ɕq<~#,Ӥ:G\nƨ*jz guFK|wq4.O;bN $@ ÿS"7 qJ$ONNzRv*./̯x7׺ux!llx(}9&7mGb\6 ۤ#ZPtӾCJv㏇[uM?,歝w%Aa32ez/`ۇs;n<̳x!+v7{1% "޻śߝr7!jN^Ӛ?/>InڴY_߰z]ĺe^a=H]g^Tm=̷DC:㆝M ub Dw R;E%}; U(>ZڶξkؾK'sYgUr::kSN>5}ԛ0 7_B0awG=L\0„ 񉞷>gۈ$7$,P.}=QL7o}dօ[} {yT?8 Ç~ubLpb~~W~C5мN)0f0n0vt#>=O<\տ*in)&100000000&@P-91xM5̺1V9-z hm2d8G-</6yl\^[5GK ֚3ǘi˜['vS1"}@ .~+cn?Eb-JϘx{b'//8]j7j쀉Yf|g8Ӌ]yՕKXŧ %'#>]tbN~yWzz0jԨ:igsVԹSQZL׀DIRH'xoU__z9O4lShkF߭Yw ?1w|T.T4p ip,X"jH.8p-{D8Ӫ0>z8蔦_>ϱP>:CX4=&>-{ae)RV*yđGMG~]|3s+~U>-g}gQa>bt" 6X?>p؎T:NI=sS~AΝUT?S:&`&`&`&`&`&`&`&`&0+\|ȨjRR0aj?V1'Ktcl0էŞ2V?vX>Ϝ~|ʯyl$׳Wʼnɏ1[Aqz,Cς\B`ƙGImZE{#W͓ʯ\&~4!?yŠžyC(G9O;^FR ' a@m G:nQRӎ@Gxd^xJI M64{v^1GgN[u*+S6 -\ɼtM'k-V0sHo` ²TGLS\~a6ɬT gz k3N?3 cPbJ?v݅ROxOO. U^guc}_3&nSC:1;usʩx:7'NˋIRj\scUHxRʌ?Y^޹~ "maO+yaNe{QD_7=W^:0000~hhx>>qd6<5S _|+wh?Sn3 Sꪫ0 ݙߡ>+uGOH:?rɋy]k+R2>PĤ`Yqb>k\|xB{.3[?nܸ u)̟ah曅K =$?wKz_k[շ0?Rӹ5w=zT%ϡ0/OD O%C_N-vZح(Q=zTZ]#lAYԗ/v\l^Et'U|Š v+&kW~tSsyVi%M<3-'/Ȫck1J6,Î?xZ#a u_ ~4~Rn߅}. K+?<{tHM'=ذȬQeۮ+Å5-vqn,@СCxQ,yEya~N_޿^+B|נ;lS .#r_ #{K>8trNE:믿~gu^O>Ch"zu}e@q# 4A7>*NfsC  yɍLw<~CUλV+쑆.̟{4ϻ~LY{x<%sʎgߴ.>qpO?7~fA5k<}kJH <rּZwd#BKLLLLLLLLf)f͚ƃ`ZvI>xQGL4 SLcls{"{G-=}D:wkW"Gϻ'fJNײsN32ka}Ёgy6>e`p=wVEӹo]_3&NOuλ_>|)wNN+jGEya~Cu"zgimC%N?o>΁Ǫ4};|sD_E:-{.?C6͛*w9ɮ2&^XxÓO?Q1 xm_zVm=a&`&`&`&`$[o5 6,TmS*WU o.O|d* g 'QnP\|Yg;?p|aНwh0W5lqbR㏇?1;4wtZٗw<^%} :n1.}qO9XJ~⻚j/g}F8k:Z~jɓ"SOKx]wW53{ /Nx]$a:#g@?>>rp77{ύzE_S "6۴Nbα񢎘g.jA--cn1saC+>DR=4s{ؑG>^#ꡉ|KE/]즾|KcOZkb?ʏ|: JX8 #6j&g3nDLt@_y1.ϯZk4)';jmĔGOkX=gw]5ĉZj[ϩW7بx|dX ,~K^ /conu+O.&bgȑ񴩷c {jF Z E6"9s%=X'}y;Sk)̿/k6}f?_5I# >hra~MBFuI}'}qNJ_p+H }v,$Ȼ }/rc=I'5\x/nMLLLLf~_?Əldm,Y!cǎM'U6mfE_TL G,mf k9?~O6ɣ<4&:m_U5&8%~j䦯zbPyC--+#N9Cq/q(Ė8Ȏb7 ~X7Blt(}t"I4ּlʡFvW L|kjgNC%*gѺQ41^0|5yWZaˏ1)sK>8k!_e}S~cE}?j@l-&0[ Զ0ŝt)a=Տ]bݻN9i3Xκ/*NQ?_o&ӎ%_n.asP╊V+;{/j{S 3a„t*f9IGG^eM7]oiЌ5*tie\Ka> k44šzi'x|uQix}`:;/DZ!oc.tIOGڰa WlI:MxFrl4TaO>z#QSO{~Wμ|?m4YL[nesiil0000000oғgpI'CMY$+~#̓O1O˅Vٿ\CgmcK徹]4)e]5sf)‹a׸w 4sduŕX=>|bO>' u֡ܳ-~pg~&|!x?m.'QK|K©;tڜ%X}+V  Lo1L4)8kã/ҒG綍__|EdMӖ9{'Ƶ*Apх7-t)̧0ķl2˳bqС^={Upb"|9퉧#U]^+.2\}/şes=wl͋P* NCS΁-kv9ws=¡=]2@~>`gqV;ҫq̱Gu^oLLLLLL`V(?$$ϓ߼700000000PٶM]Άk|'X*#ּXu{1^KC1V<<٣#.ljɯ[RN<>kZ!=:, RQBӧ%>a,Ic6 hQĮeGpa(|K<`ʏ籴_gn;;ϯ/Gol%P0K.믿.Yk%CyDAya aqtuݙ*G<"|AIw߅c>NPʪG'~ɕW]tX/;ilr}cԧXRj%=m=°aBÁu,^0½K!3BdHY>СtWp{UW Kرc45nvtGI)ob~kzJ+sT?6FU싢i'*./o;vi"}Ǎ:k9̳o/tܸSQL*E=?Qᆟ9*~#_y.ƿGs=2ez/$O:!,rw ]wr 杗YLLLLLLLfkx)gs4z+LLLLLLLLLL͚5 k-nxKE;RCL2-SN C!'bO?.IG $l1¼֠hc _.|W,U~2ϥ/;Xi^b7 sbɏvgN>Z @ ycLĴf泺 /(r:aV /_m—_~N|vݦk'3)G}lI~{N5 Ż{tk/8^e56/?XmUgzV+xĈ ʥ+oy2u7\VXaF;Y&=pa= ^= ,<_Ie_8nFa$9Ir3zr0aBe=C?PLxSʻ<of1?3 'bk4ޤ5*7oP])w} ww=xO);0~륧lxʜ*t6|ᇁ\{ >$y2>c~tdn%ݻ;Ϳa{|n?_8ē=^l 'x|:E$&`&`&`&`&`&`&P3?C+o 4k4_描Q =-:;j5R>OM2;YX*bU/;}ּZN~W_c?-"G+)F P?OӘ #> fv|d[X!UN`NA?>6zGa^OdNTM6̡Ǟx\d|D z|mUc'L-&'ܛv٬X+ӄ+Iya 4)Py[_]gi c_cB /ܢ~f9{ҤaE -ZR_F\G1cƆmr9ǎ (a_/O׫O/",M6KuO7||7aI9Y^?{*>a0W|7U,puk&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`4'טxQ L 1\;֘"HcЫ6*g#raJe9Zbnq 1XꬥWGA/b CKqk-$kd6 i# VN6${eKU?vb`4VsUSUc1&y?кБ_Å>o?χN[b}i^{GbNv[sUu(WB:BX$EQ Gϥ ]il5b Ph>պ*_1g[I)?:5X.+lh'Eϕ!zu}:Oe.ra\sY1Ut\_pLLgB?00000000000000009|N;8^|O}1\S[̅2 ݫ&YsQl=Ew2ƞK!I_WCSxa<:嗏b+_+}>梸c ~Z[?&nb+.cD@yk^X-z]ē1>#/ȌG61ϋoSylNJ\^}XZfP ZŠ>81]՘xbOYLI'dqs< ˔./' ׯ I +4pl(8/ QA9} їϕ+z%⇎F*9)vZ/s0Fj'6+vFuZ37(磏9u%'-|p% A\+l_m4)yae'=9TOn.r(?kAv=";G*c7W8^t1O~~&N^c0~'b(O#N,|,ɟx\󲧟_i[{c`yxEN'Z76;^9z%3e1/"|2@ &t!4o_O?#OU 7 :3v B0b0mk1 39 /@ӦMB֭v{4^E015*4$"ǏQ lQyj\ɟV{-~vˏVEZ9+ML_1y?Nv^9mEIMA:m;.na-v*fǦ&c_y< bkXB> }WƊ~cmż?ző^VZkQ 4p000000000000000000000HYf|-vk⥢MSKL]2($/dd#y?5' =9e *cCn>s\ĤƚhYU?W^k-"Qj\ß$oaZ0-c|FӋȘ_O/EP~\un8Z O n8b1c艍U]5nĉ-&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`m#}Xŋb }%x[뗩eZ]\ʏ^'tOSlcW<[n֎1(-X:Z-4%|4/6+Mc+W8酗ZbW,$ZsINx^l#>mjQ~t#īQcNLLLLLLLLLLLLLLLLLLLLL1hڴihӺ%'~xI]VmUt꒙nQ2:]U,c-cy?{<3"yqs?~E~S9)$~fW/!`}%_6*6׳ 8|ya)LghVoMqi$}.|9GT j'^_M˟VNkPS/*yƫQU\IXLLLLLLLLLLLLLLLLLLLLLhҤIhۦnqʼnSkLK-111O1Ǵب~fNK]Ng,QbbXy[džib>0X>f9<̳'D\a9.;v >蘫hu mrf } O:r¼ ڕ_14f-JkOԋ#[+:<|? _q(?sq!/q[kGX# @#00ʼn5R]1ҩ['ˎyl^1}C-saNO+}G}K`m<:O}0h]1amТkS-q尰gC*,hzpgzdaE"?6뉃s9*%{ʋQGOl+ZtÉ=vIeLLLLLLLLLLLLLLLLLLLLL15uD81Zdꉩ%X8ЫX󪓎SWxlU"uyQ>!\ʯ:i|qaX^Gks_tkؓ_k`sa[?c1_kQZ;f`Al9lE "-z.EGsGvIy[^ ^|]q H^hѫ%> 4Ib&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&ШL91[\xx U猊aלyѪzdn#N.S^㬸h;ǘyC~rm^GS,0V_^V~Z֎x,,_(}cDž cG <crӥcc_Z# Q<֋Xk]4I^?O_k'LLLLLLLLLLLLLLLLLLLL16mZ0"^cEb ک)V=:;cN5ͪGNЗM얌((%3ziFNkL<.!GOl^c7UGEqf8и -Jym1՜b#ciZœ-:r16_qOUM(6k.!v y?NlEK^" B .<r} `fb`7+B^/r0 r2c~k_btո' ;000000000000000000000Dq#5n)lꕩ9Fuة}..vS3-c#Q~Zj=9@P'CxCUw>1-"œzb(sG~׺(x3VG' ˞ͨD:W<1"Z֫1s-ZRk2H,mHZ$!"Z6 M=yEԵ]5vĉ 4FM6vkޘ/Obr.ЖDUQӭzfj%#s+.sc/cD#^h6[}EUƼIH^_QѹZ%3օ@+pcWRQ?a {^ŽX =>G6kqiubvN_W"N}dʏuj.C*6Ds=}žYu{l8qbx'k7+*aM;4t>&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0#͚5 k-}񢎘ZiZ3FYj*b۫Or)Wj2Gk?G'yLm4n<s\⫼aN6̕h٥$ 6MM<:mF6 +>: ;bQO+bˏy$y~ͅ\zAdž*gKCWcg}zSGI>y#G|FM#I&38?QY3z.ox%LLLLLLLLLLLLLLLLLLLL@ӦMC֩0X ;6^SE 1c\:dZD:SX̅V>#sZÖ=-vg1U3i+?qё_B*3/]즾|Kct =է՚cU~l5pFLmJՂMb#Af(zGυNc,戉N+:Ck&%CdG\ңS~sZiG_Þd.C>qda6qUc ԗ@f-vqNj|SL_-Ī)V:#LJcZZW )GJs+'_P-qcnбnD5(}3E,#vhy_i'}&|5]-HqLp4ͪŞ9ᇠc]\xOSɇ<+b7F~g>?9"za,>y2o>NjȪmr9^x}ta8#klxXo&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`%0ywqkB=ޚ1Sk0e^vsQ5ca.ϯW=ʟy:iWɫ>-zKUIVQ'?,hLqdlY,X/qA#ؗŇs!ؑ+ϯ<֫5᯹-kO#΢ u-1}ZX0fc*~ Z]qˎXQM}_9S~b)?}~Y z[>1~dCyQU 2^},\q55-شƹJʆW)&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&P_͚5 k-R8SLE05֘cס }bb:-󓃸<)c+!'BlWTly?Z~Z:WrˆZ ꣯6ςgZd1FmL4F \W,U~KeBKy_vÓD=ICK~W,#?sfbp%G3`$L4)yW(kN;HCǫMnۚ @m4m4irIŋzaZ Sg,ABb9k^5Ӵ艉KaCͳn1O_Rjek}<1(& :C:p.?䋎΢uIhqy[=S='N+芥u1U/&hc?S1;N%tCt+c#aګi_Hߏќ ?^ wꉹRSX󱛊U\>dcjbh>;ϯ}18T*>vռ㏠Wh(?z_O1R_~ZlY0cG#[tت]/ڰ`O (r[}GvZ:!ќK>Ϙ|Z's'na="''#ʏlmx3O?aj100000000000000000000h5k [tk1@bjTw1exW=3:lTG5G+٢S-n ?c#!Qޚ\V|%ڗ'|.dǺ5^uZrũ +.EXDU۰x\ڀ6_#v:+ϯ<棺M\[9B|C}U~X^뒽ˆybwߏ_D @$00S E0\-QPLѽj5_STO=3c칔O |9D9XsS~(&m.>v৵nB-XZ2F$'X:բE<m,F!|35LEz^0F#`0Fg7z:'.g@EVdlt'_S<6OZE.]91Xͧb]fZ>XrEB ?*z~w_/|a>l\lB ΛB[ۯܠ@yt"#`0F#Љ="~%@"Mѩ@0E5c/5z)ڬg )DOn/Ӽn#`0F#`(G7ҝ)SbOy~}v '+kL Qt3Li_͘|^N/Qb bW_y[4cG3+اkC88kB 63FѼc:ƪMQˆN- 8t ¸ʯ3JsOő-}Cʟ _͓~(?cq!/q{2㯮WŞf7~bx13|KsĢB/hoEr԰R~9߿bm0F#`55KXa^[ہ_1}yWΈޟ+3、:eb~aڻ|K<0F#`0F4@-5Hw%tOi:18pb>xp[e8WyW4~tԲ%~*_M[_8j$itZ` ѼOcfФ+i̖8ńRgA"hI fzdO&(^'>).cUY+)]3>ᏞW^$7~ӦSZAo /22;+.扏R+ujiɿ[1= /OBگp^E/}ݞ0F#`0F=2v-EEbZ?M/3n;1̊2XF#`0F#in/v<{Sv+N7O)a9sS"'K Y8-E ָxq(=:9[C'ɏQ,R~DEGVߘc#2b1tkQUӖl7fbbIy1(, $ Зȗ~ C#`d"=h^ԈWGG(bVuK/WSb,j&>OQӅӲ🧟 &5dfeDjwj> |xba GQK;jGd| K X$̯\`A_:B=)#`0F#`@;#P[zɸԿ{5"Fa sk41'נڻb>e0F#`0F!P+@]io\)M?1Ϙvt,<eq! 8^c"ۧ㲣>lc3k#N*_Q\l4D}frɏ.Q~Hy<%j+櫺<ʯE*vl!҉FX8vl苜^`_u `b1ƠOt*ʯ1d/ͲR+Nj#V~EU&%5c{@w91SO9l\ YcIC^19?x3fԹZ_~ux92>!+_hRkkm_=5<ܫ/ +ħ?6+^9#`0F#`F@K9qiDĩ[>ZG1LJJ|W NHǏ1qGNЖMl63.Q~Q~eK֘F f:ʣ E\Dzʟ,KtO`UNq^sU~l?>&j]]p94>,lƍ5;^Sy:Z |߰-)<Br'፷FE?,mh|]9K,ؓ4F#`0F2bv&|f{ƯO󋹇򌪽Z!]_y-#`0F#`UFjuj/R]]]׷n1X&"npiEfXKӧ7pi8mDijœ5:R147_qOōFPKUc#?}!;%q?3OlEKM"&Ӷ&եq&-|+@V7t)6_'R z]L`Lr28sEF/G}ڈb(Y5'O>m][~sǞltn^ώjt)e^7LEXcœspKto_赶^_L Oлaeh Gy/]b0F#`0F`ꫭzSkA&t{Ư;O󋹇򌪽Z"e±0F#`0F!PK@]ioSN+E,E'Edujq8NCddY+~C<|5 +|i3PCuN)6KU'y;D6XުlIPki\Xv)qS:`ĢF׍CxF:WOMQ~Г]ڎݬusѧ͜f_y%ʈcMo ٵ7EbYwp‰UUGlм"_1M-ݟ&sU{D ;n•SNmŵejC_OiIyk>[ǍMw 70&Wr~iR ֶ5F#`0FtWjmI1S_&yk1zfF#`0F#}΀w5sވՠ׼O]]]<1jd,S[C~1?YzgLgtjaƓ:-/Nf~i%%3F~QCч/ #L6: ʩyaGȯ96ONDy4VW^r#bibRzL>ц^\'`Nqb3kGC[2F .~j+}f&*?~Ԉ+=}iŚS4pi IoMjMHBUÅDeb?j#`0F#5^ӆ S+^+E51]&8j#`0F#`0m@Sjo/CىWMB" Xʡp†49c<ة%=vU *h3!.PX8y kS_q4Nl+^29)֣>Ƀ(5b!5ėV.j&>mdX7nUӾRڛZ^kk8kZbb^C0F#`0"&˫C𭅽{ LoOԝ#`0F#`jZT{#&q wX&C ]|ebqSb/[W j+Nujb2wG<5!Z1n*FdOql91N&֖Eބ/Z[^& j/~_հ0F#`0Fk"&~Ưؿͅݟř/f0F#`0Fji^q퍘ٳ.1| :٥m3gѐL8QjWyeØl+ob %' hj-i1ӷdG,)#I+/u*Q8ECW}g~qjf j|ȇ,/ר&~z51_HTV~)ʮ0F#`0]5mސPWW;{yEbݟ&VL̯ 7[#`0F#`h <:FLՅ~}3b;1X{!CF4יM~ :jG-_eO̴Ǘ8ӱQz'.:M,r)?f֖b Г_mj96KʏrMB31bjQ&. z=G_f6FLt__14h|P>Ws#蔟6˜xex4?} :USRKڛZ^kk7' Æ&С'5ZCSA^}?{/˹馛.Fg0F#`0F^]xWo^{=]:uZxk0묽ORgř_l66F#`0F#*jiUtB#퍴71ᥗ^YqB߾})3?qac/0eڪS,:svsL=B8!?C٘ɗ8%6?t壍})c^%Isȗ1|1tʯxKNkK"PkoB:zkIy[]w=KyWP}Jy6;#FdKQ~WN5_'اO>t}/2[FIZЪLwdB1Y3Y.8k12Ǿ<.>ƣMA#W_}OA$=vSS*?Kc=̍Zzl!+_E'LMzKm"PsYdX g袋v1:zKhM5^M]z+}R}5k'70y>j@Seںx]^6F#`0F2[z=Y "_~ex|O5$O[n0l5j2-<֝Wki>·>m/bG}> Y:O?,=&s}1Z)S{>KajgɓSO;aU}oaMɫeg޹À2Zێ >mc뽱#`0F#`@ P>{"#F}ݰKVnX`wG >{XnвMҀFL7?w>ȣc"l؋ WGZЦB_e~l}Kr(&q8ci,tVa\끛M~ň|ti#P|qt5_ f!֤y3ϪEAM>mjID~ĮeG(lfmH/Max`O,姭XZ/sAO_kͬM-C4ِX;nK"PJ 2Kn? 9U#~H\z+Rt-p'ǓO< MCOkFeO5ғ ZE^w^Kkq0F#`0F;#$‹O]nnmÏ|pFƭȱymb92ꫯ73l&"E74/51%Z6mZŗ|µ 묳v-8kv O?L/1oN8pׇo!W_-ר;9vm\1ZjM7_wޙ|~Ѱ{gsN;0M[ڋ31H#`0F#`t5f!|LI9vذaiLJ[àA=1x-*7bb~W(51X&"8e8p)Cl|hstvɆ6O:6KviNئA\tAM!cʧJȉ[<~ڎRl ?+ܲ!悽&V♐,Q- gq5-F xF +*|2MQ^/;䡯9QGbf&!%?+,#?cQĠO>mÖZD7!R\[[xW'歶_)n6뮿"WA^oDJӵTܢ_=l_@SX[s9_1#`0F#`@ "xÏj{v;)Fs^[_C>`Cƒ>6hpUU* &!|Mo G|'{SOa+*{yBơ$_r'L8_r%\_|Ƅ Zkƍ^xzo##oF+.i`?~٦[?lv m0WG{q&煨#`0F#`@@_CtJGg/_rdNhhd&-rC9 oZF01U.nNGB״6dmaK..z+>-Q+~&u#`0F#yE_yհf[瞻 7 %w>m?!L:5㐄#,ԴM"M L!?{{h3Ҽ5G?Kf'\y9\vCVOӸQ! {oW τ>s w}oo¬^{+Ivp5R>'[#.^}&/¾4=9}ָjN5#?5"G+)F@gAτC& -:lCtׂ 6Đ*'`͘NC?66ZK>O|'c'ffzG!v;f휱 0qU<R&Er7ʈrq|6>H?`gus;:;vlCu}̑cv[k)z+oܢ_ͽ#uE/m0F#`ht#8&ۋ.Kj-*Zԝw+~pÞ{OyI{EZIp9g9t^4ݟ&淄T$>s=1IdTM@IDATB?gs ƌy/4EKvrˆn.kΒ|a2 ֛C5vo* m℉ؿR־eN־;A/oaM7E^EF#`0F#PqOdb|*2Y& pSӧL5:lŶN;;쒍%(J 퍘_$FϞ03 2EcӖ]lbA8؈#(ءCƨ#[t/ g-b>[Ѻ4tE[Xh/ϯ\oڦ_,,^ B&,H1vTe:1rxԌ)_lf}tr?HZ"+?GܕKY|$‚Zs=}ڌa &&eM|"21_p饗 .S::k{_+$lFYER}bׇE>]_Q~E/#`0F#`:[b2K/2Q{}< {goJ.ICdVҶSį-'~-QRƧ$YdAᐃZK׿ ߁4Z舘' <> {'r)O ř'e0F#`0F<>"{裏hS0uxg91}'|*ݖ]vH< D0:~ Ga luOo_lgSv=}ٰ+dI֛o5|{d"Kg Y.m퍘 poݯwc ۰mHEF>k^&pʾi<Ɛ4} ʑOI)慎j  V4:f{KZ>ccCO_^b:!@[: L"t}oSK C ( 1xTbcy+'E_1f[WNttʏN}+zK/jD?|p^D 7!!(B.c-?ȑ|pKQЙYgsus\L[)ѾRf쐉` tMe_@ѝ^#`0F#`:kʛkgY֘>eˮ'04[igݔO>&rJ<,}ˆξX wmÏdvB {OW t2>'aYf 3`1wo:\h/0vd#`0F#`]ﭚvۆ r^S* | yOq ?7—{'I'^}Ik I(Zk6|a[op߯,9w;sya8P ʆF$rml҃5fڬ=xJӉ{IÅ[LAWATdFW3ǞŤ-b!ʩxR~=3ZkdȓX^~mY_|'~-SR?t)o_WYeHG{5K2>^>< _zQvJ˯|Fx℉ kNIt]rakqנ~SO=9fr.9yK.= qx:g63rT)r K ^{2cƼ?ygs|3HQ|H8&[GS[oO M=1 yښFB&"zJ qf }X9XӆL:C-$!p;Zzj*Tg6abuTgs5h#/|WC&UMNr;H> od0=6MDȎZvSK_DxRȡEc _q#xq\}cѱ&^1y )G/%o Sk¸qfmz_/BkAo~|'pvc9*Κͮc{q)n#`0F#`@Q>9oF?%lƭz.Bᢋ/CL7#sZoN l0Aa+/ .Z4up9?UpN>$oSb9B Ͼ u_RO?,A=s<5r@.U{w͵W|8p{?14)5#gk9N#!iK_1fhL.KKk<6KO>qՖmTe:ĹƎ\=P~ƱV;6U'xZ&N6l΢䫱t>Z)ԟxݬ]26ȓX7~<0|?U) _K Ehjml|ڻ;_~9; }-9b>OX]jd!}"lP🧟 o=2-O11K}FR:Q14ٲGfPNWy'3[w»q|7jp줤/w@,;9ӛW[/wᚫ^~r"5yBd>}z7' 74|Ga([oQH8=_kIgRX~"!|@o45ݶt&bQ&oLzpE4Xvs|>X2?-և_oy=TMڿa뭶K cǎ `|ؓ1^gҵ~Lcy/.Em#`0F#`( "3O{" |w1ǔK" ƽ{ALҳ /W^y5[1{«MDyyR)uf/+lA<`X4pg]%mMgN|8*</iELDsl9bKLlDƖOzbHIy vQʟSq_q$;&ĠhRtԚhjKh_+-c3^R?a /[".)>CXI4 ؚ/:Q^(?:c8vīOR&$%7GJ~tJbR?F{BO&[^{-lцʫ.M mzpԑIlMΙ)'lg}Ve( *}aɿu۲mSN ί#y/gE0F#`0FEY6[l7_Xgݵ3"fMC#]|0=(뮻3x#Dl \݅ 9L='~Yg.um7#<&=?0k7c8pWYeHaرN;O娣Թmh/b~KS+–rj{qBµ0F#`0F)8y?'"nAJ"4(s%}8NmJOSޯ ~2S4Rއ~4^3iNqМIƴ7|&9Ḥ=Fx"C91XWH.CY{l1} 2"|'}+"cO~|'b-?S?ZvS!֩GOEǯMBJ:-PU|&SzA_Sz>…x9iPɁn,Iʯ9G;I="2<VyU3N<]YO-A9( *8s ˏHԨ&|1KWbO+g?#ñRZ˗*nhBZh{!ԯg W^9<|G){vQ?zS루W79~3LNQutxF#`0FF@KE烧#8ɵU8"Ȩyˋį%r~GZy՟,o9R=NF<7"˯0(:+;e뭷nWs^8ge} ?|ҸyN/ݷg$~}P͗~}k5 p7ŧnshR=Ӎ5f3Qt3Li_͘|^2|K`xoP#klW\qIx\Rs)9I)y)N~YaqwVۅ_~h޼F[i0F#`1mBo9q]oW;_BkuF~߬sO GuxFu>kVnˏ${(mɖ^}y| ."p%r˭7!C6?q⤰ ôSK?}FXmU饗Ö[l*%aV |u^$泶ﭴjϲe;^KOi:1pd,)g"^1҉[mθxʴǖ!#zW4~tԲ%~*aʏ慯i4F\I}C4/Әa%?4J|%b1,Y)8Z|Exn?٦SI)?6ꉃc ǘDq){EJ׌x'W5:lḘǍtieMHcxUB?_.f5V7xmG#~u8'/={<Ҫ믻!\`L$o2w.߰:70E>Zq_\v#_oڅ3^M_{#M?~|Xoݍ38зW<%;2wv 'EO pZЋ@qP+{l!ۋ+-">vߙ \ʯ=(*'GIة/I6cS-U3٧XR*v@ TO[c%.H>٢H-<5"#>q@8z]|ҋUF*=OX"1i:j,5@oB.%C=(ބwb15> 'x2[ BtaNlkk#~.\6{]m]BE^&ѣGgs߿Xx*w[zS룭ۿEn3~/M0F#`0F ~Gn?ګQtk)9?I61?; 1xܤI|״z$gR|y瘃7Du0{١'AhN{ r2t)o_}^",eY>;#* wqWh?sigb~0F#`0FJs{ ~ \zai"7n\<)H<1a_}٦OL2Pޱcdž]~{xW3U5|N܏4}o}VZႿ) ?o퍴71-s÷=xJO3GYcH"vH:.;jG-('g(.6Nqg\S?nLS~٦jDuy~'N8t+%ȩ4K'JaQf&0{D9O}ƔhN'您V^E|>LKGikNQaMHc0ƛ DC5eR=~?xx%<ҼxTz)XXo;T_ R#ɋ_O5;$Q2{<ޜ72Uy/UOF#`0Fn@g[ǟ {O̩21Ag&BYY_K4묳v፺\xᔓO^xpO ħt=rd| -, vr=wgc6:'>)|ԉt T^gs#`0F#`0@ }J;"IĀpGW\!o}pE[8-ʹZb>VYeGǃQىz ™g1+<?z?a -Pb+?z𥟎}qMNŕzUAsb~N6MHcVCcq8a>oi_]F潼/̔BE_Rȋh' Æ&Cgškjq "70v@2lh|~ Lם2¬0F#`0F y-'O>T-ܖub> vؑoSOFbb~1w7b>(~s$`l~л3L0!lVmm/@ ?O[ڋ31-(#`0F#`@O9z}OO8] a'"t B̿K!htzgwzq5jt$ 5cy W^uiF+Vio$ob~</Kۃ}دob18KqE{L1c_X>ɴՇL[eڈ8Ԋ';jt:bhn*M(6s`F~Bv!6K>Z3~g}D %1(LɧmM6KLZWn&/ϯ1S lt#(rO,\O 6d,q梋H^P<jtO̟8|4L-@oB1l^׳gXp¢,_*M7$\vũ*T{?Ʒ=6X;F#`0Fn@K ՗_~fm6Cw!+צ&y◄mYK1QA9iYd0Qaa[Sn{|Я_r s9[cf'O>}z7QݐFL̯zmF1?%UXaǴ cfoȴ)(~l+8_!VJϔ(k\s\KgHW,=7r[%9qb 1@LGcYZ(rP_7GW_< K޴(l!sრC.UNynio9`WM~ B7!ɢ~wƵ2/ׇ;y>|0lX㰇=! ׼~я >X56Fuu4X;F#`0FE ¥͏>ECU1]ŢTXiXd1D@1񴭹ȇf"ev_1S!@4jE7#&b2S ڊ-EsLTMJy?al[jZ{RkkmzƯ!ڽWg0F#`h4pЃ!3[jj41=ݚd0F#`0]ZJ{#&zDb~=bѱL1'/M-29lm{q(XC_i6hDk蕋Zs-Ֆm(_T昶.ϏMUBH窙O_;cYc` {.zX#zKMA(?}O_ƈ#58Ѵybh_7J^0F#`0FuҠ'ֽZ21e:B{&wp~#`0F#`>[W11?+ףG0wNE,OV/^5c߆-|c@ʎqW_q~7~E_vq(@WK~씇q_quP3WԊY,S|ɫ:͏OUB @(&;"I[b`Z6ؗFG^F[:53CQ M~8QGydi61K?iޛwu}znhhPA\pTpE;::(*T(*^\;; [ݵ*|+$'<9Mɛ ɇ!"0l2ly]B|~Hte ulJ9]@@@@@a^*)?{c67[t0߫t{ݦ0^,B B B B B B`@*l$ GGFxc}a5ӣF5z밳eޮ}zf}Bv=1ڮƜhimv٘}a0Gm}=#ɉǵvM>Oq9op)Vo/.k [Sݘ9c~ϱW07?~UϜxc=8kkW{gCmCpЇ~/Tu>?$_V6.B B B B B N}/-2|3Sg)_|!!!!!!0|9r>Ia_7SO u$`آaj?Θ߫VlcM~uzYǖ:ִ5zy=:o66azch羝ckr†69cka_ݼg*/64:!9bz/5g0q\'6^ ud.{AACgtl.z3&>cdMmٳ1 #aa}p~._sI`؞5y,BߩS ~gq)?";Xy9rz>Iab\傭om6jj)|^Zdbkxְ9mgX.l}gL{#gù91&` r =yX[_|Ơ_E}kؘاkbolz5n*#3f[ޘŮco}dH  ?v^?ꇹ~Yٔr8=T{[_&)s>MaҽFY@@@@@%0LρUH  ͛6Z#[ہڨ#Vr([@n_U=cPLE*۳3Fѷ]kǮgj)WWqX!׼ڰ kc"-nL?Lx8AxhzutFF=s#ꌭqy6y[!160uCqMI>u]kZkDGȰ>l7? /]X@@@@@$0lϚJy! TهLask@@@@@@<h^=0Hٲ+̿F_u=Ө!fCG\֙b:z}GYucg=3ctgntv{To~#Bncg#z;wuط5?" J8#rn=$6 zC;z:\uحpd|cO;7bGg~kxչCaOa5{o?v-`&!݅an>?$_V6.B B B B B NK>wfOwZ?~om8_3w{h0Twù_0/sL`-pl$'4TQo0SOlMS`jGY.uk΍a\%혻V}#Pc>1gF,Q8w]OO2>~Hyz7V ?v^߉ο@OxugtKa\ y,fs!!!!!!p~ӻRsgkw ,"Ź2n0!^.HGazζܮF0_T4oNvy9…l`mSNp[o͜x#gݴv3vsƚ9c}Xk 1:ik~:Ǿssiׯ:[sdL~[<L:qA!n"̽8B8{p!VU#Ňxivj;7~ #O{X!ښ{Ǟѫǖ{󵾭]5ˆ:ڶwlxNw~޲ϸ_vCЇw#eÆu]uFt>?߲p^eY8 E&ҟח W&p?X}~sɌ@IDATŹ2n0!^.HG`-׫糑a*?[uJ5ۭ[6Tzbj]VFu떙ܺeƃ~= _V:܏AoPM~cztᏸӮc~4!ga;@un9czse!#9 w FqkG9ڋi f~b?߲p^eY8 E&Ov[ ŹQ?+LaC gT_/Z$V@@@@@#0Lρ0柭:Ѳy[뽱Y4N25,ӨƘvk?և/=G`6Muuطks2ƶO3=<*Dm~|ݧ:v_t7ý` xx6#d1GXwƃ 90mX52?C+|('sD=ƪNXCs;f?n9x.Μ=@@@@@b{mx˪U+YQE|2^ߚ}}fEܩt0qa)_诗 y-+B B B B B B`@ldX fHٲy-޸ڨgN0u z svݚi1zb"6<댍 ~OO]46 :kwn~g,։.A8гNo]6~EGƥxdkJoMk^T>M/s'9aԉYGqlNc:s7su{Vͯ/9]v`^Py=ql1+İ>l/w@--ȽϏ$,$M@@@@@Y&^i~t,Ez~rE}4n01^.IG`X- 糑a)?uJ#hni?Q{zv#[la?vWùcov>no|wݱs֟Fc~o> 0n`90s #h[ ۽P=`'>5':Jlظ~a>YsƭΆ5FN_m~촩]=o$2=Z>/wǏ7{]uӊ1ly/׿py|M}#_%st>?n){.Ϝ@@@@@"kW&?[,"3s,dTCab}\X!!!!!!+5Jζ\F0l){cgmj@bji;vuX׆zftXGҰCkhXuE#:kl}& :c1~0o;f>g!B9 dž i/XhqUu:*5=krn֏x,݋3fmCmW8zW62tW4~AhyS_nٸ" ?\a9z~!}+˖,h4!!!!!!0?~/zr[qϚ#9rtQESySϒNl0lP>>]|EzyfW!!!!!!!+&@ld柋:%^l[?)̿ڨ5Q0hb-o5Fiez6kH9qs"fБ_o{[= Śv5isե T(V 4MYMf=6cv!76UݏM\mN[1=:9wXݗ׆:]{w >ٽ뚫./yEev\tJ?G>vW\ZsA|~,(sl/I!!!!!KK\Q[5ZϚx'곈@'Ƴ[{%ޟ-4g+0l~\W8 X*VsyJ-?uJkrwmbjiS[LCY{k]km=E33Ǟf~t1O |bNxa: 1&ڽ2vŶc66UOf再HN~ι=z:b|!376رic#j5nX= Ơ7=smc"!e}(&&ukL/.[n,ׯ-JiHx01:|0||qS c7~#fxkB}mm[SOqF3q#ڹg=ڛ xO@'zSGt7jR%.R.ON}'q6H/|sq,)1B B B B B 2_I|TsaC B B B B B @ ?=F-[lY3mR9c85=6~j]G`giyo蚱3ƗfUg~b9qk[U5ؑc}ug*4tyr(}]k=?a6F]r Yv.h' a]{OoxƬ~Nu v{wLmH6r sE`U_o/86_wޮ7x|~ Yzt,=:Q@@@@@}{e-=..DXJ_/X@@@@@@ <+~vλWlxs=}a ?%95a'"[{G-!YgY3ӟ[L`_?z9MLߘ3l;&sku ñ)<$v4o-vc317؛GE[B>1cތźqԛ߼aY_={혘 \$B B B B B B B B B B B B B B B B B B B B B`9-7fQ~vSKL]2Zct5Of=SN?u =9ul!q[]Ykѳ'[?ݮklлW}zGt{y|$BvڊAy3VOok/0!D ^Ϛp3a˹7{P^`t4?1Ay 1d7?zbXە{w;:!!!!!!!!!!!!!!!!!!!!!\ \umu6^ cr9R5b3Ʀ_Zjjm\B1[tuɬQXΆzdu#oSl;k6{Ns3gRš{F?~g$XyƒB'a, A@Xp^ =>8ڒ8堯d>(gͯ/yv」H@@@@@@@@@@@@@@@@@@@@#0Y[ݵ|bmSKbl+'k:̭WfN:a6~:zm kW36?6O㫾YoM q17?` q_k1;ù|psɖ8bC-,9-H&7#mUM1^'> ǚb\fYHq=9en^{t6+DEMӇ@@@@@@@@@@@@@@@@@@@@@,n{6ޘO-2S,6nt]|7ck!>v:ۢ|Ce.}['/:&{cbt/4lW m,,&c!8Hgi2i:Dh[<͡vsm^֜cb~ڋn\}AZuGޞ8l11a誉<@@@@@@@@2'>^GC B B B B B B B B B`|c ;k7y sFEɧe]ؾ]׎ނ{ꑵn88>qq ;u1gz֏P=c~m:j҆c_m bߞ98Cepph08}=:`o],Ɂf~ט&:o{d=!i_t5.s&kWM:Au=o̯"s" xfާiO*AgsC@@@@@@@@@@H}eƛM[[N]1[dzfX0=6:lkE7kY^~0wUuv}I>}1FOlΏu؍6?zψ}k6)g1p )39ڻ&\lPdl#t"%|G ~N/c:|k㛿:qA^͏ œ7o۵{$͂w]+r>@@@@@@@@@ gOGB B B B B B B B B B HٲyM5fm35#p36sj:ciziGVG 5񭍦G^hصkUcYGc}b/^3!IbonlZ`v? L7XȠ96{1 rtx+8gx &ߘonfvWtJ@@@@@@@@@@Cy뫥@@@@@@@@@@,csطdyq1gy;DvճGMл6:] Np0.`[̘X8jǬ1b|9:͜f~Г];nn~ 3fOٱK+߽gE.6Tި6arXDO' }I X##7oF6 ۢxjy,K1eckٵ:ßZd4|_y-K]LJ8NY?ǜw=vꨙ&'1Z֍_Gc7hrn8(a|{րqe<ۘ@17#3H_/<9’mז"|n0|t~أ7?RONgP1%rsX&iBX!!!!!!!!!˖/7_A(TlyTKƺc1 ;lî晞f QCO:!k@P'm 1O,–urӈxPO 㰆8}c3g16E/8X{(:70XCX{z;!ژ^67unji8Gؓ]{ya~%1$ 5M⟐3*(sM>fP5g8|~eQ2B`dd1í8wvpX[CL}1B5zYgG{aSG1^{b61&?qG1y38#bl>ǜf~z}_i-9$rM"(6ގ݋>=61Ӱ!@:D?2[1q{bdݽˆǶoդnޱw;FJ'C{C>IC ,ZX|4< TU wҦ@ggs~;W@@@@@@@@@,;##ԍmmԥlMAtk{u~alvZvΘhkO޴%cm|hc[=y T,:gĞ- ;A+8X_E췅I,kÎXKOCqq>T~~yXC>[1?co\pv㬫mvQ ' <ߐO1Z *ӻ>XF韖kB B B B B B B B B B` WnS1ORlcn]5[M=63z8̭Wɇ=΍k~m~j^m~RWq%?va ;W?AZ{^}[],_ڷ񙗐d F= Ʀl1im k`lt8=3:N~p? c#xhڹouڶ1]0={>11<pCxtwu)Oߔi7;Ϡ^]~'F@@@@@@@@@,Yh|I9NĜ}x@@@@@@@@@%0:2R6o`mxk;=zjYqaޮiAq{K66s>k5zb(]g91lZ:LA陰A#wڶ3c[L>1zl]g)Vo/.k [Sݘ9c~ϱW07?~UϜxc=8kkW{gCmq[$\tn&[L;ϓ"ŞԾ3yE!!!!!!!!!\zj 3o3n|b= a$0| )贮$ [4Vꏱ߫VlcM~u Gg[[\o~cq1cC;[s861[`z-u]kZkD-.r''oL'Di&?;1ހC!!!!!!!!!N`];[g3ϼF=?9w1lm@@@@@@@@@ esWO=ڨ#F 1s\o2=:<ׇQZ==v33F_zLaG'.:[M,Ϻ:9v6r'cz\}[ck.l1bz(7Cb0sP1 y1o ZM7#{#ztg^ko蘳N#N7vg$$>SqCi7L|== ?~4AX1~0 QG9ƽǜ[%{&r=:m۵{lG#˘٫{|nSNaz XN^x\P:s7lM2gt!!pm^xqwv6j)`1j[o͜x2guڡXة{kao t4S7۷cݯv?ɇ=0_l͍17o0aLq60pXUXc?s1!ؑ-DbN>chk~Xkc{F[vդ/hޱo:vL$ o;Ig7C|OՏ҄IG)}7>r L*gf4E"|W];_)^TC B B B B B B B B B`WnݲzzbZI2b0ܺeƃ~=}DkcX+a[thc#uCm6Qщ?~OuOVӄ}yA:z7œ1=9 s2waлFݸ#`~|_я4ֈ3?Xg돝>hцjr3kץR'pAT~SOлv2 X>x|L/gg7~n& gM?l@@@@@@@@@-7rY,~bjixRcLaR:RB}mO=~lǤϦC<z/ SLB B B B B B B B B V V?::Rߘ/?P/Gsݨ'طcǓVzƃ$cka?96Op€v>no|wݱs֟Fc~o> 0n`90s #h[ ۽P=`'>5':Jlظ~a>YsƭΆ5FNތ;mڮ7[,lt7I~R4ޛsnT4x5k _IR?LW;g 8&5طkvKPAhdz6l=8Ʈ=4C o0*m׫ۜķc8f[{t :sл/ͯ ="*~t|"Fo~p5tک |Mk֜_6nX7SȡХ0(.s!!!!!!!!:˗~Ӟby4^#o?r8E C B B B B B B B B`h [6RQJ-4aji=6tիQnuϩC B B B B B B B -c&ʾJ~zA;eZ={O?l/!Ç3鞙@@@@@@@@@ \_k- \r  =c OC88P m옻Fozz&5Uw6a۾=Lm>Hx01:|0||qSpsgkB}c-@tvکWXBxa~XC6>\{iYZA&Oؘ.6n\_70~!!!!!!!!p. )͏/qG>f,=荣׶ڶٻoGl/8Xl?[ շs}s[lXNS?>X(M>=?857=84ʑG#GѲy[꥽е_8_]-%Ө5FG]rXk̑ǟetګXɩc#an=4DLjGϞ,'C^]Gz!:i ! 3GZ'΋Ȝzz[{% !?>g̚p3ag?D}{)6Nb1oco~F+8v ud:~}ߤ> S!wk7o(kAXNIap^:B B B B B B B B`i8tH;>yzhƾ]s:{zC[2 b+\ nv6^Ť l]Cx5 Pzma [ꡩfƼØ5}ϸomwU_m=Ģ&14CԛO=1Ե{r9O`7B B B B B B B B8rhٽ{>*-}S[&2?Xe!!!!!!!!!0VZa>[6ov6 DצP̃Rz)z+kYn~YzD9CEؓ-g7sĜzρ`|l@?5HxnQaV! y ׁsa)Lg}h9Øq1zbx.yY'ɱ v:` Uugbv]mvۑET@Bv~K/ 5C B B B B B B B  wߒo=nLsTͤn~~ )+0lݲz|ꊩ51sjձN1XLa?cY[|K5@<ǖ象~5B G֙1m5sY#>i=B^nm{,d t7N~-WZko%:} !!!!!!!!{.,|u޵8Hҿ{(6@@@@@@@@@Z[wJ)f]1-ƶ+A=b}vcze#掱msᇨזf}5ccc48k`oJs{E637=lc,6žYX`Z{o~3=~ڶ[XդzÚp)5lԞh<ѓ[Gho̿rwLL[4R!пji۲Lcum+?.P,6|*ЇS?s?;g1@Z=cM1H{ }!F[4"q_m}cMo[.slCW^t ڨCo>zgcm0ߎ CWMdIaswzݞ{?381^${7M|}wK뮻U|40N~O;///LW-5I2}I}ޘ?%X_ZN@IDATfr!!!!!FE`W 7ZM^ sFE]ؾ]׎ނ{ꑵn88>ٸظ:sn=t^1mu5biܱܯ`6odsvšڍ2F88v4l[>0o.km @g3k)do{f^ڻ_t3.sN+k~imo+%,T?vl=n"}}̹)ߵk3ʺmWvGʡO|__.}~ E]BQۿwś௻s?|F_#˃W^xMy>7 /|WhcGʿ}#·>TS᳾넜'2qG_Mk?Л}WxP~W~<\k_}iLB B B B B B B V ݵ*::ӊ` XW3 8RN'y@@@@Y$;B`VZaH}eƛ+k_奶^aWUTvjtv3Om[kS+7kKc]ݘ{FŸXvNiQ?erW.VuK!!!!!!!B 9 LE۞Gݓu)t0L2 sMa}$@@@@@m=8HW__em6k-1ȬSI]9=S/b37vXkuwoo\hz6F6 ēCk^cKCX_:g$B8 Ġ1ݎlUٴ~Ŗ1`?5o9A=sl(b56d:{"ңWq1M1ߎ L#K@m}h=U o?zexZŜӻ>\<oGWbyε_I|իK^͵>_y:e1B B B B B B B`Y*!{}zxB>**R{)Oa4&0枷ܣ#B B B B B 1:~鳾PC` 7RWmQ<Am;e`su4uuL?Ư#lsжaM>i.XB2=k@"0%ku؇ ޘ@17#3H_/<9’mז"|n0|t~أ7?RONgP1YJm{jYN6Evlլ{>9챗b_H3)^zA =>T|W ה֎ۍ<\?tZ\cyeզed͚eed,C ʳW=FF6!#?X-5?>~~Gկ팞,o;NЬWNO/ykNwcV^vcj8Q G)ڽ|뿺9FWx-'kW }}[˕^So}i:K^WNdi2^??zo/%k!!!!!!!˔@0w}]5ESs+{Gٜ!' "{ρH@@@@@,G<Ϙfjtgzq 8+0g2^zW:f Yw=XM2dhXw~"3avuo`/z[bON|6v=c%]]Y9i!Ԙ嗝']aWe؝}enjZ_EezGG=yVۿcC\yߖyo9kw9~O)9uy̗loR6O'};ġoXʱ1 e7}ô"=`e>#q}Mop~__Xr_P=R/ko9zxټquy5ʷrɅ'rC󻾽@q@@@@@@ !@aÏY{?~z>Ǫ۔cj3X\s/}.V1|=B B B B B`Xbxۙӡk?sDC`H|^e[`ˇ[Cl"_[L:k>fE[Ԏ6:֎Ϙ̏1鍋=:UӞa1c?4#:gM{mYȜ sJ9kUaevՅO9ݲuBٽJ֛~4Ç˿Kˮ|4};Y{c˓~˚K{tCן'؋SڝoWϾ],'?O)ւV>%/V5m|:XPyU?1×8 /̺rxחgxѴ寻|ˮ*_'.Vӟ>խ}8NW}o(zG=-*?B<*?5~B|W*\1{?~?+}Uuoֿ*l|vt{ye7Nm-WʯJN;@ C B B B B B B C0~a>[}^?P*)qXlW1Rz!!!!!S?4*gup4B`V^ay0-( o OqTq9UwTU-g_@̯޸>?o猩Ff\M[b;ֶ͇6櫪۱5كLŢs{6A۰ӎ5Y~[ž6숅^4 1Gs0N5gؙ5;&q%g7κ:޶k,A\N ;}AtO8ƶKr~o?~[j&:ݡ,r%O{JkӍ}On[5~7 N{d?X>ҩbfЯ_WF֜X5;-7]W]#}ُ|Z2~iJ:T}Ϸ 7; F)?)o,KHُ_KS7[;\U=8m.?u”彯}{SR~eyܥO,_iX6:،n/{᷿ˆ5rC[\?P/ϳ!!!!!!!, wW )9&(~0Mͻ%V='R|I#+f3O@f7+wRB B B B B B`X"ӏsz~wIr8kVZa>_7n ƃPHgcn]5Sc=Ro؇9an5ڱΚ΍k~m~a/_@7q%?va;W?AZ{^}[],_9 g^B -(D>8i[` ly ё6kg8|Bh1Vm5 ٳw3NKLitiޤ_z1z{k07Ï P~_*o;!{r@PWo?f!_Wo8}g?Oxk~qrwuVetёN- ( A"N@EAATA" %MmtI;'{ϽI$MG)=y9}w&vP&n]}v/{qK91ֻg}{w~~qYc߿Y{aZz2 >kev&/rh3wڥ|#~dO ~ўuFA;bgZP_m\Siۿk&T=/M/\G`S!^eUjgѴ.#8#8#l"9QɆظnVp$8@g#W'VU>&  f|@Έ2#>"1skcsb~ΨCuk>{.}+֙{]6gG} OߣoWnUAS47~{ߍ#E}nEy‹m} g|-Eg%U}Ѻu+~ׯxu\>4}Fnpō/]LJfyG[4>w%%LDVN?meq+Ģ,< ]7|!;∣_6Ŀɚm'weukѵg|K|FӉnm'pZru.Ve!ڏew|!!%^50Ai a?Aǜx`W#\bB-tA?OW?W1.+=tDm|c`G@d'͢bm. .?pq6MK]>NyՑ>0Wů59部#m#֭jP_yM{^SqK,>_8q[t-8*&)!?Ubm-1?zı1}_bg&_G/~{ub}ݪ#>9.;[@>nJw6E?hNXצ>clh%ok}S5ZOh[G؉Go3gJ3o-\ʖK'w0>{Bޗ{,1uIi|l*>R?1/?`+Bn{[xتZ.vˏ>~0N{/;,+g+'/_̺waϼ=_cwM}ֲn]~=ـރSb{ TÈ(?<15e+C@'.2>Z'=h/OBwahY7}qLkm7_N-%ׯZefk7 :dWnhXk w/օsmMyˆB:kl]tƞFq[G'>:њli^NaR ՍrCSsgmcGã~wW<bk턯<(~}k/<ɂ{}dȣ}!YwvtUo)߿1ٷUOzf3}>Vޓ_jbٝ/j^pGpGpGp"1s>ӍKܐyI {iF<p"tƛ%Φr6D;%yIE߆@٘ w#8#8#t(ⵅ&|;Ly6@2#P+g/p"6EWFy<:"c_~Tr]~ 7lAǁ0/|WSc&SG46.?6mF1@13W}lmQ &%l<՗1zH'"P\YTȑQ=H.#W/ |V',JWÉ.SHJ -%Ͻ.SR _y?3K?;m]=)Rѳvy{ Gk}' R$1uMK{!mMmcN֮?vٯz)0OXb/.zoW_?ow֬Ym_A6za @ O_츫.[m s)?˹o}}_kvG{66I/8#8#8#8[#}p ;-"FAlٖ_OD ݃h?lQ5e4i\g54#8#8#l;4zP{SNx"LˣG1j]ub%'pRt6b>~U?=`< q!f'׋̈י5lcC|hR?Nn3/Ňf+g)='Oݗ̻6'?ӮU}mɱOxx91e[ o/5|t߫{?kғnhǛg\=|zR=Ç cZݬ~yvfrb)|-LOA;=lNxx*t|$'3?̇l2k 7O>?#^Im6}8y٨Q#Wb}gSӰ=oϪW-][Ov0њ.翿9>yWŴa__I??w]xYk9#8#8#8V O/%xϘt'o%'͗M#PN/CJyNy3y)_Wa8#8#8@=+(,b|)A%Pt6b~eeexb~c ̇F>81B:90꣌?<\5T6Jh8kǧ8lC@ѺQhx0rS}dWF5K?*>>jnza.|GnæGZ\]39.[(qYfJ]$ؒ_4ǦÉ ږWΘiK|ڪ-'bz6gu}@ã#^K OŨ}zuS!cOs_VWnr'~Vϝ'y :).'î8w_,#q6uֲXgt?vrf'z/=Jrb7=Ғz;GqSZgxb%Os//ƣ<}d_ mWg+w)ˎv~W;ǧ~m|'^{_~9w޾J)7|f-9vȤĴÏih,m+_Q#F:UG O{ oBӇyM+ũqS&ǚ9rUSˮOW:#zCLQ!V1ӟ~mmYNj!D gs6!pk1Z/Kys +ﯹ R?~'?#Xge'y\)HZZֺ:AR𹲅Л$0$]e+$7JqM-%dr˯l~41~կZmOWzp^ [p_cXl^H[žV[=wa<=<~BLK~-ykTUU-ImSLŅq9Pͳ+n|0gw710ΏmMm|&^(==[ e?ɼw/iG>?{Brb̲^q=2ɟ>l0{kW>7~fmW=*g̛ /M'3.8Ztgn}BK_0/;ݱ*ҿέ#8#8#8#laZO]nHi7vm͉BGGDa,uh(D*V#4t^GlzQf !<GpGpGp2ⵅWTz "ys[|<[y&ru=}C*L˔o˧#BZK_x| ,j[*qzi z;7wM**pus>GYXH/y.!^!nM8ȗj;q:U6z0XWYH{Z1䓓iA-|BIfmis(0̵It9u(#aĮG-bAW(^KUO[PΨ|C?>W %5nw4Ytgwˮ[V)iS^ ˆcs׬m8],&/ÇFeM?kl]뺫ǰVf=rؑ6lY_ih<am@lpݲe)V8I7|^[&'W-Us^^ٸϝTɜ_n~qNͺgu/ k.)j_>ΣVg {㞃MfE)'ׅ_l z2.^m_ig^L,>P;pwYU%սN>Mׯ7GpGpGpGU4KRwnͤtP3 !94REg3[r ^FsH~䵊UׇcB̑#8#8#8@凒b[S`Nb}}bN6jJ*Q*Z\s"Rb>'f̘asm~ bcǎ-|ojb~eeUul;+!8tv#O1f$=ED'6ObS F+'Bm'WTmZyZ6WqC x$,`cEgAB֮/~twwٞ{Q8#8#8#8 |.CT.:nl1Nb^#6tObCy\iEv1z r#8#8#88of1$"7 4u#snNG.]9G_UcBੴZ!#0g,(|8/4c#`P>>bA-U[}Q>#hb$؈U5WFDSεb!Px՟<ٔ6Qe,mE#5FGO~|@W- Lm>9hIӜxWOPEdxZz~g6Ճ9B צr_5a嗦ک_hp{oG}Bt{H|/r.nPI*ĸ1 E>t[&#w8Iߦ0w.>l=۾w2.i+sOe;wwg07]ڠن~}ݨ%|mu7ħ׭(};qݷd{~~gN?Tݠ|؉=y2>);9ª[l<Ȋ+ӟU/ު@.^ڇd 1Er~_29tqK-Yg]xtիm]٫*ߒڷOiǵɾzI$S֭X/-_n]*GEE֯*u4װ%5߳S kWp ۽(<-x}]ѽ15klU|Z; ,roUźI'[]XSzľYX#ߔg>gFky7PԄ_$X^ `ѲvnݻTu6k԰6PP7-ohTϝdgvFM8#8#8#8[fV^ets+ec 91?91f_@F@ oknE4Zb)h'pspGpGp:7z-xr~9ɗkZXy|t !!b>էzjCe]ø6{6nzb~e :6dV80 p9@!aW\PmM8<Ĉ((aCT|Q,6 jhHz RGy1@/j CKuud6 i#O VO6xCL㣗LjOy̑|/~՟^#vzBx<ϣDX0j-w8vY1ym]^ ֭\-Zlߓ6?o)=%= oտ4e-8#mȐm}^g(7VYr{nRy{HOcS8wbݜ|V[z79gV\Fv߼IT>g?B/o%KzgW{{Ha*_;lᆛ a"!V8#8#8#8D_@`+ˉxh Wh,TqIcR ݊dGpGpG@̟9kn{|CjbhLϿg)ZeB.G`l?c {W7P!Fncƌ)|>1F8V:a"p]ůW0OZ F?'1=.lg- {>?r4b/6P űOaQ66!:@XEGGxsh҉7 CQ ̅kI}rUCIc\~®u)^ÈAh#@IDAT̳fͶ>Ÿ)^iv[(7.Pʫ/QFpB!їKnOÇ1ْH#G? N/|k"9Vڽj! O56J<Θ1ӞxI}=6q齞emq=Ş}9cIi pGpGpGpM.r'kىt_iNtbXT1IQ3v̈e8#8#8@'D 煝{_{}{SzGQ߫rJcr뎀#!6D'lժU*S skD?&4| \hp9F:A^dXC R=|ft9ʧïG-c s_9k}bC'򴶼0M(PK V]_˦F:8U;sr#/b 7>Ɉ(WsDZZvz3j0rh<1TͲu<&цd CXJ̯Osb~z;1?)^1nǬj׮u6sճ~}#8#8#8#8@b")v=7KpAգ/Yk39Z}'󅍏@>CVjSLOk &OO-ƍub~)>sGpGpΊ@$Ϝ!qB9Ɣ6-*ƀGڇiqb}t !!bC=_sk%_If$ C$@>jr{`z%30*Fz0\>Fđ':U`1!^1e՞~H^O5bp[^Ԩ-Ѣ7^G>>r4P>jp"{'F91*NvF >E.=ԟh}+NU;8#ʣ>B^ Kݪ:81[&6\lI_?9?1?&yR|6¿֬>{Di.#8#8#8#8[ MHX7s.{G{ /ⵃ\O6' !Yy +7ݿH+O/w.]N/g#8#8#i?cߖki_R;Y18B{\p 8biC3w,>p{ipǎ`G6D4Ksr4L~?JiN] h.!Nk:?҃6JUO™x@eSʕ/_6M*>ϧjO^#cOF|.S>8Gׯ֭=5Σz̅O=Z71N..W's8Չ81m8β#tu:GY|B?ΊO#dⵒ4WGh_pv?3w,Q3c,yPţLj#KړbCC_y"k'NkjKM<_5koy~։.4:DcQk 6IZ!8ىiJ(|TjkQ|]Ʌp:ycm_"Ȯ˨ؠZp^tzu10ɇ&RjabSѨŇƏ]5Q5s1&?îLj('+6D'k^i¦`FH slD6D3O0ԡNIP \:ki7 {~QS!/hB a1ةO8F.Y1sǓڑ9jø>޽,'sb~=wrGpGpGpGp@[\N7G𐭈?1k@KIݦJŤ1 $Ccb;,upGpGpN@|b~ Cӿ_k|{JڀDF%̿+)]sl|v:0=+H¹b8hD'F>‡K gQ:>R=O-j"Z+:H,5N,cCdW?٩![&1!8֨x8o&NEi1jy,%#?ڬ&]5^y+V#K}lA>փ<'[%Hc#Kݢځ^ZCg?Ӷhp~TBۜϡpGpGpGpG"QOӍB';WhQ"p)bSLI 1"|#8#8#tr"1Ɯ_nwԁ}*>}oᅬ/ALrrGi:1U3±2ׄCwFE'8-#/+Ç9Ugމ?9EGZykĕǧڧz`S՗< >;mPpc%_61 y@rb!/'*(.#A =SO'{|F q6A=OMPS~ b Ǩ%5õ)!g~g[jUٳ}رctb~th;;#8#8#8#tpO/" }q5,?k 'MeaI@6qܨbiGpGpG@̟6~ă9AG[ߪ9?:%)%aM|p"و|NY`ԇpe1#1"CGr%^j\"‡]5k>O,uB Y ~%{\>쪣>"\Cjl,Zx DmBtzh3pٔ'y9t5u( !>\qPɼ\CrGKz-fLZKou6b~_{}:^|#8#8#8#8@GCv,|FnHcV70oGxt)OcK|nGi_}H&w՚x#8#8#8Sn-\ӈ5X! MߵOGC=,G`tRbqa8uWlP!Dd'!#sCdcT,s'~5#4u[SI:ؘ?Ѻkּhѭi*:łrgC"h!zSl?+z:S=8|U+')39Zꑏ2W_$!'\t-#9k_vBpb~z;1#~GpGpGpGp: N,gB.*=&?cGNŽ 0DGw91_H8#8#8D̟"N |$蠑[黖]ep֏@#[xb~ߣ®g'EO d.rO_DF tNʧ6DK;\lĪWrr.v+NA<K<Q|^ E[%hl$ks}E )X֕Pɦ}iN,'9î/[~UW ylՏF'lr}JK'sҹK4/ȝ.z'?zwb~_b ;opGpGpGp-@c!QL UGMp!#'+X${lq:#1:-'QQK_7iͩu+vj;Q[kėbkmp`p3Z< բ(gAēQ>K5NDQ]Z_yc#V렟BOѺT[F.-W}hS]`Z՟9O QtJE4B7l|'Gĉ-i[rbr}#8#8#8# L:""-Zm&nCOoa qaH(H *3m91L\GpGpG`[@bK/ϴH܃aFYxIJwm}{2t:b~Wp"=F6\`gΨ#t&GQLj _n֦嫮ьj+OaN\WM  rgy蚳NbEˆ}D lLjp0Zl0,Z(WL__>S bFPҜZH91u2b/)?kId.!GstD5T[M'9g91޿N8:[W)N8V,[n86d0qlNmIY 1M)Nع)GpGpGpG81ӟb`D@ҹ U$?#OGO7!J08aLk#8#8#tb1?!#~o :O[ߛGK;1U] [?E#4@'%v<=+DcYuw'X(^=ӇȕjaC7šAuGpGpGpm'o37ځ~B.E}ʟ=t[,ݏ 6ݧfEPs]wGpGpΌ@zbx2UY2AVt|A vbT]epG'9&xf8 x|3ׄ.|AfFȇA@'_bt3WɡB|E}Sך|'5|#|ĕǒ&Q6%gIlZ'C5T.u ja`& ax\r']'eB՟}Ψ'㣓+L {KkV\W'qwqb>犷CxvT_ƞJM̯˖Jmmmuzrm>}~6K[-%Z#mܹV4݇lxv@)bSdı8\GpGpGp'3&}E\|_t96o.@g#sf**;;+)$a.0+.gW1GF3#fHCԟQ~F>;OZ5îz誡ԒPZ7u|P|TGy׺ixTQɎMHW<(lةz>D}HFŨl0GϨZBbCqŮ# HOr`@^Rs?;81N<6`OqsW؜Sm?slysK[5yfݸdyWԧyxyvͽ {ȄK/_M(?{t;'ۺz>:ͪ/|/.zܜ^W^(SOa.ʼnBGGpGpGpGpbv}[;SXȟFnm0fG7)ݣ n1!pGpGpΏ)/l oOHsEEN@O:/O|qqF̯W؀Ӵpj 8>`d>|(R;6z1qK JO֗#ZX6%Du'3ǨzkZǚ,ia҆TSďP:Sl+sLj6lm׳Gm+o'\#9ft򶥠rb|7a}׆0ŐZ.{< q ׆/U|ʼnE,\sGpGpGpm 'o[w#E $܌J'Pc\p@DAb''G<pGpGp:?"'B~ GGߏOOߵ}YG Okr>֦XjKWlޏŨ_0֘!?1mm@gAY6<-Nq8n: XFz \k͵:!Пu>g?tQ'ﯺa荒]G-%RiT׆/w'?z鱹ӟ} '# %ږ.ZT ߽GqҤ^B׿1.qNjkv5s\x"0v͵qbʉ γӏ?F.*5n솋EԮYc__u}0\F jzCp(ON&%JqlH  &5rC|ymlpFOeZc`Ë֣:ǁh? H 1BЏԘ4&b;[·!وzX8:`@Έ2#>B1sXy y._|m5cN }0LAS{"a_kPl=j䨏|,j Q--L@Μ~tl:OyXT'QW`+ u:ޭ{c"Km֔)Eqݭ{Ϟnts\DU^٧w Ƈ; nY՛h?im}[=fkWۺ{7ڰ=h̴E-^[=sկp~b}׆'W~ty!%)|- eVOLǃƼhKkjߏ̳)Ӗڵ"1~vG&ؠ`ނvywޭWU!Lڥ _LJ_dOīv>'X҃Z:!F}%5(WzGW‰aN`<;qm nPC@gA\~"`mRI=_"|W#?}aZ+v_kR/GsQ F⻅>jP_yM{^S;nɒe7NjԱ^ʉ[bNoW3G a}4_|ϓ[#U'U|rny7&r 9(r%!¿80҇)Çٸk݆lKxf^lXz~KsUV!mrɡ1lUh~}pj[x )}I6iҦ"9?x`b?qW{Ҡq-/ڿ{Oh_bKb=ʾw uZ&9^#/w|+APʉ(\qGpG؆p6|}뎀#M#mBkiyG*޳_%R #R\fby#$$!5aR:#8#8#1mRc1 @91|{[gKH̟^>t0\/2#"?\g.p`cT8ćV.xĥ3ۜ.Qvǧ5\&e jԕ^Tc܅we^{}ǝwnx%ۘ-66ܺ nٿP>ÇE}nMQf}b[ra_~lж$1O7on]JӒ|#9q޷L ^3H?*佧rbf'9P'^_\sN߻@ɧΈz}ZThir4}?n{T8#8#88# m\N;6yb#$sA,[C_ XpGpGpN|R(E/Nv͵3_YYӬp@At\':sqè DW GpE檡):🉥1c._Pu#FccZZGPh.bFȕohA/k'C! DLJh~t4pU]=G֮Q+ca*[κu^^b=00;"^ʉg}~OeB?mI{%q޿<_?)vɟl߾G))T䫯?6G;vȇ?T+%+#8#8@D ~ݨu̓ϓG081Ü*_6@5rHtosO_oN3GpGpGVNTE$K|r~ WO绘u዗8$Ҡ˿iV0}:mEn3p@YX4!ˮ{oZqZɎOxDkW lO-c?O_aN?lZsW^0E!XƈNY6hHd:qɆ-"ur؄ `6j'.9獇΁G檟H ~)8b՟kNdYS+y?_1i)1~*}5]Mַr,3K@ǝ:Uk]%"S쉧bL OxȻl/(՟^c 64ےw4>ǿͶ[)Ӗo0Þ}Q^n8CS^N[^|7/Bt.YNH:ÿp٭76<+ο?buλ,w4#8#8#)H-nmE]sG3"xV}Ok$)1?KH;#8#8@hHkU`WGDb>bd Rܯ8Gi:1{j9*vV8 g'CC7*#HO :G.[F/σ&"1_5ɗ+O,6z䵰уQ~2 U#%|tꑏh=䓓1z& j_{ҺYgEE\ $jZstF60gc" Fu nyQ?9ԨG~rGm| Sj?ji;s-QgT>qʡF?ߏb]8FV/.V'61KT-wl Ǥ?!$-E̯]fY!#wCSi)1w٫^ߪU>̒N[fD3L*zqgMPp?D!_ʖ$74{{nԸ=w`fR!_tV[G%.v%P_t/|wk|Ҽ%y_:^x1ܟvib! bA#8#8#Щ(:]h򿗷.ӣGpV_׶@rHK*,'{E_ cfc8#8#8@G 'xOu6\Bm<܊Btmͳ l( 9~AQC.vUKu_RbcC9W+2<}kM̱ZAQ-1W]aAǨ_GpYtxa4L\8aQ_Encd>&x[|b[l;cF$;k{ !Fiǖ_]6[_m2nr[3ZcWz1)S/l?ʪ>EϾo  (.1E0}M".(kԸ j܍[" b"y$ˢ0 ,=Wu{랾=tU_|:_Z zh#zJbAlz !W{xr-N<{2Y;?)ƴ1/R8~T\{c_(?n=GB|y/ {Wr׍jlϹ>yƟK$0ezH_}]O0F#`TC_ߛ}Y௡/Uc0; wk@uJqϢ= oݺ~->+Mq0F#`0;8O#aiiߜ}l=rL^Aӈ]~LpFD_r9BϜxYvqKѓ!=MLngGE#A௹#ʅp!Mx#[\chQ  Y(BN-^}2lcCri]8`ԁSM1:i]tZj*z:QP``UXj$b+d^7XnZXV_=>N}ԳIުyӦš{1%qϙ3ôHJ+1Eaoo+o1ִ/=953wն51=gI:l>/GO[1qB8lqomCIqc_ru{_ac'Yyw?kJb>~_6}䳷J'o~uG/ob#(.k3/IG|Ω&%1Spͷ$?;LRf]W]ȇ=:|'W51_7#`0F7XT1Tl7FBBu@k%Cno5b~~ T?7= Lg=LoF#`0Ft=_Wf!sV/^߼Jyl@k:?bDW|b~65G|bzzz*>~|LO?Pe_rh1.닰/?l4>ˮ^GSkNO>5y2>=_@IDAT1mUk.ߴ WpB ؘHVe}OoǗC oE_fMX`A/q&H5d}_Z\4=賟 Oxu-և>հg?On#N s/n=dK𞷼5lZ"o ¸ep6qdÜx1yr_BSIxV=ׯ,|k=tD8M6lGd9ȹNQ_O÷?i!%ߢje>ndz/ o&:in~m6#`0F##`+q7-gsgF#0|01 @u1zDV;[Ρ̦#`0F#ԉIH&緮>O:?"ǟ^O˅ &D<9&ð!6AO&(4]#/s#_tWP֋_<,c qi-蔋z_ZKl9fo`@u@:LJ&$8r;9F-͕aCW#0`^ےD|~K+R>vyJW9f>[QAG²cT%?o'i1| [7lwnsf= '{0j5V,M:p>.+&,9q?-իÆ c}M~,?.\'qx9yJز~]0g_ |rq԰aᶻI'O::<= #âWx2lޜ8;"wBτ/ߧk`/5,Y97熽cͪOߴqc8?#.{x\>Xxoy [o~-̜}@3ѤLIO?k0F#`p@=]wڛbպZ5FF>o1?cƯܛ19ͅ=3F#`0Ft("a|amkF.VK4<6Fӈ\SL@lkb7a i~"ܗ~|蠗@cxe?˰z&F}eU@椨%~p%W>sL}%/aE_5vLp_UZS^yskK_Rr;a/OXeȑ9,{䌺yunciXecA'p+\;q?+[s'/?#IMYZp]sHXjugw}#EHx.lc0F#`HOn6ۘmkb[mQvl1FCޕ@+Bo&B:#`0F#`ve21v_/;WK{>ve}Ft(1x4pi=v5t|@'YW(7~*T=4G('cœXdžKX; +F9UǘX|KQ^tÇ8h1҂9"@J;eiGrgN vD2s~9Ė9UG9Wr\xHK@]oWz'Z*>1a'.3W^oq&cK~cPW-_\`1O;mx Et5ft8?Hិ{~Zr/LXqKUxIaf&c1YK. k,[֬-,y8j|^M˖Gc<*~a/ܷ/<~<y<;{|x釄IB*_S_9ჟwޑ,^w^=}9Ok׬ Odr y G9~ YKx2,wi5dqt8t9nFMۧZb= m$ Kׇbv3&=qaHdiŊD'רȩSa˖իn]!9er^Go9uɓ~f$ُYttמ”IW?ꋐٕOdA w$?3sBpu\;l,^{쟮”y[0F#`xjZ{Z:?Lxz4ģfXD8L/zbϘ8zD9M,qL+VSIQ?DG/RA ɉS+'v:2G /ٻDǢAt:Hhú̎O+)s8j: <."_XB= c'=<kS.:.+0>WtIQT'8LXNVe}} }&w71?Clb~ڠ)v6b>׈~ p- ~ ¾Ϫ_>\u>f> Q(悬K3 b~ /}4ݶF#`0F`6A7{=oi\Ѳ~_~վu\s#`JLJ]D=Rj;I%[&ݶn8Ԋ jѥ8_0F#`0?sg[$H҃^ ?:OmAv*wZeGg"_ͳv ᠵ`zZ D:D挥W+O0䡞NIP} \0\oA#C?мSJc^_ѓfv\3fԖ'3NWņu~ȜMlK>ljC]]Mq;1iMϷJwCq]Xkyg3?gZt[W:#`0F *OMp/s3"o9_)s7ZZߗڕL-V#`#`b7Y%[c?="n'L̯0F#`0<&o04b>PO:ۚؼI76FqA>>>4\j8j:)vGu}oFꓓ\pKS}t'=9+פq e=[U߁E9hZ,ZB1K l 8LsV<8q:UO.jC>ʅM`#Nxtjdkb#?}Q}t#cc|Ū+~pM֚YL-|K.V 7 N;ߠ |i1>^sWb5 =f͎;g>sR_0F#`@~eP5kA/eߜ/~.rUo5z7=3FEՍ@eɖ{}Ƙ_s#`0F#`vqL>a@󻺺”xb $pY{|у 2"b's"O}b$XZBFNtu0cAStĕ`"rhZh i:9C/s(VKu2cbSW,u;!-"2lHo,ܬoq&sj>ފ|M6o![HFS^>.*8Sٹ!O6m֬^քukօ Qg1F#`0G cǏ ' && #A?he^R)CΒ/u}÷0zh0CC hS{#`0F#`01`9%/6)g&^17ԤYFÎ/sC^G#5ƷE"|_ 6>>O+}Gc&59X̃8!Ze؟-?1|ɣ\, HbE|EO|%Xѥ^+!a(ϱrc&FkT>S_檫D>+W_- t-U63@ǗCDoL_va&S@ @J)=2F#`0<p͘o0j4 ?ģo&᥮7\d<,\6"^∕?zr<"aI|rCKT_5= _R|+!btkS_k`֏e.w`Xz:8|ʺER :D1Fi㋨UPIui/'9C/]yҕW tUz31H_5˰@ ɪog>o/>ު61FۅLlJ|0ёg_S^|dO";sXZEWcT_5JutO\czW9ȭ[T߁XXP "Wѣ ū/ [95ЩlaV 2^K1+O#23V}EUU}Z8Ȍ( CIo&ɪog>o/>ު61FE՛K㆏l\gYjx'ËI)S&3 cFX0F#`7l |,t'׌n$6{ycNbrdY_0F &.kzA@2/$#`0F#`QFt1+/\#vƶ:6nwxdODwl\QÔ|Еf㋏K/_lM|izl4/n"=9~iL}DUDyds_&sPQ -Js:@^6@2#ɋHX\_qW렞'5'FRnG/KlN_*W1Vag-[ @:Q o}qYOc8y$}|I?ѝMVm̽w/_cwevc\|߰+k,K\;҇-=&'F#`0F@`ɒeH[asgiS'5uxlkhob>xX0;'o/Y??[q2 ż8)ҿ֒G~5Fާʸּ_=ihȱߒU=tJ7F#`0Ft4&wt1+LѣVꨯ)Fʫz/n4=ܬ_iW 8蘱#1֜uC,^:%a{X|9bng/ףXz3IG|l荠99>u2U>V攝$ң9cD9=WQc6pجJVe}O{ǗCnL_}|F҇k){Wΐ1$9"uqJSL#|F)G##`JLJ]Djb~O1F#`0F}@{PbYc[d7ʼnFGYu7ir|0呿jS7GlqT_21g>j/8q|5Wmɥ|+~業̕Jrz-+` 8lA ,JIQL9^gWci =1qCGכ9c֤kK/V"/_̰o^9)jlK>.׼ћ51?㰫uF3|ڪykޖ᠃fɽ0F#`0}@`ÊUa=Y#Ћxw;v"{ٞsڪyϪ=0F!B!e@/{;crw*kqAxjt) ݯ~b~b0F#`yQt1[xFDQlKR<\e6q7Y8Lfz̘Fa<7vT}ى!B|EuTSeך.ijǮqX?>Hi-=~U_$*>"%!R~J0K~`+' xXbN,u˦򥇄BU㒞^OgL\88޿{7o-N2Uɪog>o/>Aު61NnmH{}뉏ݬז֭Ƨ#vP3FSJ#`0F# 8O7vLg}5͉,9SIԗ=[> GF#~Lo?hFcbpo0F#`& 7Gv i|uO|Z0$ ^q _n4|;Ə8qG~q8!#Q}z`S /7a}q(a0F#`:8,]fG5kx|hnv׼by5zl0CCk(G21wl1F#`0F} i gF4m] U/Fy&xر%q{W擎c,4^>yX_OֆNyGG(/sL}쥿rEux>|O=~Z֫96 ICX t@ʩEbdž(tb9`$6Dqe}G `.{|kM_z5'ze cGҷQ]uWbfZĨ, LǖE$blj&gM̯:|Zp{>>W<__̹뾰r՚pA3'Z#`0F@`EpaH&,Vq>c#`h'&m2OGZek;ee ߻)oI*r:G%#`0F#`:;vr:3iYش lhGd򼉓mձ|諶sɉc՗^y1U/D#X3FZZ|ɭ|zGr,Nv>>o@gAYD=5xZ,E5yK]yeW^{0C&uU*ǵ x>wfb~F;Qy|<6#[kpM ;uaǹb#`0F#-6m~{0bDW8%|q$MX4/[kR߰1* 0CC+V{MouF#`0F#`b~߱h7F)rml0ั?YxՐD>6\<ŷ&V~رɮ>>nbXbU_~є8UD"nMz֬YSƍ&Og4o>?31c<\*To(u2lkQX_kn+%9v#`0F!p-O'x]#5H"g=l20&m/>ۊ#`Gg1CO߳V=>/#`0F#`2&`/FŶ.6jPSE GG}c'2/q|ї9 3+ꋯѓCvlɡ? GItlLATSaP_koc1:ɣ\Z9/(cŦ8/~iQ c1@V.q+sa_SGh3'O. 3!Y+Wl^IUɪoCƻIz6[vWZ}2~o2f0CرCۇPWM:l\kkG|Cq]q[7.Y=PW'׾0ut<~-Ieg:}ܮg0F#@@gẌk|'>v }9UjDj=7Fv"`b~;v-#xԘ#`0F#-L:Eӈ+YiU6ay<^:f<4+.`Gǎ/s0ZQGuKJrO_X8ჭA ~a]߀+0fA\=8pCDR/%S:|t i/]{q&U}~2)/{Ye`sT~7<Ƿy.g0F#0"1q[8j$N/~k䣣i_椚7F!@!%6О\L0F#`0C(#:=iS'{(5EFQ]|etUqKb<6|7-ؕZU'S}|[C}fz'3ƮЫćU.I bgLF~[_TEWkB,Wq:Xl+?/|& |*rˇXtK?>:)[9FWnzlT?c-_[HVe}0ε>N}Գު#O{,O {1-3:? >xX挄?z1KozàV7x55'_;3_WIY4~;31;<熭[Vk{5]31/%LN~-羹0F#`vD?s]yC$bFƼ$ɶ$ڤGø;@4X0Fn]lrO7Ȗ{}|ѥ'<]s:#`0F#`@#`b~ǟbN@G 'M83b[;4p!*[kLr@ {/;qʏN~Xv 7tq̃Ы.+lV.EE'N@uЌeGs̕A~O/r+y$e}ե/Z:!C}T?Du5W}ևh7:bdWMzlC=|6sHWhXcݼNɳrT6٭]|V O;hVkM{ua8Qyߖk-,4_;dɺSǠܔ6켹*5lmo;_wkH:?~C S_{j?:$0F#`:"1jD/ CߟLtd}|FቀxU.^)(|F#`0F &bvFWS&'bձ#LC\O37h &>b_O|fe~řôFUZB_ƪ9.]b8Ŗ99˘G)v KX0  Z\$+A@zG/ > 8E \b^Z+ѺCG-MҩE|ZK:葲>sբǗ1N5ۼYK˰@i& 'P% ~clgIo>ҥw!)@y<1i{k*/tܰ9믻>7.̛wL:x11(PwM#`0F /D.H%.~܎IXVf2c"ܫGqM*0Ff]<+_1M{,?1_ȹ7F#`0FdL; _:?bĈgD1_a6oϛ:O,:L~IO BOcWjDUi['g|#?abѱnZ9vQ눪$N=ƊW}zP}r#ˆv W )L~u&CGn&=1\ #V/j]q̱OGTkÎyFlY+Z|[m^X"3m p A+V6uR8|LaXB';n4k'YQ\&k*'ݍ7ߍsY/ ~1!Ws0'Y#`0F``ܱJgx_i/{#`h& i1}CR_NӸ_F+}՜)xl0F#`XLS:ϞiOfqlb{ ͛oBbΘ87}f?sǚ9cVWt4Dŧ^,r OZU}jLC50* 16JԧހE:@. Bp0 v@#vy>o<4?j5WDr`GSOa!U}_ǀ̡x6z|zel]2!fu\͛I#$oU-<["K|ضjCM_hѣa5 #±&Lth>@5_㺊3=-F߅~azᕯzE= Eؼes;wn8] ^rYׅ[o5L1#~a\9֭[on9,瞰zpAs~#]~MXbEl`8? ᜦ㓟T~|IXhQO>}= #`0F``|?sq%>_a/#`@01]HսT0F#`0!`b~oXoN#skꔉEdǶ66%Q2"02q7ĖnQ $^"x;QBG z5"ͦra5h='a}Mˆ똴n9`Q'\ aX q0,s$c9&;"^6zC]yG.|凞11X5ʓ8rӰO'LW2W50b]Ǧ>W߃ Ees5%y8B87 ?C5a&ޚYv15̙OIT71v:L*WPsu#K[uN:&F}>.Z%'c:pssV_g0F#:1!qcO7wL/Ǹ1]{-F#0?(:<_& F#`0F!`bpshF1bDZr3/qZϭuuS}[>ZlY<^@b#صLiUbiW.U}ŒKŎaLS]/?a53Gralr) M>z19hcc;`E3˰AKJteNѵF<<7 qH̯ʌ&Osh^ZfRu)_/յb[Ni裏нbe|{w1czx d)N| _G VB+1ĉq#Ú5=hXqc.LH'xrI#G ;/L:5vmOe˖eկ|MtE OSWvw'IOS/%1'?CawL {o?w >!M-7ߒk֬ǚQF)1*:pg/=7F#`"?#!754M_{g6z0F=]_߭˖{}bTxj .j4<$09*#`0F#ѧ#i|)'OAr/ g  O 7 6֎"C{5r;vjbwd>"sp|<&4D' @!7 oQM7 O41^ju9rd裏gyj׿_rJWb>γ?|f0F#` &b~̹[Ζ6:]}H|S嘅yTƍP_#` `bFW_*{#`0F#`01`9N#_'母rSLh FK??nLmU"7ȡSFC)ꕟx?ˮ#?QXUO#%0xiqs@ςQ|+bN:`?9 >1zi&alZ/#U9NlSSy0`C?h';>+W|&\- &!\qI A, gR~(!mܸ)tI֭{OU67/|O'i|1Oyy6Uo7k/1x⋛yD?͛.{u{I?ÿ&Vy? __Es#`0FD?#?ncĝ[%B>8ȼ|A 7&iپcY0FwL 961_H7F#`0F @;7&'>6wvk=5|7uz]?|ܖU0"].|o/JuM}UF.\x7.I~m|ZvJbz͵ׄ3??p 7ןnL^8y='/|qx42'4,z`Qix}ZWha~撘駅CupI?>\rwӸ|11Dc#`0F8Jb_#ݽ Xh"~/ҽVޖuF#0?x:^&o/7F#`0F`WG]t1{^SL@lkbJ0 JdtK?niʡ1v|U_5IЩ>:eW.ZU_>dz. a 1֕m sybEÅA;Ú>`@k.NFRrGeB ҄0W,bo범sN<1_Kg.OrիO ~q2mw?b#w֣yc듾$׿ēÃ'_=3í#vs|QǦckzĢxq[92$o9u?7xS8'Mxb0F#К6gQ_>=ߒ3^[̶l3FEٌ"=P11_H7F#`0F @;Pbb> M? -r]- 6H$FL9Ɩoe?HЫCAcCf#9v:Wr\+ct3&Rc!Nk+Gă!Z `eN}Qz| TFO>btl/UEvN('~eNH_嫹rY+׀]orӔ'ϊO*ia'03WZ3k 180?0L*B߼yKGm~/|=>7d} +Evk$7[ͷ-H鏝77}/~~?OO&?xeѢW4y_=i2mw?b>kL/1y}~XɵՓ1yY[nI>%ӦMᘣ [6[H-WTC/& F#`z'Ǎߕ Oicqw@}P}y-{#`ڇڕ@_О|l~*߫n{O;q_5?$ ~sp#`0F#`:;wb:(ձW]3)A( BJt8&QD6=cxĢc<8 acIuc.=sDzz]~T'lei1z2qr$灼@bEU@G<6D198 #@t'="“F g-Z6S~AO2?vȏW&W6Qq x#I]1)(q~裞sܪ&e+”#Xo|tm,x W=V聟=?%;n0QH>~oZ,b y{s)^o]eWauAל~wRW?,hkZ'4,z`Q|/=Oq4'x|#`0F#+"`bx}; GaIgEmmlL]F4ϳZ0;8=4~8ɲGC3^74G"r1gL}Q.g-a+tWcFUҡ'5~Ԣ&>ɫ8&$^.PtZ8s,f/Xu/ɧST^ + hO>]>=ue>zM'vꏉmKdpuj&v:2'Z<<7vWYn;vt=zt9+lذ)ZPGG :xa3;bfb@u7c1d |`51|bn8}b'>нbe8y׾"ˏOõ^ƌ>Ⱦ=};o;_}0qMK^lYx_6n_D Jo /U|22_sK;peRj#`0FA@yG?-=;JDg_A/Ǭ Өx{AO;0F ۅ!=Sykߔlw*Q57Lt0F#`0 F0N#L(CZۺC(gF oErp c>bDW8Izv֍Jq5G4m`WO^S 'Ƽ@V.[>x ‹Om0 +_ _rgWSO. ^rip+peۏ|4G.%/9`]xox)/Oev Ͽ,s1*k0F#`wF|z~'E~PHGoK솦SWy`0mB62F{}{lw*H57LOX#`0F# LCӈ#FgDm}l"a"Cg#^2 1:6ʆM~){(St"+zjWԸ<p+5c]]VY~EW+C8x-9zN'9cL,y"@O3&p3V䫹8!җ'9U?@@2Or+yYGOntcٽr͛Q[, 2p~Ȝi#\ǗC]2ɘqsk1a5ySg0s=è8nn[O7U15s4|0OzSP*'~BםwK.~wUo>iLÍ7L{J.z~}]S=,.\ts =n?g#Jcp4x9o _w}'\^uAf̙ᕯze7~\77_e,`}r $s;,!FǖGcHKr57f;#`!v#/g*2-|;'] ȱqs D,ms#`0F#G"i|ĴΊqylc_!YWc^aMg\;keL|5Rp_CW=!]&Sp?(/멎8܊w",AӢ`җXV`Xa_8ƉӉzrTW.lqţS#'[U+V]MԤ˰@v+a:vmɇMm~裋6}:͛nmܴ);:WZC)&%;v8}|ڲk'}!.|ӈkq]5hg0_W~MZ1<=̛wT5~{瞅aڴ)ᬳ_ &| W>/ =|| _/={pᇅL*1%wa!pE8O;N5^f̘ޫ#`0Fm#P!@/!C))&0F`G#`bF@ОL0F#`0C(#:Ͻ)'b[76& ^1ةu3Gd/8ǦF}j_:$hEO>IR.D*?ӗzK8aN,tU:R_^H&cXU|:kcKCi A}r*>1aw\lX9?Q2lH'ʼni&Ȅ%GlgM6Wbb~Vo"l}|CZ5 y;aI.  Aq%?]* ƇC}Zx+NW>'sTO}bQGj?fp˭7o|S{g&|'{pOO7[1K/,|z(lRx4{寄}iz{.o)rk83Y'<+w^N~_/+>}6?+GQU{n0F#GD?樃[sHGC&}nF!B!e@/TTM(0F#`0}D>e7#0t1{bSL<=B86}V!\I1czbEXjlŗXx73hLjaC5WǗ!?6BY6cӘlGusLp;6u|݀+:9JЩa,"#C`]Cs˜Dk Nɑ/C_XyUTCbGK lyYga@zdpӚØ[*<ėC]|M𚘟qM`>bӵk b>W]+b[­];o$G?rQXv]<7?X}ڀre˖EbaĉrW\6lXaBW5^-7n ?W$֔S¾Fߣm;~{aѢaӦ)8}'IX#`0F"槍i%n.&B>01#`vRLIOݱhThbpo0F#`& 7Gv С"v8+NT^b|KOV,v|:a1e-KR_XX<W6$etU^ǁ ѺW/s&hiKbA%Xs@"/R+&8KK>>WC 6Ӊ&Q^͟c$L֨|ģUW=:|q3WtBS9zI,41ӛy|yRM211`:D]?J7__5UO>~1'?Yg6yr|F#`0FTtA9aA~IO !O%}y#`@019Hg& F#`0F!`bpshGN=Ȯ [hpˆ^g͵hBՓ?HO$\G,:ʥV?BL.c:z[U=\-*"@ )uputb|ӤQaN/b_Ns|^'_+bAJЫ=z!Gb[(uXdpzØHqdb~zOLNTo"=Q"^ז%!Kq0r{%/|Ì;0F#`@hM̏[qC|']݀ES#` `b$F`О/$#`0F#`QFt1H̟xfnqljB7t l"ۗvыpYqS/9ʋlIdgzX jqi,ˇQ_/qV}-*^|,\(csӫ՗FsʅT_6z}6ŋh5bgM^tU^ZpQ}E$%qQI,  SP< Y팛۬{7Eg&wDIׄq a\/io~uuiI0أ éwxd>3qtS8L>僮Cʣ˗x&4}g,*7~v7F<$!A AkNR(@i.  עP +q޼dwcoߞ3Gf%6;M>WPuq}^}+o7vh315ac mU>@:ʣ"."=u|48ȧj!h\×v:W|S\X6;1r̝(\ PKd`",gaN/e' ^'旜f~5}Ccن ^Xjs[a :8#8#8-Y*\W4Sʌk_?1_$2UfryDJj5YpBe>G  jV)~P=Ԝ>:<4gi;#8#8#P81b'VT1ںtgX1>V`:\d(;)kt6dOGRdGTG~M>W\S|DvijlZ!*=}@ ``L:kA]g,O#_lN&W)6:_&bS9Ӂ 9Kch)KQ:G~@v AR6xtnD\ΖVQQ{;6\e0E| `'g8T+}qY|ЗdB>| $Zk>lePQZj ԉ{\GpGp@@=@̗HTL|7z8#0pbF;C MUSE}Z+Erb~vkGpGpG|_k3lT(1߰"C1!D'\g. Y&6T?]0" ՒƃM~qS{rhԕCe:OTjU['t!j}i̪S!Ӹ11K@jz0%KN,J~8Ji+?uD)S1nڔOzrK_'mIsV]RBH9j읺N/<,r]g *ӗ3>Gԇ2N vb~Su?7lfU{(}oo  ߈]SOpGpG?๫#8'7E!W4kN̯9#8#8|@dO4#W;))8"9~r8"/T#;"SGC@_1馭LJ8R}TQNWƤ49ӯZz$ퟙ?z7IIΉ%!b(JR0Kja`+&(NGP <WNT’7=_9A!a^:~B0swL&v)XdyT^<4d|B^Z:1?C؉3{يjMz4%;1#8#8@!P xyf* 9Վl;BI풟E"N*Xޥ:#{?1 @c_STP_zM5Zwo n8#8#8-'淄U96W*5u3_.Q^q _;؈w~"Sمj@V W<ꊡĒXOn CqC8#ƍME80(XNztDu3=OQ겧$(tFR5^#D?ˇi^Gt GܞC˥l`:T8:eehAχm}3_T(EQ:%>j>JLWFuT"gew+GpGpG`iÉsGpGpb~#~FGpGpG`Npb"C҈a> Z ދC 8'xȔ'3:DHKIGQ_{8/ ).4P-ĥNt?W}Oh^- )I?}bi]c%$ez_1s`C @E~JE7kc*&;XrhiI!njs4Һ,dd^si=#% >at `'N kD>)nfGQ[^Qq|b9} zm5_GpGpGi4_w|1iX#8倀a| @5U'#8#8#8MAMA}@1Hq`-# WۗpN [|f8J!#/җV>mScMrQjl%M# Ӻ84IH>"ҹJ$ցWɎ>6`M$,zp`G,=JC5Nc>=&M#%+(!X~hËMImC3QN 6B~AH~r"ʣLW%o{8 Hi3::&GzO`jFC]G ~?B5 mUŘGh&X̉>K/tƎOp=fiK9!?cڗ +SeFi݉%@5F?"? m̉lQ}#8#8+~}# 8,ptTqbpGpGp!^@҈!C8H! 4 x~/\eqWqd{EzܲU.ʯilhcG]Cv* P>:"=vMkrH M:B`G4I&Kя^}W|~Q?y+zKƤ\#'طy( 樺rQ҇:#m{ԨwL-e!ŭs#(%GhErŒ6jYv}\tb~e{G0˜_KsGpGh81/p& &.I)Oṝ#8#8#ԃ۾}UU*XUzꫪQ,;?kw}jGTF:٥u3fѐ (i8JWyeCl׉h~Hs$sG4&M]4HO[n b=. z=VVY(-3}~Zy/914\GpGpy5pB>G MՉ~N8#8#8#0g81soG`^"Pij9ƅ1g8ĴsxȔ:C@G)wCW3ut-t1JEG~񡉅>U._Pu( zN1jVU.ϑln g`Ԥ4X 8$6L;ztmuAG;_14`Rb(숫SztOOW;j_X0|5yWJaˏ6)z|3qhחCK[BG?#FJ2CE4b>}Aq~ =mjN̏0!|8QsN_{rGpGpG"ft>pGp;9 '3h=#8#8#PBާ,4b>uypL cS5mGjm:~M ;sǚ6uЗW tO-eZ'*?yU>mhs(* >*7J'_EmrZG.  !8Ehkq_AuĢ|\|ωG\i~?#OOɁV@_Cglc ^R.C=f]Ӧ BW0$ yT>_[2a[ѣ=fx{_+>#N/2JcUUU‹Z޽fo~u81~!yGpGpB>Gpfg;'_=#8#8#T>N̯56_*wk{ O XTʈ8ov*[<9KC1+ơ[tёRl+Fщ?PmWc_}Z"לGgEA 8jmg2,mM:B.0(GĮ#V>?>ȏO R~ꊥ25PuJc'bȆ QcBv)/Գ0*[zF甈QH'1?%W7k՜͇?qD0惘KVc weڶnm|v9ȑ# W^y΅mb>-<4F?"#2g죓:گ`0=_{B z8SZ1Ct[GpGpG! tGpb~/O!^;eU_ 硾Q\#Uآ3TB]SJ R_GpGpGt_+kT1:wjOX!!L85"|kstvɆ:)KsR6OS JS>VBNʏƩشzhbk\i_9 14UG$as*<R#*$L6BƠhbOmˁ{R\/[!9W2DG[qvO4>J @ vXv R6`\K Qs]Η̉1_}s/oZLs)MsŕVg}*nt;O̿l-9n(uIvG|5;_ZuMie -uVYueoz-M6U~{ڧ|j|M4ٖXb1[}m=ۖ[nQ:;b>lVmۦ$7x6_ko:k;>l>*>w.> sԱ:ߟaK.T=o3֮:{wk&MBhE;Y݋/'#8#8#0Wpb\у8#lpb~Y*h Ak81?E뎀#8#8#4'73pF̯.;/ x $řLmTGOL8~ꊍ ~ȟ^46t*j+?%Xεl!㐭x+?%~]}iMμ4ISW;jOB)K㢏 &N4h^S1;D~{R9GW>l觍POt+mk(|#F)2bҥ<'X7#TWZ/>2ҏm_lXOvY"^sGpGp'!8@3Cl|+~}sbؽ[ jf\pA@S:u=caX{[N+GpGpb~yH4b~Mظs1B+7:|b+>vL8i?dlE짏zU4S?IgT|씟R?^sQ"Q~+)bM}/? Nm& "kք Đ*'`NA?:6xG_iOOTP6Ǟxdg|D z|m^cƎcTL] xE}2U썄{Z>X/b>{A5[G=l+LΉ(fZ8`?ƅ^x%>-{/s@IDAT=wWtwgYo.>g:{u);;W'ƮYV]Fm۶mk0@m7)SxRN]Ylo+t̎_ӳ-K-Ѿ+0d?q$'W_} cRJ̧]Ӫpw ϰA~cԪGpGpGhNon8@sEu|ܕ+ue}^so. Kք"6t4gKpɓ#)㎫bm7u\8#8兀k=|4@@k1>a16 aUXmea=~a5>#8Q\꣔l)Vn&D1Slh^ :Ţ.,4+i7ZH67D 3yMHQ|lr2! X84YՃ* {ȥQҧ|y?H:"+?GؕK 1>ԏxaA>u:cdv)XZ}Ɉ+1 ֚+qWV\o}Gq7 ?ݶ!3^|ŭ K/Ubqgɓ&<>?%vc>toˈXz饭_mQo۸|g]ul̊rl ַ{ﻳ> 7XhSxܘTRbiCi^/uڅ_o]gwZxH̿ .ˈnu^xe4ibC_em]q%N/ GpGpG`pbcGhN819% qĈIǝ뷘;wlݻw}+ۺ;sffhNoFCuGpfgw9 J#gڥ#pNvp^d/s>$G8r:>|8Ч7TK5/kNh\Ɏqxr T 3A2XDZ Gϡ ]:il1bx ҟQPbWVN⋈bN?ʯ9S~tj_k\W~P"§]߈y#,h%࣡dηM6kY2;bRK-e;s[nlmEYAOm} $ў]?=kvwe'];>Fƍn8^Qc63bZ+vrv̱Go 2Nݶ;h|9]reveWxɿZϞ= }ǥْK./Db?%iN9pAo omzSFk׶]E옿 v֭[G_f>/ 0VT556aL ݫmիmŪ) mD83~{PGpGh81.OpZ(No .[_K3/\?n9oo]}aÝ8^pb~Hlj>3Gp[zlJ;g္>Q"HQү#T#ҽ8Km反bc)T3ƞC!I]WCSx"ѦG1G_lSQ\tԱ?-M `+.mDWNmuOv+6zЏ(@8~4(&%"_J>NbiɠAɡy]y1cÎSqs)'XJ"ŗ;,d묽r N/Sǰ+YgvRua{!Cٗ_|i'M:ClӶ ?*X}!>7^6vOe„ 6xmb~m٠cF.=Qg4l~Y~mҭ[7{Z6mbK..B!+<'O?1 ;/7ܫx;vLw붰? #1'W 8({ŗ +wfO>{Ohc=WMgx.J nq 0;c\s=|r1d/lRu6=bVF5gT~ϜԠX'8#8#pb~ 8#"pb~Xfd3BhP&1ka?u_f<Ή ݉-i}#8+yu}n & kî0 YQ%ڡ+cCO%~h+lTЇ0>N$V8ъ h;-:Ws8(9ԗ$Q&9:iP Rd;u|º␋>#CqKA줧ЇWƧ|S|ANi|##>_zruG{W+. NJ"kЇ6jt3K,b}VZB̿;왿dk@8?3gg6<1?^emM^?pYU*}|6e~Gl=V]ob } yIw̟]wnoQᄋ5I뮷nxt݅~*=}q]CW\q.' >M~xXk> N~v睷Ʒ$;C̿+n./blM=1sg6{#K]< |vMܨ8YG< 0kezXۭϙ 1%@)HmͨS{pGpG81@#8+d!}@wӌY\SzY*ƅ3CSHJ|>+*e"s.윿;w]xn%U~{oi2n:cW]uU&H>'W GpZ No)+lT1߬kN gZ0Jw>.""-gY0Gz.!jgU}Ez//-ƢP@jWuUԡ`'5v"'6ӏ=4!J~ jഩ3x@eRU_:MP}O4t=e`>1曮5LrZx|kx4BV\iE{٧Qivo[b|؅\\~vocW]ym%~v?j([m59}* !/z؅:9/;n馛;RjGylAbbmY)wy}Έ[w1 6Ne1‹γڲ7ɾ ].l`meo_Cۀ?5wz/W?ޛn} U'N[+a]W]Z,pGpG81H#8+c}@v8'ڼ 2a;6d\_]~w `[xvmإ R>NGpG`81x# 4b~uuuqpL &ģ]DEd".=?)ꊍoFrR}Km[E`KԟSjNчRG)RơqӘIt,Zf%nW514ICzM$e+`R;æ>Ic8"|<Qlɗ0|ʏ?vy4/+R6T}8z=v`s *rA sڷKi=#sG}x(C»u~_'*˸qlGѹsg0`@dz\op{Aщu i '7eA:#8E @kjjs{@ȐKkB]z';JG8'HU=#eyBw!z񡥧D4&bB梭OUlXG'ke٪iJ!LZ0TO0鴈KO#]`|C>-"(? \ujNAtS!)2M' 1G;͏'6>zz|ah ,fd>;eTXr!懛?fR][Zƺw/F{'K?V^W\2w7dO8B0v l~t-/ZPNj;|px˯ !?Z<!@J̧V?O?6vxuw?vOX ?4ݎf +~xPNR)fdrҡmwf1d v wjӉۆ[ƅ{5GaÔ~;"y#g_|}s;[6Ơr z:![a[e_!]:&գs vQʟSsƉ4ΫԚ,E>ǗCQ۲WOqcUI,rC@瞁g?K.ܞ=-7>}Vn%6ze~q_Zvmc*ئ|| zзv?]h}̑v'ڇv=6wJ01Ĉ;girhϰWZ!Cgo϶n֯:tho`kwٰaBv Zqw،nn;_ s[3MJ֫_} R~^vdJwlzڽojt7Ld߫'_e>-U_c3qHCa_VOxwm.Yk+a+Տֽ)@$kI'a 2bStg=68Z+#8#T>N̯5:#" ; Fl&f@k\o1vMx×J RF 1i|g)qRiժm /:u^o&l]xK, mf5i"Q=ᷕw!G޽{ ~c[qSגzS݆ZO%|m嗯{4hP7X O%`χdGK78ltWa󦯿ڞ|ɈG"y1ynaRR_SOq3q8={F_n ƬX/-1cV[͸٠>)SJ/[č^|]k7>0~t[xs&lG'^{'~\n'pѣG{9r_vV[vm 1kF>W8#8@y!Z#"Pi|nҹag5UIDx*`.|('p+=cÇ~*&tܴ~i+>>}:ȯy*:OOBbioRI9t  ZLLidla?{)S 6:B'+ƈ4'ugaWePqkQaQ?:A9OLȟ:sR~aB1rԘ\u)/Գ0*[zpE}x(.rݗ,;1ː'ΣU+v? ?Tgu%^m=7ެcW\vl τ Dݠc;s?_iӦm\d8CG7O.bu,>죒̌+O:>~=Y);6pB_u0%ȂQSf.[b Y^Y~y;6ڮ:H_9fvRN}~&֯3/d1.oZCfTȰEſ+Y@?;xֶIkoMs+~YG4ŹNG~guj]k?P0,X8#8@KE-u}ގ#Rpb~K]yw"]/-ΉE,*6|\6(K:jy;“r_Kg'dsH觞zz:&a~ӟ+Y@Nu]׿ uLBztIu1_P:dQFog} 2XSN;4;foatP"1O#<2uYCE:vgyfڥ^jqT᝛+wM6IJ8q?\C9$UQ<njS sα%_=O?Jc8㌒=ƽ{k{[MM3j!_s5v 7ѣK/sqv-81^\8#4|G4b>ܵKǽJ;+D)ҙڐCC uJXԱ4N %\W j+cK\(?1sq(rG{T><%\>;T (>& T4 M:RɣP@N~ᗂ!@8_1f,A44N-lɯ8Uji$N_#jc#GߙB˥l'J$ )SeQi=#೴Q^?`' c~Qڪ 9w>n@ ( nm)^0@NfȨ?ݩ$;`'^5K#^s]A77o>;T tYYU/6bOcsiu{MW`OO#[no;1z-2%$o[/vGtپo}iNJv{Nhc.*×X:ϘV᛫sl7 hcKuHǢ?Ʋ62vč] x߉7qfF0itl岯קG۫(< a1ml%;l:ֶŪYϾa{^QF^:#8#pb~KXe#8E_k@9 rX3yEo׮zu&6n8{x5~io6mf DO<1jh}d"_|%ؙ>[0a=_Ǝ[<~GvǎK.3ߛ%4տ+-Yy`3Hn!b|n 3޽{ۯ~xEOb>7 ~*UVY%?ǬͰN933;뮻 y(_2mc~H\8#-N/ۥ9V}~vG3!^1+ 76%bяǖʴEHRY[ul\bbIG)[Bh\JQ遟+I㠣}E436EkO}Q,=<GH/Im?+cx8ЧxZ8$3g,R:g|4F=9*Id;w5zܝ|q`$Sez-!?Q^?`."~,b7pHm[bn?v3c lٻ`˺pMvW.j:exTڶZUI ;8ͼpͷ^Go-> qYT{Oĝ&9AQsxthߒG#8FW\qˎeg g@Пm=ުK5{L2H}]>ʪπ,j禬vx9}n۷5{m _hw~"{CsԶlMZ5א6OE~Cem|e͌؝Y퓝_c'\_f{\>ن$4vZ[A4ipGp[ڊ|G#~ ziqTc~J)1> =S/^x9;2i${m}m۰z׮]Bsϝ;C4g7 D{wqby"K/wp/Kn[lEQRan-Li5EY$?c]nqynzH>bW_}ujz޽nܴI 혿M׿W=i2xj8/"_ve9wb~o;#8勀wm|d@-iϰ"C,=Ћ}~x"6+{lqS)##yc)+'z%E~|DR,D[Gd_}F71q &TO]0hN'$t|lsH-<%"hW8,&mlՏ^/]+_Om b|GI|n!V.e@\H.V֫^$G}x(yF4^z 1tsiӦ_|i\,^y啭C1,Qm۶ʴn&<*soo֦LbvbZqMy?V[m .خB'үV%#R0{o`d$jk3:ON={BassO}~H}ƮyMZev-vG.{=5s2 u@_dsTfT㾋'1gN CnPe &w9Nmcm-./M+(mVj/j;CNh18#8#PA81ӧ8@pb~@rG`>"N5'|H\p%Юx'~`[n%U7a'ѣ#裏w5ݹsgg},%7ivA;SlgKH2V OC7qw}ulkM7d]gE_wuW^ZÉe;ꨣ-*믿~ٟ -P=C|A}VcU=7wνvi/,ٖl*<-s9/N#mGpG|pb~rFϦۛ?ag3?7TR8W2 zDvIS vXvV?7vA9:__a;]4gn8#8@E#^^#8upb~H\,PT@c&1]~=3ك ^:wy紫P3Έd9/n?=sϮy,|>Ci?ӷ袋ڡ{ZEo(1O>zp)U)ȫGp Kh?|~fű,R%~|_Ҟx=v@ovqc\8 0H0 )ɾT?2b]l.P-i/Q~lQ~eKD+S@Gڧii!zWPȔ^sT~tťR4Pr&̀4(ŧSW.>!TK@'.ԕ?%=:l5j>Z)=>b+?zJS'ƪ 1LjcDR^ąQLK KG̹S /;"ޜWvyg믿i@.+'OD"=wWrrl.BٞyvfXg$>=dF?řv"[ƨ^1GpGL_rG`f81fȸX0 \7D}Y5-\WU=\{' eI>+&K!03b~S.ߛoS{>_~w"YoUVYČ`yԉHN!>}q'2~7@&O^[n9lܰ_o~zK.rJ@oJv_{/5/ԹI">#Ydxs&la>XT_~3Oձ ̥{>nҸ o,Ta)nx n7d ͼ81?GpE6>2GtgX1>VCH%0補$iSrGu!Nɗ~iS*(їȯG|O Nvb~L[mWZ6nSZG>̓U 1ЍGۦ+L>E7[D;jl_lT@[?B b&+WIvM(%VفOV)=?1aϰ\͍ϼ j /~0Nm-ѥU´q8#8@KG- ;@KC-m}@F/҉E,*67! zg"co캾!bqgSi۶mJqwtJrvgwT819[mRX1'g}6~R) "̄B ߫W/oW^O?twٮ];cͅ7+b>7q( ɰa?vq# D_駟t1_Wv _SScO$sޤW]uU7^l6ve/7^z) nES0K.+ď@ GpGlpb~. %vH8 A8R\ct"%\gq郼F 񓱓m8Wx/TK+cBK>.'ħ*yRNyQ[*P<!IXU#^ 8B Aqcbإ@fc_1ХS'%BN|:i~OQ|_mt6%ӇzhƶɅ uƤ9K)!W$5Vy`3} gtE &Yvtb~oCO]׾6g&=v9' >;wۇI' 'w;?Hvv)hpuץ~]wzv͟+ޭ[ .^GOAiBi 5?NmcmjݯZgmȣoM;/#8#0ܧ8-'S(3tTrbrnvwۊ+(u~."ɱ /PRl`LJ]QYl'xbm\uV>}=:AWYe曭_~uRѣ;>v뭷ZS:th$COeq8|ٹ%],L|/06_*;s=ƮȂ&1c~zai9p3Ass7??0"{G!U,C)ѫ1yd\<"vGp'J#' wgXá!S %(a]Qr`#1v჎:ve1%C vSR!}ʁ'CxC%!AS='ЇOqG~F71q`P N(g2 "z+JAJu"ŏĂzDm{Fu=1ϒSGR{hP_|\gLשv.?Ƴ.d~ZbF+Uۥwivlժ=Zzo'=oFͰ9"} 5gM[2E<: Kgd~G3k*[>nb/~W#8#8pGe!>G MՉfsk"wqdrΙ &'|b $k쐾B c>s{ꩧ_lbAb4xcomJK!I7UfF'3&v dw9g=~Z$W%aY~m$onv λkrw}urcUW]>YI7x: {J=z􈻳CH<3ֿ5jTYݍ;'wPnvPn8ߙ Ӱ?ph+ lhYW_8#8'7U1*#va~cb:?ײ"Yz)q%L*Ej&.'ejG]|i3^Fg\SxʯbN B\IL~S{ GaˡơMeB! Xbj lӺ"J& I=4b,lC54(n*$UL5vJaC]2B^g njs4Һ,d}lҌ`{kUL24?ʠc}Uwb~Cr }M+Q[QyOjm~cHjW<=*[v#l@Ο0NoQ=+ !/ޥ:M GxKN 2ݎe-)5a#ǙM ߰"t"I]!NuQ:W'En~$Cv&8vl ![oԟo6ݎr~m>Y_f?̟ CA׺M9wMnx%t+GpGp)No vG81#0_Sub< Ê?pѱqa3Λؕݽ袋YgiaÆE6;ď.7R#O:^z%r-D: s^zT@IDATܓ g._~]|veh6=:twnHO甘Oڎ;XF9!^7~>R)|sd0`t b݉u q#8#P81"'U!T1*;rp?ِCsTG_!|P8AR%"`9ӺlRXi$28ֲQ|JMV]cL#W\JDz`ϏM`s*"dJr}.m |`Z&0LbaϢÒÎX,%zDi xG٨qB~ƉЇ(?LE)U'qK8lGc1wҥ`Ψ2U/g|>KG31ÉN̯sU"#RQZ1뼗=1Gz[c|:nkl]O1]_>eËϙwg:gl _YՓv}u |dqc?7m?Ĥ~f5v6ZK=c}׫ٟkm/[:e>aKKeND6k1η<;7hQ5GpGpZ*No+v[5U'Jq 1_2dH-<{6ml뭷GyD }k{ꫯ%p x7h",2~Gv '?>K:|Zɜ'dN#zk\#bU 1UpakĉBKGpGpb~eϮy#Pi|n%󇄕 ۬\ J|f! {A̢qho2^fOڊX[e"=6)})K+_J [1(%4P7M2`@c"b W?%R6c#/S"h|- k_#bu#|G-lӘꃘ{qR^LAeL_Z@24?ʠvb~jT@uIQ,L>PAQP"0"0 TLEIL0̊(998s{DlwWWWU3{ezf;þc/[jU@Zo%+{e8yi~پ ^_AqTtm'$LdX!Fb3?ev_,Ig>J. 1ٹcBf6lȐ$Ճ"Ŧ 16F53YZYw4Z.Jqi}w}&rm`l=N[:c<(q)"(+@(J?θη#NU%\~A.=z3 @֭[gmkJݺu#Af|ᅦأ邏N/"D`9[hQA^lٲ%$/4' d)o ƎO"@ǂK}f~~`<)t"3f)+|Od^b ZSE@P2J/gWV(khR漬5v!X``czQG3#Aл>@r6>A |C>h-l :@s z3ںc9Gc}Y<2}11I=HG::XnEŽ~Lцp }H8qgVfL|G>ss16ΤҐJIB|KSyFh]H宥Uڬ?" m}xĽOnK̯\.]B͊ҷqTc}l`(sp9r81?lːbQc}cCO6[vdMN(Ko)ԫ%U(#9`yxR ٗ }=5+EI]s +! { CtypEESE@PEPb~M@P"E@E S7D/ {)y/UV9sXbaÆɀ,!۶mGyDz!l1O?]0[l W_%>'8\|MT*U${LJx뭷+$lٺuky,>nKԮ]宻rՁ)S䪫 Ď˃>h@ݬYo̲I&.Ԡ[&''Efr9ѣcwi[PE@PJJ/a'DQ1߷c> OW0L01l@dQ:pч6z@Ga%1hn_1>}~`8S\=rX~u8!hÖ~gTzY0HOlp`-8IN$u7/dO?'h3>sX~x@:Cq ԯ%K|BvY |1,yof@612[&]EPE@PE(1Hh(,=SUb~9wʹ csl~pB>vYe„ !f)OBQnWmNUT?!>>>É'(/={lK`[*Tnݺɋ/1v!U5j$wqGڵ˒ر3r84Ge~K,!/=X_~E cD߾}:.cb_@z{,1?%%7${r뭷CR^ c@8'wygn%gD"(@E@%hb5b>oիU̜ 0ۅZ.24qO$+J6a666 \= gTm| n3ƻ`q1>QG?AJ'lp=r+l! {QŽ?f`D0@[d:&OZ|?} RcڱNȝCsAX7J pQ1JQG?lc~IR!`O>T>q޼(9 w(1X 5_t{ooW{pm[eex[/h3Y(9Yl #)"~VeooX#JNwtn# ([wfeo\KE@PE@PМj"(%녠,ߩ*1d&[B{-qDvg}fY'uc'/\~iwoݺ'gc>Mܿ:vnԬY3$S wlޢE ׯ\r%;%1;ˁ]̗.]jw]7oʦMZBv=:T'sεw!G}L4Iڶmk}/1\5*$xg؅ Âw}.TpwQﶄ{Zj3OK<xzTy=2r=I駟{`pOO\SN%gD"(@E@%hb@#DK{S{(I GeYC [מu ${Qz$`~uu(8vnh3U+ဠd\e\ڠ6 'G 8i4쇎 6ԣMq x7/.qQX;b>H:tO>-dt,8HMAAxBvxUVc吏z*C?v:thw8q*%?Pz)g~5O Ȱa8w0ر}z@:u]NdRn]x'py`{G'1Æ u c`_GDۊ"(@E@%hf@Y1/ZW`?8!F0!yt(9D'Cs,q8XJ:'GcBO:̏#>rA%B{Ƈ-k8+(AH >9)&˄I†=&MLՂ:郹h >C?6Kcj}7>ڌf;L*% (T<Llyi(_t;A,ZR{<O+Vy߰%?vRR{/W+rYd| c#ztydNl.N[Fv1ryoN̐'mq)"("D@A,(s,MSUb~i:{˕p;sϳHF_N8ڶm%[#)pCY"; cx傝a&/Bl2>}?2\rvW{Az_d](2+ 5kʕ2hР @b ]| '^|\Xy==:+jظq]/Sb>RPE@((1#E*+\n:sO2qi $|1vc lPc eئ8` ?3U+7txC6q0U+l6(]+L~܄,Kأ b:A HGyc ێ0e|z@I;0wCc|S w3.Ǣc漠c|C?&h=1)$CxI3eISyкGaCi=1ꡇ=R+S H[$#[#@^*\b~)RO¦1.}|nl#$hyhњ vY9*y7Ydˎ Y9C>=M>=]'"("(@XU*"PfPb~=:R;U% _bEKd{nK!=Hq / QGewG?~al֓? /P3/@[sKG͓/pY&Ol@?)ov͚5-}Ȑ!!13<k(wE&Nhw/ D֭[$#w,9r̜93'S6dŊY(1? $PE@PJ,J/FSNUzS" ǹ|k^5D#ov}?FV9h1j/} 6t'zwKg|a%|F<8 D/‰A@$N0q$ A' 8 QY|~Pb٦D@?G{ء%mxaPR[T4F;vFH}Z)fEFO<@ 4?F'䳭|`%.4_sef?ZfYG$ﭒ[-wd^*\b~Q"Y>|0EGɮoQF?xbśO(I]ku"("%?(@iC@iewJ/g<8 J۶mNm8?3UK?b]wwDKz:th]:Tb;O&M$UT 斘k׮ÇK' Nn_`?3K߹sg n^+Xy<쳁y1 3f ]]O*Ds=c,tgf &a"hN0N %%ژ%PN/:mpO7Oc<㻾8_Ds3U[Gv㣏i0qGtUJ91;auk3Ki4$ˢ$ٳ@; 7Wȟ.Qx|ܶH (FyTƏf7t i@i?""{<ӻO6aveY("("(%%3y)"P8(1ppU@^"YƑ?}z>^N=TyА~zݳl\\uU2vXYf݁??1@6m y ,48Vmڴ52_GDۊ"(@E@%hf@Y#isU*W,י#il) oXIhu f^luKi2<͜P =TB_6 !>bQMv5==e_EKJ*9H+['Ӈ3 zb4У(C~[7:.bKR}P{R͗%֫ղyצkr|%QE@PE@PEPb~.E@(E(1,M@@i;ɂ"'$$]{mI d' 駖0ti֍SP_ /[Lk>AɎ~Bh"5j̙3G;*XPЪU+/6cÆ 2zhy.s=S|GYFgy̞=[ evgwq衇J߾}ꫯիhK,x?w.p "\rۖO]ܹsHq-Rvm0`ճ>e`>=uK5o<D=WpaQ ekN&N| +"(%“)45b>UJ \cL_rJABu#=tAe?9(]֡O@d|S Nߌ1hP-mG / tA[0J1cgW˓0< I"Q|2y#胠$żЇ LNq\8'm3>cc+3I?{BB,=c A?sG =s,bXbĤJ^FF|X6m1˺uȰ;gvloѮ;FO<{|\Vo^?Og((~_QRڶmNx/@| {I^_PE@PE@(_(E@PJJ/=J3=8Luc Vp" bÑ#ܻw|7_͛-aÆҲeKUV ;|߾}wl'Ey>?3d֭߬Y3KN 3d'jm۶,&*TFeCk׮]jFqqq˛'8i :uXb}v Sbb\Ҏˈud؁ݦM,PN)y~Wlbc_ƍ-;\V@.~ZޤINXcnr]ٿXTVMj֬W/8X\2k|<y`>ˉ'8 ,'/X}i[PE@P %.]emvl@8%?POzsW|؁{~Sdz';`胾$}:Y?C`q(:sp C:3чu&Ƅ$6 C8v(9a{eL:c t1:l|umcc?bүZA{Á  hkϴlv7eFnufYRO<#2>T>qz޼(9 w%1%b-7kKΚ5v@(scſ…Q9smc.gH利~j]*JY۬wo@}9{j3a|("("6J/lտ"(% %旬(ABk@Q!5\# Rd7xCn&IJJ 1!ri赡("("P(1pU@~({C̯`.1q*0Ґ6T>HlH c8~qtE}(9ї >ÆȇGb}W LO5'e:uILgΚ"*D gfk2SyкGeaCiÑ+Jb-?9'e~ť 1ߟYo/Bo{_ev.sd [ ׼:./ +hjyV7[ǽ|K+"("( Y(@D@%hV/ޔ(1Hh 8ժV1d=yAdt];頧=.;q ?p$fc c,0nn<8TC9/sNüG;>fe&p_YAH¤g ;wҰus:Owߨy3&:at:O_3/3>mPBO9SoӋ l#˚5k~q)<:n}䠛g8p ;cLfpH $ e0b\Lq,JbM˟+/'=*dn(*b&wlj>M(oN?_ҵr E|_E@P󇟎VE!v4߲t֮]+#Fɓ'RmР <PF|r˚5kBڶm+SN5׆"("(@"W+A/727 apq@Pt сtON2\[ }#y@Rz`| :2> IE6q@C:Cca B:`q͍oy8.a2ńmq:YBh =~d6C?Nƺ>>QB8ԹmB. }1ϋ>PJvo옟aeW<0!;x;_rga26Сv Ǡ, ʲ03`GJ/|5"W01d9@[%@΁'dC~P҆u  ȏq`|G ;~XFmm - rNn2bJrX4jɒMս{I͚5]%.F_~X钣CaQ^CN Cm UfKڵjժ[a ޜ+NOa3%vȿ[W^]bP˔)/zpw\׭S[+nEǎOK>$:&,T2dEΝ;r9lܸIN?,O^zǒ?$% =i֬|4oC_~MSd޽yq?+T(f" 6Ɣb~Qv/~&O3Sz;?Ɉ׳IsG4*Ya3RE,9rt9΋=s~L]5`ܖϭH~}pn0H_9^uZ?{nyww&He<'Smׇeˎ֌3wr2/;HonwF'7VPE"{4sE@P󂚎Q Ff ?Eaͷ#lbcqhެ&Rm,v rY=RӒ{IlT("("P8(1ppU@A P"ժVeYcTM4 2l}У2{d?@:¶^G_h}1>ra1>:uAO9װC,Ą =JM5o 2qQG`saR>7N;q\DI9mhq<ဠ3>J\Ө1ϼa h=q`*].:4@g[!g}TI]neT'k#m/>T,Hl֬{!K⥮ K0)N'"KlKmCiL%l԰/B5׮,+Wo<` I TΣAq-,>P)KګgoYrE>ܙe?mSdF<|[׀K̇瑣IJJ#Kl̙۟=:թS E.,yhe^Esyҹu9O2h$4&Dɸ$U4(Zy eT:ۃ締2|`G!(vP9?/81 wF'7VPE"{4sE@P󂚎Q |]4>Wݻ,\@b"?xpI $:QE@PE@%g v(Ŏ@Y#VJص` P.1y$hnY/=ڣnGRuآ#g}XG3>JΉ9%Xq<v c~97w[7&ݨPkNIQI8I8S vGS"Lb`dzd=q%(3>xla!77̕qQT9عks TOy}yr])~AX9o'/>WKnʷ^X/S^_#ұ6Ci=r1GQ׬$3WZAPK\7%hh](>wq|y/[!CH׮]G*"("%?&e#U*W`:I H685T@JOK=>Z+tڲi!4F6m#u =~\n_zU39'G~[LRRq//'=݅^1+{ɨ#B6o⋱XMNY^ /F~);)GV^mߗ,|3Α.Zk/|S{ҥ#O>÷Q@ wxSlڴE6o$[l5MjժɐAw_[JvF)"w9.FO~܉xN\yjyzTy{^#/{.E~^e=Ϻ#ͮ˥etS jDIG 3Vo͐O~rx(9 >DXbKʐ2䝟Ҋ$e.&)_IrRZ.M9!){mX3JN4x9,.tnyCw,imq]k*0 =v9V}ݜ?7:y+l4|].2wi&͵r1Ҭvʼo2e"ϐ~̊mkV51q^&8'<bv40n|яΜ䯝:ޘ.o&)DI0 *Ap$q$>}5,_,M5y`;}ȢuzDI89ūV(9(/nQn/M+r;1?\>sZ)C#]N=2Zk-ʙgL%^'曓pT("P<(1xpר"J/.5"`XhM(jck_-|AKB͛KK.r)H6E@PE@P%%KeWV)Vc9@!ƭDG@v!`tb Jhӏ:8Ƈ/ըXں9> $6CܜX3m`inϖ;lO;H-i|T47l*˖zl"j!gP | xS,%VWRaiwǤ֭2_66o̪^,[UߒnNt<3C}> C|[%1ߖ{A-ZbE 7??EohGɗ_}"+W.U|hx?21~QZR%~(]dgIi ԸE$T#D"̐k'Dw93V=dXS%|j1^k6)<э׎ fNO}厡-K g5fDŽ+o\pB4dG#qlysY|vͨ7R$xԇv,'Nwbѵfmf}ݤ>Oi` =xihol=2gh ,m9w꧒eD :>35hfXg{?II=Z>|S@IDATѺ"(@"_+"P(1x@d)O$T-[}[ERJRV-SN 4E@PE@PNpwu@Z"v_c# n@ADM5KF(cPBHTmD\n? lq 7B\mqУ>sr'J?xK0& 2QGҜ0JWω^8`{ @EL5ǭ3>s8y"F%Џ˸,΋',I9%q!1ƀ xsb|b[4Jܑ4= R#k׬ o!r/Ӽk! _١MCl۰'6̉Ti;|観w+?$݉mZ/f :,/*Cm! YB&/׮[a@ӝ+ի&6؎93u-[zzH1~s;8 \.J>3|aoNcwDvӨvxVAnշOk(m4YW1vuBh˝xc`A^`m4N4W2#X8 S f7p 2P2 #uhC6M~Xd9v n| ?5>%DdXp !w؇Ov󎏑ݽ@_-'A=H;p م^כ_3x^wFl`/]s%so@^^_aپnmbnXTbo|8cOgoOf8ԏ-3l5KK1{/G/y,>AOIMyWE@PKYE@(:_tXk$E '(1?'("("("(9G@9J-FVR:s2$lLA%lE u؃>-ƂX]Xjmzء8oT/a|C0z 3P=XG}#Kqa~M57C' ''LudP'@uG!8g|`Q}`sɡ-tػ>8]8yGOqs,!_kx{ʴJ sqŊdsOHժUdIIu7 JGc+B!~C.)1/%?;d߉v.*F ]ʏ?N<<kU _VboF<*?irCǀϐUVٱ ~NbOΕn]/c6mjw:۠c23oSO=쀏R=..u2;{kJαr)1ݥ,I{3#^ !}|z2YmʐEԛ{wRe|'Dl\!{  I.#Pg> Rdv} D Y2>'۹vY+ \Ύ6g} Hst#@cp a|ܥG) ;/Ңb{fo:'V8N W#:zXH2jq=L6O8,ZXw\E]psusd#sEfRs^aHr d`J;?bnAyqr ӆet5:?;.H—.,& "_,I7Ou/"(Ŋ~ (@#"\*4󉄖"("(" % 7e`1H=<+:`$ɴC?l&_mFP:lX1'Cm=2Qd `Onz:|Ʊ)f|}n|ק5 ͘pC_H ǂ B\,%0n|,cr1?8Q\q9c s?1`6㲄B w=I~W{*Te͖d[~\Μ)w;Lڶ=|e]g;LB޼$b5 yJaΝ,[EV`mbvڷr^neEϙMOnw@lC}GlF'W_}Abbղus=#t:;ͷrH= s\tQwH3λ22ca:ȞuWHʕ ?C~]A@ZaYi)ryrIsYDp yTe'ȭ]K.6٣zəGIɲ,nrUG;Zy:Z]y$#D?<ǐ]q1Fchk:I%<|`!E,[;%]\x1;O݉}Y܁ CHkxУy~oA]_yMv)x ?zJS8ba,i\EExdDqWz|rܼЧ"(Ň{(@q @]c*#Mi|""("("(yC@yMG)E@#1e W= [뼱-)JT76~jObw?Kŀ.#_91g$0{*|3 ZyPs|h԰-+;D7#%X]bb,ZҐ:q!9W[x99sޱvx<3%?SСwZqq2ǥsN+\(?Xv-yҡ)ͷBހC1U6l%w|<>~,,2t7 4Y)|.=7<߿20^Վo͎ͮKC OCB~9E1;w0;oN̰;[#h* Żj~C׎ 7ا>VNzJ~|F"pUn^Ms*'&{ vw$Huܛ7Ho &9|B~\._nwk9عHc 1reYLYLRb;{_>Ɏhnօ'r0cl?GKU 6,dH]rpsuΈ4O0 /xb>0O ivQ3d~Mm5Nw:=2tN{S8&K<Հ}*"(ŋ(@Q#F\)Pb~d|WPE@PE@P""@!PQ_Ap9ve" +d8@7#'%.ښj? 3>l6s:-ơ~w! c.ژ[_Auc,],џka\fa6hPM x.Bx(}h%;;csD?rЏk|?EA:Ψ@OxE,fN匮qi1koʋ/L5{R!2GO?"G=*vHJA7K6w_|lWս{Ew [>T>qXyPp|芊jQer(aBr-v @-5f_xx-y7lذQԶի'-lk߆>(=$^"wqwˡ*~޽^;)%`D~?r)nݺ"[KVX)&<.ժU K.նmiѢԮSK+[*k׭'Ə3:,C~G-1?&6VJ9ֲq/ sԬyl۶Ҹq#ޭ܃[Ұc>|R,3ιE;wXT2 oG)ّh-5BbK]i]uϼ"*nG vZNsur3m8$_w]蝯h/g?I?6?"1;"|*2_]L2oaJ\xb ) +#76P^3'OOGp:G1rsB%;"Zv<9,l禆a,n،OoTVG=se|@Ǝ'&̀4^Cdɟs }Nv ʦM[%G wmP9gv>DcrryDe{!FO<gecCi̋il߾S~[VHnҢy]a7rCwIv'ʬYܱ 4A.~dž棑fJХsWYhq^="П߼Al鲀p9![ וgݴ3{GX~Љy2 io))`G! r5WȤI-1F7r_vLi!2 yܐv=,kNn- ߒisnjx><ɎDp|A3>Ƴc&:8Pg?`rdCwuO1>\L1ε+Tv /~YѺY}{OB./(yYut}@Q屫Uhb2t3s5*y۶+C/ ^́sz W6N?4Fڠ]|wͅӹcxXѵMvd8l'Dp^b׷קE@P%UPB@ŅU#VPE@PE@P""G󣣥j֛c9ȭ&dABJ;\FhuAXoQPB>W̍c8~ɍ&I>`qS pჹR[c!S} |@b[gFG̯wXآy1Q`^XlįG6`5d2x1d?rID =cFBJ2w5==,63He{34fBth|awY;nd'C>CNsn !;cLL{qv$Zp󎏑cZɒ/•Eǁ˛Hw9.F\86Yo 㣻,ُ9S}$ Gb-Vu mpwizO|7vH9ߜGȤy޽iai E&|*ω!/~&O*T"owS#%2׳+Wn"şqA?hZ [8;nLv.g4;#uF ,Hwy!Nkڍ'}uE@PA@ŃFUEPb~q!q(1?<.UE@PE@PE (1?8E(^kH'': OL2 . ̐>mО1CXjH|-cQG9Ok;Oa8a: ?m7˳+WId_01ع@fL wй_(!I~7>ڌ:Q–نyzέm3ǒ ȉXc 4* G'w?n I=ِ/]C | ˫ ܲ'&]+,}~J\$eb [ C*THKrC/ #.+WIbbc AVZRNB=XXfZ(ZjҰa}Ua!eݒ`bWHL 2=bn$Cvms[GawG_̢8x_S(-;c v )MxA`v?= tNّh%1O[ngq<5F~Y./|&wǐ="?GHQq8w%oZ+J^rJЮ߶ޟ"DÑ=#Vf +s󫔏΋cGߧ/={^1J޿s3̝#1;1% nw^_2.Y]hHHǵsʃZF^s~Ǖ<~ue i[b"Cf7Xdq"ŧ [8;~:chn3)!< M Le89nt wMCO>E0 sg\-E@P %Ss/s~[ϓQA'B@ɢp\06* <'@a|^ =%c| Xc'z`|ڢ;@`g|̋z˘eV4;LK\ $wyo6^ \{eH+VԘxiР~/MnuǶ:ZF' 8iS|a]춊/>k/1Qúg`%,g}-ӻ7xz>=d,2t[)͏MYwqtjŏCz}%U-HP0fWfwtW#&1?@>_؋`Qw"Ǜ7kwx=$^D[&wdXoQq8w2R&I9%-ǾȆ ې! Gbs~G|1C@nȋ>AP~ohlNSҠF\rR](ʫxN9f]NsKXqڋ qg xjsSe!,O c$sdɆtiX3Jz ,\1K1}4TFs`a Doy [8;{Es24ٱ'޿`.DPsG[7p: wM`{ON@]/xb"(@"[)"P(1πWBP|("("(@nPb~nS{E(k||Sz aXV@%.~~6X yǰ8uCvj9(A$6A%Q2Ac@>=N_|~ cݯAy&B @RHP8# ac?y@%@qP=JF:O7Հ ctǡ qr`:e| 4mKĄJh#ijΪ(Mrɂ_ڔ/抐׮]/;PɧJӦC^~i!϶:%@SJ/0?"^͛lWzo{jed=bbދb>̧9#e^|zQ2&oWthox6wvяן' ;;u<^+o/^UaE49%ۮ߂#;Ұ+R=1@02n[y /(rcn?M2d;|o0k?[ ;AInaSbz\ß>9N͎" O$ Yl-r9G˸+]ډ=Q2лNSMzWNH[<|?\pӹc ]X 2妸nQ4yontv;=}}r1OXλ6VQE@(_48kE@PJ J/)gBP<)Pb>в$#}vy套^O}W % MS͛'ӦMu ܱcG=z ҅)g̘!&MˠAI&2׾?S0ayuC#̵4Oܞ3g̞=ɓ'ۧ_r)OkFɀm۶̵7NΝ+ݻw/Xj֬yڭ(%Ƴ9,5b~!UR9̱/\  AI`($֙ ǠĄu7>}B6@[Sq% _ _ȗ>Q 8[zcKΤ3ts?L?{gUuPSD++`E+رw" wQTP,(RNNJ~̺{NaIN{>1=}] 'ՙ szqR1=2j_?J[ny`^cΝw-`4C^h Wt4}ʽ۲z|x=ǟf-H!}whUۭLoȍ^ӂ6)W?wqۛ/;{NuwZw!sS\aa$fHgSmպrʿʟS1mGs˽Q8v;zo5O cJ^a}, ;ޒpKz> 걓KDǃ?*NÛ;u$9t/nml}ynxo7=`yaܐh;'_GErM_R\S \i'<`:~v+gBb?{ܯՖ_3gg>,~6Uw4tY1?aoJxe=yz$gn`5j)?zq.  Cv1 50 r!`rg G LՈq3Ș/m 4p;찃رc:K2vW^yꪫ&l>WNރ%0{#0wp@c?!Bv_^hyb_t⮻:׺uʪv98p5׸Ab駟?R۩),Xஸ 7x`o<9ݹVXa裏 /͜93+E:+MF~ơg zolMYYK. sUVK/u:u*R2 G૯r}qr-M7:tPx1 jY×j1'7n@Q>A.\NZa! it,OIQ"+[q\qя{BmŶҍ료tTO m'DS&Xy'"4H!TRG׹ׅy\ ʡ1BAA%Ds/v#ݫi;^5S?DO~'T/ءﲃ?f{ЇNxr-w_x9 8KǬ4n.joHϕÎۺN?@֘1Wf?mݱU00Sd CB0eO +qvh`#&Z Mlk&:lZ#!ڪ|zZ,D_HEIZn9O94PQRvޒ>?Dgᥑ+{s;nP}=! ـag0WzQ2?ruS.M%cQ5?kyy?{Z{o^ɏ?8+6Zƹf97JB%/I%4XԊk/1Й?ͫ@*s%]1!`,dpZ CXR1I!oH?S5b~njR*$O?mƅvYfgYNedж_~ŽkI&nwt,֥Ĉ)@۱cǺ38}'n} xCJN{[n%g s9DDi~ҤI{n $AA̧RpvK76=snf6`@ @5` 5F3r14NBtd]×F}7&.pOy)_C쩬ꗞ hUv(KSr!yqUPv}4 B t)Шm=AУCXUy:}l#H:mFNnA1#ԧ8@zjҤTs.$; 4[LZ1;wSz3G5]Zy~bwMwdyWhzA繆 \Fe2؁ a0e+.2a^B:SGHu6ElZ7>58z+i煞1=ӟ0X _5}W Kqݼ ɿ60zↀ!`!P8F/1 C&"`8֧@hw};\|فoڵ 7Iwv]v- ᅢN:6m*R @&=s1?Nse:^V:1~5/\ $_־Wr#G ?#Ӳ?sgx/1,-2SNuxꫯ&de@"`Ӭ@M#K4mlOTAX 䄤!yh>']cĶ碌ڪ_yؐq>ycC'AT?7AT=Bjt@գ<, bG0ti|O4%Y=\TNhs qJqLS\W9 ½K 6)O9BDU:S>:c>UggN_5;oEhRG~ gX;nuɤ劼X7 %׫_{8C\3i]rU~ʤ>v~Fo$)q&hL<2b~YMK&k&:lZ#!5o(Aä#c:u]""UOkܰV8h@/^7ؠz0 C|_[ !`T%_Fbyi>FbiAguV 7/1I!_}GIgo«zƍ]:u\u WѭeB>r<.ҩ"iWAG!=[Ņ:6{tUzL:ze WAt8:Iv IWe'](z^ \&ե} Bzʩ~GU!y>qw<3gx}Nr-CO=\{nu-׬D]s}>{oτWnu}OV";:=8_{

|5j{Iaο[r̯}t"!`!# C1u"~jj:elvU#]ܘ1cnf8K[AW_ᑝw9 #Wg%\⮻:תU+w饗N:͐2 C`)BK`[W5tb .2«p7(x{8|٢.xѪGC/*C\(ׇ핐'NCŕ&:\IWb;^%s.'DOmþ棥UT% k#eB:*ΒʢEEѐte_6CYz&mWNqM(QJ"'N>x_cyZ{.L9sΙD.\M C_vҽGtw 7SE6蓮F}$)x!}HW?1?׈ݥDJ@8dkd$`dkiߢdZ۟uoNU}<O||!`!P)1R`5!`TY_e"~jk"hѢ@L2eJX޶m[רQ龇={[)1?p_}3g[kܚkXR×/}O-wxz؟:u9s[feBW]uUW6_.ӼyBΝ(Ӽysװa r~w7mڴз V2'f[}z3UU41?ʸ0&LN:$7iҤzƌa0~00GYc5X0+M31Pu]X׬o͟?߭Ja6iҤ"N?3su-[ @*c>s=5\gu2ssqhkqUV KZՂM })-9% 1ۻ6 gcg\Jӟ_~%/ +ySk[!#`}X25_Nm״ɲ<79D(9|HO zc֐EG!>qDiqʧ&8| 7|4Hl<.PRVJ<鐗cQc2Kǎ:' iBuISg=HG>i: =l6d[^XK8:/b<\=D^>DTQF<R̚f|)D<|ǟ6iqMLz>d`k߾s+n,0SV!'é쐐"'e[#N JݳאIZˎo0% !`!`#WA&!P14S@ 2e|!t!C b-sgue]ܩe: q}qW]uUH_|ر>nA .M6 uw;S@+C=l{3<'O:oݺ;\=P 2~(en;ӂt6īw<#C n馡_x`>>]q|ݬY3׹sgwJCoM7 ~Lv'w=@wuWF{Fƍݎ; P.GGnF駟f6֭[8('w?a1oH"2oqzp 1\m ܆n֭bc>$c߀{i؟z)wׇz;_}wǺ>حq1w}5k7R7k onٲ۷ݻw΃*_0QGqGq;süW^y%#<2T ^ cH>DfϬWt[o^_Gu9d@P_?y{17.pP/vGuTV>&G֐ĊoV#<s9;3` rWeǏ9?fm~ɁM"cc|'an=@b.tAa͵i&WSC;{K+_w=r-ÞZNdfMۙNY޳gOw'CG@!zŔnYI~>o<{// 4Z@Ѕ=׿,-F}:trO\Ͻ>ɇ묍*Æ%>4ѓ>!zԧ2qOYB?PJWFqYեWȖeSS?'T}4ՏRc%4aSRcณHH3IjGH$M W=q_6Vl>aWmæIS~S[uPG:ϽWЇr;Ez;2X~cWK駟îW\!̍7Õo?4) _ىNCM/Eڇ| `!,\sia~Bڅ0K_ 4A{4:xl~@Hx܍p6BM:2dRH &dp!^z饁 F&N/5k֬` 2liC /l C세wwf8./;E_};tЀ33W^4G(weja9q$^9g[lƇ^30ݻwV%!#s0џGȷC@XH s-\<DC9$!K 3>* ޵kWe1s=xS7NHty+/ 5{63IW <s0#`}z\oBlp@ hOi!s0`zO?b1g!:w!p؄uN;1c807أ؋ُh{I~Lma/cYyCYO` }9@y^z饰'S/ڋ F^ƚDt1`?-ApX8y[mg=b<#O>aު<(/7AYq`(z,4 `?0b~8!$i|iڤQO4AG7B⃟|pNIS„lA_6TNu{٠qة/tCGz+GP4ڍ`4ʨ>qO> {KGU?PF(<%T\^Qd'n0*D.p}4RF0`US^骃Pz*=W| }Dj/`\u,y'M3Z7}v6nǟ_p>^C|p' BoΟFme픩N|xkc2S4W^FgpC0jf_GY15(5h0st-lZGq'kZ7&!`!`@e#`F!P0b~k!~jkN@*-1&{yyzH!B9_ɹ%ȡ!&!BN"|ȴ!BTOm۶ ^!&Bax ICD2>[guBrymq!FClٲe #3D` u}0Io!.́ `WCrG!pyY~ ?]~R@~>d͛R5 Y^c?0zkHx~ZblĢx𦟐o!C8@z.x O`B`?0HQ|ơ CNkh P95aѢE&;u)㙋xw}Cma,' k0_ykz[*|/~k.M{g+i&KĊ oT`c Aj@  :7n\;"`L˷~W̾ |"s8ӥKAJywC9(mGxYK8 ;vHU?ʑG X>}]JYg(b>hX9ÞsB] ;ʼF58>A p ↀ!P~_~ ͂!PY4b>[VX)/^G;丘o=xd=qʉ7-=ҥ'[)8i~&q.=׽ b||>zr!U_} /O.{JF|-Z$H2y"2g\wԑ'W|pw֯ Vtu𡺀Oz=2Q!VVX>|ȟ1㻐פiwǐt˛&I2$#ώ'|DH/g_FOFʈ坱U<>[*4%aJh(Z2b>h!`!`+ao@BUk<5 # #, 1#Dz*c KC $X8;#xLk211">$EȈ@>ǣ5oN!K wC:ų:6K@w\h $އ~Dleb~i )B(|@>|x ;s\1bYC HM4)!2&x[O 7x#9 ᄾ}*;B D@x. }F!{?s+9  뮱Jִ[WB ]vGA;xq19^>cW/xҧ>l  h#ث8h 3;w{ c>}bѣG :Z2dH8'|{ w)c8KQ|  s8)~a:{) \\rͅ>>aqC(?F/?f,j15k?IH+\p}ru|$?FdH퐯4mG)n6ˆfѱGyr#LOjDyhPv2ـ/!'>^rNGct4Atxb8ↀ!FMqtz-8e8p <ClטFe9izqlOیmrji_u@GQ[W;t{xpő pNz:qI[ܳ/O?ܭݢޡnWPva AN2B}4W!e1ˈ1§p2)6b k&:lZ#!5o(A0 C0 Cl_}C0F̯Za1Tt͉&c⦛nV]u@ŻqI3g cԐ9!#{/AAQ^hΡYf޽{2kq}6߯_@,Lqxdz>dOB,$g<>&j*xciHyV@>w=DNP^Oɘ1c. 6s &̖/2>8 j˛ods9`IY C!c_5p<O?|ʐ6mL84h 7|@f>r@CuYʙXx-rK8Tپ|-c@ԩScaǺ(Q0' qsY0ٻ#Sg;ٳg;0_qϚFQaÆ#Fsa|F1pC0z3EhP~L5x3m۶udC(F/xVdj1gMdy ʉ H',AS2=iH:N2"'<4tݣ#/¾Bz+}#=%=塯W}'/`"D-:Gi0uBH4tC4PW:PU꧌VlS!^#>ʠ;Z̛F.F_|8/ ,vι.݉Fˑ&oSZ$=;ސBNr]FOHb>_}`xU~LR?mt7lp@`W*&l6 $=Y+!5o(^ɈoK!C0 C0 C(#|y(ƭ\-䵾 Z#QaҬjfvR-4 Cl_}Ct*(/~S}zVɛ'|F]Ebm۴,]L{ PӉ} x\ 4d#G첋 dnt <}bI o-  j+@Dwr_b>{?!s8;P(E)ě9s  x}g ӝyn yURb>^r9vp)-kV7T1bf,Aw}7xgϛڷouspL Cr0b~k Pu1QtDC'eT=.HCd{tI-~DEG G;ٌˠC\&[ą!tKv)ǹ/PYE@:"`I/`RgI! r;6't/{> ! GW^S(?nR{z}\{aAH>qx?-w֧8<w fuWe 9L=33:7zV~qG\R%IJҳyW!xΝ=@~^VdʸHbuЇ}?Rm /IғR֍14L C0 C0 F7 Cj!`5C LՈKל0bne ޺YgbělI Gw5lذL9!NCWZi~Hxq'?1E12Vn޼s6Y$&"gIi8ρk_ ^yw_צMy.f۷o^~L#c?N!Rkf r81"~obve1ϊͼ B^KK>sp}!3fdH`aov5TFObW$1;A3U<{ܸq$a s$^?"qcWC[.]:u+\ezYkԨQ[o~"u ˜@!^;)Nf!믅bႛ XdtB$c!]&kC˾α=>~K(:.Ҩʣ qHSYW>QF"Oz[ys|l duŅH]~IRG/4@mD!M만q=ݪ"S^6']կ:IIӽetK_:|_g^J84t$QeRrÀOL&IIzv|Cu~m Cz뭃:yyO͘1c}ܹ|*L~@Pc7:d1Ci\6p`}`D_1B2 wqGw*k2!-C< ?pw7ڃvaYӐѣGXSRb~\8vaÆ`9ck˗&^SA[n >s0)|lAdX_:u*~i.]

t)LJcǎ o.{B]+@>7Fb@UB{zyP 0ĽɃDg3{qO8.:MTT!I\AYO6d6 ܓEWVVQ8eэEvI#:S}r!j ` q>+1XW.UIe7Ȫ?E9 ʢ#6Gb-]L|M~ m<77{b5[Hu^Wa%YZiIxn?B~:s]Kϗltc~MZ̫D#Ws{Cfs?]Dq9m 'IғR֍14L C0 C0 F7 Cj!`5C LՈKל04e<<^!V@~?a~9%@p+I_R>BWr<7j 805/Bj)9|YdO<9p]wΝ;5@R|U.>xƣ4x%zVxݻw3E +xH\x>eRVeԨt8(ODet6IOdSy5S:Dma@q&O[>'=BtDzʋO:Bz\<̞3Vk|w%WgPdV]mw9/,R38.PMg>CC1kq,}8~{ ,?7fMV`z.>1bÚoW_6L[=&k$:IzNBjޚQ=#惆!`!`!P16!`T-_Zc1K31ڴi(cw=;}Y[lׯK@oxfr-5:@ć\ 9x2#\ǎѣss~a C1r_%8 xF@x_vYxޠ/q/^OHx#wXc`71pXݱ믿;ۗtiGQ|!ޢEX%3.tNud o`}pp}9V҃ /b7iҤpB{Æ +w=^xJa|IQ#2@ٳ][4jKggp(VjUUM'ԩS𶁍6((ƾ?sL׶m[ϷX![Zc:eBnM=~I@y0b~y@!P-׬!oęiS1qs <⍟2O:B:q{t$ʓ-S?qȖ-L}_'MU\>).AOk:!| Ѳ +ʞ:sO3tJeGT'Ǟl؆u d4z*=.|ۯ [}mC:Hc{3u~쑯vCſ͛Hx P؛}Ǚw>lh;c9]pJCz@Kivyƍ bK#E8 i:u41]A=%MGT. <َ"]$U?eu\vУ6"_<鲣tկz 룮֚3wIUB H2IFhjv<&l~}hL ̫kZKPNB̿ ϿOO }ӎaϞYf i[mHPw ~ s9mYOz!]CsBл-n 5{ӽ?CPsEbCwgWgJ xv۵][nx꫺7uv6m߮@+_!{n g}.8݅\^zi#׫Ww@x7}{u~0K6{oL>slpl٦ղ] w`C{gh|Clǻ7w%_tE#<ܚk /+ i l،v8@@ܿ]/'vYƍB8/ %\~@6XJ vx^ kr`ӷo@>[6O`8B'|: QFa޴󙯐!CzS'B}y rŞHq!2/Rӏ>2N>W^qÆ ^YcOk| ,h'7 〗u6s0z~i<o[oioryǴ9ڭ[0lAx)9g1 !ɁCxaվ8, 1_!8Cg 0ΞA[h'sqG/=ab/¼/ }38XedfKJ̧.o4m҈SDEH/ 1il$E ('CKS9Q8=q.ŵ)щmҸY7/rI$|A*+q݂n- ȾS3AMI)\1N㯿;u酒{ T?{ukJ Gv<GHd$`d|f!`!`!P125ۆ!`T=_Zt#3Xb0yH! 1A: OahNu゗lq%ϡH  X}݁ Zi#HĬt$%%"8sR1un8pB+ki2g%pz3fYS]rs+؂ +* 1: s1B js89)H8ؗrCAO_` Eȋ"~_ ,c˼f^&%cO^8qb s0f֬Y_:w<#UO[Ěy\c,;/pF;͞at/(a}Y7'bb+[lFkrkx#p'9̩|BD!qt(CRY&Žhx\>9VؑnF&R#JW}Jdž6) GT8*_P`T\j4B54ń(\,q^+.';1px*vO H-$jyF ~ۭB{ 38Nڶm۠Js? pA XꫯD%߻uoi0<_wu H/w@ߪHq/pBr09dЗpy38SO@Ɩst _c`СCeγ>x 7o1zgf; ,.uR=5^_u̸2ebC,AYe~|]iʇ-.>AOx>?t=:c#૮ :8UV]?_}Cˮ  N8x) ;sf9;sdK:C q֒A0 C0 Cl_}C0^kxh?qOJ<&w0BgᱰҐ$L&R_V>Ws0W_6nǓE!:T`5!'=e/@kui S7$qԝ}a m9d^T +l ^O6-A6V\udٷo>!@H(@f'I I%ǁ E#ly}xsE 9C:\zK@84O9 qC2xg<拊ju0t0wxAE n`~r:2N8 ) cTm-_U/)U7kyȺ,8T1WYQUW݆Dg%9V!P85s5{<_xW̃ZBt_YisLbT]KW{%SFuGl{գ.~l?ϽR}H'Υie5L 6uŠ@Q)r1ܫGy/G8erjG/;q= U1*vrOڏM l,:UZf}0 bR%%%I4ʎC IoO]kqg|i%ƶ:kk&W+qr(7SjW;-sŬwLdHKG| 8ԐfO*{Օ7Oof^x}y6y'K .u]wSzo=k$ΉK/v!!MrE̟?o,q-Fb!Px9>vxÛuŋ;x7Za еkת@k!` #/&C Pb!o|N3^66ke,+/xt댍{>xbn- ib  `?z2 ӦMPGo*?{,8MYbs7ё?aǮkC[Z{^xFkCNnՄ;ʿVsB}~5US#.࢜pۿ69@S'?}w!V{Zd7ɿмH,0 C0 ńV!`U#Wfy蹩1b0j:cƌqrJxRرc.pŇ_tE? Я_WT" 㳦 wҝ{Y!?ne+ ?Wq:u~ſ˽f)}{Xgc+?Om}]wݞiWI"7zn)Zqnw]lpOJ㬥1߈ɔ;wzmݿyx+/vk!`!$0b@4 C`!`%lBP4CX?~;ݳ>cwW֭l̜9zxVܹJ-Vx%"0}tw饗QFoOr'x[ve+F3]>(7x]{o߾~1e!`_c:RyZ߸iq<e2!&D|t}4IXt?EGyI='R9/:]FɖtW\:tʣUBK- )ۣaqC#t=.t9=]tC`A.կJ)0 Rd{:r>e*O#|4EN\ǶʡOj?>SQd[4r}B jGg͞ &U 0P0S$%H A,Ы1?,\n%͍Lr#2|I/sđ{tym*{yEGo=s?`[}{ꩧCq;1<p=8"jٲe oFAE{]t%!OߪC̏h½+TD˯[o~=ǫH.M=~F^qR 懎Gs+CFobQC0 C0 %$V!`#/~̭FC(LU:I΁{%!_7U_fP )뿬'E6<51 Cj!0gO'ft+6mj@ڵk mi}7&D: /09DabҊ֑~Wj1s=ANjL_ᎄt yУ&,q eOzQڦ2*/Oō&Dd;y((:*>p##{ډeҕFzD wpVI/J2+L]OŬ0cb@sv9sBLakX1'Hs'0cߝ>"0O 6 -4 $-TSb&S}P .zb$Fe|3Rt'O=4h\&/|S)Li## X/>|Xu^%\ so/-f o-Mf>G`z"y߾yۄ#8@ !C?ȩW]ǂ2ԿY!^` W24^ P7MT7M9G &JEDS u=!~2v ^vك+G[&_!jK:/ijO㟼PC;U".Y'+ RaEm.cYK{-.llɫK*H;n/XeCI\%ꨨ gu">HI<-m,bO?0ok_@3fg6ujv[[_::SSbIC\kNZ?Sm)W_fmek.Ծ暝ݬ-ZAmuޮOԇw}=\1v߭g|&}+b>ta{\.pc?*?fqm];l\{>Ͻ<Z|#G~d7_{[nl-7v-g2߆׿mgk?לZV[m5h mV7T'go` lm ;>[WK?_gNwuW#4*}CﳡBN<񄰆ك^z-ҶX}TT6\yU65#l3y_x0?Sc8#8#\pb~sy#4W\g]SMIR,).UG+?1\rGpGpgޭ#P1gpȦS r&\e!O.Ǫ ؆T2m/˧W=mK!R':Ţ4}S/!*_ڣ.oK: h B".zUTσ-@?zTMjrhK,NyM,R% ?㒞vi\Xk_bɷMK9!$GF}.Hx;6PH/K]Ȩ^&M0"NΟc#iwҤ)ʪW_u9knނmCgjJ'38ǮBH;-Wqc-f/HU|Nў|v cUWN及!辧=jfݻf۷'kw~WeV6ixvUVY9n:x->c]c۵^ˆw}ԾUԝ{Y^OtЁ1ۭwϿ'2J+ڶ{~Q8%;7 +tI~N,ˣNvw[CkӶl27|lxGcǎ{|{ɉ4 õ5:뭷]6RkW*u~TUj)Z\#Тlvʩ'駝JU׭mdؐRJ: ;䐃KUe^n:LE-*nٵ]zY^;d\뚅1 y]GpGh819Ͼp#Noc.g/'hxpGpGp#c-B^}~_kr‡^q 916cG;qsaB6rI7CF*O'UIl'{vj^W?:D)}fp-5v܄[s߯ˌFJadL_,??`öX|2f{g''TZAale/#Sb};Nw٥TG7U튚˷o 1,S1ǟ}_ɧwў{)/1裎G]i;ڀpz}*O?HOCu[v6IOPqʩ'~r(u"^jxb~oo=ƏNeOd抗>%S8~x|To^ǎ;?أّGUmp?h%@;<;vIدcDžN?5mCN=erѣڶmOǸ1w=†_~6 Քbgcnݦ}g`opwV1 dubI6{xkFoV j|!#8#4gߜg8'7Y13N/GpGpG`fD3yF̟uYÉz<\)*#͋C  !xȤS':DHKIGڑ_7GO+G'[q_iWP:RŇ-'EU:]'C_|*HCyŢ6 0-zi |0 (jXJ1-"YiO||RI y–K1i&~'LcTu)'RR## H`&O>K B,-eNro]i 1X8cn:{b>%2dwnxL_al6N.nu\p#//b6{ T;mM~*~v9r O?Uo1lvUmmƺ#G \7%gΝױ]wvexdI4Ͻ?i[koEBdI6[''#약 *ݶvgvdž`x'#nsSǷ4ToC/lX8[Ќn?:N~ ~~1(E/8\u6TSb>gevԨ/_|'lnxH wqțtUbyvG / ssb~ 8#8@3Fx}莀#,pb~vt#p)wGpGpG81y GhzY1Q.虜`>IE&'_%ҼMP83ñ`Rަ/6M+W[8ш8SdoeG٨~I}l$8t Rxʺp Hě/Å XR.,Ӗ:FeřL 'v:Dg*TyOڿ⇱!K!p2U/ihLjlb~:)S~$sts=W DgԖ(!g6Kwھx}VD dcۛn6lӂ|bme."Jq9לQƍg_~M4و]6袋zxx*;о|vqSu0|//8 aL,lg76|w?|jR紶|NyҊvEnvv:[ouk]`7ts=ێ;ڍ1¶M,S<(P0c>QP|6 } Ӟ[)f]lٟ@;xаӞ{6=>FG' OGpG9#<>vGh819κTщBSGpGpGpꆀ놛rḞԶM$.',^5;! b[!CY|kʎzTipiC,je"m;C=v_~N .ڒoAJ[6u^ )-(3;$I[|`S)@>8)S)hXC)O~B4#NqK'ԧ w7~ҭ|Ld`hV *Se<(KC!# zD/uHb~@E] koO?+Y-cD blGfvDm}1ޡvIDUCn_yUWګź[o\s 5+]6ܾXvb~8#8@3Fx}莀#,pb~vt#NՉe=mM2m4mUG 6H멣mxd ɏ=BAi[QcQ::/& Li=ytOz:ԩ; ٘ yJy̷S^(]F+T'iG(^)O`/DKWP]6µ n:\ 80s2}q>#l>HyF4&_|91?1=Svϐ{_=`osKYD( lxtڊ{FyǟuB֧Op*1ϏѣdӶWktxNo߾}'L`'Ov~aong?{vI'*|AYyǝvs;P /h} E?oT1}m{w-/GuO{2쑙Q[q(]~y{'f3: KFʮx],_/iYU9-1v٩5C9(rB~ӦybwigqVlWz*^|?G"qv?v~TG`ѣs/Ͻ8oˆ-vQy[~x8mQ}] )1ϽN{n wqfNl~ײV_-ڜrvoxcKZVZڴmc>՞|F>Oꩧ퐃uo]>ಘO<0;㣪\켫1/lžU׭m䈑|#8#4gߜg8'7Y13T_γ9#8#8̀gY+MߢŬzV|הpA+M*9e8"+ hGmj<~ A >#MkK}jO4_/Nvi^3h҅lui|ꗶW6ԑ'./#.V: N@hɫj0 n bNUGE>6*_:1?1={e/^h![f gAC Giޠ̆g-C!s6~[k5lv < /ۜsag|CN}tݪ]rŅJe{=ub",b|d5\L+ܼ}QSۢ.ZdsՕWۀD];\pAlfn|S)b!jO=TSNߐ1fdM}pGp掀 ;@sCm}@;U'y|#8#8#P81gk45bjmZGba^' 1g.8ĔurxȤ:CKBG6VćV[|=eqC6(ǯb_Ӷ ^ya,j=v_򤌗K>U[lz !U 8$g0 GYlG+_ˇb6K>ԟK^:/f|ʟbUYi0}H?eE-'LuT4.ebT886PHމ,R41℉ֲUKϥqiڣ=7OsΈ;u n}EϿ[lboq>^x7X`W_mξhz?.ڶ!ݰKw,3j(>7D]?ydpm޲ddNЮ;ĉ\^aW2ƴK]wQ]`7tqGp挀G9"8>rF y<6GpGpGpb0KcsE[hNo3pAA2y0N 41y`C=BJ=v#T:C~i-~eՅlڡ#nhȣL=GFQYQ{O>?ڪz W_RCюK@@z!Hi#%Lm?zK>HebW;ԧ+6/Qr>Ԗ:ڦSG}p->fCRf0iþ80UG }f͜_ ܟ'!xu"#Rvu9tSxI;H{^{ڴimw>; D6¦Nw;cڵ?8.:瞷X|6%\ZjlĈQ+>)dUVw))CƎk-[I&^gm[qL\hocW^Əowy78twc/BG}l}iu:ЩPO=e^nGup@߂_{W='|-엟:tn;v[m=3Qolk:#8#,pb~v#4cߌ'߇^Sub~YNS jʔ)o,r~y[vemjF++r 7 :ةSz-}}Sӷ;fg}f/Jֺu #lm 60F^S4>o_Ӧ_~8dZh!?Y?#pfMk۵.J N֔!Iꦑh'޴찑|a'=yx -? ZmB6+A,\:ŧ^iWӧ(O}e)\_* mU(?qY4:;hHX> az z)>zgW;+_eOA'{'Bd@]CcOlc ;SmS`RV! :U<3$< 2}qOcUkg#R}Y /F!`РkK.+!a_#N/ +GpG!f6>\Gh81/2&ze, 8vyȑ#c{7_ywǺt|~g>j|p{Ը9䐺;?^H1mI5%\3b\#zlsBYev-p^>qS?c>R_T/fӿ|lGy&GGY*&ګ.dnƤ"'uvj 2yR3ID~#ՄAb|WڨyNᛋ:i??yx=e-dcTS| cM=LC|`b3oqL\ڊjT8++_w/'@؉묩D ƛd^ڊFyݵFa',G #Z;-k;U8QGN9?˩^OI??7߲ Ҋv!E.~_[~y[ou{ٻ[hQr)'j/D;NزvGuybN/%VS;X;p@1G~[7޴^=zE:m7#?j_h}mkb6[s58L(χley8#8@sEu}܎#\pb~syw"NՉ:S3\P*;i;8∲l{キA-ClGN̟(6'7u"WvN̯?rև뙽''37e1EzޖFkRD2)485D6u9:;Ɇ גO]Pv)MyHQBGј| b'WZjMJ#Ҵgvo;ⱚ'Q[q(}.)S~7Y6|pwX}n5\ kO?Os.B!%.k;f'ː1$0skY9l f赾~]вU+kQQ1cGyǦ,u ٤7_Sfx#8#P681lqGQpb~85F k c6myW]o-5p CptMSNi~ N7N̟nPN7G%=ty:(i؄55bҫj]tuڵI̞46|p;l|,gV1U֭zt! M =:D(/iE 4 Qpidu+pR._:MMm4i*cO{|OPߡ*@Qէ:e)#2B=k'EWjK?f1r)/D2UeGG31ˉN/^gM#R}<6uB>Ͻ԰)>? NA=wUW])GF!70J6B<3M{>:GpGpjk8#Єpb~LJ@ Ĵ '91Gd[߾}3ϴy駟q'iNsS#h};ve"QfN̟>ӹsgcƵ^k{G8U%N̯+@UjG hj-f 'Sďq\IT| ѩ>d#^||"gTƟ|wڿ OqUTi`vW^e#%;aӼW'dz/LYv"kTրPU:Ŋo!Q?WR@IDAT2)NTOц:㏋>9Q=mm&L|cRNE>'*!c\BGyBNvb~n5bHٽp3Q[q(]|P:?曯i/Z`GyL?6#8#8EE;#0s!k<ڦ@;U'79x?砺_:3Ή3wzubþ6=;16hUm#c-B[b~^Q.*s4M.dpuh23MF˅/tRV6 ?xS3#5v|mķDR,䋼P<䗶irΦdi O${K|PEv|`O},ԩet|;H:"׫է/̣i;Ib=}Աs &{xMKy!p2U/Wò## ј| b'WZjMJ#R}٣2O@K K^wモj1?f~=08qo/؄lԨ/|o>pɓd#8#8'7q:#!|_ @y!NՉ5?MD=N//1O>'vm'n~1Gm_ d{M4x[kH lֳw}׮z?1g$޷#P=M?,X6@ %yHEF>L^&:hÅ>M: "{Kmu#nաO[qPU7A}:B`2Gϥ(]:hlC | R.ƯV<تG Ⓗ )"| ~3vnDB \Xeꨨ gu>"[S'g;1?ái87oGpezՕ7_*LEmm][̉n`cƌ2UV]5ft[a GpGpNoNcuG̉ B k~*}=c6> ϙVN[iϺv8r½_Gl+%|~h_wi<ZveggO>=Ȝgga\CM%O'^}衇>3|+~?;kN~ǽ_.({7~~:R`|7zi -`)Wx^_G eЩO|W|im*HWW&6K1 'qJ}Aes^HyadSO= wމu묳}'Cꫯ/||Ylํ@}< FYϪ>}*^1]~Z?SYIxk{؎?*7@g@ c+|**1qν$ R>R26Zp/免a`-[?ꨣo+9ƩY!;kjyar_9f l0~*%rRK-|?~b})^l@w 64ڄPʧ'\x$@&L/ 2iJ .E_/uB&`zIiF*u/uPF'Ŏ6p'+ :l4 3WcJ#mk:uuTT~5,ќc~hDŽ"㢭'ŧd'SԣGvEǎxgK>.3HW@2U/W|Vԇi0gK]N vb~h xbL:ӽ8={3L+Q[q(]ɥi"b—`/}T#8#'?o8̆gx:Tg<_< Dw _^PJ̇Qbi! !BF τ9Qb,Z!r).DV7dgH-'r CD QSE 1@.N̆ An ir3Z77-11!qӢ  ~!B v D0@{;F%I4.'?}u)q F cG6/@pn6kr)OH}AE&YNg~!Cv&W^Y !9vΉŜ &Nч |(b>nc,HJ'65pB=176brlcsde^6yx.`:sIds>!fʝmLJMBlTCHwٰ<˚W;&6p?rRb>gG%ޢO5k ld pH1~Y]w <[xOwԟa~b~͋G@#曵m3o0.q_CUA:rk9N#!K/BHT'_Ҵ[AUOC_eTQ^8=q'U>d&8? PS&OʠVui<)=C>BuT }Zة=eO>_"[cJ}`Rԅ>?W?H-5fۧLK9 mU %Se|Fg>H9q+u51o헟y\k[b_7Xso[:1z|_]v=v)Ȑ;{wbc17l2}vDm}4R?io`[J$OYW|^{>KxK?-˧Gz"O#$?mR[ڏE{#bU YPK?앢\@`W 'Se|Fg F}hLj,b˯+E6_V_>4\. E1w6 {vb~\#8#8#P_#83!N̟ 'CnTt)1 Ŀ<9C(Y6 IRbIfKIm;v'OeOHܐ hJ8)"_ɴ}97/Ad)Rš!rb:1_ŴxYXn""ku|Hl`]r"1-FNH{MqZ4C:ec0ŦR=eWadۼIl*NK!BBM7L'CS* ȓy#pjTtb>a}o 8i!"߿Hek2%DU,9ԗ=D깷!8'3)a:eqk #!eˎqZIpO@"c>+6t@N7")]={TuiCYg1x8[ lͦRfI/YHج\J{ R}=Ή_~̳ԖsGljBǎuFwyn5&HڒJ7yȎ=< 66`!a0.x3y;W< ǽxK \xnˆ}u36+#M<ܟ܏lVR:oA4׸gG|]+\8r}lg 83@Pjx#&hRv\ #Ԉ~zޖBE mBB/pEd'_uS:HҞ$t/3u)Vy}!T~(cC1 :.|±&v$>cIVƭ:RDmR"[3m~jд W D:M"eғJ'?Mڨ \ulUY vçNB<~X!?z|OO|;_Lfdʾ g|S ??`—r&/"hb]wys1=/kW'7 9#8#8uDuΛ9#0"t<&OHʼn)M7!qJ4ݗ$9d2Rb>'isRy6mJՉ!"CsR9$kwZ)~bZJ bqoSbxu| I/''Ci1'Us3-CԦ ȕ?\0*EP2j9B)+OOa~!frb3C4MO׉cțL8]<:蠸Kٕ҉!+R<si3ˆ骄1S!OC¬ԗ.8U@5x@̅<^95N>l;5ͳSoN{$R "/Rɉ< 6,)b}6Te|Um `HlҥK\6RSb'6|xzgIJƕ@.{.>cX ^zsԥ)~J3,scǎٛn0&6ِb){osJ+ <峘 & 7YAAg1,nǑ/ׅ?4l8Wؘg:  DO@F@f4D'Q6O1Ylv!"\=" yC.q՗CJeCåLryEb%O[٦1bOlgc˥GWC4&c Q?OíNI& t 4Ņڨ\,y,{8Ml G>h?EDPG;ڣӅ/&[bKƖQJQY;n/Xe#e @cmE%m4"壛okgemi89aΫWd^WՃB#8#8@F{}#pb~sqy#{Wt)1'VE8qb$cC.TQݔ iU'|K B([#qZ̿F,uHGސ^H ~9)ZR12V UɈ#H$ Ixg'=C_dBK,Q9]w]&2ydmHzA#qK) !sOuXG䫒2ƐhN#` (DҪb)m!"3H}:4̽z%ٶXqYɗ"cwE>$p6@H a%Wnz!szU{ >8\CzWX(¦<1ZY<9]v%VmWL8%泮yJUk>~> 'RJ2NDYLOO$s[BX<^xx ;i%gh]|^&_?>Ϲ9M~`<q?oaȫ7m`DvH<[Xl>M$~ k.|b-Jn$aqxڴI0vfC~0^>S=|pb~̅Ghj|~ojӺ'הp5\OIc.n1u䩃6HvԡLU"cO^$yҸ)#3m^.:]qtO:Ōా*PWJS=,@(dme ˗zR|V (d_RD}y. I:gbկҠqkRejO*_bPǧ&T*I lcMKy!dlŠ>Hy9[vq[lKoZj.h207u쨾ׅ_>/Y~>l幗 <*hWw>]ƴ#8#8#'%qG 3>@)#rb~Ә?Em?!A i2:=}ݒÀ 8 s,y|.]"PGUI'~˜B:bI@(/aNlj"6CdcA"eǎmWo&l[u)Djɽ8k^y@e BZtlMb-!&"k!B謩|t_1b%'x3g}v\կ_?kݺu$Sh[*>#{#ɘ]|.,HnСC\'eY'ila<ܳVI/:dqȨo!sB7*xn@N&.bJxq>'bs/p*vU>O|Y["V !C"{Ϋ#?y}f NUz6g1~"i| 1Q'.҈9kG|o>Ŧ lal0O/n $:!x޲)l2a>Gb*R&iܹs319\s1cslNnCiQ81F!:@S#9ڶ<=GC#/2Q1)6"C'Nm-djOY7x<:kq]׌[dClu=v]C3O_. E㋎[ֺCؙ_x1̾4dӍk7eݣ칳o^z[> 6[w^{c.{}ɧU6 ^q rϽ6*|i2|/Y=|9vrb(W_}v?f'Bt+veN9{ ۮQwa𷗻 :boI_D B*½ a$z*~na$"Cꯉ@tlHu%C&&NjNḊ *נA"a  *5A̧ȱ]9h-1VRFNdTH윊 "쳁JRHט|@Uեl[z饫32Be4#C{a~.NG43%^1_I'n1C'ˎzl)L:B<>ҋv$'U ! ihX 6mJG( {$by 6"^i'۴`RK u򧉣N"*{$cb?ڣl)_$ 'w7~|qr_|aʦ8?HGGU.>a~}6?ƝW vi)1vW^yAmцv7Ë*s{KKU'>{lvk|~Wy 쥗+E сQw?.ɟ/ؠk(REaN_Vb윳JY82RIP5^N9`Q&GqL2^cza`++_xYkr{' ;Û2YԘ,KgN/K#8#8@pb~Ǝ#t812#'91OxjK̟YNá=1.'s:'C4vȍj=>~x 9 ز^ s*λϛ! vWuBr*4s=g KƷZp/b9$dﬡoNp~.bOꩧl ν+m`%'^ѣ|Ě}饗N  ٓքF&ބو[RK-[ γM+ Ag!3Lgs:1>)b +>C81#Hlzgl5,>jK`oLbNgmIoIHjm1-4NS!:l2 2?DQN1ҥq`{JMqϞ=|p)C's@̇{߶ {q8ˉK,D$X3-;:AR;4iN@n:th$Bg<8駟ƵzmsN۪k9X !uK k5J}NmN{:[gʼnUɈ#eI=b&[Y/܃&s(Ga7|s|x@.%ρ=#nЛ9x8'x"bjJ0N+1?A~ԩ$})RC5̒!}q_r%qA'{キ} sz8F󚱳ـ"&TIpbL2QfDg yz y&b/zՉlˎT{Ȳ ٘G@d2lګja'Q=eQR;bo+dc^6 )4߿hoZ:u*, <†2JQC`RTNӥ~TG1푴 T~R{ŋK'eTQKhOO^1K2r_|fʖZq>#l>Hy)R>"Wڻ?+bG[pvrcdjJOcλ혣=tV? ֣{X {fO{V~l= &#<̎>Ȓ~j|>쨣$޽SO;l\wly"_N0xO?צ/o<1/u6x cG=g8'?c~|a+//vO1bƱ=KLtG}t>Xf@eL yvuo󀳢ȺUb3(fQ1YEW]s֌ 1iEQ0QAEQĬUЯsy$`_OUݺuoթ~3NU}bzRyc߸߻w !W\Iؐm!V32.]vfa +`Cع?;wu׭_ }֤*Wߏ"Cg<;[v/%~qG{Amڞ p@08}5/O|w'`Gy0K ױ>3?}1?d|+.СC)7Q7󼶈;/o 3NYIe,">6|s5/J!s3ς~ȑsgϞp>:18- w}w!CYE '|.jqB v[|Ȭ$s>Ɖi-JӺn26=w|N/;(Cz7O8U(sQKEu#PFҢE=h ;G[Y Z^ò=:;̴&e)6:B6P ޠ[l_zRԉ/MJS'^m!^yf+dcD~)T_4uTF9Cu^CSf eiTudlG⧾a[xObJOKt5 e˿UɯڠW_2[q3v`.u 8QY^2U/g|Ni0RG] 8u]6^^ yj< 56ٴkx qS`. oڇ(n'^;6r-˯l6:v:\v""V\iŰ#w]taV[ovjmfь K֪"jCuxXe@uK[mU>}N[o04xu획CARb>u`xrBeѐ!/^{#wݤkx?F2,k=@091?GpGpg2p:؄xwz>!䡺,&lBeV$ӑo+bmvB6b@Jm2S hԨQf٤fY3%uCx/dyHݐ9)Cp!U'Dr3^υ )CdGs<@Z]eU &#C~Bbf)anv)q!@T>dOH3gv'$ 1B:dRq[n% &yar<_}AeD) z뭈!SvnLdv"AsyTڵk׼4!dWp ^5o"76"泃;}eNZn]!;awygx ٜDwЄ7dj,(B.j@IDAT}:1k}20MvQ?u+U>a. OplL¸cyap]S ĔxHxSo:^"SD.RW S^z#Dc*"4S8o*|Acǎ֦M/J!tz޽7m۶P_b>n}'.`s}E9Cgq\_xg:g,XcM6ꅱ쌙slVO?8'[nKH\ j߾}\yڪU;#?޽{Gbrƍ @ d`5]@gw[,b{VǷ Ce{_]SaWdH~.C Gb9;o$XpbG!݉+|eذa<)/5sA;^Ċ?| $y ik>K7$h&ꪑV)܇nC@Gy$ZlACƅHMJza!$}ΘXA^ ,p` 8]Ee>4iRp[|@Zgwq,`! $ %K_)&,`z衸:Ȯ_,V^H[3]PYb>b_|1|+ͿqW^xq|^ӲeK )k?dro}~#u9y8,8aIg 1~qO{6Gp>Ϗ>(^;ς7pP" 8?,>c 5b1ovq|\+|nJ$Ç|}`.+J%dn9N>t~9 vO;W,pZ=zH>O9[>GpmGn"9/+G)1?? oADS ɈDytN[;RFfŐ8pi-/_"jK ~p =q?yPui.͇b,+~l^'6+.X?v2t!IЁLs&11_ڪYE ~faMvȝw _44ܴkBx%#hMu I?c?LJucذW􈺔\]ۣG]K/,jG^{#Ӷ(+߉Yjoly ynҔ-_qGC9{ _;QSYн{o毰 Ԉchkv^)pGpGp󫇛rG`NEsy+__gx\)1W!BbgΝ;Gכoi<ϑH~E"rꩮdtHY!D-q7sț|R zEbv],1b2dU!Ae'\v?7.ٛ9?%ݸ9/!:b)c~Q41-LXV[u3Dv).h$c3, l })"~s>AgNٹ3>]wx>1ה6!;#^o\w,&a o`,a96vCs v8bpHpq7tN㼀dqJ b>} .ܓH7\@3{ b,DHfsnrbl\^RYb>spb 6 S 7sOdG|'C\k |@E!{ 1@Fr}AE+9_ܻ;=!-$,3zq'vG0/_Mgs=s{,ZHm!({#fYN,X/|.rdl Tvln7{3>7|dG <~bZOwޘ 6㪐ע45ե:;@i1c~Sv<E([ W y8GG8".dcRL6<9T/z6%Ge8'|,kGڞz8VOƙ}G!!dɿRIJ^eUXP_'GHkVC[ĢOŗ-)$|N0 a^ULڥ XY> ?.u &96D}9սB> q>@†* YC2ܟHQɛs]g1OKrSa]rv~yq1I^ȦK+y|~WOR9X;oEe 8C8g,r`kejsύ;1,\. 0{H*\K,|`'~vQb>s7Y۵+R籘$/! s9^lpm7&3Θy|r0犄ph.I6<|bAֿ4 Jr;{#">3GkoHܣ;i\k|1x{8XM#,cO V>S^lsW {>s1`Ϲ 6,e.J{{zy xӰ-b>7y@)va%ppOub~ݝ܍@}# 5#lv! ^q _y񎱣9Fv!9Ϥ!c#OzR8)H|. !// m| [AL:z|uG툯~cSe*7L):'_NztDy3=OQ'(tPFT_#vW~S[:ĤMp;n-:tc))11*|pE}H97RGJ1)SKC*{@o⋄ΎXMwE3.;@ 7ګƒm|aaMPOދ+Qxv잽6?lux ?GF}。ЬnWv^}@йs씘f6a'Bn4g uX|maKaa`Lsb>8#8#8kG8甙~-4'h|97d| nr!ECr,% sBc'dv0@Ԅ?<vͳ?DR)r7YӐXK d(v={. 9R-=H|@xdjvemȩX@|f $[i 8!֦;\~]ٕBJ@CG} !CpnvYx$?N?3- ء] x֧798' Bpov{GxSoڵ+ 2.r7/ٽ>j!SUv57PsdvȠٱ7I0'`ح[7tMK.s/7 @C3fL]]!W<\rPPB\b. CX{IK2/s¸smp.[0fⱳ7Ymj1;?Yxoˆjks+`VS`"IMs7 !s {8+#1iR}a! ?mk7;oH^"=xq.%\؂ =9[J[yFœg)˸pC$R~As+'B3"pMY*ɹg  ճNJ~&fvg8ⱼ0`K89 |>g;P:T6^B[R¹Ľö\]| ,b~{\ܯo^E>iL޴mlIsb؁5>clo%E^ +b78s0g oGw9o/RBiS{O&|:1n΍o|>'Z4o3pddy |!ROd:Tvtإ#Mȋ/|S|WVBU/yc&>S{ XGaˡLeʂ:/ H>ICOڐ2`Rɧ=6`dQN}V1mJ>EzTؐ/l94MW :.u &2E_K*3>Bԇ_4Acv'{ cZ{ByVfC≧l^nzaטf#8hףǮvɥ<;>Q嗟/n^{#6oߡ}xDA^wb&1Ԩwl뭶~r+CÈ4gm]{CT#Gmn-=Q61|Jo׮=S[4ٵW]7s-.pGpG%_K@Gp?LwsAg81?EK!Lȋ[$Sg9^8#8#0W"r}s?O 7ee%>"AV}C6*p`RIcy6?OD#XG/llxUi?cS-YMEstRQJ v;A[';8#7_3鼯 ;|ŧ,Ӗ:Fe3'O:Dg*O<Ɨ_0vY ی;apH]L`d= eg|>@ď\nv<&yQe3\֊!G٦.%2wwQGoN;cw2vxgﲻŗ=Sx n|Fcy℉֭.rmW:q?<41;661pѵ/]nlW^uYuQ9_37Wl۶sb «GpGp*!*Ǝ#81B@=ClB+9'WsxpGpG$N/ +:@}#&-"1od ~U?q_m7&UPߚ/uWY~r7m*BU@W Ж))zSWmI7d \n pǧMՖJ[@ aǀH&l^HZN}otpROS_a/!i~ xGmS;[:٦>U1ݸKBɓKCG!ƑRK:,3&:|^eMon^K6[ ?l?]s핅qM26ljJNn|"5;i:kymM6 ?Sk Av^+b 'gׯa^ zb\3ϱk^;WfƎo=(ߖF޽ y6n^Q6M?Fu츚xю|1?~x{cWm!i֪Uں\>x˭a[fMb ȷFW=mM2mV|ՑCQ1' (O;D15&l٦m5F6:t/upHOΧ(yRv:ڐԑ|;K;勲څlʊ_>iO;RD2T bL)^_Buﴁef_MJ\qHi2UvjvMԇ_41v?/ mNefTOy1;oV c/ eɧX [馁~ZW^=xȠ&]mРb&޺u%\Gy?J`gSM7ne@㢉Җh!ԛ=q!&nٵryu}֎;dai Gp*+ 9yiy0'cQsN̯:1zy+GpGp6?͸wNBs;Ċ&^5SaXapU7{A/tI-X'[AO|vGG{ŗ6C^Cv* RĠ`rU[pXS@p~"`#$CDRO%G:O>8PV|^}R,GeR8|_ƨbR<#ݸqoKB HyT|3>W! Hf1>o)b>_Fg+%'x.{wCy/NW_}~B~:ؿ.nإI-o81z\tEN;)h?)%_|ѥvyO^n;k︵=ƻK;lk'ǖ_nh?-b>u6׋@=؃|6RU4#?Ӷ싦IHoժU|^{nK/tvqlflL% ng}_/;JMOTxa^0yчm۶r]Ȝ}96A+~u[3't{Ͻ1ƹk;LGpG-_[HGp ?g̓rA {^Z>^'cQsN̯:1zy+GpGp6?͸wNB.Բ9(v5pqW@HG9%SMF z"h z!>fڧ񰡝:Ǟ<+Ol8ȣטX`E)`-IS𯱅lE޲Ŵ:Nc-Bcv,uʫ-v ^$: m%)M픗O<:D|JTI8S-;/=fBR>'*a>?襎E kkBWǍg]Lvcǚ6m M,( )SݟԩS]6Wm6i$[qȷ~ BƍCuՇ8ޏ?v7|kԤIk O?!/qEYqDnҔ[_~žK?gM5ZȚeu5/84<ۮP ';1.GpGN̯Nn8@}Ae&}3U'ח8&OlÇo%帥yk믿믿>~еkW~GpGpGN̯+:@}#7h05o֤gphnpIE qPrAHMD;H"CRړG#M㫞vNvi^!d{B6J:TqiN6E4>|ʚRMAW=: F6@6StZ ;|A'N<4⒦B,M_x9;DqUV| mTOц6fp3v| iи ЗL+"pԡ};WlV16OHڠifý06n*3񶑢kk"76wd'|o=}d-SE e!D|'׉;8#8BɍG781L z2> GpGpGm81A"P߈lۢy$K8{CLY;׋L3d:tjs,>ڊ-{Rlg&2mI)3+>~_|h|O*S/]Ƽȗ z+O>lVU,HpV[B>5(uVN=GYl':@^qQǗ5/';oGSO}UY=Ƨۍ-R`2oqD.e-e/"'db1?׉Y}+D*s_Cg׋'#屯&{Aߨ.1}x ak֬Y>l/;1߉$8#8@pb~rCGpN̯胨G蹩|!#8#8#8C[9FoРA1v_bp+XDuҌlc/j*֩,gl(.dF6Ge9~lU/W|RP||#Uv5T!I;kJN AG;!jHF}W;ԧS![_\*RG[:ŗ? G1c' KCI+cLhŪi"[pbt+_"ekf6TcyB0PP| (VQ'>-h5B>Y&A5pTQ/ 9s + zz;I9*>K}=zBWmjL $ڌmS Bgf3$=K*;ŻzcO+՜h)U:JSnN̯Æ+)`6K~z?J+dGu|@P1b-"*+1c-׮&n]{ }/r/}rKWh'hy{QF|m 7rO?ۑGbLZh!e޻م^do=~4-}]l{٫kmoFYdaСm[J.L?~.ƊV_|1ԩuuQ+!za6nܸsβe]7|c>=رcmloҢE kѲ^^{#8#85A5A:#0!9oμ3U'9#8#8G3cTFgSԖ-B">qF pqU yT(L>ᠽD1qS?c/t A}F˸ė-CIQV'ګ.ddz"WMN02yRGY28 KU.O۴^Zpb~HH.x٭S B&Mٺ>%7 ߁+ګm%{W_}e[mrgylgc]Pq.r6,&+,N(%]t.3픪l{96,/3"C:O?cG~Miˉ'`cix#8#8UDUGpb>zj`N:#8#8#P=_=ܼ#0+o|6llAv"CDxxĐ,r@c ]\cHtjCmDŽv!oRɧhҘM䃔)c+!&oŧ)ߔ|(|_S?)b-|/+ZBj*<R#J$ 2Bh`OeЖ=%R|lGP\/;ġ>RF|lR;+,#>uj1>8`-;nAIK]B Ha8W8˲4igbŇ3te/]8nue׌|b~oo5Əv1wTt ?3aGӣxoRz);E 6m~5oɚki:PŘ*CVG Lvo|6!.4mQkٲe,+%S?q[aCw׆l!_rű}%~]vcHpw aZje'*3>Aԇ_4gDcŇ3;Y1%Rvu6uB>ϵ4Gnf wo֬i HҫsXW_!旊* W6,cW*[nv>nfŒO_)A{g'x2UbW^^UܸqvQ/o_;cc_)1ɧl={wh&y=VZiEUǴ'? -?r@zmIbSzGpGpG9N̯9Y7b~ nďFIk'b ѩ>d#^||"gTƟ|w_}QǁSg+#ةWzUGW^O#:/uNS?,;yDmd[5Q*k{|*&`+N}7بN%yzŧL<:S~C6P{qN6i-[ݶ0[Lԥ.!O29T84i *;1?؉_"fkf67>QO'rʫ`=zh57>jH$_z ݟ4wۨFalG{VZyBh/˗]~m:2|mqWΝ;ۭo)ԧkiXS{>9yTӔfa}IϽ7^=>V_}u{7mݳ+q NMΈ[.̟q1S"ops8.(V[#,4|@;c=@\zOGpGL?b/m<* jC2׀4dž+&CU>r;>X*)uQoGIB^㡞K~T]raA>yꚄc ~4ejzlG!u^2U/Η=Eԇ_4gDcŇ3?WY_J@~]'Q[v( GK2GۚˉQQ_6<B 9j^sS>W泓‹/"W_}5vtlu)tz;/6avaǰxᣰh=?B۔?>P̵^g.hi#qcl&+lq6٨QW]mK)O޽}ܳۥ\Zv "2dȋYP-vg!zgk-袅:8#8#PTyڞ8CkT3U'W5qGpGpG`81x#0o|6j٢)ΨN9&#! /I ١9e_|uH2~H$f)Um8ЧЩmk\טh~Q';qC/XzTu :@$E鬔yإ6#v:/iu7~oĿV5ttNezK/RDm3~Pnqfnv:*"Ru1 i0Ɉ)8;1?؉_"ߎkf6&uDmk]4|]k~]@:azi/駟N;ool.b~ m7+{^ٰâ>%OOi͸>/x(,O<씹e-v9"xHrzءiuW.o=X82a„[<@; &k}MJm'|bQeJ̇H/Ȱ]vv=w , UL. x" :tN֠A,#sE}H9KNvb~L_H`MvVp^[3CGy}։[_ٕW\i+^UNg1q9rD~O?e[c5J酅go32윚}N?s ;|x?qᄑlRbj{UGQP++]uʇzrb;s Lt3"'RL__{ "e]nPbTyGpGpj@ߩ}a'|'Ro8@Fuzzss!gN̟ O#8#8#*N̯U8ݙ#Pcb_!zJ 9Ur0H>_'zIiF*u.H3W2v*~PG^Ӫ@IDAT4cY AʁmG4/N[Q%ɫsh/;d̟VO=zD.=RcM-cً'Hd>;}Te.@'U8ub~38k#^9}#Rio}a\J5oQogK,uEF|nxG9ሰzˢRb>ȳ|udU:_aW{Ft15;)UOm>\0Kjذ U!k{cxdRbyg;ԽT=>V⊶ۗ2+]wzѩfwuw[veoh"SO>ޠ7ψߤIkڴ\h!vj~Xn_nÆb/y>e삾ʞqGpG81z{Gp,?g͗#?>BGpGpG81 Pf-[4;`p3)lizUεx'YȮel$/|i|)>}Q})>>Te*/۠:ĹƎX=P|'U>d'8;(:NBuI*>- h'_I[cJ}`Sԅ?ol?_8ڎ;~Pyr 0a 7S2B )zS'g:1t4}rlm:nlVu3r)W=+y;l!kٲxCJ{Q;c[K.i=?V[lm_~e}'l*jwU_u3"{N;FO>m;u߹~EJm۶frGpGZo@2 ԱHdzRمW\_TGpg"g WR)wP><+S؀Zge>hҊ킁#8uh{M7_omqac%*i6ȹmN?t[(l3;W^.}]ի~᳣5W_#: [͕j7ҏ= <8~FJ]v;:u6zs^p1־k{E]6\ת_~ٮ ?㎳u]VLgF}w}%뭷^|~53coG;81̅#P߈|_֢ySUcR8C(x"h`pG{h#{pIM[!SO>m'δ*Ԟ+>$[!!vAL&m/ԓi>TMjS@48:%iq]lŎv pDH_=8:OB^iQ{#}Kh\G/?ҫK*ې5^f\ tC ۽v_.g13N?3/Bj-+_}=iիCPءK.v%V Ħ]73#>-\ao_oTO>{c}JG mbݼ ]wa+\=p.۵kĂrGpGH#9?oƺ/(Ȅ "+ͺH YVGpfN̟eP{ GRMiJF#PO믭_~vZn쪫֭[Wj~]tEvWn!=vi6b;ꨣ")xv1y#3q7)b}9;;<=zt,`>k=}]vG<N5a\Scƌ~77lץs?~"s9<@[dER/#0pbL];5DPf `4C\d|I/1:4Kd/ըG)(S;/3u)Vy|#J26;>XW;R$ƠzTqQFVL[ a0)exHIL^zR?ӄFS'pѓVe8CO'>;IaQNci8Z u[0þ_"WG2}f bHƸԉN/>[)%Rv ̮xdVv[rW(Ϻ~y8 O[uquk#EvlK:)6,wmyw߳G{ 4hLN/c;S"!dw6|'u 'm[7tС{a5^jUWf͚U0S52?﷮ZѣGجJLݗn-.裏4v}uCG)N̯)y7b>H-Բ!4Hi/$C?T/rRїkB4K gTe ٘Nm 4>GTl>bOlD'&CW8)uX:Ru4Ņڨy,{JuL&^J_S |Q'QDbKI6G=28ڎ7qpk_&%\ԏ?ks$⌀)m b'8B}!J|uZ{QG}y [f6@vܛz@ mWLl8>3/*^Sf +@W>Gf*۽ v== QYΝ_ DymvsvcYBۚ(NsAĞkB9;>.;/K nlV/gJ̟Vu+#O?4k׮mdF`ۅڔ\qŕv@h)T=̳vL{6|{PԳ>63:3ڳk,^|%v7j);y~;MG^8#8@@ib~/Zネ@ :$`Y։1q#8' =#PyT-/$$.o߾\Ah~7|A;cָ8 Km]wOk޼-DuJ}!ޣK;ltYV5jFݒu̮J1fxz~g&MVloݻov^s>~3,HTⲸ6ddǟ|<,&X:;u\#.n/j+쥗sy-77ҲeK{gn+vyǝQ_eABϽ{]KٸpGp"'WECx{ e;"OŤL%m :#T?Su@?Sub~!@E쪫 wixEٕW^6-{e~ĈvQG]gG?>Ï/SV,屧=yաš1!^FtuZi>uc@N] eh2viS?59%qRj)j~R΋SS+j= ~c1c."h\DXE)&SR>+G+$OE| ´^+ ͚q>._sĵJGpGJqs_ GpN̯C]qz*0/$/o4/`:zq ސߴJ⋸xKx*A_mǬE”jx# 1|O>1˦;,LT&sˀɗ_~iM6:X-פn„ ?l.B֭vv<|#1ڷo?Crm6cjKO[6m|7 flTnxO81\ʴO6,$gvE)̊7=`5˹y}9k҄-A\9mV#]vgAFPN*'lTŸ9/ʞg0}/? O;|=k6Xe*c7^[]:@)Ӳϱ Ϸyf=meă2y3m-s"rVbRG4oaf{~vQ \@/곛MB[c ^\i* U!2|)+&]8//eO,c&bmOGnÞ|`ʒPe 1$Փ4eRN60E!=_G_e0AU=zMt˯*~j#]p+EOÌ;/%ʿ1_.OEzZR& 9eR]bhGpfN̟ {G 81 `#SwutA}GG !}v衇 |6hРHoW\qu UI-#G3<HĐ[l'tR$$Db)$Ňzhxv?|pzm.̶j+$g}6>tHpqBݻq/FeH`/N;зo_7"rK;ӭsQSOif#F6uN8H(%~Aj["׵[T;vhGuvÆʹK/d{G$s1)cf͚Ү]Bc΍;3BΥS*߂vy@@X88u]9W|4x9W #bAlqko){K.Hsk a1ʶnk\w묳Nq1w\r=F$986`x-[o˹nBuuZC8:xm@GB=q_/iժC9$^3ҧUW]˶m{.Fpnӧ辔<ֿ8U g9>-mܳ8כop޻k͊\s]|q -sG{:ǹuxnkB"l7wmQF>™.'kV7zW^iݻwkEµ_z/ƅ?2`#{,o=.R!3n΁u]p,壔EM|& %8TB5dȐ |.qvj#m791nϑnE- 3E8&,Duneߚ/EzaP4#ې-3LTŧV~QvSe?mG_E(lSu0dCYyS>J(XNAꏎ%0p8 ҇lcj40TG_ԥ}#UQvH^O=/RI_t_z/^B{*>yi_w(A'S+/*30Mԇ_4\cVyGthƖ^jBy-۵]ʖ]fByfg1HU$f=Ã;ltY*i;-b~>4L)SZe֍5џ_T2ƶX\zؒϚډڨ?sljcc"pgѶ5ef6r0EzM_!J" &✥<,(`zt!VX!6My;5 ZJ1byuskJ@-awpA'Ѯ,p|Z_`0.,Ġ+, C2Gw#)ލsONmmmi}M<!#\cys󚺴S;(>o Uo.3sSO[pP8|iF ~k,~iEeYS= P=߯8ƘsEW iè \zB u"<_GX5[-7ho }=<#]~7<'QlA߶~'@wod{-*s1 Xbq,>CS ~K+bWRNE݆lЕi|HT~eKyO҄պ<;!'궨ǩQG"K_UKG5@WΫB \lEtlU )a[딞2j|~Qtǻ(/T_A~l?SDҷyUɪo&q}?B3c'OM|zw6d]ۯ&׻Fwj=m`;Д?+3J?3uzDl#Fֻr_k[~^s5.~:v!M?˾36ӟ~&ZM뮻N2d7'e{ڤ/XXǫy ]t%]?Y6ѽnַOɯەgiO X1I!o>^k!ӯ._۹&7GumMHtCLj$fzsyI=z^2}泟2V"@ @  T߾|7_m5Ts:OG|lB@ z QO 54g*kMy(/dg4hvCK()ݎ!B&ܴ{ꃐɮM!<ε2e&Nv{(b>uB`gvۆ$Ov$8 y¸S]i/3Ǯv3g vs1lPk.daFuac`9ߐ9 곸wy;|B],΀ȹy^;|p_0@gs E+ιp-ɾ\w"FL0;Ɔ7qv٭%\,R<@^f %"׳S>S, }Aq>pk5O?cp)b!GܡN-[$X\s=hH)Ċx o BsnAfew&n3@ g{ 8}՘{"GnP,:eA jGq}ҤIh=o8\㒘5u}Ң)59n8'sM)c\KH=C|zc Ym s3qw-Dmܓ?C׽qzb ) *N {7 m1WB@`A sXEK=:b}Xbb{HW[-=c y;ʐ&dGqAGMPdGRMeT^~Uot[بßph>V@ÆzϔqF˸kz>`U}Ŗ8 d`NկRՓbSu$|ڢA$D/?j;O'HMg`WidU7kavۇ#4s~:z[o󰟔tj*;4#4?Y묖]1SϘE%zwS,r6#H.'a?qiN;Ɵ'TyZu] ^#:&.Lv(${M4/ēÏLO?ti^/f;qƩ6HܗN$OL^wUi7OP>CiZgb;2S} 0Ϸ84$Ӓ{Z{b ~ο1GF>tz:}h5m]Z]&^V+bYK@ @ [ࡇJ ?_`5|ƣJgc$X_yDM(;L|@ 0[bl=* :DR7;sõ 1b"N1nr8"-l!Bʄ f#;C i'] {1'Cc=6 'B-Ҿ|@Ȏߴȓ5!>裞ςn)2$v%"t5)wr>w@H?bH{ɲ"HH]yS-W8K/ԉW^ye'b>X3R 3CP I+}/'t*cX;6Ӌ3!B4hPSH9Yuu ]Y9cavvP9+뮻|;zCGuw7cBr@ <;WB4vgG!PK sM? 3 2|v"lLdg:1< W Ր!4^`_`IprCĆ͹5$6l/O!EW6gS@1R3dlO|@ 0D|M;\ oN?p5c&g C5\,ʩ}U7p\{&89GY ,\?-ppe;sfa#}~q[ҕM .A]@`FKwLx/N4: L N1lIc#{!ʳhS-ɃM"ԋ=e?czQZ:S}ȟe!)J_j>q8A~cؕ@X cK:`"DgPT_OZG[W&MȡCOteܒV 0N.iگWrbW]ITeF8`!V%9^# zf:zO?F=9&M|E%o+N#_zId."#4fnj_Skmh UZ]WǏ]nY|g| jhj-!l嶶{-BilZz?:ةI"kLog;M\n`›i>8xM{^S9{4?,>F=1uDz?}Gd-0}J'c>яcƦ'G5s|G4G~7b҉׭"o}~x範[[ ^2d .]R2_O6PiMxlٶw__kmɧǥia;(l+LG @ @ 02eZ6>-"k LAɑlBWM1_2}W(dYv|X Iv i9d__!? 凝>8I2C$|K)*!;:8@2ٕ!C+_L!l0c\xTpp g0c!NKḊ` '~ߐT!(W b>m]6b!"b>D^HU[p^.6oBO_Y|9Z duΕ! ?i}gj]B)󁱣NPvxi}`!KD/(P%c v7}W.\*`,йD{FI{RUkHY -Hg|a\#,2a'"%ޢy=oa1auјpn6"[I۹q k;l@#QOv s0r sӤv=}99o~kY$eH)4*s>t@ 1s1>xkX1$U&X7ѿe_gQ7bGy9(#)ϡ|Tʧ ~lK+CNկ|Z:Q'_-Zz屮YʻQ!`ɿBA*TY(ϢuPk`O@Q:AT?zP~ jp(<5[_2 U?re,Yb_e׮}HBAvʪovz>öћ|_Jώy&<8K Hk ^v%i㸽uif_ɻ>lfg;d/LKb>wLW v2osz!6Q#nHGu!W6ӯMxllO?Iux5&wxmw=ꫯM,d@K.ld_=Moz*1e檫I_Oz&N?W~M:? _tr/26v.P^$;cwov ?nvp+]?qiK/=4v]@ @ @ G?^zyJZamDZÅ6Qy0|F'|:l9?0e; E @{,.Oageo+Bk KbJ+k"d=D] A*؍r7E<Cu*6ڨ̮C I,(ѿT Q8!"%я\]t!|*b>r/]!k?*[0 QzM7ڵ2سL!w$mb7db(1B,[ ٟ!PRz_lg7}1@C)"s^v+\E 7I,Ay+ZHش΃:ǧ;|2XB]fZ?C0 #C  gݯZ_TvW11,vXJQ2iv͹Ģ H3'7n=];"w iwR5w$]vkE|pT6יzJߓ&={ yF&$9=N1{a0,8#,C/B dX|錘xBȇPOuUx[c}:hUs~]m{g|^똷wkڞH@qVΛm|#b9L@ߎ*?Ba#1v :ؒEL`~B=C@塗?% |aK>us!OC?Q9Wa.XQ4Nⲧ3 "z˟BAz˞?GFuJ i8~Wi0/'{v*^GY?:D!uReɃ&2u]!} Uy㙀)zfͶћ| 8?i_% \> ÂNזf=YbnmYzLjWhSYF֛|AFguv:zw/'+裿F\kO|ȁ6)]eyvbV7#iįi?&_yM2}BÅvDŽ 4s>bo *1K/qg7N$>[ ֵ[ )'tJK]uY+`wamlveyĿMۤ=}[!cOr묽Zׯwx#@ @ x˿{֪zaݔ F:;ϔ7!sX1stײ@(@ z (,i|bnQ^lBq{esYrYd_kp.C]%O2);QC.수O z1MHȋ/ck;"*cArM6  F7`cW|vgx4)?%wq~;#Fp&d_̢+|؝|-L쐘vK_! {{?Xа.-E;D9m^ 1c,~Brg1c@gp|@r묳yꩧA{w |!c xW.,:H|[vgqv[{},śaBGaYp|*1o,\+yr}gq]s2 vӆRn9׹Y0[ $b4 haR:"q9?/Vl!KzK?x/ԽC! s q,}}s7.}au$Yy{tT3b>M)`u@IDATb 8_ֈ2.uME3ZY}f,asMv N uꌼ@ ;1E$"0Y\Ā~>kB)~1Y|BӃ5tBaW#.4HRҟW[jeO^LyjQ;^ɓlͰ'KO5|E˸ڢ2t0-ze|0ʩ-SߜjOvBaC\P˰ԛI^_tL}wߥڐi3횔UY|Nۇ#4s&AZIgӤ^i[Fb HeYlE҆lT.1mD,ᄒRKcO2!ӏ5/_᏾}u ~vt=zxU&[&&YE?#l.j9g&7Ni;hIwfar`ȐғL..#M8,]'{{q6=cUW3 Գ:1um/Fl͚vDgrƓqd>A-vg|޺ {nO+b QDz.۪)c!Ï~#29 $s1fܛBn=K,JbCg zo fD;hqBge;#Sk-eы:,.b'}sA̟,Z< 0烷8;X̃1L!aѷ:dCX7UӍa=BH>|W!2MN4"5qOߊ˶2Q}jtKp6)B`x:p#_PGho &gЙP; XB@T?i(vVi~ډ!QO8᧬_~C}WZ`3þa%i9 V|tĖ1_2hlgyq]tRZieӚk ,g?b /]m>k0,{QM*1-Mc$s_m'<^~ϦWuDR/η.r7g~v%_f'zI?>>knd:VRNn-ȷwy7 Zu /X^U>羶ݮ骫4^)NYuA_ɽ j33nͷuc> 3K/8~|X9_d@ @ t44~ P{xȮ|G=$ X_Ʃ񽿙xi/s"@ 17P:#c57Y&1g y,qwtR7MYc1_r-϶67mb>g:d=6騣?sK|gycJbHuݡEb?q'C.g ïƟZI=c>;C\gWqHK.d4h= [_7]V|0,fm \!CfgAϢ`C:"x\pAEXz'[ne!y|,4-',%v}V[ǡ1c/[#C{ƟY߈oo Ѧ'#Skz7뮹wyVB@`A sXEK=6b>˗\‰m4!AGdK#E 𱱅G"?)#<+-tY?nOeU,9U~(KةSr!yeUP~-O~(+S[B%=%R!J>ƦlU2]( U l>-ꆵG>Oqځ;DQ=/nd[TW:?!} rn"?ijߓnK-?m5>zāP|*ŌO=tѥtF?QG׶Ygo&'ۓwetpwUNX.RWwm;wuXm{6Kq5׮ /ѣڹ鈘?nLu$"4m7M1_z6 ~Ҋο.җ<'vE2eZzى^v啗]0@ @ C[=~}f T|{{\nԉ^ )]47 @ ;8G-@Wb~WzSNqkaN m?/}KN!9}uoߙ_eƎk_v#E̿; C biҰaGnv׾_Џ9+ ?SNK}W\lB=JvZn]%=Ic/njI[~r1o6[ba E @i7:lȨo\ƥa{W#b>~ :o7߼ZGq[vy1ȑ?K8>B)|}s9m|vgX5;Sgo7ay@ sb$jkOi|htQ$(N 4Bjl˲@գ[wW$9wq}?B3g[;?i׼7 \>m+P*Y/ @ Y@g8̍.9 aΕM(n6?!yT\Scm3>Eg'bه~xb'kƉP y+/$}[֟'EC˜Ty6- /8 '?IЇ>򗿤_ɦ+"0!;CпKҼv6}QSOM!^qi饗nYMgc'H,avoqvIb>e]e==9g9eG~:qB{}@Gkʙ%Aa"|78tO5 0N:$B>7ؠ]w:"7]!䯷z#a Q栃1 d /d@] ` ,~FgLYd\c"zf21X< ;vG}M;w_0 XqEM!@ 0 9gs1g^Ŏ0,0:U&4#NY !cKZq}W]ĩUꗏ6U':N&OH#J[ǮۂÙ|iW:N>N"@أWZ(z!V|Iu?JcP? A=MS>r"$=qG+ӮpB⣯ tALX!U+j9m&aozS7c„Igƻu7.q,?3tܱ_>=?ISBn6J!$1Md0ܿn&6hm]bt{zaw69/koV>fۤqcǹ{\_ꬳNg~c)A?֯ǔ.W;<z/̟v-/?ii܄һ6G~ߗ_^,F @ @ %~FxqjߕmvF:XH6}a}J>1ry>oiϨ}ȮE<@b~a5]AR_1{! [nxHJ^y'pL7A5N4)?p;gyj>e'|M.gӪQg}6koj{{8 '`^}ͮOw;+ݵ98<@U)СCgjv~k{a~„ ;wyD!C4Q aͦK!Cf e`W5ӟ:1Cvm~]P])BJ4j舘 (!Gyd}N!%u,aC :{:ό7%@̧ܯ9,-fEYߕ|+>v,B=Z@"Ե +TM&_,X{6?vVopOڳ<RGhȥ_?19aL â1*+W!/ƍKI,L5 <98gXXsA̟s*Z:!0yԒ`DF|v@|G\d8%1 ^}.*QYb_}茋*5BQvtAʩ)qy~6"=q/lHS\>iGG;W! P\e&fUx&3Gh%a1MHlDoWN/\I͐G~'ߏ/fGWîoz >ӹԚSO==_u=I?㌳ҙ?fߍQxE^Rv̿oqa䠃ɥy;,p·=B _g6c=7hn'wj^u@z̘s{&Lx&䚉sAӤI/ۤ{]G6N_7N/?]zkVIwyOZzHT޶-$@ @ ;KOXi?4/IdLWupi #&%i6@ B tt 5K|):^,Bq{p;'E!=B\{M7ԎlqiȑNfNᐓ[o9ݱdR|r+X-;7o*~a'kCdGr"(B5$v!B"-76=\'˦y4devzf![ކPʴi\w%HO}w}BjV6%ֆ7~^?>ξ+dQ<;='&|b\aOlWzkEQO{ |Y9m0\O-,4G i( O@ۈ ,0}cxn3 E ' G967lK{uSdP7!܄J{te7|C'2i;?KgQyjꥬ y!/CzFO| uP&|tlHl'-AvO(|~9y$eҀ( KuaCTҪ2:QF<Ry+ut0{_g6&blӭ|; 埵]Mo6<2{{myQ_bX0pm7KLҺ뮓rsh}&m$!M;tQ !r.Cb4`N6!!5ʉG Tw[|*2!6W@և0) vm7O벤ݿ ;5CpF~-wV.s:!o?'Cg,؅rk57.N܅ؾ!VBe}s^7Yg'K2uTo ;󜇷&CnyD﫮E͹b>D_v 0붶6 7D`.AXHc_'N19ٻ~f\\p{3_n,o;r"=;|!y+錘=O<0Gu/x;wD)b>x麅uK{6tSN+J b>ϗmw,0ڡUVY{;EUϹ(H\w}`[n7p>zK1[OxoxspPY8ފŅ#,~axqgAX=-o~o-ƾӗ ÇOov>A/XX"L_sX@_@A #m#0jNm}xĐ 9LO(2!|Lp#Tq/cG=*S/ϤFU?y_|h'KE/E=2'{O /!"{Տ 7zJh0 ç:ƪe'3 OtAGZ|f|>WmçT?q<_V^#eU=ٶ)S_ʏeOUY|͜VGoȘϧgG?׮OUK H믷,y*Ub;|eSI˦9~2S|_$iM`kֱ ]5nG?>ކZ5Irxzɧ啊8&?\WU4>;zT=Ov뮻=Y[nKpڅqM)=3<&TVOs[gJ#&sR<{\W]JwmnE\0sÒvqtISe&c׻ GV]u9UL"~9+M ĢY<`A_:IGoX~e0Nn9_sɧn~:}/7T\~POv!iS#2r6z> l̦cnߵI1Mja ֮'èֻtp6YQmoOzt&oa:R>{6X$U_#@ %hswDfWX{+_>:1D7Q뻲|{1,>e<}[I TxM>JM@ z 6Q_ 9y޳a49 aw1לMb>a[yA ꕆ}ڍٕ? CܑL2% :4}k_s$v!nB† EkYH7N黥CBnE da!_B8/(xH8kyvIUfO_z%o|vm y~z ~0W"Cq+CV_}u'ChGzᐂ9&L;"aoVsjf, z\`Mx]ҫS|r/} aܫ$U b>>s7*p_[ ",| ϛ7LE`5p}q.cyeHρ/â.J+_6* U7BYa7SB3+j ƿYؓ')XעGH'-a(S^zA(;lv#Mmʑ/QW{|?[աQSG>4|ya145ڮUYq&P-MVGoiS޽o~iU>`E,?nu~*J̧ Lzto 3._??"q6sַO ÚU~]vwݖ[n|}5?ivdN4עw=轼 &V_}tW.T@K-٤A)Lv\p/ӎ;5&(Z}rIy,}?y_<~Wۮm'qQ2ile:_VvOy.mmm;n8׋dڴWG72n-.=V04m M{6t-\w&I[r8!Xo`pO?.&unD}@7'݃DQi62vvWM :-CLp;Te+&|jK/GfS QÏr?y3Iw}nq/h~bS~p[nǙu=f5 k2wbC`]r~N;5KQ3pF:@ ;u+ilmO!ӓ߅&Igz}7v2 Kv Ȑ!WRu];4?cWl fCeW޻Eٕ"l+M7Ty D i|zc%_ǂK/!Ͳ]ف7(kuB1Öɚ! < U0Mgus=@^fL CzgHuDէҼr]vC 𛗝Yɗs#m?g1>|~ݰKyU9kh%󟽏R<B {_ 3VvXo,:f칞:vO~$~l*}|%7#:;Ƀo>=nq{lsm$^IؙIB3(rM.OYv_xHWzW>AҫeXU??b_4SHs~3 eU(S?u[n;X>XNqh*|~)Cx9쨫_i/A'{'@d@^CcOv!;T_Y3.S:\HBOAV%9'9%\o̹ٶ:zЖ7xަEGfBfY{?\yŗ|BMu{ݕIq&WkK_܋0o$b>?]  `;he=&0fXa҉V^yY?l&N|>=s*Ͷ6OE-OZ3 |Kw_cmZsy^~Sԅn_.{ھT7=3ݙ N7nD __??fEۘh09`>?O]c<|/-lvS̛ o-PZ&\r FOa~@ فCgTX.61SLOK2>):/O9zH=y ;5P [iWEU}@ z QS 4G)[yb'Lr/"sz)en|coq3M}Qx4;!B &,3( wgpyx1W<3B$̳;e`ykjo󊱣,Vv|+٥皌)!&Mϗ?wpIкot:b7w@[1_k X<zӵJ[%ͮcW @ >|hq̇&ņ5BͼqZMl^R .!0\bqvgv'7UFđV>69J!NW{PGugU\ت: Aͦ~h6SQ{S2e>:ע6Q^yK~I9+(!-`ItLwEB:H[_vVvsGrpTO)K_$Y*PwY?y_6/'2uϝZ" ,veU7ǙB9#4=?[߮cYblnrTMEˬ-󳩮|-eumXט((徸#ܲk%ۓi]#F+RX @ @ гߗMgI@o{8l@ @ @`C ؀Gw(6b> _t_qvjHY&Qc32ĵ9:;Ɇ8]-^+$mY?uuPm!O~l%#&NHYSIqKzZmTG!.l,M}.t3,4|fE/sB-#:& 8cO_կRؒ!Ρz Si4zˢ.!rWX`GɟG`U_2mX~B  enL+Cst# b~F7Y6wâju;z05tkok =Ϧkݫ_ُݛ"Yo @ @ f'o"&'{oA{"Oʯy2҄Y 7DWH~Gʆ>@b~a@@YWoyiN3>%6C@ @ @ b\?9}>6$cxˑX^sV8ӄ z'&TEQF Ec#A^iOs-t8d+8rҩ,V{"+K43jy'!vGS4Ѡ)WEdxB)?{Շ {AVeTR_;Gr]Vȯۺ 5G>iE@ @   9nMR#ޣl=jrڍkٗf~/}8%$9 i#3j>~+>gDMa|P @ @ @@XD,kmv̯_7y'~4'@OXc$-dړ=SIVQ+|wY#?ڣrW\i#?W!2_ɟ|~-rjti0i؉#*#[t؊خRZ0CeWu⪟2S{ЩB婽G!_>1zY4eƄO2*':D~IUTԏH(G{ij^>2[D"D ɾZ_ʖq3,TBi Wdž^ǡ*n*AnQGH골! H#e_?\K~_]u=fI'j!'o1;V:a[+ 0yƺ)빵lkvZݙ+ g|| ШnYWsM| 5m[xöV]j` QN.8-D6*@ @ lA@c;>-In4lG${<ZL;[)իfy9li#@ 11hOf+n2`> @ @ @ b<~D4s1_K.81vf8&#! /]Ҏ7=\#)#Du$fʩ SVy@_Z^RDüY}Ԫ!-=Ԝy_eK;k~UaZFɦ2הd@ @ @ԉo|?Vs \e:fmZE7 WL㢨e)6eN@ z 6Q_ 9չHLR^0Ŏc@ @ @ 0o#y{}|Ϥ\hp9Bucҽ8+mUƮ1YIcϡ!I\#_u6 @UF}WVjqb[#6SM=qO/5X~I#̧~ `V^dGyFO2#/Iˏl#lS'!Ly R;ГA>僐C`SَP,/!ens2skي3rh Ghz&[A1|ڪYm=u'!e?Y#/[=]SxSe*H@ @ 'WAe>ȶP@c(?r"cAYO[T?ye?қI+OAz<XzɯLITB bkLVe}sIo/CK?B3ƭ gT'}m6_p-e ]"M)_cZj lˌ@ @ @GLħ!|pld{GYK#c/o@IDATCr{>\6R@ @{ '9 w @ @ @#2f?s1?%迟!;Ǝg2tN2 iq εx'ZV)N͟ʓ/Ҫ#ZZT?m/ONqٚu%؉suQ'6/'m)]'ʏ:&N!)U^:(#,$*_4v*?|/ۯ Y}*}`~!;JizP?;8*̬^/Wl)`~#?MNm'B|O\}+˗q31Q3VٺDQҫ :Yn-v"cJJ\5T= <."[$U?e!#CrG|Gzկz ekѴ2eڰ]H_BG7-x5E͜ VG3A̯bTD;[iC[xFy\gYt}|/]Œ]V":n\X @ @ {'LolAք\(_n 4oՍts]XԢVΚՑ @ 16U-?1H @ @ @`b @/#0X`4x-\dXV9B$|R*Qʟ*:Fh)O4KO`4 )'paQUZ'FOՏD .mRHcvJ%9^-i貥v^x~2)_l_B>Q[;{vIa @_@ }a @EJ|!a @ @ C -JF쿟x$\E[4c5BRY&A8y*evV┕mF'DǖCCW}CM{ vQOí3.XKGPSCؔ#.-i٫ie_?:A/$jy<:b^l?aYF*FYĎA_veusc"e}s3 aW+j6|lo b~a^l}-Ji65'^s)5F7iOm^6RN@ @ @o" r}4-{JDn;&:16n^ho[1d lA 4c;*2@ @ @ ALa6bϟ;揱u;e2c<[F_VBDeW9Бҿʪ gޱm!_$yAiDuГVU~SuS=/$qȗڭn8Y)OaROI+t BFXWIJh2F/$U ǟuZ\ %!AoOS}v a cpO'j%Dou1?|0S}Д|A]g|;${(duY_#Be-"jKP@ @ 3@IoU׳Zޫyٳ|*oQiӷejc:>@ AM 9IX9ϩP{=b*bimf@ @ ܏@1ιm|-{ۈ3YCX>H# wY:RF\dů&Oe,djOZ8eTyҪGc_&zѴ|ҪKqK5i塗C>}B 6ǡv[:-jxXAuBçtPg  HrQC/Bi q6PNȖ}CeUʪɣ~OYbP/~c'O2,g&UYgZh GhzMrW g_=4Fk-[8Fn|ޫ46n+Vy @ @ f'7efi+zFݰڒn|[n0mvKg{H@ >?VhRyA@ @ @ ==ܢT ̥ g`|N1SFm?ʣlI^$ ;ʔWHB 763S͜IVG1o5ՇMvTms_p6)f˷\L@ @ @`v" ҽPLϹ.r̦OW͋V>7"@ 0bhA P"P b~N@ @ @ q?E@vᅲ7v̇ i/r=9[-"<钔t|.կ:g{q`+_*^cPbeV;~bρm~S/}?âg`Q@4 :MY/q"eT2F9Q=jWYȎ<^Ɩ"ʡKW,6Hi#zG^!~(F̟6,RR!}f&-|N)ۇ#4s&[AC>qƧC}+-Rz.M|zhC駟I=71-ieI?{gcHhI%B"!Z"*HH*J-Q$ɯE_![ Jdi?8ϝsݯۜz,gΙ93|wϜixPyyfnccp[$u;0ϞD_Nqyc ,ZX}䑦VUdx-C YbsY/^iܸQ Ͼ̇k?47~nKn----_o- n; ۗv?"X|~ϵ{ x x x x x x x x x \ x`~[߲}_Kt=^;@y9,k`Q(({ʋ¤!%F HJ*̓OIUC?hկ:(lPC\{TQ٪_gTY RG܊h|\Wpz{̷VȇDH )H ]Fq,pǻKa⿛)R/~)Q9MΕxV͚o>cE2?h SO6Ç0G #m=.Qa۶$9qˤZSsl~L}{]6sFm3usG!LFk^O?pQ"g13Όdܱ=lӲvy<(iK߾M+Ȭ2 nO'ktt4/&'k /cyk[{Q D<=0?j!Ș<0?ci/l\*UV{`4\;b`dOxfʑڂ;h|m=o6/͘ 4s]t̏%hS,?gg34^M??)`B: q*U3y~Z]I*mʿ~_y{>3gZi/L1^3̘;mx:Ϟ@ѣGTu'xJ0kkd_Nr&ַ zGFVaoooo`-l'ۦve,X`9S^&{ѬZ|XbJ*F yBܹssL QGSUr3`_~|oLRRRO?d/_.^Bv4.n6md֯_o~WStisꩧc9&w+ sG;T^vam[m 8`~¦TɃ.vjRl:L$8w^iX`,!d;ii׺i-rUWl4wHe[yr!yj 1кj:\yP"]H"\TFaM,GK`4GkS@PKȂX: t|ꢝȝt%h02Tiwz9%8RԦx7 k5[<ݲc?ޕ7}e:T@\~Vh:3ͷDyכn\E2Pj͚ZIRAk;̞={6!FSi͂ oJ毿%E ))7xxeӂiz߶-SNm3mPD2oJ@l^`$K-N܇Bk~h.j&3Ww.𗓱?j2C^xEskۥ*.kkxP-_l#Cu7ol2----Z >0>Ѧ/"ݔ2x҂b'WSO.;ZwiO|_KnLvwutCg 7x{I (ĉMF^^&, Ҍ~۴kΌ?>a)+W43˖-3:u2=8IX@.1~fذa駟Z6w}I&T Y6zyGE]dNQ----<0?}yo@_n "N&K!! PS42 ڠQ~A9}UBtj 5Ɣat \'50adqׁ.7L' |nyFsR䑎NܰJ\(8amְWܕ%_8T{N[Nj =6n?䏻e]߹7b:*bwe-{9?2[~gy3*kʔ9R9~*0/^j=`xEA̬+:L3iS5\e!Obύ:ZYR 1`>kF(|<͜V e˗dDdfYJ}<0qlc;/0-j>88/u?"[x`~ً7-Q{,6&'`%|jK|j%|@^Z^@J D=0? b  $`i֘GeZn#MݸqiڴI'd߯hJ(aڴicZgЂgs=gziJ,iN81܉'huf=RUUwz x x jO4>[ -PӾ|VY1 XsLtE<|3w(H0eT yʫLtWO@rh?TTuҺ40D[|oaHʓ_"UN!, a:C<\cjYh %5(_'SAZV;:xӰv,zK+/w@ 0@AtO4;eU'zhփl_w잌wmOt #d ͖ Oxݲw's o TȎҚV1(.q>{yGvGИ-iW(*0?;He8Ң ӧأBZmoY)𺔲N.Wr8Z <`{CH uK+R;w /|a0L}zd 6fE3b?@vYgDoZȬ̖K.gC `~~} ݻMʫzd`_w&y x x x nA&V^R(s>Җ0@目 ~(aWO{2dx_`i֬)Wy g|+\Ё_~x51bz W_}eFm?M3W]uP~½Iw6wq?<C5'OӧOi[ӶK 4`>: 8mv- a|++ G9"A|9b>[$n4g &n/3֭7;w`V==AeQҮmG߿;vbbJSZo5+VHQ^X5ir*gW_}m'35kjNY\pyCU;9I{wϽi>xU ϙ9oeAIRFg /<_B̏R9_#)BkklygñwTwv;9FD{wonY#&_#smzJzٿ[i_,Owlh.R-Rpc25jbnМRV?;cd̘qfժ2FҔTԚk3F |'"o3,Cvg,ִ`%^.o{?'a*Wl\zn{71}~1Elߕ:W}UW\*]j|߃SۯwGߵkI;ȑc5~|c>iK䔔vŊe ZDYyωy x x x T _L+ʧ?qJQ+/+Zǽ<0??􂯃@klʺX1c+=0?u n:s}I&k`>%~a3~xӣG ` 3{l.x7oc={P)?Y d96ɓt!mx|r uf`m'a6?O}! 2gyj J(0A_u y>7E%C#= 7)& Xb{ 64"עYfH+)@7g tأmׯ`vn> F {<#<$y'YNR(w|EI: "iaÏ,3fL ^h׷)pQG ǦhW":H Ǽk)ZhQ̀wH91Xf61SLK!H"vC?su]¼L[<20 xco_^vFo9!;]r5iذSYTYx>1o 6vGό1'[ #~x2E*ީ6D[5vIcSzJ?N1\J -0?_rq[uxnj8zrw_vh#>Y3Fyet,_B7;.ڻ~{I ׳rIeW%Kie ;ߔ8Dw_~ł e ?l9|Ӱ=eB3a^QJ4^fq!_Vث{Y16e;lYi77`0&h[端h&qc`R^Cd-*3<<,oT^mO3`IL}EYyv/[[[[`Y cXߺA8όO[; x`~kg:dzOˬ<0?<0?gΜ=.Ioɓ4 5l0=9d̮]SVZyDJ x`~~_o(h|ޝRJ_f/^@^W X` /`:NW5e|4_*Ww uѲ_l`IWȡ,S=çUvp'mrmPdh@e]lЋChTi]qGeOB|\G(˧4uej@?Ȃo@p"MO2Ϟ~O|'o 7N<7xǣ>gDŽ_F n}Wu1ppď?x3qb 6o} Khc]wyْw>4lx`=4ĎB}!#ZsAyauvfƠ?|3b0~N=Q`>iQ|ҪTb54qukC@͛1c<>.R+%څyV)bc%UV;'fÆ)5N`xҥ]0 |wfڴa ޚm*U>![foH aÆj qȸ̐!zӧMQAӦM7 옺OR㽽c+%wA+:J;vJWvHy _ړE =/'?ԭ{}`3~ m ;@?$<é9Mo1ǞpOlHO,.0zWW^yTyǎMkl`S$Gc;9Ez x x x S d? H~ t>(9jQz@t 3l}_}U3/<) 9szqg.2qOw}׮i*3<Ӯ]icܶm]м"^N-eth欳',s5kĉQF1~p&L T4h ecFXS?~9:FAF%j*~Vx\tiSV-ӦM%I8nyҥKӱcGq@B[|Md150۷7vXjiæM4XUD m-睷CX$&_̞=[9!͚5G~z+ڴsNX)ߺukoVomۊm2R\ϞHtɞH ]e3s=W7Tާ~j׼,I'Y)X,\]RRr$c;իW5jS/2-\r烾_dy饗@'|8kB_ځ3@=c G<'%K'l.ByY;cQ?<3AμKkذYTj֬Yfr-ΪN+nࠊ2yֲeKSR8J gSW^yEl/90w\|gKR9 QG(N-c<@RƍjK/ylҤI1Ewcwʼ l?2e{%[o% <5k3O8?;yr̅\r=Zs[o1^yx`nŦwvؙӓ_A3HoՓ1T:"_>֭+`пb^>& meNy+2^{5ii& 7s'oM6}qz)E/-0ц ߘ۵k'mc3_0F[y ;o(fx !k-m6PFhi&Ui{ "Geihn>a0(an璧C§rH#ijTch95.4k9"&LS;t|xGm"ON\!uǮ){P%OGr =6l'~Yas؜bE؅#La HzEƂ Ӂg>9@^+WlPώ1T@w+.:CfQn;v,PӣL΍W_}m=L7ߧ~yy֋a~?j YL8顷7fZoN jRZ;yܚ1yThz&/ti!X/[lJv {مWlguYΐ~ 2z}\^ 3d6*\yEgUv kk>n3;ѡu$0FN:)?isލ)1/>*E?no7ST6kbƍfX8Ҽk----P-PiS߾Nf``\&----OYXW^}ppZB_Ϟ=G`7|=ztLyA[0os= HwwH٨L,4 HwEJxF a.]) C '47|J]9jÛ`03sjg}=qĨ&+@ztHV@`t<xJP*뮻N@Yf>}ӭA^IavMs $ [6#Ć(k J?cc;HG @4ycǎ5;w3%ȥM 6}F> sy% >0r-]݁Mlqg6B +e¸{&M$ ?nf6qp6 𽬛86`Յܤ$K`sҨQ=5bM,٘- 6A s.M ؈A?s.s%I¦h`?6=RƯ5F{s.,І'w{$\ĹO@ݦsɏm>- 00 Bq0x؋5:#!]yG,5l,*0ڛFyկ2\9S=t|Zoë:4vc0?poLk.a^Ψ[.,[fz9# Qԫ׍vx<ϖE>>du\k6`XrauUG@zo{Rfn3$zZ5&XX> vpN(7@f8_di׶hРs)= !~>=1  ~#u4=6Rн]b\xE?RE(f@fCÆ7'y~ÇjetyHccʉ'VlY_(bgyZlmU8]]m$իWK,*J0p"aSBis{jCuFZS-Ry2j?|SMvg>3'`K%ѱT`9¥_"6aooog/x}[o[uD(C󂻾K-Yʒ(DSJ$WXJÀ' ױp*` ^7`G6on.`<]|vu2Ix }0RG@]rxH(UV\r4..yǍ'@IIII!>gb_52>x3`8 h@Ȁw$6E "u 9.zq"/ /Ҭ9#$%@SMMxѦQ!&3ψ7x916F95$GS']M^܀o@@ԿqNxf||ѣ={`c;\D͚19ucH]]IȡxN_b'K9"? [v1 $3nmNl pqrnt1?9Zc`;|F @/d S]|'x<2V;ϳ;)MLԍ .xw\`>e7cg ;1y ;}Л5QM?gaCk֬],SQ\ ΀ȱ1s!}m vvɜXT=Cy Q -)'0Wsi$!6@o-Ky3Gw,s4?A 6Ƴ|G1&y3FH9wr]|:|@6W6 p<>dOwG{ 8U9y瀻K؋g>9?vlP'ԫW/NHgN|G1G1/Y+ 61ly;Cldб|6̟{ 2$3$Ǝg@IDATF|b/;׳rJ>-<0?= |o@A>Y~e b,2DX1.0h#Bw Jkk '/@͂vkŊ!خRd^nMҿk31⹞ԨsNv!01ҳgo3FƎe$Ѣ} =c͢JT/*MZHߠ~#oZ.Ib*￿#aٳ}%ӵkw37 Ν;م6vp1ۡM_3E.:'Ad~c~~7ǝ۴n'S69̎mU?(----/@ߵ5BEeF{~oooo}o5 n8!`MY XzX; c'Hv-^c/;v쐺*ކ f4hd /% ] x [knv<8oW$pKXM x} \i?aO)t7h=a GO<|Y`>P<3_ P:P36mxg͢1cƈ6m*Z!u991'(aCk'-w% np.T0qf8=e2Tⵚ1æ%  | /\%R.xfmJKAs\5ρ*'Blԡؖ*f'fcډ 'ﴨf3_^sz`r򒒒 2狍^{m wX @7"E.ynWbSiэ,%G wǴuy;ah9B<{?s;G0'dtW9fԟ³XUbp mFy{FG lb3J۔3o2>yХ'C#vψ{" Vy[W6ϸ}& M99@Q=SGM=uԑ}^/}L{1pry 9$xlv gbfmUM|/h#|?O0A6=y <0?,z d _HaS:Zl`*zJsW9q0!օ!x]~ _^ǜ;.?aHӸ5r*4sÚO ٠+<.ꥬU򔇼h$3$+rqjm4wm4a'M<1h:qOvP>d5wMSZɿ^|.K;DY z5)i\i|;yNs_-0_Ot.AR ȷ]-C[v] 槟ߤ^TO׉*V8[&d CdsB^bZ{cfeCABCU?v%p喍 /Vl?)ĤNjyo&M1&MQ6g' x׾{RY]ӱÕ@^"UB.|'ǟs^rlY|C{v.ޗBvv$deVsE.]#}rg&%wQp -(qԩū.`8UĻ.R,]O|<&whz~wu hӧOA.0 i?K&9rdhNP>x@x1T @K.g١ChQ&k\Bxr_v*J@@pE:|ؑvWsWkl.-*)%xhr@bD̑ :j=PJrA˖- IIIp1`]Jki{S^ /zJPŽ9O?x9T]^A.P͏f# `d]qc~R 940 0"NPӯ}ٔ 9v`q4HN1`08 7x/7w_hO&MB]{CX˰pĥxh!çC!8eG?e!5 FnYե4QY)?.:hEaET!S Gtt5֏H$M@XF<_eh]-KUS>jݐ餩~yZuոޕ_~m~ݱ{?=/ Q\T+X ܽtnYIm`~9+V~lβݱUVU`[Lol-ע}Vbd$vpY`|lXvFSRbE5a^V˗0j#Xtxw;D9sM竃-/q\޹ w7Ԯ]xi[5 _x%fO?ehnx^go5JQ.;2 oy~jІ$sC2>ygKs=]b@cdѻoK8.0M)Æv֣y5 x"F-'VqZƍXte+k_0,hO?eK޳A^AqR2ķs._$cT%/:hW |ޣs^2C9g >----- Lgg-lP D4=0vtY׫WOP1z*-p$hRy`&Yf?^^vk 00$tJxom@Q)__-`_э529@^$yٲe}Hcƍ͌3E.\i`>~s@j4o<ts3[oxlL@ gR"DdxjfE޽ӵc9c)DQJtڏݻ h>3g̠k]ZwlO&K7udvxnq =g\`Kg<'ZWf 6܀GuΜSyzRg0MlP p lNJvt9-z[ݙO5j\`>AUʕݢfO8{B97nl$N%Qrl`9gMZ}|W0G$c^42eh;G5} |y r%@yN1UV Qy߾}oO]6|w-(>c?RB.䫯GonKp- x`~z  0K\[^ .7w@m\`1a]pɇ_eh9ȃӸPiY9(qͳA!ʑF!dFG4s!KaB|򪟻PȆ(yePU |m'OH94q!ڰ%;eT>q%:tk|hݵqAsr+~4]>!C˒GY*4կ[_vLwOt^}L|^@c?䏻ea!$ޕ?|q/a;+$1es#o㭛ZwX'iV-[S7^x~3ʋt]+tteX6@V,b\PŸq͹͛G}z7Ǐl3N03:bZZھT}.@u?u ~JOOe&^!J5kQ`~z ͖/x^}tydh-'^Hkkۙ1zk^TJ/xҶmȰcx>H t󓒒Ebdd&bٍɋ ʏ|Qx232\+<,XZ`U" 91L~zPMҢs^2c':>[[[[_fx/e&Ha|@YD<0ߵF ' ^1C4c nj=Ӏ^2g ցy?`i@6D| }g+#1rϸg  xz .}[=ϲnB>NR׀Ι;Txd>N[N ̆Ns2F=?ԏSeyf ڳ ؛F;y6uC>-]첤-(h|u;d{k)@U 1Bڳq B S"R>ҕOe鄕L4kѯ25]w7GѰbP>ҴĹTIBWuH;Ӥ ʹvʤAVBĵsh|m8!"\#C_*5"2ȇGG>w.HyU?6Oݸk:S}nYϲt uǮQy>AYJAR0b!!C[x|?vn~1[~gw}ŋ`jvbۀ.}iG3g ٍτSL A$Fb5nb3O<<,V +|<#v!~Z*ü`5j^N嚫C_}ܱC2@V8-`>/ >{a ibvL ,ƝvZ]c"E7 =U O;K3_K+{6mۧ$7݂O=5L֗'MkwCnq 0/4nڔs|ry*7 n9aWf";vZO7|*(0Ĭs^:|e?R%----P-}Mb5J&s1ݥKn9KX(nx'tR@[ ˖-+QB{gf{3&믿5YUWkW;ѤT4A>x!7kF;v:&$)K.D꪿/9a`= 0$QoڵK65!c m۶MxgyFUV NDl\plh85xPǓ7^ |00.¸xoԨx.]tjU?СjU25k̘֔Ӹ|Jþ?Ϙ,0MGJlX//RRJIcy@a<3N|wf3 s-S#T-z'9[; ~fؼMr<3ѓ}igC2yo7u[H?@~¾0M-<ի9ñ'5߽+rfCJZe~xBR&XeH1Қa.Cp?Ey%ա2)D5 ,]/=`ѯ2l0iĵZ'k MZoiR!` j" sG>!%$ a ~Wcp<4@*7_OoVnh9ds<0Տ,OXei{ ĵm6(aZ>- WA:;, ]cb{vHH?/fƭ͟2p/~t搻`IS.%1.~fRoΨ[B +,@0EOLlnֳĻRTG=^*k~hM#Ի]۵slB[ Y"+cDU Å"sDLEO1Oh{O a Y lf~ٲ5%_wj_(a՛6m"a>.!#6VJ\n:r!ga̢֯ʢ2ؔ1nvA3^i9x `x5jZ.?Ʊ^tb 4Νgv9Q ^r`K/J?g׼6&@Vv^sl),)LOp]k qFzP*Jg9sT`+/'M$P@Ef7`ٳi-ŋ?k &,`YٳGNhܹV/@P"| 75b=ܣG  7ľt @6&MH1e?k3]VQD_q3,^· &@rqN L#F.3 2+WЛ<<3~K>H-0L>\.2l`'\`>2xKtƺKl=!Js ψXy/3h_cK!(>2pjdi3V'Gi;n.ƶ:vKԦ̑đMC|j+.nކmĂAppBF#R6K-- 00C6aU*P֋rZT(jӴBZ5,P)e!4w5$48DA SicDy(E:*K~-,/AT_ã։;qWY6(Dq<w .V.)r)XD}.Zpg?%(g'"- e2[&d[s%q d3he>siL) 7Fyóؤic3rD2Yz t5Bny7ʫ3Cg 6R tF3^Z1ٙ}oG$PpM=ѕS86r.l]㤦 ~Gdx^Y 6dtlub.{ge5'-GN+(+Rxݞ|6. nZmO<л~|vРAM4͛77_|x?C 'T9m_& 6M1Ʉy,`2dl'›V_kYt0_vLS 0(JAR ȷ@qw&0f ҤbŊ2۫] (i,sCQF ߩz~~tG@m*^VUVm$~zf 0xJ,YnxX%X`VQE4 {MGn1}^1J:_൬;&~O q1NdŲ"C7f̓ysC9)TIUO< thYpDꫯhЫ率QO=nl'ԛ,dzsMUDEn|wΰ }싅#yi;YzMݰfdc 3c_2p*Uأ$b=鴎iGRR,0gehR2.~"Ϧu 6^FsuS-[*`4.: ܤw7"}nYe@7 \ڶ] sgϞH#vH3-|{h xzit3Sc͛gX[gy7?0P<"cTL xy;4yC<\\N!μirQJO=Dlbᴖ(1V߱YoڴI;6<"QbsG}$V0F9JO,s7o,MST{ <0?/u{ m/RgF<1W|X|0=iP4_ O^ dhy*Ce|qAT]SOq| k?<QkX>2D@f?-rA! LΝ 2KAQaAQck<|Zٔã0D'>'yNkC# Vd) Jxqy\nݓz_AYAR0ct!-; ٹsS?_<#|Ul q_=;.Zi#>PyE2s?ۿ۝IDdl߾]vc˄ ɮ4tn,zh)끦omVݙ7?7EfTo<8>(;v=\]a74+,o9,ؔ ʋos;.yA@O2FI/nFK*hZZ' 8^cXNJ*zA^v؊,N/,~xה֋<[ݿ2ؾ8MFx?8ɣrJa_~6\D+'9'Offv^sv4ooooooooooo,Y{ X[p]kz,9JeuIg=qƍe vS#dqE؝6Bo۶Sk|Yw:KWo0H} 7ȆxuE&h 7Ա]|nm .@꧞ 1;L-[qd x%N-p 6lltGkb#dOM> ϼiÜ9sdcT/\e.$ݻ P>+CjN?3o 2D 枬wi=\>lF9ñcNJM2g^e,McHma1?y d 0h^;@ 1Xe.~8@*ҕ͟">](G6(D-| R5Q^T i}QB|%閁\KB"v(TRu3L(R#xm6DCU' R~5,y\X $I+jȀ!Տ.nUև$CڂE& {ٱc?\AGKl |8( m{n#MW30?_uLاE{N,z"l>o7Yw .y`k׀htb,X`4h Fk/ڵ>x`V7<7n<<֟s9@z<"rč}@ڪތ޼ǟr)iG /(v M~ :aȑ`8΃ @ e˖$(17#I31w&M;; G xci&@ƍGŋZ(0q6o\ϻ?hF-y6&`D8 {/?ۇl9/HʕC$3~,^+U٩yxN=m OJ'8) 97' /_^d\rIʓyF|@8GM`>s ^y^W;wO;cK?`xeL'0p6s7zwH`+̯z*W|6!gɓӸCermdscܶZ-Z0?^)% ̟5kl9đ֭[u5eoVԏM8]*0vۋ.a@rM& /wv#R~L9ա" 3 6x@(\TP^{M@DTh}饗 P&@ *{*N/ 0 `~s{" Q[l O>ivmrJ|6 qtPGxhf=S`/Um&1qtX%xܸq4${N[0`@h ހLg#rٲe.3|l Еte]&T@Jo˵挅 =zs;w4N| pZja>OؠŜ@c>[@؜M1` ( *405va ljq_sG^67`֬Y8n J%%+lL?{UQ4+ OEbbAOgE^7}VQP,X.]lHI6!3flܷaRy͉yk.J ޳F&BW_=T15 2;${gE!z惦MKu|1}Ml;ugIs:Y?cm$vf|Gp?4uܧy6Я5u ѼՃ|Q x?cý%kv&ý/BL/n \0b~.YC ?TSb~Otq=tT\s!"1{qU>:u>3i6+!){ؒ=ڀDP|A-Z8y%ǎ spL(,b>?~83RȀ5kCs{N.0xQޯ_?GMx ~pNN+y=DEI{!~rɓy7hi+ԥK. (۩S@-%?۷[.R1!BfDh63oƉ!sB6s:@}}eAM{wqǠ )ܸqnĉaށ3swKwg_CW^e.H۴]pe B<̉ߐk۵kC|l@]25 C4}HQd]ȯ Y@g|76".31AeN!73&`w߅{AOOi}|WcX1^mwaн&6H\|H?i'г ܿ1 05b l|bds2μ1"e%o;NDiРAXK:.Յ&N:M_oHߌ#'2 kcl;CF#iӦ5M܃I6lXP}6N B>s9w\6|O6^/X_ 1 8H;Ço` |wo,cLوzppBx1Jo~OE)MKqb]'>8D[ ӭ[[fB}9"=8eӥ.OqD‚> VIFPG>4őe}/}K$@(e"1ɲ$X'/z䑖B(B'?V!iDQNt+>;P>;>#q]Is\ꪎ)㒨a tcCG(=J(>` O[>ȗTۧ|DP/\jK>`E٤r`"1?c`am&{Px nEDH={.}e\nqC0 C0 C0 C0 #f(ACeP?Eҿ?ůPG|%۵j٬|lVḐCe9 $&N߿+ꫯ9X BӧO IȨ=N@DI&c)/b>6!BF 1)!PB6lڴiF1qHZD B\ %"spx @ONGYء>Q4$lX{!3'W)9s !,Dzꪫi;dZ6Z@ ={rheJ;PYxRX I{@IDATٙ=z{w%'MEN  'p~I't} 7);jaz4kdFք9BzlPa#9mې2k Ng!K*s1XHΆڏs9 >b@䧯Iaɀ&ZMYwHld@ ƊM%ɾtI<qdK }e,Ά 6΀SR{6@gÂ6_~9lao#y7&5X=:>F!6}K|j*cL|Ov#F0G9!`r@#;W=T3ę(J>2rHs;V9FTN>pRyR(J>U&_8vdKi>GZ'_i*N<. zO'i+A_,qr5l쨃j8i49R]Q #>dC~b8$4z=.r/ڭ>6!edg}?(W?h:g!KLIU@;(ԔTV*?3zP|zuj:|3Ous@}os7ȵﰝpBMgqC0 C0 C0 C0*#Wf$yɈc<Մ(ljQw} '#nǏON4l#?H:!\vd-d[H!qp, CuNI qr7dsS!*{$Ӱ9ل64yNHlKNtxߜ DH 's9lzZpa8㉽Mӗ(U}Ȧx?N>K6y2ٳI1IU6  NH8p"4󄓸!C,֜ 18׹Փe!n:Z<Y>wܰ9GyKB6'ސaAy62w)` a5>Ep߁b~C^tsNx.j!Ns?2۷'W"6* 2~0Bl{`\ [q|it1E Rs7n 9{YCR{7d`{/0o!%G{ Yob{̛.ho qN`9S='p<CY.tx6o/@GNg c6m0W8aCt*7Oy54BGc?@GA$M\.v LO\]5q(?`)IA@Nl+t}'䱽{ ~ŽObg+,<+^@)Ы1?dʈID,m!`!`!`!`#kd#%1 4>;ݿwVfY C ϛ7/ ov~0b~E#l n|_o>_T$8.^/vKftCG'/ÇK gPqTcvt[SWqi+6'8\O|S>6IP@=(}ɏ8ܪ_PNJ]1 .5J VbBuTN].uV`Sѐ|d2N/].ɓ`|٢LPF=ꓧ [ ڋ.e'ȯBt<EtCXC}T* Z>t]Ax*1?F/!+7 C0 C0 C0 C0*#WfFvb~.(ZCh 9mfnРAnwhf0 D{wCu{;묳\Æ _GG+ zsl@u#毸⊮nZ?_ ]xJ(HPϘ2xˈ˪C|գ<}Sr䉋z둯~O.AȾ'Lm&+`7DTCe_ V t  d`!S$*`O'qXUH94UPB ǦT}Vs-"{IA l1b~ +Wj!`!`!`!`#%1y2 #0e7x`_O>M4uqnUW-Aa@1?Ъx/=sf͚k׮~Uּ #/o#f'!P݈+Wv?ʼn%F<?&DG\důLuѥ.djOZ8u2e|G. i Kqc5i/;C9}B :Sƥvh(Y :M]1Pg  (OG B/JJmک.e<؆ꪝ"_uW]b̙;h*˧L a1?oaAm C0 C0 C0 C0 B1$aT*F̯T͹!`Q\ݴiӂ[o .Sӊ C(?_~X%C)#m\~,8uW UUy(>DO_4u8BZqtc_CG(]B!?M]vF|o Jb;䑖B2D^?KFN6] BXHl/$`gԓn?˫#{q>vCi(ȮO_Qe]\dR! "\TGz)OR4 itU| A]EuG;ԩ/O_8䯿dT ˆ1?ocaAm C0 C0 C0 C0 B1$aT*F̯T͹!`!`!`TC_ պTm~<1v/?@` ʋLUWqE,] qse'Q9iꑦ\|m#ҍy^=ؒiOU+"gXD JqCZd} W苃-bA.WiDEW)M^+6"*AȗPO\mZǛ؉*( 3b~Fƈy!`!`!`!`0b~!H,T_sC0 C0 C1u P݈+[v?@_kꊉ!)ɞ<=ԣLfѓ.:ĥi%/;|bO)_0iDž?|6'_}4G"ǶzŦcC*ƫ4H}t^$>uL#|4h(ǶOjMT>u.ٖG]q>M}ٗdWuW[4'73wP2LaA1b~ޠ6G!`!`!`!`@!_0*#W*0 C0 C0!F̯j]6T;b+uju~"=&2?XB>iBq+ 78u)'#M({#$8j꨾ʟM6mB/.WiCzGugWvC]|_&e1 .F4Z%XM&Q?_e&h"ȿ|)-$OLL:,rڢA$$_B#!{p_jR#b 92 C0 C0 C0 C0 !`BX!P1R7熀!`!`!P 0b~5TRA{_U{qY,N?=h#}yuUe ]DuSP@CaO:J+gmȞeV)>1XV Tcʣc@dF:ubc\_q?i'>a\_ih7iB.||}2B=B}M.i/_?w¡R`6F0 jܹskvF}*]ϻ%KW^&k!`!`!`!`rC $7Zwy./~+ B?B]EaUfy3 C0 C0 C0b~%on  P+k]_cR<\eqSyRc/*o&L}Ĺ#>&S_6&-*vl?G>_j_yp񉍸>E'.s9ϩrTb @`0d_!ep1hē`&ȿ& <<)o|ɿt !3P}~)P'^.L7L rx:hSS@!!v,P^Ea Ix(yrΜ繿b9WApzuo E~uF-W~W2bcn CwABW ?J֟.qM7lڱʫ3Tz!`!`!`C "o 1?Fↀ!`!`!`#3a FNu{/8B!$?2c.t;Fz"Bh<o$E2]*'T{*eCWˆcKBBr|paLdedGEs6+('[N ťOgDyc_ !.}B*`O""T:'Wi*UT|]Nm5;oÉ>ۤ`>ѐX҂bS|XWI.-1_w~w⥲޺ &7Y%6oBG;HIahحZɢ OBŗUW^ڶSN9irCwo 15h 7CV0  v 3b~b,i!`!`F_.B!`!`@^0b~^`6'@NT7b+O̯˃1_ @)țO/2!唉LPvЋ)0#.4؎}='8 e}.M%".ji.'DWiʤ/]J-jH+&*@lC*V#) P4<-CH3IODԖBn*&hlR ⲅ.qWI>?|%5J0f}tΌ}Y7&"~2,-1'_GL-xmٸ { 8=B]!nNn١U;έNob]@%#b~i0#W0!`!`!F 6dTF̯0hͰ!`!`!`C0b?tՏ'Eo Z*qBɉuI0ҜnXKG))|ٕnl+.W]8ш8cTۤmťtgNOiH iOZzNzq/io &gWz"_r?iOaG:JI;^5v'?!O;cBؿb>xC}hR`:1 Y]q?aNsM6Xۭf]g k]^>"Fʕ磴ky6 #/o#f5 C0 C0 X1:oC0 C0 C(_QȚ]CT7b + _'d]ū,хoL\TQ!-5u'Zʕ]'Mڢ/=_8Å= =]S?)i.lRW8$S''Q%!4AУCXU}:q:$/"}<5(|=?iG~ʓnlSe͛aM dU$'W4jT5Z17x"ǟn_8璺}m[p I+:R|~ ^e-~l,u+Nl3WEb~i+~ʎGKk0*֖iK۞_^ވesYV9`2 C0 C0 XXK 9@,+xK/Tx{dzMї:B]ժe`> C0 C0 C1oyFkx~g:81K-a]<|8ʄ.}ȓ%d%?=6i_[UF SF4X'? >F6H7>ԑy *bG0|4>.'N.e'`EOv|4I#C\RF .-ҪAHAVI}"jIcO蠏-DUNZj<!K$@|N'$όf3mBr'Pi_'OZVeKoX K +8VRb\&O8os3g 5\5oѼP+V;PŋͽS…7wo;S\sA#Vp8]uյnI}ܵ^F:y=~tv=w1n vnst>8؍o;~EC׺MkwvTȷ2Jǫz4vG^>`[7׽G7wQGdϛ7>n+jjnuv[mNn˭'tWE`#]XHgsnBvn$]Ft/J;ԓ\ۇxy9ǿzaie/\C?Zjk׫w6svyÇpÇ?^r_~u?6ҍ~mσM7mڵ֝1T [*r{QK3|wQ;뫯\Æk-]|Y\%nc<>9nΜ9~^.vkvssO>[ye^)_==u纹s~֫_u=<_~e>;e-5^7vwMy֡u}_x}䠲￯[;n!Gee]ØM7Lg+p{9k~;h!`!`!`dAY@,CහXaqC0 C0 C0JK0@u#'ṄσsCiVGӶqC ?:C\U<.'. 'lSzJh:eli'.:N9N"@蓯2Nҿ?萖|K$_#"Ï}ՓG勐2c8͛pN1Q%`R 椞҂b ~Jtӧv3g}:Sj6ev̧brM TTFIu%mG;!CPTwq' H>Q!E={qcƼ6mf̘.}]ѯ-Ǟ{#cƛlH}_ZWks1SV:̥ݳf}:!mo\x7ܮ &v'p\:G:߾ {C~X2Otjk!9{wC~Y[hQC|dtѓoHgGn SBD{NO?~_c5ܛ^sO׍n;Ѓvavu{Bu]MxId@_ݓo.ON7ec^5ma(#vsz{p={pCu]M[7~-`Fk ƹVJ-o~ƃI K{+ LgpBG/%20]ieLy\K\3w I-?;|HUf$&33Zrl" C9pRbtO<ÿ1ϽO͏'ȟ:eL]Oe wyOJDM6؟^ǭڪ~64\c?u6ڍ\ƍ]ZB_'.?%/W&^je3^ju%.7oošVG>d :to"r-?&=!?~+/b~Yװ46 mf2^\> C0 C0 C#U3*#Wf09z)[mқ>No,~n]wut뭷^1 [tzm_r%n}r衇}MW^yU6O?uwq?ot{ }'C kW_#<.Wz b=@?nN^dڵ8qhn*)U)Sg8N^zyO O+a+H'y>4eb!` F̯QcEWgZ|gW@&4eBD!q-(S""(<'(0r>yҋ*͐ !+Gv(B嗺+ʤCY2]DF](,뇜Ŏ:' iBuSgC|ҲOv;H[ '۪ݘ_XQcKБUZ(IEuTN(Q:Cgum0g|OWUcR%` X 0*P)U?|[˽'XnɆʏ?rؾӖ! p!Gꫯ9aywOgxϟ^/]~?pܫ h8=O\kٞӟ?P=Ilܤ>aפIP>{7Gށ@MF>W\(KeOw?62$9|6O_Afq'xPΉ_CK ᮽk*[ OϞ=;~qnuQ B\v-FG.༰?;ncj5e11Fv)3NM[p_6(!7&| fzp;08]c! /qzaꮽ*O.^;v%={.?ఘ=Bz}{ݖ[mQLTqy̯DˣRIւƦǵh<̟ןztt(zwMϑ}QcHˋkXl:!a0=|wg}&tw:~3﬑-?X-Z==jRN:~۝~ʉ_jV _AYCn|U['gxx8y1g.8ĤurxȄ:C"Pu r؏GO|f}Im.B|WѕMR< qՑ-eSc']c%4 B5V ;Ig%H 6'-_25Z0PՉ Ro$Ei[5`m7%*܊ E1wuk=2:׳,w 'o'Mv;q5lM`BxpQβ\{޽[6g}C cei$UVYշmWNO'zpJzE]Z9=Ԋ N{_sO$q><7!kЇ\ŕ4BeIݐ!?cǾ֛qn\YڴU[6-6skc^MP.Uxet %$Iqw߽ӭgCmI}'mʧOv~(a5up'yU}ww5n2i[paȋLFyig1 C0 C0 C1@!'b".9Q/,.?RCyi*6Tp"rj,O=27!OC<_|E C.СCƛ󅄅t.'Cliڴi8hcF d=n8,xKFf֨뮻qqP۶mqzv>tNֳaece#F_GOAٌWg=|yxC\aN,:szĩ0P[ B'rՓʔ ٍc3AGzUAKFMu8y)WDi㏸?|?U^e5Hvc_B)Cȣ2D쇂O6~/CGmW=ҔǧS&>竽SC:ե/_(s.C*N'Pq(x* :<WCdxOO4!#9uڗn7?m6ٸIFOgw'௺*ngTU߭ݨC[*0/bv'תU}tQtcb0Nv"=mb)?~)~cDj)KՁ^{zޮքpr> (_ݬY_o6NO!)pbwKO+Wb~I<'I'N?דOě( >*WbbNOkop_wcpSOPI_zy馭:Ub̘!۹&6wy'};׶medY8scv\~X|ॾVfXڵ I̟;ݍVֈC]C7ǹn/\ޤoO&[Eǚ҆!`!`!`C "o 1?Fↀ!< P#F:ʵk]wnBX?n8)z;!HW &MA~wgmGu%vinm nݺPA9s<`z8~iA-#ÈNJK\5@u#Yuzრ_p!Cˌ֤!+_Hx#_zSFǚ4qա,/q!/>?/U=G@KUgM&q/gQGs6PPkd!j8EHkp\>+arv&q.=|DlPP?G9!"]e '}F|t!_\7*ic/X4lA.H%#&I7MJePfofYe\n 17S4oi vgo]&3Ė|<}vYn2em:z7! Ⲷ[bbipn >A-J]rɅY1}k.\A>qE.'|;3 ;#&znwGܙR']y͌l >cj+q?2}rxlVSN9mQ(YG2[+IV-]~Gn)t71?_xegr] bb>fu5)ufȎ=:ҏ!qUiI^=H/mk/e!`!`!P F/ +6Ͼb1b~ C`y@(Y ^Ì_{qo$ F/FUBUi4-@&Ս?^}/g |bz#dqc;K#}A ]n6eG3YRAԉ#MWf'ڙH|Eu@ !Mt%NGH15`e7_zJhG<8m.ʰl?qRi 7 qBGOu# [0$|gT6 l ?) Ŋ:##*"'|9?٠kӺEFH|C~Zm޴NEe䃘7ڨK"|A~9[ʋU T'e]>v]SWvc ]~;S8$}2TQK?3c>t ׸C-|B.}+,*;S駟d11MlDHȑm'p`7ߐ9}IdgK^pwޘ9sqٷv7ƛt4m=Ќ8K2* oe-lv>cJfEy']~ť=RYU$时2 C0 C0 C(#yFy@#PÇ#BmjpCb@lU*+5^B!^=IW:_t?t_ƊS-4S}`Ҵp>)*׶MW`|Hِ~)'jYeWq.//b>ߟ8VômEZl>9|gWgseil$nrA**207lPެY3w‰ǹ6mZz%Ktߋ/ G+1]S{<ymLP/ 1}n;jRְcnZ̘rwǫcwNNL4oܤ7.oR"QxM{q7ƻQF_~%xDѯ|5iE'cܧ~"w]M7ބ@fy̯W)ZPb/:л=}z:qԆ|KtiӦ7#`%f$/G%ے/JZw m-iNoo guVٰ{5 k WI֘l,XǧLTL]>ቀ|FīB\>4bv`g\nqCX@u#K:z'\fрg,!_ x*g0Q|DT2tXGeQG &:RR}_-ʱ8C=.#'uT!zI$jTN *4Q0U*S@#貥vQFSO hДF_ ʧlȷW ")GWSv}@FdC!yir'DЗG ϙ`J&U 0`'$όL??B."~21Μ{z\5>?ܸ&vtuÕP\/;ѡe۵=ذb[ydcK/^v۷OuPu鲓L?qwaGn՟^trVPXb*7_w)Q&~'O6a'[')nf~RvpgPb~IL;i/åѯ n@-=Zٯ߱ҋQG͛5kjFyDEŃv-ox7Jm'ǼJv{잺yc =; (b~iװǚ_L!`!`@5G|{F_\ !Q'|^ ȓN:)[ΝݠAܖ[nt2W\Hqq tMg :~҃0 }//eB{.+;#\h{W_8-Y< f_ L?^w-«!2'qN:* !ѣG P(HLA0r;j`SOݻwH>آ``CK.q;C`sϹA~1w$jr{;ü--1w'0- !rOh!gp a~K/ucǎ b< )GqcHv{衇2(ͦ4oc})5W^ @￿k99SOuvˤ 6,/6 x ǜe#B}[Y{ iHa֖0y0ߟ )^|/|˽#r\9ݥKS6|Iܗ_vYXgh)cu'p[odP{wmkVǟ[oHRbN29E.UH[ $kFgpfb:󔵞M$لVX9lYؤs7#FM‰9xya1x'$裏vg}v$1~]vasuؤr1DŽ9ڴiS k_|;M1ѧO̸oy7}u1!c{]vB!߭ ESR6~}f0<>Wلq=|ovjwcšscx۬ /^1~3wK)}sF~,4F7(ՍuHS?f'Sу{r dz'؏vl(щ/=OqUPGzOrŕ>B>W2?˿ɞS?gHy'[t<`5 BH!T~f7ЫlWt jOVUxrZ>كk߮?uES9B$s!s;ZF>1muZM}!a!{WqzdN(Ob~vۺav<@X=4iSn#CeiB_9E2Ou;gxOQ&?$0Pwvuws{gx7;w?/cȐ3^|ujW_;yR~D١yJSĺ11Jdk& !hB̄߇B$4=IZgϞ$\*CիW^ #rB2'HCnm֬Y8S-4w=0Hŏ>h OB`@9.u!;>C@8,y| !+BϞ!CHӵ%˛ȑ#&_{@!y 6 mf ]s6Ap\^@opaAHsb3@̧]9B1c,LNGZnN 8?I!3?sL;Jsb~.|NևtڥK8\GdrN.(ܬḀOj(gl!'uJvYTٚ)H{A/~,111l{.DvsҐv iӦa,  ޾/z7B[!9#~!3Cil0oe@ o\Ts6ׯ11m۶ `[oO k"a1{Ɠ{& c\C:6kk1}ر(.'P?ɟی=cma8}a6A71y=9M khgGJgc/! {~b>3߉ sMƍ c?aczlK~6Wb>0onfg%>'Y lN}/?k&\s!PX_!PqT?b~ O̯#6_U!OOL|G> tDAqaeRZ)? iz/?dGqK.6I'ja:-/Xː? C&UoPkRYxn?-B:qvϩߞy-!z,JmܢqY߹/N*̿%K)if]zJ%̅;v1>(KRg%{Wu=88@wK߆g|[0< C|cBl\r!JC%3²ר x@W_njM0:zK?rأ#}?r ;[<`$9?46u~CGe@AdР5vyGJ˲~ŗSCN@m[ys ;TQ(b~iװ95? E C0 C0 C#U1*DziBoB7/HUg:1g9iӉ!I9,kILܹ̇'D]w5Ѕ$9 r)jNTdܐO>d7ypB /ÌS!AxE srZ/D>~ׁ< 8f{*US3y,}T )Ṁ068Ȝ:ܦMِBH'OH`Lt.X@Nm݂o0aB 6oTǟ'у2#q8dhƮk׮<@ 9C? tѣ'3v=9ỷ̌uqB}?$tx07 &C yO#ޭ[[//smr9s_+lׯ_9<&;H{XKGp!puL6F6No 'V6q"?q6GF8d.f#s.iMB+k |'. 4*^3b~@kF 2#P݈=Znm3RjIk_,2:!BȜaKSF>;Ic'G";GP؇E!"??Ghr:jeң*#ڇ|hnJBh$ETjiRG/4@mD!O%SG؏}v6j|beCqѕ$OBe|K/BDM3HàaꤤR~|zuS* 1SdHvתet)?2ϗ,]X]{u׶u =$\^A?n ;AԚiHG}6uZ:/[$I./b>'oE "~(rm.>3c>/?7'}ZFf"gf͚Ǿdyelj>}z˯4 ;v5}"Gx n]oZ'z̿sp,?^{8p[%EgucH:eR_bb>$ƍ ;xJM87*R-xq͊\x{_rS6u!"_@"m޼y892b,g9#V /O]~LD%~CXX۵k0$p9+D}7 F8Mx4r)2 NBnavʨͺ1z@: A2z,1-Hc[NNaAqCK.*Nj[KC̗1dZa]dh|?DXx SPs=6|r%> 80R{)&ĖQB:$1 HM"b>3_"60F!'Ia< tpD CRބt<)ۜ7c kdrlC|8cqDr8c,ԅI>G} a vrNj~lޢY$Un!oo͟!Pr)1G`8=pn1BH.C/ƺlC]ՁYu#!I\A] OÖ4\ɿ&WSXdS/Ыd#Wb>'{ʖZϟM ͘1ۓvzׯ10Wb>{W5W_>syBn۶m2>Ya_\,<[)uNGF:tl;Dzųڍ{@oԬeh;ާLo8qc^?dԟf8msEAi}igGy4-A]_TQ!mt; ILJo֬01BN4jυW+D8Yng[ ˶u缰 /Ї?eN2]:r;'3J iwC/Mc WFL?3!C)N .4\w~cC[No](2Ѯi vyIIMv;؟qP?$:/wOgqDז2x`WYxewwo+ lru-`ڨY4/~O 7>=#:`!Ͼ{g7SWQ|lf +>㳴k>uL C0 C0 C#犜3*#W UjLY$N:em6d=ǜ$ r$&7o$$Z yk)DAfr^"2~Hu yH& J"R!-b6@,71C_!!0C ::~i{#ϳ @e8}rh,"CbX^TO9$MK5jT 3'8ZdBA!C1bsQDXw>hwm'<>}Rrڵ@$~.DḊ&y2yD|ȮѝIWx2-_6@ܲGH:@ȉȫM9|]Ri9k`N3f/bBr67zǘ| Ҝݾ} 8Rt¼Fs8)wpR.E dWP "#10+`Zwkκ*EE19P̊(APT *﫧zަNOɜNU:uN[V3=oՅ̦Ns=RpZ~\!6=}&O'UPb>ko`x66x =kR|> tANFTs A=s)inu#&3n6JoWj 1[iO`!pj~3u{|v@e `@|@&Z/HpIty$FɺLrr/CGY~HeWE!6I hcyuA ^f՘x䑸-y7YG9/Q5R`Ɏ$j2A~DPFq'{uNzR„""W<^٩.O=zTq(.xߟ]` VM&.}jZUM'rEʒ%K=|iEyWH9*`2eʷȸ$|/}We {0u귁,Ηnj 9D1 WSRdi$Opb"Uo_Nf!"}v/*駙aXm+9u#E>M4\ %h . dV[]ͿrRB_~N QNѠ/kf.~x;̳^{'sAsLOxj3L?Gtظ9ɼxq?po'pO@0kBK }0}tE7iڲE_}m{.ɳI")OI'dڵMm|*SY*?UWD͇!`!`!`>_z\;X}m&$DN Y]v$&CtPw,IM9%wI Y?#4ڶm|gٻk׮恀[Q8?y|92hɿ1!7i,W41BbN̯#ΒS!+r:0QHU!{!|sj6i"{ '|6vp6vHiy6/ox!g HV1Q6B4rÆ n-l.!RaNSg\%O?N9<"b_lm72sID'3زgH $auB8-v7/<~ Tgt>~えl!>oI ѣGb>i0+/}`s 1'/ B7* 'OmB9鼴5!cI*φNg]euv >AtߢEI|ԝmnqʼ+61ng -og&Kb>sfYX۴iuH[j=:l*K;bU|'Ug*ʟS&OWR[5H'!&@V,S{q!˞|'Eo) ɧWc*>W!jj3{μ˻LIM@ P|iIWS!p 7L}=piKI",T1|iЮ]Gy'OYxm]0 C0 C0 Cj0b~lQ "`"Ur!c b&dEH=zQr2S|@jHM qZ.$L6 O>tiӦ9H9xӌ!r>dsiwm@ԩ릁쟭-$3~9]pIp`ٸ >3甿@ʇZ1*K3B8r&cƸ^{ecI)S!rϑL )BD$0eSwC \B&!C‰l*)I |aoyД9roja#co|N |;餓B.g}fXI³چx "YٔǛجŦM"s߰F&6Eq>D-"%&@MB5i6/@&uƞM_ 0rQ. -{RȞ'?c`NZ)Hyfr99iN'N INR.d^H؋-Hcƌ $OLNZ۷o8U?IJb>ssaDEӥ9jMH b/5NnS$dD̿N= Ѽ,ɅIi֐9Q]1Ktul E 뮻nh6c wM7{xiWlb`ds8d}tϟ/UR-=@;vl 1A߶B^?`t1½曧]U|69$c>4[l-l4M!_"Eg!>mذ L F=(F̯lҸ@Nqg"9_K?79QJHUSQFv҉/_)[(zt\#jGJDTWՑ"j*~CdrJOW0xu2@cQ<@$R&/=xiiBi`n!$s' >G97Fj5oϤf!do -(;UlRD_r'֭fa=C20|!|NBK1bD'6SON/t3TyHyFG195˵ub~׮]3NT/{ O^x!޹!BgSxʲKl҄B4w|kVQ(1K. 5X#'b>o*blҥKƩld#EVDb>xJ d`kk¼yF5>L DՉ6JGmfd Hq^d_KflSlb2t/ (qS'ȧW_~2=`O¤?`!K O^ۧtM(w}U/`ue?\Ur:]uUu'M6Zp*rРASN!> A"ɛ.RW)6p*?t6w$!_yo9Mm9nְQT?#aLy WB^> ZF3g yH%K,q'OvF f˰YgzYymڴC?cH|N'>dal (/1XرA(f`Ha^8[nSSq Ly睰66 o@fM=Вz[; phUE~u\&sϹw9XX~Y&Xxx≰نOʦM>`7~p}Iqoq{lZoԈcy>BYlbʳ>6P._][\Cl1I5mҐW^/ e1Cz%u\e!EFzeVm?=iC=q]oʈv5E|S1Щ/$q5>P;O5`X (r @}_FUE=i RV7ϦyWiG>I=B,XUUߚTޝD^I%EЩ|jBޫ˜_X`Zϙ;x rciRcebRԴg z##SS^׉瞽®.=T׭#-ΝN8Ԋ7= s}AuI'/q_,_5|'r>W&jz`Q C0 C0 C0F̯Kic XQwIbZ)|997tZ 0$ou=zp!^}TeH"D %dKIA%&LpG}t8!DlR|r?DF;U%P9"6b}lb>d6ND}ə![N߿'AM Dlc*D 1+5sqguV:ty ]tcC*#* ˺炓 ʦ~m k>R(1ĉ_ ݀Ę{a+R K>&x`ᄚ)w:ꨴm|kަZz1ǤҐR=橋/AҏfRU|6&>+"Dbȑ#ýʛgyF5#_waO>׸ڶmN?b~ϰOvll21 #W(F͚6G>_/{H#*WzxRlȓB'=etjKKM=eQ,zG/zlzGW,cOU^~zƄlK4>./AAh`N "8tj'b0G{ŗ y OMl/?cj1j~RNS?q|l_`y#R*_21%7KRQf>EgjH9gN̯17u0 C0 C0 C0 CȂb*C 1?Fcb>'BxٳgsJ8'ۮK.\'I>SS~O?NjNG!qzf&!r@ q:aT'C0'Wr;,l|hٲe1|Q0m&MY(E~lɆ0n0כoy \y[!x:v옥gAӟ؈7Md<O?4/>e!Nf5kVX R(1 H<ڵkgBLNgnxސ'd: NygR]67@f@uuq@~ě$$ٔG\믿g„Zp~IU873vmY7,lmf&Xs)7JFi(0yLyO*c`[Cv \>g{$yb>ܳ_~ *>_KƍRC0b~Cn r#PG=ʼnbxƺ+K -6rzS-y)C^G#6E;D:R?갗F_S~%tT}QǏ}\~cfC1X3 cp4` v`yt|l/6ɟ&:*~IILQhRV\$ @[͝p&5 0i/aJ|-GGͳ1?5F̯Y0 C0 C0 C0 C`B+|hk> #h|L_}x*sejp<$Vyڹ!A6$ܶmp*;@څ )ӑ9 .$mN ̞=;'z+ ".$aÆB*M $ .=T_l%߯@yRuHENR^gu "C̅ !ER r4r2СCӤf>:u?7%~sΐ~w^b1^ ӧW1ԩS8s߻wP`C8!=s9og = /Bv ©1g~eco&`[oix)cLnaјve@צ6@4t 5 C繇|Lydz$O*&J̧/F /"ܓ0o޼^tAldNyyX:w fe啡.S<'鬽S6p_@rD3~H|z n sANn0gqFXǨg̬T%1ܸqcdž5pk.N?S^xqLx}VDb>,>>k~6p?J>糈{[oމfϦ>s U>Xw: [K @U0C?1qtqb>\d> ĪOWV'c+">vtcR>!Xc4mqa+_j^Gh/7~ǖi8y6?}% E 1$֓ tDm)Rt٢[Dq/RDzKQ#2~Lت&_xWm?λ @IDAT')~hÖVO_0?kLjaF_|ӱ*5_"Bޠ??RonҧՈc!`!`!`!`@e"`D|#`1 -|Ȼ!mB4?qZ1$Nn!cǧB^4\䤜NhUW^y% ӵ#G '/Y$9!C,B'XC8c=6l̩ ZB_ W2WG7p , u =X8]?΋f;3a ڶm{D ų(é1Ҩ\yx3@9h<-dLĖM\B lyaθW!ƒ 1_W8 Dt< <y9i{ 8{w8aMl@alw-Lw!{0fsy>oP̆_01b>7'x~}֯yYK/}am`XX@! qy5yNDl\XSXsXy8Qg{pyΕgexsπo~#>k#|/w BƏtYkXSM DՉ6JGWFg~<eq=4pF:zeKytEeٴW|la'Q=eq'XjG|x6/ yPV^6d|ߊErnXB;JaqaCYd{Cebӥ ^@##yOlßRVГW|yUVɫO&Qn&xRR>3_DM7lB؈;ʆ!`!`!`!`@!`"A'b'h|LDv~z 1jN.@8]'O.%b> q 3$y!A4 Q>A҅\ bBlҤI o B;dI@ i RͦHЙ3gB&YV}9tMk cI!'BFVUW]5'#+!B4 崥MϞ=n!B,@$O|Anbs1q CNGQG0"FE009<@;|țxKclX (b> Cztt3&¸x>AgS's39Թǹ/K|A{ ".cɅO;ȵyijA!C<& gl's9{R8-r>d)cGgg2œՖgN"m] IlM 5_~|D},AX#,ؘsIt@Kqpρ!tW›Y\gRQ|M뮻g3ͦ qI = ^u1`śJ,ǽ=+1|~yA >ox=b ' x fmPkk|6UՉل{=uuu2FiRO#^O,x7 5b>JӦNB@Jb^EP)N2A紣.RlxR|lQ|eK|jԉ/MJQ^m!^yfgC^\oG1*>:R}i܍L)5@V.6g*@/"=yŏ} |4Mǔ6|+>zhK9_A*>6eNo={(Lja_ջ*5&ԛdjFf!`!`!`!`!P11@iX 7Du?7o?f75>)B[A>EmqiRC9r!$IwC!@l AR^R8#'i&"ARTS 1q2wNwXDP}zN›ti(/R/uN^x$'$11L{y6W9=?)o!3p_4__o;(OŃܱheCE/ml)i} K. ψ(zgyHƥxÅY1= R|0Оxφ66{1z葁+e]ؐZG;p`,a{Ӭ=` |'ugu xDl0 f$'+&2}&V6!0%}'deC27b~e"l s|yڴI>b"=&:%Z_IGy&-qIOv訋uWFW_hRD vq`vptzvUA/D \tyu֫tZ%qVn&h:lt#(b/$ zMbP bRT=}$Fe|) O}A5&5&P?)UJ/O{7痏lS1حf C0 C0 C0 C0 CP| kI|JQb&NeM!`M)oR)OzI?zh׾}0M4)mڴq\YI 'ݶ'Yi}-d'ȯ‹HK7R}!oigImb=!Bhq-0 ~3'l(mn#8cǎPYq2%c:̞=;!2u|2c!1D|%İ@eۺTr;ȿ{S_Syq6}$}k׌>@ҞGRX L߇ýJ? b'O/) s=i\yσ36q:opg<"՗MMгًA,`NijB.Ϙ[桼mYU&!650לr_gB>xg{|A٪gCq,5 Agm E{ԦW午DYNV[PuN};񓱓ϦUφ~a#tjK6/b3byPFeǗt!*uU?qXN_v1ц11q] 0y|"y<"ت7eR.ŧ=my_ eŇP^7eIW^TB@̟3w}JK&Y#)UJO=H9s2b~ b#La!`!`!`!`TF̯2-!P.72b~`F%kli89k Dsr4'J|L;LB$b~u0 C1OuN#P+'[ȀIpIA1yYu>ͤ.2y.ȿϦOq)+i_1>(QLW41^}6=>H\_R{%mi(x^F _!JT[g%[>Eu(>zT)&Hm59CXƗ˖>7mtGKzROvq|1=V`EpIBIN13>u :(H`S1?4 C0 C0 C0 C0#W(#旌M]1b~]]g10փ;mu{64FOCaC0 C0b~Ao 2k|Yy>~HMI'sa#1v<vg~3l$!OzR8)z|Ǘ6>-BI=>:vWYF/5 C0 C0 C0 C0*#W&#Y]ha03=~xwiŋ/ٍM['0b~V!`@-Cl¬+uϛњ6iOdV4!_8^bNٴ_ĉL|/QR|RDPUNE#97L4ҀTNRO"xW_ԆfrEO>/蹰 [ vKI)ƴE7UZ_W>WI y–K}XMq忁׵7ekR`"݂d93_DBoc _ S!`Eܸq>} ݥ]wVJ+2 C0 C0 C( #旄 AՃ{uG5b~uπ7*#W0 C(/F//RfgT=u'7:#9_ ߘa'|IlH6^t Z=BJ=ŗ^~PV>.cMboŷF6U>yqK^tNj Jiua' h+dGת` {&zKʅQ|NqC~Ƣ?q|c5|9GԤ!1&ňUE3~popM6u-nv٥k߾]%{gݲe\]^Ts/<|x7q7n7ܒK-Z_б_|A O ]ݷ#J6mI~}\ ?g7zC^~7~n=7iҤpCz;CW _}5}ŗoY^_j#gC0 C0 C`EE+۸k*F̯3S2b~k DՉ6 C0R1C"P׈+k4xtTuQ-|cS,5meG=uWY~r7m*|U@W Ж))AJ]<^%_Ms僔!6y (PĂF>˱ `􍎸N`)tk0,~B4ő}l~K'ا 淝;o|,ȚN̟={e\k6q-jV. i[91?G̼JXtϭ뮻ѿbbozw)vZ`|m6(~U)jA+ʝ5"m۶1uN3g&MByW y!N^{> |ws><4#ۼhw)ӱ &+mi}m\y5o?sOC~!`!`@-Bh+F_!9 %K_uU21 6׫W/\ua\6C0 C6!`4[ F̯y,M4o 낚*9)z8ʤԑwr\[q[lbߔh#⫎52>i8/Q| ASc_}mVch8C(xG1)=e:דG!ǓK l yʈڐԑd;K;勲lʊ_ >iO;RD2T bL)^_|ui/l]2I_$%J3_ԛ%Ku,X~izHɟk6xҶDTa T  vzDߏ>y뫲^rzםqe7b' /YN܃*j1ܹnͷqײeK7PMm yb={¿ʫv 71b~]I!`!`!P0b~/mGum!`!`!P1jh@.5b~|Nū" 5 cKU7{Y|URǖ>dX)_>b?(yI٩*c 'l}2>cP@pr"b#$CDR%G:O28PV|^}R,GeR8|_ƨbR<#ܹ IB HyIRO??Ro.Wb;~~-;q,b~!m+{r_|Oܾ 0> hq]dNr T)%G]Ie;rg:o͙=_7 _{Ji) J;ѽ;~_UrJk1?$znĈ\64`l0KGC0 C0 C!`76ڍkY C0 C0 C!`7'#C@5b>͚_C ]|eTqcb⋿Ն\piÆJS|S*Ć⣣M*Q7"'O=9I C LT)}f>ԛW1(a.\&`+RsXAvswwj1?4i۹{t\߀Сn}u7Ǻ5Xmݶq䚩iӦ1eKs/رCìF̯d4 C0 C0F̯sSj1Ou0 C0 C0jF̯qSb25b~z+&/N WTrʐD WUiZ( ^$xQIRۓG#㫞vNvq^n4d|6H:.TqiN6%E4>|؅B(H!~48AjUN ev;_Io/7$K<61z.Q\!*BGՓ*&)u! Y_fϙj5&5&,Ű$t:(`T1_R:4wM:}?ɲ *GEc)Dr}#vC!mo;4=}ɧ!ȇ]w, yͥM%v<|>W߸/c9>v貃5*rM̏RHb~U?q{wܱ{ Jl,V>[~W7n0 C0 CJ_h[,Cl]:ߑT9$HyG? RmOkru!`!`!P0b~ݟcaE9i@̟ge{CLY'׋L3_p#U?j+I<:',δφ>JEG|>nXOt>j#_*cX良OvU)=:'P˟Rz$OY5>!淝7˖ t3|aNUEїة`×#&;n2!W-71?鹐I_s!? !/BhѯQF~]ۻ!gO1KϾOU1kym>w>vhOqaov o&k:{߷K.sc|٧YfٳgFf͛4sOo_=<7ǽ{K{nۻ6;kuV |)ל9s<^1cro;I'_I-r6ԍow}ڵmfk6~r͛7/Exeur[nscz}3Yw2mNnܹ?tM6-M /r~y?SZllo??lF\O?yӽ?nkb- v~x6 \癹yW3rʉnv 6?ӦO;u]tхY y^qq_!_?_]v=oHFYf?%[ᆌz  vӧWL#p;k3̽ 'z8`po`e#ߠP>A? M׫>vz_w_~?uwc-Wo6u{1G>*" gIb~kN&W]~T~U\M\M;m~az{ԎY!`!`!`˄ *E%b !`!`!;F3kaTu_^=b~#=~1_a|b!?F#OlH)ˇ) u*ˇNm[`#;ʪ CG|GGz.|>DeFT1mU]ABBEW{"t"SߴPQ &A*;lwL}|*>u^%b-uqS|fSsI CI DR߅ڢjS|n`$IWو)s!DŽ oknp ,H̔Mݰv[iӦtϰcw;}4:6N;9bޮZwͷX;wwF5jQ Y裏s_{=C,4i}E|M+wɧ'~5W|Z31^W]}߀pYֱo/wM7xӝsy%1\wuݽ7O+<3~;S=aZhnz׽{(QMCꫯm+"~>Y}>bX&] ۪ӖR4y>̳uzy7g)wp N .ְ ť^szR-2s!= 8s==p;]+ȨSܔ)SQAgȐ3-Y 8=S뭲-e# S3C/'|Zl- /6e-/M1c&1W}駸H6=Y[+أGGvʔ!`!`!Pn_n-#hX0 C0 C0 0b~Y Ck|Yyi_ !֔!K/(xӲC/;NzG1L^m|6ĕ_ 6{W8󊏽GyRP&:2⫝W <񉗷hy;(jH|2 DeM8kѫ_cKsB#V_eAē=vԓr!U|Ư1PP{7R鱅|xqΛny>l IY7IoRn|!Aޜ6eDK̇X;v6dpz=K89RcNIgC%ydn#<p*[o 'c:kVYO>鴐;tp?ydРӋ}Ew%?7T7q@lv w}0=앎U?%S!ϛ7/7nؽ5vt1tA~s7<>tin~u=©Ϫ+||nɒRvڹW^}r[^iyf8{ͷҭ[Z5h0llOǎ}5j(mg.\:lYPa„OJN8ō~" h?nݺ%ק11%#;oL}5PNw>62]&I<<??dpz9'x|NF1a .?|Cs)gSNn?}/<EF/d N .$z˳8sϮ2)nۯr?op3^Yykǖ[mZ|lƐO:s(7s_Giצ͆W=R30 C0 C0 0b~ΐYCR'+nsn!`!`+pE&|5ŭ +}y{E+|iC&WZɓҴ+چO,~0ʇ@]#7kڨ4/, ,&\ez+O9-O/^xC>i/W^lhOeW}|6C1aϼENvjeep$y2cH5aرSM!;|%ӆ DFzc \ş&LiO=x񇞲!Oة eC5j!n,”d*5a["ԛ%zˈyϗO$Vel;kǠAݣ ENvm;u5M|D[t'>cv^x[uUgyޝ|ndqڭ֚ vyqEG^`6(%3r#$w}Gr˧<нƘP'!ϏI3C@8cݤI dɱħ'Ch.t&zBCqW\qUc|W܇\RݷOЌ\z/I{oQǹ䆜}Vȏdt8O>M;m)WxAbAi>Hw}UW;ΚO2~C!MO+yݺ<.Z(kbwםG殹t_ɜ}h#ʹo9[lZeCҪ&';p76la7ߤuސqץׯW_}ox8!_F/d S?MLkhFk_*}|'[Æ:mUJwsu5裏 f}/Ro`#Ir.iě7. GVb)S!`!`@1?gȬ!P1R5熀!`!`!"`pmȵF̯mҸA?? p_C g 2*cc66h'&U]ԣCs)dxPV|R豗/ B"_jGY~vħN?Rmpj@ IR|-GGͳ1?p|NfwmHycw]&M&t?)\(G|0|>;}nq4kp}++ӯnkCos={wYfGptauvǿ*HL/U4&&ɸ}۷W47ؽ mK+Wi˪jO=$IL< ~Ӷ˖.s3fH3-&docA3CN#܎]|Es<8}otӎ??x+믏 uYuN!r d a/)lԸޛf{2tq6zk;zN܃!{'`PV,Xx-O=zIYn&Zkz5k]:;RB̏Iu91?خ?~t|Aռy37hg&g,y!`!`!`䇀Z+ Yk!`!`+*F_Qg]kzV'槉9p*~4S =)ccl Ӌ?Y~Ce&/¾T=1}VR=⓪^yigTyW<-8Q? Q٢;D,ȯbɏ_+iFPG^)ONĔ_ 6ԡ\d|D z`_m/XRO4Y,03RqH5b~&b+K?As*dĈS'nן,|YML?An}d4dyN^k5&D ys=oHwǹ:6}xg6jg/O ?ݵk6r˖-soN)e˖*ʺ)S'1siC~HlQ*qx?v>ƴ"9&ct򔯲n>)֩ R .O<>'ϵ?қN?PwuWo~G%k|װbP̜ۺzN/>O}& "2`LVY-Bu{=ؼg6RH>0 C0 C0rCeֆ@e#`Fv~oAQM {em!`@#`<@#<>_UXe~'/;uv)jFxBǎ _@~)TmdN|6Q ~$\ƥ/B}2b/m<圅`!k@cC^Rǥ*UASG,叔:PF(Mc!P/rK~T]oSO",HC'O]C?Ki&5 &y1#gQa|!'bSt曯0D̉e5W_箻Ʋ>#]&3{lOAOb sJyv\'8i߄iN&OP 111?x\Iouq0\o9xsY~מ vloΠ7f#cFB?o[wɓ'6;طIorԦMȨ"6Wu;W+t-jOGi32 C0 C0 R0b~X!P}H,+?-^DuT~ 6 !pM["믿QF(NwO[!&ofumut98k[c[o^}5h~}6Q'34٥~U2N.9n yAh+,!JT>p{;nu3fmt|'M2 UM̯~;]wcVOϕ_[oڍznV"kҤI}-8$H$@IDATb /;w{;MXSK"ǍrYvw궛2eJh>oXh7.* , k[ou/.zrεr!sUI Y13}wk]|=\ZUW]-p)~:D>ɫ=>Dؗ)?P ⫍Ƅ?6EG;lh:?qE:/uX~)#$'t*+E |LȔG6Qd68IlE7DfR 88143I0qF̯ɗUO?^_twtML̿TO>u=?<[c5jVzNu=/owAˉs{ŗB%^9/Q!9s7:뮻nw{W\Z2*-.ug1=ȣu^wUF#F7t_~ŗݱƶCIJf=[b~EsLo۶{c+ٺYiB8y&l\b_9ߑw73l?;ܿ]E?s^뮻{1n)%. 㮠*1?n[sD7f̛yIoKwN{. BN:PȺ@L #s\{em6Md!Y0 C0 C0rGcf- Dn i?o#t;),AE^1?;.-ǻ /пimw駇~W:fVk!`1?+5 :L_r!SA$FK=yxɤCGY~HeW:)v/uPF'Ŏ6p'6wzu3WcG5dDj\HJ%;璨ʴ%?b"(wd/6~W:b#;I%NDxqVxAN#jvė4g_blRp1 _b>=ﰻ?rxHQt;}L>|NyiӃwn׼y Νz춷C[nx`j?o͉۫>\֏B )Ouޭ2*+C= >7jON 8-G@*UM̯~sBn{ahHYB1ϵ?#w__Nˊ3ɓ;-_zqi뭂='@o7񫉡\|;m&U_tхndž8:?}~J/k K* 3|CsRo?iٲ{6`9e^o΍~崣B*/rY;@vz9dM!￟m7e⊫M7ޒJ̯{$9!`!`@^1?/ج!Pi$nd'W5YyxCݰajl_ssE}͛7 2]7OWv/-[#N;4@&+p;Se5!`!P0b~LJCkִq?QSę*~uh(s;VJ>ZgNP|Rl*K;bCǞTyOpP$;(:N|uI*>. h\'_I[c}`b阊?ol̞3o.SeR`j1%w?MME x+wnZ7j, i[RBuڵuӿ7ovں{Bpovȏ1cFoՖn 6Ξ l?^{ut'so׶mרQC7|7yTN:>mGfƍ\V\\ ܯOν? h3 >pG%mg׵ێ%K܏?fş߬Y3Lg<*.(A WٻbGE >ٻb (Ee]&7 $BHw23ά9Dw9)5SMC|q fw~koqRҴw~gc8XdQ1=yȁ[lQh&/y ok]ߏj{m:mbcƎ|-kڬM}޺ XD,{$yqGpGpR!RARCK "ܹs]t͛۫>\̽8tb~qPZ>Jύ9CYlY_~n!>rڍ7)^pGpo|Ͼb#PшUVvpAdrxԌFjh y''Q|U.OęV,1#i<}էŇ (!8ZӬG&~5'bxN_kK~p)pɢ{hqLJz-"R\f}Odv| 4'#mUGz\+@'BG>qcnʅ]"HK+еj괼C:@ܑ;˨2-Ï6!zaW+{=;C/f+5[Gʼn-fr+-1;Ge#ۖ[nMv==߹nƜRi nNƋ{졬~۵eB:\zwܱ,w=M|AjIļ_~pLR׃i&Q|tA(8Ҕ%sm"_ %\~|io66`qț xBqe}~ncp:BO?T'/$~Z;Ǯ᫮?"\Nÿ3(i/|58{E|iw./{b>.LxGv[; y{$|8#8#8%B%˝:p=zo믿\Ϸsb~I+{J^zN>dkܸ]~ ӻ=@^pGpK\nO Pш#5+\ #pEdFZ#iK<etN~BOMO~D0'㇠"'keN"S?+V^sQLfm)~R|Iׄi#,4,D:m"cJ7XPO"@O&pWc8!ҧDhIBa1NɍnZL>ss)_Q3-H[F樘OآD|DB>oKB>ZشrfNo׶U,Nlɗ;8~'i7rd<{A yJb]FW^m"۱ʫ/dտ[<]'g ;̙ 8pJڢ_ qG~~=A{#7xrKl{[N{cx>cƌ>Ȟ--',um]Ru Js98 z,'2m6|X{qC4mv~ݰr]ŝ7y7n; y׋j5ڴrhav!Gػ=$̛":oU:?xZ^=WD)y.c]sy6v|z{M7/@lF^^oּYx>vE:koJJ?'<>铜IgykWݻFwf.1I[\c˛gW|;9M7$^zGrƹ-@1i9%YR\R5ⶼMK_/~q?yD7sK'b~yGM#8#8#P"_"XD*UJ|Ȗi=0B0-оM?ˈ#<ZFg5~ĉ[oٱk5kִtb>>|]{φN+riGpG @E#I.>I8adN@zQK}/|hpiu1VЍ}le.Fs +t_8ɥUOzrHI<?(O5aDEJߛ\&,&E1˥ l ЍcV<8m|ՒGĐrah>؈(.rQ/OƨZ|THp25o`Ө6-u ufebgl'h>mKB?5Zbɧ;v1k׾m$B9)@ ɕVYekҤqqĉmVJ͉fIdΜ96jԯ6uH6oذhZ9QqF lUW_x]:-xMe*ۨ%1oj_m9[jVΊKu1bꂊ|?ΪVj 6'[wvڷoSrtժ}Z+^wCJ6/T5k;{N:ӻ,aiMf={}P$m;{jom_39V;ΪW^ ŋ%WsQs\S?;m~ ep֨Me_gIwnIs9#8#8pb1rG,೘TQ3gδ7d\f^:th<8Zkp ^А |_K8->hĈKVZipڶ;ۿ_c1ةy3FdOkǦZj_:$ظxO>%nIND DIkE0q ;l,t칤u@B7['H&}lN>m*XTԆ*>⚰S_XBZN:}@ATm>h{.!_c'gvzI=Gp묳 /,tbӧO;.xG*@;l 6Ț!C yoњ:V6h xe-uH={|f͚Y^3Țs{\}c@>+؝!_wuv79lK.v 7xxI&E8'C UܹsA(ayh-b;S0GuT|B:اd9'~W_= t=r p0 y/8ٿxEQƒ'̾5s@n]tQ80IjxmW\I7xn&!W\Ѻwn}+Ys#8#8 B@q#PNh|lؠ.O5.ṄW .11|e3L_M /Y3OjaC5VǗ? !z;cR{X6ʣ:Y"\K,>谕Z4R'ZFN])b H8K xW }9yjsK}AP8(Vd+M''yuji30r)7%2O)F ak>h3:1?}#GpE#SyW_}m?{EZtGpGpGp81$p)N_/G6NK{vq;K/s zܼї!60 sBm$ZR|HM9y/ofذaSOo+An$%s;x:uoO#P`m-|͑0 s= W^S9 H sG~Gķpoǃ7p/Ds3όWgGpGp C:G| PA8uW U:q͐TC'Î/cC^G#7E"|ɟ 6Ca艕>ͣ>9ҋ8وy1V}Zy/挎%$0_(JŸX+_$͗&7\QTOb)6DyU(&k&FsT>S_ƪD>pb~f ?. i0s$-GCs ;1?sn4:#8#8#8#8el/' ¾CtСC$C+'N4Nmv?NT3g}v'ʱFOkawuW!wvi3/l+R>b~jlֳ/߉wމu0 dzXmbC=4C!/I<x< 6'x"\GpGXN_BnwozDG"'x Y8Ћ@,;͐T3W'c?tHO:%S\>7U.#<ӭyUN_~ͭ_ {% @R=}cb R :D1F蹤Q͋^rhט҅T1Zԣ%1|zyGƥ\ wF}dT}|B~ި?."~n NϹ|8#8#8#8#!N/C#P _ *ܹs#zmVZِ!C^zV y2dH]tQy#I$O_a"!wp{ݳ{9!I&vꩧFvnHOm_~e|`0B?'>` !ꫯ"2}1kʴi 'tσ MfÿsR=oHOėoZBYcĈ)s9昸n<`+!o~Kp~BYxx@ bIw5׌S{챹)0zk|#o5GpGpaO0sB2d_ /\1\ zxb#G̯u +-\yW Q~KC8&}jOȓW}|8 0Zc.97FU8 ؗcCe~U_6ЩZ%+q`i>&N>‡1JQ0D5UOclNB=H/=>Q<拎|˘zW}UQ}Cl'ʡě F}dT}~mGCs ;1?pI>Hx%1G‡} N0.:#8#8#8#8@1pb~1@rG ;T "[V|~R*~/)blh|gѡ}1f͊'sr{v+tF;0OXrI!?Z+d|+"oV֢Ex9' '?vqydMrJ=|I᩟xRk>`Bk}8iuN8;ꨣ"AC\G믈 >Ht{}GsȕyO/[n6M74L<\\^{;>Tiv#8#TZ_i Pш<ӠAC5#\|+%+X${t~æ~hч|ХcrHT_yT_zėͭMnt)wZczzWЍ}#O_k?W}+o4"p`cZ cU+G n_F>HK+tjzB7[Szb4/V}8c_*W15Wả-'O>KB nNHF;6Q~? $-#8#8#8#8#,&N_L=XdH :17sL{G!':N2ŮHpq?xkٲerIy0 /4;v׮ydœϜoH~ύA_=Xc -Ⱦ.井z<|x*l< y\2a„X+f͚!iF.nWNg}vi1ɓ#+#<8 7'C@GƌOɿ{a? sJ>X(b>Mo6  OZ/_~y|"s׮];(gguV|GpGpe@#懷5_'Gkfĭ1}h ^=cZk 7Y#H*haKuxU=7Qn…_jW⨇?;B}'>"CX"' 9OlPgLZ(Vn&ϭ/)>T_4&gzmj`Ӆ59eg.DZb4(Q5Тb~ހ%ARn`2 SdZb>>c> ub~_'gp🎀#8#8#8#8@uƦ"[8 駟/1jԨHH2dHz[6|sal7 ʒ S^5 xDK̟3g曶nYix=vH̘1#%c={{ըQ#bG9~ 7Po{7ޑ#F>sKl7y;''A?X^ѐ^o쭷ފDg IJH灁uƇBVXad>cէ(?m1:͘K&qus1ϜfU_ui%Ԋ)S~*'ol'^pGpGpGpGEX~o'/(~xrki}bhرCԩSemZ"9@/Y_Վ;H_sε*?N:a~8>vٕW^ ma}H o5jd}Q$7m4Fغu6ׯon<)Wsܹsf?z-lKK7nzvfk8x_Zb>DN׿袋#/TW.#8#o7,9@0Q%dCgAI#PU‰uyٯ႘*˄g .lʹ>1Y<\+N y|S}T/[ tpI4nv}^T֙P*^|!,\jXYPkcWN@Q} x R6Xv-N_/8 }6'C^eU9ސ9ixې9EM6W_}5I$~)?_.Os kH[mU\7'CM\sM)-1ĉvwFwQ+>ej|^zb> x}![nȚnpGpG@81_Hx?*15nTp͜8$ahskGcqFG _ y  ~N07lr!z壯/56br _"M\=9B>Q5o|J,J^$I19pң ˟ŨWtt\W>:OKnZݬjѦq45_W~' smZ1SN,=t)g-)dc2̆3A6 ڠmaW+/81UGpGpGpGppb@BRFs@d˴* _Bo`Ć]ł,:os'o7nl"񽤳6mZqonK{b>{wWۋ/K.)vMwtGpʋ+?_jpb~;^bH/3-vl|؃CԊԎ4t}'wZ>K>:ԧU^i^K:隩<墯zc.էE4Wcl/&R&H.-HfM;6D@1񴯹(f"勞~Z_9sC6@EqKQ-"ʛ-I.櫜5wZaC_6l]8Ӧ8oe]l$VJF; Q~?0R>:'gvb~cGpGpGpGpGpb~a |/$*~nG߿Tន!t_ve1d$Np iӦtN׃ \b 'tR$￳ԣ\cF6's=~Nϕ~Xç~Zbb>gϞݻG"|nǏ۷o_;C 駟ng$1tʔ)CԾ袋"^5Fi^{{カN;OCTYNp%#yQ}[Xs>hDkUVs/՗oZ^PeɃn}|J%$[\\-BRO@+䇍fDg)ŸM.ȅ^rGTO,6Gc37Opg6Dg*O>ȓW^vLZra$[ ?0t8#8#8#8#,]t@Ipb~I8~5D!bsO͚5+8wEbxI!pCOz˔m'Nq781bvmIol:q96(,`ȩꫯus/dw'ƀ?㎳*U7|P9|q n9M6~ׯSoa<ѱc8n[o%!sr=v{1[ivu~m;裍S=IYa=˚5k2ٖ<|I{gwa KKgGƛGis7 oh޼yǎ#8#P pb~%t_r@E#oȆ "1d؄ɔXOXj"1>6g 0ߚX+3N&(VL^5C,S**VyC7VZbCn}bJ%LnI hLX~,_|RW"8͑$ss."h~-F H!~\֣:M4o b~f<]lnO_vX{%GpGpGpGpG '"cG`"eawߵ]v%Fynݺ)H/HjՊ{5krNXF8瞳nݺE?l]t99rjf}'kSN & UW]c!_z͋s=7wu։\sͥṄhϚx=$///>h`F:[nx3B?쳸^{Ͷr6hZ:#8@%Et}_ju!ka]PSE EGxǡ}vOs@nOcIs3"F|m՗5ccL=4@7 >bԚA#jZ1#R:@(&& gS;}tJMq_'tc1}̍ĩ\Q|UIi9m1%@\dT}~8?iOE-#8#8#8#8FKa ' =fuNt[c_|1Xcx{6m Rlj #ľ@gw!/ٚH$޺uk4hP<}^9Gg=xs{Æ I|A9cK|6tPXwuWtMc}Nzk+r|+'s?rެ97a 0?|N_#lѢE K#iqY߾}իW/4W>hNg0w1N:M7Oκ;lz+9}o r oƨb GEuſFC(FUz䧏 WSatG(i~b~ӦM]i`= sM76]zE=#8#8#8#8rV_ 6y!K)!9sB>'2ydk[odF=믿>s3f̈s=ߧa .͛AT(1M<9s[ A&Sh/zO;4;I}1ʕGe]Oϵ/j <+nf! NO(pJ>y0n߾0A`+j5n'^x#{}Yge˦{#O8c!{ ?HϛxB*%%泯>h|SvmXŋaM`^>M>>Ç8 6ǟ>v͇Va9ᢏ^kNkyKg/X⧹_k ݒ !'|ra^pGp*7N̯/T4b~jU~:GpA \iZQ\mPE?Z|SAEGŞGMN_ڗ9Íl/]FI`BhUXՕ6`ȑbCE'' hZ-0HXi b~jX7:bdUMZlC=|VWSbBƥ\ Osf֙9*E# .;mb N<4>D5oM4\hsiy6mڌx͚=jլ>\!6hPх&\BF'/! I7;oTӫWx'duqGpGpGpG81r"w 81?Er!E0N-ER|K-)aLLjpH+Ab c"r1έ+ѼCG-MҩE|jK:葴>cբŗ b~ig>). 6<f l„>UWijڶJUSO~sT,*GQ]ވݺeS<%fYrx!C/:뮶ú{pGpGpGpG!ʷ8GC9.}G!w\ᬳβf͚_n{e8#8@w"_Zpb~ |.W MUb!w?FO Fj;ʡ8hX97O1-tN$Vr#Fc\GFXv(^iUCɍ+~%^\ф'0ebM #K@@zm(?c F'^zՠ>cOOGT?kÎqa5ش>:W>+)֥!Gb'~c=PF;5'VWnh~wy#wtK;vlf9f̘iݏa~[8#8#8#8#TN_9W]~pb~ݛE@2dr)vW#@kER> .upGp'/{3<T4b>oܨ>';oB:L8^~ʅ9㏈c͘bSKi!"jO]iOØz4\B >WjBK`~ ɂM"9,B`bPE㟛sBVZ_cOA$v;vZ.DliţǟJ/{KcS:rϛ'H6,cMXQenemQ~?_]-[Н23ɀ0b/Y^_ё8M7'TN'ټaBZYuc~81ԙ5km61v{_{=3F8#8#8#8#Ppb~r_p9GR~;DLo B%?fLlhU,΢C61(@3fjժeGum۶Ng,aƍg 6̶rKs=J~߹8#8#P2_2(K*14lPoႴ x7vPe9ҲC+->199|hD9+/:?:jW`ͦrn>>:G41|5'e |B} yZ B0OK~X2"#YV6Zm$vͭ/?r'FC7U#ő aO.է\Z/sAXk اU<~!GZ?]|BZL:}@A`c:W2>ᖈ# ѕ?a5͛7Ql츉q #Ϟ=Ǿ2vkkڤa k67[mI⠲ԇ%u7]]wu^\;GpGpGpGp3N/ϻsyo*NO#8#8#8%G%#BUfxXpHYC 85©:qOnZœݬ_Z>i}jrrQ>j"V}b5Of0["N@!.|ȡ>R X\♐,Q+ 8vAƀC,zKyU_R}|Csdx0֜h_B7 6DXy~Ǧ| Wp>uZހ%aRn`#1?P0b>qs΋W5sؤlNc+-Z6R\bW\c_|UԽiM4|;1nؼyD cer ؠAO[jխFV^}v{x m=eu꬘Uo.LC/l\~ߛVvApjZu>S{l?O?hb;vvHĉǟ6n.c^`CClִ9Ў9| ~xj>O)u#8#8#8#8'W-813#8#8#o_gWhUZu :*\3_8C6̴3`Њ,8ӴɉKL7 (7>xZxH:kra'kC%_>-q)]atĥDiL!&6ddž tҼ`©mj*j("cGhUSyT;c~z_5#P_k-,FKH̟? qiRsklvHu˧[&luc9WBAfAݺu~mw:;?iǮ6u|6e'Գ>We?ѿ[֦MsqGpGpGpGl81#C>?GpGpGXpbc>ʄ@E#WV5%©l-A.u*>~peIsp 5rEؗ6塦ϲU~G+\6ZD1^}W=S?4+NӘ#?f,;}D1E(`?9 >1|i&l/#U14OlSSyC7`C?'˱ܭI. xϑ*ި?^)]y!jV;,.1+;;Nm#8xͨۥvwСخ]:|y9ٳg̙ٟ'N:uե'wタDŽ?FYp~<ֱY /d={7k:oo~KN=d;YLB.rZs뫖X($D x-H Q~|j Xl\ZAuWɁ?6ji|T/t671փ]YէȞ]43N'!ƑثM>sy.67ð?H9*3~,OnSzV7ex.8>}o׶fG駟}oQGuG}]y奱_؏9駟UW]gC]v}W; sNnicǎd+rΝkmFd53o%xW 'ۼWvx~&oSϴ?LT5n6x#;z$ovG;'꯶ڪix9o<7rx|\8#8#8#8#Ppb~c_:#8#8@G|F̯R5lPbp $S.}HEF>k^&_|ؐc OIĩ慎F U:ņn>Kv l0΅NJJ_O,(/:C h2҄1"@R;ei.ɏxFϘ d#Ħ9UG9iWt\ظA$ʥyǮA9hK‰s s)Oq?g\l̃Mkմ:keHqC v3*={oG}ul+b|[7~?7w7nx5jhrf{ˮ o//"~1.>vGpGpGpG81l/qBvdGpGpG`9@&+-k =%G|"1\[.XӇLK:C+*+Ъch#G W:`N۠sĪZSZ>ϭѹ4?T4ѤrIG<6.b4P=l`Ԏ?>MTZh1"“Xg. VЍvƲGG~1׫Nx8,[N̟={ + :kNKGq'i&~kta֭ۡ'Ҟ̿y [s53~잻ﳡC |W֠ALVRb~>njԨiM4.w6c6;ԓ^gIgqu|J8S瞏!{[ג#8#8#8#8@Ad#}⫋ V_E_:"C'Џ]Ym* fGpGpGpe@#5lP[@uT g3 w83Lmhs;\ipeG/=!gF)cԧOR}"{f멾G1y՗oPEz ~\G-j⃞ZCtBŕ *3!(ʖG "ƓO9T'̱&@V|:)|\vO59A_#\i> lM'v WSɥ< Os&֙9*ز6h pvlrN ƎV]k۪X !#l_kYZ\);.Nq`kg6nc"y^K.0N즛W^~^VZ5aVeͮFwZڒ$t-v-.NguyiSbUW_nGyx( Ocȋ/>g% w_GpGpGpGp +F2* |S48#8#8@pb~1GhUXu wB9DaEj<ᐸȟ>dZrN?gZܲU?Z|CCT_q𧙳A}4Ѝyɉ+'vZ[KDK;DcRk B7/~"S9Q\n: N ?^)ݲ 9i  'KZZeĶb;5j:v[۝wm>t OwlȐֲUKwzFc[l3/ߤ?_*+[͚5-oz^?~_\bGhX8vɧǼkϞ_ԏ-ln)1OߛlրőM7ƍS|ּyI籎#8#8#8#8)N_N7Χ]apb~Z_#8#8#,#@1hj0V<4,}d89YЍ\dp%s5F15Od葴%2:IG}qg,_ɍUzt\cM_q̉Ov*kݲ"Ɍ2?!8-O/ aњ0-czHMdL_zZ]KiC6A&p1ƺq4 FGN'DhIBa1NɍnZL>sD0v)'f>s[ ?17?arvMUT 'Яfb@ؚ6x#{Ww߈w%?3?~m6`#qiN??g͚eufΜ #u:S4U> +["%^ )Aj 0GpGpGpGpʇ+ߞ7N/sGpGp'/{3<T4b>;רan.ȈL#i?%qʲ8f Zb!RY8CbO?/nwPgJXs>9ʼn/CW=!]:'c|U?:p+ĭ80 & KGPri8Y{|A6xˈˊECWtWb >?.<}Q4ց_n~lu:Q~鈓`ӜOb W҉hkjS=`,@Ԙ?A6b:\:_@i>uE &}lN>mj}JCiA}rjCTqMة/,SN. %lLFٰp.Ï6CܶeٳǟSړS|*4 q8a$2e? 5kX:/ 1?@ߺuk{:o36K.m}6؇أSMlq[؛oeM5}vqkfu;C]Q?]b m5ְmƚ4il3fO.]v==Cnݎʎ91뮻X6n:6}te([o֣Gf8?h۸qb ַ[NmjG}DǷ~g͛;7XcaykC<8#8#8#8#|#{|KHʼn)wGpGpG81y#PVT4b~lؠ!ʼnVO.K1cZ|EO_jlŗXx:՞D}bT z@>Eil\9Ïf.kƲWΚvl\wfAԢ:A"0rJAC_D:IG\ pīrh\ (́8S#_+:4bU?A'\Q}l?9ɓW,>VLQKA (9|3*s'䇭# |KBb~1QZyᴛѻ(b~Q߷rK\_b>Dϻ0;w.C>{ﵝw)Ν_~e֞vjԨi=zvݑm}l}ʧtoͧOitS5!(nmʚ^{N࿵KA#?ƦM;=} ѼNNڗh첋5pGpGpGpG`9E+,N̯[ sGpGpe^(-,pqb>.!J'n1%S_+3)>X}|Z!ʗ`_9T͋X<#4:ƪO9`C4/Ӝѱ$?4KbB)X Sp`R<8SK>>ʗC 6a(Z٤thGhmI'C3OѪvm[E?7\_aZ;WiJB㍷##%s=K|5k׮e^e?BVW~}f!g7in #棟mR@//lWuճOٳg[׮{5 ƍ؁־CpGpGpGpG`9@&+N̯TuGpGp2@epJ@#[81|!BN/œFGl/AxSR>9AKT_5ѧ@"D @"D _wߓ&.a$#D @"\@q++ plw`11 #hGSFzf8S8camXn9o7zL47ic?y~e}Ff]suKsD>{dO<Ξ !Xgm#ރ~>X^O#|fo}ⳮ9w+aX^m\z#cǏ(_ ~'ɿoolTD @"D @"w@wu#%0H_lD @"\Wx)柝ܹ}jأ=f3]=3U&9kL4c죿w3|j1ksqjb'9c{C._2!Nj0^v/ι> ~A==1}A =9kz]|5rܳƬa= ο1dCQo_ z8΅%fHv Ng@"D @"D x]UJD @"D ?O a4WIHL1*WXC&Y45'gX.uyC=r=˭"35g鯆zgm9YgbS> 3f>kmvI5jp f/8ǃ7ۭ8 ̀YS5sgYyw{gf؟37vA=F.e?x5_^rO?u@"D @"D @5Z7:ŗamf ^/oIsThe7Q2@"D @"p+a'?ߘJ:YVYM=1k-gc蛙&5x|kfoɡFY|8{'2_izRccy|%RfK%OI<(a}g΀l,/5b? Ǐ1 s}9̵/󰿱̈#y.~3>k{ųO>zgqvxɛXo߆_Xo>/_boΖ~/O>npMw #D @"D @@x ]"4ZG @"D ؝@ݙ}86a>G?6s3>2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\԰gc71;wNky@᧾f3S53^a?{k%xs?!\?>̙<Ý]5^_]dc>%fX0 } ZD @"D @"@=®U^@WTH"D @"$V3c柝o̿1?lj^ 1b ~u̜s欨qs=}skS{Ϛ쏏5K<>5uYg~f[sZ3όy3ŷyW \Z>^s0Aqy]a恁~Hc[?j.?5L.fǚܻ3ˆexy#䢯=3fDyߺ"?8olQL!zN0c&@"D @"D {%0kHRDD @"D ؉@p8>ab@f'c7쑥fVL1tgFc1s?ߺ9{h15֬ۋٻKm1~uqy&{ݟK_;sIę|[<{q Wpq1s&祿7q/Xf~Ϛ\Ψc{﹮3B/sOf9]ӏ:sRg/}5$:E @"D @"D`M aH\-W˿@"D H|':&?==="z@~}j o&1E:fWoMqs{ڟ 79\7 4~{P\gΉu99\f兖aݟKzSŞLlĚO5s1įk/1by%\s:10>q[sM??aE&;I?u@"D @"D @5Z #D @"#0iOt<M|c_~  șQfYX.sk nskg^1SC9g?;ٟ 9=}&b0s3c]l~Ա~\~>g/3C,qe3P9c upsm-bZjO3}O-3w'w>zr3GǛm\s<?#_h_Uk{D @"D @"+'0_A[8D @"D xm _a"0#aEhoׇVYm6Ql8ZsxΉez,3c텟|=>o1a~kkr"=k܏兟K_רB^b<8a{ sQ:>İw/\ν|cf f>̘5o~g=xQngE`y#/x/}m7|^??#E|| 7=aA}L"D @"D 5#0 $?W#D @"w@wukE؄hH?%1CC]2Zd AY1c~έE/t˥ohɟ}5Ok3B>b1sgLw6v1.=!k˙kscrOZƐs\[l^ÜͬyƇ>̘9'oo?Ә#8+۸6 ?~,Gx6a HD @"D @"@=®U^@WTH"D @"$V3c߸qvr_1fV@rZ☉]S 2"{E0gx֘>湿Yqs6\lc/53c8[|Ԙ-&SLJCc {xf}6|x}g/51W9auoCϙ9Џ_ɷaÓ^Fa}EtNsIK %/q"D @"D @"on#p  /D @"D ?C a(WL؄ggg'wn/'c#F@CoW̌ya19VUm<3qYcO.3{5cQꡩε97k'A/w"ڋe{SŹ5}(/$F z `,3jkco :B[~Q׻QS?>8~l>?{= f@0o"aX)@"D @"D k DGj $̿Zu@"D @@{=86a77xCߌ0_0eT+TG|#59hi90h9so Xc{r1rqoL 59cM{c{ύ1?߉\ψ{-LlX.`1ߊϙԲ?uga.ggo=sv`xi Ru"D @"D @"&0M}@_D @"D$?wc{_}tw }3c=Fnx[GYn8Y8꜉Xgmgskc`WOkQsuɡ?< 8z[H 1gs1=1bh15Ҟ[f?{uˬy>=IV|9 AMkzcއ5{_DgceǸ".0}/ž53yeC`߅/ uֺ?9emGmgٟZgm-gﳍf68s1rO?xtvvXWqm^z##Ǐ(_{OXnD @"D @"p$̿^ﻧ=| uD @"D"0z_z86a7Nn-~3Ɠ1_FCf1va헞È#f&^X^=Y;uYAgb5zbԶ?^^y|Znc]wR^|x.䚇ǜ9;0>cC.?ֲͥƚa_>3{[k, y+ ϙ_>9!Xm\\?>X0+m@"D @"D #{]D @"D ;HB#g&?;;;s_x:za3{D5 V9{fyq9sF g9kkC93&Fçx~hQ:9g.<}{2_,|#ч򘗛LggT| _{ɧ=aq9qmOc9{{s3c\z,o?GPvXآ߾ƵmcǏOqK&>@"D @"D #0W!0U(D @"D $uVEF`M aw'SEOόo'c#'+'n#ppO=kX{`8άCOϞ;[|8=w| sϘ1sߵg=k,. \6a!A1@ 1ZecY7'zf|(gc>uì3fsgǼ?15:k֜s[ >kaKfMyx>1\؞<úŇsF/c~ca<,}۟^|_곟ɂٻh5g7Gdz2ٕ+0 $c(+D @"D @" $Y xU@"D @! c柞|xt kD+7^m2~߲y6cOsYL=>9 l>sr+g"{qf :maqt9buqI.yn3|M|G0|[>1@|p_Ԧ'o לk{n-xÌc{1;,Є{' ǺN@"D @"D XH&>WK a{"D @"p|;퉎 ocQB3-f`̜;!(Ft&ٳ9|bM#G̞xadm>5ȵ?g=G-q= |7ǚԚ&٬5qĐ}90/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`f|cG7$:E @"D @"D`M aH\-W˿@"D H|':G,xKOP> /!1Z`l=%3uq=\>ıY~fA=Έ!<˝~95erRrqsqPgE/28'cg0㘍ϬqFBx2a8o3>1󨏑7nֿ`%8Z|$:E @"D @"D`M aH\-ra+,bٿ?|LdŘ^?7]=@"D $DOr~?PeP3vsm~gx3{/\{${#Z?)ovY=^\oχ뢟afump->qjO ~aΉgv=3 /h=ЋgC|Ї4~Χ53KOf!?Mc`z135s=kEOSsM u_{QvxaoW֛X~2/_4~&̿ァ@"D @"D 8  =tH@h@"D @"p9 /ǭ NOܾc|?ahQGc|,#CYnjYXr7לLkvs>k3Lƒ8ycyC,qىy5_x֞bg"ǬÚ}7/xQԯ.o7|?BeٿH/apm"D @"D @H aa*@ a+@*$@"D  oܸqr(,-2BrhNgƩO?6Qg>EOOc]/w{cyї5g jfm3w\k߻zƌm~Ìu^'߄^=ƃf? |Ygv/\"_LY;rw?`|Դ?54|jowkO>zz3!e&I?u@"D @"D @5Z #D @"#0iOt<Mϛ~?x:rTEZ]8>14HXy,Y-5efk̥>빿Ᾰ+kr]I-4Ѭe~o%<8h~QmγMvNR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏xc_J $:E @"D @"D`M aH\-Zl3WU1/ױ9qD.㷿lُD @"D N a]&pl;o1} 2aVnj_` 2~fq=暃Y;'sEA眇 n]3}N{೏qOk_^^y~y9_ցJmbR'}X3a{Ə)יsR|m>F;؃?\3qNY1J^b6 ^o~n/O>>$̿"@"D @"D  0A0[FD @"D H;2"/&?===έ ~ߌ7+=h1hq131jV_͙Ē.og&^~?O i5.kg5{[>L\3 >8yK>FM > k<}0¹v[=wa-(@KÈkkޓ͡\1R~{WeC`~6h{}.vOy E"D @"D @!M aA.D @"濃/+_G*xo3v+FOm1X SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%p^zRZ\hE<|C,6כ/#g5B.cOr8/3ͺx4?39zO31|gE`yi~^n#ǏWo&@"D @"D > $'zE濜Q@"D @v!0ZF`O21ſ7EFO<+ \8Zr'o'V!>q>tҳ(0k? Z(cZ9WM ށ v)~fB<6Yp}Yd>X>kaqs_ bOy}n]s}njߙ:c{Ó, l\>䏏??#|-w07a]"D @"D @I a>i+/'0匊@"D @" *6%p|!̿i"W FXb8f葍eGMq.1yΞ< uu#|e {s jߙf;'D\e1a8}0wgs 簿g&Wh9Nu~}޻ƍkkciߘ?(R7 -y._6i d0%:@"D @"D [$0-­t.A a%D @"Dg$8E 0Ν[X6Ɠ1:f;bhÈCLgj#g,1˭=cRf^6Y;z a]6ϏczHڬ{~.>0Rg'3#\k_u1?y#{ˋ^ֶ?~}䲟{oZ|5w?1{1}#;,ˋڨ.0 $c(+D @"D @" $Y xU@"D @! 柝ܹ}61V+G{-2g9b ?{fɬݣMfM.153gk?뫍fƬ]g誉1@"g#{I ~}_˄:Eb\~^{8[+aGg1~o/~ eڃ31l9w%2q30;?'4;$IW0okD @"D @""0HkD @"!GR{!pߏߍU὚h| Zg5j>8crc=GXn9CM5s<=>k{8ɚ8^p]԰q1\kO QK0{>n`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FEֿ`5O$E @"D @"D$'$9"pot:寧o0g lzPcK>j0~Ϯ9kD @"D`_t}";柎o̿ 1Ϣxj7Yh=Ě6|ȬX,/[SM7{{Nu0j9~Ǟ;yLӓs>ˋÏ?u,2_*yJA  ;s0ͥgcyװ ?~Yx!g}eF FsgY7kl/X?>{&vC K^~; |<^ޜ-1R?#_r统|p= {#D @"D @@x"fK?hD @"D`w wgVFE؄^W|O9">lhĨ;&<ȬcX.gfш9ggFF j98sS:aԳyl9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzsk_߯wvx~uͻZNϏ]o|Ėchm#D @"D @"G Vx _R!@"D @v 0XF`Mvv61'{51ħ!3sΙg|v|1qKO?k7׳?>g.X^eMo1kcϰ?3={Ό7EvN\%pAj@{I9w1!zoM b 0v,3ϻL0u7kRZs,"y>|gh^~Z㼽>䏳?~,G19aoYD @"D @"@Y^J aKD @"D`' wUpJC1ޘoGʚY190cBӭF<9~r6簷?YXo/ff,];# 絚ub.e4]St%}gzm \_P}g"Q `19 f5f@gƈ~]s=0|?yo}5=CكOgE0$aX)@"D @"D k DGj $̿Zu@"D @@{=86a۷o1;* gƏF3fucIJ}%f͞Azm{L ͻ眱h>s.f6`cι>@}F>\ Yg,5{B5 y%ϵ؛7kI>y̘ϞzC$)R% {F}[sp9Nyџ>5o 0c֠y33gYS5c|?>G卼l\y݋X0%߼2@"D @"D ׌@k{܃'0_Q@"D @1 ߱uc!۟?x:Zd 1wh1jgaW+MMbsYl%53qލ>Xn6=nj^\Oy>,g%+g?k}k0CysmMn|ӳys6*0cƳX1߾OcPԯla W Wۄ+ m#D @"D @"G Vx _R!@"D @v 0XF`Mn~90e@pVY9{4 ȝkc&vwM4ȈÜ9Ycg}|kϹ3hrg پΌl.QcfNN>4s|>1`~v0ZYr9^\X.ks85wˋXk/QMb ??c/\ΨO탏5قo G]FM[ϻw6z?{|#ᣧx+^Tc]D @"D @" $_i%0j=@"D 8> DC؄7nߘ }3|hY;#SUSP9c89f^3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#k^:>3G{13{c%qc%+>gˋRa/;᳿8toف%KI?u@"D @"D @5Z #D @"#0iOt<Mu~ߍ7ߏ;YoAEzgMig-s&Sc͞9_=~F'}O_aO?|ށ= bkoOKz\\0/e1B8BG-Ή_%|X305wo"588q?3p60?܍Y?7q#n݇3\bˇd6{ù|پhukO-_{D @"D @"p ȋ8'0B"D @"7K aYI&?===έon hUH{nl-^{k&Z>Xm61[ztꑏy3c}g"㞗6\H{a cσ)~g̾0D]7Z,=cQfjٟ|^6˚|̡~c1>=aX^ ^Ƶya??#E|| 7=aa}M"D @"D "0z $?w #D @"w@w}uE؄7n8_OP4~ 1efbT4?6_z#`~^㷽>䏏??#WuS=a}8=>{l}1cܵ{1=c̱?~/p|{0{1sGv_{X0SخOqw6ykb[sQoM.Z>.F7aB} pa{@ 3zvj[3LJ9cy8W\ozY>#|~Σ& fb<}֜=zzfWN{ߺK-ol0P"D @"D @v&0gd%DHVV<@"D _×#3Mzzz[212&c /V~Ckx|˾zg܏=u0{g3y^Og0ϳ~˭xsřq3괽ky%,7M \7?4 o}Q۞WO5\sN}|>s﹵{/o 3&_׷B$:E @"D @"D`M aH\-W˿@"D H|':G*b?7#GE @?1sѽdX6q=3{LJY a03kRk+kǚ\bg.>Cwo¼ uc﹀wq[?{r8Ǭ/d18y5cMf\c{kqDϹk0[sw=ߘҲC"K70D @"D @"5k"#p_-G @"D G aӞx0-=C, _$gLgkFL>a6p]gZh3f#Mk^b8#xkp/wXg\~X/F5K_ǑC3=@Q xbÌc6N? ˠ qַ~8̣>F=Zj AHw0D @"D @"5k"#pot:寰o0g*jzEsb19c~zY2p|vZD @"D {"0OkK8>aɇw>@1C4ef9a@wAsoG9~8 ?ksm~zf-zir=~S׵õkĩ&^k3KFf{rKM9ߚy=Bv3=Ḕ~|HE )f'E68fz~Y{q~kkݬŹE>~跿}˓6\+;EQ"{9[f"Q> W@"D @"D #{]D @"D ;HB#g&̿qb`z=\Kf5Ƈ:u>sygpgD0o$aX)@"D @"D k DGj $̿Zu@"D @@{=86a>o?Q ku?PL"a\bf2zhh>93j⮬5v#w&D&a|~駆N⸣G ;69qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>_rڏ+%KKW0D @"D @"5k"#pot:j^̳_Uzsb7]ǒ;泥f?"D @";{w Nܾ7e@?14Y3w~qƚ3t˘es1s>kgEӟɳVm{̞s~u}9>GƙwO>ye|]/zQ{aC{"L|-Z*4K]f̞a z?k_gΩKq>`Sjp-9eA/Ǹ{{4;,+yٸ6/l{e6?~,G^w?n06@"D @"D @>8,]l g#D @"N aʈ0;~7}3ߘ_0%ܣ]9:cĨEFZ}5gK.d՞{qR?19c`>p^=op3ar!s{,//]`$>53tz08>7 o ܅yӗc,#~agzOk?g7:ssKݛc|_m\c 僲7۸6 ?~,GZ>a'?~@"D @"D _×#4z\"D @"H|m0y 1CSء1>nDc1L}q^2{kkb^alfmbO㚼yw:۟ ^ԛ5]~x]r^Kkq<l\oCOsOf?uz84yV^xG둏IJ3>rO<|ß- {m\W>䏏??#\!zN0s.@"D @"D $0HrFED @"D ؅@]h8>a>6ߘ=1Ssuh5X9XaIϢ|ìe/&Xkx3k\5ރx{KRX0 } ߄۟v@"D @"D ']@3*"@"D .B O0֗7c<>P^3.D!bytƊsܣG6v,5>z}6ٺxF9{sz.97vQ1]:5mgw6 s=.6_5ƃ u>~|0y8Z5r+_w;a֙y_|.{&7BïOY{_}cpK(/K~Iڤ%]8@"D @"D o@VJ"D @"!0gt+&plӓ;wnn`O@dꘅ)Vd#=3yiVLİ6f,kK=s^yݛf{1w#k.:K"\KY='\gτKrN}|Q\KXA?g,/z'{Y~>{oɷkY`,/jߺX-ol0P"D @"D @v&0gd%DHVV<@"D _×#3Nvvr OP[1kȜ15&v65H3[8f|>jx7s̷66wa7&I0okD @"D @""0o#IDATX.8+qVB1~,c~zo>y"D @"}H/O:1_@?*Ig?fcEl,}33d"fcϓoM5995a{s]C3MOj[,/?6T>~ֱ_l~)0 274:Ń^ö&P1fd/\?0r0|y?ϥogM|x֛cGO9/y2zxq{sKm0ɽ~&̿ァ@"D @"D 8  =tHK-aLu"D @" $ߝYc{_}toc<=H_0+^+9f8"fGqch7#'F#?އ>?Nkk؟Z95E,fPO pQ:{Y|)Kq9k1 N?>6q L~[Yaam<3u]0cŬk3Y7sÜIέ1~}?~:U/E6j9=?v[bƏY 'N@"D @"D  $#ZE$HD @"D ؁@`=86a_s/W9gjaΊ7<DZV/M<\Xӟٺ^cyQ5}gu8Ǭ~ޏ=̘93X|;9qy%9 f4?빿53/ر\fm"D @"D @"W fx)/ET@"D @"$ W+a/ox2zcY*kfjü Mzf43ٜkg&Scvm܏c7\wjuMѹ3Aųw'rggCQ?aRx^{cG-ef^:Ƹ:#?$>a瞳ٟ53.uxvr~{Wc/0a^JS"D @"D @毉HD @"N{!plӓ,[n ';ثFp_6zlb^$c{9gp]̵qh@uȥ?q8[#[w]xk5Cyc; ag>ß^dc]D @"D @" $_i%0j=@"D 8> DC؄7Nn߾7u@ @?efΘ~>O,96{9354:sƞ̱cِg"c;;>9 ߥ.pHky1Agsr93O0g\1sX 3ր\ 5^%̿/G@"D @"D r tlHM"D @"&0V o Wߘ0j8"V411{}hfo5捣8ǘXr93^Ϸ#֘c췆q=p-'b8kЃ=!X^Qu>k. s<H}8oC {{W;qO^h14+EQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lch3~^zc~ry ?68~,ol >9ε5qO5>̚g|ÌϚsb?9;0ˋCQk^ ǫ_y'_\m毀@"D @"D  $#ZE$HD @"D ؁@`=86ag'?1)Zif(+ w%95u #Ws|gc{N7=h:10fk_c83Gr?l:u|8A>4k0ư1[8j!ggmˇGۗy6zB\C3Of_~{?T̜ٞL|{:2W3=۟Z\{ٟs}cͱ{Oy,/bOZF7e\QӇ^x~Hb4< w |ޏr9&>!>#d 5gu5?k3o=x03@hvxQ &u"D @"D @"&0M}@_D @"D$?wc߸qc|c_7]fLUMBu1XyϜo 13ְܟ:蟉1Ʊl,#Pc?ıA-1L=2y!L8sfy>x0M#8sƍ,/~K-S|rF|1~{ѽ1gF0/%aX)@"D @"D k DGj $̿Zu@"D @@{=86a>G77c|?cg5{5yꦍoӯΙxL5{p6>fζK:3rAH+I6,lL>!"=T( u#zZ=̪Sm{GcF'}O_aO?|ށ= bkoO=U"5y ̋sY/>kQsuɡ?< 8z[H 1gzpOWc|;zb R*cj=W~6Yo=7=IV|9 AMkzcއ5{_DgccǸf DgL}`1{OZnD @"D @"p$̿]ﻧ=} OuD @"D"0z_v87aݻw/g-~57c(G231*cj?z#{+S"[]w}%?-_#,|pCryzB̗oKsO<Բ5=:9iz#~9gY`qNxfxKE N[Z]ow}%?-_#d~Vk9]WUxOl]boKf@"D @"D A aA8@ٕD @"Du濎J?tUf;vqcy3#F<{ f]1c,>k??Ѩ}Y朣ޚ>]Y,|e]r5foÄ@>䁌,g p-> 3z3gesgap}FRG=MxD9`{?+Û8^~. wpMB@"D @"D ؛@_@_o#D @"[H a-|=;C܄=01^6ch}btsZcƫMwqS1gzF<ܱ܉<^ǽ=ïN{kfXa`\b^zݭ1\?pMw$'mT>umzo{R_!>p9iϽl1̘|OgbvZx Nu"D @"D @"%0K}n@_D @"D$?w3:/#GE @?1sѽdX6q=3{LJY a03kRk+kǚ\bg.>CwaFa^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{591{ҲS"K70xD @"D @"-["#p,G @"D G aӞ|0-}3"Y@HT|o϶cg.<|l60!g3G9ýpF ֞^?4c͹F㥶o猡Ψ_dpN<1a1Y|eq8[?fs}cQ#op}_?`%8Y|$?:E @"D @"D`K aH,.ǯ~\~ů.`\*jz"11b,~ZD @"D G"0Hk0~>P|9ƷcF_w {cku5~4ɞLjO0nسe|ٟgvO]ï8zxfcyQ8{\<}H|Y>sqd^ęO=ƹ۟>\cgiq?O=e@tzs~`Nlϖy|[G?~xM۹M;{OD @"D @"p{{ %D @"D0 VVA܄w\^<σ?1#(GK=ccTϚk3KFf{rKM9ߚy=B3=Ḕ~|Hu )f'u68fv~Y{q~kkݬŹE>~跿}ˋg/Wv*x~s!Dw 9[(_pm"D @"D @H aa*o@ a@*$@"D  ޽{q?>(,-2BrhNgƩO?6Qg>EOOc]/w{cyݗ5g jfm3w\k߻zƌ0cݯm텙c7K a{"D @"p~;· y3чc9"y.y_j]$c-\kγg8_Ԣ.كg<||j/Qyα31G<kgEӟɳVm{̞s~m}9>GƙwO>y(KmEg?^ g /a:[:PM\2ck9 sO1X:sN=_?]gֈy{ПPky&/ b;ƣ'O?懠iX^k^Z_za6?-_#roG?>$̿!@"D @"D  0ANK-aLu"D @" $ߟY8s_^^^|ޟ/+=h1hq131jV_͙Ē.ٿj^sM8o cbӜ10jG]8go/k᷎}809g =|qvy DcNXg>f\Aុw {rua5̵\~kPgo.}ɳ/Ve'C`l~V1]_ ǫ]<·| W0d>]$@"D @"DH _z|r@"D ;H a;Һ!p | M1:cbĨTbd8'ze1{ν1K8S_Ĩ&W\5yPoM u?潨7k.|.:B3,y 3b|[GB00s.@"D @"D $0'0D @"D` UlK/A?/EFO<+ \8Zr'ֿOB|0}gQ>aֲIA]șsnA<%Ap{N| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gso!+KOv7(w䏏ߖ/OM9kD @"D @"cHLH󌊈@"D @"*6%p~!̿٠/h"W *DI,X|n{ƎGܣ&8[ψ7w 2aEFϟ8\V%?ޮO垏k18cl^t ̱{a/cx9?Ys':sG=벧~7nïOY{<|ggD`0=#fƿ~~~Ǐ̬>}QZkLG@"D @"D qƯ71ܓ5Әٺ8z͢+ w 2l3>݃R- Qw/ⷿ|d@"D @/~q/7mV;9Y=Rc,^φeg"n<]3ggпt9Cӣ? rέߍ_lfSLLzfr9f&1K {c{jh'73s^36i!~~X.k3f]s-_{ v*\KY='\gτKrL}N]L?kϵoy~r_ƞ|u]O w5l,/jonqm^_z/yl?ɿl$߼@"D @"D UH'_0_@"D @.G a帕]88aѝ76Ɠ1V+G{-2g=b ?{fݣM6s֘ifnjGfֵF3c. 3tĘ? Ncy3s=$\ >odBx"`p1.?psi}`0#3Y?{jak?{b2zr6kgYz}c{o.lo6 +!߼ZǙ~s "'07aC?#D @"D @"p_zF $q6D @"D  VNvC@1*WXC&Y45'gX.uyC=r=˭"35g鯆zgm9YgbS> 3f>km.oj^p#n1[9</p3ƹzk>f̰?go^?z|?\Ys'ٵˬk/X j:0wD @"D @"5k"#po7_{"D @"HÞp 0x|c/gQ~ֱ_l~)0 274:^ö&P1fd/\?0r0|y?ϥogM|=֛cO9/9aDݱS"D @"D @毉HD @"N{!ph|~On1xr #KeFWgWFs F1qjf޸\4ٟsf8~ 5gkfcMf{_!KCs|3=ɹ5Ư?8agWqm^lپl={N^D @"D @"@ a~>M"D @"HÞp 0d|cͯ?9jcQCf30gEcX&sog|l]y<˚>3:cbm?Ǟaf{x_o, p* RKr&(.>9<00i,~skgC ^cyfŬٽI-kMν;lX[Xw?BZO6'3ֵq^o-~z(_ ބ[6@"D @"D );]@W"* @"D $̿#S'?[_ߎx |=S̊Y0y3\nh51f[9yM4ƚ5~{1{7cع9o8ds)sg.8Ӄog N 8?CQ?aRx^cG-ef^:Ƹ:#?$>a瞳ٟ53.uxvb~w1g{F0w/%aX)@"D @"D k DGj $̿Zu@"D @@{=84awa7-}?rTU?V~=6Y/1[zkr3[h.߸qhۃ:ҟ8pNk2[w,ϵ`&W\ʸ2 -(<F$`bf#|rA̼k̀!~]}Όϻ.g?5{`!<1~kz0ß^dݽc]D @"D @" $_i%0j=@"D 8< DCЄ7NNn߾7u@ @?efΘ~>O,96{9354:sƞ̱cِg"c;;>9 ߥ.pHky1Agsr93O0g\1sX 3ր\ {13Af7|Fb ?ke{2Q>מ0>]&@"D @"DH^x+@"D {F a{º"ph|4||c'cE#|WCFysF:dsk ]}r~yCf~p_3Ϛsl$<댐ŬφX\Y3ݨﳍF|ca5χ̵1xxEc'|co fc9q폏{z6af湿Yqs6\lc/53c8[|Ԙ-o&oRLJCc {xf}6|x}g/51W9auoCϙ9Џ_waÓ^Fa}EtN3IK q"D @"D @!n#p  /D @"D ?A aO(WLЄ'''Gwn/oc#F@CoW̌ya19VUm<3qYcO.3{5cQꡩε97k'A/w<ڋod{[Ź5}(/$F z `,3jkco :B[~Q׻QS?>8~l>?xOzB} J70wD @"D @"5k"#p_-G @"D G aӞp0ƍ?ro@@2kgdj#>Gǚ4̋lxkgquAL,u1gc7&= jy\̽ƘofDgĽM YG`܇u&3q/ syoręC`6n,ĘG}ocy{_jٟ:303r3|qƜ^Zݽc]D @"D @" $_i%0j=@"D 8< DCЄ^痟xCߎh_dg{䩛6q"N:g15YSgs ݘ~s7BX}xOOX>$ ׶qmg:y.G8eqO->a|=t"D @"D H'/kD@> @"D @.og"6 0;1-VVS#eWzcÚkj:b}XnѩG>}XO|N{6[Fx{^,r#"Y3Sa/X>$k=]̞1[w8jc\_yfpF=_ey ~>X.kf3sy/{"k¶>?~,GDo{wD @"D @"E az=HF @"D ׋ oܸqto1h2b4 Ĩh5FlkFyư63>70[ڸ6 | a 9w DG @"D @"D`wu":b"D @">Ϫ o8ߘ.~Dp>ġ=|,1zdmg kǙusg듏gݓW3f񻶿gex@υ+`gc,>b!Xמvmr>+XksszZw,O==f|b?ק 4'ˇlQojZN7FxOlmbKz@"D @"D  0]Pf.O aٕD @"De濌JtUf;vqcy1gGx9SA>̺=c6X|(@Qo9G5}0˻kYƯ˺k6 2 ' ۓ2^1|XõSxz̜o,=>yùz:wK}s4Y0{zz?Οͮ/Lyu[8&a[CYD @"D @"\@ #+!@w@"D 5$0!ph㣏B16ch}btsZcƫM[;8~쩃c?ɳGr=#?gXn\Lx/ΌޞW=5.gxSC΃00.e1/mb<~HOx'}<B|sb3{ϭ{oc1|=" Mw0wD @"D @"5k"#p_-G @"D G aӞp0<|-40b̹bDj=c'đkzƑom[8e;״51s7Z?~l f7=}41eD0wo$aX)@"D @"D k DGj $̿Zu@"D @@{=8`a_[z<"Y@HT|cg.<|l:70!g3G9ýpF ֞^?4c͹_懍.kZ?ӿ#3f{/8/9;ćl~f3SAs~oq9ǏG}u{+0w aX)@"D @"D k DGj x寰o0f*j>w="11?c,7_=@"D $DOt~?PeP3vsm~gx3{/\{${#Z?)ovY=^\oχ뼟afump->qjO ~aΉgv=3 /h=ЋgC|Ї4~Χ53KOf!?Mc`z135s=kyOSsM e_wW(ӫ xq,lǏ/w?tzn_SG @"D @"E$}|I4G @"D VVvAЄ''Gwn`1~0r٣1Vh>!LU{LcƬA,A5<5k糶>aa7YQ?q},ș9kmΟ#bfemG@|8.߇>8ycyC,qىy5_x֞bg"ǬÚs{xӧ}"L70wD @"D @"5k"#p_-G @"D G aӞp07~Lߌd 䨊絺q|ci&vNX.1~=4Zj4s֜K}s}~W;ߑRZhY˰?>LSC|'KY qx죆 6p@ K s<' <eoq9s}<3|(6_γ`/3.ȋEZTjh,̘=ÚAܓ5~L1`Sjp-9eA/Ƹ{=~ 啼l\2??#_r统}_~EIEkD @"D @"A a~.a3@"D @.N ař]84awnnv 1]1aFKGst菙Qj%\t~={59 5𻷏.~bOs}4w᜽\?k{:gB 1X٥͋_H!|0j:faX 5p0}#o! kAy/X[F\\fouї7w~q]7\n|gjakAW0o>]$@"D @"DH _zr@"D {H a{Һ!pߏ1| M1:cbĨ0qN,{c1{c6qQ?MkޚMcof3{Qo?\/K_$eԱa),x?;aXoSάL,g%LwA,{:ӌ!o_"Ea}kJgXy+_ 7|oE @"D @"D`v"j _ͨD @"D !0"n 0h|cG_ oG)byW@:qOOB|0}gQ>aֲIAYșsnA<%ApS\ /8%<ڇ#f˚\l~ saX b^ssLrX^{b7tK 6o?f!C޳gl/,odQo_gڼ |akA ?g"D @"D @"K wI^x5fTD"D @"HZF`O<Mq!BQ_+ύcVpر\1{gqcϹz9^YG=—Zưwm??נ9‰?0bEYc<8q b+N_ gx\==9{~,{GιfG_nrq#d1ڟwXoxx</I^K @G @"D @"DHV: 0J@"D @""pMr||tέ L]1v4Ŋaġg&35ꑉ3ƌ֞sֱ~cgK3{S߬vO=0So\jg$~m?Zǽr?zexy y)}@ēpX.Љ/~k <=yOx/k>rg=ַp->뚃߻ڟ=ߘ_6*%6  E @"D @"D_Y xS@"D @! 柜ݹ}6Ɠ1V+G{-2g=b ?{fɬݣMfM.153gk?뫍fƬ]g誉1@?[+aGg1~o/~ eڃ31l9w%2q30;G=#4'IW0gkD @"D @""0HkD @" R{!pߏߏU὚h| Zg5j>8crc=GXn9CM5s<=>k{8ɚ8^pװq1\ku|S`s]}<q3xp 51k^s>go֘|7{f9OO|zlcbϚ;̮o_f^0G_jP%% H35@"D @"D ?HOHrDJ x寧o0f l>w=jB(|1Ə%wX5W5@"D @"+ wE>8o̿ 1Ϣxj7Yh=Ě6|ȬX,[SM7{{Nu0j9~Ǟ;yLӓs>Ï?u,2_*yJA  ;s0ͥgcyװ ?~Yx!g}eF FsgY7klϟX?>}*v} K^~; |<^gޜ-1R?#_r统}p= {#D @"D @@x"fK?hD @"D_YC{_~roc<9H_0+^+9f8"fGqch7#'F#?އ>?Nkk؟Z95E,fPO pQ:{sa.,8x5P0}o=gapهav 0Ì>bcl#d3u3cs'9X~u&_lrzvz##ČO0AkD @"D @"HCصkH @"D @"p / ONN7j`?Dx}1T:df9SsVԎ>9zi=gzǚ%3?39f-~gƼuϙ⻰y ' | $aڻsg=&~1;]~l&\̺݋ܻ3ˆexy#伯?O)m}"3=xA1s&0q/Xf~Ϛ\Ψc{﹮3BsOf9]ӏ:sRg/wOsgx wRu"D @"D @"&0M}@_D @"D$?wC}|g3c GE?>^]5ccޘ"iuث&89ܽu~bG=C.ߺ̜k.u\m frOΥK- ڂbσ`@&f6b' ׵1xX~Fc8عg??~E&;I;u@"D @"D @5Z #D @"#0iOt8M|c_a  șQfYX.sk nskg^1SC9g?;ٟ 9=}&b0s3c]l~gԱ~\~>g/3C,qe3P9c upsm-bZjO3}O-3w'w>)Wxqk^??p<%>}Q_ߣG @"D @"\9W @$&@"D H+wFЄoGT]5 +Fk|>jfbcsN,{ck/okukm[8X{15X~,](F 5E9|HS>K@Y!+~r'?}0k0aƬA}gtm/f>k_G|r;+y{ٸ6k{a/Ky e"D @"D @{O a޿.D @"gg/^+&GCǷ/?x2Zd 1wh1jgaW+MMbsYl%53qލ>X^lt?v /1?<X|X\KW?~7`6\Mښglmf3>Taƌg9|c~wOcPԯlga W Wۄ+ m#D @"D @"C wVx  _R!@"D @.@ a`84a'G?1)Zif(+ w%95u #Ws|gc{N7=h:10fk_c83Gr?l&u|8A>4k0ư1[8j!ggmˇGۗy6zB\C3Of_~{?T̜ٞL}w:<^mYDx</I^K @G @"D @"DHV: 0J@"D @""pMrrrt"f}<:bt 4zu̘h31h\u35>2W3=۟Z\{ٟs}cͱ{Oy,cOFFe\QӇ^x~Hb4< w |ޏr9&>!>#d 5gu5?k3o=x0OW 4{ wǺN@"D @"D XH&>WK a{"D @"px; oܸ11/v .vFX:sqAs̼H[fΉyG˙{kXwOR{6{cjɱksΠ{ngNzF Լu&}Xg93< bBss9#w>gqwzoٞ%KI;u@"D @"D @5Z #D @"#0iOt8Mu~ߍ7?;YoAEzgMig-s&Sc͞9_=~F'}O_aO?|ށ= bkoOKzg\\0/e1B8BG-Ή_%|X305wo"588q?3p60?܍Y?7q#n݇HZ\1C2 rmƿ~~?y_/w?tZ_CG @"D @" {"F$D @"DHvyV-o 󏏏>s1=1bh15Ҟ[f?{uˬy>=IV|9 AMkzcއ5{_DgceǸ".0}/ž53yeC`߅/ uֺ?9emGmgٟZgm-gﳍf68s1b?8p;/+yɋٸ6/l{XyL/a'߯@"D @"D ^_?a"D @"~H~n{0ƍG?/!F@aZcKađg kj3Nz,枬Ӄ̠g?=1j۟\imzlk{/>C-1.Ļ)oj><rc΂䜇cq|Lx!xkYRrcͰC Oމ=~5qY<֕qzޏ @ >>Xm\L?>X0+m@"D @"D !;]D @"D  0 0_c3+XU칚i95~jbg1h?笭M yό. jYsj6F 0眽l|i Dc^n7'3^Y^R}54s|i'ZbB3ǵ=C|ۏ=1k8#1όoszl,Ea}k^ `0z0M}"D @"D @vG aX)C aP*&@"D H 0ƍOߊOcrӫG^OVOFຩzְ_qYj=w>q1{=~1ckzX \ly^W @IDAT=\v֘9#Va/ʽ,au l'8ϻR<51y_8?{yOuì3fsg<Ǽ?15:k֜s[ >kaKfa0!>b}b=y Çu=\q;5^̙rÜyYX<+?|w{yg?QOw1>kn񯧧OY rϔ[wIm5@"D @"D  $̿0"N $x+D @"\C K&?>>>-Qh1ֈ+FWp?ǡ5od e_\3lǞ:=<{x/|'3rs?|VD8~u^rF75<\қ&gao}b>M]mO+'9'>> Z7{1/Є{' wǺN@"D @"D XH&>WK a{"D @"px; ocQB3-f`̜;!(Ft&ٳ9|bM#G̞xadm>5ȵ?g=G-q= |7ǚԚ&٬5qĐ}90/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`f|cGAZOxq wFu"D @"D @"&0M}@_D @"D$?wuc(BD̗l-0~蒙:Ƹs C m{ƬZ?3q䠉c?K goycLs?؜zKe~2xx989ch3j"O3@|qg8#_! wu"D @"D @"&0M}_9=_ Xls/ẕ̌3˒o>h#D @"@M.AGG_~ 5h1|=ݱg͵gM10"f陵س^e|ٟgvO]ï8zxfcy98{\<}H|Y>sqd^ęO=ƹ۟>\1׳p?8_w{qe} [~; ޼N lϖyX0~qOW6a|=u"D @"D ~H[D@'̗Ds"D @"H9neE`Mrr|t v1#(GK=ccTϚk3KFf{rKM9ߚy=B.f6Xv ćR} !c71\y>g.z=0iO.{:ɣw>e6v,>W>\پ/ՅFG7%N@"D @"D  $!ZE5$ HD @"D UhvLЄ7n8ч_ߌ_c(E-1dZc|Sq9Ǐ3hOQX׋:v^=XehY̝~z>71clv0coIa<ffO<>_"{ &:ė`9.~֎\j/5O  ~3߅~?㳇O=};'̄{# wǺN@"D @"D XH&>WK a{"D @"px; y3|O@Hx^KG=fb 43CF`?a͙g=W=weM+5&5 O?5wr$>jͿl 'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1~}׿`]Nqxi w u"D @"D @"&0M}_-ҋy*{]{FїXr8"|G"D @"C'0p>84aѝ7>v_0cF/w0XsnSl3f~8Ǟs}sAxù"ycssϙ>=8'ojE|@/j}/0X=Yb9|?;[Ϭ?5}L_b㗠~X^K^Ƶya/-c<%z٧WtW@"D @"D 1~fK?hD @"D_YC}|ofĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{9|]ڼ DcNXg>f\Aុw {rua5̵\~mPgo.}{s_}we{C`~6h{}&vOy E"D @"D @!{M a^.D @"濇/+_*xo3v+FOm1X SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%"?Er^Kkq<l\oCOs9Of?uz84yV^xG둏IJ3>r<|5?/K[ڸ6t{}&?~,GB07a]"D @"D @vI a.i+&0Ռ@"D @"p /B 7Š1|"~ĞGK*'ӇNzf-{ߞg4Z۟xY=;p_Į?ϵ8‰Sp!}8b澬2f`O,f508y/g'<|}K`s>cLrn1={fFu6^ GjO0s.@"D @"D $0WHjFED @"D UlvKCA1D("ԍXb8f葍eGMq.1yΞ< uu#|e {s jߙ .# s=.6_5ƃ u>~|0y8Z5r+_w;a֙y_|.{&7BïOY{AaQo_n/ 3IK q"D @"D @!n#p  /D @"D ?A aO(WLЄ'Gw11 #hGSFzf8SӬ8camXn9o7zL47ic?y~e}Ff]su+sWH>{dO<Ξ !Xgm#ރ~>XO#|ؓo}ⳮ9w5l,/jߺX-om0P"D @"D @.L awJ a;[D @"DH _z88aѝ7/oc<Cm{Ǭ"sc+gV=drS#l=q61ߺhf܅A|a,s|f1XĐׇLoR .絗s.-&}{0krO-lgO z_=8sCO暞s_"3~1kX<3ot3B}";{% wF@"D @"D ' I\)W@"D H/G:*xAߌQޫPΌquVv꓉3v,:ۃ<|Vk˚3WC=Ӄx곶1 y ?{3͵6QI75jp f/8ǃ7ۭ8 ̀YS5sgYyw{gf؟37vA=F.e?x5_^Q;C]D @"D @"$G_=_zXls//7cXrQ|~YD @"D "0W8|c[ǒ)$Z€˰3g@ \x6z ۚ@ǘg_rpKyXfD|a<~f5yYo>ӧb8ӫ GqK/'6Ɠ33>2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\԰gc716_8qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzsk_pW;jEQ]-gǮ7|>bKa!kA W@"D @"D !;]D @"D  0 0d|cͯ?NjcOCf30gEcX&sog|l]y<˚>3:cbm?Ǟaf{x_o, p* RKr&(.>9<00i,~skgC ^cyfŬٽI-kMν;lX[Xw?BZO6'3ֵy{}&gX0b s ބ[6@"D @"D );]@W"* @"D $̿#S'?[_ߎx |=T̊Y0y3\nh51f[9yM4ƚ5~{1{7cع9o8ds)sg.8Ӄog N 8?CQ?aRx^cG-ef^:Ƹ:#?$>a瞳ٟ53.uxvb~w1g{F0w/%aX)@"D @"D k DGj $̿Zu@"D @@{=84awa7-}?rTU?V~=6Y/1[zkr3[h.߸qhۃ:ҟ8pNk2[w,ϵ`&W\ʸ2 -(<F$`bf#|rA̼k̀!~]}Όϻ.g?5{`!<1~kz0ß^dݽc]D @"D @" $_i%0j=@"D 8< DCЄ7NNn߾7u@ @?efΘ~>O,96{9354:sƞ̱cِg"c;;>9 ߥ.pHky1Agsr93O0g\1sX 3ր\ {13Af7|Fb ?ke{2Q>מ0>]&@"D @"DH^x+@"D {F a{º"ph|4||c'cE#|WCFysF:dsk ]}r~yCf~p_3Ϛsl$<댐ŬφX\Y3ݨﳍF|ca5χ̵1xxEc'|co fc9q폏{z6af湿Yqs6\lc/53c8[|Ԙ-o&oRLJCc {xf}6|x}g/51W9auoCϙ9Џ_waÓ^Fa}EtN3IK q"D @"D @!n#p  /D @"D ?A aO(WLЄ'''Gwn/oc#F@CoW̌ya19VUm<3qYcO.3{5cQꡩε97k'A/w<ڋod{[Ź5}(/$F z `,3jkco :B[~Q׻QS?>8~l>?xOzB} J70wD @"D @"5k"#p_-G @"D G aӞp0ƍ?ro@@2kgdj#>Gǚ4̋lxkgquAL,u1gc7&= jy\̽ƘofDgĽM YG`܇u&3q/ syoręC`6n,ĘG}ocy{_jٟ:303r3|qƜ^Zݽc]D @"D @" $_i%0j=@"D 8< DCЄ^痟xCߎhݖ]GfS2,ɀ`tY}SD`xB摪/1ujZ ;9q6LI'GsiDFĊ{COɞ5yꦍoӯΙxL5{p6>f??}]3?߇=y 7\Cq?m> $rqAX¼8rxp q8'~[c߽g~933<\|s7f"ߜ;ǍS6V$@nmu':y.G8Yضx+ CG @"D @"\ /ɋ8!0B"D @"K aYN&̿rѭ3}1c'F[ 2Fsugcn67cÚkj:b}XѩG>}XO|N{6;Fx{,r#"Y3Sa/X>$k=]̞1[w8jmc\_yfpF=_ey ~>X.kf3syOwngJbVv׫??#Y|| 0r}M"D @"D E a{O aG0@"D aHz_"phWxߍ_h2b4 Ĩh5FlkFyư634nɚع?= pf?f?"{೿=rC Bk2.s!<<,Hy8ruo.O,0 8a'Zcgco]YGά`xѝO9.占ZA,c<o@n 7@F @"D @"D`v"B"D @"@3*4{&ph㣛7}20~>1 #.ǘ#BEgWs5sk03b<,OY[1]41>5ƻ@sm >aV9{u3=[fs>$Ǽ<'~/,tky/|>94ēO-{Zh1sڞ֡>Ǟs5oYgƈXw=CPv,Ea{յ~v'1Xy'%iD @"D @"H?uH2@"D @"<"#o&̿zx|c0h'fgF\ꑷ \g kǙusg듏gݓW3f񻶿gyx@υ+`gc,>b!Xמvmr>+XksszZw,O==f|b㣇'4L٢߽ZNWq0"D @"D @"&$TH~veF @"D xϢ/ atUf;vqcy3#F<{ f]1c,>k??Ѩ}Y朣ޚ>]Y,|e]r53^ |Å/X>Z|۩A9z,Ysvmy??+Û]8^~. wpM׆B@"D @"D 83gFVB(oo#D @"@?&̿rѭ>12&c /V~Ckx|˾zg܏=u0{g3y^Og0ϳ~˝xsřq3괽jy%,3|M|G0|>1@|p֦'o לk{n-xÌcC.^hc]D @"D @"l $i%0b=@"D 8< DC@71{h30f#Wk>1&\գgfO<0k6ڟ3̞֣ƞs>cMjweXKlǚ8bns>Qu.{L 9=>3|kgO:9/ܹ}Ɍkyo-h9` fk03|1GNZv$:E @"D @"D`K aH\,˿@"D Hx':,xK_}/Փ3_&Bb۳zYKf&{0zN3 -}czkđ&zp/1Cy;3Xcs.m?k,a㥶o猡Ψ_dpN<1a1Y|eq8[?fs}cQ#opq?nJpv $;H?u@"D @"D @-Xۿ72寰o0Nf*j~zESb19c~zY2{_}|ZD @"D {"0Oks88{\<}H|Y>sqd^ęO=ƹ۟>\1׳p?8w2Ge [~; ^_Njcg<~,G~ָ/6m@"D @"D @E$}|I4G @"D 8VVAЄWn޸cu fXX.F,0U19Ƴ&䮂֜Lkvs>k3Lƒ~跿}ˣw\+,x~s!Dw 9[(_pm"D @"D @H aa*/A aK@*$@"D $?B#g&̿zэd`lCQX.Zdh%3C:ΌS9~lG<}ƺ^Աl/kDc_"{ &:ė`9.~֎\j/5O  ~3߅~?]ywv2$:E @"D @"D`K aH\,˿@"D Hx':&ͼߏ1UV<6fb 43CF`?a͙g=W=ܧweM+5&5 O?5wr$>j?l3'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1>wѧ_.P{ ǺN@"D @"D H%>K`FW_-_<[gzcO]]ǒ;槬_f?"D @":{2Cݼqo|@?e~yì;8ceL9̘9 {5wOY6=f9Aܶ>gg#O;'W2 ! bs˥.3fOf`=dS ϋ3dm>F;؃?\3qNY1n߻.<Ŭ_f[yK|_\$̿ @"D @"D  0A..a3@"D @N aٙ}84a+Wnݼ1|t-1>?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scyg6/~#ч阡Ça- @8Wnk.co|s s?s0{ߚ99ԙKĮ"ձ>8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/KY~x<+:B3,y 3bX0p9a7a]"D @"D @I a>i+/&0Ō@"D @"p B 7A/ch#Z=:ir1ϊ?9{U=w3kq~fB<6Yp}Yd>X>kaqs_ bOy}n]s}njߙ:\cyÓ] YY]]GjOM9kD @"D @"}HO $1""D @"@*6%px+Cwc<:P^3.D;<:cq #;=fs>Yl]b<#N=y9W=qt;GR}Զ3g69{z\l(k'A {|a p/8k>=c7яNB{9w¬3k]M.7n,_#\N?_%4^߽ꪰ"_>/'%iMK /q"D @"D @ on#p D @"D !09p:84a+G7o^1c+FЎX=>8qY=2qژs:o,ϙzimoj㛵Ǡ5~j=ZoͺZ۸B/ /s!/e}<Ȟxr=.1B:EQs-G<>b|<emG.읱'g]s{Wo߽S"Us;8^&akCYD @"D @"@3#+!o@7@"D [H a[{ ݼq7ecV`5ZdΘ6b ?{fɬݣMfM.153gk?뫍fƬ]g誉1@4g#{I ~}_Ʉ*Eb\~^{>=+aGg1~o/¶~ eڃ31l9w%2q30;Gw>%4L70o$aP(@"D @"D @ a?  %0B<@"D 8@ HC@/19{5ՙ11jNSC}2qƎRx{>#׳o-b1sYsjxzO}p5q!ƽ:a=s0c泹u|U`s]}<q3xp 51k^s>go֘|7{f9OO|zlcbϚ;̮o_f^0GnjP%% H75@"D @"D ?HHrDB lo.8+qVB1~,c~z>y"D @"}H/ 0 a,G&y%Ϫ?f1"{6m2hY3ȱXɷn`Ԛs=w.'5|έ?χϿ/?qXe6?WăR @xw aKAYoa[(b 2חC\b;ˌ9><۟7&o؞>뵱僇9.^exq{=[b6Gη?Ŧ۹Mv:@"D @"DrH9C4ZG @"D 8;ggVFEЄ^1pD$/|o3QwLyjY3#Ƹ\4ٟsfCC'm [5O-"sz3qz맆u8ègi9ỶSrb~|qm<(>Է08xf0a؋Y11guoo:ę1LJ9ӓc|t~u&_j9=9v -1yl毀o>hm#D @"D @"G Vx  _R!@"D @@ a`=84ak4_Op"WCC|_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{i]ky? 3cxcټș7 \Z>^s0Aqy]a恁}Hc[?j.7L.fu]Mjq_krݙeZ2<rf/DysEtq]??̣Bg@IDAT0ś0c&@"D @"D {%e|wPZE &0\F @"D 8/%W^<_ r_6oGʚY190ocTӽvXkc̜0.gs{o5hL5kbnR۵s?rpq^'\FW5E\qA q1~4~;äw ZٟYuq=uFiI}8=g?kQgo]X߾{c.^`c]D @"D @"l i"D @"HVbG`Me|cɭ0A1F`}•XƬI똭^5qΙks4pso8Z4ArO}8'5`l~^s;K-Y\9ls.2 -(~@&f6b5s1ok/1by%\s:10>q[sM|W.^dc]D @"D @"l $i%0b=@"D 8< DCЄWnܸ7y 3HS3G\b?@>3f G=c]sS4@9vl?r0{L`1{c\g >;Nc-/&H|@Y#V_.g X3˚=fkrk{1s5Yc X[r5}skkrw㞞k|5Pه35r?9d~ckO/c<o@n 7@F @"D @"D`v"B"D @"@3*4{&phWnwwc|=S ٣QV@<\K3skAFd<<3n^{ΝF#7u8c`%׾pf g5u13UUp}h֞aac>>qBϬQ6/l& 9g؟8̾0~9=9#1>{:<٥ [YDx</IkZ]p/%#D @"D @" $p+sHhD @"D xρQ. 󏏏nX _3 1{^239Zg | Ze6Wĩgf=LrG.>9^\X.ks85wXk/Qub ??c/\ΨO탏5فo G]FM[ϻw6z?{|#W 4 xQ &u"D @"D @"%0K}.@_D @"D$?wC_zu|c7]fLUMBu1Xy̜o 13ְܟ:蟉1Ʊl,#Pc?ıA-1L=W2y!L8sfy>x0M#8sƍ,O~K-S|rF|1n߽ΘKF0/%aX)@"D @"D [߽KOv?utp_3_緎>3Ǐ9x/q"D @"3HF`G`Mu~_/E#`緪ޚ=xldϚ~~boΝFȩ]~'ODrz , V<?#cq_l[ok#D @"D @. ϣ_:aώG\EKɏ3x>i"D @"HVbG`Me|ɭ3~1c'F[ uewiωa͘ejY58?\u'b}XѩG>}XO|N{6;Fx{,r#"Y3Sa/X>$k=]̞1[w8jmc\_yfpF=_ey ~>X.kf3syOwngJbVv׫??#Y|| 0r}M"D @"D E a{O aG0@"D aHz_"phWxߍ_h2b4 Ĩh5FlkFyư634nɚع?= pf?f?"{೿=rC Bk2.s!<<,Hy8ruo.O,0 8a'Zcgco]YGά`xѝO9.占ZA,c<o@n 7@F @"D @"D`'̿{ݻg7~[;ߘ?˻?u/P;7hH\<F @"D 83gFVBFЄG7o\d|cF\1GXï`Uja>gkC93&FG}wofZS͵101Uιg.gϗf\w^N< cg<00}p'Gb9Lj1X`CY970w:dآ߽Z?~A,c<ro@"D @"D }cܵ{`՟{ƌcgyx@υ+`gc,>b!Xמvmr>+XksszZw,O==f|b㣇'4L٢߽ZNWq0"D @"D @"&$TH~veF @"D xϢ/ atUf;vqcy3#F<{ f]1c,>k??Ѩ}Y朣ޚ>]Y,|e]r53^ |Å/X>Z|۩A9z,Ysvmy??+Û]8^~. wpM׆B@"D @"D 83gFVB(oo#D @"@?&8zux kD+7^m2~߲y6cOsYL=>9 l>sr'g"{qf :maqt>buqI.yupy 5qC;ߑ8 O P9x>ܧI}[5g?>[ 20cX>'~\Є{ ǺN@"D @"D H%>K a{"D @"px; ?oOcQB3-f`̜;5Ft&ٳ9|bM#G̞xadm>5ȵ?g=G-q= |7ǚԚ&٬5qĐ}>0/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`f|c퇏72%I?u@"D @"D w><{ӟoq9ǏG}ucǽ+0 aX)@"D @"D [G?:;to;ߟ}9_ g#|ۿ7y鷮_=%c1槬%G{"D @">{.ݺ|P3vs֟ tǞ~oG9~8 ?ks֟Y=^\oχ봟afump->qjO ~aΉgv=3 m/h=ЋgC|Ї4~Χ53KOf!?Mc`z135s=kiOSsM y{p+s]ӛ uz8_`{y gb&;{OD @"D @"p9$̿[D@'̗Ds"D @"H>neE`M||<QfXX.F,0U19Ƴ&䮂֜Lkvs>k3Lƒ~跿}ˣw\+,x~s!Dw 9[(_pm"D @"D @Hywݽ`Ov?_/;ί}[G|o''-# _D @"D g$0  0իG7{1{ EchSt P΃3=Ï3hOQX׋:v^=Xe흨ƚy܉ssm~3fκ[Ìuzxh/Agx}D3;L.u /s&\cr;_0>jڟ@\g 5d?~j>Ƈ> 2e&I?u@"D @"D W=3vq],w֫'aʡx _R1@"D @^@gUdMЄ{{gc<9"yZuj]$빿>+krHjR M4kbLJ鷟~jzI>!;o}p&gNR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏xc|tO`]Nqxi u"D @"D @"%0K}./Wz1ٿzSb/ױ)qD.׿xُD @"D N aLЄG7o\?13v_0cF/w0XsnSl3f~8Ǟs}sAxù"ycssϙ>=8'jE|@/j}/0X=Yb9|?:YϬ?5}L_d?/AE`y%x1k}a|a{;/6 /|m#D @"D @"0$cEK-aLu"D @"HvfeD`_MqoGW/{c.1cfb"#g3s%]j^sM8o cbӜ10jG]8go/k᷎}809g =|qvn.0}:=|b Lyțas{ZPށ<1?03s'ٟ3Cc1~yރOWeA˭c>WǏ '__yK"@"D @"D o!oK/5tD @"DH au巆 ?^14S[L*Ra꓍X#^Xc];"l,gL}5k~\sC556>g凗>Kγbc-.4"RX>!~3v?!9YǙf]_?= Ěߗo~5lч~C10ѝO-=<٥ Ea{յ |a[A+߄v@"D @"D ']@3*"@"D Y$? b#_'̿27(~1ƣ9B Qˣ3Vl?Ǭ=cc6ɟ5%34ٓǞsswAͱz/a~yAm;s~fٙ'a拲xpİWǏ;R{zs3~X+s':s?ebFb5ɵ?keߘ?(\B㥮 -y"_ִ^K@G @"D @"D HV: 0J@"D @" \0C_rt1:f;bhÈCLgj#g,1˝=cRf6Y;z a]6ϏczH֬{~. >0Rg'3#\k_u1?y#{Ӟ^ֶ?~}䲟{oZ|5w?1{1{?ő].ˋZU;Km6@"D @"D  $?3"F $x+D @"濅/G88a~3^_x1*WXC&Y45'gX.uyC=r=˝"35g鯆zgm9YgbS> 3f>kQgIW5jp f/8ǃ7۝8 ̀YS5sgYyw{gf؟37vA=F.e5_^Q{C]D @"D @"$G.v)bٿߺi|!ǒ;槬_ }ΚG @"D "] o̿ 1Ϣxj_c-gc蛙&5x|kfoɡFY|8{'2_izRccy|%\fs%OI<(a}g΀l,O5b? Ǐ1 s}9̵/󰿱̈#y.~3>k{^_>xO2%/\_X/׳%_jyK|_l:ۄo{#D @"D @.=tHK-aLu"D @"HvfeD`_Mu~ ~ GD‡]V^1uđ58bĚ?1q=g>1t X[A-b97:g~jX3z1ޛ3Ϝ8%p).g-f'0O}9 3>gkfcMf{_!KCs|3=ɹ>G?W;hEQӓc׫3~,GV>a 8a6@"D @"D {$0k 0% D @"D V3Co̿Oc'{51ħ!3sΙg|v|1qKO?k7׳?>g.XeMo1kcϰ?3={Ό7ߙ͋9qy%9 fۇ4?빿53/ر\<}3b]wդ&ޝY6E,;!}~Ofm"D @"D @"W fx!/DT@"D @"3H&\G`Oe2 ~1Wc7쑥fVL1ۘ:tgFc1s?ߺ9{h15֬ۋٻKm1~uzy&{۟s_;sIę|[<{q Wpq Z8j,3?fgM.g1ƽ'q ?̮Guó['c}9dx Ru"D @"D @"%0K}.@_D @"D$?wC_rExK_0d{uFM,zc֋uaޚ\8sֵ??nr7n-h'>gs0s6?S-5ɕö?92. 3k = و5k33 cG_3cx?{Kc uc`>}㼷>c皞!ǟ].Ȅ{' ǺN@"D @"D H%>K a{"D @"px; ݸqoirfh9cVwĹS?q6 Q`ͅ}0xp1=u9}ao_{'{.<㽬}W>{,Q>kO>]&@"D @"D-#0-{='0ҿ.D @"$V84a>ox91"chWF!HU< 9#F2{Ϲ.>cW<͡?m3s?bƙg͹aZij`g{uFbgC,f.񬙉nfg~}a5χ̵1xxEc'|co fc9q폏{z6afWǏO&iD @"D @"=HGصKH @"D @"p  ^=>޵ NJ3+ gFYp-q񮩃"x|3sjWaW ‡fY{χ1=Q a<>kG]><߾̳+a0?GdfrGOCod/lU^g/%Dx$i w`0:@"D @"D $0 ­tA a9D @"D9?NG`&?>>>yc6~5:bt 4zu̘h31h\u35>2W3=۟Z\{ٟs}cͱ{Oy,OcOJFe\QӇ^x~Hb4< w |ޏr9&>!>#d5gu5?k3o=x0'^2E%ߛH?u@"D @"D @-X /#D @"#0iOt8M~2c W v32U5 ?ƈcMcEz2sN5̳8Z[ús&:޳\\|SCMXǞsX.sc̷?3w"3^h慬#0x:ϙqaC 9ü79_N~\̡~{07 Xḅ>sf[wǸ};c.^Zc]D @"D @"l $i%0b=@"D 8< DCЄ^xC_1#`G7<#׿VOS7m~E~ucjٳ6510oy褽뚙>;g߼Zb퍓5wnA]$ š<Ź,ޗCs\õ9ۺПkF?C38Ι}'1'9nڵW|D$g-.!rkk﮿=pX|x|`vͦ5rGN=1Ú|rs|콯w"߳1Lcfs>aϚ< {!Ycy0`ݺQk۟岶ṛ63O-]rY3O9Ԙc 2Ƈ?p;\W^|$aKm"D @"D @. ߮^~ /;@"D @oC_z{n/j EYff FEc]1csX035W'=qsOA]|`fЇ3ٟXO6y=yjx]?qW5 1gArñ8>&<ƐOkseb9LJfW!{?8ìe{ʂ8sf=?c<}qv,oEV]G`0rM6@"D @"D {$0k 0% D @"D V3Cݼq퓁1^q9*:c UuΞfc\&F~cyzĐG袉6޽8kca԰:p٫&O޺6 H!䏏??#؄^n08D @"D @"7A aZ@+3@"D $|Ouݠ@ 2Cݱ{Ĭˣo1 cO]q0cYk,O1OF Z5|.Zeso/;ٟh:L<X.lOxra]CN 9{1sf\0m{l~>O/x>^g/yd]GϚkcÇY rO;wIm6@"D @"D  $?3"F $x+D @"濅/G84a+Wnݼ016ch}btsZcƫM[;8~쩃c?ɳGr=#?gX\Lx/ΌޞW=5gxUC΃00.e1/.&n~hb;޶*sχ6u=|kX 4|sk^fL>?wbvB$:E @"D @"D`K aH\,˿@"D Hx':*d?7#GE @?1sѽdX6q=3{LJY a03kRk+kǚ\bg.>Cw¯ü uc﹀wq[?{r8Ǭ/d18y5cMf\c{kqDϹk0[s>ߘwҲD0o$aX)@"D @"D [ DGb $̿Xu@"D @@{=8`a[j E賀|2ߞm]23y[ujahC{Ϙ[g&4s{=ýܙ `]isYoYc >'/}/G>g _rtvcFPX5{4 r1b1j15y̘5%w~f\{|Y۟g2<81+'λR9s59gzl|ǥ@C0o,Oc%N1;1ϲ&1} ]{`X۟\uXG?f-}.[GlX;/?xtg\e! ^ !UGD毀o>hm#D @"D @"G Vx  _R!@"D @@ a`=84aիWn'gcr"#$GK.ypfdcL>e|So-4~gW=}YsƠ&k1s'͵yg̘9n3=O㡽03{~Aٳ_0ԡ/D ϙpvR˽~ijhs.Ԑc?'>xΓ'D0o$aX)@"D @"D [ DGb $̿Xu@"D @@{=84a>o[~Lx 䨊絺q|14HXy,Y-5efk̥>빿>+kr]I-4Ѭe~o%$8h~Qmg9qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>ѽ>u9Dž%+H?u@"D @"D @-Xۿ72jJ/:WU{]{J_:1?e=eW/5D @"D $?7 0k|cc|=o.fük-caogo9Or8W$Zy[,m"RL~$Yٔʲ_IMS#ddTX̝':j=<>q9s}<3|(6_γ`/3"L|-Z*4K]f̞a z?k_gΩK|f8 w 5g c~ 啼l\2?#_r~r\~MIMkD @"D @"A a~0[FD @"D H?2"p(&????ޝ~ߌ7+=h1hq131jV_͙Ē.og&^~?O i5.kg5{[>L\3K>8y+>FM > k<}0¹v[=wa-(@KÈkkޓ͡\1R6ˎAYm\z+v?Oy E"D @"D @n 7GM aQ.D @" $|c0e 1CSء1>nDc1L}q^2{kkb^alfmbO㚼yw:۟ ^ԛ5}~x}r^Kkq<l\oCz+v\(wqm^z+?~,GB07a]"D @"D @I a!i+'0@"D @"*6%pz}>(} 1-2zb_ђk<~s< ELJY^'Y'M.>2U'#gbϹjܗx{N| g3eM.6?90sc,~~b1x9q}9sO,/=_u%c3~gsg!KKOv7(wqmz+?~,GZ>aoYD @"D @"@CҮW^O aD @"D` UlKCA1ni"W FXb8f葍eGMq.1yΞ< uu#|e {s jߙf{'D\e1a8}0wgs 簿g&Wh9Nu~}޻ƍkkc1P8Bn[DG%r+_6i wf05:@"D @"D {$0=­t@ aD @"DHotk&pj{~`@dꘅ)Vd#=3yiVLİ6f,wkK=s^yݛf{1w#k.:k"\KY='\gτKrN}|Q\KXA?g,/{'{Y~>`ɷkY`>|,/j߹Xl0P"D @"D @&0od%DH^V<@"D #l0۟1Z=ch9c1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMya,/s|f1XĐׇLoS .絗s.-&}{0krO-lgO z_=8sCO暞s_"3~1kX<37?}%1XHC]D @"D @"@!k%0Z<@"D 8A OH'CD/19{5ՙ11jNSC}2qƎRx{>#׳o-b1sYsjxzO}p5q!ƽẬa=s0c泹&j|[`s]}<q3xp 51k^s>go֘|7{f9OO|zlcbϚ;̮o_f^0ᣧ_jP%%? H05@"D @"D $V?}y?], l~zjB(|1Ə%w/Y5g5@"D @"p( E>؟ 7bgQZd r?y򭩦=':f?cO{|}hI9sO:+ͯ<%^9fRdz|Pk?,<뇇3׾X2#F#x3ɛ5z{?x!vc K^~; |<^_boΖ~?/O?Yuۄ7@"D @"D A aqn 4ZG @"D ؟@C85a>_|Ϸ ftk}6ze4 bGZd 1n,33fhagЇ3{I[3cm SK# `^a0Y<{ob68%p).g-f'0O}9 3>gkfcMf{_!KCs|3=ɹ3o>zW;nEQ]-c>%fX1 } ZD @"D @"@®Uހ@7TH"D @"=$V80S_\\o̿1ʼn^ 1b ~u̜s欨qs=}skS{Ϛ쏏5K<>5uYg~f[sZ3όy3ŷyW \Z>^s0Aqy]a恁~Hc[?j.?5L.fܻ3ˆexy#䲯?< fDU\ko?λ -c<)_ 7x|D @"D @"Dw"Z _D @"D {H#pP'?;_ ߌl |=T̊Y0y3\nh51f0.gs{5hL5kbnR۵s?rp]q^^'JF5E\qA q1c EwI-yA ?{&3{ܓ8pٟ{ffߺ٭˱'_9;2{) ǺN@"D @"D XH&>K a{"D @"pz;N >o1F`}豉Eoz:[ky޺g?GMw1ƍE!هso]|f5ٺcy3rX'JƥޕdamAA0x 3c b\cd pfgo}u >֠kQ89{3v=~Gv\x Nu"D @"D @"&0M}@_D @"D$?wSߺ8{6ߘ11aT(3sƬx,X9~b5Ϲ̵3QmϘy3?;ٟ 9=}&b0s3c]l~DXˋ R?{.?Pֈ˙y!8fZ:O乶{r1ߺnjy_91Sg~sɹ=O=x+eD`yfƿ~p<%O? ^%̿/G@"D @"D v tHM"D @"&0V  Wߘ0j8"V411{}hfo5捣8ǘXr93^Ϸ#֘c췆q=p-'b8kЃ=!X^Qm>k. s<H}8oC {{W;qO_}|@!F^-2 U,u1bg?֢h_7 g'5އjI 5~y5!Y ijf&λQgFgSa5χ̵1xxEc'|co fc9q폏{z6af̙95y9ygܼ;Flo,pK}kb>5fvC3Ь=go}|Q a<>kG]><߾̳+a0?GdfrG/ۇ0Ɏ/l߽"_^KVx$m{.akuD @"D @"H a{[\@+@+%@"D !0(LԄg.gc#F@CoW̌ya19VUm<3qYcO.3{5cQꡩε97k'A/w2ڋoe{WŹ5}(/$F z `,3jkco :Bv[~Q׻QS?>8~l>?{_ f@0po"aX)@"D @"D k DGz $̿^u@"D @N@{=85a[7xCߌ0_0eT+TG|#59hivxkgquAL,u1gc7&= jy\̽ƘofDgĽm YG`܇u&3q/ syorl\̡~{07 Xḅ>sf?/O{>[Ǹ'Ɯ^Zýc]D @"D @" $_i%0z=@"D 8= ODCԄ^~u }3?@{f ^"[Yn8Y8꜉Xgmgskc`WOc<>z0;yfcGaM>99>;X}&1yeȕ DgL}`1cC.?ֲͥƚa_>3{[k, y+ ϙ15?z˗gD`y#(Wqm |c W Wۄ+ m#D @"D @"p@ Vx R!@"D @ 0XFNMqqqv/ƿ| ˆ1fPks\4?51r34s&94ēO-{Zh1sڞ֡>Ǟs5oYgƈX>|,Ea{k]ocǏOqK&>@"D @"D #0p7!0M(D @"D $sVEFNMKaw'SEOόo'c#'+'n#ppO=kX{`8άCOϞ;[|8=w| sϘ1sߵg=k, \5b1 ae9X^Ǽ?15:k֜s[ >kaKf]yx>1\؞<úŇsF/c~ca<,}۟^|_곟ɂٻh5g'O?׋2ٵn;wIm3@"D @"D W +ފG @"D 7@{ S柟}|| kD+7^m2~߲y6cOsYL=>9 l>sr'g"{qf :maqt5buqI.yn3|M|G0|[>1@|p_֦'o לk{n-xÌcbv\x Nu"D @"D @"&0M}@_D @"D$?w1_fF[9wCP^MgsX8rGT= ì|jk0{ZZ{o55ߕcM.Yk!ϻjFwa^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59Ooi1%?I8u@"D @"D @5^ #D @"#0iOt:NX񖞍}//!1Z`l=%3uq=\>ıY~fA=Έ!<˝3Xcs.u?k,Wa猡Q 9;ćl~f3SAs~oq9ǏG}uwGO+0p aX)@"D @"D k DGz nt>',tc;q񇰗c"s,dwz@"D @D a@&W pz}c|7i˘ns>Þ3~Z3Ə&sq~M~ZY2{>\O 3kck׈SsMx~bssN<뱼Qmm}A^=k.T\>s>a8^z2 y/ḩxόyoiA ƘYs/{ڟz{obcۇpec [~; ޼N lϖyX1~qOVn6a|=u"D @"D qH[D@'̗Ds"D @"H5neENMqq~vvcFPX5{4 r1b1j15y̘5%w#ha99Oʹa?糶?d,yqcV=Ow˥.51r|krgl_n ćR} !c71W\y>g.z=0iO.{:ɣw>e6v,>׏?}\ٱ/Յ?ŏYoK0AkD @"D @"H@صH @"D @"{*4&pj[n/Ưc(E-1dZc|Sq9Ǐ3hOQX׋:v^=X^ehY̝~z>71clv0coWIwa<ffO<>_"{ &:ė`9.~֎\j/5O @\g 5d?~j3Ƨ<2$?:E @"D @"D`M aH\/˿@"D Hz':&0x>rTEZ]8>14HXy,Y-5efk̥>빿ᾼ+kr]I-4Ѭe~o%yCw4s?6&{'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1~ӯֿ`]Nqxi  u"D @"D @"&0M}FOK<ョ^:1d=e-5D @"D $?7 0|c_n CC/o1#z;g9C_63GycOVN<\v<{| /a:k:PM\2ck9 sO1X:sN=_l3ka=OM_õ<GOK,/fڼ|c{=zkMk_D @"D @"  D4ZG @"D ؟@C85a~f 1]1aFKGst菙Qj%\t~={59 5𻷏.~bOs}4w᜽\?k{:gB 1X^ٕ͋_H!|0j:faX 5p0}#o! kAy/X[F\\fouїq]v4\n|v[AxX1 }+O4.D @"D @"p $̿/G>j tD @"DgH auCD//cbtuňQ-&v#Ra꓍X#^Xc];"l,gL}5k~\sC556>gKXX Ͱp|`szs;aXoSάL*g%LwA,{:ӌ!og_"Ea{kJw[A,c< w?g"D @"D @"pH I^x=gTD"D @"}$߇V8,柍oAch#Z=:ir1?9{U=w3]ϵ8lwC\f?k/kr#c3{=13}˙{byA5/_ҭk.1;S;c a/_Zzx Ea{kv[AH-c<ׂ| 7|~E @"D @"Dv"z _ϨD @"D Hb#pX'?;_ߌtK:g\P7B1+GlX.k|=lgu8s\=]Eso쬣K-cػu^kPΜm6;'z\l(k'A {|a p/8k>=c7яNB{9w¬3k]M.7n,_#\N_/u߽"_>/[IK 5q"D @"D @#n#p D @"D @\3S_ݻwx6"S,|GWM"{|qLMzd%1c\uXٟ37kSA? k{,Zo_uϵqυ^^B^yx=:{&\b0 tb㋢.Z7x|zoeBx"`p1.?p_si}`0#3Y?{jak?{b2zr6kgYzm1郗/ ͎F$?E @"D @"DGI\+׊@"D  H/G:'*xA_QޫPΌquVv꓉3v,:ۃ<|Nk˚3WC=Ӄx곶1 e ?{3͵6Q{5AN fŌq^?{Ƭ<ǽ33~zc폠#{gvm2kZ=j V/,a^@Q"D @"D @~D aX|Sb vO`{VB1~,c~zo?y"D @"CH(NO>1@?*Ig?fcEl,}33d"fcϓoM5995a{s]C3MOj[,/?6T>~ֱ_l~)0 274:僲^ö&P1fd/\?0r0|y?ϥogM||cO s^e#{sKm1ɽɪ&̿ァ@"D @"D 8 =tH%̖0:@"D Ϭ xH_0+^+9f8"fGqch7#'F#?އ>?Nkk؟Z95E,fPO pQ:{Y|)Kq9k1 N?>6q L~[Yaam<3u]0cŬk3Y7sÜIΝ1~ѓ?~:u/E6j9-1yo'_}F @"D @"Dv"B"D @"A a 0b|c/ƿ-NjcOCf30gEcX&sog|l]y˚>3:cbm?Ǟaf{x_o,͋인J3=xAc(3LjK` ⨅_ 5Qs]g^ه3s63u֥n_o>jّ&?KI8u@"D @"D @5^ #D @"#0iOt:NM~~~ExKߍ0d{uFM,zc֋uaޚ\8sֵ??nr7n-h'>gs0s6?K-5ɕú?9W2. 3k = و5k33 c_G_3cx?{K\s:10>q[sM?"Lw0pD @"D @"5k"#p_/G @"D G aӞt0ݻ1;* gƏF3fucIJ}%f͞Azm{L ͻ眱}ر]l3s}Fxf+&RZ^Ls5>F>\ Yg,5{B5 y%ϵ؛7ֵ${13Af7|Fb ?ks=z("Wkv>{?*Q>מ0>]&@"D @"DH^x{+@"D ό@ 7 ѐ㻟x>Zd 1wh1jgaW+MMbsYl%53qލ>Xo6?󇌟^\Oy>,g%+g?k}k0CysmMn|ӳys6*0cƳX1}cΎPԯlw[AxX1+m@"D @"D 8 ]oD @"D {HB#p`&̿uG:wc 8E+ͬ=eõ1;ǻdDaΜ1}sɳ>>m4b{}c\3l_rk gp^S1[Mަ'Ryq@IDATهf9>0F?{v0ZYr|<Ovxau:=^"%i0kv _D @"D @"G #JG _Z)@"D @ NGf&̿8ww=>1gb~s:dfsAPm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf<'^+ػ2.ŨCyY/^cQXukx3ލٟ5ƙwulcsG'W 4;{ ǺN@"D @"D XH&>K a{"D @"pz;N oݺ51/f .vFX:sqAs̼H[3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#ok^:>3G{13{c``g}ۃٸ\c93e}e갗\ȝz8o>y0$?:E @"D @"D`M aH\/˿@"D Hz':&:o11cg5{vϚ/wgel>qPc??1>|,/fڼFGb?*Q>0>&@"D @"DfHwO{;@"D ϋ@7 oݺuvo1h2b4 Ĩh5FlkFyư632nɚع?= pf?f?"{೿=rC BkW2.s!<<,Hy8ruo.O,0 8a'Zcgco]YGά^8;&AQk]o#ǏO&_iD @"D @"H@صH @"D @"{*4&pj{wo10ucF\1GXï`Uja>gĠyX^61c>3hb4|jwog-Ω|5ìsg.>z.W.0}H.yyޜl{qf[{qK'|jG s=o?Ǭጏx{8j<3Fͥ"eE`- {m\z+?~,Gx]]5@"D @"D 8c] oBD @"D oN a*2&pj[.7_ </zb~f~+>qh=ELy}>Ya?q릆{Ysqfz}cękc՟{ƌco?Yc)p^y9<>sa YcX(>`9ֵ']۟>Jm0x}=9%3SAO?q'͓C(woq-0؛"D @"D @">$THuveF @"D x/A0/ox:a4hݣ'fmXs =Fe.{Ϙ1??Ѩ}Y朣ޚ>]Y,|e]r5f„@>䁌,g p-> 3z3ges^gap}FRG=MxD9=?y^̟ͮ/w߹Kl0P"D @"D @&0od%DH^V<@"D #l0{wuc GeMX#F_]j3}s=ΰ{`"fџ\ag;;>>9ދ3㸷gi{{ KrYKov.&n~hb;޺*sχ6u=|kX 4|sk^fL>o?" Mw0pD @"D @"5k"#p_/G @"D G aӞt02|-40b̹bDj=c'đkzƑom[8e;״51s7Z?~l f7t|cHˎ/.aHñS"D @"D @毉HD @"N{!pl E賀|n|cg.<|l40!g3G9ýpF ֞^ `]isYYc ]%/~/G>g x` Ή' >8f3k z؟x?g}nj|9~z/X ή{ ǺN@"D @"D XH&>K`w'?a/?E]?$c1旬%ggu@"D @"p  6柝}|? 1L]ov tǞ46~4ɞLjo0gbz&gj؟=u];\Fk{؟s]Ռok ZYsyPz6!g 5ғY{Ag>Ƴof{Ls b0\Ϛ}{C7>|+s^euz8_`{y W~p3 o{#D @"D @@x"P|>a$#D @"\@q++ pj{w~0r٣1Vh>!LU{LcƬA,Akyj͵gm9}&cÈo~AX.u3[s>ۜ?G~fvg >CAIü!8ļ[/}/pgD0po$aX)@"D @"D k DGz $̿^u@"D @N@{=85a>oW1}=1*E:ceh,3;}Xsf.Yv]Yk|GJMjfM,0O }\/⸣G {6;qJKya}^t9aMk7^su8uuP8ӼgisP}s}?>_񛇏~rڏk%KKW0pD @"D @"5k"#p7:ZK/fOUu=0G_ֱ%qD.wlُD @"D N aLԄg:wce~yì;8ceL9̘9 {5wOY6=f9Aܺ>gg#O;'2 ! y9_ցJmbR'}X3a{Ə)יsRc6Y#AjB8,>z_fE`y%x17cǏ׃_m_F @"D @"D`H E%̖0:@"D Ϭ >w7ce3Zb=e}3FLZdWsf.K[kɱg߽}O,u~3F 裹 Y{3ֱ<&b8>ήl^FQ1CZ@3Oy3 pp]X ;=}9:0`d6sFs37xԽ=Ư}k첣!|PVrc ǫ]yo^ywD @"D @"H a |=QHԯE @"D ?C /+'*xo3v+FOm1X SlIJW:cعy>fc?gY۟&oꭩݴ>g98üs%p^zWRZ\hE<|C,6כ_F'ع k\'z:pf=_guS<+/i~frObf 9|c?ß- {m\W G`?='M9kD @"D @"CHH $=""D @"C a>a 0l|cGoG)byW@:qOOB|0}gQ>aֲIAUșsnA<%Ap(~fB<6Yp}Yd>X>kaqs_ bOy}n]s}njߙ:c>xÓ, l\ Gj?O0s.@"D @"D $0HzFED @"D ؇@}h8=arPf[9B Gg~>7Y=zdcrYlg?kKgi'=<.zccg_j޵\w|oމ?0bEYc<8q b+N_ gx\==9{~,w{GιfG_nrq#d1ڟwXoxx MZ]p% #D @"D @" $p++HhD @"D 78E 0޽;X>Ƴ1:f;bhÈCLgj#g,1˝=cRf^6Y;z a]6ϏczHڬ{~.>0Rg'3#\k_u1?y#{˞^ֶ?~}䲟>{oZ|5w?1{1|#;.ˋڨw.0;$g(+D @"D @" $Y xW@"D @n 7?''̿8w}cV`5ZdΘg t~jYG̚\Ycjg3>f59[~W͌Y0UcAqrs<'1b+qyeK lc@IAS [ޗiГŗȌ_#=k֣?oO|IhvL70`$aP(@"D @"D ?"0GHrDZ $̿V5@"D @N@|=8Qa z@^M4>bufs dPLc1l,w[X\֜9S=dM}qo.kXO܃8̘l'֨%\WF blwrx0^,\7fM-fs?8ל۟5f}9=>͞a߼eo~سN>kۗY"W_|}xg  u"D @"D @"# $GF_/O_0߻Z xcKG ~ٵ>g#D @"@CO'pzw$6YVYM<1k-gc蛙&5x|kfoɡFY|8{'2_izRccy|%Jf+%OI<(a}g΀l,/5b? Ǐ1 s}9̵/󰿱̈#y.~3>k{_?~O/^N./7؛%_jyK|OVn6a|=u"D @"D qH[D@-a3@"D @'0feDPNMuWw?>-GD‡]Z^1uđ58bĚ?1q=g>1t X[A-b97:g~jX3z1ޛ{'N \YYp ĵa瞳ٟ53.uxvrWcΎ/0a^JñS"D @"D @毉HD @"N{!pj-[n ';ثFp_6zlb^$c{9gp]̵qh@uȥ?q8[#[w]?5{`!<1~kz0Gß^dýc]D @"D @" $_i%0z=@"D 8= ODCԄ..޽7m@؁4U93~4̜1;%|Xs s.1sm rk3fjhu>=53ǎbgCfO=F`3 3|W6_6:bϞ5brf`%:cc*g.y޼\&1cW?{yN 8߼q|ywrnqg^J1X^~~Ƶ﮿8\1p~qO~(~W o#D @"D @@k] ;hD @"D $k{#pj7#Gp 5FL c^Ze[GMyh11f9'\Ό~ȷ5:؇6avO=\ˉ`O}s?~l|[ x"ac>$)R% {F}[sp9Nyџ>5` 0c֠y33gYS5c|?D卼l\y݋X1W%߼G2@"D @"D 7@{ܣ'0_Q@"D @~f^X׽QNMW|31"chWF!HU< 9#F2{Ϲ.>cW<͡?m3s?bƙg͹aZij`g{uFbgC,f.񬙉nr?d% @~ba9sm.q ^X.> X[wv[rU* %ÕGc<<ȼ6ܶ~JiڒO̝5ˑ)KRV:k.X~bϝO 1j8==0gk3k3f4s|>1`~v0ZYr1gb~s:dfsAPm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf<'^+ػ2.ŨCyY/^cQXukx3ލٟ5ƙwulcsGٓz+^Tc]D @"D @" $_i%0z=@"D 8> DC؄nߘ }3|hY;#SUSP9c89f^3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#ok^:>3G{13{c%qc%+>gRa/;᳿8`?sv`xi Ru"D @"D @"&0M}@_D @"D$?wc{_f;YoAEzgMig-s&Sc͞9_=~F'}O_aO?|ށ= bkoO+z\\0/e1B8BG-Ή_%|X305wo"588q?3p60?܍Y?7q#n'H.Z\3C2 rmƿB1l_5ō'̿@"D @"D 8 Et\HG!@"D %0Z%c柞|tov hUH{nl-^{k&Z>Xm61[ztꑏy3c}g"W6\H{a cσ)~g̾0D]7Z,=cQfjٟ|^6˚|̡~c1>y,/fڼFGb*Q>0>&@"D @"DfHwO{;@"D O@7 oݺuro1h2b4 Ĩh5FlkFyư632nɚع?= pf?f?"{೿=rC BkW2.s!<<,Hy8ruo.O,0 8a'Zcgco]YGά`|~郗/9FPԯlXy'_\m毀@"D @"D  $#ZE $HD @"D ؁@`=86aɽ?c3+XU칚i95~jbg1h?笭M yό. jYsj6F 0眽l|e Dc^n7'3^Y^R}54s|i'ZbB3ǵ=C|ۏ=1k8#1όos>:@PvXآ߾Ƶm/cǏOqK&>@"D @"D #07!0M(D @"D $sVEF`MKa'SEOόo'c#'+'n#ppO=kX{`8άCOϞ;[|8=w| sϘ1sߵg=k, \5̺=c6X|(@Qo9G5}0˻kYƯ˺k;ޅ |Å/X>Z|۩A9z,Ysv{_?݋2ٵ^(0 ;$g(+D @"D @" $Y xW@"D @n 7?&?===_| kD+7^m2~߲y6cOsYL=>9 l>sr+g"{qf :maqt5buqI.yn3|M|G0|[>1@|p_֦'o לk{n-xÌc<| fE0$aX)@"D @"D k DGz $̿^u@"D @@{=8Ra u 9*Zha s>ň${6ǚO#xDϰ?>ͧ̚ e=省XZ]Y{?;u&f~e六|NϽ3~#ٓ9f}!1q wik2co[3> ~0X o̿t|cweD0o$aX)@"D @"D k DGz $̿^u@"D @@{=8ba[z6"Y@HT/|cg.<|l40!g3G9ýpF ֞^?4c͹_凍kZ?ӿ#3f{/8/9;ćl~f3SAs~oq9ǏG}uwYz AHw0D @"D @"5k"#pot:寰o0.f*j~zEKb19c~zY2~vZD @"D {"0Ok+8>aG>@ߎf2~g;_V̷I?F~~S6?={k4 ߞe?SZ|5\G/z,fx[[_z>gϚ2׳>>iO=kg1B6 887|3cgkgc9ܗ=O=ν711>}ɃQvxaoW֛X~2/_5&̿ァ@"D @"D 8  =tH@h@"D @"p5 ƭ NOݽocc fXX.F,0U19Ƴ&n?9?穙6^#2|g%#ẙcԥ&FΜoMYls!wڎp\J}>$q 2X*k3o=G=XϸF?EpY5yn"u߾Ǝc6\+;EQ"{9[f*Q> W@"D @"D #{]oD @"D ;HB#g&̿u?|`jCQX.Zdh%3C:ΌS9~lG<}ƺ^Աl/kDcLSC|'KE qx죆g8%P᥼>f/:Re&ro9:|:SgrZiއ349rF}9Ǿ_Z $:E @"D @"D`M aH\/Zl3WU1/ױ%qD.wlُD @"D N aL؄ggg'1s 2aVnj_` 2~fq=暃Y;'sEA眇 n]3}N{೏qO[^^y~ bs˥.3fOf`=dS ϋ3|f8 w 5g cJ^b6 ^o~n/O>>$̿&@"D @"D  0A0[FD @"D H;2"/&?===ޝ? ~ߌ7+=h1hq131jV_͙Ē.og&^~?O i5.kg5{[>L\3K>8y+>FM > k<}0¹v[=wa-(@KÈkkޓ͡\1RyɗeC`~6h{}!vOy E"D @"D @n 7M aA.D @" $ |c0u 1CSء1>nDc1L}q^2{kkb^alfmbO㚼yw:۟ ^ԛ5]~x]r^Kkq<l\oCOsOf?uz84yV^xG둏IJ3>rO?y%ß- {m\W䏏??#\!zN0s.@"D @"D $0HzFED @"D ؅@]h8>a?(} 1-2zb_ђk<~s< ELJY^'Y'M.>2U'#gbϹjܗx/s-w68%<ڇ#f˚\l~ saX b^ssLrX^{b7tK 6o?f!C˗ ,odQo_gڼ |akA ?g"D @"D @"O I^x=gTDjj@IDAT"D @"]$߅V/a/oxzA:g\P7B1+GlX.k|=lgu8s\=]Eso쬣K-cػu^kPΜl69Gz\l(k'A {|a p/8k>=c7яVB{9w¬3k]M.7n,_#\N?/u߾"_>/%i0kv _D @"D @"G #JG _Z)@"D @ NGf&?;==wֿl DYA;bE03ǙfK kcrkϹf_Գ?g꥙׽oN~~X.k36k^ 6G̅> {uLa,E]L?kϵoy~r_糟=ַp->뚃߻ڟ=ߘ/qdE`yQoxg e"D @"D @"3;#+!@@"D  $0'Cgg'xjأ=f3]=d&&s֘ifnjG fֵF3c. 3tĘ? Ncy3s=$\ >oeBx"`p1.?p_si}`0#3Y?{jak?{b2zr6kgYz]|c/_$+I75@"D @"D H/HrDZ $̿V5@"D @@#|=8Ra jo@^M4>bufs dPLc1l,[X\֜9S=dM}qo.kXO܃8̘l'֨%\WF blrx0^,\7fM-fs?8ל۟5f}9=>͞a߼eo~سN>kۗY"_|}x'  u"D @"D @"/ V7:S76Nw=jB(|1Ə%w/Y5g5@"D @"/ E>؝ O7|gQZd r?y򭩦=':f?cO{|}hI9sO:+ͯ<%^9fRdz|Pk?,<뇇3׾X2#F#x3ɛ5z{_;!%/^]_Xo>/_boΖ~/O>^uۄ7@"D @"D A aan w %̟i@"D @";3+#"pl|~_1_pD$/|3QwLyjY3#Ƹ\4ٟsfCC'm [5O-"sz3qzu8ègi,s@\ø ?, 06:̮f|1bG {5}[c,yƛCqwa$>z|W;nEQ]-Ǯ7|>bKa!kA W@"D @"D #{]oD @"D ;HB#g&?;;ߘc'{51ħ!3sΙg|v|1qKO?k7׳?>g.X^eMo1kcϰ?3={Ό7EvN\%pAj@{I9w1!zoM b 0v,3ϻL0u7jRZs,"y˾`?9/ByuEtq^_??̣B07aǬM"D @"D @J a^q,%0 @"D @";*8{%p|!̿@o7#Keͬ c1uVόZ#c_u9sDcjYw3ڮcZM?1W2):w>3=xAc(3LjKQ `1q[sMɳ??aE&;I?u@"D @"D @5^ #D @"#0iOt<M|cHS3G\b?@>3f G=c]sS4@9vl?r0{L`1{c\g >Ỳ.c-/&H|@Y#V_.g X3˚=fkro1a~kkr"=k܏奟+֨B^b<8a{ sQ:>İw/\ν|cf f6}1kP<]ۋ31>{_F^^6^o?~,GDo^{wD @"D @"F a {=H F @"D ?1 b/(&GCˏ~71"chWF!HU< 9#F2{Ϲ.>cW<͡?m3s?bƙg͹aZij`g{uFbgC,f.񬙉nrw?d% @~ba9sm.q ^X.> X[r5}skkrw㞞k|5Pه35~/cPԯla W Wۄ+ m#D @"D @"G Vx R!@"D @v 0XF`Mo10~=Ʒc 8E+ͬ=eõ1;ǻdDaΜ1}sɳ>>m4b{}c\3l_rk gp^S1[Mަ'هf9>0F?{_;G-muhs2F/_kb0ss 93ۓ3rɡ1㓇 aÓ^Fa}EtN IK 5q"D @"D @#n#p D @"D @\3c柝ܻh3 1{^239Zg | Ze6Wĩgf=LrG.>9^\X.ks85wXk/Q]b ??c/\ΨO탏5قo G]FM[ϻw6z?{|#?x/*aDS"D @"D @毉HD @"N{!pl[noaaˬ)V1Fkr3/֋sa=r֝S3!8bޘjrǚ83=r1cVF5/d s֙xΌ#ǽPɱrp`g}ۃٸ\c93e}e갗\ȝz09;0{) ǺN@"D @"D XH&>K a{"D @"p|;퉎 ί~y }3?@{f ^"[س&Oݴqq9f쯞Zy^kf>ak1r7NߕrD..k@{_!}p!įC>xq cx8gf`ڟ8kxƬXsrigyB$g-!k^㿘y_?xFCG @"D @""F.$D @"DHnyV- OOOO>w7c|;zb R*cj=W~6Y=s 5{X|M\sbyуAσ6-=:Ǽkəމ|r3q+E\`$^=kf0އd 3f_"vGur?1 Ψ ?Z>/wgel>qPc??1?~˗gD`y#(Wqm A,c<@ W@F @"D @"D`v"B"D @"@ a 0۟_| ˆ1fPks\4?51r34s&94ēO-{Zh1sڞ֡>Ǟs5oYgƈX? (;,lQok|1Xy'%_iD @"D @"H?uH&@"D @"9"#o&̿ul|c0h'fgF\nj5=Wog֡gϝO>Fy̞vO>_g̘95Wos>f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iݱ\b8O<1g ~r`Oϟ>wC(oq-q#'6a67%3NEE @"D @"D}H>V3W'0ʌ@"D @"* _E%_ o a_ ߌt h*3GOڸ<3#F<{ f]1c,>k??Ѩ}Y朣ޚ>]Y,|e]r5f„@>䁌,g p-> 3z3ges^gap}FRG=MxD9=Ưϟ?Y r/[wIm3@"D @"D W +ފG @"D 7@{ c柞|tx>rTd5aŊqh6?oW< f,b& ycsy383{{_8Qm :$żf>k&v#q>[r>|/kS{ۓ ɷkΉπOg|=~ea>y" Mw0D @"D @"5k"#p_/G @"D G aӞx0:|-40b̹bDj=c'đkzƑom[8e;״51s7Z?~l f7?:1;ҲC"K70D @"D @"5k"#p_/G @"D G aӞx0o-=C, _$gLgkFL>a6p]gZh3f#Mk^b8#xkp/wXg\~XFW5K_ǑC3=@Q xbÌc6N? ˠ qַ~8̣>F;ӿJpv $;H?u@"D @"D @5^7:WX75Nw="%11d,?o?{"D @"=H'е0{qzoP3vsm~gx3{/\{${#Z?)ovY=^\oχ벟afump->qjO ~aΉgv=W3 /h=ЋgC|Ї4~Χ53KOf!?Mc`z1351z˞ޛ>|W(;ӫ xq,lǏܯ?xfnSG @"D @"E$}|I4G @"D WVVA؄gg'`11ahQGc|,#CYnjYXr7֜Lkvs>k3Lƒ8ycyC,qىy5_x֞bg"ǬÚ0~5(,-2BrhNgƩO?6Qg>EOOc]/w{cyٗ5g jfm3w\k߻zƌm~Ìu^'߅^=ƃf? |Ygv/\"_LY;rw?`|Դ?54|jowgO?2$:E @"D @"D`M aH\/˿@"D H|':&8x>rTEZ]8>14HXy,Y-5efk̥>빿ᾼ+kr]I-4Ѭe~o%"8h~QmγMvNR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏xc|/׿`]Nqxi u"D @"D @"&0M}N_-ҋy*{]{IїXr8"~G"D @"c'0pS&pl{wo_9v_0cF/w0XsnSl3f~8Ǟs}sAxù"ycssϙ>=8'בֿokE|@/j}/F;؃?\3qNY1?z|_fE`y%x1m7cǏ'փ_m_F @"D @"D`H EK-aLu"D @" $ߝYc柞|tofĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{%|]ټ DcNXg>f\Aុw {rua5̵\~mPgo.}{{<|ˍk첃!|PVrcWǏ_ '߼"@"D @"D 7@{&0_O@"D @~_ZW1T:ߘ)FgPWUbb7"ձ>8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/K.?.9 xHa 6Xl7!_F'ع k\'z:pf=_guc<+/i~frObf 9|c'<6+^_G`='M9kD @"D @"}HO $=""D @"B a.~ 0d|c>ߘ=1Ssuh5X9XaIϢ|ìe/&Xkx3k\5ރx{KRX0 } ߄۟v@"D @"D ']@3*"@"D .B O07cz}6ٺxF9{sz.97vQ1]:5mgw6# s=.6_5ƃ u>~|0y8Z5r+_w;a֙y_|.{&7BïOY{oAQo_n/ IK 5q"D @"D @#n#p D @"D @\3c柝ܻwx6"S,|GWM"{|qLMzd%1c\uXٟ37kSA? k{,Zo_uϵqυ^#^B^yx=:{&\b0 tb㋢.Z7x|z ~A==1}A =9kz]|5rܳƬa= .1郗/ F$E @"D @"D_$$9"p_+G @"D GH ah0}5Ʒc GUx&C:39YMijO&ر\oчzz6[E,f.k_ Os&>ĸ7\5|Af|6Dok^p#n1[9</p3ƹzk>f̰?go^?z|?\Ys'ٵˬk?z/X j>䓄{{ F@"D @"D  I\+~)bٿ߻i|!ǒ;旬k}ΚG @"D "]N|>Hm (/y6c9Zdr73M&-2k9K4ƜϹc'nKWJxPj/Μp3LsX^>(5lk~@c}ArÙk_,}ac#ÇG<~\f|g=ֿyr/^N./7/7gK ':m{D @"D @" 00C4ZG @"D ؝@ݙ}86a>/~/8">lhĨ;&<ȬcX.gfш9ggFF j98sS:aԳyl9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzsgO=>Ý]7^_]dӋc>%fX0 } ZD @"D @"@=®Uހ@7TH"D @"$V3c柝o̿1qbSꐙ9L3>YQ;>z8ꥉܟ5k3[x|k,/벦瘵Xg؟=gog";' | $aڻsg=&~1;]~l&\̺5}ɹwg kka|@fgc7쑥fVLdž1tgFc1s?ߺ9{h15֬ۋٻKm1~uyy&{ݟ+;sIę|[<{q Wpq1s&l ⨅_ 5Qs]g^ه3s63u֥n_οsv`x Ru"D @"D @"&0M}@_D @"D$?wc柞|to5ҷc GE?>^]5ccޘ"iuث&89ܽu~bG=C.ߺ̜k.uRm frOΕK+ ڂbσ`@&f6b' ׵1xX~Fc8عg?{ٟ"$:E @"D @"D`M aH\/˿@"D H|':&̿uvvrm1occ  șQfYX.sk nskg^1SC9g?;ٟ 9=}&b0s3c]l~Ա~\~>g/3C,qe3P9c upsm-bZjO3}O-3Ǘw'?{W#6{b/_5o*a ~=z"D @"D H D`@-m"D @"5oxoM|NUa菉A̷C6xi6o-9L<IJw=˙O\f5k9\쉵qOܕokXs!_1 ṡ0E9~ϨouxNb߻.^>{13?>̘5o~g=~/QngE`y#x/}m7|^??#U|| 7=aA}L"D @"D  #0 $?W#D @"?uoc!Gw?^h14+EQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lch2~^zc~ry ?68~,ol >9ε5qO5>̚g|ÌϚsb_?|t1gF`yq(Wqm AxX0+m@"D @"D #{]oD @"D ;HB#g&̿u1fV@rZ☉]S 2"{E0gx֘>湿Yqs6\lc/53c8[|Ԙ-o&oSLJCc {xf}6|x}g/51W9auoCϙ9Џ_GO0/l߾"_^K~Iڤ%]8@"D @"D @WVJ"D @"C aQ N]_ @G\3b>fs2Cxf3Ǟ\fjr~SCS k/so,9rO^;e(s1jP^ IA􎟁X.g'~ulw~|gq];o=ܟ}>^ f@0o"aX)@"D @"D k DGz $̿^u@"D @@{=86a[7xCߌ0_0eT+TG|#59hi90h9so Xc{r1rqoL 59cM{c{ύ1?߉\ψ{+ۚLlX.`1ߊϙԲ?uga.ggo=?GƜ^Zc]D @"D @" $_i%0z=@"D 8> DC؄^Wc=Fnx[G^Yn8Y8꜉Xgmgskc`WOkQsuɡ?< 8z[H 1gp;;,+yŋٸ6/l{XyJ/a'?@"D @"D Y߬>a"D @""0"pl[n/[fgc(G231*cj/=LJG1L:鱼{&vO3>jĨmr뱽oPû \59 s=ƹwa|0:\~e]K-9>5þ71<}{'fX.f-[Wџ3y?f15??yKC"+۸6 |a W Wۄ+ m#D @"D @"G Vx R!@"D @v 0XF`MvvvrƯx>za3{D5 V9{fyq9sF g9kkC93&Fçx~hQ:9g.<}{2_,|#ч򘗛LggT| _{ɧ=aq9qmOc9{{s3c\z,(qm>~ A,c<os\毉@"D @"D $:EM$JD @"D xs ߜU7cߺu61RT}4x33?[C{X.bzs \75S֞+73S'#$THuveF @"D x/A0/ox:a4hݣ'fmXs =Fe.{Ϙ1 h>[sQoM.Z>.FwaB} pa{@ 3zvj[3LJ9cy8W\ozY>#|~Σ& fb<}֜|b ovx$6  E @"D @"D`g wFVB+o#D @"H a |=O OOOO>wac<9*m20b 8WwqS1gzF<ܱ܊<^ǽ=ïN{k](Xa`\b^zpy 5qC;ߑ8 O P9x>ܗI}[5g?>[ 20cX?z+s^euz8_`{y W|p3 o{#D @"D @@x"P|>a$#D @"\@q++ plӓ{wa0r٣1Vh>!LU{LcƬA,Akyj͵gm9}&cÈo~AX.u3[s>ۜ?Gnfݲg >CAIü!8ļ[/P?!9Zbt P΃3'sg(3O~k᧧u;[z豼˚35X6;_|n]=c6?aƺxxh/Agx}D3;L.u /s&\cr;_0>jڟ@\g 5d?~jݖ\GfJdɜ+>@0m4 cYܖ$e҈'}ƨO?xwvLx Fu"D @"D @"&0M}@_D @"D$?wSf~GWc<9"y.yk 5.i%f/FKf~Ú3sz{/ʚ\c;rWjR M4kbLJ鷟~jzI>j{މS5^ cs,%\+lX |,/o3K}| zř}8#O3ZlK,ggsL|_?|/X~\+^Zýc]D @"D @" $_i%+g?Uza%E_ֱ%qD.㷿lُD @"D N aLԄg:Ʒce~yì;8ceL9̘9 {5wOY6=f9Aܺ>gg#O;'2 ! y9_ցJmbR'}X3a{Ə)יsR]Ϭ?5}L_b=y/A"Wkvכ_f[yK|O6 |m#D @"D @"0$c"fK?hD @"D` gVFEԄg߻1|t-1>?f&F-2~93Xr%5؋3>'A?~܅srMf~؇s 1scygW6/~#ч阡Ça- @8Wnk.co|s s?s0{_99ԙK(_|sk1]o.c<ׂ| 7!~/#g5B.cOr8/3ͺx4?39zO31G}ώ6+]o#ǏWo&@"D @"D ! $?$zE濞Q@"D @!0ZFNO61ſ7EFO<+ \8Zr'o'V!>q>tҳ(0k? Z*cZ9WM ށ v~?|oމSp!}8b澬2f`O,f508y/g'<|}K`s>cLr1O|iɎFu6]o#Ǐ_ 'M9kD @"D @"CHH $=""D @"C a>a 0|~Pz[9B~/Gg~>7Y=zdcrYlg?kKgi'=<.zccg_j޵\w|oމ?0bEYc<8q b+N_ gx\==9{~,w{GιfG_nrq#d1ڟwXoxx MZ]p% #D @"D @" $p++HhD @"D 8E 0޽;X>Ƴ1:f;bhÈCLgj#g,1˝=cRf^6Y;z a]6ϏczHڬ{~. >0Rg'3#\k_u1?y#{˞^ֶ?~}䲟>{oZ|5w?1{17|#;.ˋڨw.0;$g(+D @"D @" $Y xW@"D @n 7?''̿8w}cV`5ZdΘ5b ?{fɬݣMfM.153gk?뫍fƬ]g誉1 89e9Fkܓr1 mPŸ}yΥ1W äuf b ^AX˴gb\sKdƯ5f џg`Ʒ^$4;&IW0`kD @"D @"H$9"p_+G @"D 'H a d0}5Ʒc GUx&C:39YMijO&ر\oчzz6;E,f.k_ Os&>ĸ7\5|Af|6Dok^p#n1;9</p3ƹzk>f̰?go^?z|?\Ys'ٵˬk?|/X j>䳄{ F@"D @"D ?@#J`w?O/?\?Z-_o<%㷿Z@"D @E aH'8=a;_ a,G&yK5ٳ\hG̚AR|c[ǒ%$Z€˰3g@ \x6z ۚ@ǘg_rpKyXfD|a<~f5yYo?y/qv xoW֛NjcK/bcl#d3u3cs'9wGOpgM(Wټt{z##Č?O0AkD @"D @"H@صH @"D @"{*4&pj?0elq"WCC|_23眩}Ƈ9+jG\OZ4Ԟ~s=cMf{e]ky? 3cxcm^dU䱗3LP\|^{sy``X cr1ˏYw&59̲am-bqgk'Ͼ|1En;ZDۏz+gX1b s ބ;6@"D @"D 8(]@"* @"D ^ χ0c<1`,5br?6a^ ץ[=3kxsٜkg&Scvm܏c7\wjmMѹ3Aųw'rgg0EO,96{9354:sƞGcv1!D w0v}r+ͯ\`Hky1Agsr93O0g\1sX 3ր\ ĹK?qW6 Q`ͅ~0xp1=u9}ao_{'{{^ΎF^^6]o?~,GDo^{wD @"D @"F a {=H F @"D ?1 b/(&GCˏ~>^h14+EQ=FZBm\_П1Wij0_45a3Ͻ:#d1!3xy7lch3~^zc~ry ?68~,ol >9ε5qO5>̚g|ÌϚsb?9;2ˋCQk]o/c<@ W@F @"D @"Dv"B"D @"A a 0֭1)Zif(+ w%95u #Ws|gc{N7=h:10fk_c83Gr?l6u|8A>4k0ư1[qBϬQ6/l& 9g؟8̾0~9=9#1>!7ux (w/I^K@G @"D @"D=HV:W 0 J@"D @"$p:585aٽ0=3!3cuFXlUzhsaLzfؓ^X.wo⣿zhjse6Zs ?]3{籼?[ޕqq.FMz!03y?匚>د[ûְqnԏ1μ{g㭇G<?y/1E%?ܛH8u@"D @"D @5^ #D @"#0iOt:NM֭~1c W v32U5 ?ƈcMcEں9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qoe4x[Bp_xC_1#`G7<#׿V{䩛6q"N:g15YSjqN.9ǚG{99'sffy~nE|o9w!v{?~/^5X>$\Ƶ﮿8\1p?W~nq# ok#D @"D @@#y]#[ (D @"D x[U$pj|0zo@OXA*ZeL^2uAfkpN,>c<>z0;yfcGaM>99>;X}&1yeȕ DgL}`1jĨmr뱽oPû \59 s=ƹwa|0:\~e]K-9>5þ71<}{'fX.f-[Wџ3y?fcj0~>~郗/9ΎFPԯlw[A,c<@ W@F @"D @"Dv"B"D @"A a 0_ c3+XU칚i95~jbg1h?笭M yό. jYsj6F 0眽l|e Dc^n7'3^Y^R}54s|i'ZbB3ǵ=C|ۏ=1k8#1όosyAqX>`~^㷻 `?0z0M}"D @"D @G aX)oB aP*&@"D H權 0֭oOߊOcrӫG^OVOFຩzְ_qYj=w>q1{=~1ckzX \jy^=\v֘9#Va/ʽ,au l'8ϻR<51y_8?{yO[sQoM.Z>.FwaB} pa{@ 3zvj[3LJ9cy8W\ozY>#|~Σ& fb<}֜s﹵{/o 3&7" Mw0pD @"D @"5k"#p_/G @"D G aӞt02|-40b̹bDj=c'đkzƑom[8e;״51s7Z?~l f7t|cIˎ/.aHñS"D @"D @毉HD @"N{!pl E賀|n|cg.<|l40!g3G9ýpF ֞^ `]isYYc ]%/~/G>g x` Ή' >8f3k z؟x?g}nj|9~z/X ή{ ǺN@"D @"D XH&>K`w'?a/?E\?$c1旬%wggu@"D @"p  6柝}|? 1L]ov tǞ46~4ɞLjo0gbz&gj؟=u];\Fk{؟s]Ռok ZYsyPz6!g 5ғY{Ag>Ƴof{Ls b0\Ϛ}{C<|+s^euz8_`{y W~p3 o{#D @"D @@x"P|>a$#D @"\@q++ pj{wn0r٣1Vh>!LU{LcƬA,Akyj͵gm9}&cÈo~AX.u3[s>ۜ?G~fvg >CAIü!8ļ[/ W@"D @"D 8 ]oD @"D {HB#p`&̿uݏ>b`j7\Kf5Ƈ:u>sⱟ뇏~rڏk%KKW0pD @"D @"5k"#p7:Zl3*{]?$v:1d=e7-5D @"D $?7 0|c_v CC/o1#z;g9C_63GycOVN<\v<{| /a:k:PM\2ck9 sO1X:sN=_϶k50|/Zs˂_q'%hv\Wqm^zl>vX1pɽq=5&a5m"D @"D @} "p\[l g#D @"O aʈ0{w~7}=ߘ_0%ܣ]9:cĨEFZ}5gK.d՞{qR?19c`>p^=op3ar!s{,/ů\`$>53tz08>7 o ܅yӗc,#~agzOk?g7:ssKcꛇܸ.;eo.qm>F ?~,GZ>a'?~@"D @"D #5Gz\"D @"$0'Һ!p?1| M1:cbĨ0qN,{c1{c6qQ?MkޚMcof3{Qo?\yU,uŅfX@ g8>9bs9e~ϰFeb7CgqY?ϳg&;Z| }iƐ7/?qX^ڢ߽Ƶy |c s ߄v@"D @"D 8$]@3*"@"D >C 71|"~ĞGK*'ӇNzf-{ߞg4ZW۟xY=;p_ĮZm6;qJ!x.`Gܗ5@Ǚ>?= Ěߗo~5lч~CΝ10郗/-==c7яNB{9w¬3k]M.7n,_#\N?_/u߽"_>/[IK 5q"D @"D @#n#p D @"D @\3S_ݻwwx6"S,|GWM"{|qLMzd%1c\uXٟ37kSA? k{,Zo_uϵqυ^#^B^yx=:{&\b0 tb㋢.Z7x|z ~A==1}A =9kz]|5rܳƬa= ߘ˗fD`y# J u"D @"D @" $G@k_D @"D $?# av Dc(Vg8:IV;M ;KA>P\reoA)tc;'qG ?1d=|`7]s<@"D $?D`'?ߘAoc ̟Eh$o~ɳ1"{6m2hY3ȱX^ɷn`Ԛs=w.'5|έ?χ,?qXd6RăR @xw aKAYa[(b 2חC\b;ˌ9><۟7&o^>'9Ύ/y2zxql9[b6G^?dfnSG @"D @"E$fK?hD @"D` gVFEԄ^ychm#D @"D @"p@ Vx R!@"D @ 0XFNMqq11ƿ-NjcOCf30gEcX&sog|l]y˚>3:cbm?Ǟaf{x_o,͋인J3=xA1s&0q/Xf~Ϛ\Ψc{﹮3B/sOf9]ӏ:sRg/7|9$?:E @"D @"D`M aH\/˿@"D Hz':&????"jo@~}j o&1E:fWoMqs{ڟ 79\7 4~{P\gΉu99\f奖aݟ+zWŞLlĚO5s1įk/1by%pX~Fc8عg?{?qE&?;I8u@"D @"D @5^ #D @"#0iOt:NM|cHS3G\b?@>3f G=c]sSh>s.f6`cι>@}|`X0ZcĠ?UVMu47c&sbٻX{?~|[cC}XkyoõlAڇ8cy'F5j/9Cp"^gԷκu<1] sd/=YƠ3f g|>k{1s5Yc5g=KQX+Ƶy_׽Ǐ(_kOT.D @"D @"p$̿a/=z uD @"D'F aOuEԄhHK?c<-2zeT5ʳ03b!Lj[^3K˳36?#jٟx֜{f&1 }\g,f}6bϚ8F}m,7}Ə]K{B.'<3ⳟ5!W<ǹ&w?>ټƇ9[Y}1YsN,ߘ?<|1gGF`yq(Wqm ?~,Gx6a HD @"D @"@®Uހ@7TH"D @"=$V80Sߺuqvۿ:Ʒc 8E+ͬ=eõ1;ǻdDaΜ1}sɳ>>m4b{}c\3l_rk gp^S1[Mަ'هf9>0F?{v0ZYr1gb~s:dfsAPm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf<'^+ػ2.ŨCyY/^cQXukx3ލٟ5ƙwulcsG'W 4;{ ǺN@"D @"D XH&>K a{"D @"pz;N oݺ51/z .vFX:sqAs̼H[3[<{̽5;gbCq=ǽ15؏5q9gP{b=7|3SO|'r=#ok^:>3G{13{c``g}ۃٸ\c93e}e갗\ȝz8o>y0$?:E @"D @"D`M aH\/˿@"D Hz':&:˻o11cg5{vϚa|=t"D @"D H$/kD`K a~D @"D @w˳jxNM~~~;F_+HE\2ث[fC1aM5sΉ}Gf>l[c,w#>'g>z'=D<=lrxð,{5ƞS. fϘ}aحoɱX.k{/?~,GDo{wD @"D @"E az=HF @"D ?- Z,&̿uݏ>x_l EYff FEc]1csX035W'=qsOA]|`fЇ3ٟXO6y=yjx]㿒q5 1gArñ8>&sуulrCrydsߋ3 Zދ3_f/=S˞ְ8ZLc渶u聏x=f g|ۃ=9}V1o.=a7< (;.lQk|v[A,c<r\毉@"D @"D $?:EM$JD @"D xs ߜU84Sߺu11RT}4x33?[C{X.bzs \75S֞+73S'#O/x>^g/yd]GϚcϓ'Y r$6  E @"D @"D`o FVB+o#D @"H a |=O >wa_x>rTd5aŊqh6?oW< f,b& ycsy383{{_8Qm :$żf>k&v#q>[r>|/kS{ۓ ɷkΉπOg|=~eabv\x Nu"D @"D @"&0M}@_D @"D$?w1_fF[9wCP^MgsX8rGT= ì|jk0{ZZ{o55ߕcM.Yk!ϻjFwa^Z^غ1\;wP8򭍟=9c2{C r&3f潵8Y{59Oo7i1%?I8u@"D @"D @5^ #D @"#0iOt:NX񖞍}//!1Z`l=%3uq=\>ıY~fA=Έ!<˝3Xcs.u?k,Wa猡Q 9;ćl~f3SAs~oq9ǏG}uwGO+0p aX)@"D @"D k DGz nt>',tc;q񇰗c"s,d췿z@"D @D a@&W pz}c|;i˘ns>Þ3~Z3Ə&sq~M~ZY2{>\O 3kck׈SsMx~bssN<뱼Qmm}A^=k.T\>s>a8^z2 y/ḩxόyoiA ƘYs/{ڟz{ob_c|ec [~; ޼N lϖyX1~qOVn6a|=u"D @"D qH[D@'̗Ds"D @"H5neENMqq~v vcFPX5{4 r1b1j15y̘5%w#h~99Oʹa?糶?d,yqcV=Ow˥.51r|krgl_n ćR} !c71W\y>g.z=0iO.{:ɣw>e6v,>W?}\ٱ/Յw>g!_%Ǘ08a6@"D @"D $0k7 0 D @"D` UhLԄn:ч_ _P?!9Zbt P΃3'sg(3O~k᧧u;[z豼˚35X6;_|n]=c6?aƺxxh/Agx}D3;L.u /s&\cr;_0>jڟ|jowgO?y 1e&?I8u@"D @"D @5^ #D @"#0iOt:NMϛaL_| 䨊絺q|14HXy,Y-5efk̥>빿ᾼ+kr]I-4Ѭe~o%yCw4s?6&{'N `x)/ًα0sr>c-\kγg8_Ԣ.كg<||j/Qyα31G<1~/׿`]Nqxi  u"D @"D @"&0M}FOKbmfTz񇱗n}[ǒ;旬泥f?"D @":{2S_\\ݻ{oߎ~chh :fDr5g10c73|?7ϊމ?9+g<=<>q9s}<3|(6_γ`/3"L|-Z*4K]f̞a z?k_gΩKvm>F;؃?\3qNY1?|͎J^b6 ]o~n?/O?9$̿&@"D @"D  0AK-aLu"D @" $ߟY8S柟}|fĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{%|]ټ DcNXg>f\Aុw {rua5̵\~mPgo.}{{_}eGC`~6hwWǏ_ '߼G"@"D @"D 7@{&0_O@"D @~_ZW1NT2ߘ)FgPWUbb7"ձ>8Ήe^=u55s/0}R6W?1?qM<[Sis|spy/K>?>9 xHa 6Xl7!࿌OsOf?uz84yV^xG둏IJ3>rO=~%?;.K[ڸ6tw䏏?#\!zN0s.@"D @"D $0HzFED @"D ؇@}h8=a>>ߘ=1Ssuh5X9XaIϢ|ìe/&Xkx3k\5ރx{Kxlሙ&|91?C?}8羜'ĞX/ݺ1ۏ3uȹ3?}򥥇'; Yٸ6kw䏏?#|-w07a]"D @"D @I a!i+'0@"D @"*6%pz!̿A1ni"W FXb8f葍eGMq.1yΞ< uu#|e {s jߙf{'H\e1a8}0wgs 簿g&Wh9Nu~}޻ƍkkc1P8Bn[DG%r+_6i wf05:@"D @"D {$0=­t@ aD @"D?Htk&pj{n`@dꘅ)Vd#=3yiVLİ6f,wkK=s^yݛf{1w#k.:k$\KY='\gτKrN}|Q\KXA?g,/{'{Y~>`ɷkY`<|%,/j߹Xl0P"D @"D @&0od%DH^V<@"D #d0۟1Z=ch9c5&v65H3[8f|>jx7s̷66wa7&<09>3ysObV&)B 9?\>=5`{'a/9'gsMϹ/F{֘5G>x,o$a^IQ"D @"D @~@ aHkD @" 'R{!p?ߎU὚h| Zg5j>8crc=GX9CM5s<=>k{8ɚ8^p]ְq1\kO QK0{>`Yo̚Z~p59?ks{|ܛ=3'y=1pg͝|f/FE/׿`5$?E @"D @"DI\+ߍǟ[<ş.`lg6Ns=h|!ǒ;旬k}ΚG @"D 8"]O|1Hm (/y6c9Zdr73M&-2k9K4ƜϹc'nKWJxPj/Μp3LsX^>(5lk~@c}ArÙk_,}ac#ÇG<~\f|g=ֿz^;1%/^]_Xo>//7gK :m{D @"D @" 08C[l g#D @"O aʈ0/~>}[3>2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\԰gc71{Nky@᧾f3S53^a?{k%xs?!\?>̙=Ý]7^_]d3~,GZ>apm"D @"D @H aa*o@ a@*$@"D  /..71ʼn^ 1b ~u̜s欨qs=}skS{Ϛ쏏5K<>5uYg~f[sZ3όy3ŷyW \Z>^s0Aqy]a恁~Hc[?j.?6L.fܻ3ˆexy#䲯?< fDU\ko?λ -c<)_ 7x|D @"D @"Dw"Z _D @"D {H#pP'?;_ _l |=T̊Y0y3\nh51f0.gs{5hL5kbnR۵s?rp]q^^'JF5E\qA q1~6~;ä ZٟYuq=uFeI}8=g?kQgo]X/ǜ^`ýc]D @"D @" $_i%0z=@"D 8= ODCԄg[_QOvWWXmĢ7fHZl5s3glݱr[\9s%R2 qnxk5Cyc; ag?#?;.Ȅ{' ǺN@"D @"D XH&>K a{"D @"pz;N o]\ݽ{oirfh9cVw1{9gȱgl6rm"u=Y(k<KurYa-TXr'\\[yc{o]KMcƼ~3qfy'xc"|k]oqcU|_ߣG @"D @"\; ?{oci=Uٝ(0bwg@ή@ M{ƋIlq&F" ";Q $%XVbG/Q, aglwWu =}S>S3]V׭۷֩s^yJ߾ pd!!!!!G&a@MO1a>SupD0h1cb*&:jͫfcsN,{׵lg ?{|}bZ0{'D g} z'>ĹOF5|\A !y8Lz/q3[g:Ӈ˹wxL#5ÌY^̜gM}ػk<}͏E[+^FףaD"_{keB B B B B B B B NO =!!!!!*&GCKkE#|WCFsF:dsk ]}j_П1Wij0_45a3:l%53qލ>[-7-y/.ᥧ=!k˙ksck|ַ1j8==0gk3k3f̙>59yg\;Fl:10fk_c83隺G];<'هf9>0F?{_;G-muh}2F/_kb0ss 93ۓ3rɡ1ոtn M-Ol-Fu辽N[%iσ.q@@@@@@@@#nJ"_ZRB B B B B BDpr'L`ӄÅMRU1gb~s:dfsAPm:l㙉S{r٫e~SCS k/smm~fεڟX{HFe\QӇ^Hb4< w |ޏjΨO탏5kw~|gq];o=Xߟ}>?wcwxBc@aDcN!!!!!!!!!0%aH!p"?Y!!!!!y"߼w'&٩o?\5+Fbcı&1sϜo QG̽5gbCq=e3rqoL 59cM{lsc̷?3w"3d48y!L8sfy>x0MK9ofjc93rֿ{_jٟ:03r3|gj\v}Jͱ5#K0u/%ձN0J$8Y,t<o;mM{l[sztꑏyӟc}r3qϥ"KDgL}`1[-ۚ|̡F߿cXKo]A[/bFףD׏0|? 8]"?];O"_w@@@@@<\"Wn{l0ggg8-^qqh,331Fخ9s|qÚī,ɚؾ?= pf?f߯k;oPûRj><rc΂䜇cq|Lx1!xkYRrcͰC Oމ=~Ufa2ueA9cPhؽy]cD]~/ȯ@׏#̟l#̟6B B B B B B B B VH N8)!!!!!!!X1MoooΟ}0\v ˆ1fPks\4s?51r34융!ESCm{{?kqN 4èafuWM>sуu6 /]}H.y~O3^Y^R})4s|i'Z먙9qmOc9{{s3c\z4a{Wk {7ǠG\s"̟>B B B B B B B B VG ձN8 C)1!!!!!!pxU"C`6M]ߘ?V</zb~f~+>qh=eӫGOVO(pk5Wog֡gϝO>Fy̞vO>_g̘95Zexery |1 }Q}`O skO`?9y|ޕaҏ5ƹ{r9=[~Ǡ'ߌٟ8cCOݼ7 4Nڇ)o5(8{b#̟'v]㔨8 Dkryb4jpu稷sy|b- i{Y~~aك0!>b}b=y Çu]CN 9{1sfZ=>y럅ùz:wV}G=MxD9;[{{q7vxD?m"`(S(B B B B B B B B &aȒJ cś!!!!!@&.^80k GeMX#F_]}j3}}=ΰ{`"fџ\ag[˹xsřq3괽h9Q :$żc<~HOx'}\۽cEaIcN!!!!!!!!!0%aH!p"?Y!!!!!y"߼w'*ЧkQB3-f`̜;!(Ft&ٳ>|bM#G̞xadm>5ȵ?g=G-q= |7ǚ&ެ5qĐ^( P [=& X{gG'sBfoc㜗An_>d5V_g|@4kya5>ߘyf}c։/.սW:B B B B B B B B B`J )Cd D=B B B B B`Dy4O96XJ[5&Q?e"$?= 5df1530!g3G>n1CcL}?Xz-x6Z&/5}/G>g _gϚ2׳>>i|O=kاQǭ'&|10΍g̘F_Ϛ?85v}ʽ+s[e:=n l\? ˗t8O{S@@@@@@@@=! #̗DX@qKV 󷷷 =[^z fXy-!LU{LcƬA,ޚs}isUa|Y۟g2<81+'λײե&FNoMYl}~ƋeG@|8.߇>8yKbvb&1} ]{`X۟\uXG?f-}.[Gll-35wcKpօ/)'BdףG Q>GO>hن@@@@@@@@ DBi a! %$B B B B B  a+&ig+/kٴKf5Ƈ:>sX?Fy[ ?=uԱw{еehY̝~?71c挻'>Xw4C{afڛ%gѿ`rC?_@| '3gew߿`|Դ?54NjowƥݽW['WF"_t n@IDAT)D%aO#a<4a>o手PK5n@H_Ks54$\CF`a͙gW]]YklGJMjfM,0O }\⸣G 6Y8KKya}^9aMkײ퍷WgxqxcE]9o-4ye{_b9>sc_gb쏏xO]q/Xi~(^Z{毎u:@@@@@@@@@S"هV/g_Ub./rk˺e|O!!!!!N My 󷷷 /x.fük-caogӿo9Or8W$Zy1{y}9s>X_yg?(xT/zQ{aC#"L|*Z*TV'}X3a{Ə)יsRߵ6Y#AjB/W{&/ bq+4^+9Ōͯ_fk0WΗ/=^~B0m@@@@@@@@1"%a~O#X@3KF 󷶶=[fĘ{8GgY\bEڳ\c/[{؟X'4g Gs5gcy&L.p{rgK_@%>5=tz08> o ܅yӗc,#a{zOS?g7:}sKݳ5wv!>(_|s5~z_? G?棟@@@@@@@@B—G^kB B B B B B?/-W>56TBO14S[L(REd8'ze1{1K8S_Ĩ&W_5yPoM u?潨kE~xErPxHay6X!_F'ؾBf^9YǙf]]2xk\5ރx{KX>ޫaq}_ bOy}n]s}njߙ:䜫QW޵tybkAz__sO#F?9.B B B B B B B B VI UN?(!!!!!!X-o0Ej4ʫsƅuˣ3VlߟǬ=lk|=l{u8s\=t]EOsolV}Զ3 N|/c^q4?>`V{zs3~}-{GιfG_nrq F>gEa :*/Dq޷1-ypE@9c$a1MX@K@KJ@@@@@NB l0{kkpܳj 2uwt+LJ<4G&XbXS˹=cRf6^;z a]6Ϗ޵lk3?5kM 7m̅> {uL :EQ}-G<>b|Zz'{Y˾?{[j>뚃߻ڟ=ߘq֋@{Q bx`  D0$0Xx@@@@)$a)|y䇆 󷷇 >S/kV`5ZdΘ?W]=d&&s֘ifnjG fֵF3c. 3tĘ? N̜cv=!ïLG)B ˖{vΥ61W äif b ^MAX˴gbY_sKdƯ5f џg`Ʒ7ܽKhl7a^I+CF!!!!!!!!!I!p"?Qi!!!!!"G*^K5^U὚h| Zg5j>8ckoчzzV˹"35g鯆gm9Ygb+׬ԟ=ÌZc?)xT`}]}<q=`^̚Z~pկ9?k}{|ܛ=3'~]۶?z|?\Ys'ٵˬѫ ߸e>9!W:B B B B B B B B B-" 8BD LhSEٿ7]_Z/WQ?ZnwY~}4U0U''ysWj Eh$ǬZdjhG̚Ak9ϓoM599Ջ~Ǟ;yLӓ}>֯c'nKRf󥒻$Z€˰3g@\\xVك¶&P1fd/\?<ҷ7>0r0|y?ϥogM^Ξl߷ww:%NO./ǏͱKKm0WΗ/=9p:X{-B@]Bo4 D8dl0WkH_0++9f8"fGqlgfш9ggFF j98s=S:aԳy,l_8KR\ẐӏO a\Ӈsg}XLf?>{1#=ƚQ!-xs!\?>̙䜫{~ܱ&oEwN]|>b-~?2仏0a䃖m@@@@@@@@@+V!pRBB B B B B B`/+!b&ޮo?|atq"WCC|_23眩}Ƈ9+jG\_OsZ4~}=cMf{rV5}gu8Ǭ~ޏ=̘93X| Y8qy%9 fӇ4?뾿53/Z63ϻL0uݽܻ3ˆex~2k3廼w;wh['}ܵ~<Y׏)ğx#̟e!!!!!!!!+%aJqYܗ@EX@ Jp Jxƭ{d~a 4\3Mzf43YSg&ScvmlߏcWib2;sIę|[<{q WpqxW EܷI-y ZٟYuq=u*t֟{g0s~[:[ltDXˋ R?{.ߟPֈ˙y!8Բc*g9.y޼Z6co}WI>y̘ϞzC|`X0ZcĠ?UVMu4WG8ǘXkΌ~ȷ5:؇avO=\ˉ`O}s_˙G5j/9Cp"^gԷδu<1] sd/=YGjЇͳ?>ѵ9Ϛwxƍr;V9ཌ}ͯG>G\E?˄@@@@@@@@2柲]{+C B B B B 2?d/,=U6M矩5n@!F^-2 Ur/u1b{?֢hԲW͡?m3}?bƙg͹aZij`g{u*K4s|>1`~v0ZYr2W3]vG.>>^\_-k'A/wk9?bʸ8ephyD{ԲQXikx o G]FM[ϻw6z?{|#zw ց/*սW:B B B B B B B B B`J )Cd D=B B B B B`Dy4O96MSߘzCWk W v32U5 ?ƈcMc&mݟ9'٣ڙ{kXOR{Vfޘjrǚ83=j̽ƘofDghpTBpgԲ?u˧a.ggo=Ը|ޕckFa^JcN!!!!!!!!!0%aH!p"?Y!!!!!y"߼w'&:yxc{5{luϚjqN.9ǚG{99'sffy~nE|o>ݽ[sG$,N@ANmt: l/=9mq*מXɋ5B`@(@@@@@%aj! l0kkkx3jj'F[ 2Fsu{cn4gkÚkj:b}F-#>'?z'=g"KE.P>aϚ< {!Ycy0`ݺQkڟײѿz0Sr}Z5ęC<ػp;^+9ŌͯG>s$a#_n!!!!!!!!pDwv D(7 xDpt4ap3[ZV EYff FEc]1csX035W']Y\ߓ5}zP5~'V'Fm=;_vV{=jw!5 |x.䚇ǜ9;0>cC.?ֲͥƚa_>3{[8ìe{ʂ8sf=?￱{ݻoݼyk|fu7;wvxG/yk]~/ȯ@׏#̟l#̟6B B B B B B B B VH N8)!!!!!!!X1MoooΟ}0\v ˆ1fPks\4s?51r34융!ESCm{{?kqN 4èafuWM>sуu6 /]}H.y~O3^Y^R})4s|i'Z먙9qmOc9{{s3c\z4a{WD~WS&|w_EO_ ]}~?~}A~} ~?a<.)C B B B B B B B B`u"_t 00!!!!!'aY%2VM`ӄ;;3akh'fgFZ61zdčױ{Y}qfz}cękc՟{ƌco?YXX6{|K/]CEFW;QxOl0p!!!!!!!!A 㠚!<g8@Q/փ wJ{Uf;vq>[zf|(gc>uì3fsgZ1OF Z5|.Zes?o/ۯ/l4{&dAO 'd`9c|۩Aɂٻh5ggkwo7>O~w~{V۞WO5\sN}|>s﹵{/o 3&Gkg^?`olx?{˿t/zj ûgW^:KGeo-tB#?N#̟]@@@@@@@@@^!pߟQ"B B B B B B`/B+!Z*G|=rT h3|ݫI5kG3'a|5YO rfOQzc9ͱ&~%7cM1y3 ?2e ?zƑom[8e״51sZ?~l f7_޻Yߘi}[y/}ÿo|w_?gs?W`9qnxq'.B B B B B B B B VI UN?(!!!!!!X- R$o@4ָ7꾯fOϦcg.<|lr͌3ه811đ&:}r|o~.w3>Sߏ5yg2-䥦aG:kf{ыA]>߹B^q5SOo=]#A<~8ǘÞu_pOLJfKp[kz׻fE~y?3'~ǽEܔՏ0B B B B B B B B B`"_5 w&0{+7_9Wo0g*Nt]v|Ld֢滬ےx/oȋcl$ P/P3vs?Ɵ tǞ46~4ɞLjo0n陵سe\~S׵j>qjO ~aΉgv]Gzqџ'.aO~f5dž//s k49/=ksh+_p4._zrtn#?=O!!!!!!!!"_[߻0_C B B B B B`9/-Y! &.?l{5#(GK=clF,0U19Ƴ&䎂{kyj͵WYۿgmfX00Ǭ{П8^V9}59gB3/5Ḕ~|HrC,qى9̛/oyavOỾ;ge;;=93j=+kr]I-4Ѭe~떼Cw4}?6& 'v `x)/ً0sr>c-Z/o3K}| zř}8#O3ZlK,ggsL=Z7n8k;}~Gn2|ٗ}l_xx/O='ܡsyiב#?2 D4$V/g_Ub./rk˺e|O!!!!!N My 󷷷 __~54Y3w~qƚ3t˘es1s>kgEӟɳVm{̞}~i}9>GƙwO>yG2 ^^ع¾y9ցJmbղeI rcyuzwgֈy{ПP՞s˂j\~c }s{cݝ=Gn}?<|S }Wg?z^/ft/l~=2]׏%t|CfC"w' X_N'.{Y@@@@@"_Y2B`U6M5\pwߘ_0%ܣ]9:cĨEFZ}5gK.]՞{qR?19c`>p^=opY.p{rgK_@%>5=tz08>#p]X ;=}9:0ڿ`d?5sIcPl]]l۷|ۛ?oٹڴ]h~= y_? G?드!!!!!!!!!pߟQ"B`"_% 8 "? o9Pa >>]o3v+FOm1He꓍X#^Xc]"l,{L}5k~\}<ϸ>g^߿9(:B=,y =b^aֲ퉿IA?(cZ>WM ށ vڿ\okq|.~>1}_b3G0g'{cgߗ3k~_[\b>F~1w9j0敻w-]ذws;cï4䓟??Sq/i Nk|_}A~}~?>仏0a,X%WI;B"̿?D@@@@@""_VbC`6OUsū5nD("QzO,X}n{ֲѣ75%34ٓǞs}wA=ͱ[-cػukPΜ/l6[8mz\(k'A {|as[-aMWh9Nu~}޻UH3ڟwz7}_8/kn_nw^ꨰDq޷1-ypE@9c$a1MX@K@KJ@@@@@NB l0{kkpܳj 2uwt+LJ<4G&XbXS˹=cRf6^;z a]6Ϗ޵lk3?5kM 7m̅> {uL :EQ}-G<>b|Zz'{Y˾?{[j>뚃߻ڟ=ߘqf'}+?@ 'xv\F\psf̰?g鉯_׶폠#{gvm2kj7n8A< 7xc"Їiпo9[g@@@@@D*sr|7%)R]J-a@eXߙ3 i.u<۟L=UٳvnOݸ;ſõkkWǿk'%NO #qs{芧lꚉQwLyjY3%ƸZ633fhagЇ3{I[3cm SK# `a0Y<{ob6/%p).g-f'0O}9 3>gkfcMf{_֨g9g.~GLOrxM~ZͶ~ ??!?e|a/\d|Wt(#bG\!SAGO>hن@@@@@@@@ DBi a! %$B B B B B  a+&iOx}'{51ħ!3sΙg|v|1qKO?k׳?>g.W-guYӧf[sZ3όy3ŷy' \Z>^s0Aq~]a恁9}Hc[?je3YwݫI-kMν;lX[Xw_!?S˻{^sǾ۾k_O _;;`YE+.D Κ~?UL!t0a,X)W;B"̿/@@@@@B"_WC`6OUsī5n@o7#Keͬ c1i3ֈǘ9`o]=kſjo/ff,]#kv~MY(vTSt%}gzm \]5s&?R8j,3?fgM.g1ƽ֩YI}8={?kQo]y֗]{Scn>o=w?w_/0սW:B B B B B B B B B`J )Cd D=B B B B B`Dy4O96M5\Є/[zrTU?V~=6Y7Ikaޚ\8sֵ??nr7=C.ߺ̜k.uk9r[\9LqeAX[Py8HFX~C6>#[wm?5{`!<1kz0>~sqC~]W6"_t )D%aO#a<4apY1@ @?efΘײŲ%͞Azm{L ͻ眱h>}lmٟ 9=}&b0}3c-m6_~"u=Y(k<Kuj1sX 3ր r!!!!!!!!H c!󗀖x 4a!VW mÊ?Vg̷C6xi6q19]ײk/{|}bZ0{'D g} z'>ĹOF5|\A !y8Lz/q3[g:Ӈ˹wxL#5ÌY^̜gM}ػk<}͏-iz'?yu$a:404<{@@@@q08f<&G2߮qZd 1wh1j{as߫S!ͬφX\Y3ݨrq2^zڣry ?68g?k}k0CϹsmMn|ӳ~s6*0cƳX1׮}ScGЇ=!!!!!!!!!aj8K@%8)Q!p6M=@GVY9{4 ȝ☉]S 2"{Ej9Ycg}|kϹ3hj٬c/53c8|ٵãQp}h֞aac>>qBϬQ/so& 9g؟8̾0~9=9#XK׮0lEaA_@@@@@@@@@.!pXTB B B B B Bp"?DI4ap|Tfs#3Cxf3Ǟ\fjkGe[c-9腟s-g'^?QAb ??c/Z3jkc?o Z!sa?ݨYcyyW[?goxO؝;^Ͷ#?aAT 05%K ÒJ\@@@@@@㔨8 &٩o?\Zaaˬ)V1Fkr31sN5̳G3ְ.yR3!8ղy7&= jyZ6s1۟z;qG2ռu&}Xg93< bB[35._wSeoʫ+KyiÛF_#oI\qғsO&!!!!!!!!@ ux C#a=Y@@@@@ a!p<6Mug@{pf ^US7m~E~ucjٳ6510o~褽뚙>;g߼r5#X{dM-m> a^b}9xq~cx8gf`ڟ8kxƬXs Z]ݻ;wD2;gz5_UkC~bkϯG>s$a8-X!W;B"?@@@@@"_VBC`6M5\pxk5-VVS#eWz5aM5}Ή}Gf>l[sztꑏyӟc}r3qϥ"KDgL}`1[-ۚ|̡F߿cXKo]A[/bFH4h+W_qza3{D50s5}k03b<ۿs&_? 0taH!!!!!!!!!:毎u:aDJ 0&i0T}4x33?[C{y-^=\}~FX=a}8=>{l}1cܵ{1=c̱?~ , ,os>f5fUr xjc]{۵1&cMgޗ~1Ϟ~ޓ3iZO==f|bxj폿~^ïڿhg=|5FW;QxOl0p!!!!!!!!A 㠚!<g8@Q/փ wJ{Uf;vq>[zf|(gc>uì3fsgZ1OF Z5|.Zes?o/ۯ/l4{&dAO 'd`9c|۩Aɂٻh5ggkwo7nW?=}<GguXrs׉0DPP@@@@@@@@,L %!@NJ7C B B B B N!OK#?46M5\pa5n@@F4X1:3ǡ5od e_s_3Ǟ:=<{x/|'3r}?|r.g"{qf :ma:Z(pTC΃00.e1/=.&hb;Xvyv*̤jDT1H'F7І&GqagRRWI=)OLzsc=L*Ff޸Ď?s ֺ*sχ6u=|kX 4|sk^fL>?b'm=ɿ7͖7Є{ ǺN@"D @"D XH&>WK a{"D @"p|;퉎 ?ocQB3-f`̜;!(Ft&ٳ9|bM#G̞xadm>5ȵ?g=G-q= |7ǚԚ&٬5qĐ}90/C-/l]@s{.`};gϞ1 u!s^sMX3X}ZѬ=s`f|cG7a?'_<__ǓfW%c]D @"D @" $_i%0j=@"D 8> DCog"Q=?e"$ƿ>[ 5df18Bۇ81L9hX1[{{31u}kleg%2?lt\su14s3j"/28'cg0㘍ϬqFBx2a8o3>1T7n?w_|O'w>wߞw{p!a^KS"D @"D @毉XtOXb 쟢鷮ẕ̌s˒ۓ_}кG @"D {]\ ON޿gŗc|3i˘ns>Þ3~Z3Ə&sq~M~ZY2{>\O 3kck׈SsMx~bssN<뱼Qum}A^=k.T\>s>a8^z2 y/ḩxόyoiA wƘYs/zڟz{obc|2G!-^]_Xo^Njcg<~,G~Ѹs0z:@"D @"D0$?-" K9@"D $̿"&?;;=s֯?1#(GK=ccTϚ1ˋbSN̋l p̼l³|c=4'=fяYs|o2;'|s PEBFG7%N@"D @"D  $#ZE$HD @"D ؁@`=86a7Nncr"#$GK.ypfdcL>e|So-4~gW=}YsƠ&k1s'͵yg̘9'>X%~M텙cWK a{"D @"p|;퉎 y3?{O@Hx^K'CM3urRYfv\곞&ܕB͚Xa;^cg5x{y7֙Zԥ>>{C=L>A-^%339u&~2G<| WJ0 aX)@"D @"D k DGj nt:^̳쟪za9cs\/R@"D @@c=ߏ Nܾ797ce~yì;8ceL9̘9 {5wOY6=f9Aܺ>gg#O;'2 ! bs˥.3fOf`=dS ϋ3|f8 w 5g cܽ=~ 啼l\2?#_r~pX~EIEkD @"D @"A a~0[FD @"D H;2"/&?===yέ_ ~_7+=h1hq131jV_͙Ē.og&^~?O i5.kg5{[>L\3 >8yK>FM > k<}0¹v[=wa-(@KÈkkޓ͡\1R?7AYm\\?^?#|-w0GD @"D @"\C K@~=].@"D H#|i]8Rag~ 1CSء1>nDc1L}q^2{kkb^alfmbO㚼yw:۟ ^ԛ5]~x]r^Kkq<l\oCxsvX(qm^\?>X1p9aoYD @"D @"@}ҮW^N aD @"D` wUlK'dP|c>ZdO bI%xbxbC'=oON\| beOg~2?4^Fa}Et|4<^"υK&-a6P@"D @"D xE%$̿R"D @"  "pMvzzrέ_ L]1v4Ŋaġg&35ꑉ3ƌ֞sֱ~cgK3{S߬vO=0So\jg$~m?Zǽt?zixy y)}@ēpX.Љ/~k <=EOx/k>rg=ַp->뚃߻ڟ=ߘ>ǑEmT[Km1@"D @"D U *ފG @"D א@k{ 柝ܹ}81V+G{-2g]=d&&s֘ifnjG fֵF3c. 3tĘ@"g#{I ~}_˄:Eb\~^{8[+aGg1~o/~ eڃ31l9w%2q30;?'4;$IW0okD @"D @"H=$9"p_)G @"D GH ah01*WXC&Y45'gX.uyC=r=˭"35g鯆zgm9YgbS> 3f>kmvI5jp f/8ǃ7ۭ8 ̀YS5sgYyw{gf؟37vA=F.e?x5_^I{C]D @"D @"|@!+%׷˟?o]?Z-_o<9㗿J@"D @E aH'8>a[a,G&yK5?ٳ\hG̚AB|C[ǒ)$Z€˰3g@ \x6z ۚ@ǘg_rpKyXfD|a<~f5yYo>zgqvxoW֛Nj؛%_jyK|V6a|=u"D @"D aH[D@-a3@"D @v'0wfeD`_Mug?8s3>2c1ꎉ#O-2kq7}3b403{}Ù=c褭~뱶QZrNou0\԰gc71;wNky@᧾f3S53^a?{k%xs?!\?>̙fή/~Qԯ.yW3~,GZ>apm"D @"D @H aa*@ a+@*$@"D  71tbSꐙ9L3>YQ;>z8ꥉܟ5k3[x|k,/겦瘵Xg؟=gog";' | $aڻsg=&~1;]~h&\̺w5}ɹwg kkzg/\yuEtq^ ?̣B07aǬM"D @"D @J a^q,/%0 @"D @";*8{%p|!̿O@o7#Keͬ c1uVόZ#c~r6簷?YXo/ff,];# 絚ub.e4]St%}gzm \P}g"Q `19 f5f@gƈ~]s=0|?yo}5=CO~/2aIS"D @"D @毉HD @"N{!plgg'o0Ɵ@ @?efΘ~>O,96{9354:sƞGcv1!D w0v}rK/]<:bϞ5brf`%:cc*g.y޼\]KMcƼ~3qfyGO={ƕC"o|wk^{?yK~]kJ_~D @"D @"p_+"0 GD @"D M ak#@c毾1a>SupD0h1cb*&:jGq19]rfӟoG1!>o 㼷{bZNp6נ{bCwi5|\A !y8L|/q3[g:Ӈ˹wxL;cЇͳ?>ѵ9Ϛ9,oeڼF^yH/a'?@"D @"D f_<`"D @"##0Gº"pl|4?{'%1CC]2Zd AY1c~έE/t˥ohɟ}5Ok3B>b1sgLw6v..=!k˙kscrOZƐs\[l^ÜͬyƇ>̘9'o?ݘ#8+۸6 ?~,Gx6a HD @"D @"@=®U^@WTH"D @"$V3c߸qvr1fV@rZ☉]S 2"{E0gx֘>湿Yqs6\lc/53c8[|Ԙ-&SLJCc {_;G-muhs2F/_kb0ss 93ۓ3rɡ1?ï?|S';~:~y/%i0Kv _D @"D @"E "JG_Z)@"D @NGb&?;;;s{1>1gb~s:dfsAPm:l㙉S{r٫O]|WM-sϹ\X=qz᧿kf<'^-؛2.ŨCyY/^cQXukx3ލٟ5ƙwulcsGGOW 4;{ ǺN@"D @"D XH&>WK a{"D @"p|;퉎 oܸ11Oj .vFX:sqAs̼H[gΉyG˙{kXwOR{6{cjɱksΠ{ngNzFk ^׼u&}Xg93< bBss9#w>gqwޘ#KK0D @"D @"5k"#p_-G @"D G aӞx0njh_d{䩛6q"N:g15YSgs ݘ~s7B.X}=Y+&|H\Ƶo=p<_/w?`Z_CG @"D @""F $D @"DHfyV-o OOOO޿s1=1bh15Ҟ[f?{uˬy<=IV|9 AMkzcއ5{_DgceǸ".0}/ž53yeC`߅/ uֺ?9emGmgٟZgm-gﳍf68s1t?xtvvXWqm^z##Ǐ(_{OXnD @"D @"p$̿^ﻧ=| uD @"DE a}uE؄7n8޻o1h2b4 Ĩh5FlkFyư63"nɚع?= pf?f?"{೿=rC Bk2.s!<<,Hy8ruo.O,0 8a'Zcgco]YGά?8;$AQk^ G`?0rM6@"D @"D {$0kW 0 D @"D` wUhL؄ggg'wnt`rcF\1GXï`Uja>gĠyX^61c>3hb4|jwog-Ω|5ìsg.>z.—.0}H.yyޜl{qf[{qK'|jG s=o?Ǭጏx{8j<3Fͥ"{eE`- {m\\?>X1׻k"#D @"D @"? ǺNx _R1@"D @^@WgUdM؄7no̿3x"8U ^ V|{>^=\}~6M Գ :T칳Lj3s?3]~ֳR?ery |1 }Q}`O skO`?9y|ޕaҏ5ƹ{r9=;K g|3>fOѣO׿C(oq-q#'6a6W%5NEE @"D @"DmH6V3'0ʌ@"D @"" _D%_ o atUf;vqcy1gGx9SA>̺=c6X|ˋP'FQgߚszk`>wg-ֲ9_uɝw6 2 ' ۓ2^1|XõSxz̜o,=>yùz:wK}s4Y0{{}6V7rs]oxco e"D @"D @"3;#+!o@@"D 5$0GC؄'߹016ch}btsZcƫM[;8~쩃c?ɳGr=#?gXn\Lx/ΌޞW=5.gx]C΃00.e1/mb<~HOx'}<B|sb3{ϭ{oc1d?" Mw0D @"D @"5k"#p_-G @"D G aӞx0~?|-40b̹bDj=c'đkzƑom[8e;״51s7Z?~l f7}x|c_I/.aHS"D @"D @毉HD @"N{!p?d E賀|2_]23y[uaahC{Ϙ[g&4s{=ýܙ>܏56^|6L9^j^N:|95x?O3@|qg8#_!WK`w'o?a/ߺ{N >&2bY/KoO~AD @"D`O tm"p '?9y{ _j.c7 {cku|?dcaY7En3kgKPp]?5잺Ň_#N5q=9̮rF׵zq0[0Ɵ@;-:jhbbScK]jb䜵6xǥ@C0o,/b%N1;1/&1ֳ} ]{`X۟\uXG?f-}.[GlX;<||o%C! ^ !>g!_$Ǘ08a6@"D @"D {$0kW 0 D @"D` wUhL؄7n8޻_/c(E-1dZc|Sq9Ǐ3hOQX׋:v^=X^ehY̝~z>71clv0coI7a<ffO<>_"{ &:ė`9.~֎\j/5O @\g 5d?~j5Ƈ=2$:E @"D @"D`M aH\-W˿@"D H|':&>c<9"y.ye 5.i%f/FKf~Ú3sz{/ʚ\c;rWjR M4kbLJ鷟~jzI>!;o}plj0EXJ9 VX.{5Y3^/XgjQA[3pFf>>xޗXΨ<י#/X~\)^Zc]D @"D @" $_i%_z16{n?%wY#rK~D @"D 8v |?f&?;;;s&ߘߌ~chh :fDr5g10c73|?7ϊމ?9+g<=<>q9s}<3|^(6_γ`/3w/ȋEZTjh,̘=ÚAܓ5~L1vX1pɽ~a=&am"D @"D @} "pX[l g#D @"N aʈ0;~5}5ߘ_0%ܣ]9:cĨEFZ}5gK.d՞{qR?19c`>p^=op3ar!s{,//]`$>53tz08>7 o ܅yӗc,#~agzOk?g7:ssKݛc?߸.;eo.qm>FsAxX1 }+O0.D @"D @"p $̿/G>h tD @"DGH aukCH|@IDAT1| M1:cbĨ0qN,{c1{c6qQ?MkޚMcof3{Qo?\wwyQ,uŅfX@ g8>9bs9e~ϰFEb7CgqY?ϳg&;Z| }iƐ7?aX^ڢ߾ƵysA,c< ?g"D @"D @"O I^x9/gTD"D @"]$߅V/柌oAch#Z=:ir1/?9{U=w3]ϵ8lsC\f?k/kr#c3{=13}˙{byA5/_ҭk.1;S[c a{ϟ[zx Ea}kZyo&@"D @"D > $'zE濜Q@"D @v!0ZF`O:~=(~5s9B~'Gg~>7Y=zdcrYlg?kKgi'=<.zccg_j޵\w|gΉ?0bEYc<8q b+N_ gx\==9{~,{GιfG_nrq#d1ڟwXoxx</I^K@G @"D @"D-HV: 0J@"D @"7$p:86aɝ;~5q'c 2uwt+LJ<4G&XbX3[{5[9S/ͼMm|v=OmrY?~Y\k\?}`.䥬ϞOg%Fc@'>(bY%|G3=㽬me?3[õk~jb0|cݯ?GvXQo],a7IPV(@"D @"D ;H3"V $x+D @"\C K4NvvrO OP[1kȜ1e t~jYG̚\Ycjg3>f59[~W͌Y0UcAqrˋs<'1b-qyeK lc@IAS [ޗiГŗȌ_#=k֣?{,o$a^IQ"D @"D @G aHkD @"!GR{!p bo@^M4>bufs dPLc1l,[X\֜9S=dM}qo.jXO܃8̘l'_ר%\WF blrx0^,\7fM-fs?8ל۟5f}9=>͞a߼eo~سN>kۗY"̿_|ux'  u"D @"D @"= $GF_.O_0g6Nu=h|!ǒ;笇_+}ΚG @"D "]No}:Ha (/y6c<Zdr73M&-2k9 4ƜϹc'nKJxPj/Μp3LsX^<(5lk~@c}ArÙk_,}ac#ÇG<~\f|ۋg9?o=;!%/^]_Xo>/_boΖ~?/?Xuۄ@"D @"D A aan 4ZG @"D ؝@ݙ}86a>dO9">lhĨ;&<ȬcX.gfш9ggFF j98sS:aԳyl9qJR\ẐӏO a\Ӈsg}XLf?>{1#=ƚ1B<͡\8s;0gzsk?xW;jEQ]-Ǯ7|>bKc!kA W@"D @"D #{]D @"D ;HB#g&?;;ߘ9NjcOCf30gEcX&sog|l]y˚>3:cbm?Ǟaf{x_o,͋윸Ja瞳ٟ53.uxvt~}c/0a^JS"D @"D @毉HD @"N{!plӓ,/[f ';ثFp_6zlb^$c{9gp]̵qh@uȥ?q8[#[w]xk5Cyc; a> ?;,Ȅ{' ǺN@"D @"D XH&>WK a{"D @"p|;퉎 oܾ}oirfh9cVw1{9gȱg.m6tDXˋ R?{.?Pֈ˙y!8fZ:O乶{r1?w-5'Ssbę㋻ss=W#6{|?/_4~wů*a5~=z"D @"D H寠 D`@-m"D @"6xkM|NUa菉A̷C6xi6o-9L<IJw=˙O\f5k9\쉵qOܥkXs!_1 ṡ0E9~ϨouxNb߻.^>{13Af7|Fb ?k~{?"Q>מ0>]&@"D @"DH^x{+@"D @ ׊ ѐ۟_x:Zd 1wh1jgaW+MMbsYl%53qލ>Xn6=^\Oy>,g%+g?k}k0CysmMn|ӳys6*0cƳX1wcPԯlc W Wۄ+ m#D @"D @"G Vx _R!@"D @v 0XF`Mnz`ro@pVY9{4 ȝkc&vwM4ȈÜ9Ycg}|kϹ3hrg پΌl.QcfNN>4s|>1`~`3볶yã<|!x'{s?̽*|xlOfa&~tpM 6 ,uzD MZmp/% #D @"D @" $p+KH hD @"D  8E 0E@d thꐙ1:#,fc6*C=갍g&N=3k|effz,;?u_=4Ϲ?rYc-9腟X^ڟX{boʸ8ehyD{rFM|B`m|]G|k8z7jggzսÏ#a=ͳg^M$:E @"D @"D`M aH\-W˿@"D H|':&̿qw?o1+Fbcı&1"m=9'c-gaݹ?u?KbcX.F.>&~c9Zc,s1۟z;qe4x]BpkQsuɡ?< 8z[H 1gپhukO-_{D @"D @"p ȋ8'0B"D @"7K aYI&?===yέOf hUH{nl-^{k&Z>Xm61[ztꑏy3c}g"㞗6\H{a cσ)~g̾0D]7Z,=cQfjٟ|^6˚|̡~c1>=aX^ ^Ƶya?#E|| 7=aa}M"D @"D "0z $?w #D @"?mc߸q{zůx2qh,331Fخ9s|qÚīˋ'kb.>k03ÙOFO'{Zۋދ>70(qm>~sA,c<os\毉@"D @"D $:EU$JD @"D xu _U7c߸q61BT}4x33?[C{X.bzs \75S֞+73S'#O/x>^g/yd]GϚcӣGOY rϕ[wIm1@"D @"D U *ފG @"D א@k{ c柞/x:rTd5aŊqh6?oW< f,b& ycsy383{{_8Qu :$żf>k&v#q>[r>|/jS{ۓ ɷkΉπOg|=~ea蟿~xA/4aIS"D @"D @毉HD @"N{!pO|=rT h3|ݫIl5kG3'a|5YO rfOQzc9ͱ&滲~%v6cM1yp_(&P [=& X{gG'sBfoc㜗A\>d5V߼g|@4kya5>ߘ%-;${# ǺN@"D @"D XH&>WK a{"D @"p|;퉎 0ғ1Ez~DH}[?ktcofc\ׅqq=cVo8rDϱ%3b<rgcLs?؜zKe~2xx989chgE_dpN<1a1Y|eq8[?fs}cQ#opֿ`%8Z|$:E @"D @"D`M aH\-ߍNǟ]ş.`)j~z!911?g,=/>{"D @"=H'е%0;}6P|97cF6?3<=?h=mh=Ǐga7OϬŞZ/M.Cu԰?{6v~85ы'??3^ٳ@lC?Sk'͟&|10΍g=̘g5ǹ&?G_x+s^euz8_`{y ~p= {#D @"D @@x"P|>a$#D @"\@q++ plӓ;oj0r٣1Vh>!LU{LcƬA,Awkyj͵gm9}&cÈo~AX.u3[s>ۜ?Gnfݲg >CAIü!8ļ[/EOOc]/w{cyї5g jfm3w\k߻zƌm~Ìu^'߄^=ƃf? |Ygv/\"_LY;rw?`|Դ?54s.Ԑc?'>|޳gC"L70D @"D @"5k"#p_-G @"D G aӞx07lL_t 䨊絺q|14HXy,Y-5efk̥>빿Ᾰ+kr]I-4Ѭe~o%<8h~QmγMvNR^Xc)a2|XaZc썷לgxqxcE]9o-4ye{_b9>c_gb쏏x'c|t׿`]Nqxi u"D @"D @"&0M}FOK<ョƞ:1?g=e/5D @"D $?7 0|cc|3?]73֜[/Ì<\\s?+z'pH:hcĭs栿i|>4μ3~{-|ЋZ ;~@9 /a:k:PM\2ck9 sO1X:sN=_ߝgֈy{ПPky&/ b:㗠aX^ ^Ƶya/-c<%zWtW@"D @"D 1ao %̟i@"D @";3+#"plӓ|c>b~ÌsvY3a?k՜K,V{kr~kwoK]Ġ持Q?h9{{&~^ u9τɅ9cxﱼKtC`tðk`G C +h5sւyO_>9=ٯ%/uo?|`,/Ƶm.c<ׂ| 7gE`yi~^n#ǏWo&@"D @"D > $'zE濜Q@"D @v!0ZF`O21O?7EFO<+ \8Zr'o'V!>q>tҳ(0k? Z(cZ9WM ށ v?|gΉSp!}8b澬2f`O,f508y/g'<|}K`s>cLrn1=nFu6^ Gj?O0s.@"D @"D $0HrFED @"D ؅@]h8>ai"W FXb8f葍eGMq.1yΞ< uu#|e {s jߙf;'@\e1a8}0wgs 簿g&Wh9Nu~}޻ƍkk'c1P8@nۗ[DG%\x$mo{.aKuD @"D @"H a[[\@K@+%@"D  0o(WL؄g'w11 #hGSFzf8SӬ8camXn9o7zL47ic?y~e}Ff]suKs@>{dO<Ξ !Xgm#ރ~>X^O#|ؓo}ⳮ9wsaX^Fu[8&aCYD @"D @"L aJ[%0x"D @"p $̿/G8:aɝ7?/c<Cm{Ǭ"s1k3Mfm2kr9gfq8}no]Y_m43fm n>CWMya,/r|f1XĐׇLS .絗s.-&}{0krO-lgO z_=8sCO暞s_"3~1kX<3o|sBC"{{% F@"D @"D C#WJ ay"D @"pK푎 ?/19{5ՙ11jNSC}2qƎRx{>#׳o-b1sYsjxzO}p5q!ƽẨa=s0c泹&j|]`s]}<q3xp 51k^s>go֘|7{f9OO|zlcbϚ;̮o_f^0ǟjP%$ H75@"D @"D $R?}y?],88PcK>j0~9kD @"D`_t}";柎o̿ 1Ϣxj7Yh=Ě6|ȬX,/[SM7{{Nu0j9~Ǟ;yLӓs>ˋÏ?u,2_*yJA  ;s0ͥgcyװ  YY M -t40^AGQGO *84 ؝?:#?!AAs$ݝt]_WڻvUv7תֻo^'? Ǐ1 s}9̵/̈#y.~3>k{Y%p9mӽ GαKY/\C%wuE6sC B B B B B B B 67{-B@]Bk4 D?>d̚0WV~qd#"a~ÌFAcS̚A1eyfFߌ8̞3{pf:ikxzaji`ԠӛA3}?5F=GMf.,8x5P0}o=gapهav 0Ì>bcl53u3s'9[l{_zwE;]Uú>39f-~gƼuϙۼ؉.H-c/9gx.0?YA 5xegySYw;YZך{wfٰ έ Zs:px㴍m$Eȵ:yt(ȯg0b s|̲ 0,H 3"J@@@@@@E p%8J`sU qo@o7#Keͬ1j3ֈǘ9`o]=k4јk݌kc~cޱ]'f"JMѹ3Aųw'rgg{ա0Emlvf6`cƶ>@}<7|Ա~\=g/3C,q֩n3P9c ~psm-egjO3}O-3ͫû]>~+6Gt}q/ї.dsxa9!!!!!!!!N u@0G6!!!!!!ba 5a~#8UW GÊ?&1~l⭣ټz3u]vg ?{|mbZk0{'D gm z'>Ĺˡ+5j/9Cp"^gԷNu<1] sd/=Y3f g|>k{1s5YcpvlCe@G/%aG>L@@@@@@@9F sq7<7+C B B B B 2e/,=̚0 ;_Y_8RZd 1wh1j[aW+MMbmN l%53qލ>[]o6?dƩ.=!k˙kscOZƐsn\[]ÜͬyƇ>̘9'o 79H`mo|z|Ϲlݸt/E}t(ȯa~doa~H!!!!!!!!!0EOvZ2D H 1D? ̚0Ӧ}ۖk*[긽hGܹ8fbxA^<>̙659yg\;Fl.;kpK}kb>5ZvJd%u|8A>4k0ư1[8j!ggmˇGkۗ5zB\C3Of_~{?T̜ٞLO Ms>ѿ.?җÇ>5?e۶B6P؏D\wIGaa8B B B B B B B B ֐@k7C`O-)!!!!!!pNB` ̚0~~ ohׁ3 1{^239Zg | Ze6Wĩgf=LewG.>6^\_]vks85waWd[-\>Cag~P5 }w!#a?ݨYcyyW[?gox\8r^Ѝkoy˅,\\Z?>|H<ؗ}K~Qz6qBKb@@@@@@@@@+F!"_U)!!!!!%|B`5aM7o[|hY;#SUSP9c89f3[<{ԣ̽5gbCq=ǽ15؏5q9gP{eg=7|3SO{'r=#nEFLl\]v`1ߊϙrؿ{_jٟ:03r3|صo:?rû~A~5.?ƟzQدE?-ڥD?=!!!!!!!!}dK !!!!!G {y!0k|~s _U:1vtíޚ=xluqϚf۟oÞ~{ͫ!8Yӟ~:qD.&yq.buu>jqN|.9ǚG{99'sffy~nE|o6!CRW.q 6EC#%_T~/Wcqw'}wC r۶m-oٟ*;vl_ˮ}HAmGw/zaRc[מ " /"E!!!!!K j!fM?77Wvzee@OXAy5Ҟ[f{uˬy螏AfkopN,>c<>z0;yfu9GaM>99>;Y]}&19Yd5"Y3Sa/X>$k=]̞1[8jch_yfpF=_ey ~>[]vkf3my}x{xe_/-/~ `b@IDATxO^W8,ox\ywp?EJx1|>0D"NX@Ks7֋@E>}C B B B B f@f\@`ք6m*۷muC8e4hQ#lWk~9>8aMmfI0ɚض?= pf?f߮vX{=jw!5 |x.䚇ǜ9;0>C.?ֲͥƚa_>3{[.; y+ ϙ COx_3w~.o ^痷› ߞ?- \zQ_?0{ {{@ )0*A e@JH@@@@@A 1`%4L`քe-WWqˆ1fPks\4s?51r349kkC93&Fçx~hQ:9g.<}{2Ol@M!>70 )2?k3]j-~~EA~t\#E'}@@@@@@@@L@cN!/RbB B B B B B`"_>D ̚0ӦCa'SEOόo'uى#'+'n ppO=kX`8άCOϞ;[|8=w| sϘ1sߵg=kt&&7˹Q W3X|*lEC<5̱=}yWj&3K?gO?ən]v1'z z3?9n㲅CGn.B7U/?<;Z/w)~G|k>d~՝ǁG-oa8%*B B B B B B B B ւ@kA55C`rO.!!!!!!_l 'Ttqh*3GOڸ,GO@:Q_ݝc>q jì3fsgCcޟG~k9\X0^%]h&dAO 'd`9c!n˽9_]v{|s?=> ksu\]-eH .wyǯ\_]Tޏ40Ǫm"_5)!!!!!!!!c0ldI5%aMs@K#5fMu玭oHQh1ֈ+FWp!od e_s[3Ǟ:=<{x/|'3rm?|HD8~u^h2J :$ż`7>kڇ&#q>[r񼺇I}[5g?>[ 20c򹠮/}wOKlu?͏cǎ[n{ʈ_7+;O;[o+;P>,YnxsKajS=uO&'!!!!!!!!!"_k©0<^30LrG`F|MuQB3-f`̜;5Ft&ٳ6|bM#G̞xadm>5ȵ?g=G-q= |7ǚj&֬5qĐ=Qx5P [=& X{gG'sBfoc㜗An[>d5V_g|@4kya5>ߘkPH[yS]>Oeֲu%NVŋ0b"@@@@@@@@=מq:8"VbC B B B B B"?3Dzaa:Nx&zg}FL>a6uu 3 -}czkđ&uw1C۹;3Xcm.~?kt$xx989ch3j"O-@|qg8#_!m>aF=z2 v/ḩxόyoA hY=O=ν71wp+svOzZ9p^!W|nyk_ݖvׂ_X^ǝg\tk^j^ssa!!!!!!!!@=! #̗D@qKVL ʎ[n:#(GK=cuTϚ$q rC,qىYښ/#}в )0*A e@JH@@@@@A 1`%4L`ք6m*۷mb;@TvC=kZc|Sq̞ڙ|4ӧZiN[a.}Y{'jfo3w\k߻zƌ3 ~Ìu?Na<ffO<>_"{ &:ė`9.~֎j/5O  ྭޅ~?m Gv?{ ;rw|yϾiwE?=Ou:@@@@@@@@@@}"ه\%Wz1Uzc'/w]nOG2˻!!!!!N Yy "۷q{臏֡]73֜[/Ì<[\s?+z'pH:hcls栿i|>4μ3~[Qp^έ`/-/ȋEy_Tj.̘=ÚAuۓ5~L1`Sj~uu9eA}صn~ Sԧ<8# U_Qgtѽ%^5xa/u\%wuEy % r&aLgY͕;^UoG/{c.1cfb"#g3s%]j^sM8o cbӜ10jG]8go/ķk᷎}809g ]C>8ؼjQBZ@3Oy- pp]X ;=}9:0ڿ`d7sFs7xR%3pW돧~+}Hʣ~ht(ȯ仏0f#̟'C]1bT}jT뢚d8'ze1]"l,[L}5k~\mC55>g^ۿKT,uŅZX@ [8>9bm62?yƶ[X5d؟~Ù|qiֵyV^RxG둏IJ3>r<ÿd?^oPW8ʖ[Ν;W|nٲ~ֽNa?zkJG׋G+F?9.B B B B B B B B I iN83(!!!!!!0ǡ.ۮooG)bvW@:zOOB|0}[Q>aֲ퉿IA_*cZ6WM ށ ߿|l؉Mp!k}8bھ2f`O,f08y/g'<|}K`m>cLrQv8aay^C~O5p zQ_?R0 }~β i0+L 33JD@@@@@C qh%6K`sUJqoi"W @zR,X}{n{eGܣ&8[ψaJ#_'8Kv@@@@@@@@@+X}>T 8 Dn<&0sc++8RjhY;X5&v6e֘ifnjG fֵF3c 3tĘ? Nu99c{C._VR .۵9X\>=5`{'a/9'gmMϹ/F{֘5G7}g>X>,{C|ee&_-7}h5x_oʯQvE::9 %aM@K|@@@@@@XO3*̿2@p^M4>bufs dPLu1.G[X\֜6S=dM}q5AfL{D+5jp f/ǃׂۑ YS5mgYw{gf؟3׮A=F.e 8 V2^@a?zQ1~G90\b#aLX 7ŗa f / r]ҪB(|] nNB7;vyW3?B B B B B B` D?o8w6=a\Wwrk[Q~=?U>~Od6(IA  ;s0ͥgu9|P}?,<뇇3׾X2#F#x3kUgRח\8rb8MK#qK.i/%vuE ]c@@@@@@@@loאKZ-C B B B B B`|,!0-&:pmuYH_0++9f8"fGqui7#'F#?އ>?Nkk؟Z95E,fPuO pQ:{3Y|&Kq9k1 N?>6q L~[Yaam<3u]0cŬk3F 7mhÜI:.`W;xO-D?=!!!!!!!!}dK !!!!!G {y!0k[o:X|S/ƐW9gjaΊƱV/M<_[Xӟٺ^u9˚>3:cbm?Ǟaf{x_o,͋K.\pAٲesxw?Y]CQ>\m۶~勿 ˿{̣g}+ѼWiE89 5&aN@cKx@@@@@@gXG'̟WW{8\B[Y*kfO5aTPӭF<9~r氷YXo/ff,]#UZMv?1WjΝL-8A+88cܫEܷI-yA ?{&3{aI}8=[?kQo]ֹO]ڷaO ;vX'~{9zX9:!E=\v+>Gr;O,G)o۞s*UW?|lTkF6laRT 0:%K J\@@@@@,@㔨X& w7Wׁ0Y{u#%=6Yw:[zkr3[h.߸ziۃ:ҟ8pNkY2[.Znk0+~r&2.ZŞLLkĚO5im1k/1by.p\s:10>Ʒq[mM_~O'R:oU{۩oS׿\v٥[/-7TGŗ &fS]arHNL1UB B B B B B B B B`OB-9!v"_;!!!!!pn0|y곃 7ϗ۷qGhHS3Gbٷ@f G=c]sS4@6n;?r0{L`1{c\g >l>qDXˋ R?{.ߞPֈۗ˙y!8efZd?O乶{3_tu5'SsbęRǮ w?Ε6ݸpi/g><_7s]w{/go'_U^~N݋:Źvk8D_jUϣ@@@@@@@@;!0B ل@@@@@ Db)kF`քoGT]5 +Fk|>jfQgcsN,{uٝk/okuk[8X{15X.~&6 ԨBb<8a{ sQ:>İw/\ν|cf fϯ>̘5o~gݻ8t g菼O?pڛ~Uy9soy{_r76m*׽Ue׮*qY \5yݝ0D"Wc"!!!!!!!!!0'–X38G D̙659yg\;Fl.;kpK}kb>5ZvJd%u|8A>4k0ư1[8j!ggmˇGkۗ5zB\C3Of_~{?T̜ٞLO M j.'vW\/t=}8Mm*pI[Q,/l-~:=YSD?tOG'g!!!!!!!!!"_[0\b0|rI`քeNszthꐙ1:#,fc6*C=ou[?{5uQCS k/j˹,5'e2c1A_Ql s10{Y/>$ac/Eµ~kxWj㽬a?݌gbwu\CۋX.qP=n.~ >lc?׌:'=O+_0{4^Ts4#I%/B B B B B B B B VN 3LXM& *;q\QE|u_U8,nѭPgɹ XY棧ݾmց0_0ڙ`'V1Fkral9'٣uga]̥B`bCq=ǽ1j#~A-QlS#3Vd4^y!>3 < y A zn]vgX #ofV|Fxqj~ cx8gf`ڟ8kkxƬXks۸2-ul-~\'^c_}ÆO+^}=1.y˽}ٱcO~=C_Z^W k>$ 6p In?.5v]|Q90|y B "rX$a~> !!!!!!"_]I`ք/fܱhoׁmTʘi-oe,2qxð,{5ƞS. fϘ}aحoɱ]vk{/u\nk*o~[k?_r{kkuxyӞW>O,yryc*z ߸_=Ak^/f@G(_a~S:B B B B B B B B @ 3qL@Sv!!!!!3O y n߶JqEYff FEc]1csX035W']ø'kb.>k03ÙOFO'{Z}amEg{6ޅx'2.RṐks$<{s`s~ [˺7Z's|k}obxNo3Z汷,?g~cj0.>qmR0~`y[^ ]SXt7W=OvX~W߹`J5#s 00$";B`"_@@@@@"VBC`fM???_vlruxKG@/cf_:gL31S#?|ΈAl61c>3hb4|jwog-Ω|5ìsg.>z.f Dc^'3^Y^R}>4s|i'ZQgB3ǵ=C|ۏ=1k8#1όos _MF_*oɷ^_=}?}</'krrz?k^}\-eY)G+\zQ_?0G9wd!!!!!!!!#aXS,@ˡX>*!0m&ߴi~cP{T}4x33?[C{y]vbzs \5Sn+73S'#fOlБЍmyW%WooY>|_}l\x\W.pj{__~?Sw k>d~՝ǁG-oa8%*B B B B B B B B ւ@kA55C`rO.!!!!!!_l 'Ttqh*3GOڸ,G1 cO]q0cY.P'FQgߚmzk`>wg-ֲ9um6 |Å/X>|۩A6z,Ys/,}R>-KG=|(+Fb<< _ш%/zi?2Ko+[m퍗iaUDj(S(B B B B B B B B &aȒkJ 5ś!!!!! G>k̚0nnܱa-u9*m20b 8WwnqSGۿ1gzF;ۿܺ<^ǽ=ïN{ثMfX!VA䲘1\?pM\Ķw$'~T>W6u=|kX 4|sk^fL>|]enc[)w&oryr|_9z3wƍg3v3/4R\~~gXm6 0e!!!!!}d 󯮄o,rT h3|ݫI5kG}'a|5YO rfOQzc9ͱ&ڻ~%5cM1yuOf^ 2e =zƑom[8eִ51sY$59] 7EƷQ\Eg~WƝwىoam[ˍ~ךdU@@@@@@@@L@&~!pz柞ONC B B B B B`\K,!0=3,̿R<\"V@ITτ/0~蒙:Ƹqq=cfg&4mݙ `]ksYY 䇍&5KǑC3=@Q xbmÌc6N? ˠ qַ~8̣>F^^Ѝ_ˏj󹗗׼e~^,uU?}Hyk^>[ גhGyd!!!!!!!!$a4iW@_9u _Eӻ]׿;A >&2'XwKv/K#,旲sǶk P3vs? ~gx3z/\{${#Z?)vY=^\oϫk԰?{6:~85ы'??3Ɍ+zq1̫a )f'f)kk3?GXϸF?EpY5yn"u߾e\%=\|;ΗoOSu# ǎ+__O?ӧGӾ;qkM׼NQ2]xwxz փR||Ge!!!!!!!!S$aaU,@ˀ@cJhL 6_]1\ǝu E;EFHΞ51>Ĩ8fcL>e|So-4@ ;Suόy'jfofD6w3gć~'Wxh/A[x}D3;L.u /s&\ur;o_0>jڟ@}[ 5dط?~jZ>~c"ū}痧?)kkxwoo/'2t\,]vp ^fkMdO*B B B B B B B B M iO8=O'!!!!!!0.%YCۮu9"v.cui&6s]v1~=4[4m֜K}m=+krm]I-4Ѭe~.y18h~QmسMNlR^Xmc)a2|XaZu퍷WgxqxcE]9o-4ye{_b9>sc_gb쏏x:.О/X ׼r/'_SxCN4~ ?M<|@yϽ͉rK0UP.H”X  h+gٿu]G[kr1!!!!!!p60lz[F`քe-|c-u^uhhE:fDr5g10c73|7ϊމ?9+g<=<>q9s}<3|Vd\s! } bsˮ.3fOf`dS ϋ3kqm>F;؃_]3qNY{:v?_vرg`@gѣGY墋X_Z.3>OM'kƬaJx1cs yz柕-ȋc .RF@IDAT[Y@@@@@"Y2B`ZfMPܱoo|c>b~ÌsvY3a?k՜K,V{kr~kwoK]Ġ持Q?h9{{&^ u9τɅ9cx'.P}:=|b Lykas{ZPށ<10-s'ٟ3Cc:.ٷAֽ?O+_L:Me_e wNNA \zQ__m??5/waF?Տw@@@@@@@@GpdN u@@@@@0^hg̨0no3v+FOm1j]TSlIJW:cضy>fcgY۟o&ꭩݴ>g98üm.p^zbc-."RX!k~3ª!XSάLOϳg&;Z| }iƐ7_|="нNa?zkJG׋G+F?9.B B B B B B B B I iN83(!!!!!!0ǡ.ۮooG)bvW@:zOOB|0}[Q>aֲ퉿IA_*cZ6WM ށ ߿|l؉Mp!k}8bھ2f`O,f08y/g'<|}K`m>cLrQv8amkt(ȯ_tkx_>G?gم@@@@@@@@4 D?Mg&a%"B B B B B !a8%0{*zMC4ʫsƅu D=)Ggؾ=7Y=zdc[GkgjKgi'=<.cc[u j޵s[w|l؉Hhq181-z⬭D_# # N⣯u{7߸~|r;]Pח+ hԁ~rhxE. ﻤAZΰ0 r!!!!!!!!kH 5!0'8 O'G!fM??7WvzUz[@dh)Vd#=3yiVLİ6.GkK=s^ߛZ{1w#}.V?O}`.䥬ϞOg%FuA'>(bYۿ%|GSÞ^ֶ?~}oί{o|5w?1{1׾ {p̒ySDzo߁rrceӦM>\Pw.z`{oG^@?rGp&UCB!!!!!!!!!06FXS)8 D=5`{'a/9'gmMϹ/F{֘5G7}g?~|.{O}o?K~#W|嗕>! ]7F"̟:B B B B B B B B B"̿8B`] D<B B B B B` D?/543fTm}A7q{QޫPΌquVv꓉3.:ۃ<|Hk˚3WCӃx곶s1Uװԟ=ÌiZ1~RpF .ۺx0Zu;Ã[:0kj1cW13qo suv{#Ş5w]߾:ajF=Z~,~O|+0G=rKe@*Wc@@@@@@@@D"̟[B`h_OWX=uK +]nO>rk )!!!!!@m.!0J`s^]:淢xj9fhh=NLhY3ȱ~][SM7{{Nu0jYǞ;yLӓm>֯S'KDf󉒛$Z€˰3g@\ \xVe݇mMc³/\_~x8s틥o;o,3"|>``0oK?ߌϚ^u;|-u}#7g})7vߎZw/|wZ%'K~;ݫ/;/g] s y:"! w E:B B B B B 'a̒"0k|~s _YVǑE3>2c1ꎉ#O-2kqW}3b403{}Ù=c褭~뱶QZrNou0\԰gc71cNlky@᧾f3S53^a?{kԐ.xs!\?>̙l~7V^c,wݵu< >i9y񝢾pc>.0א }>hن@@@@@@@@ D?Ei a2 %$B B B B B  aS&0k[oE/W9gjaΊƱV/M<_[Xӟٺ^u9˚>3:cbm?Ǟaf{x_o,͋Kѿ.?◖cxkc睷)__6 QD u\)F?1&B B B B B B B B J N8#ψ(!!!!!!0•*Ua֫+Ľu1`,5br֧0ckV܊zǘ9`o]=k4јk݌kc~cޱ]'f"JMѹ3Aųw'rgg{ա0E.>֠kQ86{3<|=l?Y^O[n)}폗>Si#^dX9g!!!!!!!!!p*柊L!>"_!!!!!0"̟w'; ̚0|پ} ߘkwԁ@؁4U93~4̜1;.}{Xm m.1mm rk3fjh޵==5Gic3!D w0}rXL 9k|eX}'bN]vk9k@Kkk7.;coEWW|1﫟=<'xjLٯo^=ޝ-u:px\iGˇ>^<_{wٸ{w8yGw/za}N?W/?!!!!!!!!"_W Gpd!!!!!?{oUysBIE $Q`k[oxctx/ܽ!)JAp22]DD HywhMIg}w9'9Z빮od'eHc&A֘?4pj_5ii^coWGǞf㪩 vw]ͦSoGG:^o<{|ZN`sP=}]-YH\!`́< apq숗rM6gyS腋3Y>us0ZaFA~㬏;369 ;x:׹u]or=nq23;S8|םw/}ayrqEݞeP kr=4󸛾h\MҘ?<4/X4/^BC`1&e@@@@)M 9֘O۷^^}\EFhHGodž}|{=vsQheor7 zylǟ5vl}{ɉ5zT&g/b,lnux#Fw=]\Aq^kccpy'|}of}U9~٭sjgs3+xQYџ5v|{mu^ȋ^zs> \R/xʙg9wwnSnoٟE'>Y+_syUԴGG A?5GG\Ә?rj) ن@@@@@@@@HcNX4/R\B B B B B B`ҘXq 5&7m-[:Szm gO U]dmG8cY#ډ3?:vLo4Ia.>ئE9zv͸YN/'/YkGea}Գ7?:~1Y#//o]^qmΰ>~u[!}Q#F;5L 9{V:Y^3t{ܗo+ʣ.x^?P))wwѤ*\prw<~HkoSs5޷!,NKc !!!!!!!!H 7C` Ҙh Hcq3֘?;;[mm7UA1} z!3#uVCK=~3got]3>y=BZbWWmm w1ϩ?~.kfˌ0RYBa=pI.24c/lp"ᚋt}sxVra=Wg}l>޹A[_?pÇ=BլS~Ms_疙n R?g~?=syoЭ$<;< $Z!pbi?1x@@@@@b11kK`5oڴ~cWV1alY;ӦjO4ǚz[khƎ9F55{sO%>VMEǹr#zѱ &ca}r#joYB2O`kc"q:]ulĘ#Wo fƱ+g~Î\5Fl_͇:v{`W׽\{[|1/}\xɊ4;*/~яO3%e?cj/xhi_mG1(B B B B B B B B B` 1^@'X,4/XC`l|y[wqgNpo͞xmugM}\gM2=Yot S~?ko}fƿ?{ 7Q>,^t FgN.xpp `B#vC}^x~7? D_saʟ}1ɟ~iycrfSu9яN>Úxbz;:3.' s.YL5 xe db6 Y&vN׏\~]5c>\ޗg겭rCرw߁]4nw=wr/wkW94}|H\vO?} ͑=9̠zh%G\jG~xF!!!!!!!!kD k:eB`Ҙ@Pq HcA-1ӦMe9g?]u4N2=,33hFǘv{?6_z8}Xrdo_EgfuY*Dm}b=\ytַó,W<rgAbrx1ƴ ˼7\;:5ú׏qLol 1q+ | @ƙu<|}O??to^Ti+emB]w}y{_.9ֲu9' mO)T~r=jȯ/?)S4O6B B B B B B B B ֐@vJ1!!!!! Ek1֘?;;[m|exs_r=M+mXY=̽kDA0><[.vƇ8bg/=3vrs:a;{Sg,:j7/KNP$G<\?ރ3 \ ՋOC3ƇeMsX;bkk{s83#[Xj={dO}3^dy_/gŗ'^^>yQyh%b>j0YЙ,e^b5E VB彐1?>ؚ\HbcxYUt4lro>fl֫˶G8ODZG>m>̣?>)l|@z-4\ǡ:hGeЛibm5F|˾}>lH_=yk&fQXm0z茭 ;㹰ǹOsX&$XЬE䰈vG/oFt›o~|ǹ빭I~b;tG^{.3"3O&ٽڜrwc?{]yֳvŮҗdn~o ? 7(oW/(Z4$ %Hc%(V@W m@@@@@Ҙ>\ A?[|O;* -f h(y֞dm?b~f31'kA!4o9՟cM,k!γziBC.l^@z; X{gGѳ';b~!7>aa紎9cUͅb.ρ/s0=o̿K U|];駟^~?^.e_C \q7G06ϻO狾 ϼxpi:7C B B B B B B B BxҘ<:Hc3OM v'7 ܘK}2az@ZTG6 m CϚdfб7>j,z{m[gƏz{_Wung;X#},zhKa㡦/OlA}/2㏏=@t~gVo#g|g~Gǎ1nrֺ}6+Y/*gϾՅwdm1dYǾso19 T Oq?Sp4%?Bǝy!1VԘřd!!!!!!!!!(i_8h~t_.'ُ>#c".|u[2W}>{Y@@@@@@4ؤ  KپV477T3M2~ ?{ ==KOv~zyq?솟Şt4 Wոa}fuoU5z?{=>v]҄˕ zp9sXQͭ&x1o}fs{>>OgΪ״>{n|Fٻ#cZwMO:tht˧}uyyjX{wzR=R5zx3G͛h7;w7Uܦ1|u@@@@@@@ rӘ/!!!!!!4i_DZh3e-WTvqgPN/}1Ѽ.Ѕj11&1ͭGqLk6gm>!!7٦~A}<{]D͉wuuYXxqQ=/ǡ{ 1˱̎\8bl3w}qz kK=bQ "y[ߺe9?kTW֫˵[ 8e~fy|?X63QnCY1# ':D_v ?)¥=03{b=pu>D3;L,yc.z֎l '?pBYy>}}ԱcCFG^> Nv:'i^2bx?ؚOIvۥ1xtb %!Xi_,@@@@@ 1|b Fk̇ynnP4$ܯKrO4;4釦efklƒu_5g$=ѬeXzɡ?<3ou6~ѳE<:f2c-l{Ǚ3K~t |ͅM<؈SG ⋍}u>:3`テLڬk_}pjqyzV}炂xhi_qJc`LX4/ [B`Ln4S?ZˀmGU] b_*Tu2}Ʌ@@@@@' sFk̟-۶no:e޵awAF2b1̈1Æ=CMS5}ƱGq~9=:WGa.[p zPsh/{{=ƒ1t:P/ıkF σ3vPOgVCykP>P㫪 ;eYuܻ.]kU1{}ƿ,s\`&ף7ˮ&sy<4ҏ? 1~~)S,44Hc%"֊Fk̟)۷m]ߘO_1o0KwYv?f^dY_X|/og&ZЛ{X_LJil ,[5}5{mc >ر16ON8 [W:>቏UO~byыĎգP&pP /!F6}0W|iG!!!!!!!!4S3'!!!!!K!PKL ژJu=;+UMuQ}ʬ~e4#kc֗`\Ī&ilJ{3{l"__Ã-&f._B6p1"}2=q{Xe\z|>8ly??w!w&3xu)7طk]`[ʽ~c/}lc shCkA5Ex .Y{9|E 1F0gk6u=< އ5QzC̖:jc]Gjֱ_R>ɿgyFןm͔wuWk ^t#ʫ_^5=a?255חTsunwo'_gم@@@@@@@@ZHcZN814柘Q0wVs˅oˉx=#v΄yQ׼=\_ui^!XLg'7׳x;ʯ5,<ˉ=v汾z}g}lK3O&7w=CлFOnuz[wZ̋5w}8xx/́zuIJm=~U5yAYžo߹gNwTvᄉaulo^hfܜ_oɡ.1;Bkb/K$`p0߯=lUZ`< ?]_́/[=i={|haZjbsj,>Df 1Y#037u'|ٿG?U?gϞr0kyU9L_Ic!5+3B B B B B B B B B`ҘH`qU&U!!!!!4r<>lGpSwA;DcجΌ G;MW{A:;Mo.|cYcPߓ5~ǽ0} }z[kZO.W!=`WïQ1\{s&31{_Y#gݣdžuݶiGŞ5gYߵˬP5w7XuZ/[ѶoV+gz|tozy=x>׆\Ҙ?Uѥ1U&i@@@@@@@@,@)N!f?7>⣋ h#juЪ}!z#ї\fwJ? 1!p|1~c+o)^e{7ycﮃ^dmuM&^d b_yiO7{k'<?cMkL?:zI>r|?Ho/=~Ӿ/I,. @xw0%_4ls@a}@pŃ͵4#A?zs/~3>ks]}1_M[l.>A}X'rgo._e+__ZN;c1y)ް^b&`k>MU85i?5{n!!!!!!!!>1}<"$g 1u@@@@@,@,!V6Zc><ܭW~qhđ&aax?~ezwq"f~uzo?ڙ=uY=B97ksX\ 19ȅ/vj3ȃ`s='y!3q,ZL.Cq8s1 N=:֟˸ =, luXLf>:Dk1Ç=šQ]ZPσ}}t35R{jժ^7X+df}F8Ԏ>:ޏϚ5͋?:U㼬ߙ<{yc__tH./Cbdžkb 3%EϺoN |з.Yq&1;\ל=;lX _g^_]uvk+Gʦl*or'OȃuO8yr=jȯ?F94O̲ 5%5ŝb!pBi?!8@@@@@1QkJ`5-WV븽{RY3LzOU{gZa?@޼֟{D#XFo-fϦ/]#FUڞ,I(\ܙCzgjm X重qz6s& >{&yq9Tq}Ήu!眽X57/yyΪ{'PhgNs/<4/bҘ4n  !rҘr,)B B B B B  B`h333e֘S~G?L}۸o6o̺<&V?ش7&k}@y>~k`Xf帗a>1KRŞ q! c|}ӹQ>>azsk r[~roB 9kcG$ClR% 赑<ͣ:gE/\Z=3bg}tѵgM~u\oй}{s]yiޓ~}aٗ(6yy׵=9ˠzhq7}0Wѥ1x1]! ҘpwHcIruN x4֘O۷^^qzzi|_^dT{xl؇c7苶N]/zcϠ>Wf}Yc<ַ0X}>Ouib~6"Ϛ?F~V ->h|5˅e6? .z`ևXEsڜ8~q67uYcǗo؞VBYzzg?ɱѡ=8:dP !>?)S4O6B B B B B B B B ֐@vJ1!!!!! Ek1֘ilzT7qG4+l9{zm wnjo< do<:{QNׯsfziWWM<u>6&/ѳkrx9Axif/Z;:/{裞#myy(}}2B-k|oc{{?i̿pCW>p]/yt/g)Ϯ OxWMĴTkăJcnEҘvS)B B B B B B B B  1H!pHc?C B B B B 64ogm1ح}e}B1azY;ӦjO4ǚz[khƎ9F55{sO{%>VMEǹ{kcgse1SߟXm-K(\@p{YgGs1a<6scfC`֯.X|#?[Y.{%^>} cY|Ϯc瞽v~{/Yg3n+^?ʥzzy3VmۺÉ#cJ!!!!!!!!!0M D@_!!!!!1=hhs^Q:coZ? ?Sǚ=kćX~j~m}O]aO=t=UUb6Jԧޒŋ.9(Ʌa>.!^\UtŽt^b 5Z}}!;z㇝k}9G?gcV/c{2usvHƶuuo}Kַ~{ )D?N;'?\VEq"5I9-jOjl;l;w7]ܧ1|t@@@@@@@:!u rHc~^ !!!!!!h̿ƛ[wLFm뺩MmW=[G窧OGB F`5۶\^o;ꠟxRUlGZ;>ot}|v$^Wσ_tsͦ9r|#5vt=g"^[]NK,9A =kfse%Y#치`ݼ#t}b_mmGn6O.6,{lkf3}>P:vw`'o,vԫvJپ}1޽??\>ێϥx>5?_?=9̠zh%G\jGi1=sS@O'{W٘'[GgG_rzEs@@@@@nk`WsRlMv9g?]u4N2=,33hFiv{?6_z8}Xrdo_EgfuY*Dm}b=\ytַó,W<rgAbrx1ƴ ˼7\;:5ú׏fxLol 1q+ | @ƙu<|G____X.}39D訟A5'ףhai̟9MclC B B B B B B B B` 1 aT,@).!!!!!!i_heWV7qi.GӄJކU3FON Cϳrlgmn|#xfQC{{>sa'=Caf/8uƢ{2/YL5Krx`l=8幰P44c|h'\4б#Ƹy13:N}?3Fk߳.N ){OyCRK|o/>{ƿ N;UO~bg/~ WáZdA5&ף2hai̟8Kc4C B B B B B B B B`1XR,@B)>!!!!!!pi_8xZh6o7Qypj4x'fgoǏcuٚG۟lc?~C=a a35}l~c=zϵ1#Xk[|h ,58 #?fo;k}kcʽ 0ƼkAYMmzgO=ωM;5[zǠ&ߌX?}u\p࡫SCvᄉ}v۞^\K˿<#8aڋuOT:4^C=i̟$])^!!!!!!!!!ҘT3N`)_4/5O~^G7 LG_r8 7տ:)u7UǦٸTϪcOXq_GK6W=E[:B`n1Sm?98X  W/֯.u'_0_M1?~lU(0;z~|rp՛;c5uYЙ51x[˼k{!/b~|85𲮫&ب|جWmqcwa}m}jG{vkyȧȂٳO>klx؁v{T) ?(C#h{x~->KVx+b:'57E;6suYO;ΛnҘ>;B B B B B B B B`=Hczx 9C% |] "!!!!!! ؘ?3K;_m[pcv}1Œ 9֘?پm 7q~0MFX4/$m5F|˾}>lH_=yk&fQXm0z茭 ;㹰ǹgV].MH\YC1a== Ư4 3⇠t}b$}U=΍&m'k}kSY{B>̈|ά n۳ש/~C/f!?N;I_-,zE YuOEd? 47Ũ~5u=91C~@@@@@@@@A  Ic~xK.@@@@@"0n̟{/*'= ژe}0oɔ^h3fttoOx|̍TO?3{G k\ { t7Ɯ&^̋5~U4!J!6/{D ν3z#1ٛG0sZǜ̈ D1@9|c7KƗÇ??+??+pɣU/-Oz?1! %Xyi_y!p|jo_>kjT1_O :$yF 8ۘ__zhП 67B6AmY ETaz@/AF#]fcgM_23؛YU5lݬ{ṃ~c={'~U7lo~vf1y`f },zhKa%@NFvC>6r }}{SϬ`#Fxj39~<Gcŵw*AYn9[(z/X_Pn[pB}KV.}˹n_hqx XOՕolmfϟ~43B B B B B B B B i̿?fO`s#DA~n7;Ba#GҘ/!!!!! gfk>jCK`OF.lRo;uQ=66k==m$kG_muFZo.h3{2^Uz'ݓ׵UtƏZgv]K,Wh>/ٳ@Rj}G5B6 ?@Ϻ??>9z\?.سwGu,ݷZuEU?3==SQ}(_o<|˷|C9!^VFoRO75>6n|!}i̟~e!!!!!!!!kG k:B`! %5~C>|ѐOaiK.d!!!!!@ߘ?S630n7׿G lh)oğ;{ hm[\QRǝu;}4cly]6Ϛ8f/-YqLk6gm>!!7٦~A}<{]D͉wuuYXxqQ=/ǡ{ 1˱̎\8bl3w}qz kK=bQ "^}]ַ.Ϯ}jXR7]^+.\}͛9l97|Km`c_oSR/|/>~47}}o,#=a؄8HVuUś!!!!!!!!!p\i?.C` ,1#O6Y/1\4ЄҼZ~8eטz{s7ѲoOc@'?C`6ZcMsξ򸩎긧{yFr~fm˴6|Щfw&Ʃ:6[&7lCcG`ck1s&?ۍ5q=6fĘa7D~.'WBff[O\D=k̎K@C>؄.[.p<#ɡy< 3$kgX_Fj߱]^?voN;,) 77E__V.{3cExͻwG]TK_\=wNX s=0uԷzM| s1Yv!!!!!!!!!ҘS+NL`|>s4)#B B B B B`#h6?/;ѐטO a#G+ c>c l|nxs[8T _*6 Y#{ϾekFo,Y[.&V_ɉ/֬3fFz?u3C}fw7XqXby{ߎu=?c?֜g޼esu=wރMy>X~]|sЇ=WTٺy}2w'Kxr=z|ûF r=91Yv!!!!!!!!!ҘS+NLύĆNQwu?9iJy%0 @|24\cvƣo?*B`.11۶no:xÆveZTo_u,F_6= DӿlSzgy{Y}bXC9Oc~u)"e +A5?̽KξpZ#6akƆP ;ֺUjPOc&c/ks'|V;;kxֹگ*\S<GK۷y&faarszCÏ|~/yGorOyÛ\7sէ1Ә|>@@@@@@@@jHcjMXm˓cs^zX;G빘1 C,uz\7ٻi}q[+v8g˿\gGӏ7_嫿ڧ ƻS2zhG\Ә?rj) ن@@@@@@@@HcNXhr1!!!!!p Xhc>}|6kiKc)R1gEBOq?IF4B:_@#?~e{ouBg~6Yc7o__6ս A~IADZ>s8b.x` Ǒ<@=,Bq//ӏ_.7SK߾tNbr|.|>y593kZXCm _7; }u euiO{j˞Q;G[ny k_ڧ IˠzԐ__ M_?=wi̟&}@@@@@@@@4T XLc![yh7lbQ#Cs1!O#>!!!!!y-o/76vߒ_ f:?m_L|w2C  lR1=oo̧Ab~,m(G2폯%jnS9ozrY@Y叝#{͌/=G]~6~? r\f˾1c/zz|x.fDx~>|gϹ.Csk#tژO-u=o([Qw\v٥_rg.9|/|7қ^WЇk A?y4}0W4Oڦ1 H!!!!!!!!!ҘS*@`hs >c(᳉,bhg.i_K@@@@ 0٘_TǍk?s7׿:zRޒu4ט?SEZ?lv؛<}ɮ&x}6wCcFk#uƾhآ q.U_M;XzY:N<[7g]6ѿ߳s1#5>v3?|W ٙ_eg?pW)G]&.!!!!!!p1^6yl|EC>4978i l|϶m[:naeVЎm3ѳ،~ჸgVMMf639{jnvcirGzM}.ۚY{GS˾ϥ}shASzhe~:{ycl_똇zs 89}r\qzhq׆lT碆u6{ǓA_n޲}kӆ?1޼ı6?{׷zz>~/zu_a9I`_{ت{< :kܓ ɇ=:fl͍gA8m}?pBOy{__yX[ߙamOu]6_VO.Q;5Cm}k?I\!`}^u\ ?` .'bsy]5@7_c볷>ka~YSKvb8kB>tԤ+~ƛxƓ5w@Ÿ׾WsD'~˿\g>O_NE1~c+볼mh^e~ tJ|_ۧǣCM/ɿd1@ǡ3k Г|u՟<̮l[8uF\|sN5y`ꙭe}g@pWg]k_}&~1߿sp1W+ԧ>?1o.u; k]s&7Bku=5y^UnA84}=1\ӗ=뾾3!a˞grda&9WĿ 9_޸~حm޳naʮ'}ϖGklUU1?z?cy~̞M_}={^΁_lBs9r/_tA2'b6u!Ÿ~Z`@0>9EOfjyYs⧝ RveKYY={' ^\ns_MvO|墋Ytw'7zw}Gf=94Oβ $Z!06A}{A {>gjB,>鸯~{dģ}ȁhc3gHzFuocR]@@@@F&qmfpkyl523nƯyF-79۾9lMQ= m3 f[Fkwm[w;/afPF&#afc;q}bF腶quRS6밷Z`>_X:zi¡VJ1UO=.E<>k<7>!f|V>1o:>gݎC3k}K.[܈Y㇏ƌ?A^+۶m+_/*OxW[~MZ~C|S\~?Xh`Go(1jxF 94C B B B B B B B B`m 1myZ,G?#g3}\ >,ӯ~$rr8:[u.sge@@@@)E`{_*j+k3{Р?ښjC\kɉe!W۠k1TG|?8 lMmݺ[긫b - (ЎksUs49a|o:A_ӧ.gVoMfcՏ׷aS.-Y,@˃qzveMs{.\ ~Aǚk}_ z:z/{0|ysUU"v}˷]naT_}S @A  pHc=)M[+HzI(?|GQ[__G}3Cc[~q/qjJA'@ A  @A \!00w m9EڢK֏mSOf{{-KHj\E@G1D|i ks /Cُl:>p႘՜'y̏8b9tEn~|!??1 㘟5zt K5sb9 g\e0ظ9Z: oy~!_?k53I9k ʘO<3z=~{Zk= ׶{u!%_U_wgqqO{OO\<۶'7>1Yn{%a$8T]T˷`imcnrFoi1e@A  @A  ";قNǯJ$z|7}߿ؾ9G{nw#H_ Q_L}c̻.* @A  >{K jx?WΠiFf{<]F]Z>٫?iQ-%8j\N| ƃmO1z!zY#I6ȱA_93>yGl}EۉU9zO<Ȝj!5"E\q >uLq",znzpR1|ï4Ә?;Ѳ A  @A  @@ @`k;_CM]T=EL:(*x\{,h_y [hڑ-0K^EQ @A  >}.7![+!uEj?drJi%_H۬W =G1c{Ëێl6fpi{6cBF?2M:\JA^|!m#'2F䧇֖yQ贗'.duCMr)ܜ@i7FlxlhQ<#Vmn'F-@1a5lD~9ԁvߚaM,f׍6KY׵qm$+`7 ?>e~1w_*˿YZAO׳!:H0׬zӘ?McyUA  @A  @8HҘh'W9A~f>Ewat~w16;Ew_Ou]/cu|Иҿ|Uw\ͯR2F]A  @A 5Fæ=roFff9?|Zl|s{3xvs3jЎ!흩M|jS@֘رɛzc;ڮϴX>ez]xΌ=rHk|Pa}諯~]__fsUy ?="#u"WU3?6um˕Sbݞ`ENaHI6+! |̅Y_Y21g~lC\{yf|ΜpQ|T=?4?ܹs|ӏ-~M*gXoz7K׭=I.^[p:('!2kg|{<?&qDӘPgv @A  @A 1+&ÀhWL{ 4ڌ^V*j: o^]ԭ&Æ% @A  hf_cy)֚]Hon/u㾧ykb"!'$nf.C7g syA lQk?~x/j;~W4# C\pN31 kgk1rd4fcoOLl/qO dڛMs~c6џ36v-?D$TԂ:c@@kij{$Hc50x|Yyc{<| @ @fS7v ڮom~Dk_Ӌ_?_Zo;I]]=mޒb|9=17sDoi1˩AA  @A  @80Ҙ`P'QSnՆ#]|w~ڃ+e?=N-y|gwLx@IDATh藼R. Rf@A  @AJ[5FG}Zڵf.QL=izɖȇ0hmԟ1$fW$AF5 qnvTm;L;D?q%tr*ٷ\X1嬌f=qf6.6v>رVƌ/``BZ]c{㣃Գ&c ;ΝϿ??*s?-z/y{R\4N?H偲C4:O=V˹-MvHc@6a@A  @A  #<N 3 2@͘ZJM`ݿXڵ;ۿ]oM(6Z()4_lK#Q6sA  @GqwR7y .U6BO$CWӺ-'=|-@2>~#-I:]j* !p|=۰ߙFa..J3+M,F;tvdc!O]g|j2!celKcGLt 7vaF%ut,@Ͱfc̬$<Ě :f߸hn/Ԣ 'uё<ثsڠg~bH,xjCg}}ftX7-~U9/_|Kz^ZSy3?5\ 8 yVSrnsz>14_γ9@A  @A  Hc6\IFjwC;[-; ֋됬;5fb\Wlj^#S%ۯd@A  Ո@ofcw%fw`4$f3LxLMKY }+6dUu8LA5?~|qcOm]m<ІCLO1k= :M=rbB03@G6}Ь3'kZ3:\< @59Nv{DnRy wͱ͸1smc:ʬ85vɣco^}?t<nx\/~zӘ?Mc~9 @A  @A F  x]"6zטd+#ƈ]e1XYݿ[g۫@A  U?ռὮGQ6g+|yٰ}{a_d24ɲΎ-k6CA  ֘ ۟ (OL< 5JO4}[ckg|Őjy>"1m~!O1Cg6T{' {iqaCȈOm646qT]`kH_zI~bAQGr3?::k\m}&}1/F'u0ů_?̪_yяޙrdl4DCΏ|N.o֛͜Fi̟iY @A  @A C u2 `s_gMj7jwӯk<,wDT6o_-So6eXƙV@A  @#n==H< ZխJA_|*YV^$ N8z[c۰aF-y3HCK^t!2-{l{YûƟ}ĢߙX[2wÜ6ue'.Hd u#džɆgfeM<_W-r8Mɸh?vu/𥫛G9kt!@bQshoW9S?|Npwve1޲./AL4ُC MCmh?f2fӜp@A  @A  i̿'g9|ǰij;f4|< ?|Y#LVfv9 @A  S&jG8kG4x}Y.]),>;ֵ:u vQkzpi̿3m،̅azmFgiE&ˌ8荃/qenljk팉!mK|95W[pdS;AiQ#gyBҖ5a]7QQxpbo|yGo>k6#Æ6 c9{];?g|?lo~w[yŷo:uvZ~4s*tLx@i1r A  @A  @@ {@`S#TSPmnjg85 {§ʻDKFFEUڪ@A  @[ ɸQRmm'|?nriCF~eVU>#pD_Om=3lxwD+|8W{ 0ы o;2 k K[cGϷt2ncA 8wM4;L ^Xs1WMPȉ7]ئ77uc*&|_xY;3[T]L7eQ Hk5t`<5.r㰆7튥;_'?zڭrkk`\OdmM,qm?%r?űc1Q?ПG/_h܂q74Ә?;Ѳ A  @A  @@ 'Tfcޯ|hDQ<5oA  @A`_ _wAS`/㷵!K!'aR[rU)oA`7擏҆;x {:ŁMiՏ_կz1ּφ"?zd&kojvǎ8ȉ<=բv=<G,Pٔj=٤ 1O vQk?~Ǟ1mm_olEdVyf%l:cK2c<Z͏5π-=#65^֢:f{vAYk;kaCEh% QWc 0ACjtDLgN [avv|Xdmn3o8wۋ7}_yj'ݺVKaG-ng~}ORB^o?|\" 8-рOyHc7$ @A  @A  40I. 7>_} }]OM^ې>|A  @AxgL-hjG_`ʘ}fA`7|~ǾMh6'f@\ljYCƚ/N#cg߲9Anjؕ;=5A\4&5qA7&rx옡_~h v'̬Ÿ'ڽA Y7 V&^ǗSc @wꃟU??f14Ҙ?NcD2 @A  @A  i?@*nɯ֓}z|5<~/2}fF}u_U9<ߝ@A  @ `&4.v簵DǺPC~fn4JSHdQk?vM7wAc>}4sicӸi:#GCd(G)_9:Fͅ<gȑ16qcc.d*"~t{& sX qj| vr!NmZ'q; KƷثolmX/2iͬ!6²d׷q ߹گUiqFXI#>fgӜq:1A  @A  @AJ +zrKG`4o~gVߑi;vuTśu @A  6wq37LI63 vQk:q_0xWgڰ?^g/264//z i>e5vˌr淯oH RCbП !G~e5Q'^<5_6꒐Uk_çvdzaC¥_G<͓C;3vڼ'dc?fE_[ny.x; 8<.17yqҘ?G$ @A  @A  pp1N p9鷋W][]cč5߇@A  @+߅L 5oɜj9"p ?k_̧>go5"6x' $zhK/6v5&q{ vߞi$k03zx| ALd5?WX6n[C'2؞NnͱaC]u!'A 0uOcCƀc]C:Sk.|1ڸ23:gso8Ä@?"~!k .]y`ܲHcH"A  @A  @@ $  &MiG],f=qCA  @A @`=/_o=ܼi;C5_o|Q;x .^G;d^Ԑîr61ӈO2q*؛8`5<"oüE.Ud֋8][Sݫ19.p?ƣZ:7nl't!A'&$R:େo=:kqFmc;3v]k+.D;xOLǴG/淚 kv_67]??,8Wi̟#uA  @A  @88ҘpX'Slnz ߂ /E_qJȰA  @A 1}qvvxGd;A8jǮfq/l ~1ffv½rmQ_G{upac aZr3=ʱ1=63&Ɲ׵<~yÚ>-{lA.&ȭmnu # FOn֢Z{dlz|mڸڙu`{s!#1cm~9X|㙟z0t'A_k)/Ә|9"Y @A  @A C u2ˍΚ/w;kgw)6A  @A A`7״hⶫd7yG5;8y _v6l{=VfO4kh6ěGvʴ銽!Х1Ʀ*oMVQ.}G'2yo.vȔ♟Syh^yCC0'_̿ ϣ&U 8^!.o<8Wi̟#uA  @A  @88ҘpX'S8v@O{ _f]v_AA  @A &.WԌUa<Âmqm<6WEAO1e+kz?Ԇ=Ȫq"&6vf6}P=36x̒~u/Klؿ1õ%ޞJĠf q1gF^r1 J(2. l\{Af|zCՔ85Oڛ=~ bFemGFxyùsd]ke1 }[1ߠL @A  @A  kҘkQI-_U#j)6 @A #z>}KIzZc>aw/jYg&a.PTexcbr|75~=g۰ߙY_f}l8}Gn~ry k|G,f{D+|ck uڲfdv,0c1ff7Txx=O` j=Xȡ:{{xk*r32!fcBuv9`'VE纱kq񿱍}}} "/HcaLA  @A  @A`@d{o v[od@A  @ k)"E.3G1رcox .Z4ۛL1P3!d6v,x_66S]u`BϺڳ}!w]_Zk2gH,7"ѣjNׇ ]%ͯ31kc]x{k!|C~[H#7qk=4~AƩk3{`PVc4qL޻믿ňclzj!xl`\~ޘD[|{b1L> >/=n*1g֦= ;6?rcL&sc݈7zdlȃO:jf%lEV䍍 ^p!o d7?rSvV9 Ag ONqۻvĉ5>t]|bo۞tv}JIc>@A  @A  @s Ҭb@A  A"&D;A(5gΜ= ;x Qnl!kc~9>cf7A:s;~皟$44qҘp$u2 @A  @A 9;m̿G״bȕ3s;}lgV?321G !מY? āgVjI.%#07FlxȃΙrbc㉀yL񕐱6ĨD ۹{ņ|^cuOİ>dcf׍]٘:af|_ƭ|ZC~i :l4sG#~㚡f|y4Ә?;Ѳ A  @A  @{n7 TM#Q"ps~X1A  @A  @A L|~~/O?o_̷_>e{x]f { lnܾd$^5:%>act#u|)q3K"6_f(LȔamkcnPd43CmpG&茥 /k_{۠[cb3<=ʮi ^3Do6j9cWuĀc[YW{Q2k썯Nfl+c=Ϗ]#g@3dnuiՁg63qбyC],8%!!5nC2y__tbk#6s͏?k򙯻[?'yԣuMkt_K=fuԘK۞Әl< @A  @A j<&#YNm4@A  @A  !C4kg}=뮷7li1VTxfzasfd<Wg艡܍{tH,:oBu/aY5c?:kkfMΚTsmCs.f(H5,(nZ362@ؓ56 lVxȌMc~љ]#͏{Cn yl=4[yk'w}3)c]i8P{~VH&~KSS~'pӘ?a. @A  @A 4~j·I=NcA A  @A  @G٘O|Jk-t}-Hmo7>{ZP/Ls9T{5hޞdU1Vo~l֪z䬙%Ͳ׾mT+܃B k)"͡L!ӸaN_cf zz0c{C a~0DfW?^-0Q4(R|_ڎcKX/ nE"sA  @A  @8xko-IG|h\1 @A  @A v.֘eC_#Ӽys/Gc>fG^W~h n21g#g(}jv=2!xla_}2kOk-Y:?=զW796Sm3{dm>q3>{&Yȍfv6pCe@n؃ kc2.kNd-źo˕56c5##6M X^w> 'Nu Oe}-g. Ɇ.鲮os3Oc~lO" @A  @A ([G}۞f;(kҾI$"9 @A  @A Xcw޹x{ޣ'?ɋ=ik>1}A  @A  EByfI>j_{֤?i̿8ك@A  @A  aDb}q]w][o]<ߍ$瞻峿l۠AܦsH'Ffoq8]Ah@:k qYc>ĠٵY_u;Aڎ_Hz᱇jƆP+2֍?<6Yc~@5/Y ,ظnF l27̚MkoWd Tm Ƃ'2&?3t_Gg~xƽ8[C__/WܹsEp:&uѰڐԈO}ېߛj=2 @A  @A G%կϛǯ7}?@A  @A  1^˷m{w7tYz3˥~6;vȷ|7׼5WK6cQe&}43L#=kfx}UotOt7kNM,õo\V{Zq̅]͇kk3 jSuloDK%7L,A*] Oѽ g@Un{HlǎZ8IG_ԅ54杯ɩ-|<6'Ga~te<K EӅPv4DC.i `F? |ԭW:WaϦ@A  @A   1wZs~{;;\ݸ!OKOןWj̧)__zK^?'jæS!Ͱ>a?8<%^-gAaVL|fЏ-?2qaZ=xk~s6Ӧve^nݜp}aWaɠ?kla}̧IJ_l* {m]c'oN|񁪍9C 5ÇA bk/_音jn"4:]ѰjlϩOc9tӘ?Mc)EA  @A  @8PV4ԷS=kuE%k3gN*@A  @A  @icgΜY}[>}zC]w?<@IDATԩS[neq=z6~4__ٳ4߆XJ/1!/|'~T^:cÚ2ӿL<@_e'e0"g͏ơU"1Fm1v{&_*YqMkp]UA  @A  @W=mY尠?sGc>~7苾sϻ[h8Q>h1Afo ɈћCɰuEC=:>=n,>nydHc# @A  @A #hnOiwʀ%GƂ@A  @A  eDҘ7(> ?/{Kܹsm8}fJ!ی-C ;ޞy~|[vME~xK&h}dus9Ao;lE EY2f *=A?rDf e96Foj[}§!&v csHC?l^1c~!㇌?S/yW~w'<) ]VB'Z5[ڌi4hGkVMH|ˆW(W1ώ@A  @A  1{Ks>ެO6]|y|Ng<.* @A  @A GBc>Mϟ_}w|k_W' !gixpTfэ]AG\;}CX{fb U=1Co >g gN FG,Qk3cy~c3U~֏nDJA 5 @A  @A 8_MMO{۠)_zK5M.?XYubM0k{Yۋ/ۣ]\m3% ԟ䄈k~g5]׆|͏qD' ܽ&(ڢ˨k7gȍU?2|!5['1Q?׆<ꈃ=z8 s4کӶGGB/rd[_uӞ|5ǎ[҃seCx <1  $hz12t6?9ߏJpr% @A  @A g/濟_/o چn1W5ٙ\- @A  @A  @J59}ڪ;:mMzwV gZọRJ4CcJ:zV?db?2w\CđVf$ƾ!3OG03%[Wc]Ci/D~bf3c,dV0~8P\ՙc Mu7s^vԋCIآ23C[fm{CR|Tϯ4_->ǝznM_뮻vq8\w㣸JEH4OzhE:J,>aQ?_ðtf#5?{o{ְcŖ㰯jo>Աjbq-V>ͤ ?cʱvƙOX|ȴ3&;om^=ROz W/yw%s'ן\\}y>8}yn{Lݞ\\{Fٞ/xVʳQ yv3S?slÚuEϟ3̵<]>Gg:Oqoƽk;7L\;iܟ=hy/\r2_ߜQrɳs!_=xNwIg_{4tr t{Y}G:g?{6{{};-owkw};B<4>|46fIh4vd!믖6@ޘ،{s`O1qCF7y~Clԙf`k,l׎8u!r#V,_iϞ{r^:Y7&=U;RT;ր 0uɏõqUך屃g3zu+ӆ|5C363䇐)w栩Ac S2Zk~_I ef!',O=WrkV^\Us?D^+_?w|59?K4vunlsJ+kUs\#;;w8#)P?GU>_V3g?sb]3}!ol]kN!c Ykd^xl~֎6CA>'rߓj~m͏Gvu<^9keC'N͏BCo\}iX#5;5p?ƣZ1lX4:y0Pؘ|; 4O9b&qO{d:ņGak 6cclcEcM>/3D~xoyAfqk,tlv2>͏ ҇Xֈ5325rɯ6k?tX@ kZvk 4.+?o i@$߁CZ`'1=W7?+?k!?>t Lr1pG?r;!a\s=w}ڐ/j90s^ysY\qh(_m3m:': bBE)aClpU/kcc̏~km:Bj~՟X~5?r ch;Ҏo]ʉ>Bזd>+1=S Y 3L7 ?b>z=rlc|S=slِ8k2zdwo|co~ie6?<ĺb4?;o-8N=Ӧ 3q3۹AƩ1? cSno>6Wo5?/&ĸX~%+j7g\s8;?| +_y1>csw?^y!6}/yµ!ϟ)ϟB߿[^!r诋;9ӵ{?\4ptȼЇ8zxm!yՎ5T}XS1 !lAal7~5yg?{NcM}Ysȱqֆ/uK?1ֆ=Fnn}hJ`PWbxp7_mW@|a2B1q CںF #MȬ{krkÌ=ROׇk$? ^C9OszOϟb:+k||yLP0}6?9#t^ -nM8u5z}rXScW;Cs acGGN_tz1G7̐3d'k!֟Yj&?kvRsOWkYATM{՟"'t=~Y5XB_xᡪ[믯Y~r>3b!?yᵐyq}|Q^_s~Z:'?3?;gaø:LׇsY%ϟ|\g?sq?M:?|R2vf5A|L cCǿzW~l^33#lWj7313܍z P׆Y=1٫Ʈj!d7 %2lщYͯ\j`AJ,6`Ɛ3X A5k[^(d0?q!f=aV-u!~ j~jIأ3{@5Q+7G{AG^ž}Q9~4kG3?51Of< 懇A7uc䅬F_kV9gL8n#{y +_~Wr;sy`%_e|vu\<'C9fBy|]|{*|q̐yj~Pd~j%q1+ꄈ=3! oCs2 /^uYօrf:Z:6~wؘYlg<{b[1a/=<Cł`JLqb87/zd:azаtP2k'9kfW->ej 1{|#yQSݿv!Bf=]>^CʌYjC_|qj-՞{t~ƫzSzh;o8um~$t|kםs^^r7?ysf{}35aN|O^+=z$G?r1>Se>󷟻{]?OUϟ&I}xw>w>w>^P/r;sﻜ\+s5{?r׿?:k~W_sAB 9G]wV/h1o?>ƪ<4vEG19O95>G$?Co{_q/L0^,=sοmm/7ן4q^obkι98s3k.t8o5y:ן\rgp/;_'珁JQys>3cOyyʋU_g}]9+dž&\9$%T5bU\s:Y96?{w%7kxvl=zSH9™Ӯ`-$#!ʨnf=u>忎}dׇصI9f7g>9xr8[>.|rC᳓>.["t-YWziG?7lsIO4/y?7w~l'9v'~:o+Y_~ww~Þ\y_Wly.nua~76<柧6ܥa?)__柛ߧ6{+O-]Eqߛ?˿ɿS^`kOsognWtO|FN٢kg`7-gc#nc ?l%%t=LnJ3 zɖq֟zxJrt7Շ>o~W'|f?;tWsȀ82e1L^[O7dSfecAz#sLhlaXPg`?ƮDL'|mT9PuK l04p+"~zSf{ۘ#C&G͇lƘlvF^N6;Q}kg?|%gͶr߿ެQzTo ;==Pwj߽gol8R7JwƟ;7{?6:cͿo7?7W6{gAg睚?_7sͿ~a?R~e?s_l3l0X9elMRɢś6N.l)Ad[;~~S xWw|/YT1d.[ħ?=v'nedoO6]esj o>4Rd'[ _}N(&^Q}(rdд.~88=|D2GgG}oLU_/Q}qk >0LJC}ʈ,9hbMkzWo0zsN?;}ԭ^l7gc+|rفA&~ٯYdAӿW_nN_{#=_}whϟ6=yvW{o+?"l qWc㏍?6plnpAouF8ܝtvշW{}Ɵ^wƟ׽(o6O>WAJ:ONiӫ=q[5N=/=r(|M|#ܝz5u5gvg^]OG_mQm} Cz#;K6L70 #;?>&F~0&4zTrs.9t?Vo%j,9~؉ߘg8 ?Ɓ_Q}G#vxg?x XͿyk(Jda^c|~ToKla§&}>Ɲly?Wೱ__k3)qڿwgϟy/w=??7yQNc㯍6kƟ}~sOq8+{ݰu_lqޗcu{3s?_7cͿ6__Nu!?dQGO;xQO3{# ??y]Efl|u֧COVշwz] yO<yo%_ FۄOO/ye^B}temw|c"f`?;lx&W2~fٸ̔cC?bwOSLc臓^|Q] ߼ +9zh=Kq3O9髮ޜ>J)_\e'00[zqW'#~694u#:'𵳙6vue:0>Y*jǛ?Dj+gW&\mf4xxcgG??wl5GoG9l*+Q~WkecN̏o<|.9NrdAG;՟'ƾ >N2QMR <揯~2O|:M|K ԗ~|i'|d#t'~u?[GL9j+Qvav'=p6gC&~Xȅ^QƗLщ w^8胴鄑|8]w3v;{qqw㏍s{&>Ɵ<ll8]G{Ϳ1Z/sgc??7s?7s?73r{?ߟa}{H~?-%y[XѥCcIO7d㡩OW)a -mcn`?ᡉ?{~6s.'|}d(~??™u5^F&~r?E5׀dsH29@l2R'<[:1ƥ]G.>Y+^0 dG]6ԇO/zg#++OMW'~O>ϦN(1'>ˎq~c?]׾Ϟ{{l+o}Ilaoy8b]q~om.:@k3qk@䙿;oO:?<36=sǻ `=8閛sbA!W[~N-ecPyvadGwd>좰^Ϳx5Q^6 |4>VrlٛzAei7Eprf x9+Y#0co:]>{o~]N/~d~J۸Y[> ~vd`i7֣v&CS <^m_?L5J}70! Pُ?o~ON٬'N/Я&͑Mv"cMq^P5i29L\vgkk~XˆWY_l!dCXqlC- ?587fPnS-mO}=|rÏ&~6U_m `ɓyg?{xwX܏,=ޟPg;/g6ko_m_r?7zaInݼx{)W 4ʜ Aݓ:~ cN^=̣Vo!Qw25a\yFJo/|M|ٙ0"rO.Y j|9׿9q4i#;m6o%gqo{on!AO1?9t_|^Zw={QV?/ٱ.ܩ\e3sl0ԋ)Ȇtt}|s=m6(iXQr1~Soghe1<ƦEM( W?'c979Yl#2H^eW_GaK.|/=O]&-Ɠ>]W|N-:hkC6« Jzt؆ oe^C٩ϸTȠ>'~rLlT=H ??ߞ?{'q{{;D݃{^1N~7\c㏍?6_sCqWƟW:kfƟnƟ9<,'Gqu_cO枩w߽u8o7pb^(P\~cb3;l%=~Lmίֿ=q۝S]CFiwWf>Fz~~ri,s&6ܓO1g0Np+U6;ԛJR/;|Hl"L"A-rZN"f>T:$'&9d1$>xsG 3tO&\'~XJ&>9Dn/dgxsv|曏92 ~u6"}٩^_{έq6";ևd60è_uOw1uw㏍5P^?6<ψ|oL{¿ߤ7ҝ'e Mx'N2Vo,l'g,C/~63[_}6kwᇑȱ 1|<ӉCO.Lmu_l?`xX&4XϣN_ifY?BkCc?}|rO|rN%ŸhW_GK.솟ͯᇓ+6毝.ܰ9^vamPz짇?Ǧ>yS c7ⷆ/dž:O]߮]_oo__m_m_m'ƟnƟnƟ~l}#1$_=_i>H{93ճ җJ<4vm _?݉kx(|Qv|~çsb O9ٛ>OV,}w;~ Lc}8XN -}k&WvdGs6^cydQ#b3ydg oU=m|Ŕ.&.l(=X⇯n~̯?GA^_?lu>36Ph,aN|<͏ l]zPQ_;gS+|"O!F_jγګ8Ϭ]y?繼I{\kw⍿6늷6}{71oߛl_W柛_aͿ'g`/xtN //f9>?}Ώ1u4׿uad#=xOCGSP&Ͻz4ɱ͖go?kWl#hʩ4&k;Xo>zW:dO|?%;yri{!MnQϡf=INgGӡLfg~/ 2+ө-~)OW6Lk7؀_20&~ _]&[lLl){4Qr:dC9X>Sʟ[_]/?[CϮ]Yhu8c:{3{{`{gw+{^wstߍ?6N*sւuoƟמ{Jegf[G7c;buoƟמsJegfƟvG7zP_g/όoj;O~'T#K!f[tճqTu?d_;9xNɅ~2i->=xt~{sWwT};fM|mW"/'67WVƜ`mrs 9At>5GN̮2F%~z[O/B[6lMlI# >3|rHyv~9>53f'LM't*zj7>2jdÏggÞWCɞ_2W7?}?Wخs=ߔ.o>s;gw_k`76c?7tlߛluƘmוomyc?7Ϳ7?st3kͿ|Cퟐ~w%_<˿qu&>(;{?uV~_9tM~va57섏^xՕ!7w78DR_rdQgͅ=Ћ~;~ؕ3k?߼çi- {M'9;~æ Cw}>=w߽ugf偍6{㯍6k㯍6s{3WƟnƟnOm8i^un+g>ly3|~SV7uoᑥ׏>6Il(;oU'~xd٤Ca+1ewv~962h('Et`R_a퉯O[k)௵zZkMB/'dN9.Y+Ý/Nlnes}4\LꧧNFQiOꍇdz)3풙d.j;{s WϮ\,©l׸NfⓛړU|v~eW睹?{^Ey@IDATkd+iKAړW?{s-{s9ƽ=޿lu}Ul?{}ϕ;'&i\w<Qw֜yqs"/ ~㨝Tj'$L樾ay=>g?ilzח &>gOO|{T!mO>Mcjٮ?;Q;{I&c"ဨIk71m ,YD(t ՇmH_Rnw|6a4/t&|>}xwk'{GeM.S8LO]=/LL|r{cc^h9l4&'>Oþ㓥~'ư5?gcߵV_l|ڹɞ?{Ş{{O{G\g/o?6h=lq?9kb_=+_?3e76 {cl@m%?8{o'Ĺ6]1_/Ϳ6j=lu_ʿ%+Ϭ?Y,g_՛OF&><>aWyoGGkO6㡃>Y//W!慨᫇lgӋ~c LǛ8Plk7bM }dcVz7l`H'~>~cR6gkΟć gc}a6&}ٚ?\'i+^Og⇥/_SG}}|%gi-=={W=(gc㏾I96˽gm9߿8R_>p>n柛no6{_Ċƾ) ^www靅>׿vv>RQ:WQf慨O}'>K ߸,ʾzk|< w6?Pؕ?ܰIGCͰ?~Gx&~:wRs&sN2J5# 7g)~L}Axv/8|ml~o=:7d_DTvT}s62dOW=|Ѯxz?97jyLJ¯|8^㳝}%oߞ?]?{AAlƿgSu>)#{1>g~6o>co3 gt#m~YI.>?dWa|aexx&?Q?Xr^vHu/|⧣Q}ةi'hz=t7_{b͇gϟ=ٹuvs?޿w_pNxFg޿ٹ>c㯍?7{unqݡOl}#Ĺuvl}o_w?ءl+C'l56y ^vtփG.RƧ?v؍^i#Q3^ӻ9D>Vme47;~gam>y*=W_~a+g']%/=HK`'Aы'CO͗"?'C>,/Gr_Sbs<.> /?1T5>Ǜp];~sh)Y'FûUXx(|uSA#|]]Vv{dg_q?ީ猱w߽y`|ו+&sύ?&^6c96c3rW8^ᅴnW;+7k?7{c]/?xД;K*sTn9V _=ʩ{t}OXGL~ln.tE釫G֘QxVzWc/_94mє=#*7#~95/7|4 M򨾛t"%yH`DtW&>ïS{7GAV*|v7w|<׏D駫/{֟~~6gK?cﵕ3l)cor(&sV99BS[:ىO92Ѓ}fC9!>WlƟk`7\c?oY?cdj+ m[Ά?7ݏ鍍?jx{?;=6U׹7~%kw?0G;qRcg|xݿaci>o&ö8G\׏7=ٮ~t?ޔkzٸƓ^7sſpoug=w_1p㏍6sύ?}W@o?ml柛~a~|{?i_|9C̫_ko]}T58`)k?қ?σ7fxX˜cݟg#מc0 K+Qcmvxw|:ᓟ7ɟGC52(aRMYQCn<٩~p+6l ń96Y}_N $L#WKӗ>[HGwTm<}|UOVM| ;\5g-5=O}M}u4fe;\:?u|?Ց=܏J?{[q޿lyBZS_n}폍?7+?ݱOl?}Ϳ6vtl{Ϳ7y:c_G;3G^~:]oN#^Q) -e~#>ln G)=j֛U3}~i +M͉X<ܢH m}*-%.faқ|6C'|?B¢F ~vo F9/Sһ#3ɇ~coNli^6?ٻmcׇ&>~6S+9mCVGߞ?{a{^/6:uqEfqr+/V_uZ濛\Ɵ:7>?n"b?c(PnW[N?3?mw86?6rCg/6rLlq ͿLLs}=;Xo޿|1GghGJO5=.?=|^6HL>70W /{I)LÙ?=ɪyOփ߸?>S߃0BPsr&!^qt:'e^[ͣ:ꛌ>T?,O;ՓTg<{­xO6ſ|w2s8C~i?W5ϋ{g_^g㯍ܙ=ŝݫn3;'7c?=ͿsGG1?ΜbͿ6kc?6㌟y_坕JwfOyGeoO~5>{ 0"W?<$VWYg|?ǔ,ol+N>ioWoLGM͟^c7gcYf' }Wc21^|g3|<í _,o=̽%{uV9; ^޿{Z#ݳʤ{ҍ?69f1Yn5Rqdw㏍?Qwa+Ν|5˽FgWX7{kD%ǞW;j{ktζ*㓱n::K=O3w,m_U'cuuX{^gY_<yɹ_?zuc'S'>Iqֿ݉:vu|ycώhCtW/siOy~zwSWy??|~v|?og=a{޿ߍ?6q7>WC7k9p^sOߴ6:c?B<_ŗkͿ{}bz>i~ ڧW_=D럍]S?3Ord^~l=H=jٙgꥣ4N= ؓ`=l(qɎܜ?Xocv33?_8냏?Yo:8I)s Qv<"ѧiՓM]\/l2Mdgυ/lD;~szdXfUns.w|23dm 5dn~ftT?sǿH6gd]>>;hO_}?ʮ۳os_ᅽ7co?71笗jW_7C׹'cύ?6ߡm5cYot~Ԟ_m;6p;n6yͿ9ߛϜ{[+g|߯okG?~?Y}o]Oۣ5V8Q')yִ1?\vël<~_ ֛+;J㓭oaElzO6kUmԀ~p9 ͹dr2Qɐne$?Kv4Nv~8ɒ>[\:sGN2x~cח^d}.d+9;z!~zl L^;]}yO/|eO/?]zճ^|֍v]OGݹܙz{+s?{+is{޿{lWqƟ/Ŝz~?7tZ o]_q_mupg?_6:s͹>7s{Ϳb+nSߛz1g_y yJyeOz3W[uo>zN՞nsF%0:&yNnn4eGs_ǟ͑L\ #gO/+md0`i%qq|Z 9 GoPzwǛi ͦzJX +'>O>Y6@15S⒧;7K^?<;ow3|vwg߸ØoH_[`=xdOnk#U6O}mpX9[XMY_| NmvԧA)|rX(zvm aGl'??w|c>O;ܧٟɯ#c#SYwg?;̓,#9=YƗ^c|6_ut&*Q螿?_}2?Ww{t&?#{+usoȧ7>7c?\߅:kwߟ78=9?6(k/q%|l:߿6{_ {dݯݡkm?o@0gu+QM{gx/l'KfSʯo)[GwX}?7| e$g<xO{#vgG CFtQzLSkrh/>c ea*\z9YmI r(|%ٙ: ?JrwY^'~Xd?tG.S[l5}x=jt187Q}/kG5^ɑc;lևs?>Y~Zw){\g瞿>qߡ-.ǵG6Α6̘w_C6o_ߛlu7|S?6uVlyƝoݽ\uFD?.uv?{d?:36}k/>G?zg3yeS'>՞w ?s,鲋O|6ў(9L3Neml\jC9ɅDxLIGjןR_SkN2go-2!ΊO F9_l&Wo:!?/| qG&_l>>=珗8忩ߘ;1km>JQyTT=Ʉ]>c g}:_p޿WUK_Wg㯍 T^_}s?6s?X]`/_cm7g_柛n柛nm}w<#/3wǽ{hSėh$7SFԝ^[sxt>^x(Q7ld^JLC?8$;uyL?Amhu#h9$x!lr(*#_qK_M|6YwN \_X[Pt~3ه 9Ʈ3~)rRl8InXӮ/"n9'|ɑCWc< 󄭄 `?(y2gy}wǟO, Ohq76_]iYQ}1kOxWgS[)⧗Ƞ᷈hk1WO]O>/8g|H.M|uD?g<>?Y+|}w}|c.szwG3(Yg߽޿3xR}b6{o"lsP׷_1yZmulƟn\q߿cͿ6{Ϳ~/}od,+~Nz8S_?Z/Wz&outKig>g6f/=vQsԾ^_(O|:_ӧ5M7o%;38%69S!9@u{dEx46'[_/{|M>[ahdG?t[-[z/ck?~?} צS=|_GM{_jGw<铽{=UG?r{l+k㯍6n:7ٸƟHQ߼_{}}17{+:6sͿ~W /g.8QN__ kCA~Soڨ\'>~~:#׆~>^Ujd Y8׆W~O/~ Fs𚿱 M)鏐d('7霙#j2ξtPlyS6P 3|ɒA#]p؎'a[~X-ƣ.Ƣ?NvpGPzaܓ> Locnlw|O?% 9kL6V?mh/Gzǽ_%Z>kg=utTsyj8c?p_yvl_!*]_m9̍7p\>}柛n)*﬜柛ZG<a?0ß V#[[9r??ľrwxN_|+|rYNNt*QsRv2sx 2RcngSl>Ӈl[ ecd!;ɇ%8qUosZ}ahVzo.Q[^QF:9 `Np`( /מc=ͫvNs?WڕO6^O7^R/cgc t:wv}_u?{u1{u7E{c[#4!=;K߃{\kvjs){>Sg{%޿_6}2L}lop3ZřJԽ/nY>{>{g?1s=[K٬D?÷&uޓAWVkğ:@UUTg\vɽܪpO¨3v+pW8(E9:^:C18yDo$ |^.9b/çȄ?31! ug >(66}s7uy_O?=zmX݉\ԛ~j.wto{ϵ1%쏯?gk?~lj:o=/kEyOX gdgïa㏍?6[?:c9׹ٰy^:#Mgf/Gk,_g뢵Ϟ?΋=}ol߻;O1zޜ>辧aW2_~d"}yã>Ǩ誳ئ\olJ7u0QsXoxU&7a̱4N68?cs1 uQT&G^^zm%J~㩇%ק=S{IR |`lQ6|zSqT?<íL~q쑻#|mƑWd#w|}٩ z>j?w]c?gqǞ'=O?w=ws#nF񁻱o|oc㏍?6c㏍?66{Ϳγp^{?owJM:O?~*Ëڏsq7n&~8SN _e8z<{Dahg/#}=FayigϾ?ow̾TGx(єm5;<HN%I.S['> &,?/UɴYf+G~"&>otPs">ۓѽ㳃Φ:WGS7'?kx_~ZC/vϞ?{XW{:e7k?6Ns7>i y~c?6S柛'ߛo}{b?K̹f}柛ng_ w_;ٶ?sYo3RpAJ2QQx+|r?|6g'n%{??}gөم]^wP{H}ug{\guR?{^{/=OP)]K{rlulƟvIouGl Coמ;*Lc?섓6cc*Rc?=_坕Ji= ;j?sg=|zolwצ)nw?g=~L`?'>exo M7"է.{ڈ+ fG;_kO_+|r͟&ǁC$zy\ N/zFd_Ϟ{ԹXu퍿._E*s?6c?6c?6ʩ-L4ll㣍oۢ̍7ʷ6+oWUo^ev-OOow{!7 wo&:ܾ N/YvtӦY?퇁?᣻]pkړ>lO?gٻO_:?FA1࿀8},iKή:S90'?ѧD_=Wل9qї |Ϟ5ik_;wj\sOO|6:aq7}gOI$=0M/yF-g9,og篾I{߹#w߽˟[ܙ7o񧵰]YioLs?u^Wc?NOͿ66k+kͿq~/cl߾UN_?¿ϟ~e9Vg酯?OM}*tɪsT~N'~8QWs>]Da69~X­<ͷ6ܿ>@9/'Vr^-[?YįNvʱ0-xM@?K͉L6,%%y0[}͆:\; +d7&:tc=wƩٜQƲ{iv;smo~:wg/{I{w΂~,7ce Lw,wsg]8I9lZc㏍?6w} _6=j_ly8/IƟ6gƟw+y# X*ѳW_O/&lV7Ɓ2J:Ey6n%9<ޤ5/x'0!ќ7+yy^gs8gz!JT[ rvL_?RZzQtÌӦ_YmJWJ:xfTw 06jPɚǹKī/c#^)=}t7mq/k7֣NzásGVS4_coL)}_a(ɖ 97tôo<(? lpyߚw羰&y~޿lu^wlm/5Ɵo\c?X/?6cE ]g&l{sϺ@ݥnyVnsqͿ7bͿ~bߟ/~G?g?}ԍ-ܵ鱏uǖƥ=ќ?l6@eE[+|wۃ줓m'C_oOCaKν7q^T/@I2ѝV|AlkO~*0բQ 먾çKilk1u6+|z|~-|96Kd=pU'_=<}6a>>Kle{؃߁8/uQog{93{o9޿{᠍?6s?6sOwA_Q~/oߛ_X_~/e~⯾Xŧ>[x+,0@IDATyͭi~_;9キmdo}_ד?{OGx_M_7tՑ2tw 2d+ 6Pf>;~sW' 7x8(eL8 z٠.9 ]/;>>i>lK/;'=|po+tml_7}v?g,~c GW;Tp+_1`iΝ=3G=;W޿ʽ=qXZ܈gX/=l?:;*ΐ4{{?kύ7(v:7~}{tvVny>O}o7c[3wޛĆQe\ƫG;^m2H?{i{>e'kh>\qyo %GOlЍѾNB^l;->N2zAGK-ޙm,߻o F RDٲ9U}eD /OX7?+[\{:=!pٯ`y'ݏa۷u]g\g?QBɟ]?޺?s=ko_5g㼹{k?gş=G]+'HS9l~e?2Nl>?3W¾eGG z3t>hSV?ʿʿ h@<l0ciKleWgw Ќ=?>VƗqf>|^'0׽|1yԽ7Bg}Cw_J3G>'{?{>.IgjkKmzV8y?~$ <%S_@\>ΧduU/ug?mS"x[33nCQzOn#@somyCbA75w%c({n+ϳ(B;z[s/S:}o1u{v_?+pۖg?eHE7},?gڊr⯋ c K'3;EB_lhKT`naYQUyX u^}`U/=& 6߿!_Ɲg-{L۷-Ig\?}d5b9Y#Kz+ɗuyΑz!Kzq?{y=c9r-1:y?v;R|>isw̽h h/0E7ĘgqO/ȹԙLJuog-,#?~߳?~d-4S9{͗K۱3̅_*` apIvHm)ώC7.A7?߮%_d?{tKK`Ru`"PCgggwG=fÑ[?k{G;Cz?/'{ǟ1䪞ӱfSNr=}QuhͶc-D{e㿾bO>+qϕ?c>:X<>ωEap@@և'b?>~<cO*YԹ &'Cg{3A>{Оgoڔg5c?Q[I'͙LЍ϶?_<ٟ=6_7f?/?=8{~@ 곍;~χ5cşşşşşşş}#g$FoRmn l.{l\Fwz*9?o?۔+{>sĈm1o5`׽&m_u͇g?+Bs/y9r/Ch;gR2m3>}(x~a1v ͜? >*6<.lC9g|mCs>u>;?O}ޟ6n}8ĸsw݃yogr[Wg_ؔ?2]cQOBQiY]G ,Vݷ/yr'319~J3e\rˋ>yqvqd`.xH}!{0ypV9~1[ş/C\+lMtn?\z}ԡ:su\ UyY ~{~f???=?s P3?o ^ggzJ3Xw36z7?{?7d?-}:g/v@`9ǏD/??KѾwOb/:?xgUcQ}_/g/~|$$fu[=w>g?<Ӟ3G.?y;q̽us=uus'ϞE)w(ā!8Rh{v q\|ZJֺ[eMdO@ACΥ dJ\ڞIə=Cyvz!}\ﳁS?O-@\ō񉿘ۿ ?]3U1Xo)DN;#*ر(8|Lw7A?COr><*8cߊ?y,O=Ն*~$̳;Qn3mP7 Q6r>Vs0e}!JuuvͿ{s}K_p9&x/:+׭kO۹9/[:'> Y *mVͣON )r?,Yp ]39k${ALs_9Us{y{g+9sz?@~}o?{ogg3wߟ+"{ ϐ/d1P7k(ia ?BoşyQguJ/Gl;B'ggA s?0Dߺs-Ôs?̽@ȹgw %3ۆ|%b/g;=WO~g)ڒm--s_Zw>o-˶8O?S.>N?}j{?ٟϮ=~^GOZ?Ϭ>8O_=>{]3/(((*,H_埻UD ºr1_o>~CşqLM}3gfmoӯ=?[:A2·!8_uQg|y+1)i?ȟqe>+i3 ޟrA?uYl+)ϞgY˼3Y6rڐr#'݃-<3p C?3}\?O'~;1>(,h]} 7 ???wd|M|?((((((*;Ob;#?$?#b.d9)1?{s}Xy~ԙq?wbU6˵+yǙ<̓c|X˸[eb5ޟ/Ghsχtv̻U{Bu1Jy( .?Ӗcg9>'sGΒlcY=nݟZ瞌S˹k?yy~sY? C^2=O7C???A@y)..QQV61dwγ\ަgaO'`;Pwǡk!?g1ʊ̿qO=:o[߿Ϛ3˞ʟ6m×'}[gަ^mІfc[I2_pPR`}> U/B:6so\G$sƟ+[Y?'+ۉyVbW\+bȼyymrhCZg֯?K.YLw}?X",((On;o8ػZ/J|QQUYY5ܩ *>yFwwwzrm{rSė{߿/i=܋c|+~Wc>s>V^߿^gg_xp|xPa>kKҽ(}Cyν _3S·N9߇?$ {@9yC;>K9x.SzuNX 簟5̻u{W yxBsgεsA?`ֿOҿ^e#>I!m-O{LPg8fG%=,:p7<TQQQᏠ PWWWWn˿ʿ?˿˿97ZY1:1ǟs~S<߽usy~lPwXǻMA<=Q[}/_P7pȇ.@)}\>0`-ΥTe>sq{1A\G>9+{nxrFh.tkYs u~bgk!Jyݟ1Ȼ;0U3rs CĂR'dO@!Kٟ06'k᫐!dWo,5?Qn.qD3('((W;ʿQY"c |.@}񊿋),Vh;??D Y0Зf ҆hSeF9AF?-yǶ'z!k{?t{f\)Fzxג=WXחlqy_8Mٟ8Oq><y?*'vY/A ":.N ߿㍗۪ ?2G#v,ONecp/ݖ'Tֿ[,k}f;G?g5{% {G1v{z7Z?tƟ;zO0ybyquۈ (%>0a`Ł1| 5?XWꅘ^ɟ:}B/ȼ3W]U)%g/vņ~~ݻ\k{wVq#7t?u/?o3gO7{+,(((@8SY/߻6N`S?ʿʿvG$.`PSk߇ /*_g[5:ϣ J^:~y^ފO|z+gY1v2Ɯ{_ng_?}붮 ?ȟ߁\; h}0\J"s>P<󿦠.yf s3e1>0og{[]k9+Q2[=[rY/<OnwSS^O?O7?_??????????x|oǿ(,,,,,,,,,$wY]B_QK{[oY&w:9|V%;vƟwgs6|şq~zɏ1XϺ:vX;  ߆.cpgެ;?}?{1~xؖ'cַe? ۵o7=⏋k)_?!CwguzWYYYYYim]rWWמsC3;_qW 0z|k-웶Cü8{xVm{GoUCr~كzG~u/810qs}9#}qN1Q_sv0:/OJޟ<&yoK~@u?k!ȟ#g_￞9%8m_\şٟO'c.B?3jc9l?=O l3o~e7UN 1_dC?K iW>V92 SQnwG_eO?o_=̖MgQȇ,ӆ(X[_Ha. 6%5CzA>hTؓ>sV,{ځ1y?k$_%&gU(<# z?繅-?ʟ3\q_/C>S\d?5h'uH[B93qo7P{wKB8{VqLZ&E R)v u# lX@`^ Fi[-eP6??_şx|1CE$.m$K/ykmGny1Gl-[yhˏ:d[;fݾ߁|~3>p}ك<s?8hSBs>?ݟqxWܟ%S=W҇AyP<ȇG݇f6%UxP{Aq3Lki3Y+`$sWXL_ϳ<@ܟ9 oZyco/'eAf}eٟZwD'[qQ;?oGkşI]D'#x߬?v$ }_______{T]m\]]EtO洜G_z6yC7$o3[}ϸĞ|<\v߅{0 8k8cy)%sY~v[soSٙ3{?$ǻy.shsy!}ܟygbDk?ݮٟ/<'?v ^i}}_QQQQQUYYY ?O" ?~yG~W/᳟~Zޒ?Q>"'?ü[y_ΘRg9?|Xs,/ ?\G0lsoR惥Nea?% }ݓu̟Іw»w/so;I#{z/G^^mw.uiޟs>{\m9Wޔ?/;-Y?hdif_Fgy]|6+?oǁFGGa7_)(*|Ï1fG20@___GU?*c/;ymCgmPNz+Eqϝ]iqji~zÃ|p>P}su}<쭰gʟ=SG\&ɟΧ:Q@Oşǟ {Ypu-Ϙj -_~ogL:|w- ]CSr[kК[)C8i̺s֒9B2!hOQqm ў$O:n2߻Qss J@(q{ ̑iG._Yz'׼dPO+g_Oy4?g޿ ʿ?˿Ͽa֋?WsG1mcw(s-w L kg59̳u.]{?2m$[ Pߪ:ٯ0!dDo1i'G\?}o|Cng?qf?x3 GyoO3o73C۟g?d?Eo,(:޵~J\ ş.`FX Kg>< b߼| k؃go-{ zN{3.0t}oWuNQô!uY೎>\u]嚷B^+B0wމ{<}9y{߹gzGsF}s'׶jSO~?ϳ7DK_v;x?OSz?}Oߟw~$d-d,h}](<7k(埜C{NsߦͲu֭ݛϷ&XܛO]! ~u.?@G{6{B>ogϣ=QOy?`kYے+Go'JfRHU/?g}޾???!:f[_),qcozDEgc=[+6.dy"V@8Fu{υ>y2ۑ]lG_!6scƹ̇>ߵS@\Qo?c|nw?Lm, yn{2>?;uCg`LX& X_>d&vۑ3nQqTmeaCYQo+*,.wrPHÇimĤ!(((((7?0,:|h%w[| Y>H~kK[cyv弞}ƿ{^=ß} ɋm pB!ćK@ Pڷ e/u>)!/OY7?S~u#3{nͧsnxC9=w{Mr/ˉ}S?ߡؿU?xnߋl0","c߱fяOc((u/G>4ـw>ئЫ/_GZv s ˾-W{ϿJOM`[f?{yfJusA>v׻woއ1>ߚ[_r| Ck#Kn Vُ>ڪg?]{ kCk}(gݳ{Gg?{A)svG}Mv6}zNS&2][_'cָb^`UXs"^2,**:r dڑY/:*BZʿʿʿʿʿʿʿfTUŏ_?/ab,{]<{Rlu3? y2_r-_o[N%O.ƽ wk$!B3!qkܗ:{ɟj2L4gb-?{/ߦ]S/γ0gG,s%m8x۔1nٟ d?1 O'ѿ82m{(((((}?&A 8 n?vmwD?v????B->_KuS؇g{n+yGYi;y+:G_׻y-=DWPO~=^sKc~B<_>s?< kgo7i__\8y}_g+g7W'7[ d6>[[gk6,@(??m,)1QM)~WKm96WSS}Wm埰Z b:J|Ef)~9c[߶1Owr=3"IPX& @>Z>Ь+|wDAso{v|y.?׽;9g-힏߹3}5KO吿/"{&G$&=h_)Fe/@W#Oh[?B,a){SQu!жucB.Ig?şş^RQП76]HxJF"w ?Au1̳ATC.\!Qh*J}q\^AGǸs*msy=1ԡ\qsɟş\OC~"~<~C¦}d_Z??cW?G.G'#>>CKǞz)~WWSk8____ 3K7=bU?o7c?ܠѷ?t[~~D.{3 |̐| c} /S_;F+‡QSDdėRAT]-`oS/ޓ?JMC?3ae{R?Wg{/d!/Z{Od_4aώdvog"sgzhZ7};ߣv뵿(,,,o(((G/w-}o?!{%?b_(;A߳ld/禜&Bv:auJhB>gR?_A!W(|-o809 o猯3O_k7 ?e^fdݮlP\3ﵿk}u-++'NCߎ_o_w"޺Whiz~>ԙo_b|J.~ dl J)pSg0$G~P*a$Ꮡ`OBg={?< },<ߥ"qHmbo_Y_(Z,1BV~t ώC'3ua]dv7gvq?-(*R},Q1Ǭ,?? ~?v@җ`;*κX2EFꕥAn_@Җ isg]f"#Y~ 7r}~ѷ?Se_#H:_Lb !㸥۔CqPʃg{-u䯢mÿ\Cls=۴/$?e ԽO7|)W?O's|-(c$|ڪ/!(yw_s]GGGGGG߿b?ʿ?Rg?߾NƟֵ8{P~#1>q?Ϝ9¦0)[Ml׵EO۹ (ٷs?umON,u]x?|~Oҿ+_' P79\6<ZdOg!ٟ9h?lOq@_;şş5(,1++ӿb?ʿʿ˿˿˿;8ﰿ۵þK(/KҿnN j ʈ18Yg^GW# uR;m+k_{떶Ve"1|__sSwФ߯atCKki tsk/Жo !hW*"c*% QDZF]ǝK[^gܵ΃?}́Oero܃y9X0:׵\khy5O6]PҿF!$u?Z'9lKgׇo>6#{C7O'=(8lCaWWa[____ڃF;) L$}Awnuşşşh̡3.v^De)9*-?uGO"@)QD1`Ra_geMʬ;kǟٟ&ٟ66dl/:%?b3?gKW{}CGGcyFaʿ(,,t_@{` 6gk-)Z~|@nv2?o#P T`qUe>cNu?1{QJs}Vog>*['=ʟy?k$?}~4>[w؟/K?ρ@:v09gO'~ַ7]r ?v_tBQw.//?~????{{W{zxO~z&;\Jh?}a <'[ׅ'=7PF!`Aeܹ*u飍r0}Op/G*m_TH;^OsFO~P/d"?O'?o;Pq|9K|$&@}.6+?gcn()+=ůO? =ٓC ?ǜ1 mZ>@~d 1Jk0Q9} %cγ~3qşy%ۜC+c VlҿO7=FǎxvsGUYIHDY}FzN'[6_o޿ 1눭?(,,,; ,#î'cmɰ^Q,(??1±ObL{`Y10΢\?Lv?ծh G@GxrC:]딎X1׸/cSlS:qpm'kP(׵ɟ}3`̃~o?ss/XWWG9K@cEG\K?LI{ C??c,} V81liǁ 3_hNOVSy0ԗ"ş'~P6?ʿ?,,g;oj7ʃ9(,,,6{c秿}̝uQ#153mJ罂|1<"0p*3.LsLcJz۔МϺWf۟.xKZmS.d?K?{8b%Wwggggg|{_GGGGGGc_ݖ߽wg'gAWJ>PWq6rA5m.^]]]]]]Gцo ?P/}+~ Mةs淚wN X6}0,_u> (B ْ16}Ot̵䃏rc1;.z3?q/J1tL(?䃏v2dmv>nk,s-e'|Qn,?hLyІhgSN~1Rf?2dmv>nk,s-e'|Qn,?hLyІhgSN~1Rf?2dmv>nk,s-e'|Qn,?hLyІhgSN~1Rf?2dmv>nk,s-e'|Qn,?hLyІhgSN~1Rf?2Ƽ;7B)0F~X-5bٞs*Y95/~OyPV1Ko~.c_My2bVQ2g~%/0eu~3?~K)ʙ8f?ּ>A_7aʖ[%Ls2frK)SF*=J9F}&/0eu~3?~K)ʙ8f?ּ>A_7aʖ[%Ls2frK)SF*=J9F}&/0eu~3?~K)ʙ8f?ּ>A_7aʖ[%Ls2frK)SF*=J9F}&/0eu~3?~K)ʙ8f?ּ>A_7aʖ[%Ls2fr"X'P8o=(_S0Z{6uO'4_-h{lc7?hSC[gO'P)(_d#P!_<8 9)*,.vXG)M_Sבk2QyDg0l4{څoMJ?};E6! &g%  `4i)ҳ9q\c5;׵?u{1yuO]c5;wa.4qu{5]C Ū3*+E}.ČXb+.~Ìd,b m̪Kٟ)7˔)~$8gQr');dL%2ۥeʊL̬يerLR~L@zu,-pCfDYR(ӿ]Z̺X&)7˔)~$8gQr');dL%2ۥeʊL̬يerLR~L@zu,-pCfDYR(ӿ]Z̺X&)7˔)~$8gQr');dL,Qe@@O9 _QC۹o]?Rߵ̷q!uƘ<9mFH9댅C2B[YYu1~2>Ɲ>Μ/CN!d2\Z۷U?@H)g/C!d:dkosYgN!'2VVVRw-۪ l$X?2VVVb ߵ̷q3'Ke@Fh++L)Wm6GYg,Ku@Fh++N1ZǸ܇r֙%ȉ2L #U+]|j#3:L #Uw-cyC9I?DB&*Sʕe}[5đrK?GB&ʪSA1u^EdzCԒ]FV}[+n.OSDJ?M7P2۵ m)&r4`DܲjM'֏j7??gMFPj7}PGkʍ6+"M<O'sZkڍOgL(#MWWסȟ (}j/GQu`>dէO'-(_s|Ex1UjOV??ݦ~`+?,c&=]*(@&?vKGGvmG_ };?ʈ_ƌ\8^sY=ᯬX*Oube^?іڞz7XO?|ࣽ-qOGYT?i+?jG1mDج(+SGǴԋ??? >i+%4fCYT??^QQW-__L[/96ʊTlh9ԝK1 ;m8l?Cg<swə>f2s&/Xpb,?NٓW /v^cCWClԥNٓ,G6,???1v!6NٓO,G6,????1v!6NٓO,G6,?_b{J!hoKݶ+9Gsݏ1߽ܛͽy9CJqOҿÆzMش-Ιs? A~?z-UW(i[ulҎ8Uwȕ(KbE8M#1K@oHw uC;^Ki[hDߜ?J,vEЖ+i[H s;&beîziV187dAdǏR9f]Q/% eiV13p(go+ꅶ 'P\xț X8_v K~ sK/ X/5vC('L}.rb=EO$ex~BWWW׌şşS9şşşZno;bxm4sY7`5Nq317qL?uyZQo#9'1CqsR 5bGNq/P1K!d% Lݡ_Q.\ MRo#JuP@&bG;P1K!%k~XgDQĎvJL qJ1dn 8&bG; 0Cq/S(2u~F=O7s7 4uHQ(!f@G08 `?0Cq/SϮ5 aF=;گ?B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B B7 Q$Ok0 IENDB`typst-0.8.0.2/test/assets/files/3-advanced-paper.png0000644000000000000000000072600607346545000020351 0ustar0000000000000000PNG  IHDR0,IDATxeTuoHJ4t#(Hˊ*t7R*~EPBXbɅ 6bA@~?awΙ3\{jfcyɉ 1Bf12cc,dc!3 1XȌ12ccc,d 1XȌ1Bf12cc,dc!3 1Bf12ccc!3 1XȌ1Bfcc,dc!3XȌ1Bf12cc,dc!3 1XȌ12ccc,d 1XȌ1Bf12cc,dc!3 1Bf12ccc!3 1XȌ1Bfcc,dc!3&kp2#Dƾ!3}~{bromHK9~ C"YJM|,ۙ88Z*܌9eR~>%Kurw+K~)\HdՌ~=ok8XȌy ?bP Jcz*iӨdѰX~fOص_~{]J6a!6DcNKnXȌyqDҶnCwBf,{Yid1'[,!n( B6?L/rh 7_l!3-X*ypzkp|!{/S$F"~w ӂ=o֦n_< rhܘר3+\y{'eд_[Fw_G;dۧH9sto+_q=+>}gbQ!5It wp;4bF.ߝ9qFi9 YGfƞK3fM%3߲,LJѧ5xZ4p[|RR?htȎvaVi˕4̳9dмB`ay eҩc˷LLJs~6K \UXQm&}N8k&R ԪU5 ֵښ ْ>!}kwyGϴ29ʴ~c Y`['-]? ^6RVTO$;38Cw:Cm);ٹs:Z>w-d$n;f󃁚c; @5=]sw5m0IyNBxZ ;BSef k][kp+G pT2yr48ec cd KIXi3aGDɶ׮kTڵ LvbZL|СZ:ky&ײ!mZo^ l2,y@#USFs[K%=ҟA:Fv1awW[: $սmtZ9W_:LNwmݻ޿s $q!{ax;0R@D 1TB*TY=Z~!C\G/OaIj!,lJ |3\!KR4sJXwiu7@/]7 2ضM'dt&m פ~ʇ@ϐg-7(" ̖ڶnբjX Yd 2 g :c!3Y5W::vȊK@tfWN]lRvKC# ]!#c\w/d_;z{Z5ic 3^FNQ,*otd^2uM!.PFez! 1JB~;d5eOtȂSWF]V+#`(GHgy![mh۸!+\QAB6N]%J/j+#)d$OP6q$߳jXȌyy^t|L7EX&z=Z%u`(NP`-J=ݎK`6kOW,ԩ@} eze;pAwsbVjU 4_) \.di€?t.\u+^\W~)!}f`·Y`dpť©5/+2ث*Acf[Ȍyb֋1o&̫b@-Exs tEI(8 d=SG2S?0hS`~ j|9NiI`V*z7[|ȦZqQ]3կvD6ݣVΕn[\o)ި{.u*8 487Dm (^ 5Ǵ~iգ^ğU I F4Zϝ7|WWCNqu;kB$p(W=o5L"I LMZ{סRI$cj4ŧ_St3gSՆ ̤Z-<򽶜{H8→HII`&慝oٜ.z_,dx)EDžEDv<՟+>JRIF $j"!m+U-piĄ]1NDtK$"^Ex""]❘]UgZCBƩ݉sSlYČ>۟›=8d} Y[<'8zdr|RBf!{ sH^7x<ߐ=U"2_={7CD9.f!L*y]#"xVt"2_l\N̫&>uZ2 Kh6HvQմ[ٷw-yǞ}{;>r娻n E Yؚ#wlνڶpvˮ}v_1&xoy:cOI\;Qoo}9þY{VƇǧ[a朗c#&,9>痎Nmfua "?O.ӹy^w4%EF cM˵?~du|\eBg{_!"8~_N,4|ǒ7س߮m.Du=nn' s-uIbn40F~s +DD9ﺵ$t7d#2&ts'v_ADfq"˟$Y?|iߤ"~xSDroU.Tt^x&WK)"[TE"""u] ESĭbI#<4c`\!d!\|S-wtCNn茘\OeQՂ4ֺq U$.)꩚w)0Vn/9r˔)4̭:.T\'d*xH!|BDDt,d$9]'.ƙtG'bZl%_ODd ]/q ${!  :Cڹ%qED~*"MUuGgX3u1B\!%dU,@jϸ_9Emܐx7@?טW""IE.ZUlGPBE(."zӥ 2 sSKb(쒇:6 ʨj}*"Ҙ!kUc.b YYUu*rQK+*d""9"|j JU{ YDr^bŊ\}nmԱϮp.wܐTP绞1DlH+`W>b|T5QVИHpt_K{5YȞn^ͼ9TU1-QGbj"4m3#J,vy쐝RUSUaU1BvNDc ]x5Ԩ^ GmExCSfum7&t/E$)zE6CVYU_y|JOIJSr=/]{E_!&"m!um̐-G%2}KU+dnC6^UlX!}BVRU=dU " O%1CvZnBYP]SU7d-,5K+",,d˝Wۉ=WYAUu\"]dBw>u⨽G"KyX~/u]Qgp5d飯^u^?8dA-US,AI4>@oȼxRUu|Pv{WIZ6SSDΔd!{^țQ_׏# ""UU DD$CBvbUMx!˧I8dj^vE!VՏҩjB6HDdEiHy}*";NjLr=/\gؖ1>#댕-П81%"PDG .TUFlWD$Lh\g{;O!,Vդco6 vsL.szsu?jxZ\ rQeQ7\!+PTDq%,s-V8;IUG].SDQlJVU v?׮/ul]1V Hk??vK{iDDګB,DW'q>,z88N\gH-""+>ǦL"?.%QL!WtDDRDG*:`VRՂM[TͱQP"$u@k⠇z B|b}uP~a[/'QՎ\4H TՔ!,~{Yoq=4zCȬgj7p(TUu DUՆTk"E\("3먇H18FU5Y=TUS t^7vq銗FAY^j& ,p]&Ե= FB 0ZUUs}"?_YgC}9WpnU泚yxVޏ~+Ǡz36?tnqU}'F0G4j8jFVz\zuv#guUMҳ6jMR$\z>8"):[}#.%?"&ZUm=Du+3tT,dMHG7q|רO0#""H%:!"ޝY=DD<ޝ.xIqn49Nᔪ&ys3ίΠfVUUMziTUWUUtC.UU-csj|gnGdQwgY4[A.6_lΫVS6-KTU5UU5]$m|g1Ei}Pj~A }۠Tswz[5\jWpWUEDj?x̉?9 D~5vWI|%%s)%w$s=Ym^tmgWDD$[w׊HZ,ud.ݺχ[`]˶|:z9NhۡoG[fG};zk#@hߊ٪  .hχO(̬0n0deeh7[PMYn^θmiλχ-ed>۵\g>*X)8ݢm>o>>[M·M;mqh wh< d:%֞;zkf:zkx޾>[;-of<l׼JY bk~cl';/[ǶлO6-\c{|`Y?wB;oQc]c,I:nӾۻ|v~^cv(@6k xaYp\'}v}}ڷ}OtжUf)hA̓ {p\kZf?OѿgɣN yqqc"Ze7f6$2bk/lhZ:ꛢQ72B e{6qd%d'lH,du)&oV1բ >FBf^`DD\kZp뤹ڀX lgpϓj7 g]`!3/%F!> A?cc,dc!3XȌ1Bf12cc,dc!3 1XȌ12ccc,d 1XȌ1Bf12cc,dc!3 1Bf12ccc!3 1XȌ1B 10.זA$F=g?93{/tp N}xɒ.XyA3ZÏ?,㖶 u~%-!Z ًiӣH_tCEx]Q^}CuY`Z3lYRyHM4_.66ޗ_L|9^51{km<9"m`ۻ[u'dU|6$֏~<¯[ Z\}.pob&ِ[Ȟ[Ȧ4,:xY`|YR5̶L!pծҍV,o!XTwj >R]7VeENm-}mVd>}BT32Q [3O!d^۵V>?}0_'6RR_~Ǔ_Mde{k멶ulUl-d-dOv%Zu?|%nōt#j*Ga48O$|۵,z H9(/H z^N@;SRކu2^ӥOru{oD@D0_s%yrO f'kws 44|e dofԽ,{sfuN񅬺@ {H{W Np\!-=ͬ Gwu- #;L0_ZVsi2#oJ Y0FJKS+Iܶ.K嗆>7k?x;z>|m`-d/=ۂv͵5ͲKWFb JxASHoӡs2iI 2l8 u6ŵc$q e;/`#l|-d/yj?!QQ)V=hR[uRߋ}{}'~ДߥO7dE4R>Ua\jھы+Ydޙ cBAkǟsL[(3l-d/\g"KnZ1'3(\Jl ,^6S{k(X!]3+%- `xjRZ)\d˝2)X&g/̥ŋ\"S/6OQQІ~5HfJTZl6OQ72fu= 3:`]2yJ~༒dmK^%Kh^RhԭZoyZ^ Nh=,&7+ɍ!/?+%\ 7v&^X! ;:Zv bg-7ߑ7CZ#!0ކm#6OMH+P*M=i-;Af M)h5o"[Nn,WXqe-JE;[&ܼ [G^;ޤmm-dSR ;ȇA5\:] ۆٵLx=5P+'*x;v-ozr'@ a !P߱jce&i;LYDQӱ&Bz@830XW ?͇5]`y XXY̖9p$:uj$X]W*z YG=EQJB.5C6Y~\m>nNw[Ȟu-^xgygȮYU U8)BVm K$QRem[6Z6xe:B69FfD-Rvg4 I`V!wl۲29A?de(PY kS2"# ռcS$JwGe;yǐ6l+~2yZ5kQ&M/n SqmnZEjicRlJl{]O?N-z|΃d̼|:, eWź$Sfjw8[W<݌ߛa4Ђ~Qߴiî 4iָ 5kDjc"?Z|M65ԘM7m8s~æMRIs୲>GL7\Áq* vc0Ytם6OǠ?߸Y[6i޸. ҷd*[nV^w4n֬q4k85oUz'dlfMn%|kp̿’E[̷c,dc!3 1XȌ12ccc,d 1XȌ1Bf12c̼n[F῱wᎏ 9m+J7. ӌ6gboĵ;껵Xu[M)aU{N}>xmxs٘[ȞNz11m&Qhep}ϾXȼ=xbWWyy^2eccn!{jǼY>rQ5qg,i!{>f=$dw+pkUZϔB|WoED < Gnr4p-+w¿/똑['$D$,@^Gbn}a C{a+Iwm?KdgY?^}ܱ^); u8;uoX<|/̱mXȞ4O r1+{ó^oj7Elj9UܨЧLJɑM`z)r|Ȕ@;O~ Դ/@$!Ȼv|Ճ`Cz'kU7+6[s|R.O׷Tfi0t%ŞV|$mK}//흩1`Zgf|HxB>zkʁWKu7n4,6G?dΗ͚<̄O8[ =Dfqȯw`G?I:}w JviAg9зm_/"~صۅCDSKQc5{<󿻲,HT 0{gS.X*(?&gU2݅Yi&@g#sm=|AD="Jԃݗ݊ZI O٥~N̕I5p$a+kNr{CPe5!d׮kP+- ltoA2ւ醌r^5 P1\*f^wlL ֵ^g܆9-ʵȠ?l 0Tj_O:t_W- e Yh w0EwܳfE@ =LpvvK( ,\!/Z6Xչ3J`ĕT2&\`!{!2POB=g#0JJ\!+J{=z?l] K-#LFYdM:>/C8UNduy'۹nB u{3*dTWSS/9zP l1V,@D,2Q6dv%S]\\/B"71ݓw}õ!~P;V_0:oPE&N@m\uٶ+5z,註[3̑iP? ɭ,< /F /^Qˮ:],dg#/ص Kfix eC|Cvu~U2@XYQ2eu+@L$5S{%Oi e 0U:{"iSu4%y~朾N>Z *|gܛΐ"I#aVvZM.r[OgZ=- 4wt-4@ D͘ G=~Vz @H0S\9ڴ=];@P gp,+y^oZ85 *nR}~}Jro(^Om=O7)]`G0+/`eҥ`׵;ޢy(זiS9j6M8j24_Dp=~lդ)It!c!{kza{֯|DOSa~ɵ!˻}߀WڰU#o'n9`ImO^ 2YkvpdԪwc[`GWSdˡv\)ji$Lr;g%gKؾ/E%O" pp/UG◸+4 &'Hf{c/{o}nժ&$6ǶX?QhPp>)@ h0OaGa +Aہ5gBtb-ϺoC0zQ7aj*U㝊i,ݹ;@O;v7\9n |3v˜p'Ƹo)?=Ԑ3>z̄8e1=}ocGшMlsӖG~zE[gOԏ_plbǯ8 W{|yr͘ G/8uc}mX3{%#S: swK[s0wVJ= D|+c9M-|^ư[6;~">.̻_Ώ}Fr~1瀋ia!clsC=kVQ^Α/jUQ{[|c}s nO3zgc!3 1Bf12ccc!3 1XȌ1Bfcc,dc!3XȌ1Bf12cc,dc!3_;X(YyRHc!3/^9R9Z+RX/7!bN!}42|4!eP!Kd#,cJ?>![]PEBlBD][^{nA{ b]|0̜gsΈ|1) S]"U9 &H(XS2EE#]qbdc]]`c 83C iw^i1/qYD!C(ULѿY&D==.f,L7Ā-e (g)],Bxv0 "k}դM>D>})R@׺b"3g:xq#<%X-"yB&{<O9) S=TBL -nIY-X!BN?&>))=7Q??}=X=zIHNN f2Dמ}wU%{w=^"d)R@H"E )RH"E) SH2E)R@H"E )RH"E)RH2E)R@H"E ȾV\I}yF^O-Fxo/ؓp4Q'=\}XiŽ5nJY E]%wF}]:fiZ3;)^}N;~UX]Jw"rh>7fndG1'쥌dQzdA詄MNpn\xINbחgX6F|}Fۅ)cs:;5] 5r+|/Ɏio,) WE:\ ,?qr'J_؅ZaEiպE xɧx~W{Lc?3:*m@ÿh;Gm뭑k t_-cWN?TF ϔm~O$#iRId4<嫿~=,v~ ,N2/]p_" &n|Q?e2gFZdƻ6dKh.S + ۔1m:u{ =eChb7 :m :I7lezC@V!Ûz~#=O7BU@@4^F9 E^‘/$tnqWCޡqr8"wn>wuJڣhazv$Ч$6u햪 ucFNZ;޸w@cuث kMYՠ/1Q=Q]̅.Mp\êج\{;zEOϴk$Ljipu2t4i8 f%ҭ^1f/jzzq͛_K}kvoHl>Zaf߭{uJ)oZ!U[Uhɩ.gW&Ewਓ*:+>.@X˺r5P5g.ϙ5:4+m+ uĉ Ai@֮aW@GiFg9xi/ 1n{.mG?>ر8rHX]'\Nׁ[D h%T (r4%C`t1O%GU<`-ϡx 7JFA) H21tw ]aL L E[챭X`8mN $_Z(lKĉi (LD%P:h&4ftMeɶϦ^@*J(:5]'pS<N賻Z#sSt~` O2ql`$9W lk`84=T-&bM+vꇖC b A65:,IY08O'Gm_/`n`i4) 81hLAyb9. !GzF\e,ODZ0<51`#GD$6ykcb8Y>W.Zqxʍ*h\vr<#h.e2Ta 5}Jjఘ|(i /e'eh {cpPzyw&~=Wr,V݆ 6IH Tɒ [EצG.J$@V-3@\vs<&6}k[ҁK@h\b24;gFYO㹑nD+BYKN;sj1NIyI@wh,.+,$dh#Xؠ,]iDi+0B+`8cp}Eyz>1Z\1/8N#{"46Bwn0wJ8 @ ]j;n~t/ITty֦ΐrL{-<JT!@L@/eJ<1ɃpVY3~` ׀ebS:- rه@Ɓ(P0Q<v^@q_gO.ЪefQ@M@v\*q=ՆukW,`\,Ӂ,#U<(,OJ<% +yYeBr]-Z H)W> Dxfׯ]jzdnoCbcQ ^.ϣلVk׬ZLcMoaݚU+d'& H?l9(1_2LO փ,* SJdS clt4Yn\vݐ\Z풓 #=d1CgukV˒q4 tOud'␣A6_r?Ix k *d9ogT[j~zZN/1k64k PG6_v֭]R<%6_zddEdY 0"GW&*oqJ x"ofOҁW}eT 2g5Ӄ'sn}ؤ!=2NPJ%Ļ4߰3{= v 4 .vA6keLX!Y9/.jqK4|-d8=NK7Ow~$?aD?.e>a`?LǴ=V {!+d^b7B^5dX֋XakڴdaYwDuwdL!L,/ii25vFv;둕4 r@,g[Y3yDRx#:ٻ xVYa@$Ny=Ђ,.Bҁ,$`gׄA @vI˥=wGA>//R4s@8sƒ.(wd`\HB c=ݹb~:҃Lu5 0}*!gVՇ@Dv+uo)g,; ddd=پ,56~dMBj-*^6ijCd_b=њ*pLn7V[%'b`ܨ6+_Q*g(Z r/R3O &3݁2e:S` usJcZ)g'pQGjN6L/Gme8(B(T VmL5>X%L3Q@Uyj21(L_27A,4śxPUiyxs z76^8]4tP{?J9/葺t"S>\F`M4uܱ**à<6 w@ 3u6 Ϟ9r99F@/y(A#y%Cs( RV ySg1b?W\@nv;v@$sSOAm&O2)@Î.b05&E7\x2P)Մحr0TNZXz@q26̾uebE=bIguT&MU-F=^_2k &=9 I7 tC eԖAQ X Nn{ef]܄c]i؊C8o)yB 8 qV (ɔy_Fa|h:@1cD]rVbTF7oNTLIEK-&;]O 쟳R?VيN.r؄j*i<1%t9hu8*wt_Cemώ &rzDED)~Q')?;5i`pS1{ b$nu$ƐvOHv!8 #a\tĝT=; w1TdXn}0U[%AU'޹5y\ɘUdk KK*PhipՒmmm+ >d~]j ,VKnZiӸODVjƂ5ʍˋ*vV.VކUwK)>prB*vVaEDOg;SֹwܣdUgke?ēT^*^w0%Yl񴊵UjhȞM׿ieg'Hnm[y4um+\ڶ\xʙ٪|\p{tbC!QkֶGPڶbu kʳX 5gGVS@Բӷֶ{:Akʃ!u<.GUxy(>*NXZW}I\"bn 5Y럸[hʙ`;kK𱲳rf ]2,u=7+], r=Gb nucjWS{A5ìlsWMʒ';`)+w#hZ6čo?=Jml܎"d yfamL\Ս Z|J6tXqs?p#7)$Q@*jq487d+XHgNlo~i;sm>):5 U V2E)R@H"d)RL"E)RH2E) SH"d)R/Fn6* d!ZNRD>Pc:?+Roׁ?jO~#-ݫg,\ͫ˲ωn?VΑy?&3c7xhfOpFSihY*ݞwD@MߵWMRL 93ciJnxffmid﬊\.qEԧzJ_-5o_X/ܰW?!" hď,iLT@U? ?Ol6`7/a;P !|OK dfS@d DP} n,]PIqz e_cLJ;JJNTysSgP}9(i݀&bAMf6;ΪɚOl1J >Rid eP?P%9r"AAhMkSX$dWzHHYG@J0!/-k^JB\V(<2!d7[.g^cr)@zԦdtM^Lֈy4v atvyt{gw]rvնIUM9d,Er.5}G5L t.u XԂs,$&{[зH~De ,tc1*[7eI𨓕1f?yP,]4ۙ72<~`ڴ|O[u(>csKY֤YɖSKz+@b5y}ƕlv CVocIYlǴW ǢYIqlZθ{1Q pգ9ls5#y~oϤ`Vz/;4+VCKXLq#``Mg7jrIvC"WT6 Z{jyF6sb>Jpͩ~i9,׼Us`7RN)nlPB4jz Ȓ6+ v53)w}xߤ+?YT,J%{\pg @ّGa'[Lʻk*-F:-x]xoPky@ڙlIb@ c;\Qz_EcK.RikL8h*D'p[L}(hpY@D]х&Jfvs*_{d>4XvF )C* @!KF%~(fU@&@@8.[aC@Q6qб>3b0Ev|j ]{d_2ᴰU -Z8p_ Fo(feYJEKCnYAvV@vDLΈ0EF [:1hn FE˶z-Ubd7P%8ЃlSVK@t ]6{,Ù*r_,4nj;LG YY\0Y ` # dv]P(*+zE6| 'uO r'@gگG!İFqG>%'@MLS5Y' h$02MF#}?͟@fY*$~I?P׫y $C$? HM;l SP" #T:V6:5}A.nUe$Cq ,n-Q<[,3N6&W`Yp([ [PД5^m8# 6:M"ڃEx!iQ0E90YJe9G$vk!&m%@?p+Rerqpy%UJ.-+N9@k)^ 7wfkXP؊@p{ {%] B2e\<6r&~^e XfK@u_\H03.bMLJ2[,SRKP]mj8 gIt.H 獜d O?G7#Шph&'s[t8'O^ i I<.`9d@m!:>r1hipXq{2HW5p5 :&8q8Lr:K.) &,nZA\ӊf{ /"璸Yh aG4'I>qi/9vq29 4^DK5DWVW 8ɪ _\)/{rR"Msot~"U[؁6r0Z4>R^-~61JX"ru"s-DhgG*gvA+Zl\#\&]k`h~}̅V]b>m4aBA{ck{Yfw*lr$%Sx:tF}]Y|ۋSELW,1%jmxt{{#opк,=D OM.r ,63ݔ&jyhWE{LŊ"IM4Q*Äsߤd Kh N紸 O+fns%6egRV"öm=]eh:iaO4S~\ɝ_]/hTڑ&ō~ ,KT}ˎ-mݪ(^-'_wf{{%9eeZ}2F~3DD@Yo|eջ0Ѹg[Jo47JK怦b;<}Vud[n]Y~zKmgJNE"0,~n׊t<~VxO9ؑ-SZ{ d4i goU!Tn95) \0Qm'ob% ,"׀!}mpYq@vN.Szy߃q׫A=~~xǿ>~ޯU㛴\8ᱬ*^Tl/?E,R'nj3#Gyx٪srnSoN;XۭG\6lqSBg \߯+}|ŋ߲Z"x[]\vEL깎"lj5a={zotjc@>M&ĦX~4ñY`n^=  mq4 sk2P)΃^Nco5&;~ l1?z1~=}Ww)S} Լi΃R<*˻8< |zOO|{zfnJ y{Ux3EbX]b_n+R4*|K]|}6AX擟{9:Ҹӝپ~,1=kj ޴7>g}tu?ǿ7=}ooWj_~,Nql?7tihA.;;>~]vW_N$pyG>K±w/c{:,Hi O:~*8ߠ"5\]6syů `_&0g#y3V4[}4C/W{UUME״.{u>: j;2dR|} d<~SmUHۥRԏUMƏֲ6[OY9&;W풌-xOKeIJǤ^UAS) ֻ۷[Z­y/w)6k:,silSGt zpk,d)R@H"E )RH"E) SH2E)R@H"E )R dǛ8lyNM7Za:}*DTegg6u)+UEr&h?>x2mhjß7}5]Z*qL|RWwal>|-+~{vuGWDe(9{{d,"+6Gm5˽feo."2ۏc£r?%d(Q6C|^؊Ee P5mL35jd,̦k=sgϜFn0L v<\_ Y(Y HTuGvɺ ޷v{ )޺u66i8\g`6;dK*ogj6\kado+Th/ Q־vjwocryR],J%dy]=;}͜,6K6|@^;(e-g_PcH Wyh~s&+kdpzY\3"oNgʉh# Üb}A,2bc=)zhTHZU726]ffa0$93*/LKvՐWm-&\`p~9ĮydWf% +~ٍ$*AǬ2pz'IW imrQ>CZ @b@%j>&IjDr~9;L٪Bٌg̕E޺zdYb !fXX5 A|h}koh]< ZyM8MVr(!ő}Hvm'UK3K ܖ#!gZcʶ+)}wbtHi(<6Y#/:/lkxWh$51>Ԓ N__+'3P#Dl շM9[LKػ =d|^䓯` #=F& d@ zJ?:/j?2.i[۱;nuTEuPBTTlz?A<<3us֎'ϑ~,iuG\DI7VŮ{n FKioF~)K4q*i;73TV׹c\Z!Ǝ bUs"i:]b+Uu]Dt+0&UQL8)? MbqDWVݷDW2z:'LYjHdUƴݹ13)5ЍtKc‹-u,Ш<7-gN`lz:>$[ge)3fU8bJĞK !ƁWj'AzF@b@F@ ax&% 5 * }k\ls਎Ӗ!w{bXr懞i¾WAct70I^.mrx6Sd[ $ '?N-źc}-3&5!ЁIjKgcoK$|dU='dIr*Y_ച W2O;}E-後OgjLj+ɞdkWX*Sn @ ,Tt5r0LMQCD͟ʹ"*d0iP+MO1JfS&Z" ^@.6~O2XV 0R=kM$c XB#DQd1@ٴU,I)`# = уl8 0\K;y;0`: uU@m 9}h# ZG3ȶ*ѳ:Y+$eӁl迴eZ d>P}d_n,XnJsϤ@q] oΗ#dL Sd3VigZZK)<'F]B K0+ @Cu/%Ț+JxjdۚEr~ dӪbSJg)@QDA6QP}q٩@fUub5Z~dYr3d [N}d^rBd?rs  Ȭ zZjɃdșY?jYHO7+Ёd5_S+@d+ae @79YԂTޝ Q_ٱ`| dd˗@6BP]"y\7.+T R׃v f4총J' N0p2Y$ut o@Uy0Q.@VHaK2)珀 '_Oi@I lZpNMYٓ=cCk9dٍ"+) "7idyt ()Ah. 64 +.odLt ݂FxM`Ÿ\<'@㮁(i ~fl %4 3ajc[=ڨpB wiͬZӲ쓕@"jXġY_9{UJhmR qj#$o: P5)@ m= )@SY,s6s8ZMzHEz]%U+jw*@+tVрlfbfQUh5-O+d) PL%yI Tol\j@3PZOQj R:pDV5)l`:LWW@4sDIz UPG\4(+S 40An%j ZEH[Z[ S~@W 4KYGXAͤqZEgipqT2k:DHE ;,WL 4"_"^zI%|ȡVnupR3@\tRY@{h^`-!0Cf됤N_^Cޟ[0 㜾b`u6Kr Y݀fX%F k# d{hY2KQd kbtGl%1Öଟ~qOCd%DB@* WB]M>ѭ/&OTu y"D*U4׬+J*.' &Ix ~i?T`&]3`:QZ6wM \SR KDZK(.*+ph1I@Yd8CpRF_T8.˪үhn1 !V{i KDWm<my^<'ukS8Mv]%klfƪ_EFjrhtfq.Q-٘G5̩_TAk= ﻲ&<Kvc;2gUM'nʬĬIz>Βmӂv5efwԡ(8V2'xȤ'sn۱I;A:u%ezfEJrS aPPޅ-+[-4NޒI+ɾpZ LPl&{ {?qw2qKtiF6=դfBbiywv5Z1@X[~Q՛VL`\+ i9oޒIUX9cRN[m*UjL}=σYJ `Ln5ʻl ɰ+%֕":vCIh2RӥԈ7)%aMT$ÊICȐ'Q?_h.Ceը%&6ٔ]tthpUU_$HB)vPMo-j}ktuCi[x<;⪒+ [ŤruYK, aP=ʄYJ;l"Γn򖍥=bi ێkRn]ff_* _ҴN?n^JC2{~V+|t;O՟OVd?Z;vrn/D]u pao'lu~^-;o|eΝ@kG!ϟZ;8X?׻gl8fhgmS7fM8:YCv{GۋmFnwI+hW稭ub/~fwHmf~ΙV.o]f׸oy=pvԽ1v{(nd)ulC~*KWb`C8ه t#6틅v۵~w[:ľ]e6w8:x'MIGX8ouE. qtR?ܭO;<xx/MV_ੵf}ᘭ5lvsQvudttqp|:썵ͭv;GY;w}hh㇃kG?6`mlg;G=s;0n;Gavps9eԍe4u w >.y~ۧy6\?n>lv{Gۓ;^Knh{$>_q֏ |} Jv{G [;c~ hǴ>8/);#0VZ7+I,͟&2þIGfd+ sV?rz?2l} K@|flTn1vS^ ;&Z+P9U.KCu;3 sήaxLt:ZE4d4E[t?@ u+h֥.O=MN4U˸kycOf۟S߶@_L-G_" U+&@,*hf2kUCmͲ+ ?qCZϙ `!_`ҁko@fAiP3'~rmr>:\d+Aكwrx¿ni[vq(353k[]?E+%IǬ!߲P߱F|nbR)Z4¸xp&Yjs^ ӷ"S W>pEg- ρS*ɺj *,JfOux?K[yկ<( Kerܗ!77xA[]m {?!Knnm>@Epgxbϯnpe]UdqQݟ%K,^DXS{֖g "9q{=< }'ĺ,vw}<ssD]] ϶.?[8p} ,yuѶ<,-ݟ@]nx-,]U8ؑGLbP]&@&-*p@j܃˨pVaDZ9DS+Be31e'5lMa}g g%/gM4Vrw.áBfYq6SXQ1̩W@7susz֦~㘭 Y7V{q$lFڛOFT`mKrvוRSZ<Ө&j8< ¯()] .@.}:~ɓqY-Ǎs$M+,ƍw/]}ηnk}֖7; &p.)ˈWLFi.glK(kϽ { .Ɲ#7o/[rBh$&b4n9 hgTW*tVF ,Tc"LN\:U3mʩ\H{7ܮ[Gx|IGU4iюlcOt7E4!Uz%;7)jqfZ}\Ͽ0ٷ6N#`QJyay{dyi=6d_z HSe3%L^S\*{]^e6Q`rl'sVu hpNSRՙd .3"ݣm npOLm\ x{4PC&QX)eT*ղ7LZK ]F5F&7-)86?$f͔-,O | +AL-Xre|d82@6WbsFeD` ( <N[vC Cj%pNv' 0窴\Ir +`br\٧򑵐1*0I𳇹2i${i<)A zhe3o Xc&+uj%pV-2"@Oe4ІVl^x@Mh毁^I5oS@X.|d- @BaX#`҃lY@𳀼@ƜqolNj U9U Ήԃ^Wj0i'Puj#$nXiY}}[ \jp^jdw?[e4FEd9 DQ-j0@U0L=T4 & se 6w/:Km/T+# 5 "E:= Ča~!GY$g7܇.7WՃldi*& dRmV-=2 ⒌𒖰Q|ėU]*`rց,LjY+t|dSO2&K\Y!Maj?խTӁ,$iA6IMK]鏃L3~FvgddJvT ԁ^fRS k(V)4%w*hVOUvfm҃̽J+ddfiyMWifnS3!bl)y_2i>zfW'#Ku)Ed2o}UU2d&B* +QYg]oJZ?""ȸT] h=QE;=v+2f/Irh .pWupU&6a@ Qϴ߸MD.A( \A`c91轲2OhKU%I`Q]# 'e\9 li*Aވce+fѠ ƽRnʼf02p6W 5D(ooJH=fR:)~Һȟ>|vѕ𸇙* g4Sh FMZݭamQyGc%J,d_C8RCTF]#UR&6Ε A dXtt/S L]^m%kܨRQD2e`)2Cj|iJ^}ҪlbL95ugV𜒦'l(%)o+X2iruSE^>Z˧@b ˇF]M C3 {zIwhcoz΅Ku91+X Yv Q95 r?/YkToكƪ:8+}&dp1IGZdhʴziI=2~B֚7ZG+M?Vо=N6PW(+ۇQJ@P~Y |D0@}?_+~![O/_Hb,GI|o^ц?{)a^~O<L=zzż䥷B|辟W$fW壚U/=$Xx<~: x>H}?OŸ^w)Bzx譡7ý|?ydlwyq1 ǍqwƎO8}=8x#WE%{<ѭq+gW8!·Kp{J<C^<灟g"Y=^y{_G߀}?X~|3 _5ZĜ?{r}8njм:ԊV~_v8Cz ?r"7Y3 zg}'8Jk7:| /A|6mO^6}6 d]i}deX5Fͫjݛ{|qu:_|jmXT3"S+(i [H8R4p?3Ӳ,_?vk|ֺ9<] ][AvHLE2ٓAR̜Ќ7/YT qgRMoxhi133o-f.@SgϜ}W ⏟9wwp̹S ٳ'_8 N?N'sg?4 22 2  2 3 3 2 22 2 |$禎 C|Ne>qn}Kv|R>8jx Ko~G p_3!s~W b.1_ ~=y+H9~-q ce fȷl֟y~B̩~[w\υ@d޾C&94/`j{x,-}Mʦ/2FQ Wz&Ndק52W톳w,}/F Wy]xG7PdyZb@{*Z~౻ʧuq ~_L6roc?`{e+P?mxX} U_7UoˁvR]<gO2TMLNnitYg`|=*-d6n *pQF~FdV.6%ZtC@}|7l&j{SU {M_RsI̓$}Z9-Aoì2修O4 ֩Ik?[{80y84y i{;(h sH?}:i|\qI[6]q. m4w@ǬmSdϜLmկVVVǶ 8;s@®>]Vnll-OvzCoZZ 0Zԯۊpph)Z;[;=|[$>{QtVV-vOhVmmn61v.oux7mi78mL6VVϐdMp|qW4ՂC>V&E{Nu&ާ1a7N:pfCݶ&Oj;,l\8C.)m{Aܖ^gܜsoudR}fc%@SN:%srbU 1x@G cHBty9S7UG;zʨ\>>v ЭPg<$xi\Ip*]Z{|ZVX?(2Wg)JgSy @S q:{4\ph'70`[q{EN1)};LX C2e+ݲO.Y!{lrŰ-^\ Ju U`l>lT Qe[^{,f\:~qWp;WdV~ b;jԄU?^7YH_$zdp"l-[arfuc? 7հEl#ݢz/t3άN.1 8M@PQ/oyso}}z 8sq= jqۤEDnpӜ528=kx. br)T%Ky2w ౓qi''XTxZф'.~y/,0н X(Z;P0P&$8J (:K~2@q'x`,יT{ZPY+O8OI' yXvÛYt8pS.%5 h\̟9xol|I2{BhХL<ĕ1"m!6?x)n/nk$i+#,kp[ ' 5Ȣ,kܿwtуO / J\\`Vd>bnnfK@jh}N Rњ')O)Sl~eOTrhy`z_:@՜vЃFYY tQ &;t&qZY*7Z9Uxwդ "To 7סRnwWg[hppJgNsyg&T "h&'b5ڲ.L40z LPP'ET3zձxkQ*ZvaLbڒ,mKd Q$0OosgO 2إ\*_ CU)YM>WeͶpuʎ$M4+40`_4Q 0 ϝ}f+aR:k~7 k4o8xS!u;,K,Y`ޜ]W [ +mɢ,K9"ÀCUb?@vZfMπc<$><ڸ 'jyEŚX٨}dd3OH 7"Uk‹U/4)l '(}D K(oY #sH D SrԶLԚh UKdo?{F0~Ct.K~^2H7¨>0C.3.PD=DIcjwUm~< C,HbbE EC)%;  ēsǑ$ZK߹}f݁=jFp \YfN/oHc4myQe*8`98 OC]ͳ>MYb;[6< pa ,CaZ1pce_@m-`L `J$~桰cd p@X%s [N5 % OK?&-pI.VYyKU(d6X9;*%OegeU5 STMGCs2 w LpeX\"+XRn>\)WVFS7mT]`S{6!U`g5ψL^@chx2CUyUnRE୺lM;V={HXoZpF;p]Uz5#;0w,W̫*fn/0Wu*`^`WFJ)8m Q9;@mHU,𥲣by% XViwǽvJSB٦dF6"B'݀d,b-wTp#~ TFנZP]N2zw읡 wQOUKSXSl )KL27$[A4Wn#6p6t@K[WCıHu I)qKl3cCPĮ0H*=k*5]wBw0zO0:]:L3M1B 5帳aqSշt"ZUz<$xvY#ZxfMs\Vܜkw0 6~0RO7{tl"O22|*nwu.r;]qϳT&..:]ә.n7|5T*˨ڋY]]\!nH&\Ǘή'18kʡ]]3.S69FA/~}7ri'2H/,Jܘ)Z(=7uuBY,YnLV#b[:?mlϪrzE]wms -k*`SΊK%sfW"!]+K&W2}`t.Wî繯a ?eR 8PGf$/z ߮dgҍ4.֩Ʌn|wuuYQ`kgR785juMTp2h\l|yTowv4Tw(2`I\K.Ngסh]Kcʜ@#s;F8{{=1pQa{' 4u-!>uˌ)Km4s>Ki#?aL2e[@KT}˾{yMHTaMHZX`Y|@jLZ~\Qh EAdTZL.l0-cM%)xCvl;,I"&m+ܲ ֚yNY7"sY-BO9`~h"w~PH%ۿm{ d{ʹ,+Ow?5KGy/ZͿ\d?OFV_($<6]3DM9+A/YL9lti/§[ϿekV*>.*ܪYK]/pe\DLL򌍈;^6V`xAoF"h4-2F"h4-2FEh4ZdFE?ɓ#c.tﮁasߙ,̌MG^1;Iv_P-2 ROn|V6wm*ZK˗9|'\Xv&gMُ۴0mm=#lIҿv2WZdNK%g6HFi|DORzɒ^ux<X?_I=ݓd.|?h7^ɯE!v%a8'n4+wyg'yA|4k}?%pTҺ$2Zl$^?_u9n_Io#" S*h$rE6iL>Rdyl:EEfkw|6\"Evψ̱_vLZdN̿~—/;(<[^$]$ʔ4]f+TW*/`ND oPUWǍ)^H Og-4@IV% Xaz`*0.&Ed:@pKث'I'Sv$U 2 vؕ0(cs`TUؤfJU:DMGݠy*#LnX;`\Zd%pGaع温d+fLÐ*'*=|Fmr=f#2,TLYG۳ͰA &nI$l;Beڏ(%j bn?ܷCϥ#l_|KlLM2^=h*: .>raEde!pY\wPOcM Q} S6_ulk5K a ܿ)NrϺ _^ki;EYd晿8BT[Ev@u=z{5͈ YEyȈY3z C}"RYmN+ 'MebmLv("WD60V6lm>f1VU> 3r4`""VI mrK]$J5<`P,"[C=<b}Xz kÇj DuثR2CkiψT,LrZsFdUflz񌳈,YrntyY<.4Q"jz:h{̳R2\OdM#mOJwֈEdle#,9Ⱦemr: U]#2c}U_XD"`_%?Z'8qt`YYnYZLDd16rrQ>(Ӫo}}|!,"4+@d"$ 8 Gl //}&ȦYDmz\hXZ)+l%Q";W\,ʾE6WyOWTUDXDv@|&QHYId ̓$"%#/1B9I$Y6Adzٿg̃,Tˠj F.j`Oq C",iejPSugwUtz mlsѢgoz3,R9[/>x3y5UVTxB%Ew24lü|/VXBW~̮۠~ V* &ueqmz^nQV11pv.*Yv7W}DJ#xYa4R&yJb5`#hi9{4Zdƶc@)e 0hi4mCUZ TP}4pLɒņYdbJ J*Q|>`ZdFEh4ZdFEh4FLh4FLhi4Fhi4F"h4-2F"h4-2FEh4ZdFEh4ZdFLh4FLh4Fhi4Fhi4-2F"h4-2F"h4ZdFEh4ZdFEh4FLh4FLhi4FhiW6hЇMLkJ?mu>rZdTu˚=klF]Dlw >o5?ZsFj<#)j:_|䒹ߟ<۳u;7Q2OVA쟤ԕ1PN}䒅? 0>۹irJ Ad4ѕG.EݹYmE2LozEa@=[p3&\~;E3w._} ._}aHE.'O_]{tId7zc.ٍׯ?^ndǝ;.{%^0\y;qv5kΟ lnWo{'o Nl5dDžXۈue̫&-Ĝ_Hٲ"&W/yŭH +^[7}7H!Q\"Y=tNMї-Tz@t}Z9+/.8,١cUuΛfbp>Rţ.JeVtH=Zڛ{ Hs:uR9):fKW#{AAmfca06/z\tpAI+K^WAH!q%Աn[u%ΨҬ&xgɰ(fO4길M8&_.IF\*}V#ӡ٢NTvbJ/~+6k6՚7n H^ 𶓭z (=htzoo4:Kݷ_ߢ9_‰ TJlE) kJ~(*fS:v|Ϫ"Ca_5\ޫP/sKWEbxF*-[b6|>gSe7 pB - FQ3=.?@kW]3; 8u(E60*uf?sGU< 0S@Dzm  ׄ䟥8#MNMcx4lZDvlVˠLuKTJ@ 9 h<ֲ+{1TVO 2[`L*F1~&V6cR )]ax+d" Agg[Li WQPxurheGr :9@Lޯ_ P\b*Y 0KiW  JAX0M$@6mRO4%"#uUӫ .{)m{SfB^[R* T/*b"EFU{ G<-)eb*6ۜc,h,21d O@PIcVDChkTVi`"5mn&1heo.\W-!{xؚ rV7)2LUXh%>89&<-Vu#@DsF앩pK['!|Ix`_Zz  .SlK`<.&-2 ܶ%s+rdR pM<=2(K+Q,Q*YTv—.Q&sEǯM'@<I9"1 oȎK ];7H^OQcUw/z cZU.mYL= F^,+R7|+Hu^j#x8T)WH[k`j*܇xK€j@g\d…JId*SZM7'@;y)+$nNAUʕ(R"n@5X_40HZl"X21}2g1nI$T=pT~~P"ܦJE *8 UE NAJ3ٔEd$ GS%NFSHD"#~Wd+;3y j 0TYdbnB$Id7e9ISz3G9;봈l;I$l[" { R~ZӥUd9vN֮?[u8<頻$"ݬ j9K$y+*_WMB SU%Zj}"^jC"˷g):Gd9uL,b+=IdYd3ՐY|2Wp3쬪vi_%Ű\<EVB#bipyȕ .Օ0 |^Jq 8pr["(!O#`ɚ$o4"+nhDujw9u4K,*2m`Ot"K6&q#XdTx=6Efe5*r GY;ٚ6 -3H]j4T3d; RA eTLV{zKOsB_jf3lƒl,OSI=ĥ(Yde{*5%@;"feV՗@y Ed *JdpDd5H9Q 45?_( Ey V/2zJZΒZͤ9J,\(pXr*:jYd,Q^}"e'"Y#dR5I C #Pe:xnBW\DL-8Dk=`,r|ceZpv~ SSp)TUEmy,!\\xɯ0TUQM rBGO ",S@myM;^RgzO Wv^ϒOEViFdM,:p&e2ƺd+!n[&!+ߨðV-&ZUபEyb_u2]BtƐRfINssm/"vy4VX/]KӽȆco *G#]ʥe?y,ͭodYT_8528II*[E'vM6<4*޸cTڑ,Ka_˲NRNp;g֎@~C|+b^p vW989 v>m}~1xA}9~g O}=M F=s`O$@GL ݳOwyEQ_քg7F[hߡC{_w G#pw.~m{1f>sbW!Cg.X ׎po{>`vI–>'Gp~ρ\s8bv!>7.iСo9'>{b>CI_䕂YEf}S1]nڦ-h;{4 Ԕo0<, 4L"!#Uk Jl:OsDV\̖lʩkT$?gi>3LEW=s3gX 0@~dtwXNL3e6C :W)Zen2\sPi0GIttT,3rdtwXm`~Ͽ^du%hC<,Z1~Wo3a!2iϣsSJ"h>k|JY4ϘV._L׃F"h4-2F"h4-2FEh4ZdFEg$5VƝx?t[L+T yѬ5&/XiY͔m4O$"J"[!v'+Gˏ+%~-77ZdRb$M}W F߿P!)'i'XBW߭}%٬nK?Xdz>-vv/c8Z~N~eN.Y.wVO* SXp(߳ӿgEV0+}`rSio8/u{w>e'dϒ<#NIVR9Ꟍbu :C-䅤JX߲5s阙);?!.@U9'~M}aC'r2_{/,l)aG?lؙ`9wN/8XU5Ը}#= =9F nLjO~{{Yn{_ -x=l[(}]w_ q]k-Xx|;`c^_ \5`]D5u>3㣏p~Iw;DbѰEr?ցs[zL^\x=n͚6P[~XoL]$2#?n&n-޺<83M2aJ-"^m̓wEI"3=捪4auO­_ڌnl)qXcrWg7ToT,s+NMuOj@wӵ n0"Ӡm;57+w[qu"rskd?!.sVU>zF`XL:=bKvjh$KGһj%rE>l<\{Ϊ)w2zIٞy%I'uie&8A`g>u3aLYݲT~ST+:]rleL,lo' ׈o7|W̉B5c`Xѭg{* ܿxqůT,=L ^+<솬8,&mxChlidEZd2I?0iO4uZd9]BaZT h+@R v߫E`-&Dl+ H,|u73Le+])Y  mUMC!}*}(Ѣ} I6U0Pk 압@{9,dl %Icq@5 mO E@T:`yU/H|] X|.Dw-nl[蔺o {탈-CdL㩱R@TB.k}s 8ЦVI}Cx}\{ ׇ4Y &MD8yDxLfSǦ 1 8 }[ԊDw)g@gfzmW |O]{&nhps1eQPv؂[C/K,WÞi٫aP~LmU d-sR`:uWj gjKKf</ZdZd6̒L*[gyB؍']^SdDBP?*;-)PO`ؗZ jP;V^q_Z :7tQVu[t(k6_M6WwWO\U xh d,ČP',QLYdM3USwaV•h /M)UL~m -<yi~K}Hdd4Բ"ReۆLQ?Ƶ+۩I@u,"˝sӺUTIȶlL7pO~Vxm/2 6lS}|oAϊ,}"(Z&pnu"{p~ i^K!Ȍɜ&HdEabYxo+v/XxXdGTknIK!deYu"fZd^dlG8ZIӧM4)MT) @Ehje@0Z,ᵘhPL:J$^O ԔĸQSϲ&U]axXrv3u-t15h}ʫVb.)kTEFok; "+B,"kU?EVY3,۝XWXnm~P"w6/Qm\f4_7Ҩ!P YIDԴ^vl#t"a z2N%/Ka 0Wfg!{WwAyllk79i!]ܩ,B(Àd6KVBTu'yX-juK{5Ai mFlNs 8U~bXFy1iF7Z6I5OU* H{,TРK} !m|Ѭ UcްQ+_2b{IMcpU9G\Rx5+|kYOteHXCW)TKL0£A0R}F_nSV ,#xԓ[vFաxGuOګ#Țu,0Նاp/Q"T-"f,Uk"묶Q'+2Xm"{~T/!yl<⒈i2[%Yr$g9Yܟp3sf>3P $b(pXݤ~BYoQE[ sP5q mVFy"ǡ$jb^]cR1 X)WQ[E78"aيeK>AosGb?' (jlf}5?!דmd^hRxWMUmO^~tQ;F?􆚷څr#o@}-$TG^"c"o=ث1 q Rg^N2 nr4>t.I ݂bO}Obaql٢s#q>, _ K`o i[Z>}N2W S 1h+™,~<$Ԏ!.x V7ImD `pnG[9,m>B]&ߎAti',#Up`9@?x7z]16^j$w'4յն2 j֢8i7 ߫[ 7d8r2d}/J6+nA֨X"EX8IV9[6Du/$Drվ \.kaY&@7:ض^%t1ǪGN& ͳrnG)K27Z[Zؼieia?#sި脂WGҲV. ѢyL.Yy? ޢ]ͥ*/!=-,K_YX;G:sSҼƿha֌-\ؼ12(7Z 60aNi("﯑ͫs vJneu|Zg㾅 [KVqm^nXs%hK5~ڢ+~{dEɉjN8'$դ],61},i^3DQ'UR?eO51<>I$t_Di&ħ+)^D/Z{u] 'OO|E5g-ol~._VB2o7W@vU'8Wޤ}v"|n9cEN+ SІ6B;o{r>&K,7{ϻ ]稃#0Tߧm;x$ݡW%MooQukG~G \D.+?|Nrt#4%y']W&7Kݿ. V@oH8=q >gb<:]}XƟ|[R|?uo+͒ɟ2 Xmg#ȱR~c(,֯ ?Qɴ ?d%Jyz ;W\7E%NK|氘  tņ e~Sg2x"gҹϵLӆGOvo/y 'k}ӹcVg$8= iGqoӸΝoc&z4yЧqC(:[,qm<΀ѷfsZNЯv~։Һ5]6_ƺx,RDMh/=\a(߰۬ Y^kN=RA֥k ޵ t75YVb|gLݜfkp6Q-Nl⥽)Ct}o#i@'Mlp/g5gzv+n;~nˀg :Tzs`UGDڄ|@Udl݆mǟW~ԩPψy'<{8GfC64/BZQuzx~(6Ф/fk糌Zj)=+O6_2\ktl>:F =uUn!6#B+<+<$5n3.PuOcj5jXΫ) ,+.w,-azKc˽^fnTrUq*ʓSc*nHbmù"rk&l/v.q̌w9ef9nPn\-a_3f6nI-d_ܲy_|, ^Ng̴9~<``` Hu.U_JX$WBth08?XT;γ^7b8Т"0Q^`</ I /odPg^`8 ޥw$we"ԡe/q &%. Wx\Qm&Zᰜf-8!@ 1yn p4.b`< .;@]́L Vsi~  >IcXZ vaUgUXӤu[cz#dkFbF^U*Xʡvs]եȂWlblҵ~ t샻15d@H*vUF4оwOLE$6u5_J: ;[ȴVV5gzIo_|}+SsO! JYIܠPk_4˺Z[IxХdayOTo*kW׶^Ω4aCqCm7Ps9DZ5:<3rX,vCh `Tf!exΦ[Ⱥ;N~{ܖ--Az dm@dC;кB"ś69*\KxbRӕxlES2y .b6uwߦF_N@G8"k;=ʷ f ;rhhc&KӪ]_Bi bPECڄ.31t>yb69%;-f>c%5mk/wt9\ 13a^Nul1V6ޔⷬ yH<:oZ r8PN.m픕3`R\ .[]F&rᔉ ` M䔦{᝷<6A.[wqmg,6(=Nvnͪo/b+0SNEAlRR܀3YF|FnͪK,5`H^ɞ23TNYfo#NJC PU[* E\ˤJ3/@Rr3׮^ry(_? J#3aM`@U@pU@iz&EA* иRd{pA:Fi92cCn 9'V;(\!d75,wu@Jn K)8%}" bK<ś4kdE@6/-xAeq@/3lQOWf#Q2%CGy4SWq$ȸjIhyEdp'XelV2If ]dQ}9Z3) +%">@fU t {ިMo T4Y HD`< Ҿ"ڧlX9T jgl*6_wP`.6M)6buj`1 %o)QMaܨ}oFY1,ѢTtna-ò1 怹rr0\^%^jW4a}=SmdHlKwFm+} Ӄ,ڠZll s, # ȟU ,Z/,#|5`J>V(y=ʏr| .r}xW ϮB ٓ>nYmqSkl9xd./@覂 !,{ 6eA?٩$(/x Ȗd2 x\8w6g 2d巂ʸO@]-.iWugN ؔMVPLDc]Ѹ\e6L@`dwl7!ZτpK N1VD:p]Te`W$S~&դhC'9dk'ˁ,Bj'%Ptؕ2A^0<6*#t;0υ O\7 '\}jK5!ٌ.RouάOO,z3ÒM[G?[$]յW 쭘":-LG6b?P`P$4I^C? ! \a( Ĩ`*j'uG?fOVTOYs bE'x * hd- \}"Gvl\qTפ5W #Ih(Y*z) [tTUS?gљ Kg1# {+˥P>gEkNm3A^@W:Z.Df.C[š{H̔@gKt&f4,k\ZԻv2ȴʼnUH,' R܀);묕_-x9[`fJ!xpCV>-DŽu6/Z88R wkALөgppʶzgNwP^ oZn <5țn1|s.?; d( yn,Ėm<C]pP9 |_'ŕVeQB ߮=ܑ,Y,Ȟ܂P[yy {{,k (\](3YIH[&66~dSR@v9<)hdsUr+@}C˜Odr:R~ \]m׮ 3Ud#> }-%>yE *UTɦ4ku}YYR!0PƗY;[sIm6p.]eNl`YۊU߼ifVKZQOZwVD)8Ḷ?ξmvm/ZjT,Z@O|^!WYD斺]\:Y $;%c\ Mr@B+5f2 Tb fyE=e Z,Ei{(`tMIZjГ z9S[;kV%Q_(vzȥ,s&Av'Dtm"Q-Vў]kvmh:pmhβ;)BQ_g!/kq`o'n.2{S?ĥ;pbwXrIMRIg.! ~@dߓu8mvO R4[˫Ϻ4m\cd8lwڣM /Wׁlhr*eه:Ƀ|k nmZDziˆ ʞҹ Np+as7մ5jzx9^UY† WY[غ|3/}΍'['[|['pջvU9@+p vwk{wvoRan-j:fc-W?锼kW-x^WYŮ`|kw`݄=b~n(h^yx'GyԙH{Wnަ[šُе^i^5OeCDZ_|لsX`mϻmTf-Bp imdq d]w\d/p_yos@7_ ^5`/Oՠ5Ic}b߮79tR@KEgWwȂ_G6}\]W@HїKI"sw6¤1邜_)ÁU MWh'ߚI1Bٿ#fz@;Ȃ{Ya-r/DknpLCVpƹIy˗?kU ;rls* iVn wiBt]BX+t-Sf?t*Sv+ m=>ǺYnQ62ɷ qnl3\'-=ܶи6gj2 5HS%fVeX_;{15 v0*%5CrwzhSt!ZGX_N7lXn*S t(Sf;֦JRIŸ +?bG;7J#,0O.!=x@{d΃5qHR4%A ?T5M Co P:de@?i'1RSD\K ̗! E;& v`p$,o$áDSt4Ӂ9grn0} D#x3݋7.,Xc@`tZA9 iL~țܽ ȣ<%P]cα_UEpИCQH2ԫpB }r/+M;wXƽbUjlH,`popf׊i12/6iҵxxѬ^w@X[n8c[1BZx8睧c]5̹B3kֻtxv=-,u|ʜǀ.ac%1amLdӤ vYdU԰OoS@vɴ0j ~~8A' enӁA%䩫UʢFn9pf3Ss5XnojWR̖;;.X+3d5mԠd<< 8%f`u>VD6̓K=ڸ2{TұpdO0[ӂ,ްvzP4HZԧKA6SX y.?'MSN ]pLH{>J* 0Z\6֨Y3cReJ31` ]D箞dTyL Ю'/<MyE`X, 渜}ਘ16_X$lj֨KlY"5wocF=P6EAv_^.xP Zi?TX "dT&dm Paz{\N}`' t@6U,| ^Ħ"9MQ1Yj\S@ H : ;,;O[bR:SrP@저싂LuI*9i;j-CFԪDuN4jUBBQ98dϵIhAvVl.I?4II ;WILrQCYt3'.+xS&6 lksl+u@fGZ f 2Z֓dW#΢V%R_&3J I8/DP { PG|ϱ)+!SM1H: l Hʒ'X UkZ !,vu#v,xk2r>Z$۔]y*Sld4k1kČF(N]`H6i SPpq~w9&M#ϻxK>b1Z `޷) [# kD8Ѝv(k`^,gƢ_1!XD_CGٲxDddѵ^Z_cpKlzPBZB@vPvK[][)F +9yʤ\0@6?^h%HC ەs!Bdwf S,d+yYl]]ᇴU KhbLAXlz hL`[wS7Vg€#YźHͦwລ}ipC_~晷vf_G3ypboU;w' xݩlEݴfGosZu;a\}֐]Nni9!q)-&-\Z&K+ɭ 6)mD}xPMO9;eF*''=X/jXش(0R'L:G uZ-x  $K.]:7}DǨ'e-zfwo޲ҥ`ل]ۅ3Sx) QCd rD,@|GLcF! YEk#{ :-W</mɬ@v+&쁡 ;Su SAv۠7 &frh{dV*3CT{+w 캬 ' eZi ;0M$dp[5rEL*_{38{-lݘ&?:NM0=׽;8[wznI;9l >U aWӆË& ~|\j[wثVcukw?uޤ{ ':|Sw5l9:L]ףkl`7_nǖzv;=ȳiIiC:͍f7_ngٻNU@v"zYI fz mXwy m`]:}H:?q>~rolnSol^gЧ=8קD}b$pXx&󬋁F~?% pHG B^^r',C %ی&Ŵ] Q;tnb#0DK mRϊU]bZ$ӦReC4ׁBr@?e}`pTGQH5x]Ok HMw\C;y*v=/t'hY|`hg] 7b RxG-X_eJٙ. |x|l.`/+3Q"kڋ_ Yg:jSˍlOy&q(-G^?Xz<*bϸR?I鷀q4 Uﳷr/,_ g~}&ƭ"~|&wM9?97 $JUpNgs$!lW+n?n(Jc`hG~IOU8(ऍhƐW6M5a@m9.S(Z6<WމO^wWY .W %[fJvY^y}w|P  ֌ɑ{,R1nS%ww0X:cosPoI=krS~H'_L?,ofNnp:̘5}3g̚v3fNÃq>cUzur ON?%SO8~|wSbM9c͜1%5wS|1fN=yt̙Sa]A@! ?{7}g͟>k O5} ϚQDZapMe=g;vwz,P=&)O쳟}=ÜG&RV?]=4pa̙j~Q>3~wG綸®o~h=Z1̵;ʰ~En^UZAM d|KfOLk.MV+KkXN_4L*E@nr (R@+:7Q3M>_S8y3&.5~\ L EVn~E ȾVtFW#29 )Ufuϋ_{_"]ebȦL_)Ӿџ2E}U=#&_k'KT/_]t>5ѐp-!L\w$tҥɮcX?.1o^uuǎd߼l; tgsG7pa- ¹8hslo}xg[A}c< I7'gX{͇c%pᜆ ԗClHVDM8f3gE&*_CfXl1ԕ2M+o zzex"<:.S"Ke)' N-;ș=hoQ{W2dѼz/Fϰ,1tU|7p7 kM =4cC/l,[.'!d/_uwpR]YGKg1 aM9/5eJ&DبUJҲpGru;STuO?Ҥg,)V2 09_v|T6K{wGJ2~ @VSKFB,hUE#$ژ}򰘙9u:ں"hʘHq`'C"/]rX>f)_x{=MXOCڟ^F 1IY+B*`] ,;@n1$}.pNm722$d ^W.AP:{ G%@cx@?yf#pIko6X-6E^*֥IObU-jS89:̈́ 0Q JvW)E tAN5 uɾZ*[`(n"c K(}@QqV44-/ [- Adv5}țVvUZ`T`}:]j֨nWez R=Ubo2jePZUhg몉 W0 ˒#~#s],KY L*Xob:7|^˶)@d3K&3mޒ^znP7 QUGV*Fib'V&o1U)S@vAV]E oS%dubR%4!dCmmv2N=`Z*g2Nي,C2^Gyl-("z) {uUwɗ qIy޴JXe.O?2ʬbbw'icw]]؎(vbw+*-`cba}z?@@Qg|w9w}{Zs_SI}ކM ρ,thHd3dW^\ %NYe ly=TPr )?"r`Y>5;Ydg,gl/;۪?"5[w\Ve c%=,$:uz?p.R;2w~D]yA{-<|BJ)@6LmL*ZͬYۓ"ZST my F%cK*dh(^ɬ@뢶endeP [/d+&n6k{M_ͽL Bm܉*K* l܉җ&O ;rh*0֧R̫ pF9$if; fBU:T' DkUp48jؤG?Z:Cs ݒqDʇS4 },@X{e d SBTw<3L}?=@G&4\dP^%T4#zj5Uua+`FU+^uemNlrIP$y-CԧK8mUiW<0 (EYL4Nh)Sr|z'2HӺRe%iL`@lO,+Y4MmsF5a*AsJu|Ri^i,&MXulrlayz56)lvXdh[uKULemQnȧcUv U&x\>m%úU ݘŮvJ~|R})M? h:CI.Na” rָ?<8ema1=JY/s2SQ>T;Dڶ՞::iYQ}Uw3hZcf_elczXY >[KF2dcA`4@`l/wexAŶwD1 &ڥu^d쏰zx,9hw: 8\uOcMȞMd{. gE}El}?dx .1 7dj< #Fe&Jnx /]rz3ȾT^o_O/@we 08{6<Μz 3poym^%7twur+.[w3'_qԍgNy<O'x' ;z[{xC+3>Qc{NNړz6F议t?syᤫAw'==O~x{{īg^vik63} /*R xYi 9wj !T[UȞ^{9_Ԡ)voU+M"~mr;z@T㜩=-JO2cUMJ;$r kF $ܬ5- -.Nv kʌ`^FTX\5K4*c˺9 ;d׼R [o.|`rIux] w\stpJ[S)hʶ+[߂gq^;J{\.`(^ fٿBij菦տsxǡrBծ1S.lA}"Hq8Xt0 W.eh< )#)x}nit]Yi/s%T:R|Εt{ V`̨5gtZd?CD͔V57(e?˴P MuQ -@P73!"L.q8g`8A@;K',{\"mOO`V6 =*!ttp:?EChJ%`w~a~~ N[W|Ĭ9/ MBOS_I'/`Ը-: òtVZ$ 5 w:e| (M{UGbHca,S`s*!ybuRhy#" Uj7Lx$ÁP r T?(n T$#Ek5{. 8[.%FǜoNAPut,ȞPK>m#qHd3.XmJ \?d d&-Ή?d*C4Tlv4p'+iFo3 dqP J5Zai00S8DZNR9?>+pFA}YK*U{MZ W.&[wOAVE ` @]+7KJD& )X/z^Zd_pIe0*ہYD|g˩8c6JfƂll,ѓ&n[l30AjLEUR;TͪEZQRJ0݆sq*kMsRax"Lhi@GYy$*U*Kdo6})~^d$i0XgC#Uk`P^գ?YL4[ɂl=4YnUNO@%'1r%'dd3 i FF!#U6 BgUQTGe#*",$`ٿDe Wڦ{ȑ`rD@ #qQ5V@@4q?J28  z 4 h8Ht:@Ο"ybt!<Ȣ".wAE?EKAft Ib828łEGf& 2ލM|dw c} /2$jOd `W ~/x0.^n>tO~j"P~g)sBYy"K`\G|8hdn' [7Fr A*]<*-q, 2tNHBI`KQ.H[& %Kԁ#:Į@r /U,\z= k)JguR#Ȟ@fIg7*1NyG݃.*Gj­plV᭚kml+e<` 4Kdh{ԇl d!V)a8j eej8K =̓D Ė.HX-"182 "gz4u6IXmr~Ft 0Zj׀Bpw b0 d&MirrrZtzf3-!;KS*0aV37*k9*v~gKz)q`z5i܀S= 5nrVZrtJjۈl*I/ɼg|})sܶ+|y^֥#zD01z/ 9d>t u_g#sf`_m{z!8_8[ `{gm9pԇf̜9s挩;<4}c^#c:Ͽg'M6ɵIӧM >7io?rjҴ铎^L0(u>4?50mʌ)}ʌɻ>u-nݮ~C2e_ ̩Ǽ@`ƴS'E,L1ubp'fk;.<}ڤD3]"i'y:qI7]G7ѣnM 3ɤbmdÊdjd dpL 3ɤɲ zѿdIs?'2:x&Z__j{Lնf %QBaϪs :} iJjTM`?xz6%ٕ~TC$#J`238Rޚ|]xXɗbmc/{d d [*7|㼙Lu$L @6sYOSTM2?C- xi`^=cFɣO9ϔ@| "Hak 3 n9*oMئtn9aG{4bFdYB[6rϞl-Tv1HyY5+ 3lwﭙHmET]p-}D *^Njw?&x=+?kz1OS ѩ#d+U^IR=_TQ.Z4tᚥ L!Xɕ$AWe\ol&ߖb&hߩѿ,Z^n8`Nni1 Urrɺ6#'Z[iN+J8J.vI5S疚{ O}r?W{Grx00]}k]lS% xS;-`Sz­Ro8ٚflND1J ~mErLI&7'7sd,XjD^@|6DWTaYmġ;xhncqJPZk C@, 3THꨖɡFg>` 4{ a:$ pS'ܸX^GBO55&|`Jj>הC6@/`*h7LP>H5 p()v(W De'<]ipfJ蒸~ Ԫ׼f{e2EhY!ar(SfW$ * I ;#{OZBBU `[3T`s.\39XmP/h<櫃JHo=Qo;i4/iSYV׀Z( 5S/!k`lKw3WV/YƖ)s`SO`QJG>+$X askx `|!o9r2 6~#(+/g~̏Y6ezl{gz b_H 1eVLfC4cir)dˌ wX P 4h-!@- C ӗb.> [ 4lZ\j`!+m Я"D s1Zu2h@`: c8u _52@/7+;gHϨ#aN{)q=Z!C yqhC@<pOaj_nw"6H1M3Ci|M 5]y`g?U jbL6R'iiz*:d $ނg #l|z)O@6N-be 3,,6gi '{-Qki-NUgY@OU+ܲZzwRRn&]SE厭}_o @j h K 2A_8Iq [eL,s^&Ă@0' [$dͽ%YM_I*>[ȢJG@cej4ѐdgS̀7; Bv3vBU[>xǂ1ջ1 wmI;eOLXxSL[8pW'˦鿤Q\?l#5=L@P vO>KG[ehRIi8(s`T^ TW&=6Su(1<^Kim l0?OS X5z@pX%(gC2+hz)Wg'v-Sq^yiSGp DtIH<&|x~Yex;|e_zXf20T8S'*6iF}/ł mdGAvU@(fdJ6u2kmw.+9@et?%z={ nEErؕS2pV1USRc}KM6iy61SٗJR=,T0T.e S-([4V{{*+yKr(e聩TnÈ'p8#/Y"_U\F$6"ŽnZHx<6 N&Ua5z0S6~U4*U@cMʼZu*Wc,e$XW*S[{F<۴mUs&KR7QRSSfؔEeϻ xZ]2OW5E:E!E- m'n=5^|m5oo9j{9n||W6o=q*9qS*y{7ޯ7^^/m\Od7מ |!- ۍ+\ݸ Vop$>0ةt"GA}M޷>nn\8a-=Ubny5Lk˱O]wo w) `F <bo8n׺ Aat}&}twTZ]Tx;yDjE>={ c "FcZc:Cx6BC⺱ñbRõHt= ~ׇD h]d4QD6xKFP.* EF!ЫlQGY8 8QfNK[XM%e~)s>kRV8p7S)`Wqmp %ss/*ҴLzsWNivЏ54C{J_NlUm)ֲ8XׁV`ۙZ5P(2&}S|~a 4h.XqAWYN>dby]"PO6polFcm+2DU;M&xㅦ X)gM <*@G)wz/4Ҿr 9z#3WͲ)EMu Nq-2'?Ǝ M6u`)Ȟ]<40tT k5pJW m>dm{-04W\NiSfW@[*Q8 +e/,JS@(!-{%ߴ> ̡?cO2,xfV !.LKpݏj!-Gǁy HU~Y&5B zTL je 6u8tSaOy'puh8,@oݕ RS @v]F~d^\cg ?2ӕWcM?2Yre)&=@gTyrdRh+>4< Hw` +LzZ~~Ur,NY:6&p,`PJ67`r9R-Av@e:Y%=Mx_S U讞ut^{>Hi)@%ULppMlJYwkd4}?9-e=F&L2]3&AH骔-e] ܑH5srt( `Lq@C2 +~r,[zEY,DI*U& RDZUveϩiмfNG Z& *T|'{AdA:#&ڍ85S pQI= f}&d/l $+]I̺Eq4~t q ӛh6+0rwcLcwN9Qq lrsss3;zӇ=]##~ Z0<K 2t,o.)@Z BTT&*8d7?pIdT>lu  NޜE=S[d,U&f4џ<| 2KςԵ4$JqC!V9&SbݥLZfAvha+ @@7 pW3d ]9і*`GH5}oS tW vc;43Nc/+x mZUXnl%ἪMvPh&@6 x,?e-Xv@fI. mXG^~CNuJ2;eq"z M{TzMqj5T`ָF%cl4Q7QЧ5eh@5y dMo|`ݧ5Z GKO`l$<AO>+ ԤFa2n`n)"6I8ȝBQ)uDB9RiEU8==` 4T8J'hߗ6{K[W: ,4YkI&}5Uy]Y+,)40So[fUv3֨kxR^Pa8λJUF;LoQ{ȬRsbUc\Br6n\əCYmUe&|+v͵ ^ O MJb&2 ڻwZ∦t󪕚J8<تv`6Tcެ c?஬l(6F[wVemSS$4m* ]` ݺ| dlqC,,5kݔj}KI]8e!I׫G]E9=#En-k7oy*6cʡ?%{j=cp-&`}1)׼Rr d&te7]CO~cG.rwC|k=]}xp8 wZ|p ;x~?ң]+8{ 8~E8rk.:~'?p؉#^D>ddfY lZu8wء ϣѕ &ynӸu댓#ae+o7]u>~]ch6} ;~{S_~8t@ǏzXqs2Q\@}]k_Qqo*)|YNWosYu@DWHܿIe8QA?y.ILjWBwE[^6YXx) d)eOax쾢r\VِdIL^g0ȁ$_]hq1&@gf?skTN_Pr9$ ~sҩZY;9~M^L ,QɯXV[*}.dew6.!L2컫̊#OMZ?/dJUձ1k҅_*WdW;NnvVUqYT?yKZj>,u*n}Sf+AvnaVlsCvpym;x1cOc\Xf:Lkaڦ[ESǎ!|jh{m[pFtm&ҮEB\7vCB8ݾm ͌B=88c&fES~9رcvuFÞv4v 82t Hߴj6V۾ܖ#8ѥL m':;FcOUގM6=zv1\/d dZ]u<:]_`iKs!沣|/]7-ewǫ%>4 ה3-7T6f~a8*  &L2 8mS̋)vAWD ]+4_4D55=OJ,{Y렖6(n!s[l?;9 ~Bɴ٩[xW T+96heuJ>˗/RaZpkuTc ͌ wsk:Kܚf6OfGYݢ,XUU1mVV-%,hwrU;ڵyfVr]ӕ34$> l&pb%g}h)cJBnUp'`2ъrR]hUW ^$)ʞ ,h%Y:@ֆl:(c`P@I>_)gL@5mfxCqYKĊ~ ,qѼS&nټqڗ<VʖO@ܓ )L=߸@@}>QE˗ow2'ޮ8g.E*7%?q*uCrP(ej';@G{,+ >2ĹiK$rAv @6G }U?ɱ$ZTl,K牟JuB'q Nv.#,<5ZT3JG*%QU]k<8|pfEB~K_R1*DL,dd"EB1/x:CKv[ bNZY<`mt2  `h/ M@L(tH:[v]"J \TCWYHoM_@{WE4)Cm@3bY''|N[׫1lS韁,RU$O}I@fA%IlD:dM _ٯP蠖XmEݢ>kaU}hCMbKn Yk *_`r^xApIJ9C Y\Z O6-,z#CZk>HEpL dʵd$tSpR5Uʃ6*BU݅͞%[w=!OFJ@lz˭ZE| Q 6W5פz ${xJa= ]e D٪]B28DZN a%%ݢxN J d$I|S!Y d,j60#E ib| lPgٱZ%u@d uo.eB*j~[{y VX\ͷw?h3u .mqZ8^;_z*˙U%8Hz6e) .Ϟ9 ^:׀U2Ov>Ѷ l\=WpU/{.;%;Z)u79&HRѶz:ڶ`3g;G~mm1]ŨtCg|a5:>l`amlsvΪz8dk`{Jv6?:#6;G?t ٟΌv'ͼ8ty^CcDm5wqW'7U[lX=jF @X ,]+2fwu=Y]=C06<|M$prWƙɩ?czh[ x |Fn5f!o>8㝃 ܀-cxL1”o4 @䚡sמ?tWu(W  r\/ Mr{oWȾZ.#`L9H9)ՕS¿gY;zQSh?^]r2`bm{#x-8Èj5p~ETp͠ "vl"u{3'':nOXe3g@ҩBMuzsx[iy`i~.JhgܝXd{xmvus&#|љeUS/Pm<{~NaR[]jީ|ZΤjFiƼp;[t|Cw_j\нx]}kbQN }rhΘ@=A%& :Z0E Jջ%4$LEO`,r 30K֦'pMSJ=T҄R'se ow-cKmn U=@ӂ6S- |S(LO$/ ,Wax҅][`~dQ_o;$smd-ŝsj&@_+gkK2 y_M,ȆW95r0d#m@,OC7^((nvD*k[816v`w(=vc؂-v݅ ]z?yuyf{^ d70[@7 Q h.T@a9z@E,4e6(YI)A&OjC@wSՙ?YM?;ݣir-d=5dGAܝ]OŃl,cl,\Zg6KY::]*ȪY;dVCaxw8:cdkղ;{P>)r -@]GН(oNh:@zZ!o Y[`Vʽb|yjKJh+LU dv OQL*~d*8~G%l`l8%vpImB* nnղ$ II+Y0TUh2tՉLrj~%*$J+pMF.Q{,Te#ŔG@fAZ=y#Ya<bC}  hCÁ/oPh`~{;O-wPH@0_Wb ࡗAu) w#1( ?;ީT#EDA܆;/4/D΄zׇt@`h` !ç~k۞Md~oPH@(|/KHпcO쩡-i ^f;W0̠D呡%9:K 2k6~ΠZaݪ :7y9ǭ̙=SPg{~\]Jn*c whi<}vM[A5XE|N06kʼnQߺO[Fg:~?+<9pu_2=|@n_O{UQB7HetC+#7Pqf~?|n7Mނ_P 4ө<20 Ȓnoз19)ŗ59ȂKI da1 uUjddj̜C%MM3\.g~lQIL)Cj;6:]PYp+U(jmJ6qd:RXxªt)dY8gUNeLaEsRӢ`x5c~5^ų{rV3ͼ fr#OnavGDBʲPt.*m)*:q-R*VI2>f"lK<6׫Zƴ6-Կck|8Cl.: W39@3˪Y7[<'t&)TMd2om 1sFKӲb7̛Ԛ@UZaC=2#޼@@Fs] lw&=z)އҹ&)2i6dzezU`ydEe7LTÃmJF;f)uYs}ygaohͽhjd2ӔhJ0rj T#h`d޿p& oT8Q򤑌rNlG޸d3Vnk@kpH 85 E@7C ~?[L4\p[}@CDq`ڜ,R:^ w5_r0~hiQDnWxuidV^IOP@ &Q`,'D+GHOJ-0" @MQoaG ]eTmU7 evji FTdU BTs#2۪MY 0% B=S-EVBvޡ`U. !dY"R:,MR?wXR̀2;dX-.]GDz-r/iW7I H0{NrG 2]({MUnU-7b <@ΨwWp>Ϧu3uA2g2 5M];--`LU@/ȆLwUڱmYgAuwto,5Ե^-с쐌xpdǫϞ&ok$YvAp;nrW vIdRWkU֙ɦwi/U5pC K Iq/?}x#2,9 뭢 'I@[klCU歴MWt [)=^x4TVj 3oǫϞDIM"ߙwثEߞɝu6kot9_\3R5C⠻IJ nP)7_Nj@&:BNw Ń KOYd>"SEA_wC5eOޛ)bKL 2\v>ޘT=j`Yi<3I^x,=+20YJOTkupNPz7ezN"i&:cp+e@ou4uI(!~ q6xsZ|/فş7.(pP+6Yk^ {FfR;0Gc_;)KUXĻ ioBd\2L5\7F_7&ǶHh1L}/ cQ틚/rNe뺠SK!FpjkjXL *Tk2†Ruۖb T3[Yk?N"E8L,%I/R;0AmgJMP11vd 4fQ?I]FΪ M5b*F[$97ͧ-,\m¿9T7dgd& Q#rޞV!ϭ'z ]M倓eaJKLU+Z?o7eLWX;2 x.6 :iZ|/ n#pB; Ҥ2{p岅=T2P C \Zb'@gRc%U7^v W$;S uoV;65[ZfUP^ҕK Z$AM@; oL_5 2b9427kW_g*neBsz@&@00Ħ- @q I>@5ʧt {m\vi-c2-+R\{._ 9ָDC"9#E9b(K.mpq^{Iƫ)\֭Y/ԼMV4W7dVA|@f-W,ұĎm_RY/n}@5sحwX@V]ULx*cu {YU%켊߄ q㸻REY?k%Q)*]kd>g32-PH>n@5|bgI:f7Td >2z"<% -G&Y ex$k/@6^Vj/V @ 9AƼP)\V]։@6AI 2(A3e;f+\Q1 nƕ5:͒߁.ZkdB>5̤'~</ ,2!5 n ܗe Yfqܥ;_:m$&.ATihq_!Qா+wEĖzm> CK 4qC˄~b㆖Z|bQb#u} Ddb? )1Xy¦?j.[^~/E5̠>e˧`(V[\dmhcɽ[UiK<&uΗ(-k]) ٳ_O\,-ۿ<ՃٲdJ+EY||E-dR9cgb:MA@Yz}2S_c쑅λ7Ag_c_U\ZO [6dghWޖp]87> {^ob{ h:w! QNJb_/'{>~BdD2n~$ Nø&։G1lY=$Qґ|@[w Cs){Eg}zho NT^ 3n1 x|s)К 2,AEx^5.V*6;i9PB߾МSDY*(mʙd vCsJ810ʻ͹rIafT-#U*`E!]3 Yxc%ψie$X]~=QQ<*W1z`wyUƕ+~r&LkȇM\E )JԨ+ sY/{d<(yj>3^hR(bD=zF N܊bY)z5F $QWUMGM!wd Obs1vUyUHֳYA6痮$Iư]ehN@u `;XԨ &ÁRCΩրuiL # hL|3[әrFmΏGHx&}I4ګDGe@NX-k[<](vWhu0 KHu`dP`Ts[]eZ^TOdybjpT6>u颈.^)L`qWeP]fH;}䤴pJVfwygZ$! o`X=" -O+; Bj^C{2 rDԘ Hh %Pt,F&@Iu `Cd90Uf;ogRX3ޛ h@E|;y TU:-qn m@ y>J &M1W] kkAXJM^Ɖ]o@p9-Ektex-N7LTrb0SUu {wMT C{2 m/ȟ <<R +V%RJ:k$Ԛ.IbQ/جlTSu &~k oRu x>O9ălTe.UMT P-cW'= ݛDq@fExY֪ZdJ"QO?Od>.wM[ 9͗dwUO88 (¦q Z%R=ZU`t trze$rgh_f%*#v|/mj{@c7YZ.+RJLT:Ŧ+T\4$O?1ȴt:&q'0Im8:o</W}AQ=ԥdf_ 2Z)v1' ˙#>½.uftN1w]|{ll^[= g`hmQLyX7 .\$w_~ ;T&V/tDid 3 !H2xnkK#ː!J?0K *Hj. 54uV u TY(KqLz~ԁ, 1vdzR%Ti(^)Aݴ7W-2iK\YSW1Noi6$囼o(&@6^@ pG8'Yd%`CC߄U2N@#Ȗp< ȘW,zk<M` U` LQuIvQ&*97x'큥joJ6~U,m[CLV:?bkd41s0Xn)|ΰV\ZJB$ ZmQ\ *YP]AW꺦I*d%ٹν%=83/ZS~}B>i8hGw4o: 62y@B _mz^u{YH9 $3 >Jk9kh*SI eWs,Cuxue0rC3RF1hNL/&]X4å'XV!yG!hw4Ç,RU Jrt2y Qt6$^HS!-MiMG|IU o@d2;H ,ód E} k0-(sls^w,Kf'\|Ԡ׍]ń,ΪDe]-AYo4~CY):by~ęyẉsAeöRhu43>P22]x}SVAex`Q 3fneh4` vWgA/ݕ$2y>R*i\ yeXqŲk8I3K܁2}AR3L56PivNsveE-6O7 v޴兯.Y=q=Kz,в։);#+O4w3&\;."_lt7orт)gy0y][6܁.7$׏[x~f .~,~tKoJ'שRSZ-Ƈ&M'^jV=85Lw߽y]|,)^b)Qݱt|# nT6`u#~} 4 m-zi=\{kg̶ _ryj1|xZE7*=aiÂ7|mWqsڹ]Z~\mQU߲eU4CSkT%9TجeM\B+UE PvC"jڰ?xL/gR4/1XJ~I}LMK,Yɦ  z@53fl9@PٟVW_?aO*nWiVg8p '2Tԁ^ oߣalz7xh-۞i_s fM8 `yK{2Mw>*{dJ Wr|T<Pl \sRa<5" *w7xi[oQZI R,i2v`[Y\z,KVOm`9{_\7ҳ I+`W[0Qƃle7ݜ93OydFld'0FXl.Z0:::A+ Mp7^9jdU7aFm@Xʭ-[j-_$ƨ_)<GSzBDڧj+xT \ |iGY?k0_R#«B.Ap?@tJuX8$W+I :X+=`<NIr@a<~HiV3$ $=@9q {aC< } X)`rΦנX!m^fXtS`:B 8 't[u (8G߃ZWOߖ~?e PǁTݣKy >MpQ(0I]g2x/6@tKPm2N,} GĤ~_LU{ /PA,UQH^[4UO`Vq*H*Xd.:@}lu05I1o$td)|Y ҶWyXKxxJNhA[V8ծWιpTZxF Coj[wQYWF Kt "v"dd:.ԕ G嘫o `F2@v(\iWF2HDdT)bqW3j RaUh e+ɣ_H<Ӂl'vq k#>~x %%MTţ_V.=Ggϛ=2|3nbܹN2pAH%L698OAF輼qJѹ챪 @!T qWU+j_ @!d 6[:Sk.Aq /??/MY]cA%A`i:d{F\ejNzTN0YY]YLLj-pL σ -h{d/`Jt-"yu([pi TojUdF %'ŲvEMҟY  2(nT4q8[_bW~}GS[ܛ|yYY  ÃlH;ҜUͺ)(M_o)k=!$7Rymjj?OK~N-qy{2I EU}8FȽ*Mz-Ŧ;9G_5~5{2[4OYتٟ|Z׊$j55RSjleKz%fz35xA?=GE_*KBceQ1gLxeȻ|gbڒa4'3-*FxI?{9FG*7dV:7XrC DPi`}_ph M.^Zv#mz±];V tvN-гnu9};v k>־OO޶e] bRAUEVL,djln47|['zkr/6>zIy{tV\P0koP_o_Mm];^vvbv3⒞״!lWތixko_{۞O-;Wxd׮ױ6}z~l׮eھhNrp@NIvv63}_(קvx&2 kE.qVo|1 2(jNI>+({'pj1^\k~}}kaٵut>78 Ξ׵ĕGܘ97wmEsqsur}DmD0]ry`ҵvn r*uwWl~ _srg&p-_s xs/W<Y-{Lx[6F]\n/6@Y"I3 ]; ~?@'®:ElBb.,Zt1v$ϜZAiXO~\%ؙqџ'ZvbG 3N6d؈eI#Q_UXsL.%?U?E707}Ω.ԕ@}Vud\S.Lu|7&|,(e98RGdvce8%35x>ڴ=0$oTݪnK֋Oe JdOdafw9_L9*feS`T}i3bĈ`a ם?Z&KǣM Փ*M舌x|py\`܁Yp::z4|K!ڶ5 v`dV&ق M ȴ: 0dPOpS[SV!,s,4hr h$w<{& -1 W~ 2] `qWSV=S2.~Uc41IJ܇ 8 4Ɓ\{I/XmA T6bGw0JY޿+zaa-XR8. ͆h(m|G7tpX-_֧>YI=?uF]˼1[Ve lU ̓1YhhR@d@AFQ_CM*T?@6+de6@@v^00dd,6ZX7=}Zb;iy 3ϔdi#̒mZnz)@Y(_ }m \ZSཔNdwe`BBO%.Xu)d%@zCJfiۺesiG0V\aLQ`Z1`d_.y׹ :?d8lN d@+x5 d.j>IK;m-xLUb<@>5 TlYeu}x6]c7vwaw':vw`cw v'! "XH4\qpb}\kS dq KOYxU&U Urpl&;AVUx5We2G/Չ΍'*W{V߾ϩ/ۼ-!&&RqlAFzSAƐuLOscJ )ll P=64s@3o-\r&ʧdF+i#!ظd8ϫJd^d+$cF)M=ݥeO| 8K# y$pNa1iMF' m, Q"!848A|Ee|^H :Rv{U0Zv=u_2ϯc27#Jh@]ҁ;TO|QMU~rhMfUuX;wUi||lI|psvR S3KigKS%;ר|]'UXT=e$_g+:I,] 阡׬6ѰKu[=Uum#[@ ;?けAeMN{yXUF60G/SIWUhւËbZiJ̭`RNI#VE'K+4}w:a 'xRA`WP[vTfu W(Uמ1zX7ߡ[Wcpj!DHUk_ZU նCh ^TϫZ:c!:ʽT^Q$js=xa78w}'N rOoճ@ӁzHkc?^?z0N,~=X7OG^~țZ8<{'ݙ[18ۇ^>\?tz u.hޙ'ڵv9a뛳D}J oੇ{$x=KԹ;Ǽ|mK,pb{?rǏ=.Ǽr5c^n?t#{ xz{Gy=t|ȝ //w/Nގt`C/Gn#oO7'Άv&?MѣO~(×^\L_/Oo/P1k*QgYMν3 fW^5ʿ^Z *z=TƠjd+sdˆ\EuSs2o&UΤ\+_a!MX%&Eݒ6mSk6m,RC !]M.&p*OdZ,r~lx W唹WT5.i-s?\XrW.U|p@qA V{`K#CM&y&9t:aFCyYI$ZJ/5Z%qG2ց쿦ϓzlmP>.&4^ՔdllfI~qT!ν<,[j!W[ne &Z=Rt}'(+ar# $oo6W?D{Zβ8YE0R lP5`S9[60QE:N7JٝRr@{{XҸ(fx [/_0z̈́]Ô?1^ vzw@QNBl0JV/ x_-MEht /)<FY4D}em֣=:ɗOTYG/kVUu {3WӪN-00STp-4"2UxI(pIH݃(cSvvr;IeWb`b z<Xo`lMlnh_=ӏh|H)Nv[3Ѳ2d;ĎĬ ҧtvpC-OZΖsHn2aDE@Hj;ed-Ť9WFnP~~z8]5* oP8e#Vy4)  2q\+Z1 O=~a_~W;a,*V;;ypL 2R5vcVtִe4N)3FCqMV%)u I_ù%I]*a2 I%Ed3@ |9rj^jPyȒ :I6=ѶWͩz|zU/9eSyy29gqH?8'[`(6i֤pVJz!X|dRjN$ +BYg4`^ 2zM^/͗vy&h7& l)F>sIC } ]SU6\*$l$m?%z]2TFC#RY5?yfRY*@Y@U9w_8!ҕ ~zoL9e3Z-S;9]ԩDՏHS.KBseVcu I'R,YW&e T`[ o@AVoZ1ZI8x*Mb 8Ȓ9 lSFy&Ȑ%ȖVfˌYfj ܁c<Çvckx~{(7SYGC@_fs22jv}? [l); (k+50K<4,j`-wற:T'QP bjF@N?i׍ mֵᨽIC*.pT'7b@1sN dje<jb9Wwm)<۝$ݚ8玒}wJ Pwt*z.M}:Z@L'JooWU|/L6kUI ]ɳrZ}IzyGv+ WsFڍc]ͮ3R5_R%Ja}1%\IdF˝h2>sk#^^LUصggm1 R jɧD4"_<'CSp:lVv6ې[ KQJð/}Y Qv 3aa}gtWuZTg:&{'ĵQmZC6;žu.̟|,έݸ~Uě6qJEwڴGۙaMׯv[qZ⷏_˺IW`rǖZU7zz5wؽnӺmMj)y4yI(D2_Cmdv많n\:bNޝtglgϝ9wGN x{w^LY mRs9f5)-.f{"WoشnCتmm=&鶷8#}ڵ& W hNri|6k2 :f\>Zwğ\_2Hd:@N}/d3چ<ցL' +.T'~_)\߹tskt =ǃܺػ~>%ΕS˛u|+pX^$p3.sAIW-Rrk{od$i2QfgT}>sƴkӆ.8K ս0m9BwלS#T;Vד.6#(N1[xv}"O%`yc fm?;2n29n^ll){9;I~^;Nko];9ll63=ΓMl]Ml&NxjVnn;[aq)XM}pbL/J'4qp- ʵAQkׂK+זuSd_h=ۧJۗؼ=qk},+!w5%n\&u~ӦS{op!Sco6p^N.  3|qz |Ǧ6'}.9`ԄR$x&1_[ɫH- KlN}&soOu =%Ƶʧe(\+fQu8{˅}}#fmgmة?ˆ9sac[iWyΞ甒OJ'4-mc`t $l _NYWi2>[֬ 0U݀`솿<,WwU@(㡬g D㑟 `wKVz7HfCd VTc5R0]/rЏ1`zd@ cm6͐)L[0P}d VUH^i}d3@( Ca R)D{ IQr~~duř`-砱d ͨj _o~:i׎}2`ޜ3mݒ ^AFC-$K~{dwW5:ysfϜT$0GKY@~).HQ_Y͞9'2<j͊O@oRp\Y3V'3sbH-=)*!)j͟k7{]xROlC17쑳o8ovhx'<{*GLabSdmŗ`션yi} d䶈IdeOfmγeM&v)$F; dN edRz5 k#0 A6"OpdA/!3ΚI< otGwU%ސ_bzͯ:3\͎ HȏS>iYU3h%F+/≙*VUۿ )lM dYլ M[t{]Vd 0OR{d(&Hi&a(TY>gk g֔[GCN9s]V6~@ 1-EuOY0=D i/`'1jӟ8Z%5JD39?;.i}FN `&bwu:j7PM]*ou` 7Rc` PVYD:=1b譖C|uj.ϐ#Q__ܽi\K6#uI# $6] r]/PgKS[ioaj5mToC 4wXJsA".tIGx E+x eh<ܐk#W715hmt CYBŹtoeulTl'40bVwz{vxUX{V^ z_x}hihuvi=wVޅKWe\%SclO-3\Glk Iy{W(xn_Yrs s;q>x8}.gˡxid'c wiAfwVn1^o}2]B(v+8mj?PK|wƩSh33n`l݃`X]䂰0@JG%ԤS|ݍS7R=;'g 61q|z_t[UV݌]&F`$OD\[Pj>82%[k}wvhCW%i`驋lTVPtC[f@3}XJ?j([K ue #@v3>_$LVreYpe㍒sR>TR/^C~<*LV3;K'UxORn(cKtZ8o$?32ʆ%X!VO704ZlYW5`YEUJRsyUGRAmQԦL#E[mN4L6G/;tA:]*[`E@S]r[xhH9 `TsdH ;.GP~OzvFwn [> z Q#a'@Sk828Lj~ 8se 4ZBh?!rxmdc &exTP7/\f~L ٔ@!^Ѥ*N-Ev [F'd^2x#݁j4BIla 7*ZQ pT+@-j[=j"<5ɰ,2M7jPMWu6nԠ-):upQc,/@5X 6nԠcJ Y 0K]Jr(SƜU'<-€̀>2Ct͚X5l"ET1Fu͚X5 VoĪa@6 8% ݲAf]^V$&Aؠ 4Z>*K9A^-r'4@X7q %m$S]Cs?GXYItiϔKI@6AZs`~ dS٬dM%,O<d>V r>G&heɝ83q]N1ݩٷx?DEGwu9d察2k)TW',Z?stR9Ko C V("R?N\U2tX9-2 MU`$"VFH<ڋ'P$'EIInP&ydf@ld!`'2X.zyd0T @ud3@ (9d&ݠ$S[`: %dW"bJ|0QΟW NȟNYGd$r:GاV.Ou2%2% ,C 6MT i_`сL'pH//LG0O6r>6" q=ahz13j̕/xAQ BhϦ@XD'cS**_`dK %Q+ÀhrgWx;2fPpBuzN|'AE<) /Ir#.2HqWGTgʻ|+`Z LPے2 *dxG421uM2to2 Twu,nZ$[N !f**SizXTU2g^?o7iеHw${iNbZӥoӨv;詪יQ]JLg[\@Y*ssUv8ZEN(㏕Q}?/*޿Nw#-iQASURo iD/KD')Y{6U~IWl` gX$̖PiF2ϲ*LF,R]m#R ب,Y;]f~v{>]{HkߐR2|mv\&['WW9^zItCOgx.n.`q24<}x .n.y{/~{c4c'^::ÿdjt?#_'t߫\W :ӿ[-Yg o|q^G?toWNJ+U dv)cjҷuokSǶ~[vRԁk]~U'uӻN dSSbpsW6l"¡@-o&A:$nRh+;Q"2>t b^}p/%S9f[d1[~Kǜ9S/s_m4JRU?qt s+/7)[^u_P[ytGk~[~ 7d?EWx@k_ n~J-o/Jԫ50mZPVQJz:yAdR^ukPN-bۆ}ܢB@UóIzĦY^9t[eoq.烎u-[loj׹j9 pUBu_N:iyCxɱ`m 7?Cp 7:r}?||y^` 'OXV9 'Gb%~VcfcѺU=2áf/Z_7^sN縁GLID@J nVUd <ν_y?[@pDa%3Z6t}Wo͟e_/&bːvzH-ybO2y׼l).>͹:Cesy+  ؝%\m|H }g#Ƨ@NMPw+Iҹ ?x8(q# D6V¯JKOJ'4$"ẬܽfNMj{6~qLb$SjpUMH`Zzʁ[r`T  Q61g*,P2=Ne4 ; SӁݒ%@pUz җe/LOU/x,~S`U}V @p$-r=Qӵh9]Aھ(q ]{H9Z6F5m2jؑY; \NVf5x8x,]!\u4vdq9h%zwIe2gM2FdD (`@e58(5eUW۬;,dpt2#E{K=b~t٧p>2Z5 RY#MQa#.|C͡i̤{%«.EC_oݩ#w^;9P*^2\5UکVi9-^X07씚 dR|C$lLKrIff=B}AvD'j@6Y{qE,% <,>alvk?!- &'c~n~&\p׿s&^[F| C_GA;;&UEeOkQOY\Ȗ:I0NIx_XAvKy~%͓!d4M -3_jE-:GԊ;wMܴoO `f*u'Iw;:|gk]U[s2@:/8D5 _<)1 Z#=9") ?YE9l Vi+W[ AԅخyCo I#*`h~]400)y!܆*j4C[d-*%a,s~?NYATnK0 @czM(f!W D5(>˘}&zjW3eVUʹG|2UMZ&۳D|-W#5WYUX< ]s51J-&V 2wp Xծ-ݚ{+6aʖa>`D\/zIXN ) k;iȵhYܐ;q7KI͆؝ vm6FtR+#c|=FpDyQ&o7g>z%.7$ymF^9f}L\WiT;zoh$>l%zSD0V[،\M.h>M lot;wmU2ɼyo_M}[;U.Hk[[*_= Ԩ+]IaR_&C5VL$C=Id{Vx1d jֲ FZZN P 8вp%qπ /pKqj h6)e_ ?6C3č/3&)ѫCSms~RMIj;m!2& gt|<dǦNNFĶ(t_}?h qwۭ l6MDK'.+tؾ:\:drá\6CNSa^eJ*ycgK'yZY@6}c nDKǨ9#)ȞP3:K+W%>ɕseĒ;vWsݰJ@X˶O݋f~{ ?nO>9T}W.KYںes~߅35e↶eL P-~v>u<;ITF*yngkvfa9'5j;,-z{AH-Ȟ^r4goW%D2~;Y[ ƩZajtǀPOUKɰK{pDXR^x=1r(Xg v)yײHFrUwBU[乗0g/y2\g8' .S5. Fk<.DtI аP ǀ=ĤdO;/j73V[2zB b<Ҝ(ןL_{\ޑ2Eƥb2({F򟊌@W:<~zEV$Ȉ4ihJ+",*E.]ܨ_Rd7,Hd4|Uqb̭LdGZd4" VGEr5c'3 [W_*+2hfj& 44f \NN6(k 0D]jU3Cu@9 f12%zZU(iDAMu0 MdHf'ܹ5讎AEK p8eXoR$޽h,ID~^jP{0gX6Ay4ַCc4ѿjT$r 5pBMBTmj@1^6ES&5ihıͤJMj+cPU4S;ഹ٪m*nU͍z!|zF.(үW9ƼhJ]7O\4ۖ_/pTO "dUesteX!pEG%|񵤋w-JBE9H0k.kaC]TX`nޏ n,`s.eApB?W@auNrqWc:#UʟE/׷YlcV|.s;uGk"ЈǥP6%GS%gSB-^A+k'~Niӌ%̒ s[[ =U極* $uMy&]Y:(<W+ТDw:^Uij?MxXŶyE;?}Lۿ0[sβژ~$pYS`^zk"+3X[Ub~Zk21[?:engXQRUU01,lF&X+ QhM&a Bd<[{̈́?ByO܇  yaˉ~.@w P}.!l1*F6Q>%V:|rʒ{ZrWOY K:M"ѪA#W+??¥q|ğn:I];ܾ2OOS4 ~fV?Y2 N򯥿%.hh"߉3LJO"kk$}w0ы,lҟhDCA8E>7=p`b%5C=7. !dž1xcyo+z%z/qQda7t= D{F>I '/ xnGD$C6<3,09C&ؒ wVt<Òg:Dih"3Mde^4lk"j3.Hc '= dw/S+7k.B aMD5T\崫b5x\f#v|rvVt@e+6(VTYKݭQuVKS'[ɾ g`z|cjL/t#rʗ֕ƶ*KB^zM[w {<sb}lbgV44)JtW ȯ|@d#.gn)ki6 Ȉ\+~*:zߏ謶jQd !mO6k-}ZcB(ey/ EV MPU#ac )kɩbnkdL9O;>8FU݌Yx|(2YZfs01$n`"[(S lm^$dW(Hd>t߃"pq"Ke?GO3KIEvMjK>ih"[@dX$ 4 2]rD6حIE} {F_[8 +Ahss8$9Å[FvTՋ;J;Ty.HQv^ˬ G%q#lX,U?uaҫ^\)\kᛯLzejÁO1M;t~@iz.yy LܸR},~-ԤO:?Ym_Tݖ4$RЛiRjYA?'6ɜ|!.l:c]N1i3tCFk|sA  fNt3Գ=iڌ),:cBNnCNK"o+O}J}9.S|uTQ)3fL޷o铯pmDe7{)v|sA3uSaIplP-t~‘1]y[0S 1^7n߀m.}`@\'Ϙ>3M ?5yƴ-7h(ǺQ%4 + y {-6;-}! R^'X^+XVNiV571 }d-/g)ϧа LH~^TO-f+Þj]ma}Z 7Mv5qv4i"D'x4=]hQj;[ @qiR&p.%2ΩEϊyQQ?DW" ¬AȜUGWQ0E~U:iJa\]\Xd>%{#z3ZCƱa#Jq";r"_ *ޚ4la߁{;1?_}E&E6R_aDLI`6`DVi/44i38(uB-+k c'7 Ǐț2Oo/hyLCE[3㬪 ITScc B`a[ƽw7ά*ʻsC+m,&2 1mssG7hޯq6y,[kթ1:p^N̴wP\gEu"hr~+e&2 ?KViyLfp-44iмeƏ*/{hq? "sU%׼NUQlR_X4+~[X-3]M~ӊ&?url*mj{*}AϺXwǗ5Z߻&Ld_Η re,QV"Ȣolv p[w!gܶ,YоWD Od0ڭn]u5ݣ-@q7b.г;}{~tw{( [n >qCv E;w|>8=;=Gm9^.nE[[yۋ}{?yr)@ąS0_^< ϯz oyݷt⇧GwgL+@ `1]ʑ&ĬVMV<7$ٍW4%ܭr£Fp3 :^Ӓ'jќEZԸtyޱ͚V\!Z&{>;ci.iUbI2Otp(ZAD -M(Vj DZbSeNB`!(dz);:ޒw R7(( jhz ]m@Uv<>7{QG@HƮb E1x ܄ɲB#!ئ! N XVNtcuQ=VQI p?Y-'{ѫB4Jo PH5U ؤ toS-IدcUPMJ"{873\.fu0]*σR̙ &?7KB@p@\:l},1T'HLBNQK0b[Ƌj lUu@ 1y_)ܐ~Y9  3@*&WfxAlAXfvzZdl S`^^ ,Vap^6qyHgE կz\x0`&Q`}5R ּz`6r2$ ؤ*Ț>kjh"Kk $)pP-3F$Fjp@-[f|wTPW\MrH' .xrE 2Dd4w[Sf% T ೭i7=Pv*\t760Q)_hDv :0Rv[Hpw0`'Ah*Lx\Kzjl̐S@$8ɵB{RC٧DfV'*1]0L+jeEiam/2xe_u ^}BduDV$ ť+qk4qtuuODvIe20YmAku+ SGh$n2^6 lϦR954SPiWq"c^jɲW+G>.jFRE~LdJ?65]AtRsgYXi_rț,o.C2a7P2iaS0D|=8.'~ՔD"v~Ld  f#U juDOzHZNIMdδ$ MdI:P8E*q"˔ Cve0¥3jYiL#^aY8ui]GG3#2(cW2^6,TO-1F':1*5+$;^:sUXdJ0!$+RCU #X;P @}+)U`: X,{ *PWEYR$ Md@l~SNdw}D~:/aZT5T`sX*-uxƾ]` 8*GMBp%updKp_j8*8aM0"?I~$=@*V!tb2,&GlNOrҤ &õnQ` 68OD8`r XAaQwkFsd.lY@9bk/\ e*qS3ujl`F2 PV.-DX¤UR_p%c2)*Jae`j pƮڊ\V>Du_:6"L단QDe_**کT]hg>bvJ]<\MFGV9)#aM މ޲cK\]Vvm]36x`U ݅fFUVH rj66*>=hz)Rn8kSlR72HgZ(4L=}HKW{\T?kIC\q>y?qM}t7~vmUK#A^{8跸4댓]p>U.r,:%bbvt9q4.';qmǏw>ywO?\v1ꃦK]#{.' `\[>]b-9sXu8"8zH$^'#+>_^_ a!KW'->h舋r= ;6_4pA]N\w8r&pfs$[ EN@$nI u9|W;yhp'=ztĉc\9bM¤i'W}?A{c ~_ b'v|V44}Wkm& ߚo"&؅heACw%*2Q&Ќ* &1^~ J&1ʪN[1/&ֻi)%WjƏ- 7[$iƵ_aӺՁڭcLCCCC&2 Md44444ihhh"DLCCCC&2 Md44444ihhh"oam+{%i-;mtb6lݹ}{-5ih| ܇Sf²Y$OLR":9F~MdOuJbHl A'LNiYLC[3{%@D>hXC-5ih|;EJ (*s͸CxMdqb^' f" N3n %rبqcGNҽD7tcl_ F;~G퀍7ry$1G2ۖ i NDRìF=9w6vܨ 3nj""|.wo.Q7:l'U|_!uS,՜3T9@~)u"muJ287XJ'~rQH?t32|>&&[>ɋ]1 +)v`fHk]E7=L=ZXde45 \Q&V^h.G!0kR* X*>H 8kF)/p7Y0 pGs%KmiknL%y,{?W[j~S37 zLdg".gBupm6`\fyA^dLP[-`%ER \@_/-WmeZ%0Q)TJ؏*sYٲ&pvޯ׾qrˇbqΥ A3suERDT~dLvSpuYjee Ջ;xVjYVz O^{e`L0M<]f.d-2V`_M5>*Qѿ͂JMn'9kw 'g3>|r*WCK-D3vK6 Q%*:"tiyrTm5q\jUFc"Q D'K J/L٢~>jd:KNJvV*iBth7&CH^cUYI"Box/j3. ^fSLeFd6e PƬ^ڂ: }b}hMJCTqwz&jخf}TJx%R&#\Uz*L ")دS[}z{U"{G"R&q797T6)TàŪi6Qd쐴~LxDrPN3I~5֩?+R 8.9: LUOF Y@=az0-v)_x{Hn൴<$Xfu@T&7'x rY&&%8וrx!=E-hDsX!Tu   V@˷mad5Ḭ}rnL,&:ӤP M ___i*fJZE`'kV~׎ L$kٜfb%`Ho?\Zenh'c tђfQdQ`Uop0D=<cha M"`[~F*w*DபFC#K<Hdm޴I 6Ӹ{1\Z+W|REv(Nx'LRG%uWc'7r"-E2d.`Uƫ:͚4jXƧET?B HQP*-J~E?,.U)k;t ۨ~[FOEO 6Y>o K)Gfy$5 HJj'Q~@'RW(d P49OO@0ÔD(@eg8#reu YBD?xB#2 RQC_"R(NV5 ^`|l*ʤOEx?GDZ]6n) S =R Cq… ~&˅EM ԏ8 v} #<w'n)1wps|w[z<{I_H}x.\;n=.F'<V`?|( Md }d.&LW'#g2_v954dWO_A8[gR~\">s%R Md4444ihhhh"D?ClP}- {UDijVVRͽ\(l/7_aΐEz>Er&2mbv2[y ^ƲO:ҟ2u{3Q@ïƶ0Zj"W9龯1뤁?p B$7%ȷظl%K2M'KJ;0go?WJp3'SQt6WK$FD,~iϷ__H4ʈwȃYU"J-7Eo_[ۋLNpRMzMWN@c0xxWEѿ3+(fS7-ϋ=/\G}? >@xk "6:/O!1@<4GtBy<5oE?t TT&|_u7̾4 P5T&x`fG<< S?zb'a8=RӀ]/܏}qsE:Md߆5ۮ~őW-Yk;p^@Liq˾`1r-i`/;U_y|W[zE;xYɬBόUA&LnS) #ĞX h$- N_3//A(s,EN ?BeLswc٢"]*4;^dw+y5)r,O]ެ3m$չTyw&luh10gXX_xLnҒ-b41M V)],r)ѫiʉ6(y<+XbfF3bL#r.b/GEs8\O#ɣ] oZhj2L*y]L̈́IV2fkRX&\Jn3KoNª"- jc38_vk"&S[dqw_XHx E"k"kY*"m#Og^Swyڤ@5HIxmW`='PPe+c^ј5R޵evݣL̕`ƉM, ;RyߧSZ3CpSCjnt3].|͡\&4O_ly2iEwT^Y|!tHR܇۬_i5 `8+eD֓K a5`C8oRb*;+"WLk",Rn/1= ?Z+Ȝ^ &e(WuΛڪP]9m%ŲM~6}8Pu@Eml"LDCPb~7LDvBviR$钿:l,( }CE Dyl?)w=u2Y @j/}j5=u"6vvRYNi^= Bx7E'^TIMdYbfQ, M;oeu]zܸ ^ӽfM),C3*cF%Єa |8E/;Vx^6 8 <8h!M;l.,j6vs6k;ng+sjDZ"{gbV7y?2ʬi".l k[l.DA@:~893<w]Zk qitagi=\IІ*iAvfT^ǒtx`Px}>z-p=24q^sC;k'J{>EtQ+6e Ʌd߼A Cx=X.Mh:!S{qwdEhIMlrʟYwmvrzR|bF71@I[\yZ- ț2 TZ}HQVdm|6.6^ǁ Iy&)٥e~ADyfp*rGC53Qrcb2jE*N&M%s2 ۫' Q\: Զ`+ٍBb+W6Ⱦi/}jv`gyj 'H=+}Kbj1$QyO/|*T)/;,qt:ǫ.c71^nd0Цw?TTD&D㞳_D/eV{G/ƪ8\#v'92u=(VZ}ż|X&ȺaF9rQ1y±*}plТM>9S5d،rnqZ{,;|~<+:F \Ƚb|z=L_wF E@SM Ta XKDζ9%W\UA6E6CŅ=c͵g]M݃j*0Rd v==WMM ]Y]t ôYy=e̘1c_@=eh] @42i;*:&NTHY&5L \59,-@'yexd p&xYteV5ɬP<^[ҕw-cj]۳toFfY[ !CЄAZT6 gTpR& "mR]6b@ՈQZgz2.dZ&Y=`ZF%YKuxzrHNorƪ9cX1e6 YǤL$dTo T^v',َTո_U|z]r&UkvJٸ w: D=KTjpD6| Qr-/u@mSz#7VsfϜ>uv$E>Z͗gΘ6^ ȷ eG`]+uƛā*EWI ,dGj+Þ\we왻`B>k^\7_^BXh-4Uq|.6@K@ApQFP/O4n`R$ Tظ)o ?=@| R$s T扉k W~ M;!DH ;vOg\o>| 7c R0~[IP8=ZOr/PM[U4YlJSQ0#u^ 3S-~WM!@dӳj5 ! HgK^zbC*7>,!IYx4$׶Y}`XV؋͑QPU^+swsR8*6iT7> 'L<@ShN] 5NR^G]hHTyM!4U8i*W+zYLhmٿ d/rX%mF9E03Yr'!f|feleR 55r2?nl3]:CG-ͻ,*)zoyP.}/ފ]vKZY|{<[ᎅnW23-YXn3Y7+Z)saY.;^|~IEF?V Sҫw e6q%Fڿx&5BE-.Ȑ#/6o#F f/Ww*kÏNsEB AB:/?S=C=G/Z!udٯq*h=cMڝ߼f^Jlxu 2QXxTDH:ńFF^ 3 2 22 22 5 =c"^7ٸbȯU 2(Asҍ3vQE[7Y_}c=rT_52ɕ|GL)=e:p4ON(QU=諶*︐{2*ܓ+~9\$>z2 u׼k/b6"6xdH݌!K3vЛ]ڿBf|F-:$.1aAcboNR/NMOtch9Gus_I w:7|cOrL7 d]LSLT CX;;f`fAr[S~L5L”W=R;p9aZvj_Sdο* OTz \1 JW3d 㹚${ |sZkygُC~qi&N.g*U;ؘ_RgNrǍPҦE4\N;Dȹ}< jO@|9A/̪!TF}i{1ퟟdoF˖z&)$Žk6= / O^DxGsu\w[ߎT^dSx}Q[CWp 9~SE=v+wuݳM;?Y} 3jϺo|lVSy1&y- ;7 E ~NO`K‚U S.$<~ RF-7i ݁r&rxsf^J w8w[<ڦw<(:唖G'9 Vd'V>z(=E*54JNRR}Zbʜ\59Qr<2v /W&bwfhn ulsog//%: Ԯcmp*9 VyF27y~[z̾ &zeFRWgc *4*GYUHeKSӕlHM˲bl`c++R uY+q/Vqe*QrIˎ dҘ&JHjJ`.?I@v,mzS55!هUNJO`aؗJeus[Xoת/|J?B=0d^ (bV.w !@-܇ b? 2hR2No 1O `s5 }Jzb§B @8 %0x|*=?X w,:LtFDU}AK-Od~ĜQ1VE(.nVɊՍ3kb"|tŁ2(t@1/ DJ8~.hݙܺ kcoQC&FfH(P` d;> P[V#׀e{O4*YUMU\}lUÁ;2km5AYhO`f=lj3uxα%Mhd4j/[\<<6ҦKݜq j4水vz>0YAA8TGUq&j> S}ٽjf=lW-WSo9x z/30I&Ue%{͚k^t^QU]k䮹_dVt=ljuK>7 T;`MdLmj>fm}SZTł+}*u˴zl!qǜrI!uʴ9s^Cj¡zHZ&w>r?oD$_ιhg>_5P#ih)h!cJ惼*\RoVaѳJ7ot8 \Fp5)dӜ&*D;1;Q^/~?G2lPkj5|1Ml\7NGKʊzNTw'oV{ʺ6JUk6Y?Ń@AuQ-KQ,E ཱུ~2>3g[\O7Wd-H&yuFSQ A,*<_T@SYp_j$6 d;Hɀ6U5Zg Iy<>H  0-z,@.Ĥ,%GlPW4IƵ%`򦍆PT 2 ҇tf1]{kMWX[8d f| GUJ_,8|P+~N&a4iZ$`KX/z]4_$#Eد(5@SR>J. u^|>D 9龐[>dJXwɏ uR4Ęd dCd[<ȶ`U' Td@6RmحN}daFvcCU4%~de:z}Rm`L>mVviSj*ZfN +rzN EsR"=T<Ɂ1@C ȢnezB:mnjɲ<i4vĐzI7n԰^پj9#;}Ė85ce ־ۥCJJ2l Z@jS2@/ pw@]#M^E7opmC&l U4M5 (eP xhdVOݏwN-MUo݆j|o}md?d)~d5kK|b!T4mJo :e1xnG2I\vEs28!#a!z,Jmد,PƺGR4 Run (` RIR߁&K-ZXCUQ .Ko`Iw<=nYl@;1@6U`tS:-|PAeZ k?۟UJ,$d0xdS'laFe=Μ:y (AD˭&d#QFim`e,9{ԉczymjɝjhOYp.r>7լ)r ./Z2\dHdDhO>*ѪIX[RΗЀ5 wJ ܑz@_^U ύIFe*]č:0 M !IX1_ln;JOD2@mK4./ 6U[U&@_XbS~b8z@L땬1cTHv2̽ KaEv#7t PF!&[ lNmYTE?V|fdLq YE*69f?wZ6ӪK'TwC𡗚qAU=)ڪ[kˈ(H:==SM@1ZoN٪cH~5eh˫ܨSeP^t]H 6{qHNYuTs\Y=w=M*_e\ZkOA6.waWN@uENus.8=[ɹ 4_OJoz! T=u#niР;殞7DQA˛ YɹcԗgGv#7֬ f5Z:9;984I;P@WMQ#i7j-6NZ5:9;9zm݉ iнN'u89~^Kd|Xd!&F"|;כzh;,3?Cn/;]SsNu7t Y~VD|i\K(SFO uiw25s;{_-]z 1tKNǡiG˼#%ofPbՠAZc|\/N{SqWҎX3Q[w\[1ex T_'5 #wݻ_2<OTܠ#medA A/.wԊ5\] 3迢eoWu)i_ 52 2  2 3 3 2 tLo+ǜO*ܯr_=0̠*3.p@9 v4 o3j'jk \svi=~|?~plz4)\h{:+6d7tCd3Mycof [snEs`ȂOo8onYک15xtzf^-9/ ץ ܟ= nmCPڼy''vj?s]s/bWל9-;Kơ_Ůy Qjç՞O1V}՗~ 7`J88uv |vŒ ^:~mUcp12Xo)F@OJSBڛzqj@_ u,#5$Cd~KdWܯA-+*=VYYd-rs(}K9%@YrX;ctǃlk: 5;E514T΁ My {e9N%,Ma oeu^)`xv+]RU'y epSzs5.b`Rzˣ؅Ala jpRj)@}g y߾}qsj0C/ݳ&e0f\1L) ׷H:ow!?O}ᑌO]Pc*x(p`qI}r8W&Ytg. p_UYmEcHo3Tuu 诞@@] MHBn\-,P.;Ǫ7pMO,t6 Le( [p]FO/M pR RS~%9?S5IΝnvf.T{am%3.ٳfѼ-`aȴ"bi,V(N;vJ)6;kˣi2-ʿMe{@v2E޼s_U[t̝M玙$-zwOE/TkN3ܳi]nUѐ--zY1v& Ni>*4>>Yt'FӏEF['hd iN#d !?릉[I;`X @6t(AasjI֔0.Rm_Q nx`Z%67 &4{5MR{i3<Jd+e- &MB$z ۫ƃhWTZ3Ml$u2|%XM&v7C*$ ۠McȮku<A6O$ s%:}:A'9Rv'ʄB@yE "#}ϭL N< 'd#< (i p0\T%Ǥ?0s<6 ekY G 1mo6qOY4PPFvU~d{"P4*oLSR J'ǁOdjYL2EV$!FrFI(`ZBVhVwFvi tcd(Rƪ Ǵ_q2dh E%Zry P>@d&YcUZ&&P"@Oy8WBUcG$A@ai[X* "YrX)nQUVѳ8_*f8-mЀo_u/@&< <3ɴ>i?W`oGiQz~.RS<5dE`: w&zIU Z +@E70PT=^ɀM!HD%Ns`;R#*4U`2n|RM'pU M4} gvۂ-{`z ;pV: hlSˀej;0S%f^l1(d^j4আA;yUG#y⶝Kdpx}7 اIk4{h~PSUYzFeUw"BrYӖz ƨ_EvqhY]X' eZȢhOf&  ObIj?N;}N |"BCzDUBU#Guҵ֝"M` KdaU$Gڇw Y5 ϬҮԗDeJfU{;~葃 :&B;Hݨ(ʛ>E62BJtVbQ'ѐJq}$d}{9`%&zrZBL8eBroim)֦x ls[*OW q~P@T{h8V+wɁ죙3 =N5 [!n P?: e!ȼ׊ ! udэ >%RYl6ZdEUo~<Ȇi?G8U{q[/u]8Z'Ȥ$ aRFr[:*j %]yUb݋LDRvHX2s `2i>z2Ǵb(ݤL! l1-=!XpYZ^CCC"5ґyK dqWE,R ϭYy-:w3, 䒥?-dU5-2"d\ 1jMULTydIqkS҄j*dct@IY8K$rnGd3Kuؑ)gPlHrVKmEj  i2DůW-$sS^ SB`C$xOG1 D__P>@"!JH$1^mWLb#f?_B&pԓB=Ki<@B3])IP$!DS}g\8j`DU<īP(!|IH 1eɊy A(P)JERyML}ko(V~ک#7/mlw>l~$BB֢mre8O ;iɎϾ1W9NI_ ?mS <߲ NK+_^v Ί~W)H=,&5e)bf_08? WGg~ 'ԙ> UD>pݶߒvk[;;['vv/1uz ^:|4tgs3xwllf[0|9'͟t} 9 NnViyEÛe;ߥC.e ;q/4MzOB6l]$_0o6pkNE%'H=lo=vz€ c^õֽ&?;]W>vނ9 #{[^vߺuj*jA-j-ŲUN-]tP.~booudZiAٿ@qOhsm7ub}|.UO@dߠ_dߖ JiѢV?5bB&aw.cphZ3ʩ~`{/=S7b$@Šn~n7 Mtg dyVp`2#=[Ƣҳ/n={tolf,m<622h/]m^' 6] +_5uƷEw],Grqe.%jA&Bj߮-z.ȼfE=TXNHf=T,GUFme~.R73 Y/lgёU'g"KQ藅sM- =U4pUOo0`LSt]!Y Fb )$:*@$oo,~8 j羑 ^&l);Yû9lýŤn!<ɾE7"Z"*`K1q aOHFǺ}z`<-26tB'޼[LyR^g8Vo7Z d̶2x'i<NLI{]Lc\t-gηͳB#9 %20{!Hy j,ih[8"} ^V} [2p6)-Ϲx_Jy1ttPBn(|!LJ?`|K;Xoy ˻ Y`c@@&&Y> Z` OkQ ZeJ /GCq\88!~Xxnnnss=ا9>W󝷧N=#pGѤ#>a|NO:}xU5/|d_kN <^>x7&͵cZ k h ۹)8.w-׀",5VpKL(}3l>ٻW[(D; Xӂ,SxN udKfn5-kT uFo21 )-Gu[ŽJ:'Rߨ8km/ f` 0qy7 N** ŪY xPf&{U&R6IW.pAQY `mySz',qn]%d̄ɅX*% KcNQHtѣGA1H`mAʧmnC#8D=n`֦e?r“Y,|oe*xT\|\8l^B<5cf#F4Sd ޝ(RC'K`Uu.x\u}XJJ`IdDFQ2VG:ʛX$~> IM 2syB`jYq7iuuyi~cGHh9>tp]ke! djߨ3 *;bp1cIw|i|HJ?⛈?|ښD8*72ٓ{墰M*z}>  -"zkA)UDzȪPo'ZPv9&pHyPt!0B\e]9oN^X EΖ1M_*6A| -=U0NqS9d(WVWJD%lr+ڋ29QEMN鬀鞊6ର&Ոa|WLhd a9jp6X'AH+uz@dv8\=>\I ^g; 7bx-+~{Jqq Y:L( 7 ̷@qK0A+Af_xQ09S@6Y&Lfى_YUܚj6iwq a9M* d`XY.d+WK[LS,rL LlzhKt\q.Z([n` }l&~80ƉG,qh.Ɂ r#.] 8( ^aX!Q+aYxdx`>@j/$NzkXK{|m<ts sZ`8 ˅z z=5 Seb @̂59PW@m]_LWж4A6UI拃PjKo8#}1!?b#pDlgpX:]םI ;Oq) 5SVB{a SU+q*CM)M&I s/MSP\рD__njе,AfAvV/f|hA] b=K~g@)-Q2x-n%?."VeҝFA8$-@ @N LbVZI_H pEрl]N/$y_+2mYI;/^ 2w1Vjq>2նb@!#176UJ͐$gV|V)-K_QU+31';AR b><c^q 8pG; CsMe{ (`XI7|% M]#!*h$U$y h'C|etMH*ت Ϡ{#d(x딀|@~ilVpW@0U^ɢm"rUT0Aȫ03BVˀ!p@?.1s|1H{u$B@Y\ j1%Nvׂ;@I[VDKyy_ݤzgNZAN`8**rzojA.x)i@6L\N eNʎDAl}#d㠤A`TOeJ'#e2AmsAUE.$Xkd\ٛ|A; &zf)5OLƇ8xLBki&rהG1A ]Svw+]_ǂ.(R+)s÷H+TTqyW;o4聭Wȵ-#kWv[^_p1}e9v/2Lzb++,9ݭwuY~F Nis" Qvn,S>z,-CyUb52T,ٶ:V9.z]k_NnʒpVVՂA5{f0[̃,@T.O;2q/ިS Z+]k~OȎHkd6bk@Z_X- P~dϟLYOAk2s-dws̃,mv$-YϛF&7k'Q_dMꙙlWԯgfq>iJT#_/o=NUS3GZ53wɬ#&&MLMC3Ol<(k<@UlUڈ}@Pu*..\|>³]pYi i} ºZku4<|igMLMM]kjZ̴,(Y呚۞a[F&;2Z՘4oL0ĬntgjVzf&<뚚\e;f4w2.P)R췠E613Y=&fB ˔/pRv*q eL'$woU.@M#h}̗pP5bswqb-@10U+fwVꁩm$π_{cb `/@ݴ"x(&&$2MN2+d++zcgF@@,@SLw@lBp#oy R-n2hU KݵǫeYǢCVu t+UmaX !BR@+/c5j=@Ya(N,Ԁ.,7|S2X S8bN<|Bip5r#0b!]T{Byh/_ e xL4Q@O*0.b0Dsm`ǩd| t݀b0ܑY.Am4LȔ-U*@գj<̑?J jjze\5L LH_ uta?H%т쯒}ceߦFvnuE@Az0m L-+ϏkVrsl{C'n`uвSQW j:[C(ffmFM֗oCgQoc¨my&>mAD5V^VSg+dipPMJ*&똿b0ib޲d's;)暹1 E9*oڭ=YJ59dǶ3{ďɶBq] yELMJf]tqZ|Z C,#QǁDA;ˆ;--d;#lڏd\px.xqXs: |LI;>7{qpcC.: >|>(?ozݞ]BKtlt kq{s^ڳ(kN.Nl(:8\x|'W:lVb~դ~}98 B!C \vTUF8;>|A₋#/89ή/:⼓˅䑿*n''>/:$|!?rk=٦Oݳ ' )Hoyڰ ; >3ZiA)p;g.}=;NS܏>1ZiAVZiVZidZidZiVZii}c}>eՂL+ݱ]8?WQq^gOLGm2 ߢX"]+OFhK/G5u;gC J_~u(ƥ%z\%}A$@ڠϞUn{AyOs؟*<(cE:^ɠWq^4yQ SwC_%+G iZ},[&`%:18glUŦOsa{)Wldn;{}φb6p(^L֞k/~ь[Ig@լA㖵u%7 SM"T.~½=@ , -#{X6&ޝ+Zթ٭&-˗=ȜZ/7*HmfU)t;eKS)(U\9~۰b."*Q񴑰ڧBrj7B{Y0G30<D-o);kO=y(RSaX sn#зW«< *a-~> />U ؘۗ] _7d3@>]o`#rX 05gDʶ)$V]t0/d>"6u_Y`8 B\f /eFMS;8 m #]bO#?ky-5p$>@@:@i@ . i*:Xy2(:C#@'jN:AX[ B Lm7UWl 8zz Y_l5'B,9<5{ ih6 )&nn Տ;L;e-[>\f8dd.;[.hhmJKd-[lY35JmK>1yA[$k~5P2L~;|ț6܋_v𾃎9Jr|)T F[vP Z!TN $-ՠYoq+LY޴ cKVYlͫ88(dmjӱ<޽j.ysMQ,KjbR8yJcoᚴbKƫ-&&v K>:@}B&nrfBNXَ79I a>w]r5Cde?g>=E!l,Ƥ$dg#.ڜ@{uݨ3t ەkA`QɃb0 GԇDsI:9}ݳ`uQ3Z&bqT LH5=)b撘q@aC9(0X%%.'a}kV*ҋ@+q? d6[ۜ3 ,'x؜~sS2Ȝb&NLq@bqΨ{md.JpCχwnI {;)r)j? 0 R扫JtπF5@VyB) ^@c|  vwww7L m,7 -g|,UJY47&Xp-'dA6\mSH1V'Ԉs}p&iAQXgdOAH ˼^OioOpat!ll*jۣw{~k5 8cmcc vE΋ӬrdE4-0a̸#6cNk16.c3꾷رnAmgerV RZ^ȾlF=: ١@i5vܘ/`Tv|BƷr?zxڌjXOƎrIM$blj1ctA-ێ: VcǍVm72~aF~p1uʕTLWg*Fٌj(n=㽮SrMnUN{6mFZܳgF߳{;cX"9fDmJ_WšY P:x b"騶qTT8WZU1.@J] ;P8n X!j:ݼ!`Y*g}xàrҝ[*j7 Q,"d+0B\ef,:fszKJf4J`⇭+.Tm9 d|U?!6IZ!kiwxv&vLTuD0x2WQc ðS,&Tf@X s[L"v]LXE<CAB~HZYdhg$/r1#]TX!^@[ŐxvWuAlaCg:LۉഡbQ p^ U HEX!'i7giˡBn@E(~rQC+8nehUˏpC:(2#OUīȔk(i {.T GoBۉb~%ESWt;BT #KΆA9^$tL% oJ:⭳.V1o[,ͼ`^i5څ:C&ӏ5,2eh50lvmn滺{FI]s ֡ 3(ٸN=@U䯸~u%WO 'EFG[w%Q&E| 3Nw? 4"mxP%|N\XTdsK 5(C#TQaȨ T/M8.,**<&:<*2ȨB#"aQa "?E*"KԿ{}|{/ٿ_k7 nh4 ϴEϮ {mѣWߴ{rVkd̾RoueMJ+-ȾOSkŵVZiA=-o+_pEid./??'VZiAVZiVZiVZidZiVZiޤu2Y ėeC^iodZ4珿[&jqe:ؓyħ6˦J _tͯNݥdZiHuKSdpg9S>5N[?w_q:!igjXfXXPbǿт ?&WD??*ߟu:/,|>oW[lh/_k0:G Eu:y=od1ty͞Oth}WVp aߙU]t6ߖd_Ll<ݟM*/ |Gb*RWy+ݧ{ge7ĸ̦Aa]oG5 tO}ͅ!r1o".k8{Ysї !o)Mz rX.NxKkaRm<} _Q@ȥ ,gH_;w-e```@\՝jgE< I[?H|]>]ka@ (gvMO4F܁+ ˼^ʮ>#I[G4DvW^o~yR],^NzEtDn2yU$ld4XV$܅uYI [lÎxUIk֊kqÊAI ;YT8PjsEĤ]Pmrl8V>NZoczh{&6r˜RpVeqm|<98rlqY GEme1Y5+ΖEߴhФ_]DW-W@tM&M4.FB,CQcY:s( #:Hk1-}1BT(*:Ml!jnѬGB:7LO~nb3 fF<*+Y)jAim^0! O@jߏmY{ ۊ/';Y_lUD7͉>S.-G1MOM,MH8!;.w!8-6?1[kM]j5 ˬ~0MX{K$eˡA:0Z\ Y,eX#KSU%C"#ҵHZlU(W@+ pD&v#/vsjWuUEP_@~.zP:7cHh,,~M@N6v%\F|W#!E ˬZ, 3@YU}-@;@۱c[TnDBιp@y=pr}kQ]Rԃl*2Y¥# >)uh)7ck{񇣲(Sy5: -kN TI=<VzخtT3S7 H.)BcG6l3-PGNƀ얌6@Lv˪ +Y,!̤dzPO>USfBe=mjϻ{܇Hոӳ/<Vtέ!1:nͮs-!p}-pSpSຸЩ/{;:-б!vޮ-pdg{A6@^7TZz51ZM. o,<:SXڪ8 ;"uq8& ',}72n؄{swr2҃lT*S,w5}5Ŕ0KKdL6m{_U,m+S [=;`;2,N3<dD [q@j'uFUsV-_&KO( zIdܹs`pL|U^YG]9i7Z=TZkt6pten=?}V-+Ħؘۢ=,&\ؓ`j28f0 2ކ2jؔAe\IԖyn!N_rlo )I(aXe"O49 -n >hKU'ip rD2wne~."ጊe8.MO.*@]C͢ᡌQVݠ6K[YL%R+,UzmpH/^ve2”f_"^PUH8c`7W "\ƫ zdR۾28^Nٌ6ʈ@6Nild}3?j jσlZI0> 3-yJ:)W*6 Re9D ]dW'&WF6K_|q1uLZ03H,}!@K2?d(;>`fK¡DyrkڕKǫXze:pPVi,2%k:$J(ARAV wMΌ5_34*g-c_wWЃ,UE&c@vJe"0ץ4uIA'dn}{t$uN$}6FU+ 0^m#{ SN@p[Fx&ݲ t$ k1dՀF w,oBנgO h"ʖL<e6dM֭ SBmY;r˦ B?qMeӆu 4uΐT#sEJ2.a5ޫn5$>8(;X *"]6U=z PU=Ywמ2(SCdv >k׊ ӘIUL )M_4h(J} 4 èpHE|D30o9`bjE{0)I=^&Tj-gqS(%s+j|̜L UHpN2OMD~+ߣ:Iͅp TVER11dWsc<$ΊIh jgU`nH'`"& ܰT@kS%OFg0O6PW$FsNpV{ #K [#t1& +$zUUϿΧODs<̽ς,Y@/uQ1=2dEu=_|]j'X#RPcd <*UNC#: n>RNƼԎg"bm=(lFUa7zR1żihY|'%UK_#̞z : ͇{(/3N8YKe^?~A[)R2U4x2mv}LSj?Ta:+˹_jW科wN/fKPOͼ >1J xϲ RdI_r21ՖzuT @VR]MI<d~MnAvB{I(c@V,7A桲D~de2ʋfj'{dd5(ˤlI[GR_v=p4e Gń㗼N[c?. vF,\vg'痶:;9N8lw1 9tf8YX=0g kO?ڧqp}/:;:xig2N[8899-ީ]4\ev'oG8yϭrqOpsm۝oe{\ :99x%VgG5[;oy-[_88:o}a$K݃pqprrxF%Ruש@h#o 33 Dzd PvŪi9}aԦ`tM&BOy 0B5&2R"T KCee 0^e-<T}S j|YYl& L 6d ,3 xv d+B>AQYwpF&{e>7'eYjmd^2FCEH;۲ܷImJbKUZo4'miՀFZ}+j| ~d?YM[W0{¹4rpF^}Sg/X8oVdy?^W7k;x۔)$cǽ}7Jcm6| OaJgȘ !ύWio122(#Ȍ2( 3( 3(2(rU} | V_VJ0̨^cIۤ:1=slnȝ}SC-M}3;WjdIJhZT#Ȍԇl׬S>sփZ_\=ack;Mb?D4t3t-s&>Qr)AfQՒF_`W~OMIb࡙~F1j]&=lj?[?dgVO'&'J~gǠݤ/h b1iwXKyktoк?70.x;{vjg\ŷ P1-َ=guǞq >mctv,d׮ _{Bp > pe_)pڴd/{wI_V$|dl>)9l toeҏ(߾*LW}35~ٓӎ/e]eE9Z̲쏔!uOJ3.n22'HfA;1nj {W§KJآ,R՚2Mj[aS,IR)lX~y J[7z Zˍf}ڨ>D4;vuHSs+~Srd'4L*97Q(*vIx5TKb4FԀL<£L A8BVuYV Qc~ tPwVkը%2;Sun5LMڻ)g9F BR@v@V~w⟓/sRrbo'?,MjsLj.N|Cϰ]mӒw X8Nl}B9'y̓;1Ctre^J1Ql ΰMV~[~#[| d.MJOФO ^S3|US=liJq>nZrIj97=I}j(L*QAR-n%;táY Ty`)*C]]~Nk#a >~da;.5d xAr&VJ1IEj" ~]l)a1xB-Ehcw"BGȷ**%;eͷ2 1(8/DRx쭷fxReQ޼ UR@4>JxN-P4'- bz#V-uCIzf/КWjkMSaD0U0H^}^?,A8z8D&*aBUd!1]RB i͸y`z<=tFǛWsLX*Kqr$ lz=.LplYumFo([2uZ Zz:}휮&͒AqڨHk:mm$FN5+2ZUH[8d] %٭mLk ЧJC|f߬KFF tkV-5 A%Nu ˕`~=enXy7 0#a}berS.Q ALVH-79cYiun99{71˗LȞ7UolDdo̓CQ(QQh.13bu^r2Ƕ9O5MhU( rƙ|q(HctngڃQ-<AT'6J˛kufOEiaqghE'}Rժbhl4[0ZkdTGzPMM{.%k0QL_\S1j ax ]? 8D&3]y;9+b3J}jȑ\B3Tv%0Lc  _0`h`LW?ru&aJ-:z4:x,-i%p'AvVJK=Ȯ$= pyS#j7>"LE N G*dAʐG2zU *@wOaYQ:7?SŻun_^'YLu>Am0DE?We۽swA^zd10^dXYTֹ}  e0*׭s)8}PB U72E@OR( S*.f\2<2#dåuN2M3ļ.Y%hSj|dܑ:hTaj3A@Tv.Uz,*PD{dI{2Jpmey L-4 ҃l#=#-W 1^KOE/m0,҃l ްk1M.QI>Lu @d#MUeܥ+@Xjy*zsV2T A2){ *c.2t0X W`u;_"b@$lӃlㇾ$)g A5}~2h]-L``A2Up Ȝϟ>~O N~ ,% qr#0XW2*!2NvkǀyɣG@I %"f>Z -A iW1 #^<{ap}jNbruL>Rvoq,0P\) <;-w ,nj?R]$bZ'R!̀bঝȠ2\<&nxy>pAD L0p9_ :j=`/+!إR_'EJw1pZ:= &2=)SFí ֈSOSj&k|[+YuP5c֭@[jdse>  lޔׁ~ L6ȶz=Bz= JLY4Ṫ @'1C?t"vgO<ޖ2)[yeD VcsYO3\~!\Y1izVL[ӫT`rMYLʗ;!u֢Zl+ qI2kê"nr7|*uBۀYKRil^%v6TiGmV"na&fޮTٛPTʺp (<`Q %y' /s2wK|מJ"C9o{U7v28EnNC11 tYj`D,S [Ij5Sعj{ϋAg}>rGԺ!%xU_U~zUTi\V^ڪg`j1ɰ׫T LQ-^*=EE\J%kB$W"#N .) =TeRNrO2V]|YX1y@=MRsV(dtU^/j{YlZLY8_s.ˆ tݳ#Ӧ ϴ6ny_`P'3{ңwqٻa]{E{Tp }d]^fۃmwp[{k5>tѻ&wݣG۵>u=d]Łнg]{v=t]E{>^tٻ+]{z=zwSm?\Gm8#DvٻG7`S#?b~8oۆ ox+c §MEQU]{ze>~صWæe2\2z \\cr;nCfuoXk G!>պnBȨR}Jg8/Z x(T;e;UkDֿghiTBe5{ldF}GKq{:OgWlJ{gs#g$0 ?sw _i%:72~"FKސ cdFRޠq:gcɭ߸Qij722(#Ȍ2( 3( 3(2(~O-?EzᎱc뭣dF߫3'\io$ ) 0n?{?#Ȍ7Ȯ/tdnR_Uݑs2ϏFeOae1 )c+/߮$Ւo|'՞eߤhۘN~L:##bjӍ2&9 ! ^%WBSI9.7㬄oLa2bDh&SCbx%TWVeUMa3`NۤX=.&R:/l {1%_%BA l+ŏSi,u!1]=աp3-GX3q".%O9 M/`Sllg}u5vpw豕㚌8֩^~Jћڌz ~GcGct| mFOugm-pfnÐ][1xȡwHr|JJB5ld} qd}'-.2pNu`e !c%(`_Y.lni{k6aiyjisZ CQҒ)5soZ E :+)nUdIX^֞"K]ФmxH G\Py K MJk!+BXR֖@Lwd\5p\*FڀIPcg g!mXQ3,T -H_M:Uw-KEw(ZO] WD>/gxB| Kxo?"@`ÁA쥻A3r r"x-ވ%_E.|>Ҽ&䋏o8<98 0h=}x1>>_q£p;D] ?UVM%u?t 6I# R,S-]W@IMX tݓz+(TI}Bc@b.,*:͒%I= *opTάQ0(\PS&uzuOK0EA!^1 (VCCQZ|zKO[-0Xr_p,"芭Np$0@b{Ze!`? =`x=yf,Z4@`ʜzH?C~:@PZٳg[#Ⱦ6"/yVF2a?Fd ,*+V;OX>7<`8{=LxY<#o[up\z+Ut!)S(ff)ʖvBurj5l8 ҪFVSVX([־&`nVYZ!P}^|ͷ\`x Y v K gEj*y|lԮ[~z oUf<*עOJf'Lv6$eZkUiʖҡDRCbGg(Ahоkͧ.^H._WQ:_@TfGNdK#!HQ PB< FD_;aڴj`8\ս@ rf_8lΠ7@nݝ@T5eA` / }1  ϛ3ktP_* * YYs6E l/?w̅Qaͥ[MzբX %+ UY`0Ƞ3T^ 曰&&&ۍ aQB3 lR{$P<7QeZ\lp 1e7 b@Qm-]I*CDCU M cIY&Ahl;ԊYV #AMQK /Dn;f ɱ.Bx$%_jt\jzI!- ,^_}dGP@ FJZ\deC񨅉Y&d_IV wf-YP 2:d;wT@v@f1G4n6PjJ R[߽q@椖!Vt [ dWmz&d}#MpW:' ԋoIqhH])v"GN'E$ gu_c_R,d!0F<3FA6J$W~0KGg 5S]mr]F"LKDX G`\\PG4@s>" Ҵ|LAR  `)a__T lGװEj) U"!ܤ2<7{keYV~My* fJI?/d9 E䒾GM #DɽP jW}6lՃ ?d*9^p_F 7zԺY}!."28h>T @-oH,**aцX7^p,{6WQsNTWAY ` PC=у H݄*XߞNy4uܒ 1 Ce@J@R:,FqB'Z@tUʕ(ۏeH BLjVؚ1Ndφ倝`CjM_\)Eti-+C 0FPF"G k(DU)\p-f2IeުUfxa8f/62 xbYy|DH;Xiv@_y Ԗ{RSv)ׁ ^8J h>UP&9k^7!L1C(M]J`: e,H']>HFI+x[yH+6]~2Y]j5P*%QZ<W5Dklf8m%ZdG6\T(#I rYILd:+1 {ٳҸ )d]al P.vf| c0 WB iA $$J[ @J@Z-1v-?`Zdj6{S*A6By2 nǀLvL ,={xƇT"u̶0􁫪Sy93Xdd'"巳'4}/ӨI~z~z`YͫFwjo 0WHgo9.^Jg~'N T+lj} b8](uDnm uV9DfQ2[,-OiNU31˳A_AV][6tmD+ U k レGP ;V(S Wk`87 1d)3U=CB @Y $2O[^#8YY|dϳI1 /u\U5E00;kNn\cUD\XPAq.)*wz813g93Txr__ypʯlpJ LTU@g aB⍎gɪi*O_dx"6 ׭딛fGiSzESSӶoZg)7/y>Ӽuj35]lSӼS潺fXkmڛ[7!z (4i^xO<We3Y)o QLey]9i3-qm%O5𕔐ElҪ*RXd!4^ Jp8a@47V;LL,f?(UKY S~_^663-}V4_˷9AB[_*g_PwMMoEEźnռܔC#:Cd.br̰\IYse Tk @.B Vu'l**M6NYX$e8xU@i.0sWп?-bVXډHi( $6~ 7.13A]GCwH4R7 Z^GO(^S 5h^`W4 0ZNY\1SExL5?A塀!:i^̸pA%SΊJ&!/p!m$Gl& Oss@Lt7\4 |uKӎw J,yQ9AX(F4yWU=raRܪ$S+d!xJxMaf95`A VUN 4Nm=!S)fx" u;bS64g /GanYJ7ቡ<D`OB,@qAN9@~_;2qbHTrYaXw1<}pD 1R!Z>3Á0^^IGvS@4HV2bj iZeJur/ع"w8VmbcC9zRg/Qɱ)~Y,9Z;$볉w`:uqY"eY^hzrNetx.IKsn^BU۶lzO;qfPÕt _z:נزz[*ul/)9 [ u~2\"zbGz 29\*/ ۋ[޿޵u̷ֻ5d[PWkz")lc␏<̒o!Em& =qO 'lj#xLW||lv`Xc*.@Q);'m  mYĐ=#GpWLTHoA LfB%s`m~۶<6v۶8v&v-We6;)R؛hx.fcpb:fulrSNDNvSnﰴIagMf[w{uWg䒍ݶ-/mnk-v۶yݻ!WAk^H&[S,(]O-?W9kZ8M9SGVn6g͜^=[g.ޙ'w'ڣK/Ҳn4pz0uݖ|6;Y=Ͷ۷gvlns 9ou.{Ֆmv6ً&EM4 I=* =OQ|d_#ˤ,/|#G"N͙ 7E}8֒2gg-~NRƑ= Cw/g1ם^*"EG_ULɪa)/5w,7?rۿJnG+ ?K.WX1N9L9/:N J˄͛]QW/nn9+;R[6}҂쟖EVn=rby_酋? wtB'yV-yi J+҂L+J 2J 2J+-ȴku>21J[ iw{}v#؆kAV?{I 쿝A dܑb _9e0 r{ߞ6.X|A>-ȴ SKx *C&PUǗ虢(ߥmbBf/)&{H^uXQ+B-}tӾiڔtVMoS~?9iݱ_Պ? Y",Or ty|~~N]5U)\Oϖ';L곎ed,vdTS Ź$g"i< w&~sFh {rqSu&lV$=^VUZ60=_5>_bG~j)ASRgY&Ov8!ۜm͞|#oh6W1d['KnEi=I1 mz 5z}1iJǁIwV3\P/G!?SO ہr&V]UjWj ~s=%f&7n[l]zYZq9qsE΀>OSf-/V gX l󀘾 ªJWn _&9-/ՐQQ:[LV\%6{rr-Ⱦa9[{Lڡ"=gاꪹb}:Ͻ3W@9XQus8$~5ĥNlӀ >ye*vJR\z4ݐ` OErVKzpOL\X.3IK⮑݁wE5ZDX&N X9X"Ҏk#+em Q%RY5P;NEA]&+si䖏Qr]b lT&>ts,o`xLMQa,0T&I'8'!α[ځg6k 4{pX";^iYFB?" !v?T.$> U.]Spy/v @uN>w1֥-%[5 ]ۙ@~mb݁pm{Xf2y @}8ob1K6ޛkO9a]BN‡#_Nu|V+Y{P7'6vJ^I) 1;2q\ g.܀gsD{*]쎤X.mC1>v3x8DX_LP݋ˇxIa퀚;R[Y>l 5 5 [*o'2 T(S _Ux)F᱘|qvn,&T`\ a\сnd DN x,[$쾜 B7a`P<'F*̀Q-0E>YfL4&nR/+, X)W?!w 'LC%€S%7,hrxGq,Z{t^K5oWPؔ_E-m6`|7I7͇2U{LxXX_t`;P'.5Ñ1[2 25j>)`?hhP`f wS9^Ӵ *}&b" 6Ĕd] e djx:A`ŧĐ /,#VS0Ki [OY0,Ozq>$K4K9!di_e ny99Lgű7+ /왨I?lЀ50E:A+RlX`-jA Iw_O1)%l8 P% ~QoۺeBd+x@:eؤ)gxJ7L lmp\V/Ed2e6d&ڵiղw2 VPڍ7dD/MR=|IA*lxڴn 0jZB[ga@L-ڷm,Pc!Ɗn)A`hܾm-ndGV4f7{DFFA[|tj[#<E|q.>!/9g n& ؉LI# >ܳUbr`N0!\g<Àe}u>ɕO.g^ʁF(ԙ2v>" +Ve]LYb p]NV)ѬLCBqx~<,oA VO\y Y*[5 TTE,pYւ, smcvg `B!32-*ʴA(:)PQ',6-Yb'ёM>ˈl 1Ƞv* U7S,vI7d'QMd'RK:U22vvYoq/#{@◔ [0,/?rIF89$[d#m*6q'dvgu`,~ɢ |/ƕ[&ٟ>"  VSKȶjބO|$G{FvU7 L .%-CP4g/tl"N#l~ZR\g?39%iSKaE O LH/|?BpdiA09D%+ kG`b(&;$,(/|dٕo.ϓdzF1,MhU)*M@F_v&:2Qbg ;'㞯?DA6%8VW{Ŏ>[=5ogjs"VkgcmSg{uwik]`tƠiʦ 5J5q߉5(MjXGcp\ 4^몆=+]iiޭyՊy~{@#=}[<l ܱk/^u! ]߼77zaCi'eW/ƧC_:vnHKmvsxX]tp?n޵s];4ϐN?ws#:vC.tَ]v< h8Th;Kt>uک}$],U&|DoQqP.}WcNp_c }cݱk Ze@wLb:](jXxz6Jƈ1iR^WinAyVFYlB=)O@]<mb&+#2($8bwi9,-x#F+7hB\e-, N6u8M0| 5SIZ  yeW`b ֊Ͽ?Ÿ"O*-J F^D YOsALQ`bU ad-ŕ b#b!-bKjKcM9%:VoA>>Ђ#Xot<5(1n쵝ƚȜê22 O"ZPQ3h57 R k$gKc`}笿|TpUZAoox44r`]솥e34iiXdw5U`zQQlp["G䙌T5kt*6ퟑu;BԜz"O8TA&ڕQ&h/[Dwt .kl3G%=LʶSmSNdx\|% OLxUCoV>E&L)>/ML2ns{r>H܏y1^>UÙc*+9(eo1\]]\x8}[_ ~sөg p>t3gקϜc굔3CoT|'^/1w}WGWx>y옔곧!Ϝc\\Bx@؝ހWǘXG'ޚ=Np/x~<7OSBʦ'(+\<˙O噳cqwR#m~[|yezr_bo >qI*/D TU~2gS:<2?-;/ש[sWRhXn?dow-lhSnsHiV֮[ڃ_Yep⿪]ʊPJ _& q?sc;҂QB Cg,- HCm=h߬/]:cV8=w3j퓑/{ J+҂L+J 2J 2J+-ȴ? Oɟ+{|UoF 2~jiqVHq_LLTo+*z;Ӂ;R.qghAV߫5J\/qP$1sJJJLz>o /e4A}$ bʝůZrKoR̄ɎZD׻?aK]E|y`.BV^\n1L\ma7jr,ʩ}+bV@;R.ߣkG j aE#䨿+s"N~a d댥)ݔ_&nM5TD[G|AIU6d/'Kx{_dTQ@n/*[HQB/D`Hh̄V"^äCiWvU7:\2>Q4ݒMmbOSfջDǿ~A@t%%[sxPU!x&sw Tٶ9AHY}/ Yu @oX+{4J{WuԀ'0eNbjŽ4ü Md߭( ps.^fN=vwꉯ~+# +>(u8:(M3Jt8P$V|㿕|iv:]c\| JQ_2G.l[ql|/]QNJFDp gKlKoH}rA#(Q5ʪlC _Rs!vj^s,&&SQtpf'1=>f9 \!m ⣪,yÅabtfUӾzcӋ_Z kkUK/soRXk‡cf~vzѹ-tt.qV55V0<4闻'p=T6*trLpnQÌeW d)_-ȾW1àq-y5r?.(QRlYmw Mu6n*7_y|J:о!$U7 0l"LODL+_VX Kف|o]'|оr/<; c"gAAOr|R-C4lVEw›(0fG Q+|}WEcbH 1DY|4jڿ<kuB.U[ܽvFtipSc,u-n]ZD$a]q8r'QaU`r8> 7dbEߴ A6L~;&ǗIlWE9 mun=rwh\di8&.y8'hW օqk K( 5$}GA&yr}0^:ȧ@,`/,Rl!pU.{:=#)W\'<8o.Ȏ@CԆ(i )`ޖwQU9;Ae^brb-~kI?uiߣami 9{|5g/Cy95I6- ̜x;UFܟ3|UbUt[f-`iyx>o>@>n5a4aNVs8m=7b2ߵC:@L>>`Ηe,-Y6v%t]--?="_5#>o-QU7Oxɦ{RlN76vlظ~mi2ϐb(Gly7n\_&CੜeFjeYDK5Eœ鮢̠Q E6mTn$*IpLP,{ӆu+"/v˱$ nK+`8=eFj~HtU>k(@h>ZeH+ MZ\/x+j?fּE^G:F,^j6,ܼ{)DBo>9'6귋$vx l+zW5aua{gv-9 YiOmIF!pE zC YviDxKV۷%Xx!OAO ~go9j߁Hb"Z jJ6w6Z-x:,q>!.&*4 Y׬(_YZ?˗/G @pRFGEE4L2g2 rёiJ2Vd.gF W5RFGƤRurXj3&5*eIY7H~LZe NoV/6@\ A]o00Dt %-? Mfɚ/?ts x M{cU/j|TW䉄sr-lǒZ(u,.ZIӉx0W\W ~ dϳ+=f*tAbkJy%%9 }5I>, tgd%:7Yh.\ d2&N 4YYmY°p Ղ׀Qk`ؕc@\Xxvtxr0Sd7 h] घuDϟ>V^(1#²ٟ=i%Yuʷ>=O'(7*#HE' ῗ@IFy dMnsC.)v@)Q,APP:Ma KM{ϟ:VVxC=0`pKYgO)c/n 2&dlp ̓A<Ƀ)NguYj0Jl.} z H.OY1pt>(1eڀ6 3lD^|dY5#KfV{M2ibb' ,WA8/Sp\emʠiAV y`Dl oz3fʻh@f!.4 0dI@U@7,IYrdsA6V:T1j%lTN(^*5߶o r'Z-?wΫD]dp(" t^ƞP@oᏯr9)[I +Q'4 SZs:ਜ kѲi1"ds$9[z9& D*/\0ombœ2x8ntA1ԄNk&Kh):&n*6ePB sS'f^@:jYR8`X%w@e`]XC]4ЂX+#?\q"@- pXL ^7+RO58*LӀ 8'Y!o&%!j9vKrsrZb#l}@=TvVBqN|?"qSE&~<= N9 D4<~?#Ȟy5`A]Jk9\87MY䊶~ eq́R9 J#I_e}.'Տ#xhAcҀ^|2<tN ȢeN;pгI2M:)@-WȊˤE34pzvQ50 d5^m-aZf@dWtis ^˾y&N &\d)dQzZ,0ui]i-oLV53=:^ӡc~x7-絽&m./cPhC>̱j7Bzk&{m0ש u*M,'^-+ub 8fB^~3_V,LiAm`y!5&&gQ@J?Y·A=GX(@]bXdM)fdEfZ 125j!Vˬ_Oq%KVK/zkFW.eVxɐz2XzݛEˬ>'+k7tV荅C=ib%AK/ 5&<ЙK( ԣ3FlK;.rh8x6ex9xK|DR+C~{?&s `//_beV[/ т۲|Ub5XK"AQ.B3Be6Ui* pE/0[܇nr5+'E$dGɻ?7AU1@I 4M[d?`t .>B1zMe.аtTK`xrﳖH6< `N մgMz]DĜkN+[Y`ʭ"yY -mI[L_+^տ d;(f^w{ˊc ñ6?늶nt׳v4qiɗ"9ě@AD/n y b Z!qėY} ׼?N`~9/n/d" va1ޢAd[gx&T/1-o%{P[܆ClGcC6k.p8[%P鵣 &X`K 䜚 7w/ D*Ѳ[D++#󉉟$.:ʣ@//\Naްdlm KFN vN ޞpbmJȲh%Hay]+-m/:j4=7V6J^om,k l/Ɔ5Siy[gJ p4gg7]&Qf7*dvw\+4[C/g^ D%MZtol:&i,& Mf2G'3ϻQIr`AˎgqQ.U sTY+$vmkb&,YC@ܭ۴x.YJSdϪԴu4u ݻQepQa𪒡qp,n(g)48%N}C\`>>cPn5Vtz28g~ŧ'@hY0T5].MZZ=,-c`N5y!UUC2>R? AI ]eG7435T#6}Bd+C' e-!G?Ӿ~Tbu սwnc&N7:^[1'-ȴʰnLVVZiVZiAVZiVZiVZidZiVZiVZiAտA>Zioԍm{O6ES7[>Zil^7'y9a'QImKe"E魜oԪSe?VZ&{O8iA)8nۗ _!9H y>9ٙif;P3 ge(՘osNZ};bO!3}G^r? g3nc{Syʒyߔ^;SЂ?2rx7/3>vY呙ȕñW+*)绊oX֊c.mρ9 MBbije"}rܔIqd[L:ڈ}J.)W4pUtU_Dfg=wZf'wLv, P?R>pq_~jԫ%E\ ӟqcIpU,Guk'Dw%a a_f޻G{nFAgEg~PSʷ5v{*:8چ^x'@-rebB-%y*,m6dQ2pʲtC(0NmY|=[i"6iNm)*Z? ׆,T#[Uǚ&Foa{NXՓsZq)|?2ʬ [nAAQF[Q;PD DAQ<\spAg=/ovu{^; hWJp3uR#Vp<]~rfwf1V[f1)U7GxuȘCE]&6Jojz'y*n٩d6C8+d{.pĸ D^7Oe8k*ǻŪ7;sjI+zY$1ʜiN6h.:tOy K.,!}x+pU$0-;w\^{QKļżCFTh\Tp#~KKZ!I3N 2˂ߑ!<Ԝ?<Wed%lS@P!x N-}`2O89cLLGV rst>B9=Ų_=f6(R٦|#6MXdV xojRYBZk1> #5RFܥ܈W^0p"ԑ<)5)ץ-WdxUO04KoШdx+=p)Fhj~-PfOhRy d?* { + ;9,mx$B ]4/d߲v, 4gdH sA'0Q` pa sEۛ|bA6Oiar0_3v/ˠXH8fh)F?~'X y+ `c 15hf 2?V-Nx!o)=dsŁ잌^JqO2Ԡ@sSu-O/)`t}OT37;nC$.]} \ЈDg]i4h4ҨT5 7& ڨzۆ>LkʕEhw}vnV䯀 [[poa `kze;2.^gdoTt_q K*y hmz[?l_U\jY4|1gަD4a_ZMi^kUYk]NUbr`*=@ ei{AO@4ȮK?:edݡ5ӃI4@?9YTTeK)餰K [Y8H?= :\jR&vJ5mջm$!I,hLEKB&?ƥQ dnF%S֍  ofV ݗN)kíH] {q``0`6HցrNPA4oUxH'4JeZR" ?G4lSYrJr8"D`~h[LtTajLDlz+fY_2'hm @rIr/ze0Lxª}hRv &-~B^|2 SKA6W;M?<ʆF(qi ;$X 'jnF u.wu +-Fݫ){'d׵F Tr5w-i Y^} l s1g_kb;uxDD<: {"C x-} ( d5K$gjh P1-@Dl64P! 0\yx|w 9X.m _x)-2Kk 9?X^8~_״|/`L<C9 1Ff9:T[4yȧL}U0uf{קD8a\OKo`~t$Ѥ tyf«EZd^SUuj}˞6h^H=&-]Ŋ/o NQFC`+)QH;O}g?Т ʊXE%ȗ{\ۈtƇ*ʮٰi8"ͭZI#ާ1-wU>`N`Q采dvJH7M)CqU-8^HeaE'Y1DpԺvpTL&|㛝J*'&A)MugYC) d*1kO7YQ52臖Q@]dIR [Nnz s ՚2' 2{ ,!v=\t isJi㔃!کu 3J;Md.^x^nS@Z(/x6@̝M-m|mumcB_k.k /^x3p!#T^;ㅳ;\\]nųa|.ZѠ{+k^tptvu ^zq\px6//]:?Y^Y>t_@sk._xwk ޹7ޭpeK65sk 5"w7..g#Ϻ^xWY2!+3̫$r~Y j̋Y,h-[ ڪ꒠iwaen@t@~8&JSyD`ڈ7,W}d:>pB n8P +U0/%C {L!7O-J_c_`͊b5<]9:z0{V5.@WZ.3ɰ6ͷj@ԛfXK/DQ3(!j9/30H nK<ɛW=ۻG_S!!MD!@J}Ve8<̓ +K!Z GeHPcɧ²9ЪC47RlEP`56Bq 'j#x]"2műFEUNjݣO ZKw;V28b=VׯY :1۫@=|fY^R#Zu1c\r>GOƋ_2ε*\u޲M"7$ߠQ[6h` mm.*\'g5{q{27o Amxjv ] /56`D:ceckmFS@3׺pu][ZM7˶nTjhkY֍Z[5lԠMkF fQ!VؿRͦMufF+[[+4l`L\mxQR k]Rؘ)7U4jX X0(ԷKa% u|H bZ[p{~Xe[vt \a|~/ "ild? ]|2(#Ȍ 3(#;[Vg*d &2 )S"N2led`SLɚ=z*SD QLjOQFAfQFAfQFeQFedFeQFH'?G|:Hdpk!KR?=_~#Ȍ_*n眠?^0Gn!RKX4QS?$(h3.S~7ɆTFeԿO"(iIܖV;SYh^L [?1ue8: J22b\8dq}%`XMLR+鍊`S,ŀmօ?Izd'; awJ &A;orr4k?[ƃnU\@*3Q&82;AV'U9$Yz?udqF'H'j7( Kז k5?ֺt^WYedwgݡv?yyKο_? ?(Ӗ?u :mB4,:gE5/mƵFBV'ؤ6 NIU{RLt$X'^m Y6X@#ΣNj;~s w 5?]6p;<0 cW.M;ZҬaSNŁÆ!u|pk9^{/C&xO ~Dhu}tܶڸHW[WHUKS^۬ڑB }à['mdUq jc"]8bW(D-^̟%˗}~-Ȏw85]pl#/țc+5eƪMF%:\U -f[k\- `!dwt\;-ą۞/M\1p$Np^U{cGqL ?#ƺ ΍}lR;QW첡j=+\| :ʨ ]Kpl8f ;Sh)@hd Տ\jo fc'ZͪcO1O!OgMW;%EޝnnK; NΗN>ڥm¸b!foe݊64^;(;ӰuZK[E?%!͙3R1knEE ̮ng .9, 끏NX oNELh5 NbW#.6=-#SV)N {@T$&aCQ|ҖMth:w5cH#zqv"ͬtt,!xn2-pV3(5b2JEb]#K#+78J{EediU_8,W`LXbX+%U9nrh%^0H@4q3&@ 7Mom`yR UBB,@U˸^-vMXN3 m\Y!#=Ym[z3RX&`8}/q1 ~3J^8N&Oz\tC:vʤh9BCB m>Iż C#jj$M ("c7t\t Ӽ=p宅uY$ Q5[X_H?(:`#nY'+Z[lYQINe-!h+AP- KUMo#5[M>~`LGx`ڪ DHQ !^ t=2 Z.C_`z;8$qN*j{Rz0sƕ22LWUްg4. /wn/Tl<5M+Mj9uYtW0 Npf$l 7+ sͫg͋AwmdǭZRx'P"5NYTMkt_6ƾX09ރ uz{FKF @6F.,x3 x +E>Bi4zcn(Ȏw(HGx! AV,zHx )E X=FLP'%Z٧D^Dz/d) 2h@z&C8ࡌ &<= @H F+lj/eazMf3jt+MXmOh:Nh+ Z9\t{aҥ"ؖˋE"w'ʆ@Aa=޼oKdު*g= eȸRWL'$ x,6puH#e> 4>C,Ȗ$@YP|ƣyq !zyIOf)Y䜬O(eu-h$Yq-ڥFR ;_*sǁl{Q7ٶo;[u+e2ٵGZ UDu *Wಚ[>mr&d[zVoMHK qIknj_*(.J(('=d(P(!Ȇ6 uulF3d:1{?E&5XAς4-M hߥEpEWZΪzz nau RCQ4@ 8m8mY O  fLUɌݺ^nBMоEd>AIYP>~hdpI#[ V^ҚXOdCR@)5 Q# @,YH !3T1h4Id6 u]5P @vt%<Ձ[\zr2@nQ?E 1#Ⱦh `zLVס 5GCq<_9v6V1V?1Z}J1pYlqɟ08 kF^ |_^J#(Q0MMVr`LZK Xx*C2LZ13[Nd7ԁ,xZ(UtiZ(;[~ں:{2!AA{"%7_P&i VUiܠ^v-ymbz: 䔱ql~w *\2tЃ: . d^~%LVg/Imf+ m_BtBPZ|** tׄXhrJ>a49U+P_xJ;`N~Ha[,9LZhXT߀j%V݁'xFF݃&rX/sPfࠬw`0,Q= AV8]ܬe:}dnȢm[QqnJB}MeC "x ۖd`R {5('ep*Il&pD-mu;7VZWJ7Yx |9 Wjp@a3©NE-bsON]C/oЦJ߾Ӳ`:dǎ&=CoLsR~d5} 534v%m(\i|t/Em +8Uj࢚tᒩ+:i(X40`-&\A>C0OʮfΖɢpX>Ù1P*|&pBڀSQ>e+ER6MMWDmo;U;д˪$c:IaYAp*roTԒiRI9WԔ57Iu$s U`l߀KF%d+x1!rDA[/@[첶'ձTHR ۇK>&h-< AIY&kB;-X@UAmr8t kkQ>@=_d3臖 үA̫[\6) ז~юIKdԞK-2մ(MSZlg5.]ŖM"NI˩Ҕ͛)(lQ=y*V_E"6種TZcZ\6*J6dW*ݫz&y|jmRgfGn p-R_=hnpHѫ L)z=T,7-ҨQӌ4)ᦙ;Mq=-Y԰$k!rx*Ihl.i'*l׬ UQTv6YiU›U'EM1ۯT&dWi6vfvWY>&d+cc`sڔ^FC-u_تL*Ƒ4:u<5hȜ}dNIAwg6,Y ЁlLTW\Q^ ^}d>*U!:uR$m/ @e&pX'c d@ g-d+d+YPeYS{ir`3&~Tt1YDiZEelsk2-^:c7`U.׀݉<0ET^樂M{ϟx#W0>H5!0,"$ =-BI @Dpxxp>za0kXKW`hDH8aFGM>` b]=?hBB#B5Aa!r~(tFD?շ$𐈰@y[-p/_ \G|}<  EB3OSuz>( x>k ࣫1@h`#L'd"VUuTV @i@p@&)`mzՀT(Ѽ5/[@Q.7TO1k,Ȋg  ![0XfCT(8F|`Z'U(nь49%)w7"#aN;@]!,o 96) Z3%uș1 J8}` b#'}׭n=:cOhO:83m-.DP\]:Ewx*ǬEi{"jZWPpuBK2͇ʶWǷPU}З,Ԃu#:ѪE\}'-R^t(0Hm1,rh#%4O?Iu|TYMilfIuz,lzۓEMǮi2XTmģ*qg-U-<)^P:8.k>P0|~׷aîcn';NfJ-=yȮH4qx;=|R'KX,FktcONp@;OIga]5Vs%~Y$]FbA/UQ'ρlϽG~?SW_> 3@6>"+L"/QF{iE3v5x2̨S^}ztOkvݻ{M022(#Ȍ2( 3(2(2( yǝ\s->r/(&xǤnQTk}w}|G~dyYϟJWs#Ȍ2'MjH#.?}aV 3(wj؟=~fB?+d{"Ò8`ߔ0/&t_π,uϾdw{'6ȮQ s/wuu:|w]/TȆC @H&uxv`WA^5TMMW(]d'LW3Lz׻e\y\Q(0IM},MەMdCmj q];u|;u֩?Yŗv,l}k^9U~ײ~wW`T/0ch?NϗZ fMF# 6U{(5Y_>NlZc]juRkWONҤlcpv= fh:-N;T}soj~nTiMnV VuL^WY<3EhZc=w<nu`m#Ao_[K1eܔD=C;SL:bԂR\ȴ.[`"&.ŀ-}5R%SYFi.\rXf- _| cT16S]B5ށmTH|ҏ}éj:+ GXhVuaӕ3RVB %>rǨ =Țbo `p=/oŠ<j o%^)Yxl*}JxWz^4V6q+>.f6phl5B ?v6Y 魙>]́,5)&lL $D5Hqe!җw즌gf[*pC>b%A'6my`Rظ/hV .I<3V5!T 4в %NHaPDۤd4Cj0QCK5 hb ŀ4(1:&~DALPӗ2y%'="7&<4uXvcS‹ gH?ȒԲbʘ?,]!"[a1`^+vU lR4c?ŵUC K>GG6{}h @ĕ{~8 |<~zy</u5,}g>o\ma2ľ珟|||o:IAuDgzwj_ֶ'Ϟ%~@{B=ϸD#^25 D],oHEfda!ld,@JXu.C_@EVm4҄6Nhi 5LZk{j0MNC ]>Ŭʥ*&kOV2͉ pZ92eXkV?+B@GsM^鴰/5h`We(q։IAɌZkyi{e5 8V*+6/F@UQ)v 1fZ 0qfckj 3PCOP [ɬ`u. H`s),j'cS syd"Uř K(^a]AS\4=K ˘4zm6XKWjHeOjD4כgl|=[5 ]eU62gN֡sNDafFY b"+񅲨ul Xh+;c.Y$/=IYT5Ji 1=" 2ںRy6娑UgI)MކdXH9$V/d;ϡ,E:*9_;dc2 8p{{ "OY-Mc\Md;Lm \ @wMܾu&sRc50O麙!&vضei@sM6?,g#[d74э1UlOmեu 'N'hEws5]FIN56,YYcX#@XeC,d M 'epYk5BƜA->pJM@/^@şZ 끪0C|N]`mTq+ۀϩ-" NWqe>O TAsf5 β)Ah!>@p@n5PjaV=l+w*gx{=i5YP_݀L3 P9"2, Ed=5l|QvѲ9AJhֆ3K9 빥X5UwAV@vd Ma9XD簅dlP[t f.Jwg/xi) ?YE==S]udiVYUyJ|.YRr8*ˁIr (ρNd& jMNH.Q `JRN8NYvDX:8uGG=Ȁ/G[p4Ԅ0ͭP[5uma: 쒍`ytO@SU,kV.[|أ6oTopXǫhZR"Wϐb HdsEjqĆرX*$Uf{Ҧ| <~J^&E[28+S}0K-z*i AدԬQ^-PUa{s7eG#j 灁r$^P M-x? +$v*'/VZk?GeP[OOO 8N܀tcJ?5L۵cuDԵ[Z;Q;[Qlll ETvw?x]=gf93,W`.D1~* El<@-k y+M=8X,'iw0/n~5د|rw5Z K)ZpgU~dz ]S&{cV2Fx%ʶEmXΆEV;._V~eu2S!E-V Zf d1~ѺFW &ىT8 O28.a`lzgwPMM@ʹ DB7Lo,ok64ɢVQ>j%<ڂUtUY-+X){Yr6-@f0C?_2&9m9E[\}\RC*I:o2C^͂!/UaL+74U\5bŪn}X67LjiZ +gUgY 6i@ S@5qx2ޤ]Ԗ@\Ď`6<2* i}Ȓh5}Wu6V90,'AiFZBG4'@-項 aZxV)3&n2AQDɬV+^ #x-YU3wjs`Z V~rTEK'O8H2On7 dv]90LOQS)Y?^-i`RƥLJdYkl4%U&LM/M.BGЫ>·FSONͼf~^&쫦2h5ߑ'c3fG)gOQO}8Ҫ &iTðBSwKqSSM#h%VZtږ:x)ciJ-5.to>r \:_z{rY1xX >;9\^;]ρѲ}:{{hr?zWzEmc޹ЍՑp9|Wg9 7?:zȍG\Ë |x~},>8/N=S1u<.:tEuQkG>pAO#>mߢ7m-.ITzjRjü}(C7yrayEƥ:/O.yfsAd?a5(&1 Ⱦȕdqrk 1' Ⱦ>)v5Wn541 2W/rQ&fA?dAdAdA@fAdA-%[RGI?WM}Oouh_8o'22뿖_:J~md^EZŜEcWnaS~ _?0SKdio'9$ [; +aJBԻq+'l[+"KS~th _'7:-C'rV{ʘ /L ,fuJc b37>ys{Bs^o %v'ޯ)fTX=ƝS?@ROIb'7a,NkdaUl\bbWfKmsm1׎#~:E~dz(+&jD,_<y"rAuLoݢ&:i։3+jX2p5 h,>@7T4IAW7 8:eb}C;fɧ!fl_R=E$>Xlr@,bMV7YmڬlSݖKs UƼh^̋s}i(dT#KEQjˤsz=RܪiO2bPr>s -^YXtLٶ]H<ۢpYG"ig->=ʘsVLk!mO`EBetԲ+UN5.`/ȜSPOY,>#I@@A.% ܐ:?-ؘbG I a=e?l5i=ۜWG#T#F>)$({.Ui=# ų@=%j4s6W.#rd~t=f 3B=&-pxA94VZ*"oQ5[lyX`͛Ѹ0e5\Y"_kLմ`)0SqU1`lnpȬ)S=O޿yT] -OɃbay .ʍ@s} SA;H{gF ".xP_ w/cjԌ:5]@Xgi@V*2M]Nn(Ke;PEv /`&wjUL4l ;&PN}msia^߁B`%r? % `|>H`x%ၙVyAcY Sd)a -{;^o`IdAsyY U^?8ZƂZ4Uyoa 0<6t@?82 6@-m"d)#t | h £07|aꝘ]B s]؇Vfٔs:NdGx<5ͩ3>z;͘#3[a],Aׯ'Ɵ@v9Gcqc ?bO̜&>q6O94f!w7Oׁy͎_v#Ǯ(Gs ֯w|_?ƍ@)!cv|&_GG/qa:iK;]+%^X]$x%laOr 5A2ȴj\W9etNU7lQz̚&KKtV%ݳRl.fvaqպ+TU(ؘ[f4kAXj9of-mUU4Eʿ}Iڭ<-`) Ǭ 0Dj RM9Ed/DL%%+3p?[WAӫSlz2J|6GRvr@Y3j2@+_AU6)uHGN{܍-5J 3w[T`ZViXuq9 &|2ȟpD#2謵!4ǠhUF}*)u /[!\@Z2#*灉r0s1y4PP498K*F$)׳II 7RYl1JP8 +7Gv0HZc$ĉzbu~g@&K :l?gO2 AvE2Sl*ÿC VUJj+^ohi%^=N57dtm_Y3-Wdi4=@Wj2K]UV(` `^"~hyY<Eo'!}kЁ +'Z>O,:mJ}8Cm&2W J(/,&$d}@Rjo Uz5q -,D`J#5S +:"sAXgWq ;-c<'z\S#V&zt,1Nq=w`m0@%cRQ/MY-<7Y `Z Suw9Uy7N}�Z&}e0 K ;/@9TAh>~K_FvހG=pE @= &QAVdP_e O̬vN`b KLk 'f@^LG!\L :~2%a8dY3' 2n) sGM'c& WЍ@XufRSvw4BYOSJ_}MQ@O4!d̹E} wg'ӉSYd/e|3IͼC~e?*>أg4q!,beo\ۖQ6wpt\gRQ z.P/jG}xj۶eBaTޱQ }fzevBVew'xM*2oaQnՒPWU]_[xʁ=D nzN-Mai}EKjveB2r4V\">cUR<>r&KCy\E:WzQUHt եߡ~J?@jIg&M'E_=TE]* ÞvM=zd)fa)<ۄ=GA_9j>bM+LdUhr  #=T/lbpQMJd,=EnӘ,HB,чo,Ԩ7AvX-Y4~]W~dj[]`~_~YסDu7R{cϡ{;Yb_~,H`Lmg{}}9@h$:4K?6\Zw[mݘէivqح:liD޸@fWh {uӿ8 ;?ޡ+9 ;< or4v:_?hZf^BdB&o۴]п׈+:8u7} pX?w軀5'Ѹnb?o pc]aл~֣зvMzRkT2UQ b72¤|̞9, D_)~CIgZ(${m8(`ԍxeQ;jP((/a` \KKHykj?SVd;0GIЬ@&+ԙZȆe~ >` =  )w9 \&ǟШzjxHw%d+!feX2^0[# y ѹ6kRr_u@J@j$BfjQGSXM g-BbƚQqVM0<K`mjZx$e.#U@'\r>j[p,u"K]`2(ƪepYYxq;G3L31Bgr$tuH-@) l2&KNJa`֝gW cnȺpU8W<À-*!A! g ;rH P腗37L7kyWGܱ^D%iV@4`lo0D뙶GK4{r54a䷛/5Tw TyFU}l|d>5Ugv\Xk,2UlRqm'_SD&BbT ddZ8PN7ȢO ,R 3 [I2׵T6y\W"=46`:6xyљ2aEh H#6-hƛ*+>LmJ霔tm*@;#]ݑVaP.1uʐ<O5(nS*d#_ cΖFnh[ܖ7s$M'VHrmJU}qRvŕוikYLuymVZG䲜sĨ~79;e[O/elURJپ:QZ͕QT֚jˏu;~x{"^\ Wy y u75 oqtwb|o\xgz }7?@ |}}8)s/=ܽWbp M +D>48Qb=P5wNz}%҄{{xW%!/AdB~`~I' = 7.ƒz9yFOsS97GVܬ忯8cQڴef Ϲd?fO%9.SWl͆od?DlfBC7A~$5db!^dпE/3Ai)_j>?r%xuݑF A a;WxI?>irq*issࣴY$Nο7@_Y8] (Ǖz x)}xGwESu<6_#Νrm;Wdz%]R|U7`Saw21_{NiT!@x`l?uSC99ACN6FSI9Qyz 5[KBm2E2麈 _|b ?]^Nd=cbqx=.Hc^>>Q>g/'єѷt/+q%x-@EἭ{EG':y@{_]MЃ !^>> 2\u݃|E^t {z) ~[=uï^Ё,N"ςz9_ "J$u?o8{6dMכ]NىO;mLz;c;}mV'nf;뤲*p{kziS!Pr~r.xh̹ȟsO2.*;Wi 4tO#EǵW3 2jc,⃕I~&>4alr]خy7f*9  TQp٨RZn`;^t+55f"VZFjՆChC6\Q2u-*hM3rt,ͫ@c9 ]Mm:9/nziÁP&D8}1z@@.z}y]Uw4Kj5l?pXQìl29b5@ Wk,U>I;}9$5 OX'1dDבg/N3َ/OZF $W~r 8 X%U) atګL[5iBk}jPi$͜w(|e %$_Fqi`*e uW٭,[`W%a*׀>bux)yVC^@ZhY/ mƚ<ؖvaBk)W/NZqvKj!0OVexUC#e'.Uu+$P-h*+%2d̸T ib,(A  pdHL7 @vh;S@s97 JCUM,70\` 0z%T ;5*r8dl: DMM2C%` L /4@jr/CLp\m&<KX̪U< \mlu!6Xڮ[N{;v 7T yʡvQp>[.{{{F[lx9AA\+<[ݯSӺm~fs皽K@[1^ܞV~fr.,h 8~;ԺV Fz s3ewNoaXw1upjzWz֧uݧE" mvc?rqHnIL:Ct3Y-׫4pU8GMD*"@'B~*g591fڃ^&{~#rbX F^Sߴf J CRҶU*ܒQ0M.$GM`ls+ drU293CKj tw*0.<.vF+{t +0@3K#־^H$i*, e%_=L]^ !r*w P^yѪ 4@BXc$5$Wx%^\,ݓ{3v:&*"XV\[5{vO{T!p s\]MuMy|a2T kB\]]]ZX3F5U*Ra8$k:b ͯ6bJW5֒apZz=2Uk7O2gxPp\n#+q#5OWW-s>^VlTN J*Ǖ# |Ėz%kl`e 0 o{֯~^xW PGzڕ [r46~eE(Y+W[9zUEd/H~q5"wRkbyϚpʦ:ݖN'22*Țq KdK]>Ȧ]z NLJ׷p-^Lds&2M7A@YP# VJɕ`'Y 7?ٖmV)mUVn$RI|yt>H[`ڟ^'4ºƺY s P.DZGij 1I;han&ANFUÕY .tO8q0.)3/L9 +T^[0YNe?Bus(T"iGBc T3ئ<Jx1@'w쑋8j>ZYP`rqZHnNĈ%* P`k khMA9d@A& 2Vj#k| dJ_]Hd4iVD@ 뤎}d岢2h S^>ăM᎑\ŗ@mS56jaʎ2%Y 47k HAVDDdɕd;dL`R&@,>+qxYtzVQMmdN2.O ; Qϗڄ2cյAvUX kW%Al*z j*4L~ebقJY1 Hځ?Rd@%`pxd]M&v#U#{*WȢ6j@[!؝dJhlr@3XgNr#Ju+ :)Mxr܀r'dAGU :J[9ܖAI^r(ΒxBJ2'.ˁ–nYoi]ze\(~d9 PYKd-?@vL:$j\<֬Z5d&91T̺=!:Ֆ)82t˗= qs 3e[mZfݚU+&(>z/v<UL 2]ѦMd)7=$[ModK!g4  \=s 8'}I.ya,etX6|/x7@ ItYre&[tuŁFn@3 ːJ⍜0R 2P-0 Ǘ}*C]1૿w4PO k%`Z oeS.*77'J `wq5қj#4z'2/?qڢU enh,d d/69 ͿGɀV<;$^ I1?kyQ' 2\s-۔lzԶ 7bwE§0XBe uH+-clj5AgxL |̜d:i\GIUbX_B*jcɵ\ȶʦ@,/ M2+ ӘƏ4i-OUhOx_]l\/J6 ]xE<XJA/O{|MN׏mشq+=iM`Mr~k}׬Z0GmsF-Nb;2^u79 Xi uNNM/!a˸EWuN66mX7M]=\G'\E ~& 8GwW w}\qm]MM3aL>,xK"[qx5{~q>3Eg91eus^ǧeK ֟a݆Mcn7{ds1&қ/{` LZ h̾fZDM%LD'~ÊRj\;`le$mPCiͲ&XbUu Tõ*9L@L@yEtAfeMÕΜmrZ x, J _P#neyFj6=PWW1- ?˄B7@EI` \Kk@bUɟ^-(&̒C {j[ 6-쀽6 L5-OfJCZotzMB4C66}85e_ɹ$} D$Ibj鳩= R8$zzQM|xl牢ROC{;YXe~W{YtrM 7+KGɟ'fï2Tj:?eQ?/R#PRM* 3kYWE24Jb5_V [.Y EE=`IR d^nW/8^Eڊ%-2DI1qى1-Q¢̱%,ʞ.լtL+%wF UQ{y6x]4C'ؙ,^%|o MOŻao~1~{ť싰9C3Z[,^+^^բdqkOLk-JXlPr%,'NdiRxcQik8_5M̧ 'Nv/~i>O[9j?eX͗"juWH'CEL,M}@ϧڟNm-xw-=/( ^@ 3[o͞3cjl(˳HuޗΘ3{%CK1 2 22 2  2 3 3 2 22^"?Xi<9}@d1& B yy#'/p(h^ _p˾?=`} {]o\a@K+-?gIf'~ 0d;4EUSݝ>gb\Ɲcn\0߯ vƂng,mnԙ2 C~[Sv3vH;6. q6/{2(b,BOZ oW}puńE!!!hOMXw7OԐ)65dm=sq<vrӏH߁5q}@736o!Wl59!l3Ə|څgI&<3(u rԣO,H^;º/+v\_8yG ph}?+Vlה!~u$ V3suH~=-}?Z -y RoKg9@\ùu6܂36Un#Y~D0i0dȐ^!C3IG笯SGb.^ʸ]G{٬MҳIXoi5 ;X!Cϭ(eMR) F4Xސ42 OZ|Ȑs+ɜ=f8UV9Xz1 5_~ֺ@ co+oBaNXbWWw(5pխX`S+FL/:oN]-f5C޸ŲKլ 5C޸=47m}ń8: nme3u^*l^ײ鿸+o^ˉŻ:<,Wƌ-r"e)dkh-_8y!_ YݪP:s{=o?y> [ ylae~ 2X 3+!l MGHikV]y ׊d,Yf7Ɯ^0A@sNJy}EK/^M`-9,32. Tk PB UzArR0IBp.4gb8aڕu~10Ǯ ]hbMLW]Lxn +dCʯ'xpլs|qτٴŏ[+dR2iJ2I{ !Kx8.A?=2Cd^bˠ 0nS-q A@HjrjDXk{[`}bE/ u}@(KʹpիW\g]ųL+noZ6zbT:?2#s%\|evY+=+1kbѯx7 (kʺ_zC?Y}%}Bn.`;;zw.sv~-s 5X[QCuskjmUM`3nSU}gW#Y |у3'zên]nXV {׮$Oi޸D`[R'Yԩ m}q|=~B0r Yܹ'4{ټ!ѣm}B4|!`9L6WZ۶z; P𞐽cKOβ1bQG,!#Ll\3uC1^ZȊo-i4/vVNʜ83Fl̷MZJv>S :%e ٕnt-s2bHK֛ئ֜K;Yy&CtKO{ݫo*R^ Χ`9sl$pҔؽ$m,4.,L>[~XaG*JWz> A鯘lfB9kt#oe4KG9ʥZP 0a9JAՒo EJiP,Γcǭ#|;Xx/bb7pz(D 9ж @k{xkC&ցS L7> |t17="M,>vmZ#97_~g}2b͝s YI_mlҦZ츻I[9I5deڤ/lݜ5d=30P9g YiYe20BlMJګ}CDZ Gf09 `y~/v|3x{ Cϸܧgל9SHuo nJ{hnZBRJK{C6bEސh5R%{ MY%u^w5rr9'2v zb?hF) " n?V2*<R'6ކ+qts߻OliF/f 0Ǭ/dWKL~6}Z LAJ[m00,&fjm2|ԅ?ޱkD@ 3@7{(\f5sIBwlk  2mf 6韶5޵`Z~}Ю_ȌL+:>خYr ^6 gMKw^n ScȖ?;Ku,Y2]/ ̍QS[h8a: 8|@ X^a![ 7~_gLEM`iPDBER}d`o<0 f(cu^Kay=:Ѷ4v%ΚT:/X{Iz>aU^4+}#cf!kʠD6.dw4ҚW8ekG/`a,3so=mi ײ4YBi|iG]; 7`ŮhvN@3{v| 3aqN9<6@t. F:( `zȾqC#IՀ X[ԵIۜ18Y!{P12^\k$|hcRCˌfb'J>XT;rdڐ=d3п7dMq 3z7:S~9dC͑],s3C3s b BCBZ<]C6ˌf-dKЌm)~4mL?eÖOCĜ>x_˘nry >̕⯑ҷ)? F:Uv^zbk JaC fW`E⯎u+=Ct p܌S!%f_ez}Y(OcqnuOsj6k}M*)r TX[},bNuWvjWvٛUkWzt<">-cm٧jߗwzg"NW~ũtӧ&hUhGudƹ uzdtϥyÄGMnxV|˕\lk՞:4}JM݁bmo ]+ ^7jKc. RC"2i!oֱ4~э#(`G_ Yy81#dҴmd'23Cm wʣi 2BV d̐UK4(GzJT{Үr0ސ1Dma: ;#3B2 ֗b#ژ"M{v[ 3N >ōГ$ ܽ38 n۳*l6#6uf؃"".Do~RɓQ)‚BCo'_<~΀}K @78 - }t2DG6Q'BCOf=qBC'_ JwnBǃCOv"48H ܐ6N8!m{i .?:8w"4$0No nunn:A/N 9N=vKcvmM *t/ bxo$lH4^[v+;dy}SO?oUC[`C")0́L( 3{$s] >y;@t +d$0(S <\Rj@AXlflruv<ÎZ+'ww-M#C7ŎrnzEC]\qTTFە޳c)< q4/ofq^v͐pPp!s DH._O[8ĕqKcl5&!@[:; e~ S${7 Y?513§x&6n׿9,3cD*q-3:M:Oη7n{}uL/WN*/MNN[c_YTzuqf3;=g]l{qq*>y.a=zxqZќ^^){Q/yV vDkT<쒰ѵmIÆ}̝l+_ $}çB{ 8?mto$$~Pv*`v3Ӻ/mJNԩɟږ_n9Ŕ "ibxճE 8q3{5J_<Ŧ2'nj/HD_ʹ5ne WTx㥐7]СEѷ ӭ%;{]1xyZ#귙uO&}&{fnX.uyѯ]7k><^ 8^N_m:\8v2; 8=-n勞~6dWރw^[NԵsޓm¥^va2]$~A{5s/LŮN n=2?FzN= `b?bmm18bG6v9xxPM}a-e[zt| =^ȼn~;j$L-/쿧ב?|G[֕__qS! _׻ENݕ>cקO S5cǵ#=f$- 6k‚ӸٳMslԼyzFB&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&"(d"" (d"" B&"B&on-Qмf(du^S󃖃(d6BL&*dB&B& B& (dZB&_j#L醘Z?Y"sE(dϵ铙O! B&" B&"(d"(d"" B&" B&"(d"(d"" B&" B&"(d"(d"" B&" B&"(d"(d"" B&" B&"(d"(d"" B&" B&"(d"(d"" B&" B&"(d"(d"" (dZ"(d"" (d"" B&"k8IENDB`typst-0.8.0.2/test/assets/files/3-advanced-team-settings.png0000644000000000000000000243613207346545000022026 0ustar0000000000000000PNG  IHDR K @iCCPICC ProfileHWXS[zDB *6tUD숝Eł.ʛu_|?gsܙ{8ΗJP-%@֨T  :@)'&&E{IZH A>+RY!Do9P]  • {6 q\[Р, *dA z.X_~x!A) }v:Yj.ʢ$.'%?OVj,,N1g# q$#*b?J{QJ<,Qe 0g@b!?(bcC$yQj>#SƒtEjqj_h]Qg2_DZu S *'EALع 7>Bm38o#)ⷂ8N$ TcE8}i~A|b^+NSkù`DNb`Td\`ܱg"IbZ烴00N5Hb(/T[@VP'31 8~x*| \X@krީzB@'5?"Y#xP H *{E_X d*{#rAȃr(ɀ$2x*|?@&R=`b1BǍp?X]q6?'vC5B8lOQP?Ds@Mw<PǍpp\u܊~ ~xj; %"~Iw(rc~Tf ;6gKl>;azŽa X+vDVc'*2YREW(xGxd8+Ł_'8a^_ob D;7|΅`'9;6thpQ 8\q!4C` ,+> p @  φ\&`(e` X ւ `3v}'ip\z: ށD 3qD\6#H#Y#S9H YlBH#r9#Hb(EMPt(F9hA h1:]FНhz^C;h/0ML3ǜ06ŢT,aӱRj&`X7'L;'|>_ŷux ~41MF %rVA): D>і b 18xN|D%H$G/)'JHkH;IHIf!;4j\xE&{Bdbr"MR(9YՔZ)]MMM M/XML՚{4j>Hա:P4zzFhB"Z5$>IwB z~AfX38bF9c?"[ekMתjԺիP{9g:$`\:'u11%000O1;u<2]m=z:znzIz*uc6<<d23H4hA7l` 2(5mp!00pa=#(hzSF݃u  .omc8xfV^SP&ݦ9+Lv1f+̎=g8~%!ۡ#(v\>0kdHՐNT'SSg}H/Z Mt虡\]\3,|aM^: \+\ >cxWnn"n7ݙ#7yztyZy{Vz`c g^^3{}.Og#lGFl—ɷÏѯܟ_02@5)Ǟy( <͝=' bR:%x!,"li O{O oFGx)l |((IT}4E/c3!P,16&"IܰqgwĿKLXp'.Q؜HJKNz,cQF]H1J4RRrtg{ZI1c&97hl#ғwGʌWJB \!ff.|囵<+?<[ ِ>7:w[n_^r|F$W2tRGiczdHB]#*"PWTQab'I&Nv`ߦSSO54δMӑӛgXΘ;sf(rg>eo$ik2wGRSB/ܘ3o||x~ۂ ,V*,=_RV^e`_׾E{,^DRۗi/+^hu+X+JW]9nr (:VGnXcfɚ/k^]i\:n0PFƛB7UTo&n.dKҖ3jlmm㶷T{VW0ޱtLyiWЮZMw{{M{}_ľTd,C&gw4477674<|haG,>J9:h߱cǥǻOdxe']9}wµk߼v[y^.̻7_;<:<z0GG/<9 IS\ |K3Uo l{7wߗ~0#Oɟ~eWM"e|+ mR`e,̪D?aQY<{gC Ç\(Dx5#?:s-Pw|9[$>eXIfMM*>F(iNx ASCIIScreenshot=ؓ pHYs%%IR$iTXtXML:com.adobe.xmp 1766 3046 Screenshot ?iDOTs(ss@IDATx}Vߵ9{½ł-PMh[jJ&iJcZ)J& (/i}14i+*-?Uт-R^Bxr{YX~k^{8y|s|1sy FEC ,Pk;M1o m~DZ`I}zyx9&}:c>XAu_3C(%6z߆1K?B2׌y~-eޠ/SM[ q XQ_.6$΀~Vm">3b2MA_N?֛@Ǡt\ uK68F_tboPF?:!ٛO'H7-[rsM5?7\dMWW׶\#____xk_.bF׆l5)**փkkoK+ [C`XnMP?GKԺwϒ=~<C/+>`שodX?Dw)n1WEk+7LDvԕ?jR?Q{â{5]+&{{Ru{{,b -rnIg'VZ~5ppn@#^83H ڨ?\l?|kx??k=^dmyb3~N[A>{-l"uiS_<7?VKՓ6__ꊩTU5m/jG1mDf+SGǴ??? Ŵqm3_QOOXQCvBȅ:1}QSH!+keurl=eWۡ͠Yu显hc) x6;q̞L>=) xkcIC _1vs!6N'şXOm&XX؉VhK???7;q̞b9^Jg Ayh#z-Uggc>h$DlJ&ODVHŹnvu-qf6m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]q]hKX5泿NӶĉɓ?R,nvu-qf7m#1'hdWLF=f]/ _/BA=䭓:ʳ.n~N]1?e]@~6:ʳ.M'_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@~6:ʳ.M7_sa]@3gA@03y4,:`/DGyg;c|PQ/n(v'<䓿#c*ƶ$և x+TOQ(ߊLņߊL/Jl*U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6겿+2oW+k+>W1>qL7Jl U|LOm."f}FB9}SmGۨd_f_ѮPnh_Tk6u~ܣSmjzr/Y࿐(o?8AbK*3o<cҗ:x ۯ?DG_ş?Q7H=̻hxP_j PJcW#6rC=̫+e,PwcwSw} sͼ(/u\he2i_p1?۳o:H+E]=?8";UWlo_Pq/M*/g;o7dWȏ?/Ro~?lA?|'ݣe\h//g;ƹI7z1^X,HE*@ (C.DoIzǡRF`_^ܦ|ǾL|_QϬ/,t7m_[]Y>Wߝ?tr.v't[珏w+~y?wsϝ?ws;Lw{ sz1=Qem={|x|!*LԂ L 8i}:}O#0 %CyWƝ0Hx䯸o5A e7_?ka/\WD׆{e/VX|?5pwk?uG?V_+lfnk%m孹X#wXA{-{9o?- ݐ;\(1A;%eBx3ǒ_:8 2;Dž0_x5f΃)_y[fg>-Y!1._ڒ⯹,,ԇ?3??_;ua&<KvK/tsoã>:a!݋l}|,@S>{VWK>ꡛ[E\taha1X`g`-1BzfJ? ~ǥcWA>e*q/ہ[H'Y}Cw)((:/S?? H(..^Dwww7GILWW\??\=whwߝ?tK/?O?^rpt{/ XTz .@'94W>r|*eɞu۟|3_/΂%SmO?c+쵰>G٤?;W ~lZ?+uCaYg{gO nC~Ӟ{nr^81?7}B,.b<^Ry]DKա"qis̋Iqwq";S޿?w>p?i'1~k_b@g?h?% t}i?lI l@ :Ο:'bΟ:qY k=w5klgǑͨ! O4H!p[3yĦ`\gbku qlS)~:?峰#|ۘmWɇo@1ϜOZӊ?ٟO'to7 g=_/?ſD^n<:'? ^z>wz_1~lc\2+G?>@d!<NS /" :)t|/y9n2c@s+?&Y}?b })YǟZ'Yk"k-@@@GGI[[UU[DGGGWggg'M2(...m“?Ss o:ﬢwsrΛyh.wqX y-iPvuOeR["4|L>}C 9'\&62cၜrɇiGv +w?k?_@no7__agv_ggggggggg1fgw-6 Fgm6c {5N} Ǯϓ!sxA6s![&UYc}n>o :f -_% ˷{Q<= _+I??^Hsk,Tƕ׉??ֵM7\tgtp T:_:nP/?g}g I_?{3):ʶ-see0}h7VzM v,RݲO~ ON|;ےq_6MVeRhv7OZ׆4joeRhKw\l?+Ly۠5vCs0// şş؂oblB_Fh_cTc[~sEe5g->_?igZ(--]z{wjgcoIxh1K!̔OÃ/K_q:շ9dUOl?O'wo_?VW[[kKo/:`D>q6?n{3SQ@R7|DGW(Xm#>˔1m_ /!+-A6*`oSmcb!wloCe+}?ﴏ:],1ZDyex̓i'3+uG7{"'(gs%WC9혴$(/4O ix:TLiǃEQUvZ*2Sf<Ǥ֑^$߱N|uL|.z?ӿ_iO'l?O'Y7{W????????сǍH[_?2'?,13c2W?Yvڮ+AS~! @UT\`RC_tP }.0׼c# +2_ÀXX37偏dʟH>SK8? +r߆||OOZ5s'danz?o n6?X+Cwwwwwww7Gٴj{1 uC[|oy?b۶ܝ'v&?7y?uL/zߝwF ֡,0dX.2Ǚe~A^>^Wߔx{^*5WMkcߟW_idW=WܤwLi7]]'fw],ǩbt,JdWl!-(*,6vnGE_?ߛƐ +{ܨoj;????o'$3^XMƼ_!{}oO*],{}Ryo CT<+͞M wL|b+g?h0O|o/zxSw:5c%ij'I_f7d??_t7+(((((*,,n_?\¾?wC?tC?tCZ5xoR>qrI!yIۏgËC^wGTG!TSǔ1Gǚ}k wL~{=|Uȿ3}=?~mfv5/ǸOj8?c.C7fzо"wL<|l9BYJS Cq*|dz}E}}ٹ %y@{)5Fcc#|]55HcϊuTQqU]UަHkM\"ROlCwwxK@?XB_ O[r_+_:6&?n&]gE?_u?v΃1%#m_~q>6Nj|*x*m2NYAy ˡgʇq|e29;G߅>{E{Sv/T|W&mQlKbyfĤoG1]7-(((((*,,,,,nWߝ?tB-?:  ݿ_ceSggx]W?f< BYtKR|=ċR*3bPpQy ʴ8 TJx$y<,O,nlsAɧˏʧ?2u{|._){??-fs6gCt?d?[Z߭\ϊGk;NJ؈ϫߋS2e.59E5KxW׾ʿx)x9wP~KEN*Vn~xF"YG\>UyhCCE򩟇Kl1yy`fB_[ϏCO|e睯+ %9ET߾G|/?їfMƟu h|NJEww7a?o1Ά)hCAoG׺??Y ߇{fijGgGE~닶>G?c郯3?_ +!x}}~N繥 0?,>* DMd)3(D ; f<\&cL>{A_O>}W> /{7~#kZd?Ogܷj{3r]/b!=) ZoW[ `+'C ﶏodoGۀP/_VJ 8k׽)((Y=IzHg:Sοԅ?;Iy>!?3}cxm\@<|Dxgwv: oj2}'\|ɣ5UIiԎ ?uW1Kף|.&y?Ƶn, MF΅'uk]?O:3+???.?(****z:şşş/%(...]$8'>Nq7?s:}}?#uSq')s{^2q<)D[g_y{1ߋ9?m~}2Q'Ǧ^sA+, Hw(OS>ɧ^>cPgi>cit,6SwWɿW߿)y.eSNʓ{" [/ x{jkv"3.>oϨWgO7??^~mO??Y;US닿.#??;]kr]w>?ry0?4>yO=җ˧o.ϫU':;жϸʧgʿ~#>g'ֳ#C٤7-_ ~_6l&56SGdJ;_l?ٟjS_Ο?uh%}qnMt:Ο:'@o=o_C|Nps%{bSx9%gq|þ?}HR}vOAϸEm_FwSxOꡩ嵝u(C~xUI_Rlu{N%{L޾G)\r#M/s,g^Щݏ?@ iws\nfҿ;RXKP(i?Á ko2v' o7l"6>b;އ?f5/o7((*;XWO{{_n{}SOټ~TY?ȇC ؔW)C;(?$ KΝ6ߙy/_YJ>S1VZz|'YM7{_OVWhHFEv8OM=*..~oG;Ǣ?4>zev]7}Y":YWB.+s'$=(C|ɗy_>JIp*+.:M\hz mW>oB΅qGd˧MgU>kMϝ"s~{v:n)uycACiHm3o_d1. !uc|x.9B=,;#SJ>31߹{])v*> W]y~&Viu O'dV=(93yt[QQo??<1̣'___K;:sm_sfO'sH}-XAYU9cGco?&mwU3|%EvE!cYY|y3ãS_~C \/,ŻP*3F]>C=48+s,x"29}uYR-+|g/>ʟ$}Wd3O#1QwH}S;VWLOb-Qӿe>\ڟ/8+[ga,o~)"bk)QW $! =5o%U? 55ڎoWN`1-ri!(UgtC[((oXtxC_b6HMQ??)(Vh;??ċ_|?y/T'vMIO=%їwuӿ} 8|-}{ eP> "O*t ʌx۟:ۖ%0 }T%E}nO|w;ٟgL8m߿O~?l|o?ٟէOg1~` 2t^(h[k:<ʡl'??Vĺ>WoړOW] ЋNJ~r5^^P\ODw`,,nkcFlK^jfϿ_nqY:e}{S|)?|96d/Uw)ۗ>3'dAy~g/~͏{ƇC/Cz ~`JEUVg/6}|l꼔@Q@IDAT":SO2O{/Ý|t#%N\&:_yzfM[d?{?j??O7c?آE?XW?tC_<}Zum_I<~t SOD&nOm@c2 /D."/N|3ONyc\1/wPwSO~p\d<3ğBqU0 8~Ts1PJlLqI_] c1^>eo?r}u)a;6H|w||?m}o{xS^/m?z~7[e?/7[ŏM???hgU?tp_'?tC?tCOwy+Ou/x8c@A=]G>c'*C(v|dڲ< |g`ȇ#|L$??4/gS22nW(2eC6Rȱ?&*/Xg/}|g/.;&Sz6gv|+c16t||PQsl?fט -*XR7k~c5B{[QQ,??2N|d^$_\7>Q]%)~xֈ9Cp(ڏf?1qA׾[\yX.cS?싌@K +-kC?߱qϹ{!?;?|Ɔb OZٟF`++a:?VQ1mw____s._^Cy KO=}?O'o0Cwb^ dЏiC)wg1j m#e?ncE~[aN埱1lXEm;ﰗ]x;{̾{K^>e|tʧsNʗ߾!S2g|gf'!?L:ht|8ǂm#G%l?e0u,-^$i:w/0?OOy/lcʧ/oJ)ql뼿O_۶oY9SH/>3RoY9߿2ٜB2|䇿nM2ꂺ?_\s쯺nd/>fXmn7.o7-(*"L歧 އ8O|m#@cnxI! -RO늵SY<ǟU_?8W![6G>)1CEt :cEg`"Sl˧wzHy3gB^0o L}C(r m~h7eS>e/,+ñB޶S;/)SR<\|ڕ/PcQo)鷗O?v||y/y^}G%{q]v\oˮ7xZ!ˊbٟµ$W$_'n1N;ܪߺ.*s1:iGohXW/l}4fD7$[? :;C/mCg'kC_E{jemw=3ozGc/eo۔ocgK@ו8|63DeRߋ6чvˤo)O9Ggt> ^~HG;@(C2GʃY5ξS |e )Sϼ|4S8;0?6T?c\& O|O||{ ?[{?-Bd??ſ$77-_GGGGGGGg<_şݦߝ:@$ eRhW<|fSGkC;bN2)4EG䋿V,>iyPt8O.CW?o+]$[sL>m)y{5R~s˷]?i#gxɇwΉ1% ҽܘg*֏'KNvU%{ y-#)32WSrM)CK*^ mG_bygٿRu_S3ȧ|S?)+Wy9Og\xT)֞|OOdXqٟ ߋfL7;Ka+|ohq_kf7jլ?6|?hwܔ[͗P,h1>{d}7;m}H6Wt)~8`<ʃw ?C&ාKJd=㑷zU:_^MlLF@P*`!S/ٳM^Gb|7߿^c*}y:{oEnR>cLJ?ߛoo+(şşşşşş7uT]]ś?mW/g?\x.I4񒗊?Ebųcӣo7ލeݴ c<+.qƾLx< 2)C{o.u븤˧mO@e| /迗/;[̃:s/o_^X/Ao3|GcY?T.zR'?bIA~G9Δ7!5·1KL)w@.c=KJkS?Sޔ/u[o?R9|J|r|u|8_Ci^a~ei4?vwdOnj8 ****bXY9|3Aşşşşş?6,9*^uG;>S_{Oz{^믿%}^z !H%O^~[}yۇ~+ԭ}嗉p"e;62 .hwt[珝vwaK?~߻tG?Q#u&OO}??|xy><<\_э2D/yKL\^+L?I,UR.9?3rMq|L˳dޛ*@SK=yư-۾Te ȀGT>e66q|Q?CC3} ?>>?/+?~rUw_.˯p{q(qvGeWo?|wG~~tp^;̹`h?α)̸o~ocR(#ӋĤ\L۔@RH}۔kthJgSA~DH_Y/SGX~T뗪*JF:哷mڐo?R/U1!I sG/ܹW(B B B B B B B B B B B B B B B B B B B B B >ϫkI?w}w~~}C? p>0y({}L>IwmC UmW y WE3}$>Tű:@& f”1|oxMJA /#ז`,Yg3S|Q>b)&a?7Oy/e*9A3Ŷ%{|x͋eb'I`}hHЇ~g6S?CʟJq|@2 ~>"v=/ſ~W|}ͷ^G!!!!!!!!!!!!!!!!!!!!!w w?;~ǿ'?я2_X.WwLv xy:BZs1eb?3 Ƙ㐷G=4Ǜh6h/~=t<|۟j 'r>T(^># _>R>ǃX)9ΝvH)Ia9w;ig}g}}_C__Uo~(B B B B B B B B B B B B B B B B B B B B B!\?wo,3p1߿,t&cϔ{ƴ>3mzȀ}i˔v囟sʧm|OX}sw)Ͻ '~/&LBs#Y&=>!?)m/)O=)6Q/qhSc^&_vLRRgw}7|?k7xK @@@@@@@@@@@@@@@@@@@@@ m%e~aɞ8A#S]cO_$~~|ַ__~wK Q@@@@@@@@@@@@@@@@@@@@^z][eO.3/{11yynN^kH MӞ>ew>mwnO}S8'x( 'xn;cw?0myɝcOf_'O)1^g,;g+zfy)}uI?Co~wށ5 OpWMM2^7L<;)mɧ'UϾ|6& 싿~~/GÝyY}?'/8Ky:);y?Sf);ʡL~AoOW;GewǠvN4ǟm@e|ly}y>/_/|åvjtB B B B B B B B B B B B B B B B B B B B B /^U_|W,sSL)^v/ g l.]$ǣ|{g:d_SK} @<1ϼ&PLH( z6?a1"zO 6(c_$? l~/6~|ίYD;w~kЇe?p{~1)ϼLϼgl~i>w1/){_oa?3eƧyA>kyHK ?Ay8Β}:Dh&ySA:{4}Ao;Sʇoʇ߾(yƵ47kiSwu,(B B B B B B B B B B B B B B B B B B B B B@e|C2=ysvz;{~ƠfKk M_}|;sY%:4eO)~lAA6!R):SeX1* cBLs4wg!3%}'?_^zס9 ~{~_cKf?{yɞՓ~-ۗuC΋a{ФwlRƁvۨ5uN+tw,8yqP(mT@vپdcA{|_}ȷ$9>|A}?D*ec\ >A~^D!!!!!!!!!!!!!!!!!!!!!} ܯmg􇗇;c@M?iʧ|xs i4or /<uǀHvbg߅@}qL۟ʇ1IT yc]B>}/2Ε1%E?_lQ@@@@@@@@@@@@@@@@@@@@o|7|_Yc{;<./lعcO{.miya=ϜCs|kc*:EYeIll~ D>q.o.,C2d=;l'"LH!ʥcn=xŔïז_W{(B B B B B B B B B B B B B B B B B B B B B@{}7˄ry/`"s^tv'?'8S)z_3}gyʎyzdFy-/ܩЇ|iAlgRW~X^\W3o_?1˧MbʌL_ˁgslƃq^Xg=O_" xx啗||_Ϳ_e?<#Gd;IDNp 4=9gRrAFqq9gR<&by :|Rq}x N>ǿ{_m= xt%_e?)D=|[O'}G &p )s,/7"u>S><)9OyIA=)ז?jG!!!!!!!!!!!!!!!!!!!!!']p⎱G&2ygɞ5?{gפ}]fgRdQl?+x1%.g<ז;ɋ? BzQ)Oԑ! #Ǽ/Uzzџ6H%".}?h=8̍9GA|HiS>}G2y6xkKg+_D!!!!!!!!!!!!!!!!!!!!!\_>Se`y>y2Q#~XB^[q|*?GD!!!!!! O|G?+z˳GX&!W5=B B B B B ^h^~}-//k_g@byG>o&l_4S_Pce^;AC!yI!ǒ_\zmmL>~Xʐ-#@{+p1~߹#p!~/֪B B B B B B B B n }wAnW^y|-/c!L?>bR<<һ1w)Co6]k7y;a=ï,'O~KաcGO%ke.'ϼoɞɐvs9w'>O|(B B B B B B`"}OO?@@@@@@@@=%OO{%(B B B B B Br?}'_\|dy+EfS!Gα~Gey쁼LkCy~yٶ|iHʳ2R>eeGXZϭB &i*[{%@zI("MGQGԧqXDZ>ی dž:QV@ZB-j}\̹{^k\Irwց=-p$`=1p:̓O="]'?ZqC~|xr%?hb!`!`!`Q3]G-9$bΩYyKaaGsEq\<|0b稇h ưE ]1v~L .H$#<)bT8M%Ԗ$0/6g|̱]7FK~~7șÆ~:{'tB0W 4գ0 C0 C0 C @QQox!`!`!`!`D-[D0 C0 C0 C"ʜ}r}[U*s=lq``y?s #/}ZޯޯC's?Ă0>>r 0>)-hE0lqb <c1ZS (8HʝDgϖ91#&@Bc؏=kQ1[~A{2C0 C0 C0_+7nReb!`!`!`!-`Ү];iȯ-Y!`!`!`zm1M>/'1a9 :<_C[Ƈ p=7Ï_ßc衣P6u 1{:0 01 C0 C0 C@d۶mRX&!`!`!`!`ц*r!`!`Ν;iӦfm@%=-du\zL>1Z!SIW;p}^3|a =y_O-́l _9ᨈ =c3CeA m Axsc0hcSn'xG!嗁9`AZX XD9yT!`!`!`)aÆtmC0 C0 C0 C0۷TY!`!` _f̘!}/X7F-dC81|ڬc 1y,*1Mn 2Ƙ=mI[U5XG l: }qRuhg*-` q/ET8Aʜ n a8yr-v8ᘣxRzoi@Oh˽P[69A&-7`ZI `0 C0 C0 <9<7o6 C0 C0 C0 C .xA!`!`@CDTz-ꫯ޽\zҤ @eIjJt~`e{,Yx1}:Z|2S9\GI>_NSEo/¸ VDEZE'k^~ѧ071 C0 C0 CF`˖-a!`!`!`!`D/M6֭[Go!`!`@())7xC|tU.2&7༮^Zd.pk/111/mڴN:Il,([,ӣHpEf_UA.56O5l) --| XuCϵs9?>׈6ȍǧv~NƇ _&1pxR1,:}pSG_CІw58! 3̅:XgkX܂ix0nS))x0 C0 C*֯_/rU(ټ!`!`!`!`TСáM¢!`!`_}Udf͚%11Qqܱc#N_~咐~ xbFnnnnٲ\pҥK>X`AZjIoJ0]yb!L2ZK/pпbӞ1hk0?օiSc{e_6Ilas !C@FX C|@?>ֆƇāhS~}[|CÖ11> c HGLrr?1^"ab _D]*_&Q壮O1J0 C0 rY!`!`!`!`ٳGn"9Z}rHƍ%5%Eh!Ν;,C0 C0 !YSLy9gu\ҍ'O=+4AOJJ _^ BkϖqaC3t8@>mb\gn=ЇhO_`Ts\[zc3>lq]xC$ A7ANOu1`' B>慱scz:-uAKDi L C`֭[oҥKݓ 1bzꩂ#i}A2+C0 Cvg3 C,Η6o;p/.ņOIںm>0 C0 T']ldd, 7HI)o@rRtCHF0 C0 H/,XmaܸqgTGGo].\(?w׶m9_۹k4U /̝;m599@K\|ꫯdN=zy普_>ʈhKƁ?Db=8(hz:gzؑ g\8u6^UdKDa51/S >̨(>0?|vZ=qm-|b~ܼO0Drrr"<(2p@袋jk[ 䩿M6n(iiiruI|||0 C0#G9 C0'{kb% 10 C0 H n Db$Q+{jJ6mZ]4SfϞ-5}-FoeK?96 C0 C#0|y\ܱcg~o;_~\mzQ_9sH~7^%YE. <' O6mڄ-T~';W_6ӑBS~1W"$zr1s-H,ccԾO6~|žk*{Ọc|iK,1f"$qMs v :ڡx0A 6nІ:?-bKt+KTcbL:=]?OyE|Vk*ĎP*E#8 )%O!`@G C034R>9:qh!b JZM⛸Fހib!px -\G@5EKKKDS6my&==K+kN>MVZYN{OMYM!`!`C ??_@0ԩ|1 r>Ǐ*wɤIC 7@IDAT슌m0kֽ1e˖n47(; Zg}b>+aцU$cv؇ a>o>Okq֏yi>ZZ#b}2>s:-qNN03?Ρ??>a\!ʀBl&[Np!<'B?7mCu;|N=l(9* †/!>*0|_ÜP~V>VT5ϓ)Q${vQ4o, ,))U6 v0;h/w-۶ms/r>$+WܙL0AFu M2E~SN)Kgu1HUn{v<}#!`@t"HOQbA71i|ټysG^[nΛ0 Ca!j* iѢtEw&(Ѿ{ܽkdm˒+K=GV_(U[AjpɰaС~@xl0 C0 O?-*7i{-GN\0J7( Cžw!(ܚ"'O0V@MKK. 1[FłW 1ȵc9Ϭ~Ol}{1}1l X_߷e,"Guyc!X>0oߟ0&@=VdXO&WO} A`hׁG? B'' s #!_S5  9 g1>1>}p=?XK_cEn9k[oJAX4_6IڮT$ʎViߣÈQҮ]{INNv+"Y?dWU- o.(ouU,rzl!`!`я|o!x[ZjءLN1 acတycr1bq,0f<ye أc3Оq`ƇXQ?x:w,6cc< 'XS QGd98k_UA?}A s9Ǐv#NY(>ݻkt͚͒Ii7Ab ⽲Wm ۷ɚ4IrH~x%ltK"&IBB4jHb).bٽsj66f1贃ߴyȷY$In*:EAͯXv+~r%- k5Z~6 EiM$1շ~C_݈QIѷG[ߞ|RP92xwNp30 C0Fo8vb!= )k7$w7Ekpd,Y"+VpD| PYE6223zĈ+ ]ccC0 s=Z=Ï>P+ر'Jǎ͗.]*f}&Ɲ"]t&R S)VAG;fp2?mڴ0 C!!'}S v܃Z͛O׭O={g)_ ~nER\ II,gp#j C0 C<3gΔ_pEһwoo?c 'h7;< jPC#WL?)}]u^7M~b|Rzуc!YЁ \2k9580Xvi]yGL?~<̙`>EO1FR-7=`~yIIB{/X9*7\xbg~|iu{?e|k(XGQ!Oƭ\B=^T)>&!_lWI%:]{eѹ[#V9雔!{ƍ\~5 ⺁ܼŲ|fYTGeD{v#.}Q77 '9KYn?2Q.['r{UXs"b]w%2<3"X^M0AFUή._³vڵ;`@F)gu!`@C v C0A٣zȑMgz/F̯5tP5~Ueiל+Q㤓NY!`C'#)Fp4} zh(GPǽZjrDҪe }S!,UֵzC ~^?7Z#,x?#%F̏0 C0 !O? ƍsI#OG_|1xfYUk+(|ōg$!Rj='kבG1ÓP {@ONQ[K[p/b-23>l-z`n~yaka_̛9bC0ܿ(CԇeRaqA҈ B>cǰg,b|~Y|CC-al<t P)&'~zYc#S/LuUQ_ wD0>pS={e*% ._H$0> ?J^m$&NI p },n#;ZV/Wz/$Kv-^YIR}PAxJ~ F0#QW%`ΝokXڨQ#9YfF̏I8<܉r '駟Ρ!`!0b~<%C0 C@M}:'$-|xCJym\.xEq\~4D<,])˖-vmɠ>`8\uR=zt9ڤ!`@C@ByWeA][`Yzddqq7ZW%1mJ~ojM05YRk[*qzOy}h!`!}dXǎ!Γy !4i}e{w^^l8_O?[oAO0b`8ps9T={{'_~ѡC_k\Rkez:ɲWJ2v:C|+Ǝ-ד >2k_o@ȅFs1Ϝ{0ۅiЖ~J7>0uAq!r2l:}'A 3>m;ec\[.W?~e6k^~G+߽>ER?yGw"=tu6 k1 Q)UB#뜫-߭Z#%'_J>R/Koɰ[j~]|}ߎ3s15rcKU/iNڇZ\1Kr[NAc.K~o|L˟*FHVL_f+{KQmJ߽K6(RϑG=? UR1@ ZSpTOr!`3F?Ͼ0 C RԔ?O7!t51C|.:lX0ih9XpYZ:w"2Ȏұ/wʅf`!P81E2IzZ|Ǯ3gʮ]F:&jZ+o?*q.񕙕҇ߥ$"r80`H1?p3C0 C0"-"EEEm7tT2b~e KŽ6&M-@ň^ٺu;~{,\=cAq{'\oZKKM1e?vlղW򓡇@he-xM XC-Xg/~L&:kYqE9BA Ɓ?>!sߧ_|0~c$)sl@aGv`9l}018( $GWh+`s/4> ==b2_G#[ꚝE!CEU%IݠBQF'<΃/0OCD?Jv~W^Y"]pͺCNKS8=NE yjxD~G^XD:%,=3XR? b&K}/0[+xl]O΋\BDUc:$%ڬrC$ j!`4`߀Om0 C!P]b~RB9op?ݵ>eێ]Pp<6?Sql<_62hhDp|YntU%d &-[ C0)AzM+ia-Z}),(p@o>x_6lX_Hg\VX.ͭ`ظqhX6db1czuLf$1G!`!`D?\sOWG~iP.OӦM;5oUW]/wֺhdwqrRRvma??] [4=k;Kerb 1 ;bv_C {TO|S`Z/_Ua auh3o Py񁁞C0>8OyoKkv/XKsE =[3&t/sE|أey=s Eh^_*wwul*~ ,Uڽ^w ==XM_rl8esz΅ @~M"^~j( )2\0,I:HN;.1mx#EK6ɚd )7fLO_};#; ?"Q~{A<ؔVN;O[6ڤ"b)S몙+8qr4Ċo,}{/ +V)6uGR[WhS /:K+_a!`@0b~!`@%TߦY^Vb~VNMMb|rFA Gޱ'CkGZIт 2<|v>:!0oAl16aas9"x Q168Ѵbt6zHs6BG\'@-k}?yc`?Iy2:2A[Fn},w@~8tv S;r*hMHj.Gzi߾j"%c{iRJ[p*һ|Ce=8ȏ~0ظX޺Me>}+g77, fuQ SIaa{??M8kp~'#c|͛ɯK͛'/A%=\9c^,aC0 C=F̯=v0 C ~lnC8ϙMȶBٻ׺kK̟3g2eߵ&^kv{vvy=k+S_!WB^tNwy!]v7|]yס@?~(9CT޽() cF' @_ w]~kFoBٳǙ))]vr‰'ʰa審uu]_>1*l0 ?RF[_f͚)˗/ /4i @}6CV&Lyc Xեk~vcJJ=ҜlٴyӾE;\ ( *lkm@]ag}; *\"Xv*׬<KͥuֲAs"9qңGϊ3b~ņ!`!`t*eUJGw^s;F ?A+BӃ:(QJ}U##+/TyoZ14=Oq:f> c^pEZƀ~0&ơ_,v`b&Ǐ=0>ǧ-17?>=7"$S_CTi\|l)$_l͢ *h1W\Pm5IH' @y7B17: A^;cTcg/cS~ξN$HWR_9}L,4?=D}pWa%WNJQU?Cl_z韲ukjFqZ1ZťcR~$wAI(gSs|`O۰\ C0 C 1? C0 C p֖W_+\i о]lN A[h$$& 5G%wUǏk9ݠy n&e v~:X-&wʩ냉T-YDP78Qe T%xXc]:v,]6o!P?xS2n)WH7?|/#zSB ؏=V)汢~\\#IHHpukȏs֘ܳ[n}OeK7m$o5Uo%"=h~PﯾګAr~]d\'|kꛒ-pO#dG͉!`!` H׵Ɯo.4qx4KOٵz?}G8Ѓs1asShO4l 2d7Z1l0=`-zĄ?tX;_5h161Anl]/ o䉡rd~|㣅*c| }a-ƾ0/r tM蒝|>A,ՆR>.UG>P&ȁ~s:DbdٲL2U8Zq^5# \.?UfUPXAvNu$i׷Ӹ.? 7vq5ײDq\wc|8 W_߷GQܙprС }Jy&L YdVZ;CJ~~l\۷g;r~Q~.n5^9o|Uw.:(P~2l0y5 C0 cǶKC0 C Wb>Y|<ЃnxZ%_]&rS줓Qݟ=kKNuBc7q9RAڿh(~Pu=|'k`5Yj۹Sg䑡j!`spO-[=z{FzU֮= ۷mP6geEUaԤIS9qzT[wVWa{V;\ °Jy'ݽPË.` KC/|*駟QCTߴys1|qr>z` >c|9?>\z_/ZCÎ{QsA 8O{!'{^~ѻz0*ك7ͪ Rh/#0!N&t;{`txP~V+1ͪg߶z}L}hQq>G >ڙW1%hl#1K>]qGwhGtTb0 | -C9OWjՇ1; O?]NЋ femSr[ MIIĥv'\<4H.70 C0jkY!`Ac>"Z9E2E\[&Xw-+1c4y뭩7ܨo5DW+d-qhJws?MN;tׯ~)W8T]v=PSfo!} 2Kfʢ eΝH w>uQlܸA̞;Лn{A}Yw;hcO]X8x R>Ք K<`0bX>7PSdѮH"fy7v7viF%_ 2zԘ` ?has~څƇon1sa0adž1 1.x<A:|!`h)Þ~'b!6trhͣR>p@10LJ99i2wR|M2c'WH*+wl-F}~9pTZaV.W56 ydȀ8\/c봟bw؀ҽmR2:wIj@wa ѕ|UBs).L>?75}u~mR7\wi|͛țodNH{lr x=;[| پ}_\@袋/Q f!`D-F̏Sc!`cb7̑^|?]smlQQx$Wv+Q"\r)ʵp.8J֟}HBb 2ގ8{J71o Y{ݹcرC^yeqܸS䌟uo]{TkjdF!`޽[d}5##dŊs[V?Z3V_~񅳯XKc,Ӯ`OX>[Ø~_Nhϵ׹Ep 7'cS}@sxr}` ɂП-9֮1?ч`=-k7y`ϽX9%%/b(̌ Yw22=U%'?Jtwr@̓=@/]_9ŅEeNtt4k9ħ$(1_q$,}nVe$xWY_c'SSf-+mF]:I IIe\~}2?:>2DngL\Rv)}~i}T;4݆N~7l(S+&M()ҪUP8Uj[n O>zcw&zc{7hѮ?b>H;&*ʈo],F̯ !`"* =- ?yzX͝1a !<q1_W> `AfG<t-lE CC-@Xa,:トyo>r$Xǜ}:ms-b.^zth~p{87G}S׏ íCh0cT&M7/҈\4f k C0 C :0b~t0 Ca!p8q^Ԋj-Z[os''O)y~wʝpA̐ȏŋIa!JOv&W\$Q+SJ҂I^_JIHHt,M1_]v2 !` }٣oAU}bo!99l/m{t~ -4ŒR~{6+/ cƜ YlZ E:t3Ϝ8F̏0 C0 !PS^AQ 1aDm~1_ bjJz9 &(sL2> Eav8 AZa˰c1f|@l9`Ϙa_Ξ91c2>cc /tc|B6mu@MCcIzc6k@i﯅=ƌ]ׇ.cc\|1a>¹h\:qy1|@.7[By ߼tMyDOخI:»R\v6Xb=l@f,_.N9[9k!k#SKkҧ2߈ oJ/A^Ztq\Ne|IR#n5/S~o̘"*mvE!~lLzG1b.WYHI'6>pD6-^#'ŝ'PI45p!G9:&SO=x]v~[iZ_ZC0 C?1+0 C PWbksj;WXX]"{]qt͵ZxR_q#F'֊_\riyp>b{,ʵ(iFﴒA'ĉ*XPs P)O>vT?񒤤|JWae7x1Z_27 C ޷oZӫW C{g͔%x7{p_4jH@~$Mg7k)=pu<ē@MC1!`!`j61n6f2[jUb|%P+6iI |%$*Cp] n(z?JD[:Z#>Ɯ>_ɋV!A<}7Zbg< ceK[\j%p&[ S@Bdžvc_`G@8fcpcѮۏ\xX> Öz-lgn\.QpqiLY]2i4IժzܑU;i2~ |`Dߕ'vK?(={rO~0u3)MS%FrpjX\@Nv3U뙟KcM 3H/o K~}y+I_^+y.?q ' baT/ɗyrbF@#G _>;v쐧~Z֮YtکS'p4!`!`{_Om0 C )1xrc;Y[ G1ZY w  '1_J?p v--?;di۶ҋJk,wu~|9|dw$孩o:o5 d-7 vQ[tYn$koUM233Gvʈo$g߈DZC0 "PPPHx` $/3ܹ"jPeȣrtQ]Yd!)K&$/#-5 C0 C#PS^Vm36b~& 2|HKKQFI͕"k&}Xɓ.>^ڹ"N]rՊAb* }}ک*}}zCO_`\ַcvԡXN m(k!cLy2q }kv'&G_H :ncLk0ƉlО':P˘С=@_/q |s0>~|>1ǜ~v`|yā N_P޽0N͕xE?~[t*1jA$zsǝkER7~XFM!\ ǹ.~l46UJbbEiqi›4 Tpo% UƥZҾtnnloq {aX{s$Mi34bhj.2Jr WwD=w.F9)uLS}$@#G,DO g)j=[&!`!PW_Wm!`!?5%i*OOWe}^nL:%˃_|/-YYΦA]k֬ϹqH9 * %/ mڴEуo[1g=t7o@IDAThQЇ>LjK;d.P;1&Ct X8  Ǎ?njI`:7yn}CYv㷘Á5h!-/4~`}b:a {`\ X~-~|,πxp yFpqjݺuǤgV֮]#ӧMsyI816/lT_S0 C&g9?ݻw?2 v/iv=Q?^ rF[SJq n#GFt*vzdy5b~D5熀!`!`j61 T7p&뙞 bJ=D\e1-@RrxW j_>5gnٲtt-cym\}UIbM .Cj5' ?RRCl\pa?/K/jٲ\qz<=!`!`_ϡ0 C  1^[Qex:9IާJxr)Tr~M|zeʅחС0_իV9}V㎻v,75Šd_?|//u Hz Qz)]v$ju{__˔_ .]k xGY~pʈo]sN߈Al C0"=[V>|Bo +1/,a.\(f}_NR{NM8F0 C0 yY:uw lOǗR/_.YYYgW@YӧO]vT8*=p9FyQRle~vX[p9֮/8}G1-C|ۀ&#>rd|a=aaLch>'u; !fjɓP%2L2a2A-q2Øࠅsak{@63O5C;7c >!lg<{~t%蝽ZI>XZRV\@iEd%9"UWaDq,̗HV_Fv_5./GJ}sM$xS槬xK_Aȗ-q"ߔo̘ޫ旤/R h姘Wߍ$[z@po#_]nn-pGh"y\#F>@&O1b\j#^|EY`Apyf9V31 C0 y]!`D!s Oo Va?sg-p‰'Vh~y!]tSp7UpGyYҨpVd 믹H5Gv1Z  j?;v쐇Q*z(`/ʊ+j/{ʩ?= 駟~~j1z8!`@@ T9sdgo;1w7sº0ᬃa#ԙ3C0 C0"1n4iR1o͛C:~{]U ^+@;8|RpY[I0&7kG֡|@`|fe !xFU_9ka1-*O[ؠ1[j,p^WaREg⾞IB;1Hh _ eK>'e|c|_8'2sO_O;uϏ/bc}sr B:jAu Z釲/sVi?H$$Hޘ*mXԺ9}jVx߹slܞ-ZJ#I]va [9)tM,%IӄxA+Yഔ=Zk=aC(h-ڌnN;(M|6,ImR%>{eb/޽[nʓԜ2h?zN6ƍO>H)VCyѮ_#mQqnʔ)2wܠ1^{o(!`!`[_oO%n!} IZ!Æ #&%G~&tta#ՄQRmܵ ]맭/KZڴDH$x|++˫2'|Iy2;uGYY!` xoں=צM ,kB/\KpۼnҪUk?~tpl/[m!`F;W_SN+K.uoB&O*e;Crss%Y>zaOr =h C ]Rze NqA~5ׁb0<[B?FvH?ab֏^4s'G-0fلG ž1uvTm&HH )[Px`?nPϏ>|TOh!:xc 0>B`2E$c}GdS>mFjuAAe$aFIU$zCLbJ%Ok -JBa(%wP81cʚ/%YBIM ['{04i5P}H:s,Ξ'J7Ȯ")Mү'$aO4/m+}zqcڴi]r>^ӍJc تB!iii;V]Mtn.A 믿^@1Umﯽ|Acжm:!`!P0b~=w!`@"b)8$ NOzw>hq;ow޽Ʈh^z>Qu}MCa2dPio51 C0j6xs7%hHDef̐mYJ36&V$Æ*Kʈ!czC0 C0Ts |,<3d+8?vo<#.8:ڢO|v+x.SQQIA~(rU豋%1!QS?{ogUk͐q'"sEOjADEۯé:m{zZmO['VC%A,hԯZ=X )C& Y׳s~NȎ[YkZ֝} RXη': /H YO}Si64m>7k9Ss~yc)B B B!p  $B B I}]3,?e# <k[/]+^q^9mhۃ't;^$v}-QhL%~p S o@@ew_j}Kڽ:p9'xbyCO-Kx^كS'8 ghYgU<o7Ywwޞ> ;r5tG>iO{ڌ|O~x[ poY4i Ac㶑==4FYMC2{36?}>h{b's`3w[x|̃Ok7ռCvA?Pt&D ^}f=A!W;0A9}Z1g!.6ё_PX3Yלǯᆳc ~~X󻖗Ol Pc#!pPWT_}k_Z6|n o盡0я~t}uiߟO.B B B i?b!!p 1)4Ә?x;)xwc}n*!!!ppя~T_buCo.kGM˶C={1ڑGU=rwiS[n!!!CSTꪫz7BQILDgH /|6/}KeժUΝ;,]tZ4z݋M̗Kdlֱz=ˬvO1bn#ǩ.~eftm.b^hWUOmψ/OGwND=9Yo}R~Ww<1sP"؈'ѳF a/6̓N[n;1𵆳u/x@P[`[8C7c8"!4|47 طҘo&{@.;X/M9sN<~v|ZnrTmR;~/yC]v^ЕSVVX}0]B B B & 1?]r/_payK_Z<}^+,6.|;g;cK^raIoX<7__ Qš^b/nsl9}BڜcW; o[y&lO4kyjzϭ o۟m-Cc겓>LJ{\oB>X6 o|yB=k}N}N`mĺ_QY#^ݼ:"}D$Bi?j!!!O  $y@@xkoY[n\Dg ..Wv# @ۅ@@@hο׾~3v '|r93ȌNE/| +_J7R MGuTyЃTN;7M7羊P,YP=3 {Po3{ ۗL3k5ɬOƏxm4S6io5Y6 m}޵= 3u٭LA b'pơ[nNx1tm6|ma!CPi3q~Xམbġ8t~UU_kG?8@@@@i/S$B B B B B B B M F!!!!!!OW~ߘ^dk3+#7l2 }ˈ~0ϭcsW_걷{c_ݺ31Ƶ37ľ>9B/D.$,s.So {ͧ^wfs8ƢG|~ Y+$kÚغ ޘll|P$B#F!!!M7TlEB B B B B B B B T c9Ps@@@@@]F01ѯ70O0Bp;7ӗҗ}cWZ_ge6Ǥd{&CgsUM],6]G8X{PmaP/Y`[> DZr[[^ p.>tm}}]v^!?fxvsewm}k^7|NH$B B B B B ~6 џ!!!!!!!!0K,Y̒!!!!!! W/^֊6oL/=i=v6zٷMĚGߪUV/{m}m}bO!u{g =[!،~?&~`i #^%[#L =kX3>cku~01b#ofdž|to^ϭ7/_;:q"!!!!!!N`?:?B B B B B B B h׽!QsدOEAc>`O:#0GlGϺC^zFǞ\p@}0olj\汾lONcݪwb> OW`\]{ت{E02ӗE~<b}E̯sXkg|_97g7M~ͭ㸱uغe~> 8̟?uQڱr8 loF=uulaFpai{{ѱ{sǹ]C#L|#޹icqoH {cϧ^$C0{6:9t F;3ک#$G uىv,_=vɅik=9aL-{GI:[mPEB B B B B B xk7\Y9sGX% 8 ͩo_zT !_lO$c'ic3mþ̭fgFlw8$ ۵qs˯!3D3!^ćC^82 E8~38j0[۷B_F|eRσ͚|М >n|be[ oo]tKպ~U<=;Wߟц/Ygv`cm2{zzota>gb}m_6{|S[=yCE=·`N5u\͇{~uA9\d]j}ۙu4/̯$"!!!!!!/&%K]U>uC B B B B B`Vo_zkӿЧl3=A!#wF챛5͈}:`96jޡWY|{9{?_{VtS̄fN݇ngl\d?>}`uىח:g0S]vf>pr"5lpcе1||ձ||blᘑƍ7VH@@@@@@@'0gΜtҲ`>!!!!!!'CCsjc§Wu|x۵ =;5,NoӧQߟ0+ثņgn}a&ICȉ_}l ɦ+4s g遝gC[~hG8oyi.wlbg&%O[6Ϯ{<>V]N̜3s"s̭㸵c@@@@@@L`ݛ7lg;D!!!!!!!!0ϟ_xS!;#,^ؾ1>gf!bSƎA?u cw{0b~;c 9؉ugo4vcoĶzl='9#ye=ݟGsk fJAE/C.t9Y 3y1{3[]~sq|x`1IOn,z|G{O_֭!!!!!!!;4ӜiӦrw-[߻>B B B B B B B B`*ˡZΝ[hOCT7B B B B B j3PY@c ulngٷ2WuOYLjqm}g_2A=}ڽwqont䠧B=ПC9ڳuAƵЂN,k.:]Vڟ:Z=ž~ T9+Meem |]v~@lu|d~'_e H@@@@@@@@@@@@@@@@@@@@l$м1zAkަazFXz;{=m =؈׽=~߬3{ig>Y;Z_Ʊn؍) I+53D]lEerqC #ip2#Z8NzMLJ8k'=io2Ny9{_ cY`}X't6#!!!!!!!!!!!!!!!!!!!!!rĒocc4O̚bec{Ɨ==3bu[}&1ֲ:чXgm}='3}֩˞ ?bw[?[c.lL aLj 1NS MFǚ<:bA/lԵgLYWW՝<~ >O-،=vqщQFB B B B B B B B B B B B B B B B B B B B B f'2h9Ac>}Oft:Ӌ̚O}Uwb;MwhL =™ZsFG~ͬ.;>3b~oG9s6!֏z:c7/~A&!!!!!!!!!!!!!!!!!!!!!0K EUur#g^d{_l}6ӮB [^f6Ʌ`#Cgeښcc?o篮]/7q,¥+5{Y(ع@ЛVz/<zj' M;겗!%:fcgkl8vsxnlg&u?6[QGB B B B B B B B B B B B B B B B B B B B B f#xd9ױ{Flri~j/;nj/y֧wmמj3=ОGao^sssV`ïݓfg6xA۹n{:|3#AK1v謉u]vB ޭ?F>$ǎթnm'b}AaM9!!!!!!!!!!!!!!!!!!!!!0K 77k?l6rO/1kiX?me'M2=ш1ifFȅͅ=Lnl~#k0wm~jÜ԰#S $p8:/CЮX!Afykj.@"{U}l}Py>5=OUuPX_?~D֛W}VL۰jf kcgճc}R;̠?vN?wln;|5GA޶_e{!З8{Y?c,5#벫!?C{/\{ΪB>C{!MK,:$5ry gbƗ|43k#a9\yq3SlAX;{v^i>:p-" M̙S,^Hc ulfgzY_le'ͭ[׎_I`{c9q{ ͠~im1o̷ek2ѣz—=l}a>kr36kښڭ9C{?Ř~m~}HIO`fXW?ˬUիZ;C睬O۰jf>CHff )#]m,vknf|onm.ֱ>1aGa?rɁ`~ !tCKpCyc'P0xxiCa^gzuӻzy,dϛy~#gj=4tiϩ/ k YT1c.ݶtH`N^xѹױ:&b|G߱qeߵo׎c6z+_}emC? r,:G˚oֱfuLH0]?Ƣï=k ښĹVo3MƳLu٫yȅ&v>:MN σ?c.kX+֎鑫&!!!!!!!!!!!!!!!!!!!!!0 )GS}CA3bij^efG]vžc7|?gXgU2##ZW[ٺu['5/fNFw?ŋzxrx]]ϋz}bQxS=kY#YyNlz=GÚs{yaF!7y75qU[ ȢϪg렩޾bz釦5î#5m¯.͋?F[>]o27|qM|νy?噢3!\8l& 6"Zx_%N fA^UՉ9Ae͠zk3g흭_UD}|FȩCN303dzaǎOlXe H@@@@@@@@@@@@@@@@@@@@l%pĒEֳ__dž:'f $0lOVcؿ9c>>C1y6|s&;17 =f/5P ^ЃCß{ =yg;vG_ޜH yLJ+P֎{Z[ 靽9X]kWF&V/@@@@@@@@@@@@@@@@@@@@,%0gΜds !GLևigXB5kz铦6r0twO>j3c}_PN^m}G}gΚu٭13|ǞsacK ?t8p%9҃^LqX9MHm6krÆ#6g>͋aB÷?=+渵~5g!!!!!!!!!!!!!!!!!!!!!0loN=ulÞiciO}G ziGnĵ_Z>q=y[mԶ>3%?O[<-mN}z`{G//^l2y1cg @ISO_fukm#76lį˞\b0gG!9nׯں=bFB B B B B B B B B B B B B B B B B B B B B f E1c=89,Y=c__ræ}j%1qo.AcSG9c61_|֯./{b̋߿ͅ}b)6 sgiC%<`˳Vo q :^6^`᫳5g6~ؘ=K[OuTژ[R"!!!!!!!!!!!!!!!!!!!!!0 lcX_ G;Lo1alس31nM1Z5[Y.QAچy~=CC.bCY=5uߣGyQ2"㸼1R@@@@@@@@@@@@@@@@@@@@,&0T_xg+cCJcL/7ېȬs6[N=~ q!桧~'6޵5oY;~zW6^sP/^1{y1 @_~֯C5!FU<'zuτ>A/:XUH@@@@@@@@@@@@@@@@@@@@,%044T,8:ḩa=VG߳>`=g^@IDAT&ǏL|Y~fm6{!}hޙg\!i3iOOW`]{ت94~qhmn}>$}[mNc}emc:L-h3'6kum\Uw~'>Ä~n׽VJGB B B B B B B B B B B B B B B B B B B B B f#ϩgu6SgoL#Fneijo:ۇmW./zijl}u(浮}쭯;k\[_=֢ﺿ>~>uݞs$C0{6:._ nwb\ކ֎xڍ!;PN<\ѱ>f̞!1=vb_=̥qfM1tlݪm@@@@@@@@@@@@@@@@@@@@@FCCs>}u4PN2i5}+wԅ6ǚ}US!goO6yUooϵեLY#gF'!6G[em}m,{Ա~ӳVn"@@@@@@@@@@@@@@@@@@@@@*{#CXdž퇧A0M =Ǭnģlr]v=0^Z_ԥe>gONfr_09LNm}z붻yrgB j9939~'/9%?u,_;::GB B B B B B B B B B B B B B B B B B B B B f)9s%M;젇؞cl4c~d=N2vo>h`am^cj'3 P[g ~ر[?VGɋ1pT@:bV5֮?Pul}rGg}SXۚ]ckށ@1g1@tĴvboϧ406}[rH@@@@@@@@@@@@@@@@@@@@l$0<4TFFИCac63'Y{Uژmh_5>uًekǩӷt>ws/>{3AO>9XGۤv?->`x/<`BP/Κ iVeWM/~ykmm]v oGFeFsVԙC}]v5yx~[;D߮7=o̯c[yH@@@@@@@@@@@@@@@@@@@@"|iǚibzzy<:?n2Ʋzsצ_uCX#C9Yٷ9w}Qy'SdS ^5/E1=ob[?bƎi}.9aM|ۘ6ri fJ80kAzX^*[Ȃ|@kfV>zm':kf~=3=;>xΤMWOlxߖ-Tp}csk5uИo24 ;W̠fvefGog 1kgo-fCg}jX5~\ϣ]ӳL>oZB2eż: AД.\|!BO듟O :rX=B>klv?c곖qNy>|a}mnщu@@@@@@@@@@@@@@@@@@@@@R۶m+Kyv=:6A0 ~ftڷls?zG!fO>teߚټ[;Om==6ccm}Ĵ~OF[g`{,$ "'B<8EZ86/Lu90/||b=#b}0{ :CN[]Ɂ n.9?Աl|b-[3Lߵ%6US9iƷkrLIH<]!r{ ϱ 5øqNb`\/@6H\'y8t63_D8nl|[R&!!!!!!!!!'x2o?;ټyst<{>򑏖KW]ZGzoH7}].z妛~0P2<쏚J)~P~[NO9çz-o~[e5eŊ;Gy>¿w222Oj실+s^s!!!!!!!!p#?:n7sRzmdgҮ[36Ɨd}uŴyǜLaV+Xo9Mn֭ژc&wCu?Bf'-@'.ıeG1䡞D >̃xsoudž`3oLVnkk0zA'6\e H@@@@@@@@@ N gRm]%8{ꕯ9o_6l(ǔ6KKf ̿~ow9׿Z;_v:r饗?y lmz^:PlNg?|/ (-?N7G?dTquח'ғ rY4~{y*W}rI'^y~!!!!!!!!w #,Z:6A?1'نatVgg:03}`cF1+vob-Ġc&g[=T=ԓCyX3\e'sYg{)6yE=Fكd1F; h#Vgl|p|: 5a'!謅8sGAV_=6tA;+F֭ܶ S$B B B B B B B B B`"0Vߔ/}eum_x|呏|Dy/=q6lY?_5_zNj o۷tuKO|r|nwj̿˫5u6| _,=7n}{T'xbiFJ/ž2S;/6<|Hm4 /Y?w7jg4ku٫IN|!X3L- ְ>DҟϔgNWڃxA/o~.⅙[^(Zƒ1;P!iınk6?S5z*y&b]'n}>g[ѱӗ_IDB B B B B B B B B "p*^VV>''{Amc>oG?wj 弩|Og-ݟԧj 'ӻj̿O~򓝎t%m}w9{s{sFwJ/ygʃU+]O|´s'x/|;{9sO|˽s9Mq1\X~ 7o.|`y+w?\sMXV|7w>wߕ>jAioid!!!!!!!!pK/6جO_4}''B kbf y^lG7`%9-txb Dqka6[cM >}O L}[`a<3>ƙz:[;:^5H@@@@@@@@@yooF G<eF[k.]\z%裏k7?ǖNsşe}!gpwwwû_[/_;Y13ݜoe8Ǖ[nX\wuշſ5cgˌl7?Gu֕}꒕o*g?Oyʌ4S>B B B B B B B B@&1W7_LOq;3F̬Є8Y`Wq6${kc>[zY#fN>rjryб>3̊"is׳8\}XpyE|\7SK߶~Nc읋<`3w@!K\̬5|0.;K7/_GB B B B B B B B B f/\>zUws׽uO+ʏKo{ۻ7>,nwNߘ?4<\>Yw'7n,c˺˞['>fGqDyPij O~S^S5߾\ϖSN.)Wr_V^\cRIO~R}NOoE?㻵_j8ɷcشiSyOBĶVo^YlYyC\Mc>7Yoo.׃6@i-޿zCwYkK?o{1['Ć?yF~TyP}z|=rWtW^rݵזGY~מۥ>ȣ3=٣cx9|f9 _by^~~a*~# ?UwsbsGV׆w<^^bIy)6۹K~Ż 7|o[\إw~ _yp 3xlvK_R5~N)g=;aAX8W_կ||/&,[ 7,~gC9z[ =q׊Όwo-ַWս=a}S^rNzxf|9;9/osaX|ʁM9^ 5zf˾1c/zz|x.fDx~yc>N[a^#곫5>ص1S: 8vl|[j"!0Ǘ[kbeB> f͍<ڼysˊN(ws A%o;Mo.6l(xNI+ S#\:}#k2pŠ]nLj,cc~_wO~rkK_rf@w ,7;K(s̞JXm:62g/!!!!0?z_ڜ r~9gao)o;݅o]lļi+.Ë^򲗿t.WS˿ˮ~}˺F okyCn4~ {CG>\,c}eO߿7qg>Sѵm};^z[{ |^ԘO_k˥\ڦ魟g?؛חi~c/?]hZloEeַ]X.w>S㖗wNrxʓ\}O>\wi[jCW~ys_|~#+W]\wE ?{c\[.6M;ʊ+Eﺨ~ ek;-~c:_y촗yQͻ.J}o?9ͽzPw~ɠ,)8/gzxEW3@@@@@@@@|1c]4I0=:j6fcki}ό5zCZlG6Vx}3W]vk}ػևq8r[bSM@epza359!u|ߜuىm3uWm>@}ۙG-+>#qE(z#O%?򏅻Bַ=ozY\RCyENgk[©ʳ}vy͟zaG>^w++/xҶ3x|}knw[1o]C xK' ?}C{}+W~rp޺gz{J #@C{ڕC)GF8wijom4oNGl?9|?7;w_>[󌳟Y>|3_{ғ[iKȢz.iۺu7wq˫Mַ;V~](_8ꨣ7ͻ=>e6WzͿQ~~-_2o޼{o~^Q>ϟ|Y˖׿ݛ{ ؛|Rޫ|.sʿdzWk]^ǟOߖw[?r߿M |o~{=}S֬YӽxG|+3ݜϋ%_olxV~?{sߩp,gyl?{{N/WⱧQߜ3X/!E?R~U߹[BNo翻O~W\Vߊ_t妛&_J~.Ҟ9B B B B B B B B#0T6xsnc}#K=v6zQノ^e| 65>ggaL;1SMksS[S>kh}tyٷ&>G92?{ bpB]@ЛY[%|G ^MĘ[?ow޻b6g3jY[Um|;Ÿ^; FlNnIPkҫp ~óއ~;o8oh:~濌JukG~6YӇatwI&'UL~pJ>?7EȿM̯)#`0F ˃:$,8-f",I5VgxU{FgkZ&'oW;ض{ߏuC8c˽[G::ؽGc5o;$K.}ʩ}B]-DL[})^@nrURNũ[n{'1mv<%V'п['οB<{/E[,Ծm|9 #GTR?.i:fvkM._"4pPZI[nn %9_+'[mڷ3ڦUv{뭷C= Jk..6rצy)(lw1x l?t|1p],yCHXBѥk‹\ɹ3fL޼%6x{]WY0F#`0F#`&*M,`E )CNkpA(iǖCmAȞ2E~ltG䯸䡮G_45c]kQUQzrs ʅ/Q/ B ƤՅ~-x-u@$`.W.ic^'S9Ӂ 9G]a,:*;ošb3fm1sVy]9>Pe,m7PY= \SO=7o^h7JN+ p׷~W TضlG>/yx5rȴjUڔ|p(|uͯ[حa)aKW"WvUP~U8̾ޡ}@zjY%^A|+mBB'LMuIe$e0F._Z}'^o; rکx0^C>T/t޵ӦWo~C`ҋ DLEqW/馛+sz!w*]E^C_‹ב 7\>φ- kFZ>i>vS8R_|)%>G Dkn凐ү檒+:'pޭGܕatb0x+&~s'w6/!9_)@5pWUĽ7X/nmha+^(#Xqg /~ѿ>J/:=lKKˎwR#x`o[i|ȩ w)l߸*ќM".0F#`0F#Ig:6S2bꔐ9K/+;6t_qS###tN@b3<=\p-X?x\yi:0mZh׮]%[o/I/8bƎVfjY:S|V?C_xavީMw<,{K-Tn2G5%K9?3H'RxB -^9yNln۶m+p"v6}9AgZov(mZn*L65ĵqbuouL0!lցU;h{9R4aUٱJfg̘ieGI{$^}ñ,LS?n\(77{U ,w@DŽ;4wIuy}}#KbyAXr˦z-0O\ RǒK.Lt]_F#`0F#`h4j4O\1юqb7+.0: q/s(}ub˖.0ʼn䇽r0'944鉁Q<ZISԄoM4 :JU8``"q|1ۑV[=lv? Fć ! k.˯&>qz ˇ-6߼jQlɸ_vܩmXpAK,=|VX!]9s?)nɾEXkV7n|x› oC= O0(K/ G~dRtI &g}N|^iժUyCB9~*^ڶuR|z묵nw}ͻ u}{#dZX%~a(%|gɻラTK/tCV#`0F>oO qm\EM 8}}ś:^11{vۿ[nU%"aׄM\ޏi> "O? =qX#< S~߱Xu2]|a}ݫbw6۶I . Ulr/]_WR7;ѱB-ZTYu>M6|{>oi<|I'=TWrɡ&%]Sݺz}p^)yŤ˯<ӎvͷ+/2 4 lFbpǟHsx):ǯ:\<~)gyۆ?-ͷܔsسC7ӽ}.|f+ PEo/wi|.J~lc#/G{-=#9<,gho!K]&'8#`0F#`0 ].D1%pSBnM>l쩣W QL WxU`(?)5(QߊA^*6ĒhĀ- Bzb(OqG~Y#bpE)G'@T=Q]8_T .{JP`ʏrQJ m:)_U[1I|ȯ8*qTa⤁sh1*5!3?#a a/Txg}oaHzݩy-kS}EMy^W㽗YX&;o k,ڃq =?m^3* %^51k6\ ^$7zT\ b_Ƈ٪^C+"\ve?UW^]*nΐNF@IDAT*dH|9k5 57xS>_P*%p_yEޭ*qaHxEpM7//r}CKȵWLÎ , v53&-|uoK㽃#F.G/i)b~{۴NkBǐ=شDr[vaL[jmD;bHO<Iǧ~ky^tacϪ/-h"zپ}3 XS|ҷ;>ҺM*?Oŕ;s);,ᒿ|g;=7ؽG踠ک׸nqP.8nڪetF~?z݃qJ~lk 6Ib=IȒf|AK箩HNc0F#`0F#0W#M,jc1-0ED=DJU7͈2|i:2.4E~TʯyƫvTe֢ڱȁKR&E?}by]c%I=#!?!멧:w߂ʢҞs9UV8pP dN9OЊ915p6{*ﺳ$^\ʼn VYJ-j+E;[#C-g*Ӭ>-^{dÏ>'"K͚z+@FxVEw=+rN\ؿ@RlF#`0`-Xw!D=v:'FaT}]9kV)b~NL=K4x`Sψ/tx@RHĊ];w+#W[mոj|kAr8< oz5駞Nl!qᨣ{UզQ[b~ہ^-Ӟ{l(uOc&H/wX.8TG@W޺s^x$ruOun(Mr:$"<+R{.u9_]#.='Fjûؿ{n [meo+uŠTZ V?fo}2.=~Rٞoq^^zEr$<˚@W BNɝ_{ppCYsWN?g}P|9-2W-/e#.<ݖlz#:g|s"1_sT.~/er;M~veg+V_m::Á= ~8CBVr櫉W2 vw^Nj/qfNyqdǝv RJ_E{Ɒꪫ+U? {g}\}Rw/RL:%lvk+J٢*kCxik |w8sS7/ &ce3:#T7X___,'y晰@{3ª{Źom<@zY ^q6F#`0F#`M1lxLlU)1S2ut~i/_OV\姝׋ē.v)?v)})<(+_Jōxp(ΏO$sJ$B&D>옐&lMc 6rK&Ù4 !v<4ndTU&~r+c~jJ'VEW^Yx:iJsbb>_z%R)+u59<7x(iMpM7w=0=8^vejo""a񚫯)?yvCԄ:mڴ+G|л*~zPf;CzFm޴s utxꎻm֢Ji۹]uT{:[~i#{z gY},v 96]|a}Y[WJ 1>=/<WwdutLChe0eʔnK.Э(JmN/Xʫ mPr}3NW2KC7^/!S9#Ҫi^e33>!vj['<{aHv53&xuRFO?L}Ld-ܢ;WHf'^2w}-pቸb>/ rQDŽ}.}?Λ<O?ϯ^{'+V 韕P1:#`0F4?Sun^,VeR~W^y%{SwFEw6ڨlu8t+J_t?g }>1_/ 7[it$ غ6i9E/R~CV"j'_ohM . yw:Vy?N?팤 {κPl[]|bqaX|;pک~8Odƃ $*tP2pH rÅ)rRU=||Hr|o~˟py #FK,D ^VJLڨq[)b~}w"͛k^Q/uA0F#`0F#`܍@x_IEX1xLfpE DG>yfcliEǀܞbǦ́ʯ>JbH4ּ> 'u䶱Di`( B! WsQ(yt$bi`LCz >硫@O.}DNqQ@C]G .~+mj?Sb%JOx{b1'//];>0}7ӧ3$ 1{ gqVap^mhӦuj?O(!>SU40~yWve0qİf[}ym5;YqᡄcC{7|O 5 ig:u8-:gt*[T):8xH#p&*+zuDaehv5ƛ:._xGBOID^x6VXalΖgueېʚs^f/nq+! .I2[•_/{97%2$~K Vתir_s=|GXioSd"<5o9iʢ-F2N? e|:p Ǖ TXFg:R۶m WM 쟈 % 4F#`H $+ПwB?*$q0_uhv*<7s3"{+^Fdžgy6$?1v5N:!q`<4jDg<^~4 Ͽv$G~,Yz]O?t_YX߅/_΅sB=/~y>8hwbou+)Wω%#?$Ɏ߷>駟nRO\tI*b{O!?s*%hxdlqW dfߎ8N . 6nȅt{y-ư1}}\as9b;4^\@lg ݵ. #`0F#`0F̵p0[1b>ba?X+z٠N=V=VSl=gVG+F.!;[mlCu }y rVyS;V z,C΀D`G4I&Kя^}W~`C[5V~I4GOD1(gZP"A|)?:Qu墤=uSG`2qA3 }5 12[aɉ'RxǓBQ+my\-ۧ ZE+K;[ly7b]lup]|bV4_jrb_~qzdvLo2nS_ZhбSd[qhvT!; Bmʫq{>07.|gZ8qB2' =d+R|;ѯ@Ӆwy'tؿŒ;=lfBCY w;s]aM6I/9$rkz啸"B -?/x{t'tbVm$λ_ƺ,\_ωvm17ӶjgxoC>TW_su~R]HNڕIlA| 5SY?/½|v}s3qW1X)r?!O K,x܅`K5n9nm {~&n9qN0o|aU۬ 1[{1.93BY(߅(y09SLoǜ&\jG€gS곱}^:_|>,wNpMD\BvdG:ev ])x0lذ;³`GΝ se'?|)ϊ͚0׌ 4iX_W_5 -QI3s92Gv%^/;n3 Ϭ#KB;Ia}Z Ǐ/v1;a%u!?F#`0F#`0s3?MQi<.22O% ؈t^"Nudʏq/CT*6D}\TCȞ:زb0XZ@m ^G{>_J+oE kڵ [nR?q^/L;'u< _]%eWKNbb~r$͛v-t9cTZjXw3hiR=7/aѩc[oU7z=t9v(wMU>s^ /HDUxXjK01?xYy\u?g{R_/9$>u)öqG:&8pM+/_# Pǂ$-Zwc+&ip@j/+W}Ηb*Y=H^-~O<*7q1FB R3Yrrm#WW,E]vy~Q/̇=kLj{]ϥ0F#`0F#`܋@ƍ$@w<1\iJiQDTR^u CL)(O.1Í-]&ǁP*/+dC_qGY?JR8Ф)5iGȆ6FzڊNo;ȎX)SlGW^\ȥ:6'ra!ʫヨ >TNJć|,]$5j,FW@~&>wad6m o!ڦUM%'{ʋ+ _ɚVfաz&ԕJV]gk{#_saM4)IҕMPCZVunm8"y{DXb%–[mYJ{/C/kxyD9~UK(L/O̯yt„ JZkV[mPYXs5+ 6$  O۴jmqkv;l6tđGU⊯;FY&ьb֑J;u 'lٖiK]U򗿤iGH;#_y9}OPdN] ZlYXz?"܃;sI ̹daڴ[n>'2#`0F7.; cǎMkqUF{=Jܹw.rB᭿wI&O^ɧO6k4+xsNpO\U'wCO >0F*Ë?.Jhb߼]\>p٥n|6$t^`b*;NVs%M}< ȑ# j+Ew̯rmtLK+-qVz1qo9ҽ/lsun0F#`0F#0!¦M1l=7{CL2=%mqcMxnq`C)nrM?B=v:E(W~X =m*Ƌ^XMu(ڊ){g,1fa ʏ|vu)a F@zG/ 4> VHD'+:Cc&W q56bJN#iRV~{|7i@v#k"[qX{븍8tC=8LK.V^.91饗N|'|eu^9rTx*4_ӕF?ɺd{=v3z;_uNA:uJn/ r\}5n +BxgFVfKJps^z#:g$r,XyT+Rƅ\aa=+. ]<̓i;R~ϡv q.ХsDH1@]QZnu"ӜZl~]+L)1w7xO}Ub~99XpǶ;tVQ8lg0F#0)SW/|I"w}gϽǻBaƭi?_|eX*y}yuKQvD RaBϗ_|Yv<˚D?<|tɕ]\X?VjV>:DyY4eʔ )Ӝ~駰V^Wb+s*:(-F#`0F#`0F@lc{\< wJa1u| ]RbPҏbO9bWS[1?'FvICǸbGM?4XMe#T'6)N>`_U=}?~'7VS%>O[ W/rP]~WذG?k!R9Ky~tʯx/fN48#"P[b>;C>ƹꫥپa8-?91})'+(?Zpfo?O]ݾmoUW ?1+N11}CmkB.|ޥʻe|)7d]%Z8ہ zH/GL6OPsޮ]I߬dr̦M$rZe'o s:R4 G#`0F#`~{t9ہӇ 1_joRJXg0F#`0F#`0GԒK4=cZ<C`7iC1B:~M ;sǚ6uЗW tO-e^'*?yU>mhs(* >*7J'_Es \@(&B4pa~M\ FU~C~.<v9Ġ|ǎ~JD5G=c[ʗvѤ Z&}邤E 1Qz\r\C_*}|Ig%6(ny>=qq ~lQiuA=зg +Pᢋ/,[ԹS8YaԅCO;#m׎I'->|gOբVL6r|lm"h"vǭU[{aEI[ٳb8Vv6aF֟䒿HR@c O?tKhj(s^93φ?OG+^ȱYgT&ԮhȊ2̰ K|lԩaͷ )٫gH5C=NsjMg.|OTu^.G?/8va-y?:Ƅb_saus h S5Im& JQAbW#Vq~|8AK>ˏ%Ny,͗xiknN>klˆ c ' /X@]#M$C?4VV-:6F|9ה龍iwg}#K nb"m[2b mڴV39*r!6ƍ녁Tϭ@ĉC:1c-:vmkV~ذa;Ч~j_Tc+^Tz Dž&L~=\uHG._`5nC}njϩ}ҎGᙧ '?G_K[o.WgranK}5#?2 {iឡwW!P?PǏ{9/<'ul .:Š>S~l%DjM;f!ƅƁNC\nCc^uuP_LQ) gr5MFxjtrb)?ǖ~tu OOI=ICK~WX`G~OX0+On3_]JnEV ϕF]ۅK/U͏?JJ3]vI ;u T\ (ƛUY\Ҩ 4Zmʎip@Q>zI'f*genOqc wN/؇p ׅu]R7+AO(^h@r]_vD-c]vB1HĊqm. ~}t$,T;S;omYfn̫m۶ʫvC7Q^9@Og R {U{1`{)ͷ^{IT~-n/\K^81j0F#`/"0= #`K]VYyAWꚫ;l_:#`0F#`0F#`',ش")/  i9_iFuDA!Z觮)Ec#A`S"E?1 yB<يNS'|ѕuw&ɠbj*S>ӇP tҸc€'M>:ijcʩM O?@+6F:앃6 5R>/_r$b& uU(&=v _þ{W{CKV۴ {v8iѣ d\(^Ozͷ­ܖVf9^pᇦۋhC`OcOJD>ʏ^uW>S4OS #>-;uD>E:Qjk{bGqUW~|dXBi䣎Яɧqҧ~r*n&cO<r2>=>.&OOZoV߾k 3+o!> -PXqfa(v>de]6Iېk"db/2<~fX`.&m0F#`0F#`0F#`0F#{@E,p8qp*sw6$H겋c<Ћόi#ȟ؉XG)٢SX-(@~DFB #oMDX)uayȾ8r).yvdsB2ׄ4dž+'CU=&1\j+%}QYGB]_Q'?ri<<ŧO",(5CڧNL?N4eOk%j-F7c>Vig:ubוR_چ=NsJa%x='#` gv0F#`0F#`0F#`0F#`MxL\cuHEF>k^&`}x!y>A#ϟS U>R|5/kNh\ɎqxrŮ +ՙ ,AW*lVu|EqQ4<TM<'D!_X:UA49N2kYN#!K/HԧX[QUȧP~Jl*K;r1l3{JcnBJOiSgʤ䫾|<&)ܟx٪q PW~|6V#cS,5/+ʯհp6?CXM\dp%s5F8?蓝G8'HU]DfC[|X-N1XS%c"y|[~5VQ"hUEV m|Nր)i#L4LD:Dԥԑ`|C>'pS)ںp4O ^P;J㣝^ݢXISOb0F#`0F#`0F#`0F#`0F#`܊/9}l<nHy]/4c:69>4\j8˔:hy'_SՅRW+1 !@IDAT':ʏ^'tTO3mcW<-ZJRḱ,B>ǗCQౚڲWOqV%K|tʁ+}>$GXl[O(JlȂh>a!?#`0F#`0F#`0F#`0F#`0FFMacj< eqc郷Nz񑥣MM<~OH؋LHŃvs?~A~S9)$~4fW/!`}%&*23 v|3ȉN1iP.XMq)$u|89GD*J:̺)%!4 ?1uBUiN_X`P^mQ~lq @?O[T>^VzQ"\>;V ΢9@t$41bA'&C]QD:I__vW  u1qȖ>!_qIX>ˇ8y~bco'|7B[#`0F#`0F#`0F#`0F#`0F#`:f;ǁ+#p.tc^"~ǖʴ!#ڪcRυ>+?6O+}GuC|kb06ImӉO_Ξr91*Ɂ-mUN"|X1ʼn}?dƌ|2ui0F#`0F#`0F#`0F#`0F#`܀@\0?qp%,E Vxұ+[!IG(r)ryV_^Gɹع8/珪*y,k-J^kA` &M:H>!C#`dCzlѸ}iy^ƖD[ɗ.?+_lF:G^%qY4?y 5#P|4#`0F#`0F#`0F#`0F#`0F`6Lg)ڌ䙶sFSO>e8 ?|6~:c,}_9:Xi*1*鯵(Y8X>Pǎ"GWS,ɁN򫏶VJ"k3&Dq|/:*.mM(IU~ӂW̏(XjUÿ?˻63F#`0F#`0F#`0F#`0F#`@CEek 9gGiE;p}< mȉ!)|fSjJltj-ty;'*(__8wT%]ΝF>$qQGOl^c5V~#ŢXvmfk\@ׄ&H{|UOb#b5t"SW<8ȧj!h\×v7_lUIA*?6mVoICPX@1XsdH%{R#`0F#`0F#`0F#`0F#`0F8LL1sSV5 M,r@t)Z{"GPXMzXu&˗~8Ҕ';Jt:kl*M(6c.WBv!V >3~f}D '18lT+㑯X]L__}BP~RXH66u2>ؐ<N"%z >jSGC(\130 *]6#`0F#`0F#`0F#`0F#`0F_Q#3[i_qc15PAE'\g%w'c'XMqdiXW}Z)b1&DM~qs{r`O|ʡ2'uB <ρ"/UaUAPjy\v9Yɇqs:`ĢDׅCNSG2WMɡ''uqѦΘ4gՕ_y)%J '@V\TPܽ|0F#`0F#`0F#`0F#`0FHohxE;)|9)8F8ǢpLpsKc@_1馭LJ8r}R?ʣʯ~Ic/ir#_c0?H_=vŶINΙ%!P|`ʗ8D@=B)_'H:9OuX˖>>:?+?R+S/WlHݤ)Ot[~/肦 &^Ni0F#`0F#`0F#`0F#`0F4@X{%6>SfN0TQJxlp9;E΁6y  vSR!}ʁ'CxC%!ASXO š!ȏ76cbQ 8 edTD:W<>Dy˞8Cd\aCN~JxVhd/q/zy~tJrh*QI>e T&)\ eK#`0F#`0F#`0F#`0F#`0Fq1Y7F:x|X^A)E&^ eMT8k %PWN_C[y:hDkRc-Um(_TƘ.ΏMU2HMD%9X-Nvqo&숅^RrG/}đgqhZ8Sg(?#N_qgXoICbiipA$ VEsi0F#`0F#`0F#`0F#`0F# 8J,f*33u)PcB\?(6y;$c#/S"h|-ƚ gx|38q >ӸmS}Wg4Ri@pA"HW~şY5[byjm0F#`0F#`0F#`0F#`0FC_i³ƍMeO1-u=eJ( #'6Ls_bis#򫏒lGzi66(? |ԜAh#dj>ʣ>tu%sQ, L@JO(uɥO~['VS6">Y'pS]h/VV(WzS?69ѧ|y~Y$;!!I"HQ-Vɟe<"v)#`0F#`0F#`0F#`0F#`0oD@dK.QX1b>N aXa"?1KWYlGfŮ$"RbO?U'[BO~VG+F.!;[mlCu }y rVyS;V z,C΀D`G4I&Kя^}W~`C[5V~I4GOD1(/DS~tEIzħ,U&N֩;9[w0foW?cYd,ߝWfay01v֢sڟvsb1)O<:~ngI o{uF*@,b.y7>3f^zryX|,>uscx'|co vcUq=:6>~ÎX13/]ؓgf yk9?l~ܦoS`[봐?-+["D @"D @"D @"D @"D x8{ˆx6W^xcbxYiv930mNթCcw@hc'،uܙh u>n_rk >cE|5fvaa8Ahv13k`<6kG]~y}g:1w0?!lx 9ɎvrG cvҕ1o$O->U~8NMo{cN9??{$t@"D @"D @"D @"D @"D O)ݙ?i3{܍ܹ1!5#f 1g9dvD?dac7Q:m<;q3cL.;ggQCS k/6U7Zs ;ٽP'^(أ.Ũ飼I0􎝅qPW5 >8w!'[~Q׻QS;6#gw㭇s#_z㫷o{B*1a֔,y1T0r폙>n1pFg>,X>~>v?0ح8j'C]u{yfᣞetk^oꪳO9Ԙ1/ڥW/2=\ɓNwٵ-Cw6w2;q'|"D @"D @"D @"D @"D fryc89w[,臿<9g~bfY x2c`41/=džG1f'9nA]l`gOBO'{Z㶶"{`=6ޅxug.㹐:GqF{Ä1䲰o-\jٟXt}o9c'ZC]b-8[W @ ~kp'O#;w'O=DcsṅC}ܹ/Nm1@"D @"D @"D @"D @"D%74.X7b^r3S+*uY3s:vj"`gf?ԭĐGE`sx~O fP:΁\6yFe?XF򈗛gمn-ՇB33S˞ְp"t9=o?9#pF=8#[gGX/^z#q'bǿ_p,?wO!@"D @"D @"D @"D @"D'3ָGsAYٙ?[cXPazw';O$Z3a=}n}cׯ|s]5gΚõQ sv1Xl: xjc]{[}yWjoӺC]ca'z,z3;9ľ8^[M&/fk7gBWmg?+zj@"D @"D @"D @"D @"D Omқc]afUf1D:nPca'n3tq~W!|Xrպc,6k uG/1 5sڭ98oMwylB0~Ks~`٣!xCO '2^X>V}V <[!y-uwk}sY{GXzƅ[ߕaMh|g0O͙M r&;b泵 X{`/5ح|cWo̿EZ4]~k6꾃~S>u(_$@"D @"D @"D @"D @"Di$p;d@9dowzL[0 m8cwZ;;q0=|oy1u}swYc >%//}7||,/QO<1!Ʊ]Gen1N\?v<#Ϳ\O_|u' \a{4]/ߘD @"D @"D @"D @"D @"<>wW뭱fv9m~>,Yc&k6~fcGaƎ}C݊>kqFߝ?5jî5q'1عϮ>Գ Vv/h=9syy@iO=kg1kOv!?Mc!Gov{1ǚYs=O=ޛ??.^rq%O*>U6Xxv@us}e_mD @"D @"D @"D @"D @"/~{bvrDvAZXqUg1dv:檎}sf\{m>|t&cCCo;{П8>Ե.5r|kGms?XR}HX uC,qs5G=X}nrGN.[GnP+.Q.y8l{Wgs[‹//i@"D @"D @"D @"D @"D O!eooK띱: 9%5 |2~ȼό269o-4Vڈu8;EMfcNZ{{W}9'6X~Q:C!rF?`rC??П.vtPX␇h?`lԴ?q y3߅~;7Aꫯ,TD @"D @"D @"D @"D @"ߖL(ߘXoŀͱf(ewwgcnq~vƙs}sa١wO~ѱs;ۭEilSygPB">ЋZ vY g~8,wցJmbZ'}Y`뎟z~+!ؼ=OM?Pi}~˂z6<A4]i}sD @"D @"D @"D @"D @"ogYcvf.kϜ18`?%\V{Ί:9‡=R;1Oc!|4w^ϳלa}&D.C\`$FM >]@A@;nkx.yO?cols s?s0{r㣿9ԙKź_/: s!X,"^ssç}y&3a65dц~ݩCck,=,Io/~j<?#v䏽:L@"D @"D @"D @"D @"D xJ |y\ͱ?Ay11~0v}~gء:6lg8E?g8wz.Eyzn?Am`''a拢#<81Nǎ {o\o|#~Xg}׺\oYB>GNپ1PxwUٞ6ɶQ7uO6L-@"D @"D @"D @"D @"<`3,u̓3LCg&3#g,1 b_Գ?>w{S<;z,!ձScPWYocuϵv<zxy̅9xșxr ! uN}hG\KXA?3mOx/k6r9Ͼq&f]s{Wp_x1$O&?㯽?qI1oo_F^'v@"D @"D @"D @"D @"D O%e XV;`1:b;gvg=3N.~tivǎ lw3|F#.,fsĘ'ns|3~ǃ_7XoDcc9ΎGuv&ij8LC]oчz"1wzGNtCgmôa=!̾&~Ra\ u0fx"΃fbGCY?ltsglܛ3;۬z?rqFNYeW_|O>~ o7a\5n=oϹD @"D @"D @"D @"D @"!ppp̟Uv&yCgfѱYd}C]ى#Ydt9vx|k:ɡBy~5{'2_3ƜCݾ;2X$6?SC |w0ͥn ۚ@ ǎ ~@/>u?XƲ3/96<۟wigɛ5۷4^zkow$Þwko o!ǽ|c',D @"D @"D @"D @"D @"8::Z0n?!aLٙ+ޝf^c1G,1n3; ؟]?>{`G>CPZ7:>];5ụ&8%p).g-vi&uy:Pmةo=waCn<;ufl1bF g1B<͡\8swzXtW7C~3_09dv}Ɔ;Ԏ69yi=G~s=cC?u潆N~Z~YgGxc=xNIA$~|{sy00wi,v5C]sӏ:sR[煡~կ=y !3'f~|ǴCw5]#D @"D @"D @"D @"D @bǃOxk,&Kf>ٹjw~ylb7Fw:&8{9&kknK샟8[U2f֘cb?13qټZ?N<~b9u[ ^gku2۹r6>8#vCډ;Pa> x #>G;>K@cG}~p{'{#b vǢ;b glQ^Sa/_f{5>?޽sc{ƺ3oþm =~;_ch>y=vݍ|6n0D @"D @"D @"D @"D @7 wǺ13 ;,23`<>bC;[^Egkg9g1L܏?&1,ty5!XģݨۆbϼqKxCAvb%j5؍!W>ǩ[7wk+;b<:~b\tczeWƺqm|+>}|rr Zn1=z{N;C~Kj`g>/_D @"D @"D @"D @"D @"ihXo8*sfraZ؉թ 2ú;GGg}lͺ~l4چ\ a/51vu"3?l0u| |4F׏hl}lqb0]ͣ.<߾D;ez?C>aC_Ϩ+~D @"D @"D @"D @"D @"7iͱw@etwP)vPyaVv[<{ l g.u&:YPW!F&~qϢ*c٩}{(ÊǺ8l܋%!ޛ믎#8s uKy?+>>u{_jٟ:30ű^xꅱ?2^\ oпk@+VL{Lu'A|, HD @"D @"D @"D @"D @jGGG#ofvZyk kwl3:yM8k9gg9oo l,Sk:sUg'~gaY7oV!X{cD?,> Ƀ/e~8}cJ@"D @"D @"D @"D @"D&}y<ͱ83bTc۝5ftByƠSx礇{;uYE|? =j۟\imγ>ދ;s(؜6޳Skc!԰s9;M6sуu,>s#<}{qv[{CCL<Բ5=\?b=Clۏ3~Έ5ܱo~Vo.=^ Io,e9vI֙rW7|9:\c{_?#D @"D @"D @"D @"D K`g0qQQ3#OvugYsgz:#ęǮ_3v#g=k 5;:b؈uʳ 0Ǻ1`&A'F:=駧uNֵAّ^Zn}ǖ^`s7C|̛of }kSP"D @"D @"D @"D @"D K`|[2uYaCY9bP(@P8gݚsA|wf-tYw˺:= 2A>pa{ cՇi1N ˳o⾛߂{;\ozYG|w{ywZ]㸷>i{{ ل+ %,7M ͏&v#q6>1@??[C? lY{/o ;"C.^⃖3:/u8c|o}ꯑ߆&Qh{OyD @"D @"D @"D @"D @"Ҹ72e0,  ;o5kG 3̙x!D7bOQzጟXZ]ѽ:b]lCwلB u9#/`mݱgΙ:ܹ}Ɏkl-|(` vk|ߘko ~K[?K^xiO- O'O_Vl)sw#j0@"D @"D @"D @"D @"D%p<rBcdowzљKf'g>L[0 m8cwZ;;q0=|oy1u}swYc >%//}7||,/QO<1!Ʊ]Gen1N\?v<#Ϳ\O_|u~ޭws˯,^ιS/£g(R7?c"D @"D @"D @"D @"D x0+zܹ;1[c932ys}X8;L23=m$ǎ8Ì]:;}⌾;/M-sC]gj؟3uՍՆ]!ΙkEObs']}g <^z>ЋsF (s>9zְ\cמB6> 8B>Ms b3=׳0o{ڟz71~]t+zܯrߦOH[O XD @"D @"D @"D @"D @"p _oX3P,s;h>\019ƣ3̎[uuOƏwQf6ƪSqgcWɌ5y!|ߠ\kv摒1gsĆyc=O? ^3Cgx6?D]L.u"ct|Ŏ_'Ny%|X/lypx|A>X 4Ե.;bOa=ѱ#?P;gWCy{П~&/W/sW~0;'xYnc7<|0c?S\}_ԶgJ"D @"D @"D @"D @"D Ko73W);ĈgfgΘcvbEfj|K.s~=gE{n cbj`g>l/uk[>y"bcyn`wfg.0}kN. t F C h5p!vtG\d~9sc,vvbx9<ęXk?tK 2hn?v!` GG({o7o?.Oo/~';mGDlLI}3ϯj?##D @"D @"D @"D @"D 3FIoui ;猉!TTs~=uձQgg?8[})9swa.z7s#|e guy_s j8> s=.6_ıpn>vl0}8k-|s 沿>~PO;hs':s?bF*ɵ?w:?Ͼߘm}֫[?L؟ ]7c7e9f $)@"D @"D @"D @"D @"<`˾32u̓3LCg&3#g,1 b_Գ?>w{S<;z,!ձScPWYocuϵv<zxy̅9xșxr ! uN}hG\KXA?3mOx/k6r9Ͼq&f]s{Wp_x1~GxߘcD @"D @"D @"D @"D @"L[0u{fљEX+9;dtr#H[8vlf59[~w66wa7&< 89 u#{Đ`׆DS,.gϥkc@/6w5L-dΙ0E =5s?Dv 9kX7_ptD㕃k_mT]n\6~>~Gx/Gψ@"D @"D @"D @"D @"D 8p}kb{gVgG#:;45O&ءuyC=r Dko;C=Ӄx}~':q!Ƴaְscf\k?)B .xq3q<ul3`tj#š׬s?:b}936͙e|mq=۟z|8s'߬n+Z/]u~;3Q?k㓾s٘6@X}7LjD @"D @"D @"D @"D @"p__o`<Ϭ32sX":N"ȱP[әnOujq=;yژ'5|}ؑ|ƒ&$J-!@ð;> ni.u uP]?v]x2\yw^7!|~A!K;ߌN|qܾ_}[{sy~~ٻœ"prrtbX_oV?>~G\wE @"D @"D @"D @"D @"grxxu} 3q\|6ýq8EFgGqC]gٙof8ٽ};œ5a5O-"?YAکa|c71,)Kq9k N;6cԁhN} bt٩î0cC6b8#glo:ę5džӓܥWr㒃k_~q&ח[/r6iԏǯj?#{Pf@"D @"D @"D @"D @"D  eA1x 1çڝCfǏglC؈icН&st7׳?6t[xlkۺLGn?Ǚev{x_7yĝ.H-KLJϺw1sbG[;j;U. &t&5{wv٠[Xw>B}ⰽ~߾M'~s~+̿eD @"D @"D @"D @"D @"L888xЛc]ycbtv﷌aߍLX+#ڭol]|Fg&qؽV7vG1gݙĜIhй;!93빱3Ljχ~8q.XvvN.>{ܓ8C=g?:3.uxu^/]̿eD @"D @"D @"D @"D @"L8xL2?|s;62oN:&8{9&kknK샟8[q?'g~rO`ܰ<_>~Gx'0v@"D @"D @"D @"D @"D 1{7{b@ؙQfPXγ; Ϲ̵9q^ةxُ35̱㸊97pFs}o >Yl~ljԱv\~c(:<KusЅy%OZ*lZkO;}s~bogyý;9//ܾ͕\n_Om7_]7NGԟӯ7?K>g?8j?7;D @"D @"D @"D @"D @"g 3C\5oe`ءaf?vΘoƬ2>[Ǚfk;>m-t{3̷֘ctessg?=Dm|qF8k잇wf 5|:A G|vH}Ǯo!+vN=GOEv7|aG>:Wk_;Z'W#qsG^ 6~w5rOߵ|Ww5>OeQvԏǽǏi0@"D @"D @"D @"D @"D"ƣ;֍EF!fyefPQ2gَZb.>C];<͡?f~p_G}45acsYE%8F}6=x݌]KB.Bkŧn.q,PWon 69NݚظYdž[]/}7⥫c}w9V~O?O73 k*s|,ݾ|թ>jVq>]?6c gQxvm6(sB/?ub`<~C/6rۓ9Џz+c0ay/~sٿqW}r ۿo-ʿZj{q̿O}}?C"D @"D @"D @"D @"D  01`ƺ>s=!7;̎g֙b6vsGf9msƳ<3:6svfz۟<4Ϲ?~mC]us8_;ukbE=*\>z(y CYؼg uQ탍nkxr5gu5c?:[ϻzv7zؑ?g>7zW soܲG[GvO||2y^|`ϝ_nN\8:D @"D @"D @"D @"D @" ߘ93<33|-q0sN<ŽxkgZ}a]̥R8*aވ38YC]ų~c̷?;w"Wq%4xXBpXwG{<>{cq`g}ۃݸ`1ognvK-S|#wa8/]0&Ͽ[oy0 SG~o9qk__m++?gzortgÉv !@"D @"D @"D @"D @"D`8::Z87bhcؙ93ܫYc3:yM8k9gnP>ֵYnyu椭k?߇3y,7LC1ӟ~gzlj\\Ag?!>\ôڨݺП_O=]foGA'ُN o"gH^3:;y grg01nQk?9cp̣6 O-[r}PW|̡~1a.]zq͟h`O^CEOu'/-{g~ϭK/ԟ~`ti{OD @"D @"D @"D @"D @"00塾9g~bfY 3c`cC#tjPqsOtb.6k~'V'Bm=yq[{=rC B:3 xX\H#8#a rY؉uo.O,~l:˾7axpN윱oy+ zޏ?X?qʵ GG<)g\ϯ[/_X?s?X_m˿/߽`EJ"D @"D @"D @"D @"D yr筱~ks;o[˝[c! c-{ϟ_{~;²‹cq C i<퍱nż0;gA mcwsfcԱS!;[۾\41 6bCg#O fPesN6s&>[&Gri^}uC؅n-ӇgfgoOk{0<~xnO؟x3>/lۃ3B }i97`KW/ f[mog0Ƽ._嗾߻_Xbۿ7n7!@"D @"D @"D @"D @"g?vysrtrzK///}h{C˯\Gk3ָGsGYٙ?[cYPazlȮp2pO=Y}:n}cׯ|s]5gΚõQ sv1Xl: xjc]{[}yWjoӺC]ca'z,z3;9'?zn"oeo%- +)w??_E7.?˿O7z糿a?̗D{"D @"D @"D @"D @"D *ŇƿuH]_{Z1q7/fYesǞ'F7nͱ;όa`ŗ.8lu9c7Xlxbjp笵[sqޚ>.ج. an{YYBG!B>ȇX.lOd`|06۩A<>zy;> u=cCw8#[}~O/n/3<)`.3辰>s nϿ+7nٿ93!ﳜ6|d|gyk'M{~̿kn?̗D{"D @"D @"D @"D @"D ;oX.~9;|lc@~z7b8Yc:C;Ǭ1vM[wC~c?1g#}?fPO.8s^u6 ƏXg;,Cxrk}l5G.; 1'^9gbmż8q֯ Bl\6l^@Z; Xww.Gs';b~!s7>ae洎9cUͅ\? `7;w/Ov|d·OGz|B}˭<+{-*Y? ‘K@@@@@@@@@@@@@@@@@@IN`j|Gb(~%)H:?|Kaf0.ƙ5nș-F( 1Asf.8tî 6bÇ;?b6O[;tovg~>S[3rym%WLM >wY1މ7QA^od`w.^~l9Om5O/'wO[;z:܉kNwa7ς,xGKHRS UTx߯s׮tKe0YkY8r 8 LOz2oz+9畑5kT_ WVpfe{bX3\;I֎q=g3#{ޟŝ4,翵WUO=YߪtƏZg\ 6h>ƹsyPjk}Hx:mjj .h' ?#39A?VWϜUݯi}ao|m߹`˘VFv,cܾI # ߷\c/+ez3Uy.]P&W%Y!!!!!!!!!!!!!!!!!!!p8P&ڭ#+2җjwo:0;@9QsgAz_cgџ3q9%83vm3Z89[l}vI_P}PDi͉ƷrtbᣋhJu>$~,/~397[G6@p>[k E_LgYS{g}o_g~'?`/WE9 U^O dS@@@@@@@@@@@@@@@@@@G`ΖN{Wzה/C3K244ty붺P= sbC¦6Hό2:9o.׳Cpw`W4.^wsAE@@@@@@@@@@@@@@@@@@@`@غR R?nc*4-{Z~__첳1;ts0w~ _q猰s~sf١wyF]s:ơ9̏E}c~u)X"c6j~[=];?XӱT:H&gXc'/uxv?=X_U3a,=wo:sed2vZ.rL: $wősו[FFF.-0+f֘Yb;3g1;>"3jlK,s~՞kaCoޭc}|ɋ槱rg>^sgkЛ:y&D.`ƲzAmbNP}:5| Dqka7wz,({ >}9R<Z`}rc1i?B]mw^Sq˲o-C7"N`&uO,Sc dS@@@@@@@@@@@@@@@@@@A`{]>J#_XF֬}7O!+ku|b]3Kb|+'_+sgxpo[8Do՜Īox&][ޔ6:g9!E~s>k!|qZp<+/}fb|ģܭNчaOM-꺰w6c4igk6Էپf01X!!!!!!!!!!!!!!!!!!!%05Ly[޷1CW SO_R33imκb>3ʰp;@9jbǗa{g!^;'1oMO,:2~.jQvŗ3w~U~8r|8i}8˽} c!F_,"ֱ/vD?z ⎯v|uK7o}T]~wc'1몃6MMjQ8el=pebuu[/6O!!!!!!!!!!!!!!!!!!7eb˭ejC'>2u"ܥ####WnԵk+ՙQvƘaki;pSsw;gkG}^`A;ݳ>`}mđ؏Z,vԁ hX(gwNƻXzޱY:ڸ%zbx<rzׯ:AO9ӊz`_Wm\ 8Z_2=\_c)P@IDAT}[w}#/(#;Q/kw]whg!{t~3e;v汾z}g}lK&7:lw򱨇 ɡ1>3v8bXEc4ߞmvؠX&u0s\Ƞ;> 2ͅ59Ӌ/BwΈ9G}wmЁeǿIXajيr`ezlY%-e޻4F[_Fm\83em涺mw&auv;¬3ؘY&[]A:ꐏXm8E匍o;CSs{>UU??ok\=* vlkAks&;jgm}猘 =5ѵzg!.gl}+u_fqmsq8~-5(E!!!!!!!!!!!!!!!!!!! 7}9-_QFS+6rG] C*;܍;3ǜ﯋Ydm7G<ȜYĘěәnN yrakZ_=Kۿ:fI6|~x ?/ \B0;6 i,ycA96'P#³/X_`싥n/;CCy.~3qm_U|=;+Cn)'$0Um,ӣ:%/9!!!!!!!!!!!!!!!!!!!pK|1 |1/h*ccc>A]Kegxp>yefY8w38_=v373b}vCoجaNЛ956br _fyPO`Cgo9s N=:x֟ Dz]p֟<f}t>bWw3٭oQ]8~?cѻwj"~0?;*c՝G5g0#@?/ݻNϡUؓZ'u=t- _Ql˿{caLUsر9qw~m>ug'w[33͋?:~^i;}دwlF:p iIAx{cy``>9͉9xc'vEۻI.5'v{g gs˲voե_+nONRv&wXt閚y2g.]0K{뮻|w90[B&@@@@@@@@@@@@@@@@@@,1S;[oZb]vF2|ڙǷdmkw] {M9;LpKAt;ʌ?Ž_@޼ԷwD#XsFo-v{ӗܞmc{v&{>>8tN>;5Z[>gꑧo^97n>~}]] ߷赗Reˁs/S/pf~gt ^5|{wg09/ })zGYzUy^S֬9{NGS?}LL+W,^\ɿKGYr9fe: X*&ᆪL޷u(}`Qj=R۪u1i0.U3 9˼1nZ5aǦݻyϽ 71bn5C,vo^|vlnzrX9 'f^BS %iA[Py?HĘh`nt8;Y[v3؏9>B|ٷ:}ۜژ}Ž?6Uʐ!#;wKs֗Ef0Ŀv(n짗Rk^]s*wus iš5?ʿw>"k7o/ZW+[R.B B B B B B B B B B B B B B B B B Bd"p/ݻ?~8ⵯwر}{{3zu9{͚Yc Z]ƞcMsLCuqxx/Q޺v19;zfٱ;w\/֎_mX|Y0jc'9Z;6i}s!|f|A6g6t;L yecTϝ[;gt̰zr'|3O=vg13 Kgsq7;nUxUϝ|\<6~;wo#u0?eO{ݧg[{ޏ̗MtWw?' _P.%a)?S;B B B B B B B B B B B B B B B B B N.{oOScЬo\5O|U~g}{ g25,C+V.Dyh`>UaNd:fq<4WM`Gǎ/wZg}sygӃ[;gkxᎯy{Ǿy Up!|X<8vćRo赑<ͣ:p.v{AX]aGA~㬏gl-vl93'رS$w[?&];,82q2=+ /-_̟d1oc(?կ#;-l.ԟ#?#z~2d@@@@@@@@@@@@@@@@@=P&nʂw?` ˏῚ?55UWV?k0'3ϙUk1/<إ]uYdbߝWfa\v0>!sGmE-梭S]}[1g1L|[UYJg>s[S]:1?|c̎gǣ }5aӃ5!BkͳxxYOso<ޭ>gtmPYџ3v|b۶P*F ?XŧNYU&Z[ᷢ7/LT:<;}~){[?^CTr0 77'-^5_m]`.媫.o_,ҩ!!!!!!!!!!!!!!!!!'?ɭ[w/5?V?_pY}isn,wb;^#/#6RoehhZSf Ό2;ι7m=cg!{qsFԱg~tgl4걓66n]b6} ɋ|huc"ǒLJCs֎·ч;Qm`<:sG^~xu[/3>w0;!n}CCdF ;1町6l۾Z5'HU- ?a+S~&guCy wA w9O G2ߵ׾u=e͚T>?ٿ+wywymi9˳VFGd .7|kϗ80Q6lXW.hcy3ZV<`>aO~9~3ZgZ4{#m}g0 ;|lrp=q2gn1; ynZyBEe0Q1-ʧ#~_gaٳ_f;T?myr ~g[z:W .8o~|SqXY9@@@@@@@@@@@@@@@@@@yƗ<][=vB,:F&z㎝E.Nkx볓O};& G`úM?t&a1Qo vq~_/Oikֆg7n>KF/3GD>)C|{e0__|HP>u}-W]uI-l.~' /_Pzq]}>嵯}y~SS3H7osllͯ-Rr:P>_G6l`(|q3_|޿o_bE7boޮO~ά;N/;w{: -[^ƞJwye5pK]avyk ī %snZ? ?98c͝1@B3`kszcW/kc[җUq&'Eҷ=ededІyz9ث;CsTx]k(oذ?ч>:O3_u~,_~Uoy;Cmm/,/zw+wx(;vPlY?e޵kw7[r饽g|~>կP l!!!!!!!!!!!!!!!!!!x%oS ?qYku/3g?yo|sDy+_K/)oux,뜈ȥybfHeVqFZs[28Eb s`C~Ǐ.|}foz5N>L<1w',τ?B;A l;gv0݇p~6v_Ӫczh_qfa#/>gs􂞻Vݙx!G[}}J]RedetǃKgk#Iн9^LO{aϽ|~$:}5>P{g=~m^^\rɋʓt,Wo]տzg|_S^sͫfnz֫_7þ}nawg;<|cU?ׅ_^7z5 x<;.?87Moj ׁ_zYgY>wwUV7^u6_+,{u+j-uˡq旙!ff0*Ò T19:?L;Ic߯߶>5ȋ,`Uڧz/,>=OCyx]y8v{a|0yƠ,˼7\;:3˺׏lp'v7W=v 1q+ |/ wܵij Ҕ:?2tZ#8HF}ȯ?^3?rʗ꯻Sa }yY[Yx9|+/y2|xO~S媫.)_/"<*/{s9p@7SN1=rmw~֭;}eP8 })ocW_reo}K_ܝ{_Tw}wyk_:_??̀uyP`o*s `9gL>ѓ!=xl0Lַ^;17>c<;s(蜡߻\̵>r9pܝ&Nݼ;A !ivYz66.ts6> 4c|i'\4cGlMP㎝;bwt[;>7`pZ222P]ۗr&O=LzV:e_~}ȯ?^3?.pV,/~4]}Vnes[r/e=_r[˽_|p[{~u{d{;_vً7Hh:čk}s9G&>!!!!!!!!!!!!!!!!!!:_]8*uWy_/} /`~k{s{00p-t‹aggدzd rx'3n;6Pg'8vힽw\;b{g.|gsy tasFƘךl}btJnh_qF[;vj;l'|>~'ߕu]4k+u|d|[K3gYַym܏Z("dȀ [_X>t ln>vl֫q㎴pemֲƑO>gl|=&&۟]24(û{DSV|%2=lAz&gWza̟ n1$7яVe~]`ER8Em,k֜];299Unw;s;/TG/- 1ţןW.nttzxDqx8pӿ=9̧G~9yғRý@.oZSra0)d3C;}Ǭ1zMF+;!m=Ao}>ڈaow[}.>1M?ֆ9mV5OHp°:Bhfz>4xƯ}h|C o*&}[oπNAg}t޵ }o}}ڶsu&C:{g9Q_ SN+@ x̗{8Hw_Կ{/~nK2z칾C;Ί:y-.|8*,懙-f!](fޙdm?bgyf1'gA!4Gw,t7Ɯj{lŷ>[['$^rٰy#i.`uѻȧFϝLyZUs{Uw=z6;h>/мglj-,RNZo#u{ubSϮ`#Axja}z?9G ~#N\uZ߾c ӸW)C{t𾽕1>[ke uw]{O{G٫Z7^wd0׮[oO\nys_`{K|w|ӬuW~Ce]~p0~o-/ytgҗn*{^~'\wwe۶(/ DB B B B B B B B B B B B B B B B B B =P&nʂx?)}5;ܵ:b ^2|9>hu@|.:ev޻lmh;L233I֎AY}oEwp^\֧䱞a}vyַ:z?g5AO uk~Dk80eእ%ӣ˺eeZ\:tO{7ϫ>P> 7pc8SO]=kwcxa( _rٻw_ͪU+/Y-+gk~oo,_O|yOyc 9^~<9yF˗/~}c?/x|lݶ]ZR*׼g=,`< Տ@H_ֿ̿unvrfvAj9c!Ugџ3ɽ[{59㋾sfmOp~?ה ze)G@@@@@@@@@@@@@@@@@XwZgOqy5忾w y]?Lw}Od@SjY~}߾Uؓcxx~zය|=v 3K\2Yct ~'cG;(3NqƆɍ;>?Xs6kVskcGzCO/6A[xuDճL,y >glEUwpCԷ/9/xo󴽐CVǽѓ6߳/qG^fo~v_}#za̟ np>W_ris򖷼hqUs,|S˷~ ˊm W_~w?=y_P^/_u_[~׮RW,SnG7w?9U_뻾uVL;_^s>k #矿\ݝG@@@@@@@@@@@@@@@@@w>|ued'w6q[] :$ܞ#Vԃ3⇸sƇt2,53.m،%?綾U3=Rb&3,C[O=9Ե=yg|Gֳ3nl)Vn/)N,ˇ6q^]kqƋN.5!zsaSq\e/XYQEw캞G^2bc{Mu(@x-+ׯs du.R,\B B B B B B B B B B B B B B B B B B B`vn+4ȓ7dO)çyB֏z.ץ0̈*sネ9cl-#/Î88lSo1?;?5YS3z;&!JۈhaVCpLXӱT]^vĚ"Ź=09}WULة/ |Okȉ$н9^LO[IG%P?{+_.ӻw=cah2^G}OS\Vo/3WH*;ĈwfagΘcv|Ef،ŗX=w31†[=>BȁhzZogkCo`˾y;A !|0rZa8 3puƩ#![酳8K}Cosk}PƐo,uɻ my}OUo%CA`yi$B B B B B B B B B B B B B B B B B B B L{wܺNbϑuyOL׹+k#3+fTUv#uGO;ܝW:߶q:v} 6a}|&V}3959ȫyq>=`C|m6gx4KsP l Hߌ@OmVu|<`3/b^Οg%L=xu)7عIE{i_Z/%݄@@@@@@@@@@@@@@@@@@@7}{duZ>)ehc'Vf/]Y_gybRnz;']M]x|Qǜt;O}te}ko礉E\o}bY6֙n@_UX!i}8|ںE2b`ER/bjk6u_^w|CW׾tCo=v!fu]u0צ)SWMdIHĻH!!!!!!!!!!!!!!!!!!!GO/Dz|Tddd˖vĠsΨQup6[~3o=vgti;ķ3G~vqXAnc?jQ&Gcm?>NGƻ˅\/x;=!i/:ꚗUN+k}/+%(Ԓ%fR@@@@@@@@@@@@@@@@@@޻LvKE+}UZ%xu0̝uqTW;\1;dyf9<2~YzuǮX ɡ1>3v8bXEc4ߞmvؠX&u0s\Ƞ;> 2ͅ59Ӌ/BwΈ9G}wm5to$K镤%09Y&Z?tK'^G{O|3WNnqTFrX0Lp>?}ˣ5CGg71M}A>'gwuUa>!6W($ 9hۼx0Z:+ZŎ`Z{[9#go㽣o,cCOMt^G;gz=[ߺ ;v]?=O ^rTuy|?Յw<ڸayT x\Q&MLxޡ+Ȇ/6uG] C*;>sF.fc7l2"sfczoNg[_;1Awui}d/mꘙ&9xGZ7K nxPr/؀V<ۜ@? G c}9Ãͳ/ F !Գe|ĵ}kYW;||6Rdi%Lj!ޏN13t߳u> O7{g%B B B B B B B B B B B B B B B B B B B82y!92f}yjj]ZYמ2 3l\|6q?E걛yfg|kg`z9ishCo>>br _fyPO`Cgo9s N=:x֟ Dz]p֟<f}t>bWw3٭oQ]8~?cѻwjX7]/C>I@@@@@@@@@@@@@@@@@@2ycKrG]WF_pPZ7_O3#w;6g!ïͧ4ns6q>yGg_˙:3S<sqqgYM}Q | 6"(ob ; =綾9ѳ!/@z8{9܎3y{9Enl.|Yem9IF^dI/!!!!!!!!!!!!!!!!!!!D`@غL=x19Qg)6iK]bޘ/3ʙar·[TUyffvb}psf&qƚ3zkۛo[}WU۳3كPXšswAܩ⹻kY]<0B-LrKȅ^, 3ȣwS]?`COX37/yxvRm%F%RN@@@@@@@@@@@@@@@@@@1޿LsWz>kMY{~Zx V<\3\5;<6sFZn[vlڽpC/Z_jf[,9؉`}b%4PŝAO+O9im>FG]#؟k8z!~,籎}ӷͩ'عcSS>FW', /B B B B B B B B B B B B B B B B B B B @7o?IϗG[CCCCexx/Q޺v19;zfٱ;w\/֎_mXm@IDAT|Y8m}mP쵵cNi:ovb}. A#Է}Xg :[,>31 R=wo3f`<؝#p*6΀.qݸz섻gT]NcGW=wirLج7;woR"нivS3s3{5vWn<{mܰ`B B B B B B B B B B B B B B B B B B B B`1L(mbosVoEk`>U 3k1>{u*;yi6:_뱳k-舷9,;CpCm_Ž^3X<کw+zb'k`>&'>,}Vtb~."ϙ?{#VG/:ȃk¦kB,8gccc59!VQy6'[}jkws+;?gm%F{q݄zk}ȯ?ث{g-B B B B B B B B B B B B B B B B B B B`q L(SW?SmSO?T+jwp] 2+9wf wΏ3yAf!xt;֟38ӯ=kgfWWyvk]}mL^#Gˮ39<> |hvvt>>zGo;G.ՙ8ã |!񡾃Yw*thg&;6b؉>Եau0Ъ, ބvujvu؝1w\GO}\}_k-li>p(yѳwcg#':!p:ae|sXO?9գ>g^o>H[}>=1,- /wnB B B B B B B B B B B B B B B B B B B /{ԶO{|dZt_?2b<Efyͽ.fv;c;9~a昽mٱoQMͻ9'kNEG߈3X3~ܱe؉wo}vo{"V~$8V!L8}XwGXpbĘ30b3:_=v`1ۯc~=z%]>m cY|/m7=2^J X|5jǶ2s[޽Z vf>:On*cccէR1 Wߍ9ܴ~3~sqƚ;gćXyjo̜ZoN=te}㪪b6Jԧ޼w@9y i!bUu:ra0/13 Zm}o!;z㇝k}g0=Ʈ_ƶ~ե/i7LNo~HQ9LO>O^ݧqڃs DOQw< : > >N2fؑKlẘ'f؁Tfg;̽-scy]+0g Y6v|ُQ݅l6QGpN~`<` cݼ#`}b_1,lY\l.^s;1hϣ՞ wobp;tdS^soN_a3{ 8<{u/OWOL}:Ieh2lyESV}ᓟa{h[]C/evè31pӇ3wN~mMA^t`gQBM'>ͽ=k?}go g!U|x#qGۃ ;0}e\浾>!Y~ S=sGln^YG}l?vu]xW41KD璾Gu~ܥ؟._͕>@ʯS #:eXAD=8ݙi3zr"Ġg f_};gsC1Ƴ3j[̅\!y؝ݹl>o1@kgSoB7}aЌyǟxrY֮N1Ƴ5C t[;v9o v#[Xjt7rȊHa3?H'x|>=Gazv*>~knyAG^=ǧ~񧦳O<ٵ{Nb~|hؚvO-ho{T.?6|,E9c[Uu0S+%*S8@@@@@@@@@@@@@@@@@@@׵.fY&#kfat[?fl2z_w޹͇ iq'b> qְ/t'V1,n:cqϥg"ƾG;m֪ UVAXM,bӽ[χѳ|qzVL. "n] uXW*qGqKbkb..բjזZ dPD@w̝D23^3k=}?A=#~:bohAnznkF|;tG^{.3"zW,!<347GlC B B B B B B B B B B B B B B B B B B B`뵗iA0 4ۓ5sG4!dm<9>6Ě#8;1'ڳ|ŷc>y~UONH#Ð="N}V|on_ͣ~yĶ9cNfX}յ{sas`fxޘ?7o̯vb48'lC B B B B B B B B B B B B B B B B B B B`k_UrzYoCߊг/8tì6^h^#U`ssUwgNm=H˺_dXh2x<17 72㏏-@t~gVo#g|g~Gǎ1qk?pђUmD`Ѐ;@_?1i6B B B B B B B B B B B B B B B B B B B fzKgϞ}J:a4ˈֆ=cm$sm3o'Y0ghn6sg&ag}rX=y][U=QマsX;̮rrBJ=kT.e<^KƓisTsWYƷ{Ag<vY>3⹽Ssh󙳪5O>ZǼ+X829347GlC B B B B B B B B B B B B B B B B B B B`o?^{U7A0 G͞c|=&F1#X]cg3m xgNX8f=u%'BLoN쬽[߮rJ:/ølMڜGQ/4#aM8{/ћGˬo]=8dU 7mD`Ѐ;@_? i6B B B B B B B B B B B B B B B B B B B fYf+긹Ea^b/?;zGql7zj܈yANzY̙otk7ơژcFw!N/wpii:"{&<ć`} =kG]v 'ܷyڳCV}['78x5 7lXw>4d!!!!!!!!!!!!!!!!!!!3H3g)+XW#ھd4ӌ/~3k|e饦ggַgeM9+9f/SOu\wc>qFֳ=OxȄr0<VA[_RX6q^^kqF3^_gra?zsaS<69bmu>:꘷xɪ 7m&udg$0hnO7=8ن@@@@@@@@@@@@@@@@@@@ #Pߖ_[yc:A:z+f٦{|Kfs0##g=56o36>h 6c~u)") *A5?̭Kξ0,M@~rP][3Ǻ=b3<ֺCelm<3X_UݝS_^EKV.ٰܼT S lC B B B B B B B B B B B B B B B B B B B`>^{u1az%Fӻ;}3c/2f,җ[+6@:Ǘ!z9 vr{^zX;wBvl ]>MZ<@/hS˰k SG\ C mh9sւ yN7:6o99بo yP{qW^OWDvN$Ә߃m@@@@@@@@@@@@@@@@@@@0Ξ=zu|bKb|+Sf_+yawo[8Doլ"V}5q NgS<[{`C<mq"ff#=v8ݏmuur޵a؄`AY#\?>mNǣG [`O tkcr\;gBk^M.ׯt^!XL!yc~ˠwƁ>4d!!!!!!!!!!!!!!!!!!!3@m?^{Mk6WLC;=6٣C𣟙8l4ۏ֧.+7K>c__icPA=?zke#}1/6W6mtކC='YpB]vzos 89}rPS=1GXmNo~WU31=Ap";#A~p}}i6B B B B B B B B B B B B B B B B B B B f2k֬Ա{ma5ؘ7A_=ɬӛ̚Xrg6~谵:rx6c7oo43bnj[Wq~!|rA7940́59s"3zs܁]KW-ܴ udg$0hnO9=8ن@@@@@@@@@@@@@@@@@@@ #0֘J:A/Dcجn1v^g{ѳLӷ.<[8t!r\}sԷgm >U ?ok\^K© 98lb v\ ZŌ`Cv3qn cCOMtniGŞ5gήo]fZ6_||w~Ҙ߃m@@@@@@@@@@@@@@@@@@@@WAc~O="#Fzě"fc4oN{[_;1A6w:ִvYgh㱛.CmţǯK n(a~gl@\ XhEYa(b}2ևCl}me 1:8[{gkUYׇ,YS7R*347OC{p F`dd̙3z5u>}wϦc>g3: W]334XY;籏͡ X]c#!NmylzrB>G}ύτl83ԣkk Г|Xav 0C:|#l}եy3q&1{1oђUlތ{dg$0hn4d!!!!!!!!!!!!!!!!!!!3P5ki4Cl0CfƎgtMkcnX/?9_XSټ\u9˚:흩o숹X[gX=6E7a p@ry!;6DP]{c00=붾93!@ߺ8ϲgbnI.kN잝Y6ͅ/3s.ߣ.YZdg$0hnO<=8ن@@@@@@@@@@@@@@@@@@@ $0<<<^{ukߘ7_̚fr0}jm?sۈ?Œ/ Wo^lm {5=ш=֬[ٳKnzU58c'_I ŧ*6;sH/L ށ ~aS?ma :#z23#g/xb#>=g?OuYb}ي]S~nt83糶:9<栞k΁?}FcaK`&ɟw>4d!!!!!!!!!!!!!!!!!!!3P5ko_UMurf(3cc.;_=4"3_ژɡx֎=9uZߺlAA# ;cm&-t@˃ R={Y(kۇ8y[Ga-Tlُ.q޸섽T]NcFus0?0# qG][zgZaԦM^S wG$- 'u/ksul-sy'{ķv1}ݥ3xه@@@@@@@@@@@@@@@@@@@@/#022R̙sb=u^d]Wq&U{CfKzfsQheWzcϠxe8g0[^ir`;<ե1y6{Xh⑷Fl_\Aq^kccpyYOsn\[֮!fV3?k-Yy"i)ڔW[n׌6w[ NcVE!!!!!!!!!!!!!!!!!!!3YWwhzu>bzm gOC U1&=4qF1g~tk휙he'ml ٺZWl`ɋx?r:TXd*y 4fч=Q~1Y#/o]Vqmΰ>~u[!P#F;5L ٽX"!32mY7--׍k6i6 i PKmΧ1Ek렏&a=}s}̈vz3fc6~dƒG̬3][~hrocENbnm w1ͩ?~.kfˌ0RJB% z\VAehzG/^uk.szQ˳6|սsuj[=go-f|4tٚ 6l36=2GG~`ObzeOjʍedlKdM@@@@@@@@@@@@@@@@@@@Tco̟_Q3ͩۨN9~نVf8kTSgsog,yƗ<^[]vB:ɍF;\.;q]l !V~S OUe{ٳ6[[Vovnu͌{C3o\UuB FɚԛxI' >8sr!ăsXKbUu:raǿc@V[߽[`agf Z{lm٘K֯ dϺd6nÇkUwXڙ摲i֟MgG %0<<|b]]:'eR֎kF+[fݏyCm5I }:j7q#!=B<1{뙈VssII&zž53 {\wa0kc:ۯ~]vkk8r3f}rY/gA޻ef6?cowEKV7sS*2)R6-6gHcxم@@@@@@@@@@@@@@@@@@@L&0k֬244treu4N0=,33Aǘv{?6/=GG>͌}u9kkƷO 33:جg}|m}b=ٷko {!g5I xy#΂#=bs ˼7\;:5ú׏uLob.؛WQ<_ c:]tMT4Oh/!!!!!!!!!!!!!!!!!!!!0sԦRc] \0>c=:>gL3>ѓ!=xllY1h|tP\Aϵ>r>p&N޼̓O:A p~'=꘷tOm4Ok/!!!!!!!!!!!!!!!!!!!!0sԷڜr:n^bzUfw~bePzc<{b^ژrE#>klc췦< :sп_Z%]PlG"LJ[ /Xl /뺪:ܛۣCq.vO-hon-Sݻ8)`,Ӵ۞uT1%;SəB B B B B B B B B B B B B B B B B B B B`$0<̈|vyW,^pd鑼1 \Ә?x E6ϯ7^^oA^h3fttoOx|̍TO?3{G k\ { t7Ɯj&V̋5~U=9!C.l^@Z; X{gGѳ';b~!7>aa洎9cUͅb.ρs0=xcܼ1RY%;ɹB B B B B B B B B B B B B B B B B B B B`#0֘lm6 #6}߆gM_23q؛YU5l6f3G =ѭn̗z6u9:dbP x8}?1co<`#od`}[SϬ`#Fx2a}A觽͏=bu%.ڼ3n;V)Lc%4B B B B B B B B B B B B B B B B B B B f[jٳO7^Y:왦wq?аgwdz{m$kfݍf.2^U?O3'k}ӡW?jq|scǟu]NNH0U|^Ѓgʥ֞ zIx:mjj2 v/h'?gFsVɇsC]w GF0O1 \Ә?x E1zUuT4Kl5{zm4NEh*Ynj_bmFvugϴ֪nxoY[;Kb}mϳe1m9nm|. O,jw q(^$~ r/~65is1?[GݞE_mp5qlGoַ.uYKW-ܴ#w1 <Ә?x C`֬Yehhh~:næzidKn6OƎigQFg:ͅ&7lCcG`ck1s&?ڍ5q=6fĘ_tGK!\3GZ'.·ȞzfG%| !XxlEQ].~p<#ɡm,䐕cɍn:^| 6H5S9FFFʜ9sN7^QǺ:-wi%؞f|CY/M/5=m،%?붾U=8+kbmYiO4k|Gzrk 3ou6~³E&<:f2c-[36}:Gg ћ yA.enc댏VǼKV]i3GҘ?i̟@@@@@@@@@@@@@@@@@@@!Pߖ_[yc:A:z+f٦{|Kfs0##g=56o36>h 6c~u)") *A5?̭Kξ0,M@~rP][3Ǻ=b3<ֺCelm<3X_UݝS_^EKV.ٰܼ2|d-I 1!!!!!!!!!!!!!!!!!!!3I4kl7{zaϘcf|E،ŗX}={51†[=>Occ @O4gZo{kCo`N\rIt%9-tjxb Dqka 7{ZP8їA0-c='X!O[Xw:b #gLWԼiM}W@@@@@@@@@@@@@@@@@@@PԾٳgR.7#(찫^bu^~eo2{{C1KV_x.bշy\q6̓6s'ǃM$fk1jaυl,oxacE|8}-2Z=yf>6żߖ?w!w&3xu)^l7A71 ,Ә?x C`1z5u|z'^vY}/Jl3Ae-[qߚ??BLۋ9g3ׯ-\',p`%Hgi&i/d :苞_:a~y.6kzX|Gz1w&1{q⥫nէGZdҘ?qfJ`xxzu8FuQGlO2zm!]?fGӊ{o{͋Y;c~6t*coG]ݻ\wm=ܯ OX,6m8X{PǏ{N;˅={X:&o=>quE@IDAT6O[󢣮y{6_Uu^!33VmLӘﳘ3KD@@@@@@@@@@@@@@@@@@@P1z5ucGN3 dcl?2~ZǮX>{ޘ?wn!a8)04OYB B B B B B B B B B B B B B B B B B B B`&*f:}M갷{Ywycm/z&vOo2k{Y#H3O?ftZ9<1ƛz717ge8r㝱#ıv9!ADSIBVΡ׷1V ä~}m3>~o-BzXô6>Y|bܳFa>sft/]p&#i̟4O^BC B B B B B B B B B B B B B B B B B B B`k?xE렗{{1lV;B=Y&[]A:ꐏXmu9EeoCS򳶆s{OYj|5CimmQ %Tyq1Zu;.ut-`bFVgo}ֈx87{f&v]4#bϚ3ygַ.B-/LcXv9;qB B B B B B B B B B B B B B B B B B B B`%0<<& @xw0%\u9b}? G0 > c}8KvX__fCzfߌϚ\u;u}Ȓek>q#G)pMc%4B B B B B B B B B B B B B B B B B B B f2gΜԱn1{lu?&bzw=X3c_]v=7b}f̞>jkG66cmw;Aalc=7>O8 P\̂SN 2CO~9 b35Za>={sT.NcX>:ęUǼEKV]y3#Ç x)567 H`hh̚5ry7bOVo23vl>CmjG_OsNbg|GǚA^iL}`Gz=̈/ p`/ iر!ڳ̅ٿY͉9xe'ym8wtwkNrq^sb̲am.|[}u5U7wɲnզGҘ?i̟@@@@@@@@@@@@@@@@@@@"0<<q~res_7g!!!!!!!!!!!!!!!!!!!05c+juOL0MUl> }ӏ/Ƭ!aOaǦݽyϾO713US׍!Y;~7qރ[{_c[^ns0+~}b&%jG @Z{.DžO+O9im>s.|A//x_,9׾6եqݗWV>/ OQvم EB`-y2T/*EB B B B B B B B B B B B B B B B B B &@`6^ظꠇA Qflq]v[;z|ѷ9hDncisgc1C{rP5uZߺlCA# ;cm&-t@˃qzFPtLqkb kbc ~psm.e'?rO3yճ'v|'wfq<8;1{1wɲ 7nfzJl?Nߧ,8W}Ο\i?_ri4O;b 5o)?ޘn>m7o7\s͵ib>dr䑇/  hޘOc$=UfBw/|u*ۛyi6:0_벳k-?et[m|Zis65k@ߤSrxcG$ClRo% 赑v{a勗}nUmsw;smfD i̟(IpïʦޯFR,xO﨣(-r-3G7sQ&ryq8l̿/o{a!!!!!!!!!!!!!!!!!!0###eΜ9'֐+XW==4ۯl0=(U+ۇX}֩ˮ>>mP>g[]^l֧5vl}{ɉ5zjTN_XY3rbGCx~"r!=yYlŏmNg=k~s0CιsmNn}tS[F8YƇ:̈KGAhfV݂xnqmyglh~~9qj|!w%ʿۿK_pjyo?jE$^?\s{'7ާߘ7y}84ÑM%| B B B B B B B B B B B B B B B B B B`f՗X \3c}+l9{zgN2M6㌽gcnk'k934۫N<u>_~huƩTx9Axif/Z;:/{裞mE8:sG^>CBGvfk2c#{_xE4!Oލ7ʟ'׹]}MQGwu 翬lgAco'u{Y9C}uח3<+l1ɒ;AǑ/|rqg߿Mѭw~q?WX]v{3p4|Gʏc.ecŇ)Oy|W,fp>bn| _)_7pco|xOg!!!!!!!!!!!!!!!!!!%ks>+X[}4 3he[\;3a6F@񳟙5:2>z뫣>GZbWWs7YXgԟlG `a$Us:X @]vȉN}9<·͊Ukʚ ni4O+_|"1 <~N>8b 7_gpkrAw-yKuT/_U?6~S˗/Vf.zՋk#p9 }y#RN9}ۘrifM_ih˿\5ro+٩>~-NzZZ|Eegl]|} u-_v~d?;eE%|Wt_xыN-ߔK/=ܣ/r;\{-oۮo~uNQ6sMó)eVRG/Ftw7xͧc]S[.]9IF>49ۘ?5wMep|U~_uogCXx;6Ӟןޝǿ/v_]wݥw^֭'B B B B B B B B B B B B B B B B B B`٫}l'UuxG0tui|S_:aϚ8CSϚ>ц>fti6.5:Vovnǟq͌{ 7:!_kdM}=iN0lN.xpp `Y#Ž?/vcm~j7 ? D_sa~t'j3*L< Ǘ=K&[||H6}okni@w!|S-iG/lh]Fl8h_n'>O|ts]3:{O|oMڵjT7vyTGʇ?q6O6מ /.w]/%}w`|ᕯ|qr9s?}P}lّzK7O~o,SuY| 3ٲ m4fc}[L1B2bv|X3Zao2~}4XÜ+зyF ?j0;{zo׏N>#ѱxmu9N<7眴d j Y3˰,{/al~6fռ_eFp#7|`'Yr[]vkf3m>P:^dU}c>ǚ=_we+Wu폻k/\|[ho}Uֻ̙Sr t9wuiooc9_-Zڽ- oxy}kHwA[n}g=k cxM}K m#XHq_ŧ,o׈(Qկ~K:U/tsۘ?3ήF귾q ٹ_bi__KژϿB#?_48CƝ&׿IGW -3_YY| iKT~?.ǻ<sڭ?з~.~vܧ-[?PhGN9Y g+?v:~w?l`QV~Aᦛnx[Ic~K#z tOQX[M4 CL3!3dhlטccXst~ÚaQ&km}j9f=P!ٷ\ytַóLU<rgAbrx1F߇Xze^K.ša]G3[._/˗TXϬ? [_1#ބӘ67?(AWP _{޳q=so*xKaڸ~fV'e꟔kmdո_iN* ~|v!x k?յY>~ _AXpï\4vN y_yki+_Wm;^/eySq]~vl̟5kem_Z Km,xU9j| ů7{.K/A,]fT!!!!!!!!!!!!!!!!!!01)5je_r=ͱ+mE_;v{[ɉa~lu96u1h|tZgF̅\!C_[8uƢZxrѣQ^C#Νa̦,tsy.l\^:-4c|h5a҉=5c}vv|]c}c5/Z1՘C}qpQַ bUg?`Gy ??q\V.ʆ|!VyO.O|*c頺]917frfyn57o_[m4YB3/~q]ϯ*㩧>~4jˮf۾d|mǏzַa_?Sg']'Ao6fwm}]7ùBρ1F_tr?915yyVrGkSsbNMe =cPsN=1QǼ|7lO^3OƻGnu,}ߗ7lb{=튟S'nӘo}|cNԓ~I] .o֯Vl1Y1a߃{رӦ1{ߟeV-0wܻl_dy*K Q>77U:SNْI~]cd.Xpv&s,o|+zV׾~vlmc;~ט?|i)eK>ڜrͺ렗bz~uYhEo?3:|lgcE̞EYc۳jc./{˻u_Tv{dQ_xYu]n/||ӟԳ'>rN}7~x`$nOc~[p[r]=o7v޺e/Y\t:ܘ)s>)/;+]>tO,'n.[Tx=ܑٳ w]:x/}{~}cDRs>R-Z5-4#6O3]}.1 4Ǯc]3FF5_l3:3k&gFp|ؐ{ hg υj#sz茭-ȯ5g#sa ={χrr&=E:b "ztw3kK=#~:H:ګzۚxsƎ:ѹn.KÌȇyW,^pdO/W U:[k5^^c罿 *_+r~w]|3_(ա|}?13ΌӘkgPGogRߴ~mY=?o?g{q?ngnߴiSvkiRk׻Ʋw|iG~V'dZ!e+TҘ?+_z%,({ww? 6OCj̟sq4C!!!!!!!!!!!!!!!!!!C6ϯiA0 4ۓ5sG4!dm<9>6Ě#8;1'ڳ|ŷc>y~UONH#Ð="N}V|on_ͣ~yĶ9cNfX}յ{sas`fxHoc> /|u^{yx9[{?7 gܷ^Goxkϟ#Rs=~x}srïn,էʆխO m%ޞ|r,Xpvm~!嵯}Y -3_w/z{:oRG짖<ݺ-v|\\.,˓r_{QVc[_Ss.p2_xkR6mڼCR;AG/'>id&{0㺪 :lgzf'~Uw>\ݙ2yS[5Ʋ3Gg>6Y}]vv#Ƒ!oڻ\dE7ymt1~ֳNyNy7طnUyg?|A6RZۮS'WN|fySتv%_'̝Q1]7ΥAx1GSg_ loc>:f[k m畟ge=v// ʼyskg>)q{8{n;{cW-ﭟq(~\m5seѢ,:˜9gk4ӟ|Ve2Ђ-usr?6OCl̟sq_ט/DK|x[}w~%!!!!!!!!!!!!!!!!!!= />c}L6޺oӵ6k'ky?=mDAZ݅Q=k&Y堞{ַ:z?{5AO^cǟu]NNH0U|^ЃgRjk?{gWQI6KH)X #JB/"(Xґ"KRDEti"i$PJFv}ٳwM<&3ԙsx)99,ȊO@˟uz~gFtn)́8|եO>:7>o~{dcl*.6<_w许zN?/|ﯹs”/N8-ے_'$6w+z=z[ݘ_ Nmoc>oo/Zk_p`>aB]xc̶bN::o 󳟝f<6׆-(/4_x0e _V-zc>Txӑ2,;(m4`CVZip0`ٯo^z-Gg6WSo.e2,5zrPW,!wy_G)"T7|^a5U2w(R1{Rˇ!C} LLLLLLLLLLLLLLLLLLmGqhqqFPN/ԮFh_b#&3#X5#kuiŪVt+ųV43N%Q}1?͙u㧳e1irbg:T&*\YTs.ǡ% .CqqY?5S$iN#Ϫ#)wz9IX>4#Ú8q6®{^yW}eo\q,;zđ ;s+fއ$kԫ|mpǔ>.1G07xl_zp=>â{l_ˇ=}Xk/X9ufV|cX1'_{:0m_.+=tJwPKG zkK}oXڳh1>~A`4׆EO gyq:bĮa (4$ɳY#ej*3-\w--~-*Xbdic>~v1+Er& ֳ @+wNݰh~;P|\f4 KL_2^ct%eC3(StjW.ԔG4+{|R=~:9f8fΤ&|Av*wYecF3{7Ot| :03{zECdZzfKQ}=k|8D#'Og!X|>zr'9;ګl̯pe|&O[˿oѰeo:/&7w>vf1&LRi"#ݻw kv[eoRϗ_5{;>M뭷v|j⋯B#җN?aEg000000000000000000֎#>b Mi?D3k|A/Rӳ̬>b:.5MH}r'5 GHzғCLZgM>qF~ZOuíg80 CҁcAS_R(Fvb`Z2_8F3|5GjG\$:6$GA.΋/6˜ƨf|Tˏ3qT,Rw6w 67+Mߙc&]67%֚ߨPv/G`J" :E~Q`,@m۳m0kVcXlEWXl0wU+!߳ /Px~v urnkٗ<^xзoNS &^ߚ'1=g!wTf1ltaSsÌOzaCǞi~*g5O}bSW98iz|~l=U(tI1xV+AtAT9.̜{٧jҘ=ߴTjP\kcdQ3<Vu5c'*,A3ɩbo85fH`Jܘ_Y7Wϡ&Ǝ};r˟_%Xae[6mz8ij_ӧW8ZXa&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`EfhUo̧A^cfzW;}3^dYb%dof/њ†^9k:/yC~l ,ZX^ v >ر1t,Q-tCMA.FN: kb D:IG\ C@]C{šDg NÑ/CrP>/!OZ_#%/ ^F]%n̯l}ch疒 u|~c~K>֘@W8p/_8cÐ!k5Y0ja~ED t>zK{1"fq7#(bzSo1%է;կ^ͮZ֚d|ɟ 6Cѹ>ͣ59Al䕤yбW}fs/+C$ȗ<ŁRXs!5ptaR}fzOaER}|/ՓlʧMߚ?w!w&FgT>S_D>cՍu*X1 x5'p|TG_ a8,?>(,%_/LLLLLLLLLLLLLLLLLLL3 45sN7ӋL?1lzeWt4eǗfcJY'Q.R}D8EW_O-b9ygU-\+80 %HgeM,^H1|3Q+aNOb_{|^_+bARЫ3z!oG8w1 n̯CM`އcsa͕þGJ,&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&ujjjuqLiBQGdᇤv1~dyRў&egGYv8Q}}=%ZΫ9_?An׌bQ[ Hq.jNǣG kNFs [=5il&lF{;gB'󢣮E]2A/!Xg3-¼*n̟We466 &7>ЧO0`R[ b&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`]L 6%&15z5wihXMg&pՏ|ѳO\6c%cS4s6ѥړA=ѫv\fkz>z(/4Wޯ}MVtx]PϞ'Vl e_у"/"=kOs GA='.K5'FRnG/S[mUNy^gU}|1['JJ*6|&F2G%MlnיK=c5QJ00000000000000000000[dwg<8šj50̚^dl4W,AϞfU7YY#fϬ|cF-Q_gSW_̈rS[S}(N_ 8e:2l}U"$!qtFuΡ,OϣX|YV&ח `ʁ>Zړ Ccj`Ҝs=Dfbg(Q;0ޘ?zđ Fܘ_W7Wϡ&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0hjov㠗XFP#:'=P2-u@IDAT~,U8t!eʅ/XzSjO~֪9'kTRSyZ?D>-5۫?IXC0i^~)mxi:0kr1#VƞggNGǹ33TzjKqUzx}سL֪j1eg7ߒ u4-Xc&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`a1?mWY="#F?3zeˬ?Ef FzYT_Hz8ÃMk=XCL>0btqW}%=ތϚ\q[k^v̸I77\Utc~j&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`P[[g85ݜ>fzwϦc>;O=X3c/zo ~3άZ5#I+l蕏r\b6<6zr(6|ʣ8T,J^q`8r1 DksHʧY0!Za`j1K{5U_^9K'P?̓bk!IL8kf½kčUpmoS 1 500000000000000000001ݺu ݻw5>MףU=j?Yz!3cǦgtf5/'sZ;ϚTk3+/t,eMWrV==CC勮bA*p@rB2ر!ӵ΢f. %勞uZ_93!@qtfEw˜ʉ]ggʅ/CgLT]Juw 3nT}=Wqc~\ݘ_A |CfXl]Sߘ7_̚Y[aDU[i#23v5ª+tV4WjW,=шzYɗZ7G|T?̈ןՁ?)^\3ԁ5SųO 8ac,9o \k\Q}ϚXl䑏:g>Ot-6D9g*Ϭ5ȓW^pw׃=aԬ]%n̯P000000000000000000045o==QX?VƗ~c@v/c^yU}Zn8r)F!vT_y{0cKXf,)՜'CBPnT~\DI_@9Iia pfOY3Ǧ?t堞Gȃ}TG-|Ӝј˜u77; YNÍUtc~j&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`nݺݻq̈f zΌefl;̗}jG/4i˞6cl謩{rqƆD5u.|u#lS;^ #r`)={YriVO.6 )O\fkbX *6ր .qZ+{e&UI$8fD畞=drq'lW\4NL8W7ލč#LLLLLLLLLLLLLLLLLLLL`^%1|zW͑af >c~/_yӬh;Œ?v|kMg~xW4>ZC~:45:i%=~V+Xs > .%&\lW|}呝:W}bיTKA8Ì(tGUzgcc'@ʮ1 n̯CMLLLLLLLLLLLLLLLLLLL`!jkk7~'iqЋCL8LzՇX陕ZEN\fnW Le8 6է5vY+MN|i4OtD(lrQ#h:tFzb_شV,~ .&t'U~`4~Z+'gW}tStѬP3"3Y0j:Yܘ_P7Wϡ&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0޽{֭x qL>bz@Ξe5k̏_kЃLի{9/;qʏN~ZvLo4e&il YuU]`G]f&.'4.Zvt|@>ҳW~tEcD{}#;j2c#+opߐ*qc~dݘ_< C 6؜OcqL>bכՇ̌N3} t̊~hŒ?GYѳWt\fg^ɫ3\X"'إl4#uY3s_f?rXW%$,L@uX8$24eGPAp}rGRՓt6KjW.fY]ڪIW-f|40vܤfqc~\ݘ_< C1_=.L?zըN9~;ʡ8Ո̦r(/q%-.3!ɍc=vtD{xgV '7BlU%Vt IL~uYcDt1wLU}KGgW{[u6O:/#a_TC؈MS};Ao0r,Rw1 n̯CMLLLLLLLLLLLLLLLLLLL`!jkk1#i`o8fOC#Yir'=kGc͞bQ}SK霮UէaO=t:{+.2!_FɚN !:8Ep bTe:ra?c@VZ_{O!;z;3s[ClKꥱ_t)I4f\M;PuUtc~j&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`=wY ꑖ]}Sae8gAD5x 6i<Ǐ>fS_9Y?:Gtѱyu&efB} svX b.gL~.^`뒬\L,Mʛ/?rqU#}8#7T\Zt_΂ٚY)i>~85fb|c>qc~\ݘ_< C{[nief=خ^cZ/=GG|XIe/ߴ>5ȋN9zDMV}buNfWn8꫆zCwH8@s 6er0cc'lh%j:Yܘ_P7Wϡ&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0M!67Ǵ8afOO1}9ˮiGkDAP<6|yV,Y+7>xfSW}OkCȡ<^}IXt`%pKrxDKٖ6upfAW. .=4'\M:vD1ZP;{D94_5#ةʟ_K111w,55g~&"6g/G&]67%֚h;00000000000000000000:4?0@Lފ eL&]jǏ9Zz|jؗSSϲkV~5̲k=z{O6U?])a!Ig\\90{5F#_t]J{]X'bW5#?JnȦR5]SO&;57.3l'Q}䃞|{DZn9S]#ݗ uj/3+R{i1%\{a~XVYe喛/X5C:2W>fl9IZzէȞ]tgƑO":igObcȮl;,FxmZO >wC4sKqc~K&sB3v츰&[-տsOnel#p߽ /4ʫ_h=jkFm9gaUՖ%k_Xc~?B#P{>% D4OcZ42MFXLp^MFwNaCzɃFZx qs>@ΪCظl{ɮ;sa uՊ չѡgfpx ]@kK㛞?+?>@Ş֑=Kɫs&EW: :Gʅ^璿ˇz7G=5r_14~8^7Wδ3">pn뭷N~sҁLs+̗E ǿ=أWܵ{|>5 )8~t2G6o1&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0 a8x= B30c@G1MI-U<>ʍ򧩞~f3TObUG. { t$WzV:kbMEyѱt~TwLHÐKV^v.iGrgO vD?< bӜ̈b+]W.l|@$ʥsǮr0+3CsPW1?jc1R/4/>FRu|+K)]67؛fŶ֚h8'6h0~DS1bX8SsI{뭷#|Ta /ZaMׇ޽{3k51z1z`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`SPz@>ˆrufs(z430G* 6^hl귖?bN}U?3lٙ2Ni=H:_O92BU'}ޏxl b<`O|DȏY~3KFx2EÆ^~ʯ<ɞǎQq1o5KgܺFEcs":aהĆg7s5/U}l7c$ۿW׾E]4Gktc~3fl{ɓ'wjM68\{USv$Yq7whr|ݘߜw&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&` 'GD qLC=.#3aϠX6:V3o'Yv5"C=kFlŞu_Xe̟zOg֞Z72z ~ƏZCϬu\vLHP|Ξ5*RlytA]RiRM'vc7G=n8jԮh֭ -836Ocjlȏs*T%}tUlnnρ`{ '+}#ʰV[ۿݘw_1I'.]Irn̯do9n/ff @F8fA0 t==j4LEhJş&Q|;4N=ӊU-Zx֪Ϭ;ɗ8?DǬ~k!&WNu4>]GD+j8%c(..K>G|ⲅ9(.?E#qz֪O^xgK^ģWuVeo\q,;zđ ;2/P}L%}1?Oa;} Վn\=x>|IYwp}m0`@0cƌ0i;ᩧɾASvkK~,,}q7Wuc~|LLLLLLLLLLLLLLLL'ݻgw6,8>CMq"0L/1} zѷlS2vH:O2:I~BOMjMnDW?4vl rcZq̜NUnšYecF3{7Ot| :03{$^HȞ&<='gY.O0:r>9$i,+}ZGOnt}8v3gǥe^$PjOݍ98]}ɿ=QQ^z_y!w`澸1s{0iMw]vB;ʆp쯏70U<榔kwc~O_7WLLLLLLLLLLLLLLLLL`~"Kkkkiv|;iq[L0՗&b45>i2Rӳ̬>b:O.#:+kb回_rKO4k|^'t陴΂|WP?CV&*RYTsor0t(X:f4%bd' 6q<.U+Sl<8=xj&yɏN5!z&y'Q<: rt^|9Q]>:X~fUȒ!Pjϥ/uc~NlPq .87|*$'wO߾e0'?O?4P#g?ӧO,k`kN 3t a)J8t=KÏ8,sJJ_>9Rq\c~}}}L^xʋVgMG묺1_= s1Bxfz+fVF65Y1̈W6t쩟Wbh0T;';uS}ЊcȞơ=ǦA}S5ЩKGC'*!aDAC̩K} 6,M@eNV}8iM5`UW3v.дV<?Π'*v֘ #gRXX)ܩJ pc~N'ogΜV_mpZdg_~}/'†b-6 _uHI3QG{-wv}>.oS|=אּnd{:%|[KtKRU}[oLfܸFW_{xwÿwԄ\2 8 СZ4/y$<+>QAϞ=CÀr/hl^ѡ|6%ʪEoj/I?ByRUiw W\qiiւp#k#Lz 3l/,Ra m0dX[)C1i[n 0.~iguV+DZma59Zz[' @{ ~uq|5fўegL13>E)_bKO4Q-l=>@ȁh΢5شf/zQ |ccqY:$$Vt ])t25p'q) vW9 kb8SGWtiŪ~A:'>6+ޘSLiPNէ;կ̞u5^k|Z!1˗`S5kG"V4ĥ88$̓3|i4gX:X%1EQ.Ÿ < +_$͗C7#'ߴ~ +|<`S>=8lU+)31:W]$!73nT}>Bf>>]7w:C=w[XSO w8C[/97'}٫ЖWk=?|Xi?'pbYSUp)'m7> sN| |G夓OOGÛ}'XNNȣVZQ.p'Y w|=wg%YxrI*n>W ks֞uuc~460000000000000000h'o7)ޘOkq]}є_h47߰&vlwӔKT_5+..*U5)*`/k#.K='|"4%PqpS9@R=k%e^H1|3Q^yt~kO&{|eG/]ЕWHSe53yuG8[EJ4ݘӉ)M >mݻw/홰K;s8# +v㝷rMl~xꩧ!s1pӨF8з/?Q,uu>bvji?S.Έn뮳Q_Xuo]~IXvATip}YB+ |vg/Wva42h M7P6hNt9Y_7x60000000000000000h/ѷ.)M14ӣcՓ^65ۧv1~deFGTIxGy-mf_>cgZ,EcT_5>{UO՜ k^XŁ8XzPǏ{J`C09Y.lؓGUG64㇤jLJ 'yёOylY*U}:ӂqߘ)RjϝOߍ98[OŒ믿^í2ԩꫭf̘—~< 4-(פ-ω|i,:lߞjpۭjP䓏Yw} >Pn{>aagU #o)}/+k-ula3"awniӟ5Uuucg00000000000000000C8AFN_1 3#hz#zՏ|a-l.Q}Q}K>Ǧ~i|mrK{'zzѓWjS}#yQ^i_4Qέ80ҡ=OfA :E^Dz֪|_zO\jJOΥܪ^:b٧ڸ'^U?2*Ϊ ycFO5Ty@?w>>Q7tvн?Q7{Dv{OÏ?4U5D%ool;6Kûロ/w^ g~c7 [o<~;[}7L>>?|;M({=ui߇-ܼ~ĺцwXfe¾` {/{Fyl8uԑJ徴YdE2~wu4.[}{0u*T, .`XmU7ٔ)&LP.hx'[dZ}:g{2啼Ϛ1_Oų @{Ћ{ z`O0kz1Ǒ6qgϬdӛ̚XrgV>1Öȡ)FʫzʯhfDj|G=t,pCg_ bҡJ$`p0.uب.9y/k $L9AUK{r!y={|hT lP[Sv΢Ȍ^BP>sftG8e^$PjOٍ98}Y-~t /lX|񯔪w>]KUrMi: qhW K/tlО|@2,ַƷ>_$^x^;'~ܘI۫:I6p)<5N6-fp|ެ>ɯ5 oō66!7hlI9Z|g .^o6l&f\8t\tavж\[l0hA[G^zT'|{m7Wr-vu.;JQ #$gɧBQ‹/4vڙE&kfk3٧owzx(Ar\ߧTgsn9nO?^ @MMͰ71ӦxzՓL/2B1k3Y#^d b?.K+z٫Đ!W|)/Τ痎ij#ǮqYz$/PpE < ׌ Ka*<شփn:T_4#A?z^3ĥ]cMRy@?w>~ܘI9˅N?0"gYlT=BrȆ^X+19ȅ/vj3ȃ`:'`Cȧ<΍OŢ&)IN@?(tɯ|:LftGXSYu^#dqW <)FZcLa,-"R~p%}1?&L nia55ᥗ _b-w}oУ0`@x'ʾ\nM._ʥ~xŗ 5W9+av*2{-^C,pwtd?oj?>m>gkx8_GMZN;^xo- Qs dž:Ж*/wᚫKUC^xҾgwoշ+ɨQK)|`v_2ύܪ[O&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`m{)u|3iWO^}رYMKIǜVc N|i>Gǚʋ?:+.KyYS'3;\UOcP}fDy&Xts\:$vl@qt( 3IgWN |o\f8gb坽2'8rbٙņr9GR]uƌU_,"R~p%}|ny]96hp7xK Ӧfnau7W&rM+r|+}wejç~ZXO=[nB[^ʫS矊o_d{7wni_X~V2޺a5K.D}vGBCd6 \s%\lqo~c'7c|^ZتQL½<\u= FN?fYsn9noLLLLLLLLLLLLLLLLLjjjE8A1o5Y6ÜROFdf|Q}[^tϚhD=֬ѫ&_rk-ߴ1Q*1]';_ ū5k携fjx '?lPS?Ma : 23#^Y<^牮?>LEyKbh 9=JᢋkR9 /2<̿36, rwܪ[;&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0hj;zz?L{U}oӏ/ƬɁ({[+?d^yU}Znb8bU_~є@W K}T;~=U,e[9|}b:$ )(\ 0>xbtH|nt83Χ鬙c:rPOk΁?S?[:9e11cnow:c"PjϝO܍98Un_{ak5W\-֯U?B{~K/?zoK&j'N6XӖ))m^d W^yYLxamw׈oy(|}Z+ƍƷw|{Xk5K*[p7|;kɉg#ݱ+?ksng-k |G[nd7OcF0kcrf(3ccVq\fS;z|ѧ9hDNcIsg~m՗5ccO}i:oflATSwaP_go;Ĩl:,*MQ.L gS;kteMkp)N`Oy2[GZPd>NpZ+..3aM,'1#:';>;aS⢹tvb1h̸nμ(JtݘSO ]vyYZ߇-ܼС+ti^ ;7|'\uL>/{O?5؋&h.f:&| V\j^AxNQʫW_>Vso*=v.\r%Ztgrwܪ|;Y; ?4Cj.G3טc{UQO)3eu\rV-?{S}H:%3(VZ5'rcS{=ʃ^,밐Z!.8 apq.KI==^6+ON|ثΊ^pLh?B} maFS}t֪Ō =kFzƱolh e^$PjO׍98UlúlU|N;.Blҭ1om \ڏ;)u]vݹ{c=!<~{~}-7V_csZwƌSXgϞa7bD^𝭾[曆nV3>4ϭܪ|y50000000000000000!@dmmF1-zh|W1VrY2qH%Vzf}ѪY}|Cn_P@IDAT+o\fy`S}YcyU_ćJDL bg͌F~-.+<ˈCk! !U.MkjLz/_Wf+Ns꧵rrvG9eK,0#g_ޘ?1n5K2O(5NU'*O?LmUdh;wWy&j?裰ڪk珛_|>a{M76hB5{^ ~L-;(<#!~+]]{!lf5-o/>ZjW_9£>2ALVҘ?>ksng;LLLLLLLLLLLLLLLLL@yx qL>bz@Ξe5k̏_kЃL!䗮e4x']\f@UXՕ6`˯ɋ~HejPjrK3ҬeGȇ=#={Go;ȏ\43K܊#/IZ_uSP_ګ>Cׇ 13&36b> 7 ˼IԀ;^Isp}GU}7ߜlҭ1WWX%K5-]tі:C6 n%Gbcby{svxWK/kh3. o6>漬kȫov?yk4旻#gܪ|+}70000000000000000$ClΧ18A1M zTϬ>dfDvz3fcV C+?z4Z_MҫtW?4гWj襋l^?zsܗX;:K80#.%24ec:kti_9TO~)=:g`Og^=g40vܤf̋h->ݘ_Dr]}{C'|Ryp[nEZDuen5t6&83[o9))M _jMq?_ -PN[w s~[Z <qU{9ìYWJ_{1,"Rmaܸq-(!KroYɷϿeY& ί})񙬤1ؕQ3~20000000000000000 41XdPQwfSSFu?FcM =jheƎr(N5)iKbC3G~eLCgPzcA.#.3^v(^'}z&beï*@) 캬fɏ8b!:71ʟ):ҫ2ȏ=}+>6ՏRTK^|FljCʇw3aY̋Zk`.uc~<x(AzֆSN>!tPdKWL^z6ׯ+t5wa],M_; /<7bWN<kB>,?+հRKWpu7l+/+GuvJkᅶ"%ox͋L+_p7jl^g!;ZBG7< ?jW"9#ة'33>9,=4߫^EAcT_%R~<%}1?Cxxӟ*|b3Յ֔3g 68L EN{=+t5}G,O=vۍn)|jKc棏> [lM }N8_Ys{nƟ1F-{[83--/GCsgk"l&m~85fb|c>Dz̋J ÕlNX}p>j)4 ^qO]٤[oﹳٛwt 0p"Y|%m+| )SÞ{/r  _xfoO3Y'̜y\0?UWV  ~#ZmQGDžQ{᠃iՕp~aK/t pǷKq?Vl9 AY`s ;/_w"aҤwl>{SsR3[g|&+m̟ӟ5]xn :g00000000000000000xE#8ơq!gA2=4טcŰK!'f_}qYKk7O Sfu+Q4UXS٧k["N@^nCg_kPHk.hH\=]get1ybW.U}ŒKŎaP]a31Gre&R{ Mt>f}XOllldO$6ej:=M?樧Qh زi8_s~~RxW,HBނ̳O]٤[W7)ƥZogby &38E~c= {6 8 |SOλ0|~ >bhR-~paѶܯ_{ ͳ0% rJY\7. pI U !qc®`YaAC-8;M`,ͥgfW;9Ͽ=̮^[>-~k@|v=}7#GCwr!?S ;_~}gWoyW[V|W톃s~rM]}w|KY}~whuea/OVy;Y/gt0Wwȫ(7~F @"D @"D @"D @"D  p㽏uu,.G93mʜ}g09gL1ةe>>byP&w7wKkw__zߏu}d|V_߽ںn]߱o~׏rHww..VxͫV/KVzIyVwuw>я<߲3?SU%6i wO&kW}󆡇9|c%wr|.ro|ߵf;==@"D @"D @"D @"D u ?=H0p|4`'faggo':C][3L =c k7u~w듏g~u#؝?ǎc4;:b؈uʳ 0Ǻ1`&A'F:=駧uN_9?~յ͓s{Oo<[o_}?q݌//X輻teO{9Oo|IG>W'_?A |#/{k׮~~uo`Yk5}]Y ].B!xCO '2^X>V} <[!y-uwK}sY{GwXoںz1/|; /%rw~IIk0?9o7}݈3gn[_72_o$?d_ytCu_u| yV{W1MoZ/yϏ?şߪs/Jn}{wR{W=_s#?OW,O??W?~pۯ0~'7B {|{G @"D @"D @"D @"D 6SN1XWbȔl20#s؍w6;owyqb㸷>i{{ fBy \;.ԉM|Gl[o}bjS{ۓ"[C? lY{/o ;";~_:?]/| :ѯ[^ٗ?t]'kd_{V/^nʟ/i߫1o߻|~ C\ 76{mo{ ώg}vXO|w_/#/_Ohz~73υ^ߵ0wN@"D @"D @"D @"D @nmc0ACcm2 b~bŽ߅5I7ǚO#xgL<kO re=pfsI\bg.6t!ϻy3a.gD ͳ;v#99[a;״5s6_Z;~n vn]ߘ7|_K^Η|>.WkH}#pя|z[ߺ}]l_\]#9}꫿+WKFa/kc]G޿>wu/]}?G_87kVGeWw}귏o3?_?#9?\r2~e"W~W0NaN?~_z~m][/}Ƿ{~5 e;5=@"D @"D @"D @"D  ?1(0H<@ 1u3N6a7F},}㬏ykđLka^bC};Ms?tdE_g%x6$//}=||,/QO<1!Ʊ]Gen1N\?v<#Ϳ\o^x/@8X>|.;k>#z7ģ}}C27yu콟{gyfylŷ^]za{{Y7s=~+FomoZxnfV[aO|oֿ[u];սlXiO?ǟX>G?Sk ғ]gAg>X~۟޾iA 3c9{=O=ޛ>/\:q%ǁ0dq^ C;%A|c!`>"D @"D @"D @"D @"D ?13c1;@9QsfA.B,`N;b bh}QǏ}sf\{|tgMƒKi@#c7Խbs\y} ]=)'{:яY "u߾uuX]t6D`D_ӎ}3ϯb?Gxk ;F @"D @"D @"D @"D @"O!'O\8qXuEfYbYcc0u^s>?vdgFyvzNm:Ə]Ǣ&3s';?=͵yؽ>vĜOlwa윑 g hC䌮5R~~ C?5ԥgqFMSC̝ Z_K`~p"D @"D @"D @"D @"D 0ՙ3gO|lc1d;<ܫr؝wce桙ffy\潻k|GJMj1N,N mԗ⸣nS5X^ kcs,%O. c_wb쏍x䎱p|zr,u>m"D @"D @"D @"D @"D q 0-55o|b~ٱfQewwgcnq~vƙs}sa١wO~ѝ63b9 n>>}=SygwSB">ЋZ vY ggv/`:uRXeGIt9,':vax>X㧞m q6`SaZބ α^u:Õ:LRD @"D @"D @"D @"D @"p| :u=vO73WH*;ĈgfgΘcvbEfj|K.s~=gE{n cbj`g>l/uk[>y"bcyoc>‡Q5CA:pmi#o! yX[B\\ouЗwu 1Srl,( ϣD @"D @"D @"D @"D @"L1wz?4ߘ0S̜˹bFU9[L2:vdye #gub^!؍,F?1O}N޼wS:8۟wCs% ?ArKkq<6Xd7K_F`'ع k'z:ೞ>źQIE̿^Gșg\gܗx%s-8qJ< d8b"#c{=16?X> Ě_[\b9Fvcw95/޶$ǂ4,>.D @"D @"D @"D @"D @^N:иc]޽/9cbDaƱ;pg9O>#.Љuk <={S;9Ǯ\γ8o}b9ؽA8g_zCr,TC6@"D @"D @"D @"D @"D8qɓ{jc9[="cn,ٝMFl2:g٭g;6|k?;͎X}Uc@#{Đ`׆D7S,.gK l>\_&m0k/ZȺ31 azk.~r<#ְy;o̿|n{8X>G]"D @"D @"D @"D @"D %;cc==;:;aٙdg|2quc=Fꑫo[X\t|9S;щ1 ^ 9> 1f͵v7+^p7}9<p\6F;_z:?g#g=cޜYLJf}G3:w/Be0ˏpp_|ȫ|.;ŻVaČ#zoymXD @"D @"D @"D @"D @"C%pԩG'b0gVٙӝctώ,.&,2:uox|k:ɡBy~1{'2_3ƜC{vd(;qo$6(yJ> fRGPۚ@ ǎ ~@/>u?XƲ3/96<۟wigɛ5{o{]ںȵkbǝ|ȻÐίŰ;t[be X{v@"D @"D @"D @"D @"D K۫3gμ{\>!aMٙ+^f^c1G,1n3; ؟]?>{`G>CPZ7:>u;5ụ&b'N \Y]pڱ DxDv[]NvubصA?gk%xs?!\쮹?6ĝ3.no0|$@"D @"D @"D @"D @"g'NXBZa;{iʣ׮69N ?NHw@"D @"D @"D @"D @"D ǛS7|r+c1o730911ô7<33 ;~vs8>љFFn/vf,ՍciLzb6߬8t%};=x.AǺm, Z8ja,; ;b΂G'u=нܓ8C=g?:3.uxu{r6>D @"D @"D @"D @"D @1qT懙OvqvcfXїֱ[~ֵ??3psop-3ArO}g;5ݺCݛ;rXOF¥K288$`bf!|rA|k̀!~66![w]wxkO{ !?yom51/]yXl0|]!@"D @"D @"D @"D @"8qbuI1acgFsC]b9~bk0>3"ymc]g?>3ǎ"@bOD w0vö|Աv\~c(:<KusЅy%OZ"kZjO;}s~bogyýwwr쥭+]J>}jS'FM_XȈF%wcc#_[yK8}> ˎ-džC@"D @"D @"D @"D @"D ؜ 3\5EvhYc揉aoƀ[Ǚfk;>gӟoF1!>lq3P1L}<=;q oVй?bX<?#y|/ǮYo!+vN=GOğ>5oFu{ÎN}t>ˏl3}mgNn'qig}~sϯ\s1|^|>>~,| NQv"D @"D @"D @"D @"D EgΜy0}xc10C"# :<#9dŐ}w~yC >YijB^s9K<:;qލm<Ō]KB.Bkŧn.q,Pon 69NݚظYdž[]/}7Ho?:3-?yeύo'[]m.C;>w`+."@"D @"D @"D @"D @"|j`^ĉW=>c1d0*䜙QvH}vTwbxu0̐C;/msYq;3̰.2BK}g unqL'c1p19[`gfm/2/,Q'gٟ8ľRa#G?=Ns{_4M#;no? W9g>hзo7}c@"D @"D @"D @"D @"DuM` p>ue,戙{f1CowϬ3,l0r\簍g'yftleP;j?uyhjaseچX3q.za:w^oJ(vXŹ5}#Qޱy?&6!#d|k8z7jjftwn#s}3ٗzNa-wyaj\8|m`)=@"D @"D @"D @"D @"Jv1'b0!Tfݙ'vAuϙ?FC'cvv[<{ l g.u&:YP!F&~qϢ"c٩})͊Ǻ8l܋%!ޛ/#8s uKy?+>>ulԲ?u8ga.>rg6[]c=a؏Lc|[|Jijϭy}o?wf|K E9S1׏D @"D @"D @"D @"D @"&:s{#뙱=fyޚ3wQw97mvEv眉Gn5;O>I{_W>;pf߼aZbX|v Ƀ/e~8ٟZG.9.:ęCcX^ung{@?لjiD @"D @"D @"D @"D @"0E'NxhOue,ƙ_fev3313;'=Խ':szP5Yg?7?> ͼ0;g3V;H윳~guD21<{~tkC93Mj=Y ?56B ;si3=8[}cF򈗛ώOg>?T?4ēO-{Zõ#:F8X৿o5!c?aAG% oNٕD @"D @"D @"D @"D @n%kO3[|4('faggo'cC]G^;`?qWSó:=w`8|֡ݭO>By=`w\;b~ֳR`^`|g\9b#v?(>X0S'8ͻR<}ޗ~~sħ;cѓoGO1!ߺ|'h͹692#D @"D @"D @"D @"D D`|[j ?4Xb@bfY{fݸ ؈q3Be .g}ZCC#ޟ9k֜s⻼ 6kw^%w9Xhv"d|A Ǫbc㣗gP36}=32w>#|yΣ" vb@w$&'>y6u= >PO}6yo-xÎ玡OW497gWf"D @"D @"D @"D @"D Ǜ?4||1,懙-f!](fޙd}sX8rgyfij & {ZZg,l7ǚԚ%vbC'7 xjyarF2_L{a>qvva&z0/1!>˝c:2碯mkZӾG>>bg _d'cg؍ή#Axaa7;b_7[/\Jߜl+3@"D @"D @"D @"D @"J;=}͏XL3x9}X8;L23=m$ǎ8Ì]ʞUY34,O?S잩n0-6 q\G/O vaiju38gt.Te>>G?Sk ғ]gAg>X~۟޾iA 3c9{=s:@IDATO=ޛ>/\:q497gWf"D @"D @"D @"D @"D oxc=3 3K5gf4"";{L# \us3ڋ8yC݋!8ى5G=X}nrGN.[GnPWwuKmoSh͹692#D @"D @"D @"D @"D Dɓ'N<8Xˡ. 3K\2Ycl  q'ǎ;(c3OCNOcdvg硇XΝ7asvN;?!zޱn!< sFx,];kɥ@` ;kK-xxw?Nmlu省]|4`\ߜ]@"D @"D @"D @"D @"DV":s͏uu,fu璇{X4KN<<4,8}K}üwWtr]I-fщe~کmCw4s?8mw8qJKyam^t9eXa..g5YԢ.كa>#O1Z|ޗX|gsN1.^~7'`ʌ@"D @"D @"D @"D @"D m|cc==ώ0ls\2>痱;3:ΙsُC;!yt=uy;[EilMSygwSB">ЋZ vY ggv/`:uRXeGIt9,':vax>X㧞m q6`SaZބ α^uW J+-@"D @"D @"D @"D @"܂N:'+f֘Yb33g1;1"3؏|5>s%d՞Nav?N X53]s:5g}حc 1P`÷x Dè隡Ǡ 867~o ]Pށ!ֲ}8&Xkx3bϹt{/,bKZ,6?p#xlGq}E 1G0bgi'{c>m3|@5C s6cNrk _>ma9dy=wZS\nO@"D @"D @"D @"D @"D LԩSOuy49cbhaƱ;pg9O>#.Љuk <={S;9Ǯ\γ8o}b9ؽA8g_zQIߘ97gWf"D @"D @"D @"D @"D 8qbuw7?5ձvctf?7s v&{f6\33F fֵfG]X>檉1? NC=sObEk~S")B eyϥnc@/65L-dΙ0E =5s?Dv 9kX7_>MHsm0sveF @"D @"D @"D @"D @"[`͏X ;xL46~Ygg;ԥ }Go-bs1MgxzO}t{D'>x6L{5܃8Ę7ډ:O ެPK{6F b0>yp Z~q5폎X}{sfgvzbq\g!_.7߾ /?QIm0sveF @"D @"D @"D @"D @"[So~b,xfIvpctώ,.đ,2:uox|k:ɡBy~1{'2_3ƜC{vd(;qo$6(yJ> fRGPۚ@ ǎ ~@/>u?XƲ3/96<۟wigɛ5{o{]ںȵkb}`<ߜ]@"D @"D @"D @"D @"DV":s̻Ǜfl教9f1q8cCgٸ.373OBbvއv9ikn=tk߹k| Ԡ͢O}N Cgi9XSrbvlQ7Ǩцs>>ƳS]`džc/vmpFn#d3u3k q'9u[?/_5?(o( oD @"D @"D @"D @"D @"p8qɓghgv3#'kw?>g!c#n}Cw^xjѹ\n]yEf[?b-ty?,#zg,^k \Z>Hďub;#Ŏ>&v10v]nL.bݝӋ5}߻ZIJw K[WvG# oεٕD @"D @"D @"D @"D @n5Nzpɱż1`|1:7Zư LX+#ڭolu|Fg&qؽV7vG1;κ3Hh~й;!93붱3Ljχ~f,⨅],9 \|1Ƴ\3BsO?ߺֹsg_ztG&oc'+˽o|ᱻc#B@"D @"D @"D @"D @"Dl\鱘'fdg窙?vpm汉eu8;oMq_ٺ֠:B|}㼷6c싗{g,}0k0g}J"D @"D @"D @"D @"D kF&'OOX 1v;3؝;yc'\9yfs9Av|N Ż~|1ǎ"9=1g97ҟ}X7i Ҩc-/&H휹GV?\| X3E猘.T|\.ylPl]R|﫝3CsXg/m]9wW:y?`~;E @"D @"D @"D @"D @"M Lߘ`>3USa5f9c^fogE#'P3~|[cC}Еn 㼷gb.'b5Xy{v6 ެPs!İx8~G8!^]:C g{W{<П>5؉?3}kP:>ԺD @"D @"D @"D @"D @^WgΜybYdbߝWfay01!sFE/3ԥ˳m&G UٟxtއJS:v<댐EρX\ىnmC=/f^zryX|,>uscx'|co vcUq=:6>~ÎX1m/l}`G& oٕD @"D @"D @"D @"D @n%'O\8qzz,戙fw33NNfwYews<:}0F;gcڬmuQe^~ x,׳_*lg';>rɡ1wu `r`@ߜ]@"D @"D @"D @"D @"DV"0Wc8ƺ2s=!7;̎g֙b6vsGf9msƳ<3:6svfz۟<4Ϲ?~mC]ts8_;u/ڋ7%;,\>z(y CYؼg uQ탍zkx5gu5c?:[ϻzv7zؑ?g>K[WW py692#D @"D @"D @"D @"D D`o~r,fvݝybgTgc8tr9f'aO5̳p->ְ.yRgbCq uqojrNg,jy.Y1۟z;ܬx!L8};#ƽXpɱ0r3>nPĘG}PvK-S|#wa5΍Ȥ692#D @"D @"D @"D @"D D`{{{u̙7?93c1{;s5g3kpF'Ϲig-;L<5gtsyjYgNڟL?lށ3 "koC7.aMxq.pÅ8LZ_KCg!k3DjGxc}؉nډe~s7Bu׮dwhk5+k/_??|?( jF @"D @"D @"D @"D @"OMNzxٓc==;̬2⌴~9ٹe<枟|$_qV|Xlxl`w{ͦ5oz#|rf?6;ox{n,ٸH^3:;y grg01nQk?9cp̣6 O-[r}P|̡~1s{/\:UH^?jOX b"D @"D @"D @"D @"D @N<:qCēc]ˡq旙!ff03 ;k9~968A6;Iu/nNܟf v}*Dmr98^ylPû}#7+> x]ygw1>LxC. ;ֲͥŏ AgW1 Oމ3v5E!2ueAY`1g]t67`ʌ@"D @"D @"D @"D @"D 17?>ձfa0s vs49Y#guϏnmb#|v梉Q9Cmg{?k3`Cavsv.3OߊO ;w>~✯guY{qCOg[|8{&>vcWg?y9<0gsF~P}`9ֵ'Oqw6y:1/L?O?=;%vǢ'ߌ؟8cC]cݿu#?Ok5Japw.a;6JG @"D @"D @"D @"D @"@`|[j ?4'Ǻ<3r3 uX؝gFŗ.8lu9c7Xl (>Yk5}]Y ].B!xCO '2^X>V} <[!y-uwK}sY{GwXoںzkʰ497gWf"D @"D @"D @"D @"D :uǺ:,ft/v݁9Yc;ŷ;<Ç8Sb& G ܡ]}9 q[v紽k3 1@??{I}ɷ:~b)ͳ~ka^vD>w t⨤692#D @"D @"D @"D @"D F` ?8{拙f1?l1 a@1C$c'đkv筵G3syG ֞a^X7Б9}5M~h\s8s<ԿxG >``"?;ĆnvvSEsqַv8s}󨏐7rqz0~T`dߜ]@"D @"D @"D @"D @"DV"ӧo~|rfei™ܱ>fvog&Y?vfTLZe9xٟgL]uciaWs8z~bs']} nV/h=9sy(s>9zְ\cB6> 8B>Ms bkgai?ҹpy692#D @"D @"D @"D @"D F`|c{ƛ뙱fYb93cP!acrG'䒇G6^䙏n9XP'q뽩3[?og}Ll|3ǥ hı^ 9Nd pļ>څg.t=btݬw:o_vck.^|n{rG# ou{}vqk#!뭳e_@"D @"D @"D @"D @"D ?'O\8qqXuEfYbYcc0u^s>?vdgFyvzNm:Ə]Ǣ&3s';?=͵yؽ>vĜOlwa윑 g hC䌮5R~~ C?5ԥgqFMSCi0s7'Xf"D @"D @"D @"D @"D 5looΜ9xcc1lC³\p˙fbCщ痙fev:>s>w{N+5L4:,cCO;5wR_wcgg?n'N `y)/݋α0G?,+l>l<7֝Zԥ>6{C=§x|)csQs}݉?6;ƺˏMG%u0{u?[Wr;ߌϯb?G-[ߘoD @"D @"D @"D @"D @"$0-55o|,P~v,ePٝcv|cnq~vydƙs}sa١wO~ѝ63b9 n>>}=SygwSB">ЋZ vY ggv/`:uRXeGIt9,':vax>X㧞m q6`SaZބ α^u7'`ʌ@"D @"D @"D @"D @"D SNgɱ|抙fg63N ;_\be.o笨c/|حݳ}O,u4>B GsN<{Yv?oBB ~|,==>m,^|#G0jf1BL1s.犙%l1瓍O,g93#Չ{hc7s8?M:yrޚM`lv߁^ԛ5ɹ^,uŅfX g8>b/IE̿^Gșg\gܗx%s-8qJ< d8b"#c{=16?X> Ě_[\b9Fvcw95/޶497gWf"D @"D @"D @"D @"D :u'Ǻvsа9l?cwydcب3gɟgK>y90cc92zb' a拢#<8yYU*@ $bo11M4XcԨ]cOb5bFP}s/݅]x^>s睷<9"Wcלݩkz`PXIQ-^{Ϟi諺7!IK'WѵNQ_Ȍ(P11^o#`0F#`0F#`0F#`0F#`0-H=nkXccChS,=68Y|dK bZ/QQK='4seojc˹ZSA?t;I[WbkUMsfp=ڼ̆)gu@ēY>K@jXх.";FA?'EOѾT[F.>W}dS]`^՟5O>|DMK51zi0F#`0F#`0F#`0F#`0F 6mڄ9cxaqCjEC%Y35dtr#H3☱mޔ|U?7Qm .&Fy!8"GgƏ5$\l%1E`cl>׵h.lZU(WL__>S bFPҚZH51u11ėה"2c5:GLDhjb~9#`0F#`0F#`0F#`0F#`0=1."ދ!:3,N?8F5Qz>#WW-bMqxzO}tМ8!Fk٢z=CZRB 6 ue`@eYul9bFC\ǟg3Zcc߬;=z\CGכ5:{ҙ2K蕈#F)kOKLӓy>~Տjq>H/;qW%j^UrA@ p1T_3>@LRGE[5EQS] ␫7>麰͇+>o0rlycW%;N^,%K{ĉwӊ >^KoZ=?1.R>6#`0F#`0F#`0F#`0F#`0I&7?,P! 8eW\φ Axđ'.2:8byf  q3Ϭz`GI|U]5ԟZrjPXfP'N POuG훘781K`SlNts适ȆY`C]a` Qz1F kj1$)^9\ylfz5#Fq51zi0F#`0F#`0F#`0F#`0F 6mڄ9cx!_]fM'Ҷyq51zi0F#`0F#`0F#`0F#`0F mgǘ8{"7\M[|f8f쪋/a|'z1kotQES\'?1U +"kf:fzx r1:!R?\qG-Q\|QgeZgĩ>Dg.,~.u8Gfs0F#`0F#`0F#`0F#`0F#`f7j0d U?q_m7F:ŷ&Wq_Ư??n؋j+quȥ?qꃟ8W]*YujK_yr4Fu A01|P bu^C0+ 1ڟz˦G5'uc :(>ӾeSl^S>=GsäI:FӤ/&WcL#`0F#`0F#`0F#`0F#`0FNi&1<1HAX(3c8)uN,UyEuTKfC_\|0:QM:kD9:@V \kE5 k5njhO-΄Oʋbt1&NdK#&WcL#`0F#`0F#`0F#`0F#`0FndȮXj0,0\c{*MӬJa&?G5^?{l䫿juQtInW iZ҅1`MuT ;qU +W^b?Cr8D$|_?v:UG~ZW^:#ķ>̈jP_yMg^SGϑ#G8GBGL̯WΙF#`0F#`0F#`0F#`0F#`4iRh߾n̟16b+EF #2k܎_/Z}ەC~%.4:~Yŕ&1 t:s+C> bLF}- 5jx6MWB.B<t"G5O+VUY1JdӜIWMا| ѬxS3xtŇ9&&WcL#`h~~aBF׌ 5b0F#`Z;s9յs3և17_Zߥ?ͿOB.sNc0F#`0F#`9#if;8qq#+,9k8"kLl/:p! /fy<:"s_~Tr]~ 7lQM@՗\U >ԩ|ȱKƾIcpBf֡Ǧ(5(Fv֪Mw;(ZeSmQ7]_}s.tb/b<~FɌfrG mQhib11z@M̯;g#`@!?A? Mhi0F#`l@_`,<bcGbZ>2C|h劇xfl0ˮ_|hag\RE5Q-?c?{AyԟXҿQB6ƨCip~Hb$9 wBc-@&6>XWW 58joԔ#^֬xÎYG٩ OcB0iҏ]9r.ZhUԉ?#G-ayN FU >*|烈5,O3kg&0F#`0F#`Z&Ow74"OS,:yq9f&aOj(O=+V %OԁL,uQkJK]/]0G oQ w[(,TYx>0F#`0F#` FOam߾81vx9ߚ5x#oZqZ.38֬ѕ/O-sÓ~՟ҙÚ~ش W^4%!XƈNU-:hjٸPMhla!~\ FSQ ?uɡ?oe_X}Хs#`0F#`0FqmvX_>1bq*#H/2\X^y|KC5ɗ+O,6GA72>:GtXkEL3ϪEE.um5:39 kZDGX @IDATs0|̺`UUٟj#8ʣ6tԟZꏮZ:/{ZgjҙOrϣG#kODn611zhM̯;g#`@!‹/xX(t躒0F#`B`/>$>5]XsBw`H-]{٘wb@ Aa[tܲK4K5F#`0F#`c9B6m'ǘ8D 230c?Vz !<ŠSxZ=щӃTA|JP[>UueQ["O!.b/{U+:<?ctLi 12ZʥP_8~G3kīVTCTKyUWXG|1fj0xʒ#G0is0F4?8|7ayWY 0F#`Ƈ¢_nə7<›LJ5Vv\Yѣdž_y7t!ʳ| #`0F#`0F@$H cl!#̬! 3`X3hb$ġV~jV 6,8~e'rу2W-*\uCyD璧]g誥}E+AS.ēO-T $?:FQ ؈W~묊gFW#󇏨@PsI."ot݉'c+;c Jor=~m2q0G;$Fn#`@wߍ/faMXkCNsu#`0F#ЪË/e5W?vhg-xzm7w:OcdxғOO3 a Wf0F#`0F#`@1\LY*~433?S?j"?+'O\bКzyOu)U|81/]knj(GKWS=H}W65F}6ZvtD9FPZxj(Gu?9~i&A'F>~~gM?Tݨ|؉m'N1QM958a#BCHpK~Bd.,K||?u]|l&Z7FJ ,0Yxkn0F#`@GϿ6Xr4Z|Yǟ|%eLНe.bF#`0F#`0DiGr1ph 2Cc+.*v#1lX=9,>+= 85G/UE5!+X#Yub?TG|TuG=`^i_8;`B|2{sIvmC9tj3PyD9 +DάSk71?#`h  |/ztoyp#`0F#ۑ7? s%wapARF@_V0F#`0F#`@۶m!cl0KptHEF>k]&cg}zk I䩇G{>rZsɯ3}SxڇzEWuB du@$EҪ3t&6#q6W_TyM][=/">!?3``SlZ˯Zص/ūb)=>j]ќҩc|j~AќfOǩWZB~|$;&W"0FLO?Zp2#`0F2~aBxCmievgeLНfF_ub0F#`0F#`@18x=b p3~ l!݋,_|bT8r0k QMtS\LJQK?+G5]C'\T:qĐ:pS6C-mXuY#$_~,֚kPOq6vGT_ VAn^S}TQbeת/g!  'w?>c}|ze&Id|jq+D&'\b0Cn~6F#`hqf]}9]q{ 0F#`0F#`ZbXkL"t2W* ƪ^23yXbGS!Ckŷ8r &)1īv>Gs37ΔCG\~yQjrMU@2|| rP\ߑxb Qdg#_lt2EÇ]q:ɟǏQoz#G r~]?9HIm'ŷIE{&OY{0F jPs0F#`@kC?+6{:F G_9֍0F#`0F#`A>pv8pKkšX>8p{ipǎÌ]v&V"jFK[hJSj?ԕhJ6Ĺ&^C,= +T=PgC)W|?:yN=&Nc _[gk}y=Ռ梧SM ;cQ&oWJ4 t^e*mO%.פHŸ01|}zAoz-K)'*e0ya0M!D@0F#`@F?3n1/n0F#`0F&D >1XnHwB9 WYC0F#`0F#`ݦM͠8C&.2DrpA[>ʼn;QƦ0F#`f;slw[Łlɛ4MN3F#`0F#`lIB8$%Gw!qMljRYf`Aǧ\b*6#{&DPl';5d$=%y?[ դY5ڔ6,6RB9a6yOǸ8CwYf![,^2>xˈ4+G63ks?:gމHAkԃu] >> M}t&ȓӞO^|#:6ڰ!X 9k7ȅ&VözA= SOC|f q6A=OM]PGS:~ b猣5ˏH0I S2.{c-v9sE]{EZɽ#`hI-jx/F#`0ͅm.d]1}kZ'oͻ6F#`0F#`@KCm۶= '+t l?f&F\dWS.KSYK^vG.vbOc ?g^҉Ϲ׬î:ꃟ3!…wT |Z DBF:=tt8lʓ _vW >uqKP8(Wd])ꏏʡN_#n8>bM%S\YZ BJ\/_^){i0eepxa0F#0"{g ʏe+޾WS0F#`0F#`ڮ]=8xb>xŐQeI5*QOV~bY:Nlދ\dO! '])WĊO"<霔Olj''M.6՟xӭ}O 4M`Q'f :`C:1y_tr@(G(;CvbѾQ>ٴ/>&Vyue/*$ 1cLrLbi+)J׫\%ǷTǗ9_c TmhZh .>3 W\~Uܹs)'߶f1bDt^ xV樿bsu OZi+57XԬ$XQt 5$לݩ|~#k=>e"^ͪ~WuYko_qє|YNѷ/ZE-1H!w%ާRMeco*-W^iŰˮ;v.=Sga7nݻjmkŸtr}V]#`@sBx„7J[ɼ? K.Զ3[Əyoڅ޽W/;x <$>"t),k&\'N|>s0<4W+5F#`fQY6vy#} (ޒ0F#`0F#`Z!{8T#'aE${lqp]|d]1Q-[㗨꨿슥_7iǠ]:vjs~դQtJQ]yʸiB '@ׁِ69Țxr5'pQM>PEdGWW؈>D);9ڗj?ve5єlګ݇ e!.T_1hF '_|auaܸqa5 <Ym{, gif=Ho`ݺ-74iÏ)/*qđ駟 ~ :7i8og暫ט!{ z ?`cJ܏>_x]~qjnf0F~֏O03rfF`"#`0F#`0F`V@s̱[<˰8!np"cvf7]kGGđfV=1c×ۨ)G~/n43A\WMtCq!EΌ!]kI vٰ7JBcP|k\ٴQXd#|荠5J;kb b> b/)?{Ed.!GktD5T[G4PKKB ]g%i(1MK/GV[駟 ^{CڥK87 .Lf,L̟uh_߄n 뮷Nn1<3a͵^x^cͰW^:/(zv1GOɑG+/m۷Vb~6x_2˳0F#`CF`j}95t3&5Oe0F#`0F@-1sP‎*8"3#$;M SlTSūyC=rjY"Q.:>:GW9щSb-'yރ8D1/Uj++``^W6F\D\p0.`N\ǖN-f8uyꏎ>s56͚[eZ?z|X'Y/^?b~@3.rdMO̟F*aNuǧ~oVKBMMMoyOWXtE [KTLoW{2ȑ#CU_;sVn߾z87{9㧲lHwϾ{? zMVYeJԟZSC>#`0F`VF9qٚ/_W7-ݷī=#`0F#`0F!жmqC‘*,*ct》,_T8"3QyUSn/?9A1zړ_68F_Z;N\e,UW%qPj\ ׌.Sԑ/A+VM@QA;,_H8̓O.,}eB՟sά'㣓+.vj8q`mi pM̟1WI'y8ׇ_|NsZo~@6&%\"l/ & jx~t_|UQX15OϷ ~x[o:Vaе+_2=I&2 OhOӘ[lwUC~6EQ )Tz;t '{BϞ=ޘs0F֌@sۚqg.~_\ u?3PwO#`0F#`0FZk߾nT[{:HR!V+9f#1q䉋 E5q7C'FB3k?y!vCW Lz,#"?AIC:ʣMLE%)6ZNvlD9t!eN},0!ꃮxf0K0dž(Fe#5Nf~VuS.v?6D3=ɁcȚx0{tYf&\xg^b>2dHx?FH_9t1WZq~6 ]Ur뭷?)3Fy 7\zai&Du]'Ia]8Y{p˭7˴GR! 24O+% \pnX}ՒO8 {N?b-Ï WrW'buY8pˇ`~__y@\q&ngn&EYdJbW_}b:/2axCVԄ0AftlYQu঎M6,KϷڲҶ#`0F^zaߗn#0 "YHF#`0F#`inq|W8ȟ|fYvldcE!ytSlgV]i_Q-'?3U?Zf?3}hZSb5X'V$Aj@rk!f T,vjbgC .bDyK}3"[ZMI-wfaZ2|1ĺsĉ$&Ϙ+b>;:uPlH†h~ʉ_~e8SVm=zH7@ZK^xp,#[Nt _WƍwsG"?>g YtEK/O~>6wյ7|2T}zɥ)(gLqb9O=ZFx<^y['Cp9O,| !s=?r[~vi-=@sBxРa7I ;넯:lF9. rz6tX{]v6d\Yqz 7Ea]3mv&#ouYu𡩆l򓟄91rܱ7\}? MLP@|K.91?c){ @U\tѥᬳ6EK/TOmS|#`0 E~m>orѰnfu?{\g#`0F#`0͍@۶mC y1TtfY5\鏦MxBur']}5kot؛bKҩC|e4xXcEslRLvvl Nq`Rx.z8v?kN.>(FkN -O3gN?U:]uz#jn!41\/6SN OZ~ʉ?ro8J;C D,ænyM!aQw˯ +b׿ @Fjm믽^nIțEbA%'EW 7JǞ<:y-)ȀoGuL^|:(,\=]Uѹsӏ^bf& anT'IN89\}5am/=[AN&5WX>u'޽W 0dO55V]gM{Q+. ޸zP\>WU/?rU7¡?9U MJ$BD?83$&b/?39@!6683B޲i)=T#BΣ>oהb~ϑPӷSW&J̯$c9*m6'w7W_m@#wHF6O02䑼&_bpO6쓰O?w"gI?r vǃqlᢋ/H91"w0޷op}w&s>ɩXv/-{g"vzʳk3klF,Ɯާvrw߽qO)XMʞ{F |]oݍBrw>։ǵ·~\K,DWA}O=L= DŽ_ڊ4/ǰzC&ޓ+6!ǟplURr6}+칩.o߃M=<߽/b~\r~V!o)km>쳴)<_>#`u ~\LE9~! /'sO:>t f?ȃ]JN^ou-X"?awM)Dsy5C :kOYOCݧwx otS~CC 9wae!<~M6-&qn׎%hgyjy@\vi!݃IlՁz~pd۸y{M :ӧu!?B۳0F#ކw /B6#0k#YtF#`0F#`QdȮTjaXae5#N+ ~xIJբzӟ߫F^Av\]= 'jSk5]v 6V!088~Dԡa'K]>TObX]מKњxATqЇQ +OՋvt#9r'ܶ(㺔LU\d/s JgnY_O"Oݯdb>Ο7,PX`}W lqd<(J+ܝO>4/>pqG?0«<#Om@(}״ Ogb-:y>ǧHGZ9}dz ?=0EjΓ`ͷPV n,yjA'Y+{KOZ.p2|W{,'*Ƴ4/clp8W@HG9'#F bLF}- 5jx6MWB.B<t"G5O+VUY1JdӜIWMا| ѬxS3xtŇh ҅Q_!%S^O0p+̖ %CzȭT]npq|}^0-|R oXrtAk{j|zfةT~[)vrw߽/3 O=Zg?ex)ߘLH}AiKi_?²i-kλO+~#0Ch_sϪ} 555`rA< xegeŴ}@xGӍRRez" شBxCoRK->du kFAx/Tn${GÓO=&SJr dž_ -ǟڴ'zO"b>g}Δ.4~Zx?h|mMSd4d_~eU#`Mszg/)Y:'1F#`0F#`BNƇJc\NJ3@23DP-Hь?GGdcOcS\ϞFC-I:|:u9v5iLN@:4tŰZnQ bTsaMׅ5X}=E~tH_ۆ /"K׮ae++IJb>Ɯ$v~%rkU6?5/¯gNoyջZbv:bѣGԩSKs9ýY6#0h_7,a^Mqd[` 㵊E>bu׎O?#/Rq]WPMRt%lVO'g(}Ĉs9?_d#jv^~AߗL^zy,~Ѱ>n):ubu=3<> AE#`mh{g[ }&E&Ō@@_2yF#`0F#`hDR~|XWW 58joԔ#^֬xÎYGoÑ_/>d =x3k'|(lAN>OKL~91Vj:wu[Xk5#h_Gc_w&MEwUST+n3aLՎGܿ{"!7D%sZ]sav뭷F{G7!5:4}Q0F#`f[HIIt1#*}Lޤ0F#`0F#`Z4O794(CrD MQDu%d.7900SxPzDWiKriX|(|QMB6P9ꇎ5~&Z~(_C+q7V!7L}uX!c!79/\0r3}dWf+5?EܮO{z(u.lz;}q0h&Ϙ-xI'F8:| Gź>rg}>O/W_}v}2dhXoݍ5O:/ ?j"ÎHPoDg]1-J y]~7,_1ai<oӂp;G||XpTrs~Vj]wUSGoyջZbo|ܨ rםw[l}[+C630V_}dyϭ鞻M_lu E/ `$?xk8J|Kh0aB|"s\ }gyBꝹY/C^#|7Fn@|lR-1w?ic9*_ْ/_n0vذ϶W^yikuhh0F4Ͻ5>|"ebFU VqI#`0F#`0Fhoߞ8C`7YCD,oZqZɎOxDkW l Dŧ]9՟xtf65CMI!V1ӟ~UZuD6 ,ZC:@d~+Cx 8zVDjGOgf Uί3k(;Yvb!߫_ŐBD17O(H @zԒLPc-v9CktH^~+kn_$ ;~G^//]n`|rNd p'qS8H@IDATғ1B;>^N;oi0|+"O01\z7gd//׳)#E'xv/ƛlnb==J~~FoyջZb>o&s9+k'-[nbmL—_~e8Sq dC̮Ovuτ;^{9tk m([EO;3վ†?Ŗs=1WxCEY80Fpհan{]>bĈʫ\sp?o3_|Xcg R{桇 {`ʫ8>OU{'Zb?IkV㎛OIk_}%ˣ>2I^/j#`0MsoQԊh$~_6@V[E󖍀0F#`0F#h۶nq[C|b%dҼ8ȅxyAD|$_"x^?Ff :lFT#~''ccjO2Τ}ϪEE.um5:39 kZDGXs0M`0Ǭ ]u++ZardW.y-zYlQM:Sqt1fmKB ]:.LT`z["K"c31?JbZx0`uW#wͷa ?,aC7|+=AZ>Sb%Dj:㲨}}`S[1^*a IfñFk:&1WxSlMSE:;g8Ó'C)gUD+.:N -'7M-r-}p_+݌m4GncOwϰ= >bQ-読(^41lĪZ?3Z1S11Kz0M9E5ժ?D*6Id5yQ,UKǁSOrtѴ&^S5;$fT'^tX#OU\z$b5, F}L%{^Kȏod/s 71lτv3LV!.aE}W[5w + mZ_|9\K#<;uO?߄-\4Wgwd|"nHzG3)P1_<;p<1Lv }zpG _veGǹ>~$vۄzzʳ^wUSl˭' XqziycԫK.,s}Bʫ.Zj8眿'2=[C6`lt§rFynκkOl7D@z3>޽a> [lU5jToV=<{N;3\|ѥEL§@kCW|?=Wj:~J]7tq>(\saO:锂_3B5W_ڻ6O!Cm"9? h>]@i`bl0FT@S[m.Tl36Og0F#`0F@1\ ThOc#WOTCkꩆjEW>աkV]s?vϾS=ՈEB)SS6lrXuց P'`KWr`^MN|/Ϛ~'>驺QM1O==y2>);9(58a@z%}J-kߎ%=WƍO4|Hz2=!SG{:wX{_36 {8{%irizIJ@E.^s-mx9x+끗/ *$* "WA "(IVZ$i4w}{wLJg&Of\:̞7\[9\YٟiyL>LYw|ٴyӼ} ?*nzk;tgg~'_Ws}Gz>~W'DK1|?/2/_^^'k*Yy<<~hYW~oo~r=KS)/=WʿGB9Ygݷ</^uN2;;[^◖W韕oqc 'GX5ԗ!%p4@x=~.skV_-{L=YN>9}'ts߿+> sm۶u+.2V{N:'ryФùoMwr&%lڈaog[cKw"saӏskCo\`B:b "z;tx /ҀhψNx1uW(7ۚxsƎNAg}t 0#ڎ-|l_xi3Y11oe]f>O~W^ʗ=n3@p 9~@@@"]ܷo_y9+cTЇ7_U3.O_F{+_5˷38c"D>qYB B B B B B B B n@m?z|>mvTz[@;PLӽ=Z_17~OS=gXbNƓXcCi>r3 3Ys=+kǚX|[1/:CgkW„GB< 1OOdt_\y+^u(B V.@x><B B B B~V\:}~]Q.6oӶ??~?>Or&0lVaz@޵m&m|YӗL:auUB/uc=?bn}_՝6|7w;Wuwf~ީicYO3G缐/ZH1jN1o<`#?>!1맞YFePaC̓O{;z8#ĵ/;i;wAFD{"s];g@_WKEW7,K]zב>O ?^07߽ߘQ<@_?(oʯ3/i[ezj.@ SB B B B B B B B }֭Vge`7аgwdz{I֎=k6*Wf.'e:YgvO^VUCg5~ǎ?\`2y@yAΞ5*2V[{/%og9,d۽3| [ީ́uYգ'vύ;:2Hcǡ~85waЈ?2WS>4~o_<8r߭'[s埾3o,'pB)cwg@}F!!!!_O LY~}}]޽w˞=|R)g[A*|? {I]n=O^gN=vmgu]Wַkm+7|r'{O[N9eH>Os|+FyN:lϗ׿ \tSM7Tw+j 69s&o1@@@@@@@@@'Cmo;LC9QF_T{џ5q̈9%vzh}gϴ֪nxoY[;Kb}mϳe1m9nm|. /jܻ8z/u^?qu9?KڜG^xnϢ6΁POam}biGÚ8q6sa^ģ7z[Yߺ,qƮ[fgIZM@5Џ t:}ci̟$}@!J X߽+ X~~e9O3ҽo+2|T|#(vn޶m{xHw΃)o}뛺srV~3.S֕r饗qfq}jYH O^S__ʞݻ;>F,B}[g-B B B B B B B B_5kί[#"HΞ5o1cֆigQFg:ͅ&?lzt rc8fD}[6gƌ3 Cu?.+ŏpi᢭XO\D=k̎K@C>؄.\}xFGNCܷyڳCV}['74=wˁ#}"t؏&KFs6lOqvم@@̟@~ <fXy߽+uyO)x_Lmfٟxhqy%O}hςOs{ 7D'?wd;IO\;t6/&7m:\{FGLcE@_q  ٲ~ q?QJMھj.X;3~hzYfv7O]vklrm}{ztVѷ=#g%=ѬeXzɡ=.xgm=mg; Cy`u%1ډexYaZuVgl4u&yɏĐ)qa{^|3>G?3wڽOS@Dx.yK/i3iB B`%WS˙C B B B K ;_b_ }|]pÍ!yD~g?Rnr>N;|ħ2u݇xUl1?cO,?wSSr}Sy׻SG=O??VΩ?򑏖m잙U+w˕W~|,~{;Q?gMʺ|Ot x1HG<~ie߾}e/ H|C}|C!B B B B B B B BW>i%M7A:ziBe٦{|]l-#/Ì؏8lSo1??nP㫪vؼs̖AwEzC{s|o׭__>ɏO<ܹke˟u/cy˛|WpCQK~Wh׾=K{^=Ԙl߸qcK}Cjd@ 'mO̧Sfz.N1؋Lc?k/%X zswoK^?=ќ;{kƿf y;!r;6t,| jbtЩeX 5puƩ#!6[9 kAy<G_X'بo yP8cUEzC{17# J ?^O>E ݻJm_OQ?_G?3Y.F /<΋^8oW/{qy.Kkd~GGZL6o>\tSG!1|m՘=*;LC }'5B B B B B B B Bo־u]X:|bӪb|:#'_+yawo[8DoլĪo&[)mt=!|m6g8/z>1s\?ㅍioaUQ}|C 6)+31|ģNч>1Ӯ=[gg#y9 t-R;B B2X ߽);umstNy[4۷33.wK@~zz<蜇}n?C+/{KOϖ{ۻ ʕhٸnO}]Yז/|?u]K7+?i#|Rc1 oZ;9Ė@9{|C B B B B B B B A`ؘ^=͵u"OL[*@ov_?9_C'6Sb.kYߚ>ib15s[79jZ?}'>oi;x@@\i3a˾1c/zz|x.fD&x~ݓ_}ڇn^cLbN62;kꪉ@DҘߋgC@j&槟@@@!]=z%ݴo˗eE/“N:}G{G_Ws} N)o'xb'?ZИ>!e^~>TO[yӛR.K q֘l[\y's̋@:|C B B B B B B B zC`jjzuFyz1Ealo1pO?u٭ёgo}|̋6}Zq'cowazy~w>oؼ`AY#\?>.;?`. c=fhcOC=~Ho=>q6Oyёϼ=zׯ:AOY{ u}F>1Rt/4H!!W[(gO 8 k⃟(릦w9GesEo ?P>͋6ٿ~*OOW^ Rԧ\|}hu˳k=5k֔M7uVoyߎ i_L4gq}!!!!!!!!@6?=uЎh+ !L6{GO_|XSc{c}fMntm{1w[S>k}kD0 s e~\ ǟXgmGuA:>("Y[%|G砞QMx.s[:bٷuO_UμƠa'oޱsf+Ht*z(9M@Bϖ=ܧtҝW!\9B B B Bh'*ʝNXV>5~3V7;| ޷o_9o/333]Lk`sCMlmNŇȌ^!=k>w`F7[fgq@DҘߧG@$p5_)SqR*!!!!G7Vμ8oۭ$}j~QyK_1wO,5ڷ.{X#_Gǡg>岭مw/f 7 o_[t{-ӝ{WYlyeW9#7jR9#HceG@G:I!!!!!!!! WqSxoO4:v^g{&[]A:ꐏXmu9V\"ƲF7n?Y[ù'k{uU5a>!6k_IX!`m^u\ Dݎp1`۸̚\v_8j1?sf̰>6D׮[zx_\Ys&eV5ܵ{9u̼<xe2Pu֡Ѿ_Յg<ؼ`@@7߼|#QK_OŻ'_4R//գ>?~h.Mo({طT|Yg}[9p+/|w]Kז~믿e1U7_‘i=%^dmu73ӛL<ȬĘ.GěӞnN yr~53y虦&9x#p%~Ab7A\\B036 i,y袬'a(b}2ևC/l}me 1:8[{g&֚ĵ]73{_w>!;ǎE%S Χ~IclB B H೟|IwS9]`@@@@@|^czgj}iY5}-gܖu?򶷽L6}X.8ɭKLx_/FfH}y/ XF|v#\[@IfSf'W#^d |ѯ.gfiG>vfCl@'mm'B Brዝ \Oalc=7>; P\̂SN 2CO~9 b35Za>={sT.NcX>:ęĜPǙ;wͼv]w17# UM`߾#Lٿr{^|U#8:l~}/~~sz]yCs u Ks_7?O=}k_,6lP*M-FǰfH}y/ XFѵk^P:n{{/FhSUo23vl>YgګKS_rYs>fY߳PyGr5y;S\U٘= 3#Ǧ-$9! [P]{c00'//zm}sgCuىqp3"$5'v,—۹WQ]_ugl=p>A1OO$g MƯ*:Ϧrw_@rMK_jO9;G'4>/_ϯv·>|E9So{I>mG}wz_W]G{y;w֘;K.-_*w˹>믿\r7oLx߻ʽ}/\Bk1×/G@_G:I!!!!!!!!LίAȞ:7iKeLӰks }'U5&B?Œ_@ښ[vϚhk%k}zc]ۓ=Y +4s gEųw'b61u-LrCc<z23X=;6sN橮?`C9[>kꑧo^pwWכwZHӘ߳@*'Ko:΅ ]TrDo)k 7}{^6o_ZIp55 O`_Wr9G ^m^gN/75H8-?,!!!!!!!!_O`ؘuTӟ`o_56ۿM?6ZZl[vlݛpY~@y>~k`Xf娗a>1 u -s =ABƧ|'6G H's.|s  ~طo[fv1(˺~gQ~qМ" 9DG9@@@@@@@/ֿ'o:avКj93zz1w\/֎_mX|دm}mPazsk r[~roB 9kcG$ClRo% 赑<ͣ:gE/\Z=~2HBhg}tѵgM~ȱuk׮ݯs;+ T54;}cs5Kc~{!+ ~eH['FB B B B B/щ_x:wizחS!074%8 }4?-B B B B B B B lYj/ձzzi_^dT{xl؇c7Au겫or7 zoylǟ5vl}{ɉ5zjTN_XY3rbG8!Ľ/*thg&36b>ձiژohDzA6?Nt=N͝ 1\v!!!!!!!!!Aw=5Ȥ UL6ڜOcu쩃>bCfFLc11426>l񳟙5:2g.3>yQ~hroce}[c.9=s]|(!ّ<n/􎞁@]v6rkc?Y7#g#ztg`7z5=x\#} Jc~D!!!!!!!!KO K<C` }O C B B B B B B B`~b&1azY;ӦjO4ǚzsgjla޶>yƗ<^[]vB,:΍CMX;\.;q]L>홈Նߢd Gu~!8C6cC<71 /#?ceȏT|l֯QVye}O[XlĶ6t7ؼc̖:GzF='B B B B B B B B @ttʄ@}ߣ@@@@@@@ %0;;[֯_zu\47[!^}׶:ܳ&ξig.?b5{`k>ik}fƿ={ 7:!_kdM}-X 9 Ʌa>.!^\UȅɼPkB$v;;3;`ksƬ_ƶ~e$j̞Ȗ2^$}:@5Џs5vnf=>6o:PB B B B B B B B B zA x 9D,)w@@@@@@@QK`jjzuTېJ2bvٷ޾e֓q=遲x$^W̓_tGt`v}ͦ9r|#5Ĵvt=g"^[] \d j Y3˰,{/al~6fM杬&chqf`#>ksy_΂wnl<~ƐGWǦfи`_yIt\'ݧ1_= A7X}_}<7#M`ڵe͚5ԼSM/CL23fTzilטccXӇ5O.G~mMA^t`fPBM's}QnE@g}k˭9< /H8bs \q$v.{`L@k}ce}|CX3+|h{=N!2ye1`l㞻wotk|=lȯ/N_tsf!!!!!!!!} >kw6?~1kwxژc޵g>st ,48 #?fo;k}kcʽ 0ƼkAYMmzgO=ωM;5[6AM>>~'8sfz+>^d]:h1Xv!!!!!!!!!Aw=8K L|@@@@@@@@R/$ױ!Wa߱{YWe_gF b'/?tykc6F_t/ P(E̞EYcX33{z}Tmd pcgIclB B B B B B B B B$ݣR!pM<1@@@@@@@@NSSS4_S:hGeЛibmo5F|ʾm>lH[=yk&fQXm0зz茭1;㹰ǹOsX&$XЬE䰈>= Ư4C o*&&m'k}NAg}t 0#Pg~mtE_xi3iB B B B B B B B B`AwHN@y9I@@@@@@@d1z/'ӎJ/4az3v:i'Y[k<>ƏXi= Cxrk}l5G.q=v:cNrgeXo+E?|lm^H!6/{D ν3z#1ٛG0msZǜ̈k D1@9|bo%,'<4,!!!!!!!!!tҠtS)B <#B B B B B B B V6acz=u؄6w-Cm|YӗL:auUB/uc~kCOtk|ჿ۹3Nm=Hz9:|BbPp'PqP9x@FvѷяY? 6m'/,zo~#Ƒ!}qݩO۹keR6' T5>8c9잼N^ϞkA9fu0!be=kT.e<^KƓisTsWYƷ{Ag<vY>3⹽Sh󙳪G5O>[Ǚ;vNo9tdL> ;ǎCqjæe|tiÛM@@@@@@@@@t{rXRy/) @'m:^bcly]v/BcϚ8f;hh=ƎgXkUQ4#aM8{/ћGˬo]8c-@D訟j_yt\Ә?214h!p!!!!!!!!]Yz븥E^b1?;zGql7zj܈yANzY̙otk7ơژcWt|.큙#-@QCdZ=}Ēz>O<6g.{_8A}ёPm,䐕cɍ:6MrH0sx Ҙ?.XAҠVG@Gd҄@@@@@@@*&0;;[֯_aEpu{&vm_r5uӌ1ЬOۿL?4,3;طuXc3vW謬շ=#g%'f/SOu\wC8oYn=[dށM9c/)N, 8n8`u&yɏĐ)qa{^|3>G?3wڽOS@Dx.isiB B B B B B B B B ;jr@ }Ӆ@@@@@@@J P?-O:WB2-1no16[F_61Fqб~Xc&yAf{7c~u)<3z[p zP{`V% } `9}WUw'ԗձy箙-sWSd9 tv|*!!!!!!!!KC K9UBOYB B B B B B B B`zb=:|iIeqO:̌4K_j^qM7zֱ>E9YkkЛ:ع"|ccxAmz /FNG ^XQg:ZnCឳg spy!9~X~RƐo,uɻ3v:P]7J{6ż??w!w&3xu)'o5gl{D]3/'19Aj@@@@@@@@HOX6y/1zkETہbIWS?~r<6㇨Omʧ>:\ֲ5ѷ}Ģck.>1m/vkOw~U} l@\i>m]"테A#}3Xs5:_{|CW>tCo=f!:jc-H/tO$x9D@@@@@@@@,54.5 '? B B B B B B B SSS{lc>4猊Ukپl=eFGVӟM|l^|hgO{CqQW.>][:Oos-wa|=(kx`5w9SIu9ogΙ#_)Px%=|29R@@@@@@@@Ҡ{3NDrXjcɯcO:wih&{t~3͞fb}X_>6'k];| !]'7Goz[wR̋5 mo|92?{.O6#kyqsP娦zb<^['֯Ng^c{Vヰ79E_~=&B B B B B B B B @ttʄ@}ߣ@@@@@@@ %f͚vcoV`O1kz1﯃b={f{Y75Y#H3O?ftZ9<1ƛz717ga8!?9(;cGcsC,^E ۵ꑝC lRߞX:'k9`}k'2g>Lk`sCMlmNŇȌ^!=k>w`F7[fgq@DҘߧG@@@@@@@@HN {(rX \]MuЎj=63#zIw'o]vyqC>bX}sԷgm >U(?ok\y|%byq1Zu;xm:0kr1#}P]co볷>km{t=3S]no}}qg͙k[YVטsh1!9@YfGΧ~1W\cS炩!!!!!!!!!pXi=,B%QhsXRSSSׂ1mWٞA5}uЋ.ffz5yxsډ!BS/ֱ{&Ҟ_=$Gu9z.=~/H,& @xw0%]$ls@a}@pŃ͵4#A?zs/~2>ks陽;p@#} Cvڏ&K@s6lu=>1 o6!!!!!!!!! ic!B`I }S,B B B B B B B Je][%iٔl9fc1~ً̚>eL3 (!gy͡ XRAA.|SAI=9̃ !ygby6ÙYp ĵ\5Puo>ga`CZf0!XY>guoo <G8S8s箙vu|X_.xce0t(g mk֬)k׮z}4CL176ۇ̌TE8Ԏ6:֏Ϛ5͋?:Uޙ<{yc__t2H./Cbdžkb 3%EϺoN |з.;1γnƙXļݡٙe\20B B B B B B B B O`jj=uo']6>ЇyҧF=3c0c7/6'5=ш=֬[ٳKnzU5:c'{>> /Vl:w^ę|g?A+81æ~$ma63G}uoE根ŧ͞ALųvl/ PNφĚ =B}Ϡo1цnb'\Ls@YӬ>\l _Sݚ=b kbc 8\썫N[rO3yճ'v|'wfq<:;1<=gˁ)'?K~|] h0Mv3y)g!!!!!!!!! }i[n)׭}`r?:9]; Oٗ?qazsk r[~roB 9kcG$ClRo% 赑<ͣ:gE/\Z=uP1>:Zг&?k0k׮ݯs;+ T54;}c Ә߫ǞÄ@@@@@@@@@G/ W >|j~_!!!!!!!!p4-ׯ?Ku쭃^dbW!1>!GmE-S]}[1gL|[Ϋ`>{f+MN|{Vtb~6"Ϛ?F~V ?P'k! !5bsm,~ .o|]v: __Ybuέksrv5:̊6^TaFg_>1;g.sgu؏lN_tsf!!!!!!!!} ЗmkZ*"!ptX_tr-%_V)!!!!!!!!(k׮-k֬&^ifӣlsUu~C2M6Cum}ę~Z;g7o`N<u>6&/Ѳ댋br^vt^FG={#myy(m}2B-k|ocyƗ<^[]vB,:΍CMX;\.;q]L>홈Նߢd Gu~!8C6cC<71 /#?ceȏT|l֯QVye}O[XlĶ6t7ؼc̖:GzF='B B B B B B B B @tʄ@C ,C B B B B B B B V$ٲ~'o:=ߚ= 껶5qM^?s>g{ٳ6[[VovnI{^S53ySg`ϰqU 1Z%kSoE`aN.xpp `BNG.O%X3wo"9#ة?~ؙ[xs6f|o6.#XWg\vHF,@"9Ka~|}p?\v3y)g!!!!!!!!! ic!V4毲@@@@@@@QJ`jjzuTېJ2bvٷ޾e֓q=遲x$^W̓_tGt`v}ͦ9r|#5Ĵvt=g"^[] \d j Y3˰,{/al~6fM杬&chqf`#>ksy_΂wnl<~ƐGWǦfи`_yIt\'ݧ1_= 1?Xzi_z!!!!!!!!pd ]Y悚u{{iezYffЌJ1l k?q&73Iȯ߶>5ȋ `UzNsou;o {!g5 Xxy#΂#=bsIb7yo,/vtkua٣\u 6\Ʊ7,>6y>f us-#}"=~Ty %surNc8B B B B B B B B BҘ߇36i_mO< @m/9zk[4#iBXA?hL=ݞi5zr"Ġg z_#;ksC13j[ ;9B0}ĩ35؛yb'^#Mg<6f=ē˚v5u"t1ijz챳GkGS߻όo}c59Ht/~\76חA_}!}f!!!!!!!!} >~kˮ~I67hppO>soþ~CM{;x?㘵vOQyVo6~k ˳3kYx'[˼Ķk 2B^p`kr!e]WUc{1c^]v{td{ kzS<۳[T.?6|,=4ƶgfn@ZȲ;Β1ل@@@@@@@@QI GcͥzN =@9^@@@@@@@"055Ec5u쭃vTk/݆֏^cۛÆؓF[mb& F };[غ^ڽ1 ~[z=iaB \pHxn3kK۞?&bohQnznkF|;tG^{.3" u}vLoOWDE~=&B B B B B B B B @t!i?"K6_O:{Qf?Lo1a@GC1M$kk}?M3ǟa}t9YOb e>΀@g}cI=kbmżXq_  0eS_չwF ~ě={b#2{vmN똓1V_u\x(b09ރO<~bED>=%B B B B B B B B @u*Ҙ/!!!!!!!!+1[Þ:lBoȻաͫH~6`l>Kf&{0㺪F :lzf'~Uw>\ݙezke=YBXh!x x8~cc(Ƹ<`o#;DǬzf6“A sχ ~7zD?m~ȏ׾Tܵ)\_j1Ww\cSt%B B B B B B B B BHc~^!ҘS1B B B B B B B BOtݺu֬qSLӻ_[ ѓLϵ}|?=#0gFe*Şd4 WUO=ZߪtƏZgv] ,V&h>/ٳ@RjkmK^r"ڻzO,|mPyIƍ_lfv28bl3|}qz kK=bQ "y[ߺ1tC%D`y:wdZ|>:~Z~{; F @"D @"D` ԘǏZ5?O"D @"D #C̙3ƅ_ư),^d%/A1:SM?GxzΦ~sɍ8+ǚq̜OvcmzϪ1f[F~=o =2do=pu>"{K O<6g%{?8Ai}r(s,䐕c?ɍ1|7P'D\woji_>2ϣ%hVc6v@"D @"D xԘ=VG}hԘs2Rӳ`?aX=ԛ&V'5 C[O=9gr\:p"PX}Iavb^VıX.{5ǙL.5!zsaS<69c{^|y3>G?]tEM=/ˋ]j߯w4@"D @"D x;ԘvP-g>9?9@"D @"D O`|[j|k>ߘ1^7P]E>f-}ˈ0#ƨ7:ԟk 6O}b$>h#֜{vcsP{Zu̯8gFOC ;ecxʅSr? ,{1~J#D @"D @"p:j?ULFD @"D @"ٳg;|c>}Ŵ2KwYv?f^dY_X|/og&ZЛ{X_LJil ,[5s5{mc >ر15Ƴ^Z5vX>(5{tD @"D @"&Ov"&Pc~D @"D @"wcc=;+UU.-cFO;WfO:a߹q:f}? 6Y[U?qM<&gS<[{`C<s8h5'v"D @"D @ ?jG @"D @"Qc:7ӋL?1m4  %V|x|mQGܔO}te}kE\#̽s=ݞ{΋?C s.;p \qdֳruY2b`EP/b50F?l<\{|y W7?y}ԡ3zg1CSM1/ޢCD @"D @"D Ԙīժ>@"D @"D gϾo1݇FyQѢj0zm6vmY߱\3{{͋6c~9c}}>҇ky^sr[bCepq9}7=:`<%9{jsX_{~,m9bEG]lr~e Zgz|=uUcLG@"D @"D Oq"K]"#D @"D @D1ܯqm Qs;}4Sl=:?fOk}rk]y^_Y̻ɍnvO>ѓX.k{;+E?9ѧtC='YpX.E^D=kϹo>cenWG,vn7jљ ^"d,Uc~=J@"D @"D )1@W&'-#D @"D @H3g59&9v#2Wq1}c &D`yI:K"D @"D @N@B1E"D @"D J1/xoO4:v^g{&;KA:ꐏXmcU\"ƲF7?Y[y'k{uCa>!̶9IxB~3݊b<ܸn̚\v?8Ԛ1?f̰>6D7v[zx?\Ys&eV4_tśiױWyj]ka.gy.XD @"D @"Dj̿# xԘ-q"D @"D )8{ GǠ1nWٞu57ƠYX.&O/2k1M<洧C\scMkLe>:zI9rs?lS` Go}ogM|~qC옓} #uo&G@8j_Yu=טM"D @"D @@{ #Pc#]7@"D @"<WΝ{~\1]&aM+Ϧ_c>GȬX.=7b}f̞:جOЛ9O.;AՓ<8{n|-&?v8@\e\Qs6:g&kYaM}f{^.KP΃s}t35yz.^򁥑{l!ט?I"D @"D @"pj?MՊ@}"D @"D @t3gμoc~t!MU}رq~s>u̳k'\5Yk3tk,7yYSg3̓1ky> 3#Ǧ-؁;\^HĎ מf. Kꋞ\ߜw,1γiƙXļݭٙe\2<<Ჩk'+^q>!kߧ,@"D @"D 8=5*E@5K9@"D @"DA&p_ f>̻>C鶟k;zbc[W?Yc=v\}7T3k{ws"݊Mҋ8SogO N?lwaS?a  `+/93<`{('@"D @"D DS]Lj̟`@"D @"D x` 54.?L}۸o6oziiyoM~رiwo^볟M g1 !Y;~7qރ|_c;^ns0+ĜH8Խ -(\ Y5s33 }͍gF|VYǣ_s9@u<:}h>px5@IDAT: Uscmטc|?ѫlo6汧ٸaZ;Œ?v|ٻŦSoGG1:Yo<{|ZN`sP=XnXHxB/x!apq숗rM6gyS腋3Y>us0n 0# qG][zg|tN"yj^u>Ͻǯy6仯1D @"D @"D`!/v{< j^;F @"D @"ܹsϏ[1A/2B1+ӋАj #z}˥˳3m&~UY=&'> \k3\1?|cg͌g#w㋅y+Nл5˅e6? ~,:ϵ99qNmlnfE*0#Ǝ/ߘW/^И=#vE9fvnYnx9Axif/Z;:/{裞#my(s}2B-5>Է1;!uo}·CdF 311yјo${A[wogi_Syxj.@"D @"D i  |5'"PcD @"D @"GFSj4ӘƠg=z:X@l 0fm}3g?3ktefoX.gTo}򢣾B?ZՍ6\sP =]3{Z_kQdJ88#x$> z.C;z:^cȉNn}sxӏY5ϳw|葹>{{?i+?pG5+>6>yga,6bg:c cNVc=Jlj@"D @"D )ؗSye"pԘW9@"D @"D8<<\;w#c>47<[!^fϚ8CSo3=Ymot Sx~Ԛ7 ? D_sma?A?16ҫ#ݾeon}oAb s+>/:ϣ?:j0;>fScՏN>Úxbf;:3m, sXLr# xe db6 YFywGX,51 lO.6,{\g 9}c? 1>1'D`y~TkG #ǯyۈ;טͷ]"D @"D @@ Q#Pc7@"D @"<|FSj40n1A03{P3VЯSo9kgyq1cÇgGE㣠Z|NzA FemSn.υGЌOZm`я_pmw_c6v@"D @"D ҘI~5?o #D @"D N`1q_Nc?zLo?d'9=׷a_?l桦ڝOF{|k&.@"D @"D 7>7@"D @"DQ'0-578<1h^e}'fX=Be1/{m\cG 98}9oM{ytb- n}kyB{!B^ȋlM.`1Zt4lro>fleqލcwa}\o}jG|vkyg?ǑOgџ}؞]W\2}'uo-m"D @"D @"P1|.jx@"D @"D oٳgiǠAo2šamF~&g-;!s=A1ןBG}b@?֟3v,vD¦ֆ>maa:nfu.@8$Ep_{t :s\=ׇcozd5כtD @"D @"Otu"p@X@"D @"D xp ?<|O;* -f h(ޞdm?b~f31'kA!4o95cM,k!γdB{!\ؼvk:ӏxsgO vBfo}c;紎9cU7ͅb.ρs0=Wodp5ӋtD @"D @"}i)AA@"D @"D QcGGkc^zEH7Eh$Fkm06z%3yq=Tp>yQό1Dg5ԋ:|7<rf1y\52Dz6' ((C^aG8kb{بC/2[G_;O=8͠9瓃~;GmΏ=lOqݼ[OͻU^T?O3'k}jѡW?jq|scǟXLHp{@yAΞ5*2V|/%g9y,d罠3| [i΁sc9ԛ'vύ?m^x­#cJviuϩyQ5ݯm05士1 oD @"D @":#FGn"D @"D xH oGx} zi(>jh>Иj11&1ĮZo6Zmsg3;>9'vg諍s SX[X&z\ؽͣew,WOW/.'ˋQ#kZ^7YGOntO+/ܸ:'<~TKѼx5/A@"D @"D D:CC)H"D @"D xd Ν;1AMھa^}| {]7ޚ釦efklƒ\ޜ5g$=ѬeXzɡn>%?Ψzֱc9v@=K c&ro9:x⥫/m~X^6Rc~S@"D @"D A`?60Ο<j߸F @"D @"|1#c6o_ZTcblѷؿl 3bz㰡cO9l;'M6=b9o7?65YSyfwWB» ^Ѓ;z.^ gҘ}iX.ykR5&k1\M0%yT;@"D @"D C\j̟i@"D @"D xP ={/7WLK*3Ĉ{zaϘcf|E،ŗXV{kb 9л%/z|@ȁh΂\?^׆<Νs:l'~#Kx1r:f28:7vڭo<qїA?03c=']>6C#%Sc6O@"pj?}U@"D @"D n{#zCþbZU[:f}ʬ~e4#kc֗`\Ī&nilʜ{3{l"\ι8;N|c.4Ÿ X>f?;ןa M}|7C 6pZNܕGLg4詁/{:S!ok/GԵ~XՎ@"D @"D }#Pc}C_G@wD @"D @"8j~\1|z'-fyX}ôꏯ!蓞1oMs4[{sO}yg[>΅bcN^ p .z^.kbBƠCEMbs/_G7 :cFLbc4_pxhI"5[tD @"D @"6Ox"Z՘ߧ @"D @"Da p{<գ(o3*ZTmFfٮ #;yfqO6syц=q=qwcG=ܗ\wm=[An;c?X؁wq.6ƣG gü6`O tkc7яV;gB3k^M.o,^!XL}c£j×H@"D @"D x Ԙ3Bv ԘK}"D @"D H`4w1A;cn|vzmGG?3qi?}aXn+7K>c_y6ͽǠ5zrsem{Gwż\~r?'wp^y(^=:k.>B:ȋgm9zg,75m}e?΍=P-:޳Z=ߘՋW^Dj߯G4@"D @"D 8%5D`"Pce"D @"D I`u̙_V`O1kz1| Mfdbg#l>aulo^hfܜla,71;Bkbߕn8Csh+aRGn}m3>~o-BvǴ6>6Y|Df 1Y#03o̿zd,/Rc>=Ig@"D @"D 1PW(5oP@"D @"D x@ 51^vTFǰYlO??}rɣ5CGm, _X=Գ?5'?kk8duqn69g\?D6Z{7 V!=Wo1[1\̀YZ\Y#gݣdž.{P=k][ߺ x6 :6<6V-#뛛3~-?Å78;D @"D @"ܑ@wD!o6%@"D @"D 8EgϞ}a4M*ۓn>]F"k˥dEf ci'ޜtvbȃkn_ui}ɳWG451c7XnwG߮/'(x ؀6ޅmNX#³dCl}X2ӄBϽ35>5^r7nsxNdh^GMkC#>?KC>@"D @"D ^1/CG}ύϱ83ԣkk Г|Xav 0C:|#l}ey3cq&1OKW>4rM?x=:I"D @"D @N4c99Oa"D @"D x Μ9q}ib6U!3cf v},~s>u̳k'\5c6= љtk,7yYg35ԋ˰>39<{lB{!\^Ȝg1 sg=7'z>E,wq&1zw+'89{vfٰ6 8ϳ~lɡ;ʵoܠlOxE:K"D @"D @N4ӻ|"pԘW6@"D @"D8{ #c\~c?f>̻>C鶟k;zbc[W?Yc=v\}7T3k{ws"݊Mҋ8SogO N?lwaS?a  `+/93<`{('@"D @"D DS]Lj̟`@"D @"D x` 54.?L}۸o6oziiyoM~رiwo^볟M g1 !Y;~7qރ|_c;^ns0+ĜH8Խ -(\ Y5s33 }͍gF|VYǣ_s9@u<:}h>px5: Uscmטc|?ѫlo6汧ٸaZ;Œ?v|ٻŦSoGG1:Yo<{|ZN`sP=XnXHxB/x!apq숗rM6gyS腋3Y>us0n 0# qG][zg|tN"yj^u>Ͻǯy6仯1D @"D @"D`!Pc~>Oy#D @"D @-չsYǠwEFhHGyndž}|g=vsQhRYo 6?Ç*ج?k잇Jky5. fϳ߻BǏqCxEBz|\?z`ևXEڜ8yq67uYcǗo׫|hɞXn>Z~QCxE?~-?Fݹm"D @"D @"1~c;>0 x Ԙv."D @"D M̙3:1h8Wr(@<\ߺ̳Pqmΰ>~u[!P#F;5L ybg^xy4:4^YԼx5/A@"D @"D D:CC)H"D @"D xd hΧ11A1} z!3#uVCk{b3=[o?4ϱֲ>vuc1{BO}̞y,7ZԿ+!ٽ</􎞁X.6rkc[ul7#g#ztg`7zd}ܸpMUc>Dg@"D @"D 1W15@"D @"D x }c /Ac .vM՞bi>513/G3va5i7y_{mc87b51c{ ry\Ľv}>3g"V~w%[@p{YgGs1a<6scp `g u[Y\cߊc?=/Okن_x˜=#՘gq"D @"D @"pJ1ח?Hҵ+J@"D @"D ܹs^1=ߚ= ꗶգ=k~O}#Xgm 91O<֧kf:a}jb6Jԧމŋ8Q 99,Ņ8T\K f Qk3Dr`GSO33}9lzs7\6X|ڇn>X>$7:Zooø0z{杷@"D @"D @@{ #Pc#]7@"D @"<Ξ=c6ېJ2bv޾eֻq=15Ib;<ЛM}sV?:G<k≙{^D{'yb1ɉ@/Aسf&?a/X^5ž. fm>Mݭvc\֘8r3>\ޗgrY31чOKW.иIn0k|>~Z~nC;M"D @"D @ /z=H5?2OE#D @"D CK̙3 <Ƶ1lbz4cLc/=GG>͌}ckwO 33:جg}|j">nr{.<:[^n}YwDV<rgAbrx1Ʈ ˼7\;:5ú׏fxLo\b.؛WQ<K^8<ĜESU^5䏏n#\c6v@"D @"D 5+tG@ڋwD @"D @"Mќ¸GƸ>4#iBXAnLݞi5zr"Ġg z?;ksC13j[ ;9B0}ĩ35؛b'^#nזMg<6ՋB3Gs?䲦9=L;bkk{s83#[Xj,^rd,~\k㷽>jE?~-?}!}|E @"D @"D`Ԙ55?j/}#D @"D G`1qCN33G\G޵۟lc?~u36<ԴYG3Yk#?ƌc}o=cIp_y8\90{Y#_}(^X0ZخO~g%7qk|y^F[=<'64X.>O>5f|郞|+W7qM![:OV-uqhoE @"D @"D#Pcf'Pc @"D @"<ƷFsǸ: ӫ̰=Ĭc>6G1 !e}љk,7PG!Z9x/ς\e=߭o-;[(v/D\ yÁɅ,6u=TvrZnjzc!λq.vO-hn-3ܗ8)`,ӴScʕ޼1V6xܣԘM"D @"D @J5?ڥ@{@/@"D @"D-8{,2MFX4L6~d e~96dǞ<5s3q\O6bs=tƎ喿\ۧ95L'ܭЬE䰈^>= o4C o*&&m'k}NAg}t 0#y|W/_]zND @"D @""PciNn1V@"D @"D .ј8iGA0  4ۓm5sG4!dm<9>6Ě#8;1'泲|wc>yPLH|/Ð="N}V|on_ͣ~y b1'3b潹Q9c`fs03ߘo}zD @"D @"#Pc鱮R$Pc$#D @"D @dGw6MsҢzd4ߵ6=kC<`C腶~1o?b艞}?ԋ6|7<rf1y\52Dzޭg$,tXc<<]?1c<0";;DǬzf6“A sχ ~7zD?s~ȏ7>}KW?t&e}"meZQ<po7?}vg@"D @"D @D Ԙ̫D @"D @"po 'cda4ˈn{aϠX=\̷ӓ=b3zmTv\YK˰[P-Գ>9잼E^ϞkA9fcy2!=8{\Xmy'93&x1o}fs{9>ύ13PojZ|=7>1{ )4<\nה-m"D @"D @"jߋg@"D @"D!%01j1^bclX./BcϚ8fnhƎ~gXk M&\cr39O ~3|[===3\pdS-MGFyxj.@"D @"D zGџ?~Vfh~VGWy=wg̟߳,>[#Pc[W"D @"D 8<<\;w/q} Lm%cӌ1֬ܿL?4,3;uXc3v欬w>#g%'f/SOu\/G>qF?׳={ȱr0<VAg_RX6q>^kq:Gg bȇ\σ8xtr؞_lgc댏<>s/]}oSO"y:M"D @"D @5Toίbʯ!图a-ݼo/X_nwΞ]Gom}5Z!@"D @"D {E`|[>_7dƠ1zc#}4[56aFQo6t?7mzǟ`I}ƱG9ǡ栾:_q 6όxJHx2 zP{`Y% yXӱ6%/3bMf`=d3v8ZϬ ֠>9}Pjv'8ҕ ~X6Sc|jG @"D @"DtԘ:OʯorOЫ WV??/{w' Ԙd@"D @"D x0={/7WLK*3Ĉ{zaϘcf|E،ŗXV{kb 9л%/z|@ȁh΂\?^׆<Νs:l'~#Kx1r:f28:7vo}s,>7:9֟99y~rgo,>}jg_xŵj쒽!|Pjߛ @"D @"D 8M5&xV'| V`_ooϿ뷯_[}o||~W?C?rٟKa7b%'#PcɸD @"D @"?p>c'|c>BO1} I:{]ZXnj؟v|ۯ̞u?Pw\8DլĪ&nilʜ{3{l"\ι8Df?;ןa M}|7C 6pZNܕGLg4詁/{:S!ok/GԵ~XՎ@"D @"D }#Pc}C |W?9wSt{wm.^ro߶ٳw}[V_[@w"D @"D 8j~1|z'-fyX}ôꏯ!蓞1oMs4[{sO}yg[>΅bcN^ p .z^.kbBƠCEMbs/_G7 :cFLbc4_pxhI"5[tD @"D @"6OW~WV?V._Yt_|cw}koز=g~gh^ft'gV) VNV@OJO'c"D @"D BٳG}yGGQ>gT8^]?fGw,5:lg ?E;{cz,EX_߹z/azyw~lر0`AY#\?>mNߍG;yɅmo˭x=#v΄gyQ׼=\pYBc_y6ͽǠ5zrseM}#b^s]O}J;8xx/́zuIJmUx[yAYžo?+/HPtZo |l05士1pD @"D @"|W[]ZvoMkr{/Y\ti5_MWRΜY}/}_݊iswj̿;~EG @"D @"3g9妇U= >"ա+$!qyazc1_րäf| XZɅCci l|mΩbܳFa>sftGߘ!>X^YQCxE?~-?ým#D @"D @"j9~g~vw߱ƯOV_{d{W|׍ˋ_Mhߕ_\}o__zO5?& ,D @"D @"#pԘqxm Nm'fuf;B=Nd% uGܪo.|cYcP<ߓ5~ǽ0s }fۜku$[!`s^u\ np1pn\G7fM.fjks}gywsgfXzjcOC=B.9wvm}2+Z/^"M~X^6Vk{}Ԑ?>~Z~{&@"D @"D @΃cW~z9O=H/ X{l=~7sY?U6[@{"D @"D ^|acИ?7ӫlOFSX.O/2k1M<洧C\scMkLe>:zI9rs?lS` Go}ogM|~qC옓} #;O4/͋Q1\D @"D @"<@jG}ZO~ [jeW~7޿hm6߿.;/_O_W-\}׷y7[6o@oU@"D @"D Ipuܹ^)iٔ? gӯL1#^d o,gf(> ~3{`z>ishCo>Rbr _fzWO`Cg9؁Spbztq?q DzY֟<̮f}t>bV{5yݛc,qC9~Ƣw!$1xc yD @"D @"S%Pc~[S/[/7}׾e_>c61_}1x@"D @"D ?|y>yGr5u;S<scϰ>39<{lA4{HAqyYaܽY͉9x}r<˝fE̻I.kN잝Y6ͅ/3.r_r7(}zD @"D @"#Pc~*W_Z[NfoY}g~H/ū|}]7\k? ~)"D @"D @ٳg_'|ykco7F6Їyg6=3c0c Wo^ls {=kz{YgӗܮjsymOn}|N$[ܙCzgjm X重1l3Lrϣ?r,3=b}gM,6s?`C9g>kgo^pw<1_x1'{F1D @%,O̺Y9S𞮙j`c`c70 \]U ,0,KB2 ^;, `łd 2G-aYHy,#"+fK}1 pv:{]7ُ9>B|u[sNm sonR5D @"D @"K'`#_Wv{O_Y=~pϜ;絭vl4@w\>bk&|A97b ݹN $lLlV?.6/~1Pq~pl.ƍ"ܭQ-9'_ɧśYoo0o{'捱n?yxcZJ?ٗj=?oa\wϳ֭/=@"D @"D b _`_?,Y~WX^ݸ1_O ş[o~͟_+?oN_~*s?;b_էNg"`pD @"D @"pߘ`>U1 3k1>hb㎿yi6n_q8S~o=c΃u8+<9[óȍ8w|̓8n[HxQ!LCx8vGh?zm7~}h>ܭo腋ݞ{P:99us8󍞭Ŏ =gsF~vw{S&"|g|jv|>-؇5Pf"D @"D @"h0AoWW?Aտ[/X_wkwxWW{g!`YhD @"D @"pNOOW7o|wc=YdbߝWfa y0>!sGE-梭3K}g1g1L\UYJgy5. sfbG>&lzby_|,6㢳59!VQ>y6'[}jws+;?gvwǞ1Q'kZ{ O_`Ȯ@"D @"D 8` ZO^w}wG?YLozke'կ/~9詼?K`s+O Esa+(@"D @"D-}<֧c1pʬ4ܙQv}?v|ga!{!gΈ:v̏N4U7yvk]}mL^cf/E. Gh}@͏A?r1ϮƑeo]Yβ>~u[P#F;5ٱN ymܽ?  0df~m[|_ D @"D @"@/ʗ>{+|߿{#s}}3G~pMCD @"D @"'`3bg @"D @"DE'w|23ٝ1UgTgc?0s̾nv8k bn3G?qb7 51w,r8.]>[|瞈Ն߅2ǺM?t&a꨷~㸀8c+>6_rY<30 ͇nݹ{r{Ɂ5`v"D @"D @"pI̿$ЕD FD @"D @"͛2Obvyk ī_V7w97z̅zGls}sc!wZ}>3'm֧gv~S=pgY߸Z|3wnN qA!6Nw?v.ġZtŽ~^bg?C$v;;; 7`szcW/֛cg<":\1deZwO6s}?Ý֭/=@"D @"D b _$`=:@"D @"tnܸx'c}:;ʬ2⌴v疹ݹeq=65I;Gt`w{ͦ9qg|#Ùxbf;:kOkosIΝ`Ι<`Hw0صb7~}ȵ_rq#7 `'9 zm3C}Xoݽwr,fZzE?Zg k0{D @"D @"D s'`3b"D @"D %p||:::zddc9423,FeƘvg?6qp&7;Io߹>5ȋ,`Uڧq/,>=?EӐg ;`Ä>IJo.ZXrY_, _?ݞع\6\q7,>629X{>=Ŝ0Q'kZ{ E?Z@v@"D @"D h0?Ni?m@"D @"D ׆_ƃ?X 3\sg9c9kwf}񌞜1YcÇgGE㣠sZַ?sa'3Cavsw.8uƢw[L|#G-@"D @"D LC:h0e+@"D @"\{3p|4 'fggߊqwy|\9;6Pg'8vힽw\;b{g%ygsy:0w9#_P}`'1&=[83>zN=ĦzǢ&>~'z|9!X~Ȗ ݮ֪ź8m0XD @"D @"xYa/@"D @"D םm1Xb@bfY{g~l,3x1Ɠ:ļܵ/:s_>b(՛sqޚ:t, ߡ~}kB!B>ȇ&_X>P-:Ɂ?6jy7;6rGqGp=>̣}Z3ܗ8)`퍱vr矕Mw3yK;8D @"D @"D$`KY{ԁh0?PE @"D @"uqh,QY&#fatg?fl2zey96dǝ<53qְ/t'V1,n:cqwiM6[zZt>!EauBhf^>4<7?߹Gtۯo~|}}k$ě3v|)謏λvs/;"W߹tErX 7D @"D @"\/tu"@OYt@"D @"D xq F|8*,懙-f!](fޙdm?bgyf1'gA!4Gw,t7Ɯ{lw>\'$~b3arG2۩]꼻wO?͍;1 y;9uɎn.l(a09Yߘ>\E%@"D @"D Gc]@'p0W @"D @"D &Hp,eDucmCϙdvq7>j+9];wD=;~0=Zloygegd_yyb؜}?ⱱc9@?G :D?vԳ+؈w,jX^zo~#Ƒ!nqŻ|&D`".k{힟l70.؇;Y[oҳ%@"D @"D e@{G?{DZ4->u@"D @"D /5D_y#?ӱfv񾾭mh;̵s6~fGCsVw|my^Xڇj[>wzwz?g=}X;|B~6Ν3GmHx:sa^j .h' ?#9֜ϜCi}ao|c}O[Ɣ>f~ןS ݯma.G`.@"D @"D 8 gkDho>_ds(FF @"D @"X?aʙ%v;3"" :{LcǴ/֧g8gpsI_P}P?{%/9bxsb<\&>[Ԯ єzu>?q?y9[G=6@p> #L\}ͣewW{>=%]rH/DUky=Ϗ΢-؇{{ F @"D @"D ʀn1Hjh0,Y"D @"D 8>>^74_ˡq\f$gdL6OƎwQFg:ͅz&7nCcG`ckƱƚ81f}[Z{)䷩'E`". wD @"D @"|23_L`;ObK/ᩕ@"D @"D ߖ5ߘXgc).33Cc㌍eecc w5g>1qkq}~;:WG͞O܅haY# A>,ցJn|%/;bMpf<qk]wl<A}rAMة/ |_{'1=LUX>3>LWUD @"D @"!p(;<*b _|"D @"D s#pƍodogTvf.Μ18`?g竱/%[+6@:Ǘa~ !z;wky y7!r;6}:l?w#|9]3tj Dqꈛa7wz,({ >8R<Z`}rc1?B]1ܽZ5nX~P?Q#@"D @"D L _&jEo @"D @"D'd̝+|,~c>L1s.UUl1Î/w畹3pF{wE]_ςjiby<7/Aoʜwl}o?\M%Y1 ͰAp|1"s;ןa m}|7C 6)V>fb|ģܭNч~c[?tnQ$|T;@"D @"D WF+C_kJk{v"D @"D xlX|f'f,aywXsôꏯ9_C1'=Sb.kYߚ9ibѱ5>1,L}O}{_Y?~fh g˙Xd~1c/zz|\.6kz?X|Gz뱣w'1_k ?}zjIE?oQ@"D @"D l _6]w _D @"D @^7nx擱l^ŠsΨQup6g~38.gt;3G~vq<G/EX_yz/z_Anc?X́_0磱QǏwѣ3a^rasp:q7яNub}"≵>g{zuoPR"D @"D @| G0<ꬺ^D @"D @"J` k$Xb53W@;3٣Cc8l4;pgw%9/;_icQA=y?zkrv}#b^s}>'}0 ٔxbݵ !_ȋl9A=3ۚꉱ/s[:b϶N?TμƠWp7ߺsCaX>TQ&@"D @"D DPtwKzqe"pnvWD @"D @"paGGGwGh,gg3:s z&sl2gbsFf7~:r؛1ƛzw617mUcB~rmoƎ;}C,^ .,lCӴs? 0#~6o-Baޏi l.|mΩ^bsFa>vtߘ)!XHI%@"D @"D FKC],!@"D @"De `壱>qTFrX0Lp>?}qɣ5CGmw _Xؘ3Գ?5'?gk䌟un9\?D6Z{o^TA68UAN ΃fŎ`Z\9#g㽣o,cCOMty\G;gz͞o]vZ`{>|pۯyV-֍}-؇ Y[o^D @"D @"|!M|)R4@"D @"D ܸqQc1?3Lzt=gc1mfvfg3vxxs:ډ!By~QcMk'{W451c78n߇_}_%?WC | cfƒG8ny9b}@a@qg?,ue}}BϻԳ975۷1_;srțIv_h^ma?@>wwv@"D @"D Ah0 >CM\# _S#D @"D KLtuw8֣Sfؔl教9f1~9̙>2|3(!gn?f sІ|a}r) ة":ĝ|e;2=.78ߣN"D @"D @"p̿LՊx^)CBx"D @"D I?O6wb1U!c3:ݡvtԱ~Ɵs}7>:g7/ky9Sg~3̓1gw_ݙF@Am;6DP4>v Gꋞ\ߜY8.b|ю3y׷9Enl.|Y8~luᇏS69$|K"D @"D @. ~G*E 4+D @"D @"\ ܸq㽑ż1TsPmggfZaοX_y1ܭFZ/=;#F նL~}|%8tN>ĝx.A& ?r,; =b}L,6> m}:,gL=Kn֝'=90|N"D @"D @.@2h0D @"D @"f0Oba]ܝf}緙ƗycHykbÎMwZ\nbX7L 4zkXgY߼vl{e78ngNs.%A[Py0>k<1g9f@࿟uΎcVg/1<BXﱎ}wΩwS l0>D-D @"D @"D 4+y 4?@"D @"D / 11cd,]:@Ύevl}997w1k[_;9{ظi:.b}. M ۃso XGsϝ`Hs٘ s@93>\l _3˙;b gb 8\܍E[ZrO;b깓O;>7a\߸aNcݺǴ?GigkZ{~øaO֛Ow@"D @"D @@jxeo<ꕾPw*D @"D @"paog0SC3{u*;yi6n_qk-ߣ#cʬ7~_kx>u>[=~^T8?>,<qH}K@k#yG;un}{E/\d-AͱÎYol-vl93csރ2<㻬U{^k>7Pf"D @"D @"8/kAk{d"D @"D x n޼xoh,ff|w^YdTgxl8wc78._Pl3s=|Wf}9cv;+MN|X֜g,b~."ϙ?{#odz4⋚CAz|<;?z`ׇXEٜn}tm>Cͮh:oڝ'{r`L6V?y3?>-؇{|E @"D @"D4_W?FƓ'B#D @"D @.DxuttHX)sgFrZ=dGc9#ډ3?:vzf6a{uȜ a.>E|9fvY"y| |4ч;Q#myQeZ~Px,X׻:b[1Pzc0СIl=a2t|N͋f~ Z5 ["D @"D @^ 2o~hjB̿#D @"D @_|?X3b9dvD; б*yhc֟?9N,;wgqQɋC k-cW7syE-n>֢dKhlֆG⣠1 g?FNtBlt^|sXO?9գ>g^o>\} sѷ?\C j0D=D @"D @"D 4̫x 4@"D @"D / oo瓱w@e:S:#q&ceucYcwswO%>q6ggcg>q1S?D6.$ؐy&>l/ dž71_ F,~PG5,>Ƒ[Yg.؈mo>쯏uݓcO(D @"D @"K"`%L6G!@"D @"De pzzy[>'c1{;s5w/c;g✛~Os#Xsl 9б;O>_S3;s?ܩoP-B Fə;s'Ҹ ɃYGP-:ra?/13 Zs}!;z㇝k}9G?Ǘ{ͱpt>~,X~H򴙵j=?oa\'ywzͧ;E @"D @"D A 5q27|J_|(R@"D @"D 07n;|2֧c1Ol*#Hkwn,ܝ[gcXÜ+Ίy~GG vlcwG}>6}go g!.*>c<;s(蜡߻\̵>r9pܝ&Nݼ;4ܼ-kzg ՇC3ƏeMsX{:v45o=ع#pG5#ة[gG𷾱X=SrXe~j{ E?Z| D @"D @"C `!|zN̿N_F @"D @"` :Ù'fggߊqwy|\9;6Pg'8vힽw\;b{g%ygsy:0w9#_P}`'1&=[83>zN=ĦzǢ&>~'z|9!X~Ȗ ݮ֪ź8m0XD @"D @"xY_G @"D @" ߖ'c=afUf9wyb곱;ό#O^~rn5Q㣐~Vo9yk ^Й,|e^b33 Ş b~|hؚl\;yk!fa_O6bXs=tƎ㎿/lѷ6iۇ|B <$"6}h=xo~4s!脷_\GPos׾I~7gZ7SYwBo_[_vD>?s6A?oR7@"D @"D ,2]֓+%`x"D @"D s$0?qTfY3[Bر1Pн3f_17~P=gYbNƓXcCi>rYo958,E?|POHsN똓1V_u\Qe`vs|1Ƀ?',9$|K"D @"D @.@ǺJ@D @"D @",6?y8C2l͇3sġnv}<V!B[?؝Vώ1DϾ>{އzic93|,tXclj6~ߏxl,xF>0Fvwя]? 6'/֧Æ^?=9?vqG~n}!X3Z^'9>7~ֺyyD @"D @"DP4(_> ˗@"D @"D&+xc}:3.#׷߳ wsژIfڹg~?3#0Ae*ŝ4,翵O=YߡZtƏZa}{ .* 8w4Te#g9y.d绠3|,ώطosXs>sɇݾώo?mSr`Iv_N͋b3t-> }011s&1ĮZ㜙6Zmspt!X{V>?:~a D @"D @"&p(;Sɍ+cuǏQ'Dj_~d4/%h`.n@"D @"D x4}Z})M-+PD @"D @" 8==]ݼy䣱ŐCKL88ӌz0>`×yhfYfwqpf,9mw$3ќeYzɡn\:p"g)Vn/)N, 8宿8`u'yɏĐ)8xt.r_lgc뎏ᏼ:w=ߦ<4Xߩn"D @"D @"e8~cuy' ◩D @"D @"-5~k>1>R]fD9f]eec w5g>1qkq}~;:WG͞O܅haY# A>,ցJn|%/;bMpf<qk]wl<A}rAMة/ |_{'1=LUX>3>LWUD @"D @"!`pJf{19@"D @"D%pƍo?ߘ\1##ޙ]V9cq~Wc3_bKsW<c-ĺ޻u/y46BG v<{]zX;oBvl,-t-6~#G0rf18:7vڭoYP@}qy!9X/F}c37}c߹{õjܒ!40ߣF"D @"D @"p̿LՊ@$D @"D @"W^yoG)f\1-wa;|~2wwεCԱKY9_8?M9g59Mn}v߁ /看Y<˗<梡<6_d7C8}3Ჭf=yf>?6ż"GL=xu)o-~`U~jG @"D @"D4e+| 4?~O@"D @"D / `9?ߘ,2Č2,~:|Ce-[<'M,:2Y!fŞco? C\,?s#x dsqu92b`ER/bk6u?_>w|CW7t2Co=v!+cOOM=4AXH-j"@"D @"D M&^V SD @"D @"2q`sFň9l?cwyd}q9#,ޙ&~q6/>Ss';v8za.z?s}ɥwֳ_sr[bg9͍rFx8~,|;0w ۜ;5й~wGggk^&7\AO9ӫ~cpG]5_"D @"D @"h0g\h0HD @"D @"c=qT<\1;dyf9<2~YqܹcWoח|4~mrgE=g=YoyϹ~wt4dS} wu&\|0 t|"/\7t|8nk'ƾm}>n;P-:^ߘݓQ$E`P GD @"D @"\/ te"0h01@"D @"D$ptt:>>~w4ñlsfObXAϝdޙML,vΈ3ӏYG{3xZF#~j|_O㸍8{O|EЫC!EEc4?mvvؾ~X&u0s\Ⱦ;> 1ͅ59ӋBwΈ9G}n>=59$i0>ID @"D @"D4i+-(:D @"D @"6?ӱGuޙht,$;;Mw<[8t!qE匍o;C=SsNYj|Ο5Cms&E4ns^u< ĸ0>6D7u[zxs'eW ߽'ױjW.kbݘ=?}n<@"D @"D h0 dF/ m#D @"D @.7~0P<$Oǜ6qofg6xf918n73ܭ 䚇:ִv{uLSsGȜY8.373b}vCl@0'mm'B Brዝ, wa`CYv{!X]>gz7pY7sECܩIWzo/>|=$@"D @"D Iˤ] 4OB"D @"D Nhu||x= ;C|1˜zٱcsP;:|g?KO>gYg곛t5ۼ3;}دwlb#g Ar 6"(b ;#EyoN,|w1^hǙXļӜ_sbwvp6,{Y?\uݺǏ)>dE%@"D @"D Gc]H|IG @"D @"nܸż1TsPmggfZaοX_y1ܭFZ/=;#F նL~}|%8tN>ĝx.A& ?r,; =b}L,6> m}:,gL=Kn֝'=90|N"D @"D @.@24?D @"D @" 4X2?|s;62oyiy;oM~رin^s3M k}iFo K}?8m~,9؉~}b%4 3s ;AAg|'9 Hs.|uqe?栞g@ȃ =ou91ν}z3:u D @"D @"\z%=@"D @"D  Ohu||oX?agFsrE?`}g͝EN^g;6_;X 15}>w}1цbs'\6&Hi~sFP q?rY8r?Ny6wqߨǎدzӎMج77nX<1-%D`OxZl70.؇e缻n"D @"D @" `A|f̿fF @"D @"gԹj^C3{u*;yi6n_qk-ߣ#cʬ7~_kx>u>[=~^T8?>,<qH}K@k#yG;un}{E/\d-AͱÎYol-vl93csރ2<㻬U{^k>7Pf"D @"D @"h0\>/y#D @"D @/͛7YsGc10C"# :<c9d\uq7,fC 6[Yir7ϵ*g?w룣OmnnvE?TaG_~c=ؓ#|e~jYwϛk>-@"D @"D @C p4ݾx@"D @"D /eX 2+9wf wŏ3yAf!xt;ٟ3}8o>kgfW7yvk]}mL^cf/E. Gh}@͏A?r1ϮƑeo]Yβ>~u[P#F;5ٱN ymܽ?  ,CԼxnuXE @"D @"D"` j!`K){H"D @"D Pj 3Xbg3!#ڙufVYC9wbٹ;3=KO^tw\XkYq\Ƙ;~.jgv{ǭ/$${^B4FNe6T%!@"D @"D Og^4@"D @"D N`d,fv;c;9~a}m7q듇g|Ƀ~ܵ"Ģojb?Y䲏q\Ļv}>;= .*6d Gu~!%!M/1Qo vqq>V|lmYo>yga,6bg:cݺsؓ#Gk0>JD @"D @"D4I+@@"D @"D /$͛75d1 WnsnZ? ?98c͝1@B\CȅP<,?jHvvvyo60=Ʈ_7~e+oӭ'HWL`!yf֪~d3ǿهq>ܟ,;u7&D @"D @"35#`5=7@"D @"nܸx'c}:;ʬ2⌴v疹ݹeq=65I;Gt`w{ͦ9qg|#Ùxbf;:kOkosIΝ`Ι<`Hw0صb7~}ȵ_rq#7 `'9 zm3C}Xoݽwr,fZzE?Z| wD @"D @"@~"p̿|U@"D @"D xWGGGp,ƙ_fevè31pC#Nf9q59;קyљElֳ> 5r[X47c_ ձqۧC"|e~jvϛ#_ `.n@"D @"D 8 WF{o"D @"D xoż0;wP3VЯS9kwf}񌞜1YcÇgGE㣠sZַ?sa'3Cavsw.8uƢw[L|#G7˷["D @"D @@h0}D @"D @^>{2p|4fc+>~key}p]N>s{~CMgx?ص{N:ͅ޾>|^|ma6Xߤn"D @"D @"pY̿,ՉS ?e)@"D @"D%0,~=Bfcwc{g;cn՟z晹ϲ>:Ĝ'džX|2= ܱYskq&Y̋3~gos>y͐ˆlvE>77z`G/d?| b1';b滹>c`g~c7NXrHp D @"D @"\/u" %D @"D @"" `XˈS$Fo06z%y@"D @"D *$_k q#D @"D {J`|bWѾ1#(GK=ccTϚX[5& { KdZ?c~R~O>g1K-~x GMSCw?Om|'?;[^VaV~x</I۴@"D @"D ;D`-oq;FǟN7{*E @"D @"61^TV<ǯ:cϷm.1~=4Zj4e͙܅_mpߕ5u&jY˰?>LSC|'KY qx죆+6r@ K s<' <eo;};Z~B#D @"D @ވ|>11.#QeVǬsnSl3YycOVN<\=8'ojE|@/j}/0X=Yb9|9[Ϭ?5}L_v/xr{ewI`ywVD @"D @"!:޳n};_&'O6Z~q@"D @"D ƅOGW/xc.1cfb"#g3s%]j^sM8o cbӜ10jG]8go/k᷎}809g =|qvm.0}:=|b Lyțas{ZPށ<1?03s']?g7:ssKcH"D @"D @n}jmz5|Z>Ͻx@"D @"D xsCwzppxT|b>C]1RU}j]$c'9+Gػ&vEXƙj'F4:ɛzkjp7m}0E\s /}bc-.4"RX>!~/#g5BcOr8/3ͺ<+/i~frObf 9|bãWOON+|0._A#D @"D @"pg$q{/66?Gmxxߍ?瘷o[D"D @"D  <1|艑"~ĞGK*'ӇNzf-{ߞg4ZO|c]b<#NgY<.z7u#|e {λԶ3W@IDATkWzufSPxʣ5A|'+ J"3MbI_nq1g 58 $P`c!f4#A}FQ^g{}uz]묵|~ufrfJ8 }7=cNbc>:q`,#ș|N=P^!sK=}x9'U?R7:ۨ6W>~؇:;n$D @"D @"~ڋ~le]g^Z>} Ifmqܰ~΍"yՇG:¿Bz.@"D @"D {D}ƺ6s1K08/y)<3q gv|\nX}NYo`4j6e~<bݵ  _ȋl9A=g5c_>zurmƝx[VyAoֱ?("(&wd菟h{o0pD @"D @"t%BN@Ox"D @"D 3ggϾw!A$ 9X4Ffzki~`0#~6?ַwr!z0X˴6>6N/Dv 19#0yvtGߘ!>XfX[}? ׾Ǐpwwo0.@"D @"D   k*ޟ*E @"D @"7${fb{gѱVgG#:;49OOq\o Q|jcͅ/b,glSٟ5䌟un9\?D6xOީ&mpΫo1bx0^zd*=~ğH,~)% 2 aKm}Pλ >z]x!6ϾX3Bsg975g}t|_.v>%o&wݯͫ k08n@"D @"D 4{Z]"4@"D @"DMLp9w{zC 3W;ͼ23,|;Ə8g9Gq\gٙof?:جaNЛ9O.;YAyՓ<87>-&)h\SN a<Qs6:g'gYL}vۯws 5Nc?X>:ĝļu'.^f{ܒ!o0o^GD @"D @"DT 4{+ x 5D @"D @kgΜYΞ=xabT;̎w7S>qv^r9ߜ8SݼqLo숹8[ώ؇zǦn[lwh\>fĎ g{1Cꋞ\ߜY8bjǙXļۍ_sbwvp6,{Y?\uН|ׯS6'K"D @"D @N@ǺJߗ7Q@"D @"D&pppώum,{R9;LVK]t;̌?Žzbc[W?938cM_r{wG>mٙH(~й;M ⹻&祟 ?r,; =b}L,6>w m}:,gL=Kݹjw~yl|7漎<ܝ&V?ش{7&^~ô@y>~km~^c;Yns+ĜHhn @fw0>k<1g9f@࿛uΎcVg1<BXcg?VStS>Z{@`Z@"D @"D = Ѐ=^c/@"D @"D @̙3ٳgOv19;zfٱ;w{Տ;z5D @"D @"@}"#7;#D @"D &pxx;w#ώX"#32(σq;n.j1mq\;<덡>fzЯsn?wV8Zsᲊ?gv>8޾X#oDܪ ޭ1?<_|Xlŏ;?z`ׇXEٜn}tm>CͮhCevD+{gNolڼ磁Wa -@"D @"D @}x %]D @"D @"F$p̙3OgX/)sgFrZ=dGc9#ډ3?:vzf6a{uʜ a.>vE|>rVȝCМa}s7?:k`<:sG^><\ߺP;e}z>!P#F;5ٱN yX=7th Log__h~ ڄ5\D @"D @"Gн^VF.]YD @"D @"&&01`3c]9bYsCfG3`1 1 69ls3:IJswfz[<4ϱֲ>vu㸞1w\BO}<[_k-ߑn 9}(!Q0 g?FNtBltw^1氞~7rGg}67zw|葹>w|3W^xu[5MC"D @"D @N@ϼ{@#D @"D O?ٱw@e:S:#q&cuhǎ9060\s>?;E @"D @"D {Aݽx 5S%S]D @"D @"%ppppώX3[@*ʈ3ڝ[> w91X+0'sQ݅l61GpN~`<` cݼ#n}b?1,lY\l.^sq=1ϣ2c/]v_WrQm^fĪ??}w {&@"D @"D h@A|{{=q"D @"D Ξ=9sɑٱ83bc۝5f~9:?Lnvǭ\3s}j9Yf=P!Ossm_:[Yn}a/{F";< p`]bY7yo,/vtgunOoq\b.㸛WQK^8<Ĝǻڨ6h |Va -@"D @"D @}x %]D @"D @"F$01l녱fa*s `9gL>ѓ!=xl0lq91h|tPg.`Zt98veXtn^O`4ܼo,zg /߅f/;ē˚0"t1ijzܱsGkpGSg՟Rc 8%E`ڨ6磁1X}{o08n@"D @"D  [.ޟ.E @"D @"7"32p|4<1 =;~+>~kuy]pN>s{~CMgx?ص{Nw'648>O>5f|郞|+W_+CNjZfD @"D @"@;))#D @"D @Ʒ/c8Aٱŀ03*;<1gqyy,3x1Ɠ:ļܵ/:s?>b(՛sqޚ:e/Y>e^b3 2 LJ/Xl,P:Ɂ?6jy7;6zGqGg`w2wkp_sȧȂ^gh3Gz+/\xYMc8D @"D @"D I7k" 3D @"D @" $ppp`'za,QY&#fatg?fl2z߲2Nsy8k:y\x3c_omӶk Ʉw* ,&imCY>gw?vbhmnڷ5 >_ tG]ׇۗx~6_n"D @"D @"pZ=-Չ:@"D @"D 31Ge0,  ;m5sG 3!l<9>6Ě#᎝Ƙ\s3b^tÇ8{ɄwCl\6l^@f; Xww.Gs';b~!s7>ae;紎9cU7ͅb.@99Wodߧ7R/@"D @"D 8= *E`_~_D}D @"D @"`'S\!y|Q= ߵ=gىCs }l(]v@"D @"D ^h@w/^CMDT TqW,@"D @"a oxOfYb稹3c8/`ϙ8vhqƎ~sfXk m ^qGS} !c7[|sɜqu s/jz g=bQ̅"y[ߺX_|!}"&wd菟7|tVa D @"D @"=&p? ^~rww[*tϝv#jGst*{=%p̙88X=mSƾ@"D @"D g.wb-?3Kc9?,2VdU輰Ǯ =238u =5byqlOdƚqD}g6jcG6?!zhOwCxhfXO<:_"w] &<ė`} =g8 FGNC?>{!\'7+/\>$/̈́6Z̞i??åE @"D @"D` `>|WwgC8X877ƪ~"D @"D @nNp9w^!Ssü|z,g 痙f_u8c3vW;H$3ќeYzɡn|=ouOEN`eS6Fgߡh' 88`u'yɏĐ)8xt.r_lgc뎏<</]}&B?NL?b__h~ ڄ5\D @"D @"Gu@_Y^/чV_C3˃->?!T'@"D @"D _N15oX/c).3x3Ccs痍aGQo6tܩ?7zǟ`96;}Csෛ>5YSE>O~㙸y9oMzS<[sv~̗<梡<3|92=qgXe[z|8ly+4?31h>S_uGC ߘإמ><[Ե^X_ZT;@"D @"D > rOοjgh*J3?q;,|wk\o[f|@ Gcd :苞_:Ŏ7nG;yxAՎޗn~5jz!cAbd} [D @"D @"}e(OpJNXOgO?S"D @"D @gǺz)eFcFTIF_vgYq\3w泉>>G~v>cl-腹[ck.}{֟so[,vہ(gǏwwѣ3a^sasp:qXub}*≵>g{zx=^`Z@"D @"D O`_t_?\^x7W!3gGrp07/OɫD @"D @"p7 |ύum,~ߙ+fb!1L6gGO_|83%9/;[_y'zz8gggW̋~εYs| iȦϝO6#q\k_y?q>㶦zbGXܸo~ժ31 _4d/&صQm^GsG0؇;pvuw׃M"D @"D @"ˀK/zyOF"'C疇a{G@"D @"D wJ/8{{Gza,gg3%0s z zl9#HO?vtfk=;͎^X61 ?96gƎ;}C,^;!IrhN+aRGn}m3>~o-Bv7Lk`sCMlsNKdG3bQg`GwW/0Q#F絯c>o6]#D @"D @"e@o~DMoͿO/%jG @"D @",όX :xL4:;¬3ؘY&;kA:ꐏXmxE匍o;C=Ss> 6?k3\I;r y` X  ̀9Z\9#g㽣o,cCOMty\׻pÙ|fַ.Bu0⥫O3lTu|4?>^~XM"D @"D @>}нrwlx#,ַGٗB#D @"D @GO`<Ϭ33sc1mfvg3vxxs:ډ!By~Uֱۓcf㱛χG߮/'(x A  cfƒG8n.ls~@a}ArÃͳ/󲾾 #A?z\f|}Y/_yׯsxɛ ݬCG@y4xm?["D @"D @#2;~|Q;KpD @"D @"{Hp9w{G ύ/xfؔl教9f1~9̙>:|3(!gn?f sІ|a}r) ة";6Ewb#@4$vlh|>ۋ1<00wR_D‡}qV;"n$ˆeᲭk~+מ~>E6Oo^"D @"D @"pz?=U̗D{"D @"D LgǺ6|=c&|PmggfZaX_y1ܭFZ/=;#F նLn}|N$Sqܝ&}wjm] X重X \ύ >ws&yny>}gls{y%n/^yzɞ6g/v"D @"D @"pJ?%ЕD FD @"D @"`3^qT懙Ovqwcf_9#c7w等;6k}s}fc03Abug}scXvva>1'[ŝA,O9s>FG]#؟x~A=?XGϾ;`.]ᡏE6/"D @"D @"p4WMO7G @"D @"D'p̙ٳ|c'X Mu=3؝;՗lG/9s,>sn,b׶6vr(:۱q'ufq]\A3pGoα>@u;X c.z4?9(g痋8yq=sG,Tl'\s>?;E @"D @"D {Ax 5&#`@"D @"D J`|8u'f`ءaf?Ƈc^fogU#cǗq\mZ ={t[s|YϾk rۜ~qB;ri/!y8!/aG٭opۓ|#ԧbvύEv7|Fbdž39#K~do&eڼ>{Տ;z5D @"D @" _ ^K 31@"D @" .Ν{xʟ녱EF!fyefRQ2wY\b.:w~yC}_~ح49aqF3ϵ2d/n?FyGկc>?η["D @"D @ _yC^G 濎pKD @"D @"p*Ξ=9sQc8eVr(;@>T;g0̐CQ>N73 ۫U{&/cfE$'݇w裞_;G.ՙ8QeZPx,X׻ 1٭Ɏvb[z`C^k`h gX݁| 뮉D @"D @"#?/[<\A 4}=V"D @"D xCg01s,f!#ڙufVYC9wbٹ;3=kO^tw\XkYq\Ƙ;~.jgv{ǭHHvi>(yѳwj#':!p:a|sXO?9գ>g^o>\}>+/"/Wn~y@'VP"D @"D 8|]/~Y;9~_cYcVws8c3G?q7BntX3:Y䲏q\Żv}>5OnXmݑPNņ37L~>;؄H8 dž71_ G?xaZ5u[]?|8ofq֟K={&0}.t7G:+ƞ^Z{Rj'@"D @"D DS}x99SO ϻD @"D @"8<<\Ν;Xcؙ筹3~[=s&ιig.;?5w` ?9i>u=?Ýz; *kmOzG4.s@,ݗC.ġZuŽn^b3 Zs}!;z㇝k}g60=Ʈ_7~e+W}ulm1Czcpt@"D @"D @Z\<3ۊ?k/__3]{g//__塇9@e&@"D @"D#pppc8;̬2⌴v疹ݹeλq=<5I;Gt`w0M}sytg≙ۯ=m }&< F`#9.X>$g;0صb7n}ȵ[zr#7 |a'9}q\g 9CKW.d{{I77PD @"D @";{3_ /;~kIUۗ}ɯZ^zUO,9?'{/g~|w}_5{h0d܊@"D @"D gϞ]Μ9ٱ83bTc۝5f~9:?Lnvǭ\3s}j9Yf=P!Ossm_:[Yn}a/{F";< p`]bY7yo,/vtgunOoq\b.㸛WQK^8<Ĝ}zKD @"D @"ׇ _S?YOk0K˖_Ė__Zw̏?_k~Ƕ7'`͹@"D @"D e tq2/p9ΝU;ݙi3zr"Ġg f?[;gsC1Ƴ3j[̅\!y؝ݹl~b1@ecSoB7}aЌyǟxrYU1Ƴ5C t[;v9o v#[Xj_rdW&@"D @"D fc﫜 |~h';ܜ@76@"D @"D!3qTyYٙ?/Əc;kw>~ףgsyvwgvމG;1=[z3ǚ?lٜwi;fg!_ rc^k36g?ô!9zN=ĦzǢ&ߌX?}#c=q ~\}"~ߧWR/@"D @"D 85{3e S?v| wn5 5`͹@"D @Xj@IDAT"D o_p>XWb@bfY{g~D<3:|csm!>b~|hؚvO-h{ 5?9|,E9c{tw^…WϟM9^;o̿篦"D @"D @"ؗc0?y-9oͿY|b-%_W_K~rYƾ=__˖^?ɭ_?gyG;'`q"D @"D @O G~8*d3C;Ύ~d,ey96dǝ<53qְ/t'V1,n:cϥg"ƾG;m TVAXM,bӛƇѳ|#~:7?>@>>okA|;)謏λvs/;" +" m0ID @"D @"D4ZOVn ??GÝ/.\|9ղ߽|C߻\勾 -O٭~`?(D @"D @"XrqTfY3[Bر1Pн3f_17~P=gYbNƓXcCi>rYo958,E?|PLH|7fedS_ywG"~ě=wb#2wv^sN똓1V_u\(0,o?WK/}z#D @"D @"#`>I1/O~N>s?wn oQn_7%@"D @"D 8EG%<@Abc\2;q踛]Cl6vճG 3ѳz^{z9n=s'acS`swRPlE_d`}gSϮ`#Axa}z?l3y#icGG~q~W)lTu>;:;%@"D @"D `7o\~n/zۗڟ{g|{Wnu?W~[^zc?~6_Z>}\uˏ-?6o_w.9U^ϙkEM|ӇyO&$Sm|>sL Pj}Hx:sa^k .h' ?#39An99z[nPx 7ZƔ^Ѥv߼Nͫh~c[}pP>D @"D @" `^[6;K#W^߳u}tCo__|}C˃>? 3< g/.?<{h0\F @"D @"_7otɱ>5 3KC*" :{LMfG8@&g8gps>!!7izaZ!f7'9~>·<Ib!·׸?9[G]y''} S8[Xp&z6Goַ.<2._pxcNFߑj?~ Y}7k"D @"D @@{rFkw:?Gxo˯b{__-`놶@"D @"D Dٳ˙3g?=3Kc98?,2C3b¦#N<3SPSS_Fyhl,r2c8vzrgngjcG6?!zhOwCxxfXO<:_"w] &<X36׻ FGNx̽CV}ѓ.\:'̈́֡#y<_6a -@"D @"D e<03T'Ol wOO?<\|yO?4EЖ8@"D @"D.Ν(X/ŐCٹa^>=3nSoC3K/F]:K~s}gz+gb{WrhQo=P7y >\:'lj"'N0)VnPocaMgzZsy|Gg bȇ\Fb<:xQ/61uG뉋>ͷ'E`}#7y/ {D @"D @"=޽uo_P~e_򫖗_~yտW/঱_ҧM/ ߔU6wy-@"D @"D o_Ʒű2r0̈*s ;[36̝_61FqqXcvt89ρn~l.@g#N2ݑNenQӴ>yڹ΍;‹e0:Pqַ֙G859GZ;|gWCك5ON_C>v߷u+n2=Lɽ$؛[v"D @"D @N@Ud0+__״+,__ WHߘDw]`]GZD @"D @"{@}cTvf.Μ18`?g竱/%X zsnK^0?=􂝻7ߘ,2Č2k!沖~& _s33bϱtԷşnz mo;p !xYهg˙Xd~ c!F_,"ֱ1aSgs]lq8|uK7 :cGNb:̿zC4&"D @"D @"pe@&%;M5qs?s{G}t~k~\?<\>.m߾_s;?WO.̙3|[Vfy[̿AS"D @"D Jc]=zsFň9l?cwyd}q=#,ޙ&~q6/>Ss';v8za.z7s}ͥwֳ_sr[mn;s>pn @"D @"D 9ٳX|3{̙_bcX+蹳;;ɜqF|6aoo^hvo1Wqa1>3v8bߑNEc4?mvvخ~X:wk9`}ky'Lk`sCMlsNKdG3bQg`GwW/4O^"D @"D @"pj?5'*'ۊ?ot,g[;kѿ7c|᷌o~]_,?s?`>O^>oG?-ccy'{?n8{v ?7 )@"D @"D~$p43c8;s29O&Kfkjcͅ/b,glSٟ5䌟un9\?D6xOީ&mpΫo1bx0́n̙\v^\9#gx;;n>z>~s'l}+Z/^4kdo&eڼW? G؇w|uw׃M"D @"D @"4'|p~/_=~v9<|}#ܭo< 濡^gD @"D @1'b0gVٙ f3bY8&//918n73ܭ 䚇WakZ_=ܿ:fI9q|~x" \B0;6 ni,yA96'PvYd/X?<0btq>ϥoL׸nq~|?|r0&A|4i!7ͫh~c[}:{v@"D @"D ^h0/^CM4&z=j"D @"D x8<<\Ν;ύѣ2̰s׻+3sǹcs3 ?|u晝fQCϮ~͡ 8]c#!Nmylw06|1mo;p )3ԣgy@Aԡ'܅ g`Gc-vupG8Sey3kq&1o뉋<rK?x D @"D @"&Ov"0A̙mo}=E/)G @"D @"~u'Gd ;C|1˜zٱcsP;:|g?KO>gYg곛t5ۼ3?3̓1gw_mvN lر!l/ư}H}s= rU[8ws\kN.—e>˶՞|ׯS6'K"D @"D @N =t"p ɽ}{T9@"D @"Dn888xXbޘog,3oaLX+#7/9w33ш3֜[%g}zc8ޭωw*ӤN - ?A+8ˡ~a ^#z#.xb#>s7p֧O >}b}v#\߼W╧Ǟ^`{Rj'@"D @"D D`_t?^{N@y̿/"D @"D @`3#ыc1ʯOvqwcf_9#c7w等;6k}s}fc03Abug}scXvva>1'[ŝA,O9s>FG]#؟x~A=?XGϾ;`.]ᡏE6/"D @"D @"p4WMO ?@"D @"D ;3 yY1c}j,]:@Ύevl}997w1k[_;9{ظh:︮b}. A#Է}Xg :НX,~G1 R=w3f`<㸞#p*6΀܍.qݸq\TkNcGW=wirLج77nX/_vuZJ_#pj?~~hhpu9_{Ǎ"D @"D @" `^xh0M{D @"D @"%0}c> :W3001~Yeg73 *v86}|=:o9>zsgg9mA Z?wb! 9|4ǎ<ܗF~7v^Z>wS1;Ƣ;bg}t>gkcCϙzץKW?|vW7rQmf׽Ǐp`^@"D @"D J>8} >*F @"D @"]˹s;X/,2 1+30< 琹#zsǵ˳곘m&~*ج?gn}gɉ3zy5. sfﳍ틅n?Fĭ!5·XXTaG_1_'{F`}q6k=~>~Տ `q"D @"D @"߇Po6 xD ?{odW&X]ǜEE[tIS1wf5"#2 ?f6h2"UAQ\CLr׹w2+ݏm{Yǧ@"D @<GGG7n|6˱)sgFrZ=dGc9#ډ3?:vzf6a{uȜ a.>E|>reX2y|8A>4g|}@͏gWgnˇG[}jBuc0СIVAog_^s7xm-@"D @"D _Uo ߘWكD @"D @"?Xc(3bGc1G3b~ssvf,fc7U:?;~3sFǝXvLңz&9ZǮn1򎟋ZݞZ*q#e6 zw,t]ȉNa}spكoG^{#zt`٫ww͇sχ?xpO_ÛD @"D @"\=y#`~D @"D @"ם?qg,fv;c;9~a}m7q듇g|Ƀ~ܵ"Ģojb?Y䲏q\Ļv}>;= K .+6d G?6CKcC/1Qo vqq>+>6yYo>yga,6bg:cݺ{ؓ5R;@"D @"D "k?}du^cW&Foɇ|Z_*G @"D @"\#ϝcؙ筹3~[9ܴ~3~sqƚ;gćXyj̜֟ZN=te}jb6Jԧޅp] œ<b4p qB\߻g`agg!Z9G?Ǘ{ͱp9փG}T$L`<򼙭j??a\gyݺ"D @"D @"UXˀ'n~_7'x ޹և\kPD @"D @"K8>>d$3֓/28#ݹ_swnasߍEb s8+>/:5]L<1w'ⵍPg I.`63;yCrF` ]/!v׏\8.gk/8rf}rY|^zAgn<~Ɛc??>_n޻zd]WUm_y;Gbя~8u@"D @"D 2wop&o.w9ټ6d-﯏@#D @"D @.Kh3cXrgg5X2aV}_@,c>?-@"D @"D k ]o|k>WL"rDsOWU@"D @"D x]trcK/v—9cvY3쳏gb,̳GE㣠sZַ?sa'3Cavsw.8uƢw_XL|#Їy}k8e_|>!4c|i'\4icGlMP㎝;bwt[;>7`{qJE`?vmUۏy7?>~XÁ| M"D @"D @ onwO<oyݷa@"D @"D  ?I8u>г3q\G>;`?~m3s, ..oyБ;1F_t: rc^k۳~+C8~n}ԳOlکiq\|ǟ|,jZ>~c}|o~dM2aVw.c>?-@"D @"D k >0yu zxn,CoRWzIT=@"D @"DƷopg#Xb@bfY{g~n,3x1Ɠ:ļܵ/:s?>b(~GŜs >`!>3gYַy_Z(*D<䃘&`|XCn'ب|ج7~σzS<ޭe?}}#" v{џ}>goVun'ZWy /A۰u@"D @"D kD`m}oo1I,O7lk{4D @"D @"pQ 92e1pfhb5FY|˾s>l\;yk!fa_O6bXs=tƎ㞿ϥg"ƾG;m .+Ɠa!4IMoo[G<7?4s!wX\GP&}[6xsxƎ}t :\KÎq>"Y^hz'uD @"D @""o~$ow9ټ5~*uD @"D @"`#wcm+2 b~bŽ݅b~Lx|̍3T<3wYG k\;v:cNrͽr?;yqm? rٰy#.`uѻȧFϝ =v? `7;o>ߘaɚ_D @"D @"\}l R^!ONVM>Z_{"D @"D A`7XׁrAbc\2;q踛]Cu.fwm[gǏfg_ =C?04̱cq ]$:|SG<6bw/ ?>!맞]FeQbg~G>ǎ1q?gMD`y#/x/[}ퟟw0.؇;E͏D @"D @" k?|?-q}>yxX<ޯRD @"D @"M[oXOrfe9pg1wdf{%v39wP;6sq|8/M,oCS>wzwz?gϏz>v=ń8w4TXms?>O>sXg1KMv!?c!95O>~2d xaDA3 o_E>\^4]#D @"D @"ÀӧgY1y} 6 [mϤ/q~cw>㒗1s9s<\^N,rQ3@PC2n}av|^$sN#Q/)O,y8G=z3vxQo};oǺLo[ug磳`Ȯ@"D @"D X1tWrj-'=-m"D @"D "ptt_Vx/v,qEfYbYcu^s>;zdމgFq7zj܈y;ENf9NOw~zkn۫6vĘm?)*av %r笞5`bC=_@| 'psv˻{P?`t>99 9de[=}8o?j/s7y2t|d4/%h`.@"D @"D x4:z!Wñ,@"D @"DWc=!Ssü~,g>痙fevglƒ\>3=+9L4g|YGzr{|G?׳3ƿn)Vn/)N,ˇ6q>]kqƋN.5!zsaSq\e/>XywyǪ~_+D @"D @"\t u"_ͫD @"D @"ߖߚ79֓n,egcfb璱18΅u9#ܩ?휙vg9$9hq}Csw>5YgRG͞OܥFo.3]Xӱ%/;bMpf<qk]w󥾽;ϮkPPjy&ԗuoad57H"D @"D @~o-qVK}55D @"D @^+ǿ ogTvf.Μ18`?g竱/%X zsnK^0?=􂝻6C#%coU㖬Ai05F"D @"D @"pнJՊ:~."D @"D L٘;}뭷~5wc3+fTU.#cGO;ܝW:߹q:v}? 69[秉U?Lܼ&)stܭs`C|s92?leb^Ks l ȜoC@Osp9f=yf>_6ż14?31h>S_uGC ߘG-~`ujG @"D @"D4{m+k#kC_D @"D @" 2|f'f,aywXsôꏯ!ꘓ1oM4X[y{u>=/,|_saiKN>@C<29pu9d :苞_:50F?l; ޗn~5dQzĊcL=4*,oU@"D @"D Uh@W/O @"D @" ?qgaP9gT:8^]?vGw3:lg ?E;wcwzcN?GƻyɅm\oǽx;=!/:ꚗ E+k}8oV(M+|3D @"D @"?tHD @"D @"ד8k|gvfG<3q؜iv?}8ݱ+7K>cs^6ͳǢ3zr=Yo?s9#6ӐM;rǟXwmG@:("9[%|G}Pꉱ/s[:b϶q'Eg^c۫A;E.ˋj0]/n"D @"D @"pEн"Е~E/V"D @"D kJƍOF_x,gg3ؿb=wvg9{g639#HO?vtf9k=;͎^X616N/Dv 19#0yvtox dM7`^ID @"D @"D4{e+j^ED @"D @"זn0WX:xL4:vYgg&;KA:ꐏXmW\"r7?9[}~NYn}Έx;;S|n}pqLO>g[]2ϟ`\!K޼lUug;~ѺuyF @"D @"D ?JE!o,޿@"D @"D WJQ̟Uv&y;|?E6|3;3̙E|xxs:ډ!By~Qֱۓcf㱛ϟ=2,=~_H,~)% 2 aKmxa(b} 2֗Cl}ԝeg1:8[R7s&nk\ϟqǿyT옓5%&a~м(vC[ >||= D @"D @"Uh@w&"p{+D @"D @HgggO}=C2$̰);sŇ+3sǹcs3 ?|e晝fQCϮ~͡ 8RAA.|SEC=9̃ !y}bh.8Y3Puo>wa`CYv@IDAT{!X]>gz7pY7sECܩİc}|鯗AqIC`zGD @"D @"D* 4{u:C]D @"D @"י76GGGgX입{g/FSU2;vl>CjGߜOyi=Ls>L}vξ;6Eb#/x@4$vlh|>ۋ1<00R_D‡}qvE̻=I.5'v{g gs˲y弮[N})e5E67R/@"D @"D : ^*E`-{7Q@"D @"D&p||x;c=ycTsPt;̌?ŽX_y1ܭFZ/=;#F yٙ\H(~Yqܝ&}wjm] X重X \O\BX9}gls{y%n{=Y^`+{)D @"D @"+"ЀLVD+zD @"D @^c/#<qT懙Ovqwcf_9/#c7w等;6k}s}fc0-3Abug}scXv,9؉a}b.$4 3s ; Y5s33 }?̍gG?kq~A=?XGϾ;`/?x3cӏE6Q @"D @"D  ^JF _@#D @"D @ƍ#1agFsrE?`}g͝EN^g;6 PgEυĚ>>w3 XG /`Hs٘ s@93>\l _3˙;b gb 8\܍E[ZrO;b깓O;>gfq|;1uOR&Gyg[V~øaϖu;E @"D @"D  Ѐ*^CMDJ JqW,@"D @"og0Syff֘c|?1l6qٸaZ;Ž?v|{ŦSoGG1:Yo;,'|9_}]XHxY!|"aCRvoN|[^ =Y?B} `d,# qG3z;6yg_ܿ7gLn'"j|^??p {z5D @"D @"@}"Gx'@"D @"D 䓑z<3 ;,2@3`<6|C;뱛ZE[g/zcb>`>&'>,}֜g,b~."ϙ?{#6//z?քM֘XAq>,6Eg=k~sC}lNz>:6!fW;?g?{cOVF`yq˄~c[w/c>?-@"D @"D k ЀB=Dj jyW-@"D @"67nl<ۗc=Sf ΌC;{&3 ;q>sFԱg~tgl4q96n]b6}ɋ|-ep}h0p>깛A?r1ϮƑ2׷.,xƇcgY?ĺޭOw?TnMvlİC=|{`C/l;a2tN͋n~ چ5["D @"D @^# F/V#,M"D @"D &07c8/z4s=!7;̎hg֙b:vcZe9ms<3gt܉e8.=>yQyhrce}q9c.y})!٫1rP6kC⣠azGBg0:7=氞~7rGg}67zw|葹>w|3-/5z@"D @"D h@W1MD @"D @^ot<ɝw@e:S:#q&ceucYcwswO%>q6ggcg>q1S?D6.%ؐy&>;#AG_,A8 ob̿v?F,~PG5,>Ƒج?g.؈mo>ucOVF`^JD @"D @"D4{E+^FD @"D @"ה䗣;c}3 37<[sg ^2s&ιig.;?5w` ?9i>u=?Ýz; "kmO z@9y i!P-:ra0/1ǙGwɁN=B>3`szcW/֛cgr.ӭ~Hm!yGy3[V~øaϖu;E @"D @"D  Ѐ*^CMDJ JqW,@"D @"?wg'c1Ol*#Hkwn,ܝ[|wcXÜ+Ίy~GG v>78ͣx~8OlG~xm'Gb '>pN~`<` cݼ#a}b?1,lY\l.^sq91ϣNE`y%/x1[ퟷ|$a_{D @"D @"@>#?wG @"D @"WMhsƍF;c=ˡq旙!ff0*3 ;k1st~Ù;'=~sMA^t`gQBM'>}>yn">YrC{3 \V|x#qGۃ ;0}e\浾>!Y~ S=sGqln^YG}l?v19X'<}v9Y,]mU 䏏??Aý}"D @"D @" -C@ﯖw"D @"D H` opپX 3\sg9cv0vggɉe<6|y891h|tPg.`Zt98veXtn^ /`4ܼo-[zg /?f/;ē˚0-"t1ijzܱsGkpGSg՟Rc̿{6Nɺ,e~j?`я~8}"D @"D @" -C@ﯖw"D @"D H`0xFN摙'fggoǏc ;|hw>~gsyvwgvމG;1=[z3ǒ?lٜwicE(>`'1&=[83>zN=ĦzǢ&ߌX?}c}|o~dM2aVXvu@"D @"D G?ۍn???O=["D @"D ;wz8Yesޙ'8n =qہխC1":ļܵ/:s?BqZ9筩\\esXZ%v>siث!>b~|hؚvO-h{ %?9|,E9c`>2ɵ&zi0GD @"D @"|w͇+I"&xm;ooyg@"D @"D =8>>f0˱8*d3C;Ǭ1zMF[waCzɃXc?1g BG}bB?֟3v}.>1M?ֆ9m0]LHpYaXa!4IMoo[G<7?4s!wX\GP&}[oπNAg}t޵ }o}};_W$" m0]n"D @"D @"pU?j/7?鿲UN"pM7?{Ee#D @"D @c0ogYhv.t 3tLx|̍3T<3wYG k\;v:cNrͽr?;yqm? rٰy#.`uѻȧFϝ =v? `7;o>ߘaɚ_D @"D @"\GDO_\-6a^$@"D @"D #jD?!y|Q, 1Cေsf.8tî:l6vճG 3ѳz^zgqFX·̱8_䇅.kM>ͩ?#K1;@_d`}gSϮ`#Axa}z?l3y#icGG~G{3&k"jW۠>.hݺњ^"D @"D @"}y睓Ϳo͇6߇#oomͭw՛o#<@"D @"D WH9ѷzWc=˙iflCÝܱ6fvog&Y;zfo_U;yirY^O=YߡZtƏZ=}X;bBam;gg؜2V܏C?Ǔ֙s R]wAg\^4}"D @"D @"l3\esttc>Ϳ/oͯDu$wo`ܜ=Ϳ dD @"D @"9jobvr~C"" :{LMfG8@&g8gp;l9}&}CCo;liô%'BoNs/s|&K_*yB4RCAq_fE28bn37w}杜POl}b)8\"y[ߺㆯWoKd]7DlU[y;_E?~,؇{ F @"D @"D5 pvvz|s_mk67w7O??!#D @"D @"Oc};"3$ϯKfK)t z^c׆wQFg:ͅzWϬEбɌ5g!|A1f{D}O m;ƒb= |9gw/XP"c}؄k_~pC/9?>{!\'7ǺOQ'k"Nw /͋n~ چ5["D @"D @^c=yosMߎoN"ד;x񓟼ɇo?;?x|@"D @"D XW/z<C g璇y/iw;|g_fYjf]:K~s}gW;H$3ќeYzɡn\:pһE^:p ˦lXξ0F;,Vq8.w5Ǚ/;K~t |ͅMl)ƣsmb#?c]w|ݱ>6d]7`SD @"D @"D @"D @"D @"5ߖor'c1?X ˌ;л8ccnq~vaCǝs~ca١wO v9;mwĚsz\9:WG͞OܥFo.3]Xӱ%/;bMpf<qk]w󥾽;ϮkPPjy&ԗ|˭{Oo`{$T;@"D @"D @"D @"D @"/Gww+f$Yb;3g1;>"3jlK,s~=w31†[=>Occ!@|4`n-ϳܵ7uL\ex _8!|0rfa8 3puƩ#n![酳8K}CskPƐgo,uX?{[ո%!|P_D @"D @"D @"D @"D @"f[of3v9W̨:g]FXǎ8v|;̝u33s-ulWs>>O~㙸y9oMzS<[se~ļȗ<梡<3|98}3r^z|8lyc<+/i~fb|ģܭNч1>?;[Ե: ,/|Վ@"D @"D @"D @"D @"D  `'EfTbI?~s<㇨cNzʧ>:\ֲ5sĢck._o}bY9֙n@=?T΅/8< Ȭ3L,2?1c/zz|\.6kz_X|Gz뱣w'15>;3$ W.j"@"D @"D @"D @"D @"?}_sFň9l?cwyd}q9#,ޙ&~q6/>Ss';v8za.0s}ɥwֳ_sr[K^:G|467cxa p\ܩe}m&q܋wbyۛ\pYBѓGoq\z[ψoωVqylyx;ĺk.>B:EQs.?:|z>8TO}};P-:^o̿u(uX^Tz)uD @"D @"D @"D @"D @VJƍOF{_x,gg3ؿb=wvg9{g639#HO?vtf9k=;͎^X616N/Dv 19#0yvtox dM7`^ID @"D @"D @"D @"D @" j4XOb{gѱVgG#:;49OOq\o Q|jǽ136濩 O sr:xW7T9\?D6zO^VA68Uǃ7׽8s&;3>wsF>{GGYdž.w3P;gz=[ߺ {~:_^eZ;ggX֭]V5@"D @"D @"D @"D @"D8>>t$j,xfIn9n,f2l2"sfcq<'ޜtsvbȃk_ui}d/sꘙ&9xCGߡ/_(x A  cfƒG8?(CX=.<g_,ue}}F !Գg`o>;d xɻIv~4/ֶ0ϟe _{{xD @"D @"D @"D @"D @"גc==C 3W|8ͼ23,|;Ə8g9Gq\fٙof?:جaNЛ9O.;YAy>ԓ<87>/-&)h\SN a<Qs6:g'gYL}vۯws %Nc?X>:ĝ|8zd=x }I"D @"D @"D @"D @"D X37nl>=nov2x 1cCfǎgtCc8;/?og}tn^8Lo숹8[ώ؇zǦ^Zlh\>fĎ g{1Cꋞ\ߜY8.b؎3y9Enl.|Y8~5Cwϟ>l&F%@"D @"D @"D @"D @";c=ycTsPt;̌?ŽX_y1ܭFZ/=;#F yٙ\H(~Yqܝ&}wjm] X重X \O\BX9}gls{y%n{=Y^`+{)D @"D @"D @"D @"D @VL`7hX2?|s;62oyiy;oM~رin^s3M k}iFo K}?8ƲwgNs!W%A[Py?ĤĘ>ant8;Y[.cy<:~N96q_K~/Z@"D @"D @"D @"D @"D 7nlf,]:@Ύevl}997w1k[_;9{ظ4@w\>bkL ۃs3cm.,p] yecTϝg;gt̰r'|38.g13 Kgsq7nnjIO. y|0֭n?}JKɚ,/mU[n}?[v͏'D @"D @"D @"D @"D @"1|NvhYcaoWǬǙfi;yBO}7ǜpVf9oZó6w|qgŃcG|HqH}K@k#yG;un}{E/\d-;ÎYZs&?g䝱~qߜ1F^^?oy݋~XÁ| L"D @"D @"D @"D @"D '#z<3 ;,2@3`<6|C;뱛ZE[g/zcb>`>&'>,}֜g,b~."ϙ?{#6//z?քM֘XAq>,6Eg=k~sC}lNz>:6!fW;?g?{cOVF`yq˄~c[w/c>?-@"D @"D @"D @"D @"67nlXObYivȹ3P-~ 2CCܱus}ę~Y;=3Ͱq\d΃[XMlg">9fv?,r<> |hvvt>>zGvЏ\ Ƴ3qã> |!񡾃Yw:b[1Pƺyރ1o$ Nﷳ /S_a D @"D @"D @"D @"D @`c(3bGc1G3b~ssvf,fc7U:?;~3sFǝXvLңz&9ZǮn1򎟋ZݞZ*q#e6 zw,t]ȉNa}spكoG^{#zt`٫ww͇sχ?xpO_ÛD @"D @"D @"D @"D @"~ottzg,fv;c;9~a}m7q듇g|Ƀ~ܵ"Ģojb?Y䲏q\Ļv}>;= K .+6d G?6CKcC/1Qo vqq>+>6yYo>yga,6bg:cݺ{ؓ5R;@"D @"D @"D @"D @"D`6'''뛱=fyޚ;ꗱݝ3qM^?s9ggs6\XVoyIۯCgY7n!_kL}]X| 'Ҹ !6Nw_!>jё ;y><,?jHvvvy~ۜxz|; s`n=8}ۧOErnp3?*ϛ٪np׭=O)@"D @"D @"D @"D @"D%p||hXObbRUF2Y;0"^9W`菎.|}foqܛG'p&َqO3$N0}Ι< wr!9#y0߅yGX5cY >\>/rf7?c1ןG7{Oo3J^b ?oH,c>7^7@"D @"D @"D @"D @"D"67nlX3 13,Q1fYc揍엞C#Nf9qiny\sqp[r _HhӐgq$v;|LxށqC, =2%Ŏ̲c:퉝;z5`Cew?c3zw?3ɚ,odjھn |a D @"D @"D @"D @"D @^Gc(3?9㱘fa*s `9gL>ѓ!=xl0lqc<;s(蜡߻\̵>r9pܝ&Nݼ_8!iyZ66.ts6_~_w'5aaZDc<[<@c玘`Ϫ?;2muX>`˄~_[ 䏏??p {|E @"D @"D @"D @"D @"ב` :#1OBߊqw|m\9;6Pg'8vힽw\;b{g%EE㍳9<:0w9#_}Q}`OckM`{>1:{%7qg|/8#حϝzM;5;6EM>~'ɚ,e~jnw= D @"D @"D @"D @"D @|7c8wz83r;Ĝwcw>sG1,!宍}љkG!8gޜsA|.{Ag.β9?o-;PUyx1?>4lMHbcj1NQ˻رYo;:0;2? g֧yϽ[~G>E?C}0NOY rw{4K"D @"D @"D @"D @"D 1_x,QY&#fatg?fl2z߲2Nsy8k:y\si/lѷ6iۇbB < IElz{"Y^hz'uD @"D @"D @"D @"D @L` :X|=Bfcwc{g;cn՟z晹ϲ>:Ĝ'džX|2= ܱYskq&Y̋3~gosU͐ˆlvE>77z`G/d? b1';b滹Qea09Y>ߘKD`HD @"D @"D @"D @"D @"u 5|4C20 ?=gىCy/Zn~ǮD @"D @"D @"D @"D @" `Nr'c932}{mh;L23=m$kG8Ìzh3w·IJ>T?O{'g}jѡWs?jcǟ8^LHpY9l|>sL@塌63uüd]O>]sgGgsd99ɇݾ;c}|ރ[Ɣ/l7iCשyQŇA| k0oD @"D @"D @"D @"D @"ߘWc}3 3K5wf4EELu9ǎ_bqLkvs$~,_fE28bn3܋2p3qԣ7saGoַ.y5XUm>E?~,؇{ F @"D @"D @"D @"D @"7ƍGbor(Ydə%f.Ŭ1:SM?瓱GxfΡ~sɍ+XdƚqD}g6jcG޶?!zj/Bxhf[O<:_"w] &<ė`} =g8. FGNCx̽CV}ѓ݇c|pӧ5en'Zs7xm-@"D @"D @"D @"D @"6'''Xb!\0o˙f|w}e桙ff}1qkq}csQ:_q 6{FOwܝ3gNuS@IDATލy<λO֘9sah]An,鬗ցJn| ՔQMsÅDǎY'njz]lڃjPt&֩/NGm;.Y~L6pcܘc60000000000000000000%ЪUƋ'WLK*#Ĉ.:}3^d_͚b%d=՞D:1v>ŎӬq!N4{ajI?f5ʣ:s&D\a5.;l5Y&':FN]9tj0D6F\C@XWC+]OR_y!99jˢQ_1+mÆW1řf_7FLLLLLLLLLLLLLLLLLLLL |Ngaqŋ'#gK}Ŵʦb|S k'ˏu|_9:\:y-K\XS5ibeH'.oM&`c:kE~39Nmzjb%rH9X1"y_|2;q簢KQ!5ӍcMߘ?g&g&F{T>S_檫D>#F7~|Ez1  d77Axb>ӖJp~aW'RՓU#>~lIMdž(jjbƅr)!!&cӭ}O}υo~4Mb}Eŧ:0 !8HnGR 6D1#_\㋨PXM벦9 *nlMW^>aW=FC̬b 鎸1&7a&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`?Z94^K1ѢaZS}.?F5ӏ,ߨ&yrќlgGkIΜ8欫:c/EcT_yutO\iV}OT6ccF>՜^ǎ ט)kyK\OjUG׵h.ٴ~+ /lėk `ʁ~T_4'R3LJzL`M>d-ϩuȈ]Br(9#';~c&^"k-dEF"FZ4fZ'<d?TG5U_ړ_6zIHX` ǮKvF=|_qZm;g8agR Uۡɾ+do%^=1 '&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&$0~кu?טC$L)#}l9G}^dt._TS3#4#Q}F3j?aM5#I+ְ+r>$ S<kvr(kGq׾jQS.FH?D6W>:g$t>6D>(>t3rD'P?σbcC4RYuS#wXj7ލs?0000000000000000000e-Z-[^{_Ц*YgMjjdž_O6];| ʋ?6+E^tg(i̹T>_Y|Mh#SX `ҁM"Pl<׵0r``)_y}΅9ji/8(oe6!'دr3 r˥=cn.E]%:o8Zj7ҍtG0000000000000000000mZw84^E1O-Q]a,DSӭ~fz%#DeW^_stzXcW-FM.߼1Qh*.ǧIB抚5ID#5xZk<ѵ>Sg>t'3s; ^/# tc~oLLLLLLLLLLLLLLLLLLLj@}cůE;*'bjոm=QyߚXΚ5W^gקX՗_\J=Us976GSmٴXCQIgyBtՑ}&?8kW\\.NLxuY7qlRK^vV1U}c\LiD:ul7!500000000000000000000,4pjDð5yl*7QORFYǗ5v{līryQtInWiߚ `yT ;~M6Wȡ!o>\uDp} صF~)WS檯b\ֵ'y4>u`ĿuÈ(tFvt#3k#FO綥;}*Z4s=H{!_s7mfLLLLLLLLLLLLLLLLLLLLIƏZnC 0^cE/2B1W!U=yc0zɉ:v9.I bGgO{#թ mB.B,B85ŏë >ɦz/_WF+Mc']9ٻccZulFfh_*aD:<1ðu7RcҍK*Zoȏ>1<1g&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&S$вeТE^qxpJ4șӣrєd zƘ:qʏM~uLo4E5I5.QuU]&:y9*Ҝ<:@Ќ:4ֱ0a\#)/$PK7D:>Wc<\>C4/6bΨH 9^ - tWo'5ݧ۩Yx*an̯ $ |_64L @M!6Ә?8^E1}\3דՇ̈h^g1*U.C+V}gOؘ\=QM{]ɋ&Ef ɦq6FNJՆC#ahz΅Mc.QMk&誃yrhѥ rȫSvl+F+v$\u>i_pdݘǍpnkNx&`&`"0hRC6ÒK.Qرc[o]e^veDn0000h.#Ghg9t98㌍4wO> "͜st\̭ |g~i1.lyC_~eu•W^\s{[o&`&`&`&`&`&0Ꟙ3 ji]#m)V:#C1cjmY_9q)iʛ'1ZT}#&Fc:&\Q3O|Oj f +ڐh]Ո?k#ƾB !71ʟXCUQ~QM`QYϟϚG۵_r>yO^CaS}c}xu6o-5F)ގ |SDž\5{ul;qm#MCvl @s uֹᜳϛd>  M78|ad4-# ^{}r-7]|~1b&`&`&`&`"v;Qb|^:[100000}Ǐ[1thƋc/{j[iar'Gc]1꧖]1~UÜzش\hJB kMNPB99YnupAd#C}~й\s`azǏuF.Duǎ?{c_U/K!midƍbʏL &ȲTL{}}NCeCWn,3LL`b 57|G s5D 5}{Dl0000h<'sΔ73T]t^դ3*?Ő#G>ԟ9^K㶥[*7Z4+Gjʯ4YAwc&`I|v=%^0Ѧݘ?LLLL~ ))Ӿ}cg}J'" @$pW;A:t/t۞~9Yݻg8s/2CZ#s̑SU> 6-[w^qC5:^jbzhFǘvSŠ:WtT &:y}jr0rQ5S}|%Dȭj<ȭ}}`S}P/|ȡ/{ 4Wtx6$#ua]{at0eb\ʫ%:6Ku_~4S;$!ʥ8+Q5arp.#F;~<˖Z"H갯UT_z}C~H#an̯ h1,^t^j-1 '&`&`&`&`? rc~ǎVy1cr{ϫv瞻c=ԉJq&`&`&`&"Уao ݺzs19k&`&`&`&`&`&Pwlw~ċ~aF4g,^iLuL3>ұ!;YÇgՏjGGM=\?b\BaT8՗MlF dQ&':$G|Td]/tSu24i?RMPDYG#]5W=3GC#6U9:uV3"b 닓_a_W7_d?j LI51"6͏C+,"a_-:۬EN|P6hj*᫯ =Bx'L3nXy 3B|:|GaE~6t ~ A!CCݨQae+żK-ḓlEn&`&`&`&0=[~ÇmZP +B5-qƅ KX`b߄uY7 _)SژG~$ zUXyknayV:&`&`&`&`?CC Nfh:|W^' pV44?h=[6^˄9眳*'J?}?yXuo[oez2K//bX̻&s)My\νꫦ!|'ᩧ /siivE}+|,Z7jLQR[/%*j!?d?l:v֛ogaYV0rbyƙf /X1U.u)5\܊ &՘:'cG\ OwfX} 3_2զ͌o#|ʯc#Y~ٖ*w  wCy8x~m۶C 嚞 4L`J<_X$i;7_z=F'zN;믿:}S6)iqZ+-w١sa1000éQw]u /B%-yy }|ߒyav/_ r75\c^Ṅ~hqqǝv5\ra\^ye@zO^ͅj]8VLLLLLLB^C5*^4CL  ~bj&^4V|IQ<~\†(/s1*Fؔ+hH~&D9|\ 6B C:M d ʏVM$eKMFs;9gZ+#k4džh,1G<^56{'NwZ>AЄ'6m -PxGy*s_pamz_&`?25泽SN9)3C\c>O@oNSU|1e|b>_ҋ/5WӇuHOXu'ܸ>{:,7Y70001. g~V;^K[[0mپsk.y׭鉢2rpk9{a~7чI z?{2MLLLg@`7 }8.a7.l(j2OhbZSOH תU,_Nkfx6>~|#NݹK};zv0z膎Pe*~[eLLLLL~IZjE/LMFiXj5.&c)wQ~Ljh_بOֈžæبV\ZיѾXvik&$hЬA6fm2y\:tC?+?>@e=h.rWVMx:3``S}lk]k_W}0"3SԻ~9ld_,EsO T_|w#Un̯ τ@CȐ'eYÏ<D_0VW[mE-O?oҪOzeM6ܘ/寇.7l'3m*'1(k[nV_l1000qLIcw}xxjohz_ϦqrmG}@>y-t0tEDT&`&`&`&'pgλ8|CS^pqƃJW!)i}˕V^{E> GPHu?N8Y{W- Qiu_7ߺ_ܹSk\V>=6tꫯlu8Ӝ Ͽ>`;쳇><ߊ 7gkԄ75{y`|Kf$sah*5^h#3G =ѹGsa ;9(ΔCGXr=HMBMU6U>6'{ُxָ$kF{ G9@l';5O^.j>{X.?Wg;8kC\5{/0|ĨOP 4֘7j6ne O@CpMc[A#6`Fł#G _Moyez{ˁ-(/=rJ+>"~ 7xm1w?{/bGLo5|СL3ECKlCU7@bLLL+rc{ K/Tr_y5꫅[n[G x"~T*+Y|^/Ezvao1b&`&`&`&&U=d ^xn:4碧V~ߒ0^H.c̮]g}Xonc~/LabnY;*Ov.hJ6sv(=M4WT>Pgi6PZPO>Pԟ1^] Q[fR an̟>w||C׮]QG溉&՘K0!a1aMOx^bCDnorذd_~k{opx' F- ]t.b?/R=6.a-{L| .87l90!CBvלYw6N`Ã>T{]x?_9J/ |5[MaÆ'o/Ђa{ւaNJNc~/8bu6s†'8~п+aРA᭷ C M裏RjeYm?u{7\'~Q|_k4?]Z,Us&ofmay殲yb&`&`&`&0}LmcC]vq8;۔~U?tj4 |3o/7֘Os Us1GO> |{O9b&`&`&`&'P}[W]unV &<=K.zp [˖¬iNcyo\w38'{mhw_w #)֤K.De6mh٣ " ^klFaQ]q) -3#tzt&6Q:y>ţ~:|CCT_qOSW&~1yr]NTxꢪs :]l:$~\j/~'IʣN^;:5POp(8걷Eܔ1~VzSN5pÕW]STi5\SO =zl&SZrד"Koy)O:>NӲu]wb|N;96?V>9ڪO}#)gkLWpƃ]QmYf oӳz?Whh8cvm LCjBnx]_ov8/IjG ħC=X;cCeT[1?n-MH|0000O`jgqO矿W[wCp|nß|4AW>1y|cmƖm7000 8Cqn+gażm۶Mo,ou_UOҜ^Nޯpq'1k )s=w ߂e100000_"e->g:k]WT!=ȩIO.y|/+y^NnlƫȺ1}Ǎl%Nmd_r27W֒I JݘBA7ĝ/?\Ms9giCs~Q`rrygU5K/To6@>ᜳK:姫MSOkLjpEMԳ;vxD<]pU yAq5W 6ຍ&`#0|2x馛7ۘ1/ +u[=|ľww O>TU՘د_gLoI# `ʍ .`8S=qk]~:)_aU|VٲƷvؑU7z=='7ƯS:LLLLMUWYyзNd]~qo7Mn-yҭMxsrXoNc~Ckk|jǏoaOoӯ|U5X w֭[1TM¹}Z4V#CKM2.դXWow4{E'|=WrtAǗK!-ߓ\{TG=܊QE:0 6 ƨ澤P։a8tj_8a/_"/1î\Iֈ(.rq_|Y#?cQ}l#3ū񦐥;}*Z3ԏq0F?O/(;v[sM7<7Meó>r^{h. 8(\qEs*cgX700000_|ybo%wnSF13feDˊaDCdWl̩Wb5O}bXW<Q<΁_9?ks6Q~و=c'f +Ft@mTaC09ҘziW@Q-~ir:" =Q3<7Vu5N>6%!شՠ>9uCMLS_,; Q׷g!nl7bj!?%{0Fw77~k \{ez; {n/ 0(6nU:pw5ؘw Y9|ɿsQ4c|gÎ;.ya}LrcI?>;!C5V_q~{|_EW_mwaMsc̟œsp_P =[1e\O{².Sq/t3O Z,\ 44 ?BԘ {}{=bmTQWc~6[x:~`jy.3rؤuvœi<p_=]8[1000 L1]wC8cq)'-z߅?ԣœj]Ms묻vXc>=zlXo}ZQ|(}啻Uxb&`&`&`&#P^Ju[[Ӫw{yЫ/oh*[>gsF﷓{8e]QO/?1LuYn1oa;B]ݨ0z0zpAM‹JXb#s+&`&`&`&`&`&K"v1񢯘SFz]uic~tWcS,җL6%҉Q-ְ+vUG%/v|BGW-{k  |XgKjG5I&:9uqa8lvW :1@#_+6?l\v^xfaFiޘހ?:۬ K =|1/7vڙ'ڶ%q 7O'J|"‹ [mEMkGul;C)#??'rIa{1VLLLL~zWX5>bmA BT|ՙUWY[ d|g \s];vl~qGصuq#IGŇE6lS|ͬ=5֘7a-JQҽz}ێ;z'si7`puWݣ b3 3~/^<1>c]+U6(QXǗӼ#̥"Qυ5C؉=#Eֈy1W}F5D"_^?ϙ6651>*4@IDAT GP |<__>8sXѥvÚƱ&Q^o̟r3=*ة/sՈM"bxb~#GKmH7TL{^ߐ=HK iA|DW\a0zٻwpi#FHo]vc8cU4i.BᩧMq|_j%ï~zE}Rnf .`|:ci!o_s5M7X yG}gk]Rް>*lj?#{QJK)i|)#7x l|5ꕇc.ܽ2>饗F|X)>ApU}`0iB`J)v뭷׉1/vFL3mHdeVryG /Tc?&.żH.hx<)W?T#O؀rqG=حLLLL5泇Gok[xknʧN; zR<|7 I)7o-&`&`&`&`?]O>t|q{Yai,?[wq W'^{==(F'4KnoCdg|eKa:tRkKc|f0^qťa6MMLLLLLAa?p~bOi/ӧ\iR_+FhJB|(jjbG _R|CԢ>13$mB.A,GTS}A~-o?TOu`@. ;f.Q,@(F`䋝Kv|ѾٕGǎ(f2Wueo*Vsb_#v1G?^R$S^7ۛGmCWJ~yӆ7pXiz!/bpq .HvV8 lx1{ o*aޘϓQ85{f|Cw۪x&w~W8Js=g+7wa嗥Drߎ 7w" }Ͻv쯡eKVM?SDžR]5֭i{]4oqP^O,]t }٘Og}.Ӯ믿{1~E%X6 @1׳nyxeY3>0^M:Wfw㳪9&xjn}r\s͕>χ-&`&`&`&`?mth[CW_6CNvcbonu"B޽`#r뮿*&>(-/;!9<şOuL11a{Ѩ<|˜z) v Ĩ>c:B Je$S^WI#a 5W,ݘXc>O%'pUׅw}7V^ypǝ$'U4Hv:'[yBl?SB^|PZpGF56lSӘOG}PNcTO?9~ ҋ/kw}[mOܹS7$ɧv޹=џox?rEᙧ oZ>־6qSy400043>+61^{90}7. }?ŽҾ}ЫaO{rOAiO.}-Mw=={597&`&`&`&S%+aÆ_wuC- ) f=s6nURA So+Y`R3Gv"sP=Uwt}]'jouܘ{¼7,3fLI+z |xae~HXveLLLLL~bcktˣ.z%NO1#  !5zdg.l8+._U5K3kQNnΏjG5 Ǯ3_Ş*Mv's#<զ)gu@QkE5AWutȋȎy.W>D);1ڗr>vوes_)ٔW1صWa; ^Wy$8VKH7*{3M*Z4kGycO|[A%<ɞH7Bkp!)$6V^[12=yÕ7^Rn.x%~s|{m׾xo205_/?ڵsCOL Zǧ-"58|F s1{aYּ0000O?4Lŷ)'|]IӚ oد( jJ:v0d@h?ɧ7Ok̍|?ێ /Pe&`&`&`&`&`&%&g|1Ro=F5FI_;sFVkNobYGG#ͨ|cZn+)zf/\kU8} ?qj39ćXl؛%М$bcl>׵h.ٴ~+ /lėk `ʁ~T_4'R3LJzL`M>d-ϩuȈ]Br(9#';~.&i{iV _rAbU> ϝ@}c~x*^4^=ظԬΈ묞dNC7)U8l!ZjU}Q,:kS_=Թ?5'?jhωࣹlTP>5C䓯*^Sr Fm0+/U17ca]8uUQ~<^sl9#곆r=N\iG/st3KW}eP+51 ږ"Hbܯj!?z${0Fw77~'|sV '哉?#5нN-[ g}z?%]wC8c4 ma|z6Sp \zAI/7޺w_/\ټg|b矧m~ 4ovy@g{2tҹ[1000000000000000000_ VZg/xzՓazѱ/z̈"sQ-WNt3W}C\y}2uI{/=$GϺG8v$_o,;~e_$*ޤ, @ʯ5 .Xh-A˰(_ǎ0 )V7X&]7e _0blqcW}%;N\8-6G֍C󫥶p+JMW@ɳ>Uܘ_ nI5F<;Ə8"sᇏzo ~3jQkOZ9]ЕC%!!e\AX^CyXCȧcC4~y>s?tKO>:>6t3*/شyѩ:\誧1R}FD~5gM6բLu`) KҲ6:k@\^ȁY>|;>7I46L,لbɺ(6ʅ/=uh4ntq(k%H7O;O^=w.]sa /(]k'ۙgzجj}r800}y' |*-Z3a5ary[oW$sow?i3<vؾwƹgU8oG?w%rAa(le)g|j5:\suk ~iUy\sp̱G9昣j000000000000000000%hժUxޡI{Ri`μK>h*zLu>5s<hD=ؕQ{/7G|T/=ziPslRH \~Aɏ56RS?a nzxG.ȅQ}N,k䑏g9Ot-OT5Dg.(z+/y8NÆpݘ_c7em.|aرag ;u m9ڑO>$ 24o>,@{>A7E}z>,|Go /h}٧hov2000000000000000000;_ŋvTO\}qFAƗ~cGa~kb:kZ\yUy^nb؋bU_~q)@cW K}TuT_ys0Wբ[9r}b$ljZ @r-P9`|rW(><ϑب pFOe^cG9'} yTG-|Z1#GX~zw?*n[&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&!ТE klaEkӣ|Ş砹='͜k!^u֘CNIT 1jL kcuF&79A} yKHٙ|@iVo.k|S&9tAe 8%Nr1W\T0WzSI40az?Ƈc~/_yӬue.=iM<y|T]ەC~ڷtq‡<5:iŽ_rlg!9&|_:v_yGkuItGOD9o/0"A~ũ>6Qj1ȌZpĈQ}ӹm)4p_*+ d?PS>67mfLLLLLLLLLLLLLLLLLLLLIƏZnC 0^cE/2B1W!U=yc0zɉ:v9.I bGgO{#թ mB.B,B85ŏë >ɦz/_WF+Mc']9ٻccZulFfh_*aD:<1ðu7Rcҍ$S^7[Gݘ_ l2hѢW<*^4+ͨr(\c4%?F|s&{5cC4#1Nc_k=MlQMa aT]bUW>ɇN^D#G.-64'':4ul:|@>3W~lEcyQ_žǪ.[T?]N}sT _W,!ٴ6ȩCip~H|$9 Mعi i]u1/W5TWՓy7rʎMִ^5(η? sqZ rc~- LLLLLLLLLLLLLLLLLLLj@{Ɲjw]#m)V:#C1cjmY_9q)iʛ'1ZT}#&Fc:&\Q3O|Oj f +ڐh]Ո?k#ƾB !71ʟXCUQ~QM`QYϟϚG۵_r>yO^CaS}c}xu6o-5F)ގ (LJ֭[74^cE1 i=щSߴO]}#fʁ Q}SˮIkO]aN=ls.W\4%!_ƈN}5Yt&'d,\7C: FSuy>x\~k9DrN=:#"_:kycǟ1ʎ/~ѥQ4nM IfG&~IׯʄTL{}}}ѫNMHnLLLLLLLLLLLLLLLLLLLL'KUV;W񢟘b5ҫGZ[f s-{&^KTC9W<:شc.|uzQG'N<1:6گD֢Z%יGgEI stFs\DGs05 uhbWr}\ՏjU#9#7k S}r>r;s-IgT<~!G^??|?s:QחmKmHS1UnX^iW"15wc~mwLLLLLLLLLL{82LBRWb/ R,@uw s- Q J'!ϝ͹IȔ$w2'3眧ޗ^oLLLLLLLLLL/ij44N2=,33hFǘvz9:?ÚO:-~eMA^t̠6S}|%Dȭ;\m5E΁NUC!΂$s 6`Lcڧuua4Dr}*]w7䧏@֧srW#~Zޙ `$#5OIgƂ4afO*}}βg=9b3 zU?-vʍq(h|$C-U_S.Z>r(W_6q)5+/sE ʹbؤ]t.lzx=4i?RMPd"hC t{Ќ``*fW,5rc9mp4窨*uwC~d}0'|ݘ_;0000000000000000000;phD?1=3z+>~˞^v'Jk%S.a_~ؔ}]8fٵ֞xecFV}S> Ckt8:s`j`g(FUcO(j[k'F~::!Mk곧ΉMvj*oZfl'Q}䃞|G1}%Z@SUTZi8Vuc~-1LLLLLLLLLLLLLLLLLLLL`'ޖ9j4ӠAbz;֞~bKXz3G bO^~e/bNҲGt~|$<곖^9[SѽttZ,tW-%\Pl D.(?>X5C:vrZ+36K˼Ghcwa`WsSKyd/ϮZ:Orٗq䓈"Yc::JZ:nw}Yܘ_00000000000000000000n---4HcA2MFX4Lp_k^MF-w.aCzɃFYlb&N5t.t'V6bYz51:6qnЫO[PdꛐB:a ":teWƷ<#~:{YG&έW#>ʡ5v|U_w@'A贗]\W}0#32'4{4 Kc1Oc&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`L 5OI{< |O;* -f 5PLӽze+}rGi= G('kœXdžK8;+F9UǚX|KQ^tÇ8}0ҁ=" tkFA>Q~Af<;2('3XJW rà=xcĶ,DFz"> 46')秡&+w9'u>3 SY5RƲٹ/?T/ѡ/I_G<6D1T<`/#;ȷg`#^ePC9· _y#̏=8#ĕi圹-[FYK#ORQUWzYwsr4&Nؼ 4nN㘀 ۳!76l 3Xz]F*?K e'k=6~zeG=kը=ٔ=~ib=?TϬ=yoRez ~ƏZCϬuZMH_?:8{\JuIS)s$s,Ȋ/@˟uy~gFtnݩ́4|ʙ՚O>:7>sM[~dLF 9M)sVt7WlهF|0'ѹ17&`&`uܘ_[00000000000000ܘ?l}$ޘ| }"Ei;LC9fO2 =&FcF_b+ їqVj%j$_Wu㧳eKN2^9r\z'*ܻZ.ǡ% .CqiY?5ӓ9(~VO˳W6΁POZQQ)v݋x#.|2F1ii]]4D訯]Wd}0'w7ׁLLLLLLLLLLLLLLLLLLL!4%]izPS~Z^d%/A1:SˁM~OƎ)gQF8ԯ\)_ɍhVƎ^ANzY+3Q_ӥ]ʭ8:l̈b*Ot|h!\Zff٫pٳY|Ēzz c\52^A#C_оSb/ɍnL-ىHxS9{v7Jkyg&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`0hmm=!]qz ҠTMZ}KPO3|e饦gY}Y56ŒuY_I]=+kb[\DƗUOzrHWIgTG=܊",Сt`uҗX.+ı{VʅM`#Nxtab#?sQ}t##Әf[56/+QÆ=U jzǟ`Wر1tAϢ9A %t1rjЩ˰ AStĕ0U_9,Jg NÑ/C_rPɾ^TCbGKiL=gޥUY@1ab&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`L`Y;6l 錏z3P_1ҩšfDÎ/{+ya߲qt%)_ZQ4җy&&gyбW}fs_̎C&'_(*aυX^х/R+!7#'߲~ +T|<`S>=8lUsWRygbtF#=5eIC o̟0wK#$#pm00000000000000000004Ko̧~bRi.z5ˮ>dʱWoW!']6S\&_R|O?BLً]ƪ[:şo}z {E{X\qԳ)&)/tbF㋨UPIui/=C/]ЕW tUf3&Ԙ>Kqc~C< LLLLLLLLLLLLLLLLLLL3h>/sFE˦f.?f5ӏ,ߴkt)E{/{Ξ8]qcT_eurϹ^ky5/s[5cﵨXWP`AY#\?>՜^092{jP}MiYF{;gB󢣮E\O֙F$1?Qh@ᡆH&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&ИRcdҘe;}4S&{t~3M=GOOZKT_yT_zO_6ѕړA=ѫvZzU(/2W+D^@: {,#i:zPEge.W9e\ʭ#}ikM{_*W1uVa'Ξv) KcʍP|0000000000000000000hPMMM|\:ެ4j5{̚^dlKӠX=zYkOo2kbF#ͬ|cFԑCgSW_̈rs~j|_OҲ;cGc=ćXt%П$`p0_uؤ9(V@tח `ʁ>Zړ ׳LJz=L59e,z%hQ>w`Fi]]Z@~"noGⳘ @n?!pz ӠUFP:3Y=&oZKTʧ~|J[Ջ$쯐C0e^~%beSYogM\yutZO׶Nali:D>,>gV}W{H.9N~?Ţ(C4S1iL3ȝ6!wc~<LLLLLLLLLLLLLLLLLLL@SSS477OMg|dfѬvtc.X_rYs2cM}fΕռSޙʃQ.֪g>3sc|Zt^p@rB2ر!˵΢f. K=벾rgC|2t8(oe<'8rbٙņr˹'j]tͿF"tc~#=LLLLLLLLLLLLLLLLLLL@KK˔t™iO~c`O[*kf5^ѐsORU{L;ʋarϚhD=֬ѫ&_rk-߲1Q\'>>}WtC"k' 1~[$<4#zefGT&y䣽Y'VsNTg֚z)+/ygi4͖#tc~=LLLLLLLLLLLLLLLLLLL@wctąiЎJ0WMտM?6-iV&V~رɮ>>=pŪ)@W K}T;~=U,e[9I8@ @J-P`|JW(>QQ>:jKf:rPOk΁?K?[:9e1_եk:xno# ͼ14Aj gFO236fee_㋾As{O=kl謥{rSmgC >{:|XQw FudCgQ>'$r`)={_Y(kˇMq/~ʓyQ kAqK^qiwrNcFt^ٓOv|'w¦ze}%sČNc⼶:;9䇿L'*>9,Ϭk /O %-e X0-Y.eZ 4,DÆEӈ4|D4\/Qk.k&`&`&`&`&`&`&`&`&`#tiGFm =4/^ WF oc`}ZVYH_!.A]!jR/%@F~婯P_B9O]g3WV-flY52"mmKCORQUWҀ#aN ڻ1c&`C@jjۢk~[,ޯ7ͣ׏1G 7}WZ XxiLT<싕7`||MbV[ƈOkh&`&`&`&`&`&PK+䴶O zzi|W2 Q.>drQhI\zPAo3e=|& l?k:W0XםZeE(lҲB\C5ʋ˅*NŦbcpy5e֩WY>J\i]qN5:Dr3KdC:̈YcǗ7揟=4[@~ply@IDATþ`U֮ӣ#aNjįݘ_;00K7w͝]fE'Mc7 6o_&`&`&`&`&`&`&`&`&`&~j^*tά؈a&zƄs|&!zzUFnϏSx*anoC T,[ f]s^e[V4nmG`&`&`&`&`&`&`&`&`&`=Ǟ1"nb~|s]]~dfn3>A׷LLLLLL` =Ss>Ә}=3!f7׫^gY142Xa˟?3FǞXfN|FU訯~hr/cUKKy? j:sZV}U_բ~d%SauHs3| -c___9tR_9TO~)=:g`Og^=Rg4o=mŝ:F rc~#< LL_wޖ6izѼѲɸN_I\LLLLLLLLL`x׿>b]1c֭/8.]v66x}_00000h(o̟53  L2kʹX4ǚzskkPj$Si['M=--s#&FX;\:GZf^v(^'}y&beï_B<&8벚&?t!jdž(6t):ҫ2Gq^e~yɥa/>e b#S}ο8{N۴4[͍ P|00^j]4姷7y &`&`&`&`&`&`&`&`&Ywottt1Ʈn5=y0 k}9?M[LLLLLLǧ3X47\[!^ܶڽgM^~ʅsQ5{֊VWt DO-sOZU}j͌yC3g* 16Jԧ^Es@.Ʌ"p`1\K f QɁN=㇝W̡xs6fp^[%N_)$Uk@,Gea*v{N9/31q˓{e&`&`Dggcb74ͯ,Z65SILLLLLLLLL`$C3g^on^V|>ytfl&[wLLLLLL 83iOLoRUF#-ٗ^}ˬ{^PN%/`#t`W7ʑ5#yXOLiG^ՙ--k(I@]@aϚ\%Y#치Y6f=0ؕU_O˼V( lS}r>k}9 z[Z5S 9}CҘ0gn4-E ?LEUy`J>O?^ߐ4&`&0 t,Σ2n`0YLLLLLLLLLL`` ,Z$n1jמ;Gs3vݕeq ~#G_w/뛙 @hnn3Ә_efͨخ^cV1st~ɇ5WtZVʚ-S蔃AlJ[9}Njn8꫆zCI8@E@ZsyD@br:. !R^W,T_ |E:3{+WZf(+XG}lʧ1VsO_X@~"þ\UyծG ӏ9~vc~-_LLN`ْ}O#74Z6MG.e&`&`&`&`&`&`&`&`&0Lt0vq|M•g_"!qi_LLLLL@jO<%kF Ҡ_r=MKWS9ˮiGkDAP<6|yVY+7>xfSW}OkCȡ<^}IXt`}%sKrxD+犥b^gtҹ=ēK5C)cGj*5z챳GC3:U=U_ȍMX,wמ|j cGÜwc~-_LLF 7?_MeƩ9s7狇g000000000!p=Ƽq~ƈCo\xiz1vѱ; Hg100000)SG~bzfV|==-s3OVc?~Jɧ]Wþ)5,f'Oq̲k=zƌ(Fk|ʑxps!tQ|v=(uaQ^֪Ott:+CX#K=vgO=T޴>O>5ovT?ewT\сY=UEU֮#aNjįݘ_;00>XO4oʯ!oMK_=7000000000-FGgg= wPh&`&`&`&`&` G -634hLUfX{Y/-cI艫4V|YQ<~ rCl̊/:J/ u~|$<곖^9[SѽttZ,tW-%\Pl D.(?>X5C:vrZ+36K˼Ghcwa`WsSKyd/ϮZ:Orٗq䓈":XcB"ítמ&ʣ9++~1w&`&`@SODsOk(k˸-eIk˘ n|C_~՚ {@LLLLL2g L&#iXj/5F/&g};!e=AT_61::+1 e=tMKv݉ 8lէsV2MH_Y0apx ]@kK[?W~|#{RWsWVMx;;S}tˮ\u.|֓_=oPyKC uc yX> a?OX'*Z6|/a&`&`&`&`&`&`&`&`&v zisu00000%$i{Qf?Lo1aƮ^cՓ,[x|?bOS=g>:D9Y+Ī>6D5\T_1Iu>[c>lex D!)ԗ]^3z ɏxFϞ 2{~yĖ9UG9Wr\HK@]`Vf'7wfi$<877YLL t͍YcEAo12Z&L7MLLLLLLLLPmPnOOb&`&`&`&`&`IҘDb1? 5 E&d47+z%30G뤪 6^hl귖?b.}U?6|WrN|f~@yuke]_O9s_~P_bC_@ޏxl b~9x@_Fvo "?fI,Fˠsz)G'{;zDqG+?\c~9s/[F"Hϥ<>93iL77sYLL`쌎Eל͑Wn&n1ժDg0k3q׬g^^Gonji k|%J߭Hsg]]ٽŤ&N6&u:0000000ڠ>TݧLLLLLL`5Otذa'3Xz]F*?K $d'k=6~ldG=kը=ٔ=k&r>g=-+ړWkt ~ƏZ=yU;Ze߄*.gi6R<.Kʿ'rN#sMfAV|hO>]>3sNe|зQSΤT}a׹4&Ϟ3o#c4Xw}qfbȺu[֧sr)kzc&`&:{::zb[˖e>+xbGk람n;)q똴k10000000X[jP D 1gQPN/ԮFdʂ/Bz?kzMlR5vezZɭZx֪Ϭ;ɗ8?DL4g9tN=r^r"Ĕʉ=IgՑ^𔛽|ʙK=<g+^ģWU_u囖1*IsOm"uRQU#aNn̯ @ ,[ :?K4\/M.FUɲ.xq.\m&^}`&`&`&`&`&`&`&`&z z)rV00000=hjj"8 5ΧeEI^b1dr&etNMʅ՚܈fa~h%ǚ9uܥ^gQLeWm~R| .Z N=k5L,y" 'FYc\52jqFGNOyJ)g!X|>zrƄym uv4fþT>ddΞݍ9Zpޙ ΧgFO XFLԲٖѲF:DzՓҕg:we=Q{=Hr0t(X:f%bd' 6q<-^U)6|5GĐra<؈(x:/\ƨf|T4&ϙ~)oS4Dzx.Uyծߔ>Y~?ooӘ `%[;(-oZwi~`w|&>5tϼ{}u @ z}Zm&`&`&`&`&`G -?[yc4A4$.ӄʬ>f5ネ>cl-#_V 3~d {?&yV{D58~iP_T t'3'~ +AtATu`ͥK%`iL^ߴTrPZ̈jR5&ky;Pw,A3ɩwN}NsMˍici`*c]w7䧏]֧srwc~<[L3ޔ|ޜo{۽Cmzb5ﮭg000000005H`6{K +hii9>9+错^bD{zN1~ƦX|/Yog/њ†^9k:/yC46BGsUKkkWΝq;6ΝU>Yt>'H.FN:5t8t`WC+@ z8C/s(VK9׋cbSW,u;:I̻J;Ka_{1]w7GGÜݘ_;00>HG!x4aໃOq/~8gHf o9|Hݗ60000000M`6{ϛ뛀 +:lذ4xc>BO1}jU:[iRM$Ov|٫_=kCc/Kj֪ 7җy&F̃3|e2gv71=G8P ..|2_8KXɥZ+!a(ȟ;3*詁/{ՌN"bxc_ڕ,E ?4:뤢k #GÜݘ_[00^7;:{q9`6;D؍OvM[TlCؑGS:MMLLLLLLL z(&`&`&`&`&`C@wcq ì4xc>xJp9ЫXvI'S?zs)R-WMe4*{W}b^2V=:8/ |'\{-*"@ .OY5Hy!ŠC#0Eϐ_DutbM:M{|y@Uz=|ʇ)}Cz51ii]]J4 H=NEUy^#aNn̯ @ t>Dt>tqD˸-eIr#\]?f^9sVK9f-6qUp~/|1̝;+^CP[[g'u|l400uYOƋ ;ƈ#{?%6|\l\uqŗk_wp|y%U7wU:LLLL`X q韌-qč7O翈}<ޠا+ Z^Y=LLLLLL^NejLJQфZiD],OKpO?|2Q&G6$'=v֪8B_t}FGs.Zt^V}{-*8XyPǏ{5ǣG k.&s΅4T_6[ ,o3tʬ<΋|^gCZTYK'VYL#zߘ(4uRQU#aNn̯ @ ,}ol:ǀrn,/V7%vyk]_\ު}W:wUh=&ZIwW&O\nay׭1r$_VM=xӟT|^5u_8G[{.|~l4jdU9m˿=Rݗmu>^%{cܘѱz#қdz OݳǪ݋#w;lZ[47c.yb-7kr^q=J7460x~W0yѱti|3O+K2?}_}bѢEW^BVֈVv2000AB`u4U~qw/us>Mxdxkj764WǽNh&`&`&`&`&`8Ԙ|4Aé)hhXMjOh /zI˚=v+K/_>6K3&7wZ{1=?zN˼>uGEyї^q_&zE80ҡ=OfAH _у"/"=k/s GA='-5'FRnG/K[kTYA>>{ޘ?qKQX@~PtIEU׮&ӏ91&`&`"lтX@z3i;%ͭf}'꾧ŋ~_,\SdOֵk4ɾύwO5)Uߵ՘ʼn'7;^𲆰/2N?l?s>W=ZcRc)69".xQ1j8_+ߗNƘ1{^c}⠭WW`οcħ/&oA^K-f|AͲ^O_sSiOqvj[+"c P ЃU_~YuߟŚnJk>"C/$!qr&uΡ^_G>L___6)> jiO.^:~0U>V攝!2=kD9܁]ۧuuji$SUTUnO=ӏ91w&`&`#5hV1)}Bz[no>~ j쫳1VFFחM}c{UJ~4WUߵ՘gy,r?C;z&|߸?Ɯ9s裏#F=\max~U6DW6Uzx}سL֪j9s/?Y@~"=3ƾ:XS/|r.JфER"ژ5~/.3{ێ_u8<\ucmR;Ga)7[o_x*7?6[tՖ1b],l?=s{a&`&`Coggm&}SrfvGam4k(A479v100hPA7q>000000@eJi0Q6Ӭd5s=o>AO/2k1ʟyS=U_vbȃlCuTSeיt3MMrؕ?-Cţǯޗ>)k0KҲzQ(GOC><شփn9T_4#A?z^3ĕJ]Gym .L D"Ctמ&G@nز j];1w&`&`=Ht~gc?=5~|;Fke~sWgc~Fİ{Y*zj̟2^i[/W㳢|v}'f=~q?1vyl.\+Žo 67ts/RgO~#3ꫯgy6.9[qcmٺ&1]6ÏĄxk|D\ #*>5Y#: xQkkq钳X}Yi6e_~gӯL1GzY3G~i{o ~3άPjGV+kP_\b6<6PlGq׹(yᔋYG' Z˟h D:W>͂ Qg&S}t|TY:|#Ϭ:ʑ\rC2~EQGh&1tM3sdi0`*]p%pc~=xL҇ԘO}cqСM{~u67;򲚽Uo?ǨQo1/o.˓pH<䓱C>4pԘncYU?Yz[_*NGxG&,Nko~ԏ/,&RM\iibg^`=q$?tf|Gc+χZr/coӾ8nұj{ko{7Wxa&`&`F?#7z{ /k*/|晟\zulqя}3O߭~xftӸ_İmo{w̘1bXkk:WmjQߥvi_K;VynK,I-ϊK.Z\?8sC}}<~ 'yw뮿6ʚ+s_߮9tvEٯT-䧗/7wP.&`&`&`ChP_Yl󉬉{; v1xfji,! Bz!3cǦg5whVS{r~e>K?jXe}֜YT_g>:ΕռSޙėʕƬP}fDy&뵐d KRN` /:b00/)_ʉ9xM,YV4L,ʉ]ggʅ/Cg,R\uTM6NZӾX4\4c#aN1=5sc~ ^oLLV@`%7/ c70͝Kl񙳿XSn8#5t$?vh77є6;m٘oW|#土gO1l;+_ؘ?35c-}+{ҳ@O9)>Ҫ"eSFmgN$~i~Y|n&zw`~`\j,CN=cVӤTܥ1ΝK. DWmю=:v6˹Ky+_ۑ1/.Xcg i')F /MNo_5esgw~u6Lo̿o_#LL`%0x{A ?:/GWOs+׾8ܯVۧE'L_x6&qXYcIrzq6Өx0 D[%"4o<nu>R+jw`w|FV /TvR<1cf=}'p 'Nʾ\q`e„1iҤ㎻bǝw9~"Ay= ]kA|WדYS^]w^00000X6NIoߘMkffӐs==gZ?Œ_@ʚ[^5=шzYW~fMZe=bzIU=cVOv}}|$ﯨ\3E4SųO 8ac OCMI.ytG.@>{gM,6G{>Or6D9g)Ϭ5SW^pwY/'Ξ󫯒Ѳ+gekYO0'7rLLwwGה1MxW+kYY͕޺Zk~]Cޯ7_#S=G_ec>on}{zCc=nT=9%w7رc㮻o]wٳw㸸s<>oEz8Nȵx#/YHʦ"t'4ś{SC~S6]|q+7wԾoǮV&K_<-;Vj as%绕'8y]㭻nߣ¥˯ +L>"5hzwn]ζ>ɉ{om&yM1aq{\ ?+[<|SOtsn/p}AC: {ALUĥ.ƭ1}#o:_ȇOo|^-HK/-~;ߋsR;RƲw5X+/ W*/~NH=~?qKro=#~y͕e񳬉zE?V^)';nFK2?(r׽q%?BywY< ]kA9KҋVxk85 إ\LLLLL HV_5j_O?6FvlkϾOc1E/d=Ъy>~ ?W^ ݃[y_2+oZSbš>1}  Q?.$2G H>FG]3#|-ΚAV:kSd_˜ݍ[I?ܘ_;00XJw3Y6S;]y#!G>NJ:;cON81fN_G٘}wŕW<>{s+i_mǑ:4>DWg?ݶ;ؘOUW]N3_vͯjYTtO~zIWH1}e1pѢEq{>~W.NKV1Tjd?o Uw-~1uWǻv)]s|3͍{00u?{jr˟Ӏ?l@($'cȑq-o~GuY/.|y?bjjGh_>{O?t|#cU{.X2⽧| )3Wuz낷_!}~+`twkJOFK|5{}0~?Y;dg000tzٜєO5}ojZLLLLLLۧLI'0kprf(3ccVqZf_=43QLZڱ'~i:ofQ}6 ;ჰG3ȷubTG6t}s@(&ҳ5:濶_'-=ւ5 82 {Vnjҳ'O.MKىymuvr$K#?wמ|4jו7Í30;5՘?vÍ_:;tĈ s檯|q?7-o}s|[U9o^uvmVؘ_æ8#WT6N91Ĉ#[}jn⦛/M}^Oձ ~UWcW/9<~4ت=?o}|%oc'Tl&`&`2K'xB}M}XpaM =q'Ykf?κ5oW~ٔ_\xqz[qqT0W,o|* 8ط3|Ao~-6U3lJ eUZ+~+`7 Oqy_TXgr)'?VZ69 t鏓/g&`&`&`&`&`"P1|NWM4L13^ѫlG=͊K,֊EuZU-?EtīryakIWZ>P=5>9A $.A]!jR/%@F~婯P:r0ߧMA~ũ>:QkbƆ5Y# ts/᭝"Hϥ<ڵ 4&`&nXr _GVߘGĿ|ҋ/BS8_97֬C8#__[31|ڷB<7d8hmwuk֑{ҥR_x8ѯho5xG̍G|G ,k /c9:Wc 'm5)='O\vOb qmѧSc^4UVK}['Yg'5rOƹYf%X~9?pP1~~G.5fb=6?>{ڌ1'6֙ _<7_ʟ,w~_15V}9<֞=7osbd~=5۽:r?8fԓ7o~RRc~_cMec~GGGE|(GcҤIs/VoYsEʜ~ؕ{<ٕ_8V${_ Kre)7xc绳/;kov'<яݬ%.5Wys* ɞ_WNQrIm_6#RO,7#)7#8[߲\޿_~).: k' ?O.wUoC!!!p{\͵Tக}Х fx⑿k͗NoCjV{1>c rU^'d=[U6|5ǮяsMMعG6ؙB B B`W Mo}[p>9//ދ瓔@@@@@ ֗^TcS>8l9{zmpΏ5yGmG8coY#ډ3?:ڵvLo4겓66l]b6} ɋx?r:BXd!y 4fч=QiE :sG^>CBGvfk2c#sh'^6Z5 Yz~p7 V!!{֫Zoܰhշ^.}ox)_N8aWo;gk'O>)_JYq_g3{[??],۸1կz]}·/'xb9SLO娣,*d5?6occ39\ܘYU+o< gK'ej~<ęXJW_߳8أo>Gsҍ7'|ferمO]@@txܝ˝}o}/~K~ۿZmb 3z̍ܙBxI?WEy^R^ytjqw9>Y.:?q{aw;i_byЃT#;)Y!!!hP)}tzW0Ž;B B B B B t󯩃f{fC̞zf:Ӥ@l [fc :ĶE[_&zZe6\=YXg}_lO `RGAehzG/^uA"':!:Y|sXO?z6rGg}6o>YG1u?EF*LrX]2=`|}N?UߟUcݎ.KN2W/˥|Uyg9cn򗿤;f{c>aevZyvyC2p}O5h1ͬvc8O?, }+r(O'ݳ_g[q/z<˥>ozU+/>&{ݟZZ?,!!+׿WʟzdmW}S~_?Z}{u-[Ɯڶ^Y^쮬ocn^Qwkv?4?Lz1}]5;M փ߼ry^`[Ϩ7''}w0(EK`o7Nァϛ|!!!!!!pyc^1azY;aO4ǚz֙;0ܛüm}/yяXtƏ=v[|3  *<v/?6Cq. ldžxnbfXzk0WX|#?ج_a/؈mmo>ձbWhࡥ14EN!!PٺiU=bg_Ư[rGt}՘?q+27mTu֕'r֘O|\pŝ..u}cS]tWMJ#3,yK_S._yE9iI?n~;6zew3O/97|eb|~wS+>erxa8 l:ae*O+~3:^Kկd7Qv>pE~w1Qou+WSg~.6?(w]E}9vu[]=O>( ;w%B B B`؛ sixh{{|!!!!!;K^P﹪u4A;}m5{wm3{7z̅z)c͞1@@o?zs>֧kf:a}㪪b6Jԧ޼ŋ;L  !"}8\B8ؽӑ ;y>< ?jݛHvvfw0=Y=4[mK_&7\15f~,CR5,=UO?>?3WcofփcI;ke!!^ګyg_rׯWKNW=uYc>7woˆ i۷ɟqy׬YS~+KVỵ{o`^[znUjFm:uҘy+߬{⻷r}m}_s9'Sլwo_[*7,G.;~c[~Q|ktYM+{s =y'?/Nlsdل@@@,Z{Ac缠qǖr![oz.9'f wa[EɘB B B B B B LLL_UTېjӼ=ah}ˬ{+0'mF 5ؽ7G]x&֎Lkwܜsby'^gL~.^$k=]ژ}`4w~O[[}8Ƒ|>0}9 zޭ.5C~{}h'Y;ddtdS׀G/?<6Ҙ?b> %}Ʋʯ1B_bek7ʽ֕}՘ɮwʏأvls˭5M5G=sg?_~ҽD i{srm{sLy_Wv>!#C>^|Ʊw/ĝ{e6o)ӕV\>o}wygLeK$wo[[qmԿgw=ew!!,>&~ljz?oy#s馛9><ʓĮ!s\yky6*oxksˋ^=Z|,\nrᇗ/eٲe")m3r*<Χo?I?~lAWNϺ˩R>)W\/|K_gw=o)FB;7= NΌ]T9cC6ӿL1M QiP^caKmX8}Xdo[EgfuY*Dm}b=ٷ\ytַó,T<rgAbrx1ư ˼7\;:5ú׏fxLob.؛WQ<? @:NYnȋQ"=:ꇤ׽|>~0Wٚѥ1p!!;%[_+7ߩ}>=e5]/?~W׽%eO,oշho*=;>?'R]5SgqauꩧO|ѝ5m,+~ÒkL i'uwtb]5ZHk>XᇕRm|æ2U"cce],K&˵)C B B$@9lzG}xϫY czxzyN?_RyӟYl׵Sʧ>7;7n,ً]/?.70dYn]_yYgv]}~ktnUyJmYL. o|yw0M@@$7_ՇvMzS ,x7C%A@@@@@,"){aul~af4 mXE?fn}\''B,zCNe%xfQk[1vrs:| }n}fnU=?1{Q^C#ΝaƦ,tsy.l\^:-4c|h5a҉=5c}vv|]gW*ڪFGT=z!~ :}aim@ Lx]9ַp?/}~#[ ;/9v6geÆ uMy 7`?R74S?s;נ}ٻmS;m@6|OAy%/*W =t8K_ܿl^re.~zO|lV*qQJcb|s@,&_\x3w4ߨ:Aݏ׏[_rWu˗//\x~yӛ^_[#^Kˋ_K}~g5.){ݫ.)}X˿|겳vξyO/;۽9~?o8~g7!yp[-_r?8>1QUȗ7f?b>߶9vu7 Ϝs{ٿҝ~Xv.w0_I`o4o۶~T>z^`i{T,៘{&[@@@@@7?4Q03Cߊ=kG |m޽n۰6Pl~c=zӆ۵g>?o!ɞg.. cE>(^XHZخO~g%5>~'8urnۆkdt=[OY{ 3^=^i̗U=K`z;W٤#m-GmO9xn|[.w]}ϸO90eu9Fp5?V~{s(movu]Wnrxm8gyfmZwؼysYr1(Ͻwyk ӻw{Kf&{0㺪 :lzf'~Uw>\ݙazke=\|Xh>x x8~cc(Ƹ?<`o";DǬzf6“A sχ ~7zD?m~ȏ~֬]픍\z\o㟙\yƳ'Yk{!ޘϛfM1?r3_^tompD~3ց! B B B B B B B HA}!!!!!%D,YrqܵulÞiz]kkCÞA߱6z鹶ӓ=b3zmTv\YK˰[{UuԳ>9잼N^ϞkA9fu9?!Be=kT.e<^KƓisTsWYƷ{Ag<vY>3⹽SKh󙳪5O>/k֭qdLQ 8MǩS4lOtل@@!7o,ۮv=r%޻-:W3mT_)OrE>ʳ~ǖ@@@@@@@dkbAuB B B B B p+\W:^bcly]v/BcϚ8fkhݱƎgXkU~GOntGqҺɍ+PGF3o'@@ ;l[2˒@Q?Ln.r孷ܶfؼcceb|,kuόl.[˶:NÇ<軖3{yIǕ8n؜}@@@@@@@~ XG,%C B B B B B`Vӵ`ҥW5ulvTuQC{ZX.;bK?440;طuXc3vWuշ=#I.zY˰>:DԓC]{&]~QC}r[,25 1{ַ1ډexYaZuVgl<8"/Y76`#N1\<(ϋ/631uGqꚵ/߾ ?]D3<43)!!0ӓkה[W-[^&N:y2A@@@@@@@@~%X-C B B B B B!Pߖ__8cSQBﲽ1no}l0.1afO6kgMM󌍺==C=ΏA}i t1:l sO܂ ^ЃC{aV%kgXZtM@~_][3Ǻ=b3<ֺC=dfm<3X_UݝS_ZNJ5k'W/1,=>?՝moV@@| L}2uõ O)俋#Pr8@ ,zcc@@@@@&&&.W[Uo̧Sfz.N1؋Lc?k/%V{kb 9л%/z|@ȁh΂\^׆<Νse:l>5Kx1r:Z28:vڭo<qӇ/̓a[zNb}l7c}4^j]Tn2k_=kk|Z!%+fm}|<)sYD%Xt |el!ncS3p^ׯ;Y,>&KpVeM,^t1=C=u|uC7 :cFLb6_9=mꪉQ?$=UO?iȯN_t{@f!!G lcK2}՜?~cq'CQI!!!!!!!!! YMn(8eٲR-[WQG^3 H`bbZ~UgA}ΨhBA6[~6ӏo]vkti=ķ=G~vın?tYmuur޵0wnVs [=59oˁx=#v΄yQ׼=\_uB;ϙ.Apم@@u]s-9ys>oʟg#B B B B B B B B B`ڛ 3N)EA[n+W~r)wcQ\: $P/Ǻ udh+b!L6{GO_|XS{c}fMntm{1w[m}a1/6װܷ~N<@칼d?ڄ것u|PEԳ~K_A=S\>zuIJomJx[:yAYž7Xfr"=^Ҙ?#Q#mknL{|a%MUݳ6o|_-zYx!6>X2+CzfbI\{>NM%<4YB B E~1Es+7凖S&jS~ۦH@@@@@@@@@ݾ|WK>#7/[BU{^o>Y!!!!!]z~^_/iKex?~e?{ѱf^zo?ڙ=gf  ?І|a}\b6<6zrB>G}ύϜsl83ԣkkԡ' k`Gc-fuGXS׽9K1og,zG[LMb5k'3ˋ٫)? Ә?@j@@I7o,ӫoޞ}=zƖ-/[vt[~pcN/C@@@@@@@@Xu-P}wϣṷk'w[5kYk3t.yYS3̓1ky> 3#Ǧ,d΁C\^HĎ oמf. Kꋞu[ߜo]vbgٌ3y{9y͉ݳ3ˆexvnե_tX7)FF2Dr=AO]]׭.7)c#Qw+w[m?N(B B B B B B B B B B`_Uߺl.|!]]rD]/}ߔ7oR֬]_a͛(K{˱}/@@@@@"!011qa:6A1o-5w6a~OX+#͋aoa}g_&=vo[}WU3k?\y *6;sH/L ށ ~aS?ma :#z23#g/xb#>=pگ963y%w7j+VΑ#Lc='B B`6kzڲ}d0&#G#J۽=wd زek7Ѽ{P-#!!!!!!B`1zMuЎJ0Ul> 7ӏ/Ƭ:v>>=pc_5u=Abug}=5ټu63rO̼C)H ܂bEi_1> pfgmusyA=ל!~ XGsӷ֮ͩ-<43iB B 7o~ǖ}KMZ۶~RǖY-[^Yֽ/@@@@@@@@@غu[ռX&Q-wG0쐥#+GqX9GyxY@@@@@@1:jNL0Tșѣپ|ٷvA根Xַ_1C{rCh}ƆĚ =B}Ϡo1цnby' $< ճ5:of`?3WcofփcIǍsyhޘOc> Ua5y:z<4WM`Gǎ/{uzS舷9 .\I=F~ 7vp{&ky#ԧbf}Ywtm-flY5֮]i:##E{"<׽|w_?}!}G0!!!!!!!!!!!!!!!!!!!!0/7-=P:EF!~ezRQnc2{V\Ԣ/:uշC}ķ 6aćwnkyK'g/b,lnu9w#wDzF{b_,66e59!VQ6'g>:Ω]CͬhCefD'^3yE##F{p]zc\4GsuxNc B B B B B B B B B B B B B B B B B B B B@$0>>^.gMupJ4 Qܹ:?f|[&{![ֈ:涾v̏Nv3M̓0[XMlk"ޏ-θ/YH/'/YkGea}Գ7?:A?rϬƑַ.s+Ƈ6cgX?ĺ~ٚ؈a&zZI׬VMd$zǩizai]@@@@@@@@@@@@@@@@@@@jS~4_Sdž:#A1{\o23^g蘍ia?aό̬ѱ'=uٝQɋC }k-cWWsA-wk}|E ppFN/a=p{I|\w t겳X[e9y=9գ>k7gu﬿#m}~ӘںɍFF*$r}3o̿tU4 L2kgT)QsXC1s:3cY:{sO%>Vs#Pc= Nkx3O}{&b BG`eǦq: M;1Qo fq޾_{^rY<0 ͇:V^3Α#CKc='B B B B B B B B B B B B B B B B B B B FtYtx\47[!^}׶:gM}\k7:b}[5}Ҟu͌{C3o\UuB Fɚԛxy' 0'B<8Epp{q!VU#vC}>x~j7 ? D_sa0;\_?r 'u٭>F>e}={Vݚx!G[>?֬\IvdtdS׀G/>ܐ>s266vQ]Udž:lbz4cLcڗC#Nf>5Y֧yљAlֳ> 5r[Xinn=qa/>,F?/ /ρ\syYع{g2^Lx1C,=2%ŎaͰ:=3{.;8~f>S֮[rzsdtOsa'=Caf/8uƢ{2[L<5KrxõsҳB7CЌǟxrY֮N1Ƶ5C t[=v9o v{Wo,5k&W-ܐ>| PczNJ33[X{]v#O^k/{m}fj#Ǭݵ{kcF>zַ%0x<{. cE>(^X0ZخO~g%7qk|y^F[=<'64o]v>O>5y3>b}AO qݶ (>d]zk8Mc B B B B B B B B B B B B B B B B B B B B'Pߖ_jsEX_ ӫ̰=ĬrGgF b'/?tykc6F_t P(E̞EYc;''76~V6 pg:Βل@@@@@@@@@@@@@@@@@@@@1:6A;*d5Mیn}G1zMF-;!m=AoBG}b@o3.vD¦ֆ>maj`B:a "px /gA':ګۚxsƎ:ѹn.KÌgy]zu+"Mch=&B B B B B B B B B B B B B B B B B B B F@m̿u{Qf?Lo1a@GC1M$kk}?M3ǟa}t9YOb e>΀@g}cI=kbmżXq_ 0eS_չwF ~ě={b#2{vmN똓1V_u\(a09ރ7毘\_ߘ(1H!!!!!!!!!!!!!!!!!!!M`1z u؄6w-36/C#1apг/8tì 6^h^#U`ssUwgz6p=stb㡆/6r o ~lO^5Y<6<G#?B\:OXv۷S62J'2szkp}fsu6Vt(];g D,Yrq Mu3M2⾷}mmh3;FO2==6~zGaFZU=~ibkΟz'ݓ׵U+s?>9.'$X |^Ѓgʥ֞ zIx:mjj2 v/h'?gFsVuɇsCeuzͺ;)2 x`3ǡɾ85w?e|tiM@@@@@@@@@@@@@@@@@@@/u;LC9QF_T{џ5q̈9%кc}gϴ֪nxoY[;Kb}mϳe1m9nm|.s -jл8z/u^?qu?MڜG^xnϢ6΁POam}biGÚ8q6sa^ģ7z[Yߺ,quWNO.2J'BGT=׀G/!ن@@@@@@@@@@@@@@@@@@@AD`||]XtM[).^d%/A1:SہM?GڙxzΦ~sɍ8+ǚq̜OvcmzϪ1}E뾧W =do=pu>D3;L,yc.z֎rԷ9OpiBYy>m}莨uWNMf~T]}y4wA4.B B B B B B B B B B B B B B B B B B B beҥ+^S:h2I]ۗ\ek4kL1/M/5=m،%?붾U?+kbmYI.zY˰>:DԓC]{&]~Qcs-2& 1{֗h'eMkeZmy|:Gg bȇ\σ8xtr=/XY^ǩk֮GF@Dfy.iӄ@@@@@@@@@@@@@@@@@@@(o/1:6Au(.Ӣl3Mcceecc {5g>1mgmqkq~9=:WG3' *A5vn\@طKc:u_?@ueFI bۚ#6`댝|>Cf3+!<5ONU ;euXvr,ٟ;˃Ic|*!!!!!!!!!!!!!!!!!!!K`bbzUu|iIeqO:̌4K_og&ZЛ{X_LJil ,[5m5{mc >ر1>O㚸voMΦyб>x.ۜ\xKsq\6_!'#o[U]1_'1æ;LcETہbIWS?9_C'6Sb.kYߚ>ib15[sO}yg;\>g/8@Z=k/O[5H{!c!F_ "\m cæuǗ_յݼ⃴>[3y9ژ~&2'x9D@@@@@@@@@@@@@@@@@@@&&&.\U(o3*ZTmFf֮ #[yZqO6myц=qqcoG]ݻ\wm=<\An;cXl΁; hq.6ǣG [`O tkcr F{ψ3!iy^t5/{&W]:AOY{u}rޘ_)PKGH!!!!!!!!!!!!!!!!!!!!0jcdױQm;}4Sl=:?fOk}r`]y^_YõɍvO>ѓv]vk{;?,E6tމC='YpB]vzos 89}_S=1GXmio~WU31=AL^"2Zz(9M@@@@@@@@@@@@@@@@@@@(2>>~~=ulj=fM/26uWglo2k&&;kifnj[#g3xZF3#, Z}'xgqsN|EЫC B8|Uݷsh +aRGp}m3>~o-Bއi l|ͩ+ĸg|fޘ~4Q"=4#YB B B B B B B B B B B B B B B B B B B B`d 4_\xM{{1lVgF#:ۓl49OOߺo Q|jˁ156ouO =Yg|ܫ~ѧz^sJ… 98lb v ut-`bFVgo}ֈx87{f&v]4#bϚ3ygַ.B1o\\z:cv|su6Vt`@@@@@@@@@@@@@@@@@@@@QքAc~O=ɽ^1kwA/M&^d b_yiO7{k'<NYXǚzYx!6>X2ӄBϽ3f|ĵ]Mn|Ԕ1GFy~84>;L}Јϟ!_׃sf!!!!!!!!!!!!!!!!!!!$tᯯc%hٔl9fc1~ً̚>eL3 (!gy͡ XRAA.|SAa=9̃ !ygb96ÙYp ĵ\5Puo>ga`CZf0!XY>guoo <G8S#8utu<4IB B B B B B B B B B B B B B B B B B B B` [晳xo1mCfƎgtMkcnX/?9_XSټ\u˚:흩o숹X[gX=6E7g s B=$vl8x,0sa`_R_D<}:sVzi뛗<k<1ݷ9Z@?uΌγv3_<9s xynu9јu3=5:2xi#@@@@@@@@@@@@@@@@@@@@`ll\ ZSm gFO236fe㋾As{O=gmؓN[X 15>{A6;zb ݼN0Hsy0Ag[;kteMzp'|3O]vk15 Kks7.;aoUxϫ=?6ى9&7HQ"=~vggj0Wzp8ɳ 8` 4o̧1S 6 kL1>{u*ۛyi6:0_벳k-舷9 .\I=F~ 7vp{&ky#ԧbfAf7輣kk1cCϚeuvNӹ)T55;}a Ә?R= y.K.=P:EF!~ezRQnc2{V\Ԣ/:uշC}ķ 6aćwnkyK'g/b,lnu9w#wDzF{b_,66e59!VQ6'g>:Ω]CͬhCefD'^3yE##F{p]zc\4GsuxNc B B B B B B B B B B B B B B B B B B B B@$0>>^.gMupJ4 Qܹ:?f|[&{![ֈ:涾v̏Nv3M̓0[XMlk"&p_eU]YJ+  ,#Cqqy}uYdAy`}1t0HMdDW$Kuw[s{uϽ]M:]S?9y_>}SeI K3{i֞2ڰ6hgVglˇGi󛗹r@\cC~9g;ļO}{?Tٜ̜Ì9쫍VMd*tM6wN4揃.B B B B B B B B B B B B B B B B B B B njS~4_Qǁ:#A1{\o239431C*~h}֞;Yc/3{{벫QC }k.s.>r\ٚrؚ/p #X n/􎞁 .3bkc?ZM|ڈY#YսCٛaOcy^h F*$RC@@@@@@@@@@@@@@@@@@@L?/|]fL=6|N1k|9fZ[3C?sԣ̽1'{V{1ks ue'=F3O}[a.!zł#0xeL;t !֍ዝ>Qof~}+>gze~ⰗOC_mЙxVǎ{w92exhi̟rB B B B B B B B B B B B B B B B B B B B`J 277wA-oWA1 iWߵoZ; ;9cc͞>~jovMoaO>ta~|57J'ߚŋ9БaL.X8"}8\B8{q!VU#OŇ|X3wo"18G8'q@5?1G=1ǖ{󵾭]5YjǾ-.d, &}HҰ8s5_fcG 8i Ξ_UǵuOLo *#H{n2V۷zҏCu௘Ø+q8hl7F]zXO{Z嘐;aP kPgL|.^$k=]̞1hb7d~5e6Gp#63O,6[]vkfӇm>ڐ:;t f<D??|!}빧X .8PM/CL23fTzilטc}XstviÚ']vmNضA\t`f3[͏u}օu39ֆւkk Xxy rgAr#[bsI|7qͯ/̏- _;ޚ٣Xu gco\Y`G~Όg}21q9LtU T56׏@??F9| 8vrK}b׫=Sgݨ*|c,oNwUnÏᚙc;@ɺ_^+JF ~r·c [+u:ϔa|q$B B B B B B B B B B B B B B BXԦR/Wqdh.GӞBbL36;q:_ 9Æ9kcc>3[`̈8'=ڠC>pό:}ѭ&^KR4BLwgs0 X'O M{oNctb3<lN{a9{u;ao6+__rtȔ>`v5 T&\?|!}Y@@O}_~藽'cB B`^w͔y3fb!!!!!!!!!!!!!!Dc4 ?уy]vs|lmf"]Wr6 qfr4๳GӏsG3ѻ6g.ZXZ8\) }E>(^X0Cخ͏vփZϬ|Ϟ|ə4n]v6Ǟx rf|ilOߴidtAXYUw:|#aC~}Ma&6OiÛM@ x'e[,W_3s!&^9gc?k"!!!!!!!!!!!!!!!G#Pߖ_jsE|WAbz4{kWP豳I|ǎ:ĸ=cG[tƪ_ ?b(Ġ  {Y :c~2ofj!!sy/E  i/X^uUu:ۉ=gro l6:}r{y.δnۧmGkWhV" ")n`C^5vmkA'y<ĵnsF|sl)̏νBo]ڛ_fD>޷tEd@Ә?]$Մ@f&_4o@M_~hޜ!C B B B B B B B B B B B B B @m̿V:x=B30s@GC1M${ꏍW{gf=c֟3Ĝ#a91&ZY[k|mŸXc ~ X ,ظ\;wO;=>#2{h< |ۘ1&3ڽ8:s`fxޘc~}cni"Kc4=!//|\}M@l8gʯ>rKgM$B B B B B B B B B B B B B B B`1?PMmM@6Fbg CϚ?tìZz̓{ϘVό>DΆ3l7v;WuW3 `\c'3^Wũß3{ odp=6ڶ!1kY  8C6>~nVݳweKKL\_/ s=0WsJcک%B B` m SX`J TqGOMu\6B B B B B B B B B B B B B B !Dlrq5kge`7ٞaϠ3z鹶ӓE0gFehY<3{֓2:{gvO\VUC`g5vؠs=\`2Y񼠅gM@Rz?a6F=r2 Yv/h'\{mgF;1A?WGϘUܺ!:ݽgQEli?VMq6:\MVjG1ل@@LK.{86B N8+u\Ϯ^B@@@@@@@@@@@@@@o̿wUA0 QF[F!{ў5~̈1#לn\lٟ[gN`_?fY{]vqsޭoduby[@E@P%cW6bg3;6+I~y m-zFǗ{8#s?z7yrZݷgO42P A>N_ty'@f!!pL:!CgϜ+@@@@@@@@@@@@@@F)^Zu\_?#"HΞ5^ct43=C3SgSГS[G~h+DLzLM=VϘ}Ot5$.m { !g>`|C>@|ǟ3g.{?8֠}i~b(6N[ 1de}؛=ѝQ}w..L~xY;[e!!&O壟КB)B ;|Lyw{ @/sss⯨`4$ܮKp4c;hLڴCTD2}5gu^5ڶ5R+1EO4klG7zbkkr9mF3=z6ɪb0,ʂ1[hkK}<Ǘeke\q8u&q8S39ö^l9#>sc^gl̏{:ݳwM=2]'sIct=T!7u}|O?/N6̈> {Շgޱ'?>$>h#l{&s 4:_~ g֌%\xA 5;z.^ [JKc:M@%6~겋ˌ<0X9YGlיsP.a?A~b@N_؞Zǎ={w]"I{+<4oSI|lV>|+*@@@@@@@@@@@@@@ޘO_1-#WV9}3cc/2L_l/ٷڳW\c.{[dži1M-7kk7y8N\3u2tY,|bteX 5puï!mh71S kAY~іA`-}3C6#%u{ϾKL y)$B 6+4o'{Hc?T!!!!!!!!!!!!!!pb ,վ-[\\~ޘSLþbZU[mZgd8ǖi^GX#]cQǬ-[ji|շq\AmJ{3{"^Eg%[ZXs![8^Xl6^kߌ@mV5YΏZ=qx>8hܕk4Ɂ-{:S7o߻~[7@Ҙ C B *4c!0Ҙ?O&u@@@@@@@@@@@@@@lac5u|z'-fvsQ=9[C'6b,sߜ>i|15+ٛ{:'5P/ l'Wm,W-&_c%qճrشyY㋴`EP-bjsgꬿ˙{ly@_]Ѝ/6Hk;3ꨍwTHYҘ~M |R]@@@@@@@@@@@@@fUa4猊U{f}{ #k[qZqO6mq ;s~֏Z苞1mu5bi޵y2w|bU;šGam.6OG [Y=99{D_c6[#Ԅgk\&kWM:AY[)u}Nޘ_)LPKɤ\Ҙwn'4LO+@@@@@@@@@@@@@@(1:A;m|vzmG`G?3~l?2vbZs8W-ϙ̓vO<7w]vk{͏;b?)Eƚ}b`^,칼d=Ξ !e[gm6A>S9c]6?zuo㛿:qAoaw3)tT롤؄Ҙ z' 4$*e@@@@@@@@@@@@@@0^̜_^]:쭶c"s|MfdrGx1߸3̈]{F_56 ɡ.}3~S'6"ա_a=A0o[-I}[&uO `XȤ=640rrZ||ܳFag7-.4!;ʡ~S g u=>1 o6!!Ck&  % ş!!!!!!!!!!!!!!SHkiWqpX"M41W<ٟM2= l;?{Y3Fzo;̞3[y83z>icxxa~b) A3דzb3xя֍ͪvl(,8Z{.(:708CZ{f0!ژY6g67F5ׇmEhCɉug%]#wD>CmjG]Osk~igM}m!!!!!!!!!!!!!!fgg/wqy= @m&g} MU-tL=9_q9k}؛RYcM[bֶ͇6櫪۵=ٓY|bӹ3Ezgrx㌱I,ysu`G,efG^8ڸ8t9?ubgSg+gvM>KnSz=92exi̟rB B`xKt+my3WR寿W_N~?Umࡥk͖oRٿT~V<F_S|c}gG)J_5\V D!!!!!!!!!!!!!!  Fh~qqfit~llibamq㯯vs{㚟}n|G]4zs_cgα3q̜՗ٸum f|05 E/H ؂bE츐i[16 pf3:k ?sMqc <ڷv֭N6g4柷w߁K}ɏ) \{kipU8^za>Kz|~6%@@L+P}_>ZRF5?.+޸\po?z:9/Ն_ɿ]~R~WRK|6!Fɷ׮~WSyҘ^zeff7_Uuurf(3slq]vsآocbf~m{L Zs_ Ok[ >96{֠m> ݚk0t$,LS|{@Y>\ .5{DB5 'kcׯ.;ao?~̈gO<ϱX܉3˵sz;عHIi"=|:'d׃|>60WɆ|i̟m@桲7՘;?9WW77{6MoSc~Nm?edJc"8!!!!!!!!!!!!!!7%i̧ǾjIðM ǼQ ,fco{G`Č=زw]ݙBO~~yX+Y{lZNp {l̓\cf!z^5xA`#^!6u s89yao~kE/\έ\=Ƀ:Ìwtm.fг&>kd[ݻMǔ࡭ZNǮ qw6G؈?91Jx)%p_?T\?fJKQڈ[+z27f_ٳTCÿc\1AG4GG :B B B B B B B B B B B B B B`enn u^dbW113lCf`976O]v_nAo3m>lN̏=kέJk޹Ʃ& سfڈrb{}_{W96G#sӘ5r%9B B B B B B B B B B B B B B fffJ׻:hWr(@\U3kЃLM69sڳF1=kמS34۫N81fk^m8ӆ5qG]w&YO/'/Y{hڨgo|tvĢ1Y#n%7/s+Ɔ6s0?vyݛ~999ÇasjwWuTZܮ{wix)"B Nvx'TF4[˝9w~rUre9^y=fgA}_3۟uKT%q˹3-q^9^ޥ-+_'K|G̕g l>sRyӟ-ug˷+/~r˚Aw)w֙̔-KZ,3Q?8-+{._d`_ro7ps^'*}yN3uPu^7|xx4?;t׮zX<ߺW{IT1-A|^ۤ':'CJ!!!!!!!!!!!!!!'@m/9+8P}4>0!fCfF<:f}h``C?ocG>}ӌ2hϙ5M /p̬b/,1q,8WY_6G&ڴ+o<\^3s厷>_= }w$'?`Ky5[k ?}zk9{8)k$eqJ)bͷ1_C B B B B B B B B B B B B B B@` ]vAc4 vKA34$k|as썡9QwO_д-qюgu ~!6:|{IJĽo~fsa.!złL|Ͻ3 ?~ AE#ܺΘ1>{ac}+a[/8G~roiuؽg~g#SF){()'B 6!4柘l8j]m]C=y{+ 7W~elOW^O6z!~k9o(ki̿мu_28\Sߨ*cjsj Ib7.o/RkoG >⿷Jl?ҏ-y7Z6٘?8Z1"& }vq]t=Npo͞F]p?CSϚ>e @Ǟ>u51ÞܮOCg ׯ:[sdM~YCG 1b2^\U9q!?< ;rH ɧ=v33mgm cOm걥|okWMڱoe"Y>b t%?*b~|4\͗رQB B B`M1w)O_Jy7%A{gm~c|r/y&/׷?2[俓dc۟um꘾eח+w<&e=V?[C[gy2k?Z*wLD??F/oߌ/l~_KkK?>JxŇq o藭k_og_;z6+5+UyQm.{zv}זZ'/%j8/v2ZC B B B B B B B B B B B B B B=&UG&?ʈ=O'hlm0:{8m,t`vp>hfu9֏N~a?>9^k߳o>fx3i!Y ˰,{/aò]̞1 MƝ̯ڡg`6GpqFlg_z4wÖ5?vϙ!?mNIvdtd3P zЀGj>ِ>SM@Ljcn];޺WhW[/=Tgfm3/0+~Ԗմ/|uX^mWk5Ox_$lmp9;I[˝/%B= />hK>#&=E3٘/ʓ^sМ}^1Wn]+bEAJȯivߜ'|w|2H!!!!!!!!!!!!!!!л.wqhNق-4@36ڗvi?f̡]56?9ȏ pf>e'FQ695ٷkm]Y:^nmuX XxG-cpn ^Ƌ =0&meX52?CX3+|"{kbf{ce'!ҏqe931`Rۿ82M'u؏W5P zؐ_?0Ws'4.B B`z#Mx7ؖauMOx7޿Yʙ|ks޼P3~/?~e,p|홟-?:6N,^5j0G)yWvڭ1=qxsmms^t\"%],#Wu"ypmGlx /By/јg/;<҃rU}coG7 U>zdc~ =^}婗^Vj/{0!!!!!!!!!!!!!!@mʧ9J:A3{+3VpaL36؁zaCsriFAywo~fXm!ch9겋R~$&硓P < a3. L/N>>4؛ߜ0w5D#[9c~b`pN~=3%Gט{N"Euu Tzؐ_?0WɆ|i]@84GWf7J."_.|-›/{ʥq\yޣʃ2c/A9~޶eߵ/ #.w)Q}ۘ3߲|W_Ǭr{e-_ݻT[M>eʿַ+OP|^yge?X~ G4;j{ˆٻz[ǹ|ۺ_.jK--ߚyk/&(V*>;s]&W>$ݤ1$}p);B B B B B B B B B B B B B BF#Pߖ_jsE5:A3=t-0;vOk܁~ftG2Ÿ=cG[tƪ_ ?b(ĠY {Y :c~2ofj!!sy/E  i/X^uUu:ۉ=gro l6:}r{ý=gQg[u.&XЬNQ ")nTܯlycGgK x۟Qn?>_{ 09ORč]r|ǟgbe~dwKc>B B B B B B B B B B B B B B 6ژa4 ͠9weL=ɞcclh,ўzRc0?:Ę' 1e~ ܷZ_~/ym̿÷ʥ4zk;?\=Qw-Q~ltc>5\V>֯r{5[]{Wf\,R9эj6*~힫_延cw=em34ʟsg s@@@@@@@@@@@@@@lv*u؄6bC9h@?y6ވ1VC8ڸe1?g6Wgz[[Wug6 z6ke=Z~h-X,N1}x<`o#sѶюY; gO\9O-zov9Gg~fu={_d^ ah1e@q"1])_7yc{T5{?X~_loL S2E͇ۘ{K+w߳Po鶽oby< ?#)By #=Sv\~ea?ϥs}f0zo_6CczMc>H@@@@@@@@@@@@@@H~-[\\WqmLӻ?3446xF==6~z=GإAh♱س&?ky]vڱ{`g5v"'6k~αgv]kW& 4p).gm=^Kjic.'oN1εgo~fĺS^g̪^i~qnؐ[޳od"@ix!B 6748orm]󸟰s|]]Y-R>rѫ3N=yn+Gi|GGG_MCc>o_Ƿurkc^qo\Y){EÏz'xC|s!!!!!!!!!!!!!!@}cWQ_PN/}6h^:c|gMư[߮ήeBgm֟!!׏Z9mM䜵wiu5Yxu^-/GQyI M]!mL;ͣz<3gԁOam~|hGgGoj^fm벜V9{.2M' o̟ZB BO 7Ncэ_ٳTξ5|˞wlZo7_o:O47 8fffJ׻ƺq.^di`/A1:v̞GN駎8smp6{lZ}vALzYLM6{5vޞ1# vmkI!\ނ ⢭O\D=k̎K@B~|Ϛ3gֽFGLc 8m-Đoco~FwFܹ:2Mxyc4=!@o_|Жr} 7x[_{~f뷹w?ski~-,ߺP׃qߵW~[]k@џcJeRse;i;9_W՘̕ϠCC^t_}}Ζ'=`UP.w35I-r&[G_-v>_;{C}K\K7~d{*?`[>@m˵Pc-nw)VZ(W}mTgkfh̿M%˟6z>-C B B B B B B B B B B B B B B`ennz+8X 6ZQJ)4M 4QKM q[s/nn kW۶Fl-M%0?:DC][yh5jo6yޡnW'&Y׸51e-%>Əko8|:Gg|X)~AY/136G=Bҹ{ti7waxhi0I!!0$YOMٷo_X\*_o?ʯs[%o'oZFo6N~ڰmsK=%rj%íg Ū/_Sʾko}7Xpq4q^&1dB@@@@@@@@@@@@@@IO-0p7_Yǵu?\_),tQЬl3Msƚ3N_ևG~cO6l;LJs>h#~v9s{y?3o]BJ[PSfn\[su`iL|iP].iFX9YGlיsPy#kt`Uuw:v;3}ĔI`Wx0౏}ùv9|ر)y &i̟ZB $p[7?5o̗GuޘO_1M#WV9}3cc/2L_l/ٷڳW\c.{[dži1M-7kk7y8N\3u2tY,|bteX 5puï!mh71S kAY~іA`-}3C6#%u{ϾKL BG TzЀϣGԔ. #1ل@L <3S8RF@@@@@@@@@@@@@/t˖-rToG)a_1ͨ-vФZUO֎slۯ̞u55m.ufm~lW}5~ߚԦqб7? .ۘj~Xj|V%(=i~ioaUΌL1f]yHFᏞز73:E|xc\%jy# t !~:}ai̟m@1Hc1aQ &p)1cO)'0l?yu1^dizjoF|uIMG\7'O_t lJn}o ԋ=Uu}UW8x .@A\i6m^"A#m3cǺhǙ:or[{lCW>t ڨCo>f:jc&2'u؏3P zؐ_?R0W4s.B B18*BغW>_Әb'[@@@@@@@@@@@@@@`vvZ:Q>gT4QGlߞkl=eFGVӟl\lu 9_lՎGqhQX[(kcC`=bq`Ot{7嘿95!iY/:UN+k~tJ]7W S(m' KR@@@@@@@@@@@@@@E6_P+udh+b!όg4ۏذ֦.+7kKk]^oOqѷ&npAX 2>{.cgFuA<>("Y%|GurNX͏^۳毪Ng\}[A_"2]5+,c8  1F!k&5c@@@@@@@@@@@@@M@+333]]:쭶c"s|MfdrGx1߸3̈]{F_56 ɡ.}3~S'6"ա_a=A0o[-I}[&uO `XȤ=640rrZ||ܳFa:?ћ{gk廞^?Es<4OÓH !! 1s?>@餶 5u@0mOgӯL1kv쵫ˮ癙fQC9Pg@'m 1o5g A3דzb3xя֍ͪvl(,8Z{.(:708CZ{f0!ژY6g67F5ׇmEhCɉug%+E6>;B Bi B`Z 1ZL (^\Tuxo1mCf3{!6îcm4n󳦾6ѱ&?qGg]u5y;8#bm>c0?3b3EjU;N8P 9g(][>\=613!@ۺD?k9ڌ1qQLbQ19vfٰ6 klV_M۱oLd鉤؜CJ@n!0nuf[!!!!!!!!!!!!!!I`vvšWߘ7ĚfrG0OTrOX+#̜ և'5=ш=֬ћڴ%km|hcZ]ۓ=5 +6;Sq&ogN N;tlO-LbaC;b,3=b~g/gƽuNƩ;p:[1?ko\pwZ;vΑ)#Lc=!Spz !p)/+!!!!!!!!!!!!!!!6_QuA;*49WMoӏ-Ƭ:j9g7ٷƇZ5vFoK~9v7~ރ2.{&&%iA[P06`?>ݷ1Z@`?yΌ`c}Vg|!v Gκi;pI5<1xi̟B B`xÇ˫>nr~n)?#gjJ!!!!!!!!!!!!!!!!z^Wq]4;hM==̜1w\-=4ش3_1C3m'gbN !5hzGyvl?{< +/9\< lC Bi[ϕ﻽9!i$B B B B B B B B B B B B B B N i̧Ǿjaئaw߫WlcO~[;\o~cq1kC;v9\ `ys_z,\ O>l\sKr9&.q3g2q<'6o˹5!?yc0c?Wyc_?zgl㼽{OvdtOd2P zЀGO6OcT=!SIo[(|@xf˳?6T!!!!!!!!!!!!!!Bk=_`"#n@4ڣ6Wuׯl2{[|3\.?6mAo3ƭ..~ gǞ5l~{ 5zjTN[D_Y3cgmnuz1=GG+¢'s !rZ_\&t76*[;ƤvN5:̊g|ÌhϚslycvΑ)#=~jXÆ;}a6Oi]@>~y kZqM4!!p"l?W~[?"!!!!!!!!!!!!!!!-.+븶~f=ǻ U1cڻ&=4oS3=kDssNv95M줍a6/Ն3m8\~huar^輌6zGo;hG,[?Qen\>ؐx1{S:|lNc=jcU Wq{fC7ۇ̌xN3 t<İZ_g~f̞&|fWG~59WWZcA~wlulk~lEu P8KYFAehzG@g}P1 yбo k&ca>kmTάxY{G1}/Y\L#@ix!B B@byӜ/!'MOlyϝ;B B B B B B B B B B B B B B Bd!0|c]uИo0ˬiSFu?Fc=]kp{cgzԝ7qġ![`{|Q7b5>c{IJĽo~fok3%$XXq&Ͻ3i3ĺ1~w00|Ӈ<]]v`яoufd@IDAT[/Ois:ر{:G-SPRN@@}l\}M7U@N`YrM7:$8 277wAȮ:cnf oZ; ;9cc͞>~jovMoaO>ta~|57J'ߚŋ9Б{`M iiF# ],nNR) x6 8,b`$`B 6[TH˶,[9^nwX}>ߧH}{su>׶\9yb4p`BUG.%qf!Qk3Dr`GSO}}97v2|o9v.[yp]>Eux ?$7QFoøa7֝:C7w@"| O.>\K>V} )r@"I 7Zw^/9|$@"D @"D @"D @"|2gΜyt<7 c1OlC>*#Hkwn,ܝ["^9ss _l61;#3q_{"^8}}[Lr#w1GrF0߅yGX׳5cY>\^sm㸞ٍrCz⥃ n''Ina6=oXp`uDn"/_?s|~S'pj'Siή;ɛM717}u}L!kHGw缛;o֭>PrXu87g~>򮷎+oſT1@"D @"D @"D @"p8})883b8c۝5Po g9:?Lnvǭ\3s}j9Yf=P!Ossm_:[Yn}a/{F,;OCy<.H<;|w`Bk}ce}|C8+|w{bs*sݼgcr._9N[rb֩|fͫb Շz5@"D @"D @"D @"D @"܅P2?3ֵfa)s 09gL>ѓ!=xl0lq91h|tPg.`Zt98veXtn^c`HGln7M \͏G?䲦9=L;bgkws#[Xj.)9YNco|4?~ Vk>7K"D @"D @"D @"D @"D + 0Ѽybzv1{}az';؏fu;aa35}n~c;zϵ#Xg[|X/8nq6#? sw3bu rc^k۳~+C8~n}ԳOlکiq\}ǟ|,jzb}X\^59Iu~jn~76K["D @"D @"D @"D @"D  ߖ'KX 3C̬2˹csoyft8!xC6vcEgqC#BqZ9筩.{Ag.β׷yo[(Jy!LJɃ,6l\;yk!fa_O6bXs=tƎ㎿/lѷ6iۇxB;y IElzs:ͅ޾>|G>zy_W$'M&@"D @"D @"D @"D @"dc0߇73,4afY;v:w&Yk<>ƏXg;,Cxrk}l5G.; 1'^9gbż8q6 _ rٰy#.`uѻȧFϝ\'K"D @"D @"D @"D @"D 8]^!y|Q=͇3sġnv}<V!B[?؝Vώ1DϾ>{އz `^4̱cu>_:N16SG<6bw/ ?>!맞]FeQbg~G>ǎ1q[/^7($w٨6k|hhpj{z@"D @"D @"D @"D @"D 8D'G3c03.#7߳ wsژIfڹg~?3#0Ae*ŝ4,翵O=YߡZuƏZa}{ T4qiG?Ǔ֙s Z]wAg㚗1s9sms|.'])>|$~,q/~s+s1nz{E_mPOl}bGÙ8ћ.ћGˮ8.om._9xH$X{Qm>?:~a D @"D @"D @"D @"D @!O^N:xcX: 9%5F`꼰|2vȼό2:9o.3wpw;zXs6l7ơWm1ot7cMWBx sGfܭ'Ώȝzv% #XxlE5k.؃#ɡy^!+>ɍc=|Q''s3a:th^=נMXE @"D @"D @"D @"D @"{r'X :$Vq8w5Ǚ;K~t |ͅMl)ƣsmb#?c]w|xS6dX-K';M"D @"D @"D @"D @"D 8 o_o7?3 c1?fQewwgq211Æ;CSsv858\@g#Nf'w*s#>FoGp٣ cZ*h׼5ÙE \3zax>uݱϏ ~:{5~7a,}`s/0%%4Z~jG @"D @"D @"D @"D @"K̙3ߘ\1##ޙ]V9cq~Wc3_bKsW<c-ĺ޻u/y46BG v<{]zX;oBvl,-t؎-6~#G0rf18:7vڭoYP@}qy!9X/F}c37}p]xjܒC`Ai0|@"D @"D @"D @"D @"D '1wz}=9zX|b]3b|ֱ#'_+sgxp\8D՜Īx&n^[ޔ9:g"\ι:_6};1%hh?r|ネ/#\5\1߬'1æ/[H󛉱Gr;:Eb_|ùE]_KGk0Վ@"D @"D @"D @"D @"D w GGϏogybRz;'=Lku?DsP>!沖~& _s+3bϱtԷş~9v#x dsqu92b`ER/bk6u?_>w|CW7t2Co=v!c+M=4ɉ ~OķD @"D @"D @"D @"D @"p78sƺr/9bDa;p<㸞ёgg?8m)ڹs0c}}9҇gٯ~9b2s>pXpw8}?=:`>59wjsY_w8;ho 1\~Q׼M.o^!XsmA ui0~Z@"D @"D @"D @"D @"D 'ltXWb53W@;3٣Cc8l4;pgw%9/;_icQA=y?zkzv}#b^s}Oz}RqyLC6e~<rǟXwmGB:~("9[%|G}P㶦zbGXo~ժ31 .\hlsfbXAϝdޙML,vΈ3ӏYG{3xZF#~j|'qfq'>"ա#$!h~>Po4-}܏?L߯ `[;}=w|cZ jbsj?";zso̿r$XH'K"D @"D @"D @"D @"D 8 >= c13X#fIvv'8yqC>bN}swzl > 6?k3\w* va u'ut3`bGC}7wv&< #ŝ3=fַ.Bu0+Oݸ >rQ#3ZֹzmXD @"D @"D @"D @"D @"W3g y(Yeg7çc?6qofg6xf918n73ܭ 䚇W:ִv{uLSs>br _fy_O`Cgoܶ9s N=:x֟x =. lu8Nv>:DkÇ;™ַ_.kP΃]s}t;5yX\tu{\C`uD @"D @"D @"D @"D @N2SN-O~b^<{g/FSU2;vl>CjGߜOyi=Ls>L}vξq3u7S<sqqgYM}ݶm |fĎ g{1s<7'z>;g//L,bfNrѯ9;l8 _=.ۺН|p)$|OD @"D @"D @"D @"D @"p 9ssc]yc~=c&rK}t;̌?ŽX_y1ܭFZ/=;#F նL~}|%Sqܝ&};5m] X重&磟 ?r,; =b}L,6> m}:,gL=Kn܅O=9a 柰R;@"D @"D @"D @"D @"D8zX2?|s;62oyiy;oM~رin^s3M k}iFo K}?8m~,9؉~}b%4J @fwǃ,O9s>FG]#؟xz!~,XGϾ;`;.]C@` D @"D @"D @"D @"D @NZN>ovb@hQf8g;z|9ncssg㼶Cَ;9Gԙ}us!oPc}o :[,~G1 R=w3f`<㸞#p*6΀܏.qݸq\TkNcGW=wir&l֛7މyps~D`7Foøa7֝:C7w@"D @"D @"D @"D @"D k L1|NM ;4̬10oWǬǙfi;yWBO}~=:o9>zsgg9mA Z?wl! 9|gñ#>!} ;zm7~}h>ܭo腋ݞ{P:9?;us8󍞭Ŏ =gsF8;.]C&E`".{7|U?Z| 柨^3@"D @"D @"D @"D @"DXg>:vkc10C"# :<c9d\uq7,fC 6[Yir7ϵgccxqYOs<ޭ>gtmPYџ3v|opcONímTϺ{>~Տ?A]"D @"D @"D @"D @"D H˩S?3 c1pʬ4ܙQv}V?v|ga!{!gΈ:v̏Nf^82BحKu3yGjӿ,r'y| |4ч;Qxvu6(s}B-?g|`vu㸞1w\BO}<[_k-ߑ1r((y CY쏻q8[ӏFNfW=2n}߇?|pׯI j0$|z@"D @"D @"D @"D @"D 'o|tX ; 2gwT)vPs81:zcYcVwswO%>q6ggcg>q1S?D6H(pbCpXwGXpbĘ50b3:8`1ߊ㸭?\'w5FlCg}aX.\<8?5>JD @"D @"D @"D @"D @"Jp9{czq,f`gnx@ulΙ8CS339mot,Sg̎wꡳ,7TQr>-> i\A,ݏ#݇ qV㿟ǙGwɁN=B> ƣǟolq:w_5&Gf3F{q4}XwλL)@"D @"D @"D @"D @"D%p̙GGύX3[@*ʈ3ڝ[> w91WaNg\^sm㸞ٍrCz⥃ n''Ina6=oXp`uD @"D @"D @"D @"D @C˩Sύuu,ƙ_fevè31pC#Nf9q59;קyљElֳ> 5r[X47xFON,̳qkln|#xvQ9Cw۟k}!0sع;M:cQyُ-&>v#iyX666.ts6?߇f;ē˚0"t1ijzܱsGkpGS߷ώo}c_xp{Q._,:r7._X5_/_r$l-Qm~vG`Տ?} {|E @"D @"D @"D @"D @"` :͓'fggߊqwy|m\79;6Pg'8vힽw\;b{g5qgsy:0w9#_P}`'1&=[83>zN=ĦzǢ&>~'7k{%\y/?~؏/?~7Nr:adZ͠= D @"D @"D @"D @"D @}/c8ƺ23r;Ĝccw>sG1,!宍}љkP㣐~Vo9yk ^Й,|e^b3"d|ak c=ժccwc8wt~wd~ g߃zS<ޭe?}}#" v{џ}οt}YڻX~~bo_XͿ7+xW$$M5K"D @"D @"D @"D @"D 3g0Xbl2™aFw~c&g[waCzɃXc?1g BG}bB?֟3vw}vD}aӏwN>5Lܩ0CXM,bӛƇѳ|gG;Nx͏Pu67yۚwxsxƎ}:yn.aGs8? ^~C^^|w|%_~#~.io^>7˵kזGg}nroMomTA5 ;@"D @"D @"D @"D @"[`>|8*,懙-f!](fޙdm?bgyf1'gA!4Gw,t7Ɯ{lw>\'$~%fedS_ywG"~ě=wb#2wv>sN똓1V_u\Qe`vs|1_"o߱|C?}[Ǿq_}?~xG?񇗯ѽ>\&rG @"D @"D @"D @"D @"{`UWbhYy|Q=ҍm͇3sġnv}<V!g>LyZCsP=z9ݷq?XXGA6>`Y1މ_<`:Z}|XԳ+؈s,jX^O=9?vu7pe?+q[~Gn_˟? onC?_߿ yv=w* 8w4Te#g9y.d绠3|,ώطosXs>sɇݾzoߵ|?6/߻|g|=忶6ǟ3߽|~j`G;e|Nͫh~c[}pP>wv@"D @"D @"D @"D @"D w-?;֋c1;@9QsgAq\_Tgџ3q9%v3z̴nx֟9[7Kb}g%'BoN}?퉅o/j{hJ:˸qJG߭^x{W} S8[Xp&zf.쾋xQo};˛zۥW_|q-߲Y~|6ofի/a~O6~GgՏ?ý=]#D @"D @"D @"D @"D =D˩SOzz_zff$ΙŬ1:SM?vmy'etƩs\詩g#ϬA"'3֜c';?=ۍ5qU;bSm:CsV?0䡞D ~M9q{P?`t>99 9de[=ѽy/\;:W~?l,?)~5u$'cn&w=סGFy4xm-@"D @"D @"D @"D @"g>9Xb!\0/˙f|77w}e桙ff}8{ tC@%7㚗&u8aqkrF8 χ;vQpt6]Ag֠>9&ԗu⥃G>˗/o~[2OsC?5W|-՟;O)dX?->L\"D @"D @"D @"D @"D 3g~n,~c>sŌ3KxgvYv挙?fYd9;_X|ehj]L7zֱ>EX93M/ع[35wmc"X=[>[l FatЩc8 3puƩ#n!#N/e٧G_XOb}lON /?Q[Cڵk7}o[( ߵj]_-@"D @"D @"D @"D @"D ]'ǣ><1a9csŌsuuaǗ^G8#=;"QǮ/g|5g4<qMn}v߁ /眫ecs+_򘋆fX g8>|92=qgXe[z|~8lyr4{4詁/w뺣S!ߘW:<[Ե__~o-?|j֏`@"D @"D @"D @"D @"D!p4xcEfTbI?x|Qǜ΅8@C<}>s]"A#}ѳXǾMuyǗ_ݼ>[;yyXc0CSM\Y_w?x[W~_m@"D @"D @"D @"D @"D  3g<1XWŠsΨQup6g~38gt;3G~vq<G/EX_yzz_AncmmLF9#<?>NߏGƻyͅm\D?;#vzB3׳_t5/w{.W'q~[1P8_X~G?#ˋ/zC˯uvGj^K&rG @"D @"D @"D @"D @"{l<8k|gvfG<3q؜iv?}8ܱ+7K>cs^}6ͳǢ3zr~쬷Fż\~>'/`>ly?ڄquPEsK_mMؗ^gq'Ug^c۫A]x׳؏#.[bݿw,?|-mrP ZxD @"D @"D @"D @"D @)NZN>xc]j=,26\;ɜ3̙Xgͧ;:lf浞fGM/,fs?O㸍8{O|EЫCG";IB|١iZ`cX__́?ַwr!z0XǴ6>6N/~Dv 19#0y;ߘ!?}\?o-[zWj*/`@"D @"D @"D @"D @"D!p4xc0;:;aٙdg|2~Gk:#V871M}ggjO~p?]Pms~>mε񺍿IxB`9: b\wbxp\G7L.v?8Ԛܭ1?}sggYzjޭ@=B?\9ӓol}+Z/^ԍ[ x?=K/}{ayϿ?K#/.j=2{$)@IDAT>pj{_'U'@"D @"D @"D @"D @"DU$p̙Ggb0gVٙf3,q\ٙM&Yd,b?yL7wk'<U95ݞe_3$}zd\z]x!lԝeg0btq>RN5[]>qȥKrŝGr]~׼{GZ\G;h^GC >ց||= D @"D @"D @"D @"D @Jٳg??ֵG0$̰);s+;׌s,2g73; X];P5#ICzq6ɥ\b6<6zrB>G}8͙]p ij<3Puo>wa`CYv{!X]>gz7pY7sECܩI̛z⥃zbo0 Տ@"D @"D @"D @"D @"D wSN-O~bt^<{g/FSU2;vl>CjGߜOyi=Ls>L}vξq3u7S<sqqgYM}ݶm |fĎ g{1s<7'z>;g//L,bfNrѯ9;l8 _=.ۺН|p)Ϳg_/Go3grr`uD @"D @"D @"D @"D @N:3g<>z|nc1oog,3_nþ3Tۙn癙VGر7/9ÿXZ/=;#F նLs,!ٝC4CܩoO N?l7P?0Ʌ?X `Ysg>ggo^v<0.\G/8*';Wo3/Ɯבֱv>>3Ћoh :ynqrX9'XBSdanAq!~~nt8;Y[Gُ9>B|u[sNm =<k{/-O>l{w-y7l'l0|@"D @"D @"D @"D @"D 'SӧOűv19;zfٱ;wCͮh:o녋Fo0uC#D @"D @"D @"D @"D x8}rԩ'ƃ녱#fVr(;@>T;g0̐C*c9#ډ3?:vzf6a{uʜ a.>E|9fvNȝq>vt>FG=w_;G.ՙ8ã> 񡾃Yw*thg&;6b؉>`CsK ?=/@"D @"D @"D @"D @"!1|X3b9dvD; б<2yhc֟?9N,;wgqQɋC k-cW7syE-n>֢ ^)q#Y0􎞅 `W9 uq߯o{.;a=koTlo>{#s}}3{-zoK ?.@"D @"D @"D @"D @"#ߘxsc10˜ݙ'vAuϙ?FL 3#7q%X0/yяq\8t8CM8;\1x׮g''bwGB;2ǺM?t&/1Qo vqq>V|lmYo>yga,6bg::w~/={{/~>rc{j=3pmqYu缻=N.@"D @"D @"D @"D @"D wٳΟű=fyޚ;XΙ8CS339mot,Sg̎wꡳ,7TQr>-> i\A,ݏ#݇ qV㿟ǙGwɁN=B> ƣǟolq:w_vO>.?=٨6fU?Z| D @"D @"D @"D @"D @RgΜytX/<128#ݹepwn~sx$^qV|΃_t?:j=fS3N>L<1w'ⵍP7$N0}pN~]}$g;s]` w~گOq=[c8Ƒ|~0{=w6x!\~>`/^:8rKrra7=mj=2{>?k>\-@"D @"D @"D @"D @"܍N>:usc]ˡq旙!ff*3 ;k1Ӈ3wNz~sMA^t`gQBM'>}>6}go g!T|< y 8v{1>LxށC, =2%Ŏ̲c:퉝;z5`Cew?c3_|!$X:aF^磁#_?]"D @"D @"D @"D @"D H` /c83c]yav 2g ޜs4=9bгdž3ǭ!ٙGA ޭoNfA<΁c\6qEG e? Fy}c8e_>|1~4O.kôб#xyq1;:N}ߪ?;:y^OK˧}ڛ>sb(՛sqޚ:t, ߡ~}kb b~|hؚ#p<+^/'O-˝?'//ѽ>hW~"D @"D @"D @"D @"D {G|8*,懙-f!](fޙdm?bgyf1'gA!4Gw,t7Ɯ{lw>\'$~%fedS_ywG"~ě=wb#2wv>sN똓1V_u\Qe`vs|1_"!?C?~ѻ~gwߌwk~|_3@"D @"D @"D @"D @"D wgGWr} _GTlAbc\2;q踛]Cl6vճG 3ѳz^{78#s,zX󗅎kM?lC/2㏏3@t~gW 6<Gs✸-/]y}}e~re-˻|Wǯ_e|9}?Ýo|uNk(@"D @"D @"D @"D @"D0':~Q#꙱^˙ifن;cm$3s3dgsVw|my^Xڇja}vP: ~\G-ޏz>v=w* 8w4Te#g9y.d绠3|,ώطosXs>sɇݾzo)9 `G;0dWƶ0r|t D @"D @"D @"D @"D @Z7?6vbvrfΌ ?gsKf;9Ιic5ܶ?s>oҗ8?Ʊ;oqKN9ޜ99~> ^Ԯ єzu>?q?9[G=6@p> #L\}ͣew7K?<$]r_=٨6fU?Z@v@"D @"D @"D @"D @"D ӧO/Nz|<~q,qEfYbYc0u^s>;zdމgFq7zj܈y;ENf9NOw~zkn۫6vĘm7:D_1+!<چٹ#3@QGY=kĒz~O<65wpAёP\:pۻEn;p ˦lXξ0F;,+l8 |׻֚̃ם\%?:kC>¦6ѹǶ_|};>G?rX\t)~zr_ߥ&@"Dx.\|g|񂋊@"D @"D @"D @"Dߖߚofb~cc).33Cc㌍eecc w5g>1qkq}~;:WG͞O TF|߆g=.3G aLǾ?Tr8ykR3&g|Xc' Ggt` jPoN}YX.^:8aJ^K뇽Ňi0*///O21Çrg}r|r_ 9?sˋ6X.O= DU!?|>rO~g9k[ \xqyg|ׯp?3۾~;r+?[O{}W^[>SVwsy_c>5O}𧖯گYoԂ@"D @"D @"D @"D3gύogTvf.Μ1C8 g竱/%]UW $tHH-ϊ.E A!]&jUzBK/wL ߙ;wn~\=՞D:9j`^}ԟXb'4>.!.1 ~%{^>쪣>9"\Ks'6osC`ԕN]"d#/C]UC{fAP<ͩX6r?A}?>+:yЗ=5`Q+t_Cg5۫sc 7yUѿ tI|̵jַ־ːy'Oj#^Fh@ mw!C̰XnsĦm?cUVa_=qq-vĪRgrESN>lW\ܷUmyZwWq>L{b攓N<5.2sό]v٩[1F#`0F#`0F#`0F#`چڵ)t|N1?YZikFj={;[ƍ9?k^nDs/38%XQf6QY+6+1@BnE׊SږZb1c ܯ[=+1mx1F#`0F#`0F#`0F#nteTti( YO(:"ر&wQ _^==R(y1NyQOuk6꯸d*|r]3H?1?x1beSӏk 71l[K̟c]w-"&כce&2ySO,3VU$7ǘG8t/n{+Ft,rbs/\9cb3ǟjifK/*Vf_BԾ[bV61-OUc F#`0F#`0F#`0F#0{ {Ikl ʉ!)Bi8R]1I㗨꨿슥_7iun!إ6ǮI-t#ꏮ3_+=U>/lp^>6'\ \bBR ЉU("F栟ΓԲh.V첑>uK{U_rkV'a1z0KBQþzrB~zÚM̯1!C/>~z|kΕW~'ʸg1>_ (L=Z*zB̹uBo)1Q1{boƤO>.ΛjvNO[D矏Q<^{-xzkyw9DrmM2J[4y̘u}oĤ?.~'-PtOd6.޹Lxy]i})cz*Ʀs-HGݱCĸgI~s[/zVYNJ]1_g裏[nG.L ^8= Iuqd z/pZk7x5Ë+blцqOsx㍪V[mp ⭷ގg|D,hmgϹ:õ-RpnMXuU3| {|b60F#`0F#`0F#`0F|ԩSt=rhƥKjCEKg*]{ŏP=)Fͦ嫮>{"MsjbPO8$G *;\>bEˆ.q\װ\ZyK,:$0 F/W/^7S="3n"+v 9ڣ#z ?fД)Z:Q_#S^7m/G5_dm)1~;:&9^qy~_'Vbjv9=Y-!׿~z4&s}~/Xhi[榛hmP+i?_~ELyv{b7.bJ$ϫktspiFjnV@KQzg"IWޏCg +Zr-3O矿ʵҊȑ# {Ӈxe̱>: q!reNmpqSOW_}E,B2c~ 1y.]zZO>{'^2Fʞ{'|Bt6}֙9?mgϞk/>zb] 4=p}O9RvD/7?]sUAB/ M(Fw-^y"vc>0qig[@Υ-˦[O]ֿߒy_wLv-5J={ /TD٧\(}?E]S%8ظDVA@,)NSCqՃц\Z_E7Es̡>h/[25TOsbe#>*QIz q0r Ҷ*q_5SMQNWtDYUؘ=+N\ObbL_/^11!X:iTLU7ˣ=n߯O:,5|0G?P9i0|>gdv٧ %=kJW_79 hP3O"][KoK-ٷ_L<%MJYӓ%޵S0NƔ_.=1sS VP#T^~Qb99gWXUaÎSw5g |$dݛ~sLzUWOz"O81V[u@,Ӟmʔ)jħ 'pI{_zB{u=Yk_/UUm--=4_ck={5V)KjU}]}>ߌO7H˕W]mIaŔB|,s;k="]͝~#`0F#`0F#`0F#`j!ХK=ӉMWY ?F>1]pKjofL>\dt.rT?%y|Ouj˜~zIg~RaGrS؉%MmJΒ8(nk\ȗ`&^ ax\r']7e B՟sJzϕY{&}㮛 :fH܅t_1釉55m-1wǗ]ZV[`b=(_qeebvn -~wN~=Hݗ\֒sb8"&I ׺ĔD`yÏ}TLHO<$=-K-Uģ3K[{M[_L|ۇ>lW^뭗`JN V`0 lz\3}sT- H}?ŗ/(o{ W#0!b>7ۺ|r9W^}.c=ztlګ~vedӍc\`5 g|Xyi[|Haw)_x)cn戝v!oix6}.w+BaoO\SuԱF^f8 kQ<EF~s)#'==VHngҿ^=C*'`qЁGEz]~eV_ O܈RLIt_UV۷ocEĐg.2&6|sP{D{\{wb0F#`0F#`0F#`0/ݺu=vh5"dSVxŵlʝ.b;&D}JVŨlİGϪW{H!ECqŮ+ JOrzk#G_[qƛ܏>tp/?y̘xkc{j='43I駗mM,|H|VKω\~eނ{ Z!Cb/|W @>2}`if첕؆*̦zf \}u"?8/OCȤ$޷=,a½c`.jE^sK/Ή1' j.~1G""o9> ݗ^:oR=Lq_Rˮ?xo㭷ގ?$nqpdkɉ'åƵ16[žbŝ5Zh?bĈXw bرeC;pž38>t_,rR'G]v|؟'q?E-O/D۸'7'N|Q{]l2791ߚ[O] ?RJow㢋ΓXۣGUlӖݧO[JgCq[nm|e|CmȌ;ȣk}+H8;ҷ/}3<5'nrmSއH)fG,> >D`{G*tcB=bfw0F#`0F#`0F#`0FAJV&48h̊_hWm;f ZcC8tS;NͼcCg6V%DuGs_uZjh>мS3Y(€ҁTSCLJ(l]90kQ^_Q-jp˟BW vTK*]{rU~*lWؼ?vD}UiQ<7/玴?cQӞ:7}?U~-Vrb=ۛBΉ|~Yo%X"~הѰyҽ6[%Nw877ŖeF9y{tg[ '68`ߪb˯*m{fNžuwq-JuםG<[lQڴ6>{1ߟ;yǞ(믿^ܐ>=s1+߻Z2c0F#`0F#`0F#`0F`B =n4{)py=TtVm7v)֟L%:k +~>=s_^k]DJqŮMԖؼ9Qd*gu_۟6  !uiu' pV0o&wK.`Y聨?{QG1k:)Ϝĩ>D3gN?U:]u`>bt$)! 41=uV9|n |tdNݺE+OC.ŇνzR^[k%1? _yCE'䑣bx}L31,1z3}5SbŘk1_|aӍ1ck]C?.o},ʹ_191%8ҩd寭Vk\::}3C)\xnv>'iחq\yU/yt Ϟ=_XoT# /Ɛa_|)7 S෿=.:V-!7Ёpm+.-ڢ׃_-DhMڧ?ԣB>|~8?Ӷ{=9Nۗ{)$ߞ筧nD=ԫvmn5^{[?c}*72oDkZZ&W}*Ms^u՟N{ZicaZycȑyU=x#`0F#`0F#`0F#`J#@;φ@IDATtTupM,|ctlߚ\'pa媿⒫@cWK?q꯺9XU.&zCpON&%JqH  &5rC|mmlpVͧ޲i"Q Ig:q!:(>ܲ)6)#G'Z:H{Zbg76p}v)>bꡗ[y:b!yVuXp=ѣ5󵄘3MxK7hxMu/Td:b;B'w_79-%w5;8#O4)X|rRr`V7d5W6Z߭ۯViͷƉ'$" sroqء?ж$׋ߌjToBԮ=K/[lJƉ'6߸KiCŒK,M)83J 7 ^_'4dD̟Y[WsψD^=ԫvmM'|:va|K$ck vPy/ZwaJ駝aM{xJw[#f{W9#`0F#`0F#`0F#`#ЩS'tkB 낚*9+vwV|'e==%&͞_>VjH4kǞ}ش-DِD fPl3 䨏|,j Q- & egCVo.> bS:{D9:@ \{%`*jO+yegO=!Z LWQ<, '}JTWSx krXSbE=VӇXObDOS%s眓~&O7.h SS"u[lMy"f"v=]=b-PZB̯w>77NjN{}F%`jz|!T#y;Xt9\`׿_lfB‡\.&'>+YSiU?x__L=ν2DϞs~I{ůeM^}hom]ۻ&SmV;Лq5W: WfmRy9k",\뭫AgD"oUvb>3_xƸodoo_\f)s~uf7Y,ѣGm]nOLR{|jtp0F#`0F#`0F#`0F+@|NūEk <^6f:M"xre/=O!F}%]5'V= 'b5X!Nv,W3b88~DpH\?v:UG~^5+v_3Σ=部+EVD5<Ǧ3JW/V|ѩtO#\7涥C!PܑFKT_z.G571?5Q.4={ƒW_SI%z6~zY$S1sccSXGij 1ޙWߍ>(̐gcm;ڋOzH /}zj)< q@4Gr ~}T{em,\멫9#G]; 1_sM<9^{g7zi=}5iA^TÊ(?<111(n\bjn}aO??)\D_Vo%><8=aUdޭއZlƿb =Zkb[Q&rYA%.`̱1׾V̈?4 Z:GO ͹En -=V\1?RKg.˥yi؅Ũ{.G{q1k)ǛP~%tF]ʧrb^ž !G>>(,Hle +Og/~w[Js˱[5:"AM&C9~O=w>6 QlI-$ aU_rW1V.Q#ǮpCMꩣ UF٫>6}AqԂ*j+x$yeͅ^!҉ԟ8D}WC׋ 9'+>rXɡ1 1*,7° S"x_$UL̯n'C{ #FġCc/>xJׅ{'ןɴ[>obNݺŔD#ﺫϹJ邏#;>2"}=[x!Lx 'Ĕ1cʘ~i?䧃gK郔suݻۣ,zfbĝw,1;)&İsϋ1?VQL̯#P"P/1ғ%뮷n\";lK?o($J+HJj.։'2ˬT[~瞿1Ekos@'1"@kNW\qIK/wwoAZ҇8sϱk FmlW^)f8ӣW/kݚ[O]ͺr+؆{W۷nUn 1㯹zIÿ昣{}ϝRKcB;'rG} OhNÔM62^{9;v޹oW_}Msq[ly\yQ{zҠ??n#z/pq)ߒ˫0F#`0F#`0F#`0F|ϒNt#=zVY:CƪH\C+yuۊߌ䚷]Kb=UxvI5X=nkC_-Ctm}ԯj9Scw>#?{k2}O?m45'0pmk] wwJ om̯((4w[s']YN-;j5W/JO׾R)-W^v-FfJPOŗ>Xz ڕo =bfw=ȣۮ{s*=ro#`0F#`0F#`0F#`ZD3tAA2Vh\$GɁsZP[Vī# y&:(|I-\l̍CM?4GR ^~(_Y'{>WР^@#:V)<sq !/ ?\CՃUqI-%Fyǟ?'5/ԟ:OC}_ϕGVKCfbsSZKGds'.~Ƣ"}X0]SN9%>R]-HUL5D.( @i11?jLޑGoDS9>`b~Ph=MH*\\=`9O&#4v5}|();r9g}:z䟦kt]uԱ&uMVίwVX,\ZWλCmyۣ,Zn+1qL1o굮F-g<W6ѴC,y]|e.\qX0F#`0F#`0F#`0Fૉ|nݺNYpB @f7C6oZqZɎOxDkW l\O-k?O_6KLCzcD?,:h 4$2njr D3,^7C:@LF-%й^sO? Qs~_^C؉g6Vى|~ynBJ陴F~dARbIzyTL{>߰&g5O-V>->TIiWz}bM7,hln _nq?736<-Ww1zUyª#75#?|}y1V[m]We˕'rU1+3I_[?ZK_kLOtM?KD%v%_1ʶ-%ۇZ-n{7?&7 ykBsqq<^Pjz]q奱喛8S7,moiqjkl-1pHY8ڂ_K-:SVLi%>a%bb>&n\tyڶz?Ņ5K8,kq,\R4)83c{CK;n\pNGYFi]K?bw-:53fl\uq}T5]7l87L^QȦ%6d3qd{\Fo.}m}]۟߹tj|lF#`0F#`0F#`0F#CK.<1tO|b"4!.r=&>-{.jHCɗ+O,6ͫxl`E7*>:G4:~l5f"_V u&lH D@Gg>a/`{&`U7[UU۟OjG~sGm.| Sj?ĵΖBgU>qʡF??b?g9zaKB%ܘrê DaO??)3O3&ɯdLy?vJ"?O9d:uӻNj3!C,OLBMSOiWkLSƍ/> }6bjw&ܾӺ0M!09Qz/J_.h,;'`z߅eˬď{1%}omz~-aOWƦn\ۢС߹K-d̟^l,\ǟ+iE3gGm=~V[V~>o}I<ӖRU9-ѣG 雇s׿_Qu؆ g;}ؔo#`0F#`0F#`0F#`W7W:{E +dT85t=ByA6+I'{u+}+'Bm'Ws6\O۲"Os`S[1,K&azEg * s8~͠`O{! ;񪥺\j?!\+>5+{īVR ث TOQcMIdUKB#0kbثB~z ÚEį]M̯[#`0F`!+Ʒn"Ys ^8z5LkF#`0F#`0F#`0F#`J#C29tw5.]!#!3`aUVD9]FQ?4@[@بE`GGXlĊخ,`rTW=[8̓MR<4/Ϟ~Tݤ1O=.zd|DS vr+]K3It$Yb*~˱B'jļ3F#`f%/Rl6Ӎl6#`0F#`0F#`0F#`0F HR{.p*sw=|bt%5& ؈=BE6DuǪbS?Pyij]5\j CKuud O 'RǥJO㣗NJOZ!Zk#Yu"׫?TG|v<)>ϣDXjCG3]}G7hY7y_5Upxc0Ftp.qɧS쭷vzډ1v+F#`0F#`0F#`0F#`0#ХKk\rMF! /]<1vŋÇSQNb&O=46+9\U~ؔԪxK~ͅOq-v5z%Wۄ du…0$"01?#2Փ"⓯:6 6Ǧ]s)^ÊI_At,&w{i0F#0qxŗO?^zŒK޽n}!g#`0F#`0F#`0F#`0F4@"JO  0b..l!݋,_|bT8r>3{ʧQOգ1?6WjR+]Kl. 8blydnP=DPK.{D~/e^+v]S=9UG1fTdEXj"Q-́^ \:O?zLzb$, nx#`0F#`0F#`0F#`0F#`0Ftl)ǦK$@^PT|: Db쵾ZaGJ6êT >.^>Veg%8y'sU;_ΔCG\~Q%W9N8qI= '2Obs!cU|O].z?h>|Qy}Q!/q͓9SikHwR1UW>߰&g5sӑY0F#`0F#`0F#`0F#`0F#`ڀ<Ѯ]RIt3 wѾ}Xs;N2ky?d#0cG]De퉕ȧZkr-2Sj?ԕd*l%ĉsM8?1ؙC*=m +٣3bԠi#ta Lq Wn܅t_1ÚB#c31 ^o0F#`0F#`0F#`0F#`0F#0"GtMHapţfXDB,1UcrN+Ē[!NcęVz2]|tgՙKBc_sП8͞Ԣ.5r|ďBZ'jܺd!A68.%!8ىiL(vUj(V>@'AWr!#NM\cW_}YԘ+]F3hY:Q_#S^Wt {QaM&0F#`0F#`0F#`0F#`0F#`Bt9:ug:<]"'"C$K / 16Oq'ǎ+p)O6U ;=+ڈVa/>4~|\ԄcVD9]'6DWmIY#9Opt٣Ϊ+R~!D7A'pJjQK{p4 FMD>B aW+]F7hd̖7° /}TI3180F#`0F#`0F#`0F#`0F#F`ʔ)ѭ[N׸tA2I8KN"]4[!N[Cå̪}r;YUl>#RZpщRl';5dg^$7njWíVj,\JƪAXJ(G~rtXMOjWzyXԢ.9îZ$ycE-n%YJc#鑮%F3[:i侘߱1F#`0F#`0F#`0F#`0F#`@G@ =-?Syb;.% EUlWr?N>]9lIifWP^5k`C s5 ȍ&V/uY:9\yOtXՊzs4g` Aj*?3᧿ vt1rFe7cb+m0F#`0F#`0F#`0F#`0F@.]Hӽ.J*+\bD{˲g q!_OĒ /YOg/NzîصW'؉? v̂zI'>^~΄bI-͢\ %:5uCA@考Ȧ< EhWОYf Os( !>\qPd_+ꏏʡN_#nt >b),bb~#`0F#`0F#`0F#`0F#`0wڵk׽ӌo'#pl[PXӊ8IJ_=ua/ؼyl~.įFWbğ&WtK|kj0$E^l ݚbZ E<<GVH^/׋OF`'OyR'Fr;uzq$MsVnR~fr4ꑏIJW_$!'9j)SuV"P4g-po#`0F#`0F#`0F#`0F#`0F64wOMȮ Z*d.I'WxbxbE' tNʧ?6DK{Γ&՟xӭ9f`^⹈LZԼՉY ]#&N.H9b璝XD}4WC9'ӞXn{b]7_rAٰ+v!W1̠)ST:Y,⎘!0F#`0F#`0F#`0F#`0F#`@.]Js1 BU'}WBF\M~qV]b#N"?{:cxѵ9؜G‹Za/]4y jV5kub y=EG88q\İ96;6P.jk6]/{=>U"kF̄NOblEB .!\GL=>OO(t@ᦆx$#`0F#`0F#`0F#`0F#`0FtL14tMtT]9^1v8"cCL>qG&NĠ+&U{W]S|K6;=`ڜz'V:#񵢺ZqB7u`PϞ'W|tbG7#~:OR˞T[F.-W}O¦Y՟=O?|, F߱n1F#`0F#`0F#`0F#`0F#`@ESNѹsxC5.]V`.2>/X=MF'?:"4)F ͦ嫮Ѭj3 q^51I-stfy3'1"e^zP>5l2~`| ՋI6k`A^^S 'bnzE =5gDVrGGTCX5<1̠)St$;bb~G%#`0F#`0F#`0F#`0F#`0bi5>]QE'~8NSCdԢՃj0F#@`1a„o#`0F#`0F#`0F#`0.]왺.9)8i}b"˗Ԃ 7|\~RK<)N7{ 1PT5f 4=WÎWK~D۔%qPj ׊.Sԑ/AkVM@Q@;*_7H9ŃOn,}K 96<Ⱬ?璝UOG'/+m˳LQ]7y`mpU@. ϟO*x1F"0ix/_| 3 Wx;E|S Æ O>=ƎGXfgѰ>,j;=|LML۽I#oָ 7Di_zL2 ϻcfxwcѣGXneg٤'|'tj928 7>ؔ><}"lŕVn2;f^~_{3 ^C7>Medݻ7Vښ½){h4ıfW略0tPe1#`0F#`0FtpO{sh5 I)+Z~6|e8\ĈwLy"sGZpY7C'FBjSgtSlbԋU6b#gUͫj"Oʡ^8bוdžh'9ҵĈ-ic8pM8Ó#`@5w}o_Iof|kMK/8zBo^m۝K.+vm\883[zY;v\ʚ9wrbwaqYUu=|_@J3?[o=_~޿U7g~v☛nI\+ JSpoNYēD߾5ҡ3ڛY5V߉pyi6Vښ½){h4ıts[nKmpC#Ёߗx4#`0F#`0F#Ё;wW"ĄQ!ދC *xȬ *R;6zqKO?::YUxl+e]tgGT ]4{.gE4բAZXҁ֐!s](f!=ﯚع7@I-Dy`rխդ&~*lUX.͘=}Ud?j'ґFߑg1Faqǝ__*ѷ6+̗][zSm͟:C~s,?«{`1dY~VPÏz$^gs<^|lNtMOJ򉇣"^Úk|3~~{js9gl??nO/w߽SN(^+Mٛw;ia3^{ufaVklEi^ou/)Mޔ#cG`vkc[nKmi|b[@#0NiI}hM_>#`0F#`0F#`Ltg^Ʀ 1O*29zSbXkct ZB<Š /sث=ߣÉFıFǮ^MԖؼ9Qd*gu_۟6 ε2<-.NqHH̛I-E XV.⣎bלuRhٟ9S|3g.*~.u8̙GVKChb~)#` FnLyng}zU"4e͟x[n9_6ˏy1r6,iVP'V_};ʬ|mHK/tkȟ~J65CG&Mwv6LM_SLj#bݻz4eonٝZ匰Y:0NIiI|cߜӔ4{S,^g {ܬA-/%im5;%e5}{h [0F#`0F#`2h 濝zOtTuo&1zAiMߚ\'pa媿⒫@cWK?q꯺9XU.&r+¡?9mj/P9BBQ b}^#H1F_gE|-f-~hՠt@C8-bA8rk!Y:H;=4F#PAků~uL g^OE=)RNSFX-!~`6L_KW^uYlf-\Cs`S͵I^fՇff9ok2Zj:<<~Cpo^Ȧ#X6}q_"Tmng[^jKNwh%oG)LiF#`0F#`0Fչsgn& ."b̊Us?vb5 s#J fSCO?rԙA# suF[E\!:>cPtŧ<C,qBg(]C\L49.x|wmcY46^{ +bM Nڇ~r{1z̘wXs5b6?fbٌ=:x5[oUO-Wݷ|+OK/To~cW_}Manr/Wnu,>\@6OCxb5Vk͆yxwⓏ?\0VMnͷc9h?> G>}҇?}<^}X<5Z=6xĚunx饗MR__/BfoHԏk񡔅Z(o/;0{e]v Y0XKRK^x1~&%?T(>ޗu[}rέGx!|[v?V[mn喭%yVuwyOl۶L,ܳYXu'ogZ@IDATƎK>wYk̒:~#_umfŒK.|~oL{Í;q;Vkj6+o]qlys>/d?\Xmkέ?{ͷW_}n }[5IǨyM'kqѱm-MR_:g]>ž>~R>KVwo+|\jEۻ~$t*Ht#G쿷ڷ_m?g;2f?Z5tox-6 C0 C0 C0 C0; TjaXa 16M}Aa>#NPjǖھĢ\O#Жz _qʡp"6cVqЫ 1L g"hy kί8'6_sE/pלKQ{AfQ Oij+5ci6/m&M:“IB "%vzQ{sW1qw!`HmUI'r'mF~p[zRAw]B)'K_4HAa;}im1ߕ"g$+҉I>; \r-6wwskL?9 M=Q}Y{ z.8\'$,WNWSI\H{osy|#neឥoBOϿ}'tnu;:X~_U^{.TKx (ۿGrplys-?K}>,}|\ϱxO۵)绶|/8[?;ScT\.VsQpXpW\o5ӿ+bJp(Rϔ-bԮKxq݁c|9gÏ8L) JUANmɷfuϝt⩚JR8wo]7]~k!`!`!`!`,x_C E|eTqcb:#!`@꾮oscFu/4MOFH 6:oݺ/{sLO掌ӦM nM HNR>N9-.hڪ=s8}4Ʌ@^;' YsSzwۭ.>fB{Rap ,@1n}}]rݠvAW^uޗέ^]έ\_OswH|N.dzfL6uA;w~;/̛=k;䐃\/)9 ,} ^YQ>/Va]“o kCݥ^-.|fiӺ ,O>{_n9a5>$V4trqlysm֓k9tOߵ3u4n/<>ߋyC>cT<Οn{!NzNIZYg?Xw9V.;9Q%Lxq$;3FF}wG|8Nܮ!|*_HaKL8)|򴻯*|>k-{=[s {_|{~I0 C0 C0 C0 C0%4i_@?Ѿ  +M-9}8Ԉj?(mc{/"G5=mD:8S|tgpKA8QjWyeØlKh}Ĉ ᅉ1IDM/^Ts>5:𴩱_`UpTK#J{H/*<| _e_e٪>5L(?/0ب)+窚JUUݶMMY՗ժJ{_tem_cUeS_i'[idO ?NMqR(?LaPwS~}/N}>]nosc}31_=>7k,+ljx"@sMs^envM|7OģJlTb}{ulo?$&<[{M֫{u Ɖ˯ZX%d- b? _uƿrZ|r'$~N&^1? G?9ķ_1l}dl $d+/$6'OUM81Sbȑ/'97XG~͘13w[ܖ+Ɛủcays1cFn&o'$~dRl59o(ꛞgW0ѣ6ld=Z>z 斞Yg2eJMMkX]. 8[eV~'yocYm~G~t:HnZ'1;X]xIObks̲sk?;CreIINl1l*9Qe%sk:K<=&>\Ю]τLy* y /<\2n 5V_=KkJɞ{oW\d|^oVasD592o%869Nc4|.i= YƟct5T]:q7m8}FO^qxpS+0g]vMӗ5Nvc[boTR#LR:EWA=i1!2F;>txH q 9&o46""b>D|m|i**|͛bU_ SfYӷ)7VG_x;pFod|.0b} 6Gۧҿ-,RN^~Yuvhg9*ԱV0&;w ;MMG$+Iut$:QL;2 1ScwrcƌMܷ.]6+/E6d->;@A9k!r?925LjX1;{dnυګN89ˏ/$6ci"" gj=Hcߏߵ=R{ ;wv8wuo C5ُ>cA߶Mmi?nI uk.YuLZ<_d#.Xg<7|yVr,X]J{uz?Y=q} N\ > UJ_)V%>{w kb3J8WYطXTO CrϕqWm>5kD1f!zlWnȼؐ8[SGټ:>YɧگzJ5=]rQ%8wv}{85*O-]WTC9>S*g:.?'18o%ƹ<XűK$%#c̸(=?}%`vx=`{l=`{Oc70a |G x _>,]n̐4Su-b8ѐu7xi-rӧV\ppAԧgjx* 5ӞD5: ve/\5!&0xq45c/` P t*@Jǁ m6m6 D|6HԐو\B-r"fSShs|v;_VWW5o5}PMJ|/niF̷ym{wrԐӄr* q;H9Y= {n}9A*0֫O/j-wֺ>Įu"޽/KWu|O>4lO38'G5w&!"~pn|mf媴TwNj19wmbc={Ϡd-?/>K"ǝ4irkKM%D;MtmwU]j/5,}%ڻkʽ ^7I1NuJt`OAf{%W~118fvLK?9#ׅ-''Tr,v}/+[C=X9c}99,}.rK$.Raz]yp/.7~쓬x 9/nZߧ/ERNct!VcC+>9N6ϼ/di,JkwޅqO<3uSl9F{ϋaSr=@ ƏA 'HBs)ro)>S*gqgżasLbb]C ߑŒ(;-}& #^Vqˎ[l=`{l=`{?4 ˦ |"[L8IV2ejx/CЧpqEЇM[7,M.O6kщ _nqiSp!g '/o;3Ў)i:}D* ❙oO1g6BҟY }-}BM,KeB[~i>ʯKO_f2c85a Q~֯505і?mزyOv~8."h1yʴ!f dsI…Kɫ[sڿޜ9!`5#:uylMݐ8.~/ۻ#Njn]v>_9 U[V[o+gkĉn5[n\k)˄&x( v[;:Oqkŵpun= Z|;,'œ8;F}:*5[n˭6wlkٲel^ ?:Whǟ1cƸcǻ}L5X=7$nu]gdLmơګݾgy? +~2VvYn}_TIqX#s w뮻#Lk3;q3O q*'^}BL^9rn]vJ(5bJINLжm[]Fwvn[pA~gMNZ{=ۯ^wgyj]Zh]z]MN8 4ĝqŗvVI绺꓀G~0kn C>`cQ,t/+[C=Vp;n+|^`QcCث\X)fՒW\<yA׹Q;?5sn饗./;Y"RxWO38; f|ί~gwđu]tR%^zqܥ{gS2hPyӾ4|.i= YƟcZw:˧ڇr[veݻY,u x~uNh}QShs*9gN05Psy]nw/HEVR~LteHXزUKk/ yM\ˮc_??pcRP}Hau[e^V'o{swM7&!`!`!`!`@ӦMYg_+O\m ǎ*j=(7 |hO<91,kM#̳lQxG-@O,EF0N`PkZ ˎXPAK>ˏOLW8K<6 mjc'r57eC~i>qҔM90yU|Dڛ#3b~:6C0+7ҪU+~ժMg e[νOlH9Y1?h½ +b2?x5o΅si" q[\\{'Oֺ^~U׽A/_p7r+<[D l{Y)~{ua!Y'11}BL?;k_S^ʚC1}e} e,~n͑E]usݒKPﻗ:x ';[Ο찮9s#vO{Ƶiƽɲ𯫾 hNLZM_n}.4W"+}_V:{{{ͷb(jlg?`S)f5& ݱGvO0G>Gm6(.bwabc/p.)w7}pD)$,b~9_"gJq:%Fxs\]𹔵,}mk|igT]{ww)]".&7xB;nq;}2VcTMXfDq.&8Vqt1,YG!`!`!`!`4i7wi4_Dp,SS BN _}G m󢱋s6OS j )c+!'BlWTlqwؚ~:WqeC {ї%LR♐,Q- gq5-F xꋘtR^W募c8:6Ey ÓSGbfŒ}ؑ1ɯ>qդSϞڤ1!Uy}aqڛ1?u C0ꄀL{jsϽwm*"dnjؾ+EYr']ow&.+NLVvmju׮{wnӳ}+Į;>n>2h=n-715Z.ѣ "tR/wq 33̝!9[k?1; {>|{ .(2=wI>n[Pc"WOXLڗŰIW5bJ׫~NʏXxpgjI֭ݽRwyǿ}=]i8P7>}zS-'y;s rd_W}A"B\4TLxnaHOᨯcQ,_JP{AwA_feƴ|*-B.KU^ttXxW'FUr>|r=ýK].ܭT򻢾p Z׬zBR)4t]*?Y8VL4u\q1,Y#jmC0 C0 C0 C0 ?pd<9&}/  =:D)g |Q~Li+66#jxHa<ثԈb1N 8ײA"[W~j/blЎ :앃> b>/_rbOdFQ*/lW6zQ{s#槀!`@ w$qOviwpֺf̘ڷ_믁x~jlϜ9ӭsK!T}z6ď}=hwmwI&_~b.|ScN9D< йmQKu+^Vcp>~K#GU8 P w գjJ]>:uСcӦMګ_0?îADZsD8FPy+96Լ=7q[?֓qedT]'<=0B 9񛠘g{ʿ(ftQ%̤~sWu^IJwWMi *]8¾`Q)),~f8> q⼥wd)bQk!`!`!`!`HSY*|b zjcY8IAca_vǞcU+>vOqA.i {ʯ|-š#>/;mD>E:Pk {bGqV~|d\VFc/h#+?}ii1BN(?vAz~ SƄ@d0SW*B?A_?jon5 C5"zt +B{[|`Egŗ^luan[o\n]\( ,bq ɓ]. $xU^wEΝuwѭi];[ aUE*??in]3ߤiS׿*u#)B-[$~j ;3C7 s٪k}ݛoFh'v~z%?=wG4C6lSL'n.@Y.1?N5d! sgyZ2c]>ߵS2F)nYsW^=ƭ C_…BlE8GjV;츽 K_g1yYRK!w;RI)'x!袋:HI"5Vz,&x_V2{عFz`m6E!aj$~ DVYU׾aA>%YgUr/w;(kRusAP,\:1&G]tR'G?s\]𹔵,}mkrY>~׾__7d|_M{6Ur>hUɹ'S$N(6p:zwEkW]ǯgJ}3dIe1<&DZ"g$%#KaeQ!`!`!`!`e/U@@7L_c'mD ; !K_c-:B#/6b0WG|k ZNh CʥmsM4yt*yZcjSCR_i㖫s;O)VڋWj_aSѧMW[.[F/+V+yUiVUBΗU|Y-*/|ᖶkV}n/ݧLwͷ0ǟ&W+~P~0)Ä|Oᄃ;_r_}ύܸƎ&7f׹c}9z|n֬YV lqlN?2zsK {OG%'>UR_Q&6|'Y'1{g'67psj|O:T#llV^u/HlKܳ<7#DAȭV9W^K|zD/_nj ?igZX%kƏᩧN {ng/j=lcMM*dQ1c=Ǩމ Y# uyk5̟\m۴q[AJIJa%؍|5,}wuaE^Rm.OԚ_m]quVI֫2 l&6Rre_We>p2Wn{wgKls߂rE|e%sァu:~ͷ9>#?k܌3 &믿οkN&)>;Q3:ߟEb3n ci,g?brcCknjoϥdkWj/T]/G'V;"j[ܖ_{pr2^1|%Wror|s^~s&MN֩':%7ž!~OϔJ.߬ci}6'$Ǹcj=TIJ~G,ƫDayȑ/'x?o'|Zwl=`{l=`{큹<7Lrgu}3 wx1bqA^$S'2\fj-1>} 7"4|jҾs Z6ww6mjlOp)pk8p5MAХ0>+>' $u&6L=qw=zLlƉEt~W < iI||bQS[kQ~/A׸b׼dF'm6ckỌ+L ﵍ Uw[$KG}SXҢ9ׁ!`pv8> SLu;no^kT& e7߸ 8t^{w߽5䮾~빃>mV߻7rc_?Ki]~nحڮCh쓬]LS)uw֬9d]/w`w߇D8v{aaIq;K-`>p{zܽޙis{&vu礯Fu+^VM޳\zrݤSÞvvg /Ώ;% TWdnRV.w^˝sYnu`bاW^w?7!7?eRp+55<7쩧bkwW\nM7$p4'jw%d?`Ew٧p7k?p,>d;Wcy-7W{joϥdks\cL&Jkq睛ڱSGw?m):>͜9õi=>aC%Zhm,6v৹cWjYL9jKz?1cy]cS=OC wd)bB̏밮nt]B0 C0 C0 C0 ChTM8\@?P}z,xCO^25~+lDC`2 }Dzj8q.6^ګÜ@q8m$%JTs&^}- KvӦH>~1rq >"q呭&VvSKO(rSȡE_{4g=B<7ISd'.0S0Z5v!6%&bň)k!PFmƍg7_ D"g~~x0r縣>v]6X_$l*ccxȝ|ig5+/\D#;AkO wÞ*uњ\zGRA= '[ x];OF90+ȗF&zmڴs:qH|۷_s"KWg<ફ O6uj谺"{p{ŗ,RIVܕWq [:" f n;]/s0b>?eq_`Ydtj7 ^pA3.uOυ[v8 VtXcc{sS#SrFS*g:YuY8OE#7Ԟ%_MG_Rq!̅S>'1swe zؑgʇ>boC0 C0 C0 C0 C1"?g_ęF^m@IDATxzxϷ!~<ӷ$k=y>6)}i4h7|O Vj֫;'[r>zZm,OIG fYx>Z)؟x:KG9+F̯) C0bbŒ{}?kݦ[qu%&gAkwj4dV:urk[v?U3@_a9RKC֮d$~@宗;sNpXkE1o7_9OJXȊ'}}/bn,une8~Ou]Jl̙n挙0XxmfA>[W󟱋,7ڊHj3N;gZV~jI!!/?j>Y ?voDqZ[IDUh1)@NĎ"?LlNdvlIS*k^)v<jy V~|uG?17b\HK-[tUSϞM8Ƅ@8"0SW<Cڛbň)k!0O Pߘ&SINH.{i6C0 C0 C0 C0 C0 C0 C0 C0 ??]u _DEH^21:qaLv'3k(t"+zrVmb#Ќ0F!&kfN"k bzUcԈ|+:De>k ""}S_OD͘EO[78!1;.P?υJ^k>yܱƤq!3 >e4UXϿ@VڈZ0 C`@gϞƛ%}|QY!`!`!`!`!`!`!`!`]i֬A>痾LHq[d?~Efl9lb2|hpUyh3&_ӎ\i+x̕ĂMW>!]<'s vQSq_ZI9IiQk-!q|)ZƏЗr~N^E\S|^h>'?:bq5_l#>u주Q~t# z⤩A6i\#RUU؆pj ވl C0*C]'}k!`!`!`!`!`!`!`!` [w}3}]mJ-3wqeDeP#^~O8|Ywɏ"Z~kإ3B~S9)K1=U$Thkªc=/@4 b:i: q$m >qN9ʫq.PՖ?;'*q lIS ݾghȁɫ򇽰]E.KG͍hM0 C[mjrÊ-!`!`!`!`!`!`!`!`!PMvVc}!R%Fԇ,Sc#.2~W3&_l񅗬ӗr1^1Ы<ʏ-qc1 B Kmc5}Wa5!h޾E/;w"0bĠC-h"/C0.B+̅c7f2˸.]6l4qƻvVq+RM0 C0 C0 C0 C0 C0 C0 C0 C\ /|bx*CFNbl$U"~ǖ!#jcZď1i+?6O+}Gm"51$Sk!q`XM.>lXL( {$by ,l8^lMm?˛$QXO|S<8$YQGOl+jtO<ٳ)깉@8h0SW*BA_?jon5 C0 C0 C0 C0 C0 C0 C0 C0 C0 C@1_8_c>\dO! O_c;c+">vtcR>!\ʯc4(*+?>1;[Şm:WUc1^gQ:;FZ `B,8l⼴E"#[EGsGvIyS[}l^_+|Ab+5zg1_<1ٳkL}t*lW zQ{s#h=C0 C0 C0 C0 C0 C0 C0 C0 C0 C0h4m@LZDyQABQlˎZ{ȲFGXԇqV\l4DϸбsQ~l *}pʻ18!`!`!`!`!`!`!`!`!`!G%e/LUb;bpEG`?i;bC[6Yg\˖xϘFs'|zWn mqֈ}Z}+mW*iakLHR|,^ =5&p@VytHO[X_~أV INѼ[K/xUAA*?6}⧉SCaҸ*/ ఎ!`!`!`!`!`!`!`!`!`!`G`sM4|"= 1_}W,AOZdM/qOvu#U>7QlB.WtAv7q?3OlEK"!1zu2ΤXZG`?_ch#(rO,$ zL`Lr28sAF/G}ڈb(Y5;O<{6& pDߘ0 C0 C0 C0 C0 C0 C0 C0 C0 C0 F@1 ?/}"ދ":58Ydq!~2vGʁ:_fA~/m_؞rI;F}*x9CdűVux%`B &A qca@n ut1E0CxF:WOMQ~Г]W~\i3'YmW^j 1⤩ehAc90 C0 C0 C0 C0 C0 C0 C0 C0 C0 Ǝ@ӦMs WY@S}8Ǵ.|3𛩱.2m > yk ĊA_G9_㚓_:8$Fϸf>H<-e9Pb W \ |1LJ; bk(?zZ)|upaLmXEeK {Ϻ֝iw.-'O>h,ΰIc@lp$l!`!`!`!`!`!`!`!`!`!`4~fϞ5kt/ӫf IZ*54?2c 6c'3:7~3l$!Oqj͇1xҊ1G[1_kAA,l'78cjP)ȯycSgQ:;FL)Q[,Fm@ACO|S-0C쩉C6)?:D6E-6V~W}&O!;WCT|i=qҔEnL&x##` C0 C0 C0 C0 C0 C0 C0 C0 C0 Cwo\&M3—_f^b4UCf1q!EjG]O:؎;OmS+.4/L&Of+bV>͏>ECU1]Ecʁ K Ұ&8cbq[s5 "ev_1S!@D~KV1{sb*&;XR4Ǹ$ɫx]S7kiMH#7#bs1 C0 C0 C0 C0 C0 C0 C0 C0 C0 Cq#дi 2Z*mjigPm*t Z=B8 /2W>ӆcMrQkn%ڲ#dq[t~lW*"fZjrpx* |,H7XsЛ Xj zD x2F٨yx$?NyCyƢj8q~%kW}OkFЈt C0 C0 C0 C0 C0 C0 C0 C0 C0 ChTS'o1@i_1ΘW\Ís4z NyNW~Z5czKp_ΏOY¤K$B}`ǂ06`+|Lj 6rKêG1ȧ6@zG-lfig2B{ip M0 C0 C0 C0 C0 C0 C0 C0 C0 C0 y5i҄;_ @M=ejƨ;`K?G-886} >k+ƨ!\qC ' OD9&l5ƾZրh ]٢er$bibRzL>@iCV.c0b8ȴOmŢ/? B_T!&Q#ql'kbLYԗLʃ+[XC ̈́8} p-!"@'_q4Nl+^29)֣>Ƀ(5|!5ėV.j&>mdA_L4ul& pD* y>;KGӄ|ߨM0 C0 C0 C0 C0 C0 C0 C0 C0 C0 ={k֬Y7<ޗEFC|_.2!U6!G+E+o/z86W˜cOq͇Zŕ&&68WǛQ|:"Ş65v6߬(Q=xdMBN/ Bc+?-1ŋA|_ԲW"Nmdʏyj,nCT+6Dcl*FdOqlc?M2&UL8} m[5\ )UZخ"C%"k#k=C0 C0 C0 C0 C0 C0 C0 C0 C0 C0E4ioG/NJS@N䪽*Qc۫M8ȐEGfN *}pʻ18!`!`!`!`!`!`!`!`!`!F'Cҗi#LCL_w8\gtJZa˞;i/5}q}3Qz'.:M,r)?fhGN\ɯ6웉c\HV_ę1(MV=􎞂N/|3@<+M W q57bJNi#iZW~{m&O>p,M+v[z\V-\+_]nǬMzyƛtqwz}s  9!`!`!`!`!`!`!`!`!`!;?"]8"C>`G8ԁZU3bO9PS_17OטoFġGhcGq 4 e#&v *MHqѸ{dyQ!7>^ _C镃ZvF~g<+>cIXKC_9:W<O c85~8cܨž7IdQj1yʴ!f dQ6>B&s`E1c w!=)SC_[r%#|cMVW\7υvai|9e!`!`!`!`!`!`!`!`!`!0"дin~c}pEHi^iL?-N{ PL%q#{tVV끛M~>:G4jNk7 Z,[Q DӦ&>/`k,LwA1j0H슛/;btXO[^悞曡M-C8ِa_O4e0yA.s{&SdӍ9瞖܈/&;Óȁɫ'%޿X_"8e8p)QCl|h mbSc/o&vqNA\tAM!cʧJȉ[<~$慟NC\nCs^me Tx&6GT HY}qA{R\/[!)+e<5'jW, X򣯸;3x. e!_ZM)g 88m?|O / :qek~81\B šqe'|ёR- \vE2yDH~LzMZ+ŘM>:hc?S1#Q[9W>GC5:앃>8VS#+|?M2yA>'Si'LxړorQ={vU ,0 UWخ"m%iBF/z!`!`!`!`!`!`!`!`!`!`̋?5@8?%'cX#O<5C})bEؗcCNq7*ٲI$$as.U.UR@PeE]Z*Q*h(( 2KfLf;⦅s$-$'3g=ȮYGSZkO<^1#Q}Z)r Cht8:s`j`g(FUcO(j[k'F~::!Mk곧ΉMvj*oZ>O>5y3>=1NHcVk7lu-߾5AwP+M7R.>J7CVtWW) kq,5jbޙ O -?Rs1KX ӫP߱_Z4WjX-> !F1ȅQ^1+F+-+_>#!QʙǨߚ:S.b{ȿj)/}bC!u!]DɅ/IUhn'ب1cS,͵q.ujW}j)UKIE~y$bȟ}&O[[ ]g%iG䎟/RtGqqō8gƪVU%7nlyJ?\n󾪄pxc&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&P&@c4:ҠAo2šaՌ܏fYWo2zoWscOD5y3qs>@ϪCش׽dםѹɏsˆ^}:j%չѡKG/4C ^m}:'u%7yun$W: :Gʅ^璿ˇqi=UUyQ}3?:;;cѢ%}z˿ze׿&^/Xn]47ĒK?qXT\{EL2WP+ynjg&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`/ԘI7ӎJ/4az3v ttdr_+gf?C!Z V!|R>΀@QNrge&\k!Ng'C!: t`eHn,kO~+7z`G_+| 6ϩ:Ɍ(V{D\:z0(r03tޘ?muzcž~uz<0I&bz΍CMLLLLLLLLLLLLLLLLLLL`{%Pn_מElj=kC^yuRUB/^6f[Kό1D羪ԅ6|W|N|@yuk$e][O9 P*F'}hP}9x@#;7g`#^ePC9· _y#=Ϗ=8#~oHّ!v{\zWGaS466ͷ̏z=8 \J^o,d,1'wqocipz40000000000000000000ؖMǦXz]F/J?s fe'k=6~zeG=kը=ٔ=~ib= >9TY{j-ߤ*t%?jq|sǎ?i90!`ʧ Ysxr)ʖG%ǓO9T'ϑEMfAV|hO>]>3sNy|7SΤT}a׹4fjnȘ^Y~}pImy`N"4ٗ̅t_>49֔΍Ux10000000000000000000QK 1N:4֦A0 ==j4OBEhLU11gM3[jhݴƎ>SϴbU+UY~Zu'ԯsP?=-D;k-ɥ΁rJz]1|S3;>IjgՑ^;?|e$UXaM8ra׽G<ҫ27-cBM#Ϳ1͑st#|s±LFJz]jSӏsrwc~ HoMLLLLLLLLLLLLLLLLLLL`;"P__uuusӕ. FE=khL61ˆgQF8ԯ\)_ɏhVƎ^3kcLWtnWr+*3Ү"_KPց#9@'\D:=Dg0䡞!>=k,ri }ёS!g!X|>zrֶ]]G ǟ߄_W{カaxE}񑑹,7A07WLLLLLLLLLLLLLLLLLLLctl4:ҠTMZ}iRcY>y2Rӳ̬>b:5YI.zYP}t'=9Ϥu\3_zn{V~f`P:t:hK N,ClX xZ{VʅM`#Nxtab#?sQ}t#Ҙܲ:ަ>+}-ncowq,幸1>30000000000000000000QA -?˨yc4֤A4$.Ӣʬ>f[56/+QÆ=U jzǟ`W;aX;>-m{NW/ Xt'H.FN:5t8t`WC+@ z8Cs(Vs9׊cbȓW,u;1}W5^WR ο(/Ao?=mLLLLLLLLLLLLLLLLLLLL`TؘNM$ ޘSLiUN-iFԟ,?W2{5ܲ߼qt%._ZQ4y&.&gyбW}fs/,COLoQ.Ÿ < +_$ϗC7#'߼~+T|<`S>=8lU+)31:W]$!7Ooim;?\GUr>Pe_{We?ESccL41&O%RSȽXoE~Ue<{lzܢjPb>M{:(?bݧ &`&`&`&`&`&`&`&`&`&`&`&`&`&`&`rcfK"OL@bQSWoǮF,D:|rCKT_5ѳr)7!&cӭsO}~Rsa﷨x] p .zֺ>y]"Q=Cz|ѹ6t.6Wq*$1Lb&WVr?.r>sn|WӢx"4uTUX+XcNǶ1c b&`& АӟF/׭]LcWn7= %pL:4V/AQфZjD,OspO?|ӲXF.ӟM|㬼ȆDvıǮ~<]{K>V=Wsm<U_3~;<1ax耡x9d.ras: ՗DUjs&Dyz:/:*/{M\T_~ɥU}:Ӹw$1?JZӛx=u"ܘYngO#>?e}oMܘ_00 +ZA_t+"b&th6-&~xL~ 6 24QtF\)V}9wӋΉŦf#'_|X'-%UQ}֪|_OZVjJOΥܪ^:b綦]>kj*b묪ž7Xv"q*|0G'40Kn'M`G%ޞGԣQ &`&`&`&`&`&`&`&`&`&`&`&`&`&`&Ceёz`O1k1wA_={f&֞d]fGYnj[#Φ+)z r}(N_OҲ;cGc=ćXt%0$`p0uؤ9(V@t֗ `ʁ>Zړ ճLJz=L59e,z%hQ>w`FW~cݸ3yP߬H)'R:*=uMo̯f 4zkظn8L#w?9{l&`&`&`&`&`&`&`&`&`&`&`&`&`&`Nܘl*05ip{DcY묞dNC7-KTʧ~|r[Տ$C0y^~9b\Ys&YkW]f u"P<^KIUz^k7揬'Ә C`/86\\71@Ӵig?{l&`&`&`&`&`&`&`&`&`&`&`&`&`&`;馋Ӡ1?oWY=j5iЋ,[ZO/2k1ʟyS=U_vbȃ+o/ꨦˮ3,g+ZV}ţǯ֗(8 k0KҲrQֵ(GOC><شփn>T_4#A?z^3ϕNL}[:v̖@\z}i /WVW֗f73O. xKkޚ F;ձiƣ&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`[ MMMG'iti-l9fࣾc㌎5?Kˢ癙f>:gæC6Z9T_}؈AA.|SAֵzr(6|ʣ8[߁Yp,pңe "z+fk3Yk>:D>,>gV}W{H.EC<~EGh&1Ҙ6НvC8|0a }Xv'{-_ z 1?3?Y* @5?&iIcmJz/FhS^}رYMIǜV4|y>Gǚʋ?:+-+yYS'3;\UOcP}fDy&  ҅d!cCkE1\/zy}D<e!Yq&QnSNrq^Į3 k—3sO.?!f_E!+W>ƍ'<챸Xֶ:viRۮwm ,!D&`&`$ 7Ɠ`LF"]S:r$g200000000000000$)Œ4Ӡі7ӖʚYaIJOy鱖0c K_Fcj1l%#Kzk3 `EM9.-~AcLj9LrCoJ?r>@IDATXfzD 뜵yk>Ou!9sQ}fG򒇻+4 쌷X3FiYgƁ=91e>W㺸? \G_B9s#|K44җynj&`&ǧm}=MF|>M%_0f͚Çß aKq1>fn!e00$m& >#f^m\LLLLLLLLLLLLLLL@]]]iMf ZS@Όefl;N—}nG/<y,>yn bԯ1Cvlɡ/ P'MBT 1jN  cuG݁Ց ݀EHRz>FP4_'-5{D1k@ .qZ+{ťe!U*rO3JϞ|?6+.+g'fb3Zwuq/_wS̻{k|6l8cUfsQo?fk\ԧxؔ*}9}c13O۔+00!Л\L`KꀛnMLLLLLLLLLLLLLLz!1|NW7 jטc|?ѫlG=͊KB#cǗiYZʑGuXKrrO_Z{|U?ӲoB 9tǎ\Qz~.Ž^6+Om}呝:W}bיTKA4Ì(tGUzgMcvKk ~7{~+V]7Uݤ@%^3fLڐ!+H/ϥ*=u]ӏsrmލCL[nn/pc}u00000000000000@www455.,4EF!]"#4G9odž#zE-U'-_>fzp^ 6ǟ5vY+MN|yJӜi]qN5:Dr3KdC:̈YcǗ7ﳪmON#EN8XĊǩo8/1qℊ_8e?/=ᏜϨ谯SRkܐ}O?]zg&`&PM<3큀󷇧; @OQWWwL,JcM4+ͬr(\sR~Zdь=gHǜח8G'|-;g7f{Ҳ<6¬Ī|[횼G]aL]N tif]t|gmxf[q#.s.1;CCTW{|P#FvfdF 31g|W5|&xۑ8݁g7Ϝ9&@oG̻"vy ʗV갯NC}q\(ʍ%[~1w&`&`'3s tnO300000000000000HMi_F{̠\>dfDvzi,fcV M C+?z:ϏzӲ8O^YBǪ9.]Zkp99˚2#1_RPBYՁKrY z.C;z @ZpEWW\\ʡz&T_Ŭ|:KQ[u#y}Ō/٭mt Wu7uq⻎]?]Z9i/`txPn?7G -7-Og3@#) &`&`&`&`&`&`&`&`&`&`&`&`&`&`&0o̟2/I|5ӻZ3m)V:#&c梵V>,{{tù᡹18 ; pcP .uMMq7C&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`[$MMMs4֦A1 ih[-Yir'Gc͞bQ}SKyUZ3㟟= *|U%kSo8A9 rr!D{=.!8uqALBG.%|X3^s`@_wP %K+/:GCo6#-G<&܎Ϋ3/[ZV u'9`Q'Hž53 {eKFs15 lz`4+om}>1Z58r3OLɥK,niYbȑ#OczsK|G[˯*7~3fLtV,[hv) #A[-=]y~Q|;U; x$<ץ|>>(1'چ|ݘ?ѩML`; `^ӱW07拄g00000000000000ؾG]]1VKhOCM/CL23fTzilW1NJaC#N>͌Ӳdo^E `S=WBMܪOΩuVr\T_5-r,k~@+<Қ#;c`t]LF +bɥbGfˏfxי٣_Ҳlr)~Ǧ|: @Ƹ4fݍyd V\Rc+>|?7oNxC.\^}];q+o*NC(Ha_*=u!?} }QcNjįݘ_;00jBt5Vzg&0 1T?>LLLLLLLLLLLLLL$#5Mm \0 >c Rc>g3͜h1dž=Ϫ;kƇ8bL_4>tꡖ)vrs-t9Y}٫/8앗yNuIp\l̂\:6=T]bдǟxrrv2"hC t{Ќ``*fW,5Umq|?.+cn9VV<2N;޾裏 G?/y'R3\VtWW(Ju!?} }QcN ڻ1w&`&`JLF51q7;&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`= 4I4??[X,Տ\kW+5rhO>PMyg5+?~c]kGЫ\6fD1^kW=S"@W=BG~^ փ^ɡUM`kOA85>c`W}9NMMzǠ&oGT?' ij[q l㎟E^R9;GʞE{{{|ğKv3ekĸq|7oyqӍTqǮZUJZj/K1w&`&`!𤓢sp #@|00000000000000"mI閤: !Wc'f-iW?3:|!FeQ^1+F+-+_>#!QʙǨߚ:S.b{ȿj)/}bC!u!]DɅ/IUhn'ب1cS,͵q.ujW}j)UKIE~y$bȟ}&O[[ ]g%iG/U'{!^ԩSbٲG=Nx*Wo|q}WL4 l/ʡ5v|U_w@'A贗]\W}0#g=u>bqo g;{_بG{EYg| g z|-Z&`&`CKw36<&7/'Mbwh ;]}u = O>qݢa/v>Dtᯑ ԥߩOPw݉YF.1c9r蓙 @j̟I7TҎJ/4az3v t4tdr_+}ie?C!Z V!|R>΀@QNrge&\k!Ng'C!: t`eHn,kO~+7z`G_+| 6ϩ:Ɍ(V{–w+!>  ݃m76~:~{=:gzsi_xioNo^U&`&`[";֖-h^Y/(:~-nGc𤓶:~K:+v:찊ۣw]ibeUJ[ }ve#L|"00000000000000*)_{jBȋղMei$F_km0V>Kf&{aIUlЪ{٘#3G =ѹ'u ;83_P^)cYSy ?Th ѡj/I_G<6D1TxF0?>C,?%؈W#LJM'vMc֪iJwwwC]Cog.d<5_UW͋=W8:FGN'D_>ϓbɍnR[:wu=rgj .[񅂦8կye Y6v;KKEqɥY{Tύ"LL`[Qr?4K:Xk[48hu*}X~Z1 y}v{9ᄢ@jHXVg/e.-O\zig׹s/@T5 Om?yh?aPW}&U}@)>`%cҗzH%gv]=LM|^00000000000000:ݑfM HvT5 k%Q=-ٌ>`×~hoYf`aMgWowRWʚXg>9EO4k|^'t.>qF~^Ouí~*, JY}Iىe貂MkOb/N^E^S bȇ^ItlIN\d\[V_1{ka?/[>㏉:siǰ{_2"ڬPyhnJe&`&0;Zc>M4W$ydl,abg>cO9'>QcI'UB?Q9d͢uǻ]mbscWxbL>~sW^YZ_K_Kc'G5} }׍&`&`&`&`&`&`&`&`&`&`&`&`&`&`&`[O>|ޘ( ^eZTǬ{|,eDˊaFT+ⰡcO1$Z}Њcf^6?6 랪Nu_:$tf7(!`%?.*9s >,ؙɥ|@e>@iYeFT::B-?Η/z3O; vD`GkxcMKvE}42E{N3~ƦX|Cog/њ†^9k:/yCS6BGsUKkkWfq;6Ν> Xt'H.FN:5t8t`s3sȗʃ?ϡX9(Vd_+M''ywUskfŋCt7vwuGoM u Y!&C_2e6%S|P訯^y>(1'ޚѹ1&`&`Uv|.?˃fpɒs)_K+ڷw{o,'7ۘ?*<-c6=Jc>ʡQI^4K-X>[b/zQE|m_Ǎ}/9zS>:Ƥ:Zti,M6no_0gNa1[cW]G~S_I)vz}t3K7"nŇ200000000000000A/ؔ4֔SLiFN?Y~e~eFM ՜o^8D:f?lfXS_D>-uwG秓@訯^GЧ?ޚ l1%D8ohzQUo[ߊ^n9}~"F-RcPPyK~nG?xk׾6vV|kU yNT>jiE/.WnUWI/}߈Uve?'7GMLLLLLLLLLLLLLL6CܘtrYo̧~bOiz5ˮ>d*b/V#>~M'Q.R}DIr)7jQzese[[7<~Kr0t9.z¡K>b!gH/::3"#ʯ=yxtCW^Ū~#]JU׌z!fR1nNˈ P<þ8%UyU ǜݘ_;00##6ydѩebSN]^z[j'~W_]\<tRLލKa[nE^~l1qԘyժoɓcw1q=_i{J_VG".0dO5cҧe! kQMPPO<ǫ΂hV_EG>eO=YQ}:gTtW*}Ԫ)G91w&`&`[G`Gko2%f_yesD5ׇ>^*l9gc`nX8–ޘ?5Κ^|q_}[n=>c'L?7՘!B=O<1:W_J.'kݘ_y^ vD 5IYF{4jNO!L6.?Z>iY.Q}Q}K>Ǧ~iFNkO>Z'7GiYuGkEyjmѹ^@: {,#iY@WuȋHZ\8sPOIJMѹ[KG,֔+'US^ŠYU=o̟:ۓ[./vviqƎ+谯>fIUzrC~ǜݘ_;00#5=#+p6"C?($!q|&uΡVGX}#lS|AP}Ҟ\H=>4a6 |-);gCdF/!F{ֈr(3WuJWz =wx/QN̜oߘ?Yx_ۘ?5Tvm_`A,>[}jt^ v~9j39{eLd׿Sō/ܘ;kMLLLLLLLLLLLLLL`(705iР{DcY묞dl,C7-KTʧ~|r[Տ$C0y^~9b\Ys&YkW]f Ѵ=e}zSM7v{4kど1Μ#E/~A_.\_<^KIUz^rC~xǜݘ vA`Gi뻟xb47W$?gowt衱9T4/:풆]vigIa|hwcsɫ+.<}c(jT,jKpBl֯33cF%/9Zʞ7!&_)&hscW}_no+{~c~I;7_Co '07bq4M*'Y4xFO Ȳě"fiYi'^9^e'<B~j:Β_:zI<e~WzYT_Hz8ÃMk=XCL>0btqW}%=3I\~ubZq-omr}ǗCu!q'n:T)ۛdi/}d.I?ܘ `l?Ito>h<n)73&Koϯ0[+sٲś=Kcim10yUhO]^ZmOsfQI^h2%f_yev7ڇ*MS8"v=؊mOuŤ$vKlIgc/e/:ڒ ׬3gG7Wph)kf %Н^tt4:7IfSfkWi#NȬ#,zoSH3άPjG蓦"kcO. 19ȅ/vj3ȃ`ӺVOOyG}~;0 P!IN@Vm.5PГ_4 6DuX˟+Gr)yS,z>:D35ᕰ[敚no~y vq!߫}[)ynV]LL/cc~_w]Gǚʋ?:+-+yYS'3;\UOcP}fDy&  ҅d!cCkE1\/zy}D<e!Yq&QnSNrq^Į3 k—3sO.^g_E!ӟdtv8GsΈS`+ ݘb&`&0v|yS76owso`Jշv[d{3{劮XvnѢB_(󟏦irMkaZӜMxz[5Kw7z3Yg&`&`&`&`&`&`&`&`&`&`&`&`&`&`&0 444MWXF{{RY345ކ|kIU&70c H^3_ccث~>߳VzE:|ɭ|zGr|Mk3 !`EM9.~AcLj9LrCoJ?rXfzD 뜵yk>Ou!_jVg֚z+/yOۮKy15Tr {.Dž\U<1ʁOsmnt83Χ鬅cΣӚs >#ONyN> ?O⋾͎:q+6B}<<7{1V}٘!Ys;6Зm!φD5u'|u決@ȆnNP$r`)={Y(kMq/~ʓŚ=ւ5 k8Ҳ_V9'ygO>\ ̕C'Ԍֶ]]i>A{s|- ? VJz_ǜy#poci%700 7WPxa 1Ό_vs_LLLLLLLLLLLLLLL`4pjhV0C1o^efZC~:<5:i=~Vȡ @}08vDrs v_yj+ΤZ#ԧ7AfD9ȯ8G;jZг&?kdl[ZV_MuG].Ǝ֮xK_ܿ.H/ϥ*=u]ӏsr)n&`97o! Wf]vyw_LLLLLLLLLLLLLLg655,4EF!W"#4G9odž#zE-U'-_>fzp^ 6ǟ5vY+MN|yJӜi]qN5:Dr3KdC:̈YcǗ7ﳪ4x?Ň>pϹy;$g^{{{7*nSbGcѢqoӟcoxq.iFM訯^ӣ/G91&`&`[E[N&04[̾QufLLLLLLLLLLLLLLL`룮(5ipJ4ӣrIU1kMziW<:D3ܟ5"s^_v윙hKB<@IDAT&lk"9rvq?Td0yt9Хuiֲe򑞽ӷG.㙥Snő$̹PKDk|x Q]U!CٙU1PiL_ܚ4#Tů?9A8OZ[;mU%~>fڷZ9;XþHt_|q/oUaǾ8zUܘ?LL`k1k(Fck]iMLLLLLLLLLLLLLLHqI4A[֚iSUOi>513;ʡ8H¦r(o^ww{}e0SN` 蒃˃߿z]<7%2>>~V ZSu1{;s5gwcSgt6q"N;:s#1cnNUֵwa!؈wZ۽ON|{8o^5uBƈNZ| L%rq[!^"pxpp!VSg~C~Yqj{~ 38,X~߀a>vvb_Ր,ڊ ޿}Hy\su嵯y]G]s5r=H!Gudyok=~Iv3gSsS{uvknG\+/YUu}/}+?,^xXLLlP +{ >C B  G`dѢrexˋB B B B B B B B B B B B B B BN`tts*5umˡq旙!ff0*3 ;k9~968A6;IWD'Ob;>gbz"Զ?ڜ[y,1.īcpB<q$~|g` ǐNksebcCYqLӇwb猝xkU|l]YG|~15XKz WMN'/}eѥK){}\?~EūQ8yO+|+ yp9癿P;^M>n~0g}^@~G;?g0oN!!2?#8e0@,h u8ju1/p9Ι!TԝsfocԱS!;||0l&|9~h'ZGQu聍xq;6Oj<;BͥG7v*|Q^x!s|0_W|>/<7\reG{QGٯ9u=SoPȯ|S@ )?>ż!B B B B B B B B B B B B B B J`h0K`h'faggo'cUG;`?q^ Գ:tYG3]gΟcG̱?vuz my^3F}.vtc`g,au luc]MN>K?t9{OOVx7#'{H]Ml|ɝw0mo}wG?+e۶mWyeݺ]C]Z{fU~n?R>/cc|$>ބ`\7t?+8O W_g?쵘{!!0Hg?s X/_Q rߖϬ9ճu1 1,S3؍jVvqֺ|U;!|XaCY9bVU(@P0KŚm1`!˻`,|e]r[^  b}b=ynzW q㌴oA=?O snȂݻ>:u=`bb;+:ۿ_nqMwˇ>Y7/}?Z%}/~*o(xίrᇕKVsRp3G!! W_~!w7{\ym/B B B B B B B B B B B B B B Bn P<\,ft/v݁6Yc;ŷ;Ç8SGۿb& G {ۿܪ.8s^5;\auB$EtԋY>@Ķw$&'>_۞'!o`?6{oc,qݰor_Hfu8orOgOZ^?-wl7z~^yS_~e·t.أ\> @@G]rKc sQm@@@@@@@@@@@@@@@ `ٵͷGe0,  :5kG 3̙x!D7bOQzጟXZ]ѽ:Ķb]lCwkWB u9#i/`mݱgΙ:ܶ}Ɏkl-|(` vk|ߘbbc;I[Xr'-{ݥ/^\U/+{Ck-[kGe|o;弗|;b,:2!! p7Qny韔wH}D`l,?r# L@@@@@@@@@@@@@@|"05SӦBoȻ)WgoxzљKf'g^M}0 m8cwZ;;q0ڿ|ov1u}SisчY &/5/}8||,/QۿO<1ƶ!Ʊ]Gen1N[?vڅg.t=btݬw:o_vcZ6wr٥ߗVqZysu7Q=w0Q?$=S>Gg0d!!{E`Mغu!0O>Y刕+Ʌr}M`]P>WEfYbYcc0]s>?vgFyvzNm:i!Xdr3ۆ@@@@@@@@@@@@@@@2>>̚tC]b!Vw.u9Llo0unL;<4,8}K}ܿ+:ƶwԤ3IJ n?IK!;o}6wub@ ؽhK s&]U۫ͳ>>8?xcݩE]c9n-|Gb>6/םc#YRqo\ͷwy\Ok~gy.ctv4K%=B B&!/ʶ[nۧ_,/[V8|S,%%B B B B B B B B B B B B B B m~k>ߘc][b~x[] ˌ;л18l;bvaL0;'?}ymvAp}|.N{`cY|$^\vY?x=#| Z*=>nHz;0<}Sun>B;؃57᧿,=Of|貏wuSO:=| Ёh3Oy- g.(@10-s'a?>OM%!K:v {zկ[y><:)ssLYЇ}% !!!!!!!!!!!!!!!p EY|:_3 N )TwNXĢ;̙u ĶCKV9_nb:䵋<}Mi`lv߁^k5&gXX Ap|9"m6_2;yƶ[X5ߟvꐃz~pxʇԾh=ӃXuǦCߘ|M''+:[__*wίmGWG{};vfz0qS{=tثnXlgh!!!!!!!!!!!!!!!!!!!! `773<1 .xbuVzx|;ӟZ=G Ě_[[\b6Fvcw9U7ͳ湼w+_7%U{i6֭[A '<\Wf~Hz}P +{ n([!!!!!!!!!!!!!!!!!!! 9k8՝s~gXѱQgZ})9mαu jY~}[wǿbN!ڋ#<81Nǎ 滷\o@?wBk]M.7t]!\{%U?v|c~k?Tը}y֯><'>}|P6o\ԧ_;[ܣ&j S=_Sd0]N!!!!!!!!!!!!!!!!!!!!p g\צ2uY s 3S=68LK 1U8Wok7z4pojckg=SE?:vj~j;m쾑a.pnm}0R} gu'\bP:.m-G<6b|OU=㽬m|ۿ:u]O ™o_v;y*k\s[byy[._I1gU>蠃*%{tMg0G!!!!!!!!!!!!!!!!!!!!H=7׵.ggYd|w\3螙MF'?:4cdžQûcug}gksqjbCU9?BgI vm$BKjou/[}?ذL` _3a;gbô>1]ٱ+xFGa=vlSߘq$ C[[7t}Z^W닯]/=Ln+_\,D2kH@@@@@@@@@@@@@@@@@@@@tY7Ե.Qw&auv7sPp>8cqa@ko;CӃxý}':q!ƳjװmcZ_[?)8W`m]m<D=0סּN-v8:?g#go=cޜYLJZG3:wrX_eW [qi o>moyWw#8\wϋ~}eˎK̰LI!!!!!!!!!!!!!!!!!!!!vS] C*;܍33ط,vđ,2:W?[u>l!faLUs9 qwqm=mmSzdžNv{U_>o8ώxbk"{8t{IAqV.``?XmkbgC >cډye`rN;kRZwg eyvo5Tۊ VoN/2h|Żo!!!!!!!!!!!!!!!!!!!!pWˮϮ5umycTtvgZưTSyffvbp=38c^Xj#USLpbf%48t%};=x.AZ\CܷI-Й&ZŽ؟Gc<{:5ߟ{g|g+gWu֥oU_v/U>wWuw_rA{6`l%'B B B B B B B B B B B B B B B B B B B oR3\5;<6w#ug5?>kmf.߸fۃ:ҟ8'5wkk.uڟ;rOάK+H ڂCxiXɱ12 pvgom޵ }A?uP8{c|罵`7lxrgt}wr?ݏO;™?[Zl>SԱv\c(:퇋<KusЅy%OZͫj'?ejO;}s~bogyݿ;9KZabӪ۹]w^5؉>5oFu{ÎN}t䠺_~%Ln/WoG=wg?5|x soC!!!!!!!!!!!!!!!!!!!&099YϬQԵ.ff|w^YdTgx|8!OU/vsb1Wg{v;DLMbX}s۫SC:>bsGg'λQ߷UuF{3cKxCAvb%jg5؍!WƩ[wk+;b<:~b]7/k>O9Sm| >n~v=ScԧG{ wx` ߜB B B B B B B B B B B B B B B B B B B B`!-###ԻXז8eVr(;@^M];m:uAf!xl;6O3 kj'm|,ݾ|֩>j:\d.u| |4F׏hl}lqb0]ͣ.QΨOx⏔11ͪݒu@@@@@@@@@@@@@@@@@@@'0gׇ|]FwgLՙb>g!fٻ֩?0<[úm0K,u1vB.68CMЉ㌟E-QN<7|SO{{'r7'\ YG`c݉gy6M;K9nvځ%e۶m{ӟRN9rQ"- !!!!!!!!!!!!!!!!!!! d?|M]1 ֜ލNsn8Y8)8c|mk`c!wZ۽ON|{8o^5uBƈNZ| L%rq?8k ċsY~.jlOp]r/: !^mo!R?~k5Nګ^wt;Z|B B B B B B B B B B B B B B B B B B B B ,3Ե.扙-v աyg;̹-17kÚ+Ίu.b}FUѩG>}'c}: M#sbY>pFg>,X>~>v?0ح;8j 'Ut{yfᣞetk^ojO9h1׵|U n/yo.W^quwՋWqw5O^uMʭvtG<݀Gˢ1p}H`z6G{` B B B B B B B B B B B B B B B B B B B B`FGG9Κ683bY۝5ftByƠSx礫ڏk{uYE|? =j۟\imέ^ދƇ 30cea'ZֵԲ?!, 8;sN >Zq,?>y?v%u=p&'q^^埿\򶷿i?rՕ*]˽}T9SN9yڡ]g[otu{5O _^tk{!!!!!!!!!!!!!!!!!!! @/u8z\ #BeXL9ߙi6F;5rG 3jߏnmb#|v梉Q9Cmg{?k3`Cavsv.qj7LBy=`w\;b~ֳFW`?lry6sa#X<`O skO`۟6Jmtby_#ϙ~~zZ] >SEO?q`'C:nbK{Yss-\}m}vsfP'FqZ5.Zumu{-4"d|A ǪWSgc㣗g_U36}83Ҿw>5Ϲͣ" vbǙ:=3y^O>rXm?lVu wMx/|qo}؝ * %,{^ ĵ&#q6 >1@_[C? lY{/o ;"%U?V񟮸 ߖɫ)W\qu=~bCzm hZC B B B B B B B B B B B B B B B B B B BK]_{Qf1?l1 a@1C$kc'đk0H}7<`l=%u؍QCq;o8rnc_] >bvWswg퇎懍fk~>G>>bg _d'c[؍ή#Axaa7;b䵿\׭;h;k?]ueű}{=refzm{Gud9ԓ˩=y{˸szנcjj{ 3nXl3B B B B B B B B B B B B B B B B B B B B``N~3MokK]L3xz?[,1̵s|?3#0cGgb}>.ozwϕ+>qUҗ 2a8~gLYvsȇMUaȾq SC=_ >ktC2?8X7U~S]4Yb0gAvœ1`N;b b co6^5n6XP?q޽]]j"ďV!{'6޻R}HXUC,q357GX}nrGN.W߾c?coظjrr_^\+,סw7T?Y2a.N:˿||_ =yϖq?ݦ tC3zo_^tkx@!!!!!!!!!!!!!!!!!!!kGFFήOuQ3"3H 1:뱛_fHM{U;;5u6OCq ڈu8;EMfcNw~km{W}9S'6X=,~|AEP@IDAT_윑 g hC䌮~R~~ C?UծgqFMSC.y~l>S>QCFFGCeG?T]o\S_\Snf>G/}q9#f"v=S w>hj_.sg0`N!!!!!!!!!!!!!!!!!!!!p Y_vC]b0|po(gc3:Td ܲ=<}бKtU\cSXѱfdžhvgi癩ˈ\{>7PcċUPR^;6v/R䲰ccÇp6^mu#ǚ=|j!?}cC֭߸ -_]+'|RηSeˎƉW|Gzm3ǔx+akƘ'23>A}j ~̝|ctc _B]5o̿-u1/P2C7;O6fL, n6/;ԯݝAۋ3b6;g?}{`cY{NJ{Eϥ}0{ksn3:PA,: 퉎~>XWSuq=e;gؓs[7?uX~bU7]]U|x\sűʕv¿d gq]T񳟟1o?/e1xLL7?koC B B B B B B B B B B B B B B B B B B B&066vV}ᚺ|瓝 rnj1EVufc!m,s7ïNO(lC}|,E3m{N<>u[>y?B]Ŏ彫[۬sèjǠ 86~ag> ށ<<`CE?>㽨5,zYY\]n3Z?tʻ}vёPYyiyRh6rWo3΋^P~'<e0K!!!!!!!!!!!!!!!!!!!!K-ZV]|c>˙d|Mw#uGBG1T<#W&<q9K5F |Wn_>5A<㸓lvay5݋q Աjaƒ,{0bqx9^ƶkKbWC>۾exɝz!B'!7܇o߰id{jrǯ(sCO> H@@@@@@@@@@@@@@@@@@@@9սu1|4#7n>vcB}&ƺэÇGziLvU;!<;>_yԶ;u m=.^ı PUva;=죏3#m!>֬j'Ʒgt'/X^X۝c7_w˫_uAHy~<22"=~u~fI'8utLoD:Vu\צFKeZ@;v.|,#s'x| |gj3|g9N ޷;988L:vjGM.綖=B{4}0R,|aO.9BjkPюn#ރ~ͳq#==w3==쳴Ǯ]7 W_}]7U|Ii+O)˖G9s z_U񳟟/%`~$z@@@@@@@@@@@@@@@@@@@ 3{M][r{搵9wq^qVIJ;sF}gtziOwR.FOgo>u7f|!ȇ.hy;/UGFGCeGϕ?=3N~v40cP>i>y ;n?5xbkJ`llzb0߁v搙UfalJ;|X;cC셯3M>U0A9p?l;?nomTc.H[s);qñJ̬$ >~Pt-lkb`D.,G!?g`rLJoX=!U͗lN/~~E<'eٲ|zrpyғP~駗{]3&BxP wz

!B B B B B B B B B B B B B B B B B B B $2>>~f)3(k3sT;"c^Uzvf3svV8c֎ά4}aj)ޙԲ?uXA۩a6ԟX|jǥ9ΎA(6Է0org:ͯjF:3{ڧ^w1,ݩ׭7M7/dwIc~W7\·/_?><1?P:8 PYC B B B B B B B B B B B B B B B B B B BJ`ddSumqTѫ7cCFw*Yd?,lڍsoO m&ǽ#z[=߀z;_ :]}=WSg'Xl{-^d |nl\:]ݻ΃9HcE 5tX[3:N.xkj`8_yۺW۱&6޾_^?/]ozMyЃ7q[>s> ύaC B B B B B B B B B B B B B B B B B B BD`llޛ^'Xv=#O rSevml'5A]ڍovٽuɳ?V]7/y/._#(_+'M^75B B B B B B B B B B B B B B B B B B B ":V u^s!v3/c95%n.[Ya}ɣG۟~ه|;>N-39:5onXlE!!!!!!!!!!!!!!!!!!!! He08C*;Ύd 9m,FٙQf8ukUS[1rNO͘v1Y=%8z672M6k L%RZ^ .^⬃ kX zvB,g받b~kUSWyeGC,H]+6LlZ};/|[1]u{~QV~ؑgSO{~鵻 L |~M:{c c`~K7z@@@@@@@@@@@@@@@@@@@,\73π0s&svh33|s=p`ko_Sfۣw}O<:ġ+ؼ5<~t{ϟSUs9#ڽoϺ?-i\ArV{#?;B]N=欄m`#ة<;~P?y؇Fwo䳰/7dr{ȳnȣ,P!?(_>汏.8}r>ˎG~˫^{7a?صgmPȯ r)B B B B B B B B B B B B B B B B B B B $̻]tc]Ō5Sșf];;m :qXgG1:o ˎG̣'6{O֠?3B}7ko"vrڜY ^T2aG3/7aw&3=Wa^TcI]׮PNcyYп>}/-_˽w_N:PzݺEN wI )B B B B B B B B B B B B B B B B B B B `| ug061s3?7{vx:;2j-a#ALsٱ#mVw,gF/][UlMۺ؏\7+ؾ.Z^  gc/l| ZƵk[~'V9EWg'|i wb;9WWןx0{@.ݛ'TωIEwnK?;z&ǪoJ՛h9@@@@@@@@@@@@@@@@@@@@TSߘVU`3UgLL !%sfx4Ǝw畱!3SvkK3x{YC!|l#Z.ƘϙۃVu?qsUbc݉h#!N; xsO6jkjW\}mt|~@ Ns胎UluO]vpW]7 B|w=)'>7}\u5_4PO^~^~̀mpj@@@@@@@@@@@@@@@@@@@C`rrY_u1;;ĭCkƆL2oeY]5Oٝf.1ۃ<枉#!Ogm:qGMckS] sF~Z(/Dp><\,~/Ln]O3X8go]aPE>v>>D?gdmj!KZabo'|/Hyϻ/_i+O-}2}h_mC7SB B B B B B B B B B B B B B B B B B B B z~jkR 3O̬4v56l59#PnB37mu9/M=_8rZoWq~8笅BsE8 <3c#|<0 A|c|UxAskvyC>>#~kهx}| ]BnC1'ʅo~~i>k0:5|G˗gv@@@@@@@@@@@@@@@@@@@@`tt][kS]3G 13 rF8}'볎3ƴNMz䑃fvXaݪvqb4g.qi|g{`#X=&Θv:;$>j.E|<R8#B@1>LxL'V8\1ډ9F.;NjcA 5YKz WONZ-Xox9(}%z[>V>ѿ䥗rϰDg{||c@@@@@@@@@@@@@@@@@@@,@u(oks] 3x3<8̶%\j:͎6䱳jc_co󜣶ۜƏ !:MpC|? .#(BM/9|!<Aа#xnOv]NgS8DLlt^`u>/d֭oߺ]e-NqG#ꚫl}kY~}ټ Y.vz_n~ g SG;?g0oN!!!!!!!!!!!!!!!!!!!! oo`~dATtg8}3'8ٝjp8rE=ks&KC-޻욝}g&>5ΗmTm?$E8M4j4H;@((m J9H"M*"af|lw=>߽3zZyӺo_cs֟+qc]LvK fn$dӷ|y]~A!>c|`o5⦯zEd,1L}zh,X+CH H;k\ s l'zq9=:X[UN/Y핏=SBsK_?qv=G^q:Խb~;7h70"pB B B B B B B B B B B B B B B B B B B BKaVjStJ0Cԣ&[ˌL?-~9_Í>v'!zen~5֌K/ڙyZm|lޔg>cZ[#.YNbIIo\cBR9cB{;_G~ڢfW{c1a1=B B B B B B B B B B B B B B B B B B B ^8k_̧@aj- JT猩)lE)_sx7+G_^+FG!sz"'^ơANOCW?SW#]z207I86 Aw`1L9SMpGϢ{t92wl|@9wf9y퟾we د~/ٵk@!%ǥ__x>!@=^o[9jX͂{랭a^(W3jG]2_՟r0^~qk\z; ?ׯy S f gk5uIݺnq~ę3&a@tze3αkOFі;z7>=:xKOQ?n2m鱣1Ƹ߿x_?ʚE/}|s_={_YͅTag@@@@@@@@@@@@@@@@@@@߼>4jCb ݭ3tu+_]=537>u3d1.=r͟sa<#YM|k6ie2- ɑ|y.SPԡz? Щr7=[eSO>)\c|>)g>צq!5~G}mׯvwj ̍?c_,W=SuӇ?p~0/|8og^t_+^Wߎ۲N o ÌC B B B B B B B B B B B B B B B B B B B7 ׯ_?uWWj JS-.C[>R|ѳnp > df^3~c|s=x#th[cRm zbN&uG 61D.Q-űpAGG s :|8̓|37nkE&)Xd, __3*ڿy:oR~x]֯?Kc|Y{[k ߔ_?[/k5 +S-:jC ~ =uh32cXAk!7C e|zy/2dW&uep&MT$'߅+?u`-`h†1葇10Ȱ%?[ _+_͎5荥l7Osfqa-{pW#꯼쏿>Za>Po/Ώ}өA@@@@@@@@@@@@@@@@@@@<{i-=}l5룭ubZex̭_VF]2ը;V"NzeekF4l!l=XJl|YzH=tߺrr4Ѕ#7>+_E0Noa!4}.Lv#@k+H3~]]cc$2;x=@i'>viv|u[9g d|Ïƿx~}[~=/g0o0'B B B B B B B B B B B B B B B B B B B ^P+[~e5~1Rjgnz:S|jWxBb]k?k7g0ց=Ӻ9V{z̍$xnƙϺo>սn ̓lsaBЇ<x.xчec|H'/ rD/"W|?cc?W}яua@wegӳWvж v~H/ שן?^aE@@@@@@@@@@@@@@@@@@@ o\k; F2s58SG>5 }l!-Z='r@nߚi$sЗ=r@7KS_p kN}]tv%s#H|!qOeǗA 0sk:BW|ÇԵ'?X=acLץq-dh$ƢdB.Fc棭(d3yq.zO`"?WM/}X@|1]8؎Va1u7G+̿cx!!p^kM'Vw)Bbyy}glkL=2~Pm;-F΍>L8]IЛ+ F9=Y|ȴe{R>CŖ.C1صӿ;rCc|L_Ƨ7>^MqcØgz g<Ĥ1GW'B0">cF}c ǎF^<^c{SOMl'Va1_ tR0"B B B B B B B B B B B B B B B B B B B B?/W(b[2cꋩ]ދTc𱕿xլwז޺f=9y'DEo-q c1O\C>:">p MdoW[џz)Ҍ&8ڊϯً%rVa@@@@@@@@@@@@@@@@@@@ {֢޽Oz2-r6XUyt[-'z%읣i_92b #= ~%ܱC8>1|##>4#'>~V{?y}A`;uJlg~W2 ;uׯ_WWsQCl15P#cLfm2CW;D1Y2@br)_jW#) %i}(qxt&a=:SozOO]퉃|ԇ xqa= ̹=EGɛ>{{?g]^a1!=/ )ן?eSaE@@@@@@@@@@@@@@@@@@@ ㏽/wF:TZo͜bzxUbr g?}0>-_ٚ166=$uѮA5<'a7B++p.X@ͱrxYbuUK: o=97<ƂK '>y*[m6ؚD1 AZUzs8}& }}W UJ@@@@@@@@@@@@@@@@@@@"t_7,w(Gz b!j;3}X \)S<0>z2!>X@b5=;m 0}慎i>c@_p|}=?s|z쌃>L>e]]GO^ⱆN]Q,!.[)lM}6[LJ@IDATA57uGon#g+[<+cn,l!zx'K^׾)=p>SZ>砗I@@@@@@@@@@@@@@@@@@@\~=y׾._[_̧8FY*S@.^1f+o]쵧gq>;}}@zCOo!܎3/ς̅6(LJ'D@G_ʼkA&JO|LkE|^5 蝯Aǘzr=?o]kEl~Ο>}^O~# On!!!!!!!!!!!!!!!!!!!/w૾~pe|땩S6_ezPGB15;LF1YM\a^K[=_uc4|ɘć3W@OFo|s' g|4=#?W{qڭob|e(yw.2sٛ.'Zfj)vx[3Y<ѥQϬ5ɋ:gRl|G^=ȃXF2q핝 }gnBBc[F5]сGy)z؛?cx5m<l-<^Ӣ \P7{oݣQK=뭩1e3VӞvO6)$Y|G>i3? c0G_ʴG< / b^tres.YÁg=~x=upGg a ~?z8B#]sg|SO#Й~ǹkxu-軖1Ƶ7o ׿ٗFUϟ$2ECc>~y柀4B B B B B B B B B B B B B B B B B B B g\~|/;JWjS/Lq94 Y{i!:sOY+~ zVʍ.\A9x"֮^iZԥŎkП9CڙsڕIWv YI̤1_*pv2m :ȝnʍCOѻ96 ̓'Cbm9Ç_͘k_ޯOn/^#ASَ:{+rC B B B B B B B B B B B B B B B B B B B6i??#ozӛë=qrTa1ɧ}jSOnrx;CEz5 c0Qlz蒋赝=clFz,!eLO 'wLN_BӻX˕a !A.؃s}/gLd.G|_Ӄ9:lC'7d6|9F/<^.@`;)zhUs(gG+ O@@@@@@@@@@@@@@@@@@@<x>׽k1Z>u S̘S5#f5Fn95[v_V=AOR92>O8u\14{%נ/,c|f.̘-fᡋ?ESmg st2Z![ ፇ翼0y8Wl'O[ڌ? C铹|zj [A^A{mkg|bcM>|##sCv{nppdQ 3yc&;v.[I=wtKΑfǞC9ukk]c\S{}8W{~/^KEew;|+_Fx @ >ӫJ(rTY[l*|Do}1wYS2G{As3^ώ>17rܼgkhc|@3ι_d22au[0E\0s~9:ԙ'19i썿scȌX?q-0XÏ|SO=_dslQkb~K1`^aև@@@@@@@@@@@@@@@@@@@~)~߽o?Vֿu[x:m{OB9=?Ⱥ)fzRO2뛵5vƗqv^&I?BoÆ }s{uՙv5 Ɨ367S Ԏ`aOØM~f !΂zȅ{35=S]31߷=ķooh__{oo{J}}b5NG,l:nXA^=zsmC5|ZbA?JS=G2~aӹzW_#vY;sk|7Ru,[r.]"qm7ɠ=stam'[\CL:Gϱ1q 4uR[~_64| gߡ{ .{gkbޣrޏe+̿mk8{_5_'xWp`I_a ܩ/^M?ت_SFXv/cckXYW1O|rdωf|+oL?&GR^d\cu:K1cl.LЅ&I郞&xhϓ87g'il{tXe_7|W5r>|vBpa^V{&~!ӹH /@$B B B B B B B B B B B B B B B B B B B j?}G>_[>v,4ꂭxH!W5ti?k?eE_'5ȱ39iLuf΍TqCAι_ 9@fϱW`z@ =ƚܓol3kƎ vYÍXΑy?X-{#??o^<|lEgɰW_{h;f 7@E_MB B B B B B B B B B B B B B B B B B B B ѧַۿ5jOFݰR/l)*|H>ckQۼ ;>Mc =Fߚ 7k%lgCkmqu86rb2w]S>An5,՛#ߜZ ˣ'qA|mdlAGB]>ᣣ sƟӆXt lf|ҷ>w1G]3vX1>|tOc;^B@ۉW?-ڡɹ;{/GWX5GzOV}lGhs!ʹ07dEE+̿kxN>S?O~WMoz]|j .t>[,o6bN0sk[/[Vz3Fg|Ϣc|РS{|¯k 2Ozd? g7>z/3b:[-\I~isBi`C>$׷`}$҇ j^~Gn1k)SwƇGB-|Okj/{ğ/kwu{]C]x߅enE8tkrlezGE\"ZK58'.6ӣ=xi#'rƐPc_됱;F?'دF-4teW҆K'_]$h_]LjR&"&"}*zz` c\*[m%ߜoWG !_]d2sҷg]xsoguqWٯ;k{8hv\WG?x^иGطjųý΍?XY_s'ww?z:}?>j{:b~_?{ϊ?{?oycheA_߾{טCG)3/4ȸѥVʟX'EȦ1>hĔLա7>6961>:3o!go C_mᩇ %1v-$M$6U6s5|< M}tt.=4O>1D3 uy qB,GG4眫 Oǜ}H[z>Oe 9;}!cNzFA;A1G?Cbn՗1\yӟ7_N~?pc?? 6v4m8#wǡo_Zϟ?߿;GoZx}?vz޿z}C?:=޿wDzo } }wUWOgn|2s?xvEh 1F.uMʱe?蘯iO^̍\>sd>ݹ_ץ߼9m\3_]v'sI? ?my1ce!xwaG!Ǟq-zէȵqe|Ku7>cZi||n&>;O5n_LlW:v<8/gGϟ˟=sGϼoG_occ?텞g?\/?g Cxv9lE߽}<p7-ޣ??|gџ?:vĢ} ~ ՙsGrX9clcMOBtn|: FУv9qNUN?e3>vDƜڠ2o [6vb 9kf̍-4._.Fb$?&wSt1 @/^9dsd  2P |ѧ1'cuy"ڡc?ĢO.@53yCG[xgaF}dƢgͱkG/ɹ=_sHsyoo{)LM-o]uĵy'`k\!u=^bB{kϟ?yNx8w C8O=sx]ϊ;jCis C9O?sly.gEOOl{ F?;:bB㽥G7𺡇n3k.\~.{،;05׌Oᇸҟg\z)|o|сz3Rtȝѷ7Ό?-Սf|򀌿ώkf8d=u;'Wo|宇5V?k纗x#kO\}ӹꆧ~Sz.8IMXɺ; Ӟx̛rB=>͜\сaC/av{O.BO#3!r_##=2`O{zHbfȰ<׏ㇹ!;מ^{r&>sk<׏kB<7:󌿦/cN{d<1M{k՞ƒx=~8Y5XB_3<~O__9~ .ry0{8õ/W_1/c92不lwӱ?{q~w8z޿{\/}ɹgy>|J,wǟ=|~`K S{h3Gvj{R7sƇA!c?I9#1ti3T!w};?3>2>4աWOƬUr!xwiK,p㡋Lf|O]D8DbQ =P. >99a.`kćO/Do|!G>8iyOz j|rI#'{@-&/cc92iGqiwj+ç>ۦcnid|g !oF 憮|ƧA37o(>|}擾ywVv/)=j>gOR{?8odz}/S{޿GW_w{?M}K_׆Mp'3?'g{?dğ= nƇo1Oϔ#Çl=D_!1LO_=b9R/xlMh>1rH\8kOncesFi+7> n7OǏ|o5>~eF_3^蹞5gO}$O=g*Gc}#>goϟ?$%zg{9ue/Λ9$%wT=wjrxMΏ;*;b57۽=x=3>2}!b6.&c?t 2|ti\cAOszԑ|_n8cug|xG\ul[\?~ #3>96=2H[zIs4ь&?}tC|.{V.Q\MB$iR@܆#o5Cd~9;ר_. 8\n 7q G}d@: d _Iȱ3O䊜sV~}4q]1g|Q=[g|h|0W=k-Gtu-?cQ|o\yO_ˏt8^];.vϯg{kmU?{q|s?/zqO΁޿o,CpOa~k?/zqx޿B;4t_޿9?{ʍ{<\C.c-~3>6]C|tM?zǯ>q)_mM>Կ#O|DY!=!|`˜^kٜA1{ǟk`~jD;E$o%gR*7{NiGLmkp|Yj'Xls5=||c|\9 }CqQQ9dkF!tӟ'|9cVſxxqB=:kD_e?=vzFku3Vrw+{ޟkw?a+?C|KߟNߡn}R0\}vjO<ٌx ߸OgO]4]F4ӿ^d8??׋.-;csz!c4Ƅxl|Dſ38ҠwX g C쳣K :܌O[M;c7'qڙ|kD>GC?O;< fh wj|n!mG뇇őG..kaG >BW}c\_'yk|\oΝ?3y{9;tŞx@܀SG_:~iy||m},wyk?ߛLxkwGw߽C7Gz>.;K'x=a7vƃ_ do|-[bY?rcƐXƘc\M.qf|y5!sL.vʦcz!M`mXÃ\;sѿӿ>=t^]~n=z^| 򚠇ĵy hxoh1ysG?pw<]{jG{DzHv=㗱:c\*昹ߏ3WGce KhѻFtkwC3ßMsܦ/sF~7bA!}{+~GO!ܮ3\0|3Af@Щ\?x".i|l%'sƤ~=h"m\016!r0^]x7ox`$ϓ)Goi|\tsmcA}ڳxuK矹{L#O팿X[7t;-~w~罥ς{>{ص8C=z~e?{)y9+o ?8>K6 =MH9y9r?S_^7w7ᳳj{|?SW|YvȽ翼`4Bo?Csyn8汆z ?g5x__\}ߜigǟ?/rbCos+_!EgeF=t6k N8SDB2YsO|r՞<[=2s㫣v3>iD|xW{37tC5|/g~!ӛ>!㣣v+6}`?So؛ >o"?}KO+F>էg.y7g⛋~|!_ŧG!79LJ17sca{4h_{KseqN?$_s9ǟvkƇxyCw+}mT;^W]-jIg}Kߟn_Ǿ. vWo}[Ƴ}<߿wo}pWz5=?@b|7|`s92yy;]?אk<K@e 5?O?_썘?c\cj|?[-=~!c3wp>E3>7dg|cy5>g xߴ[썐i{_+;81ğ>=9X|tS <K]/GçC=C(#G?ću#מx[~хυs?xcc|t!k;cCn7XyI2hڣC<GNL~m?\?34_ pw}=6קrt=>%&ibB(tXpaO0ec9io,dƐgL{|R\|>@MLo|dsO殁=:e_3wGs#Ŝ܍f /c3'_i:@eY|_l4bmg\ >[|t].ro=wfj߽W_~d.w/'=N̾/}>={KS}C?\Ⱦ¢7p}`_>=i4??ׅsԟ2;^L?} |W\9oրoxc6!Gћ㋞k yqY|]}k#svmGGc􈉮5<'Wj"&CYG޿;C== [gfkAQ^Rg \XK )5]=c|՝9__ӧ'>E!gn|փxc/_׳0g fׇ_(ߏkwu]usOi14q#NbM?_3O^!qiycys_}g?7 pE\K_1N5koߞ=p?y;U?hd^3ʸvx?8iv58}.6gnx1o?!!Ϝa5z#/\zћCwG?4>Cʍzg|cwA_co?C>=_=M3ygx4/$gNB1Ģ9I Oe&H C`x:Y|Ddo|ztox35=46WGǟka<K_ڒߌތoMx3u\̘сwY|9\Ϛ0qmwODZstN3k3Oש _N/ֳG[1{3RVsw3{Fzh1>iwy@ឩo_7?s-Α޿{|{)Gr^xnw߽w=c)}?9<|$qgܶqe{^zvN1fJ=+0$ H@^W/օk/֦Wu ;6u۔`5?u<#o >uh G9eM[#'!-(㎏:V׺crQ=k1c O=i۾:C?!]m ŇGHAWNL!O>ۗC3ȉk߉Ʉմ㡎>u@7M!ˏz;m a_}ȉO=ۗrűD>︝ m/Cӧ~ڣ_\+7~B82珬pW,s9㜆8þzslG%>}ڱwH?5S/\GP{uusW____?5_5jW_}_6lgƟ?6_?a3"][/dcTuԵA?|x^@i]::|wl&.])fbO|9^g=W,ןA>'ӿI}=(G~&cBƱc A~$nۺ2K9icy <\LTY /J=ѕౘ9uWmPbEԙ?NG |O|Ʈ"f?[|dy C=?mmM֯GN;sB.E o3s֝^zbQ9Y3垿=9+z,o7Oߌ9yq_VEG}lwwͿ5ZFͿ~h?1{'P LL_dΙ'>>[v|:u~1w|rOOd%}ࡇ lC΃Ry3ܫy'ml$>!!z^cBJ9bbӺc|Fà:6|ʤO>T_R6y}d_Ev'Ce'юrl) $Х$[G~lٴ(hgIY՛ uE-RQ=Ytw>)ŧN&TWؔ26mQ_.נkuM?Oupxg,{؉ >Oߞo?zxZr^xfX]w+h 96t-pw@!6lDݖ6h0ɘ=B gϵ'64̴lӻ{v;6Gz5B d}Qڜ]2ȫcI@٦_{ѥQ=]%mcnh9W>)mc '>8C؃(mt!yc|KgVG%>mڷBȉ n 9>Hٚmls 'KǃMe,< i##>X"cqe{t2҆.u^*Ç\##!KΓRz;Nħ.>%!zRIb[2F0W߶>ЁC]|?}l|{s6){G(>*~xzGÞ?;{o_?,4jYw_5jg=>ߠqf|??6lgƟ?W<'1wcRUmʬ%o~$mǺw/uw!?JG.!:wԑ_IQGRAӺABڗǦOL+]p!!_{>pM|v)r~#E]=q,9. +%>$1?}5/}y\k]qkd,h'fO]zYgK;{=oGu2|O?+HGnsqe޿1$W/KƟ?" KϿ+%y}+#|xG<>[sY"G| O=_ö6m/&%me(TfTox tz]dUorP{e8OO><6D=&crڶ_;Α2{c"$'Mۉ1Y˂ABC}Q=l ѧ᫫쎏M0$hlz+C>tfY@Աݷ1#㣃!m;/ĄG2Ў/,?]k6>||={k=Li1}}hc?{'+:SL_x߰>4p=4Xg{AP_Q<猳sB̵1k?6{W/CuV7Mq|U_YY㙏}띺s.;GJ| v)`}(|I|#+xЁ/>Ŀ`]A #oToŢ~6G'ѓ/c/qks6wO|l-@+ި~.9ϵ:aP(-~J'iumMԓGɋK<FNC;A۔> }6%/񍮻1f6]wLWG'O??ȣ16K#Vڒ-I|W(?uz`eşƵT=N3G⏞=ſz$95^h9_ߍ93Gjc?6ls&w/BObEF)xޙKޙ8{[B~Ԏ(s}ħDR{zۗU۟`w.Wqi,d!S_|}<#';R|xؖ/XA:ڧ aq!G,zu<l?/yhx|9s#%}.m1w|0!O\?‡mS̿__ϟuw!>4hw?4hoqͿ5jw?̻*eglwoJ 4`/?U/~O?6dW}y?~Y_|0SRwz𕣤3/ a3l:_;vv %Cѥ3%rv)?!}cvr";bc/ZuQ}Xqu]{ó:;{/Pߵz5/gguv]o_?a#C;ǺC}O4^>hΎhwl=c6X9XC4 nG?WX`3{w%>|C~`R97E>?-@OhC؇ħ_?:|vaK6DGDZO_{grm>!I|/ؒO'ǣ.%zS8 e>+IN }r8GA6/E?Gyx9S k H|Xe6T1XbK\{Wnyx_]hw9njٜ_8v_kұRƒħFʞ 3gN仴]sy_ϟޱ3c޿{?E㯕qW'n'K?/7~hqE4n w_3l{6l9ye_Ϳ6n{ޑO'wWſ}eJyoK#2氄n9Z;oRmv?6g.'/.}YGG;מ%}R68rY,O|lчmѿ~I|J E]}%fv|}_~GV3|𵍭Gb8'l~&>v|^uv-߻zs&ܬ[qGZ:ͳO?z;EYoJxCj?_+ܧ7^1$cά7\jji'wH?4o ]Ϳ5Z9$s7Z aW_cxl)cɻ\ć.D<9 ~:ҧG?6(Ў nR{C?~a39H,'uΙ_h}ԎڱM,uxs<@7XǸ,|M1 mSwlz>OrȈC=w3{_#<d~׎OW y؅hgħ/駍 s#'цA_qg>sy(S^᧿cV_ >u!te}H=9N+_O- c9,td!3>:PR!-|1x&>uhLJ/D&ȢK@>r2[?vg_l3|})<;˶$>r|WGć%>a̞?_w/1!a_?6lwwG?5lO#W>+e1A_2Vc|2~N|џz rbH΢-tqcaWmcŵ6pBV||UҺ!uѣʱ:+ ]1lӧ<z?,0՛ '>2|O9vtw x̺2(lbf]b_3oLcԳ>wJ{Vϟ?|E}-}z~W';o?{z'x_nO?&'"ߍ7nb,OKƟ7?CO2?1C;Y'>gЖG _y*e1C^A?p%>)+>vycgȈO]=J1!$Ng,_6}:9O7< jI03GO/>勤CƗ7G,,yEhR}dCOE9y}cB)S_w;ԧ׶ yAϒz6'؁Kɓ3tԧ~ڢcG|me?}g}穏.d3|R:Dɘ)/7\k}t._'u?=X ܏P?{3{a{?4hs_SeWk4lssw4|hG+~~_?Ϳ7^wͿ3~C?۾g'w'C}aķԍhF?C=3)ڢQYm"c1_>Js_͟o`}CRg}ʽb _IڧdBPN :vƑ|mЦERrSys1cDɃ,<#† lOiߨ>uǮK|(C&=sMO:^Ö>(k>JÇ~οBC_ϟs?~fN\iKw\g('^hc#?r.6WD7;4X9Fy_gP6j7hu|5n=B7<L_4Z9q&e?Yᾠ{/ΤWwUwvc3on۾SO;R8^ƁW>d×U^ SL >iGYo%rTFIvTo_|2}l9PW~To2G{;^=:f;QOy?E/Y壛u>-cd<<$籿$?ZO_;7+e@IzN䙛u}eߞY|dX7={$G_ȀIQ=l3|qbІs`&>2x\pgv`3>iLJ/g`%lS>]Ǚ9/Q_K$~.Lmu(!99Ve)&k9V;>2WsZOZO_Nx=z 4hgƜY7Wq^~mܭgW\Ywx~W_?7h\Ϳ?7nPͿgΝu׊/7ʿYKo?A>hƖ8OI?OɩF;p++ࠫ>rb"?w١.>%#k_b£/d:r>WVX}f 8s#(% rڵԾj/;6'v ;+BS.h(;C߱ӧ]O|d{.ne-?Q1|[WF\K ˘Kݶ9ۯ_x@J|x᫋um'>nX/P}w,s3-g?={Gzs<_{5h8<;1'=ֳzƟܩߍ7h_WuG4΀;4f?6fͿW s ?6n7诜5@r^VzS[y/uK9g;1s vlKȋzQ/1_w;J)}(MvO爌MC|NꉏގOz[bˈ|Y:q^R G DGoA"狅;yxO[;an6O b ~9R/qvW^)?={5gg(w*?z_8;s_6hh,Ź4h5gFA?rW6>OͿ~~` K?[[?kk?-o|աq~ǥM釰)~&6wLqJ,yt_[`fգN;nwuy\ӆ/.H/bH&B >R&Sb/_:C vk?_2}y<?O̬cO=x6]=H y~$?[={k0O?#~;tc~X߅2)?%_&]s4ޯ(y8B¤ȩ:zf1Qj9H|Jlj'uRW|-Mf;>l;'ǘb!SW?aCQ=껌mJjOzT:FK_ڦrL{+Ome>kϹAo)=w'wP޿ޥ=bc#zf]wHƟ~h?|Xv+?xf4X;7lNJ7%l7X>?=gFͿ>7§ow {C;l1?)?'>:cv%Ȋ]c9G x9_G~߱P3&cc[|b>2笝9)!xaS=xgEu(!kGSe`E`$u&NEsq# t>}Ʀrᥭ<]%tSȦb׆`D;񱍼8w:;ɉC3>_@:9HRJAO>i3wǎ >]A⣣]] !|b yr\>}Q:^$AqLK{s'!;??=W}o_3%z%m9cߍ/?5lg~o_fl`OͿw5Ά~xG~~?6l~5/;lߝOG 3]Qԇ!˓YYt͓>89W 9dx,Gs #6%g}H /:ӗ|x;~C>bIL tG0yFIM|,o17߶0S&m#|_=m d[|OJ|ڌ1·>8󑏝n>DN%>u}MCO+KyO߮O[0?}|wzO#|ƌ Hgg/YEo;Z4ml}cع_ߍ98>ykt@~pNѱNZΤCtt uHy^"^.ڥĠ )G,|G)?w:ӷ:6y؂lSמEݷ=sѱ.>Og_ ,(}\<;}gP[޿g?VW_-?gcƟIDB_{gߛ317nblhg~~X1YD\8_/? ?%D7oLJm\m'>|7|! Q6/&u}+%mO2zϹ >~C?xΟ@*/GɘOtu'3um_&٧nN.x)\(Zb>"9uے`R|\?mcL[gF⢣# Ĝɧ?GF1;ydğ6w966ĵ§?m.#c/%TO;{Dz:/?y8#L4>`MW_]y4X߿O5j3ߍ} l5|>vjgOr(Nˌ6d=@߇+xC?C?X-Y^H|򌝌ͿG.m #>|}ӉK 9'V& İM)QϱӏMڐxVVr|džt|gMO ˺>ufu!bІo}ú/ֶ%xbZ.>+u8׬!Pնk+|lM;__ϟc xr.w}u`4ou7 F-*?qf#(!%>Dg3uu?3N{\'~ݩ޳޿/?cOrG7jysVgN?1;Ofgk9͔gI<lSWX=?u߽$iC? gڱqA-'w͟so~O ;sGo _>8caJ H2y:<:4C182RG_ȋEr1ا d%d$&r ~OQ=HQGֹP0plK}>:g}g9 yS nw.ԝ~r.;:i[iqCbSyV9}@+}ڱdÓ1J(Z&`tVvq.E@t/t8瑏}BXIs|nWJqqX ;}-9(?GGrN$!?1<ֱI+uΉU.׼5?k =OU_N_?]Zh;gߍ7-߼_?4h(gPͿ^`O4hAZȜ+Ϳ?6l9_Ϳ'̿WcXxox-ƈᣋleS灜uec?m1]d?E:@g0^|xqQ=-e#CC ^W9x u$rg؄A)>%:Z*r9QRW{:|zm@H}G%>W1Gw|/~ꉏ mq-!~{s|_W v;{z:̲:[XG$w|wz1;y%=cc#?5d'Lj#7 v7hc y%=cc-#?4`'LjǺ#4 v7hcͿ;-9/=3-l,!@=?su>co=)!Jh;gy厯6>6=_l1^;mPo Gh+!.hC\;3vO|s};9o>DΗGŐ|Փ?X2<%:r~U/Rڣ} ijm u)9ǿELm%_;A$<> _/ۣ&|_wuoskv+|!]ſ?7hG?4hhr=[x-or}5hG?4z6QfͿVEG3o_:,g>g_?%TooуKO\ #>8ƿ#}'G}A}1x}.|qs̴zG}1ގ:F N>tɔ,m4ҩ}ɔ,*pf!W>`>$tŷ&ɹovvr\9F @b丝?}ԓˎGO#|1a9][g ksfT,ߨS%o޿{52ou`ŭa]~Ɵ?xgϹ#_4^9fޡ?'K__ͿxWݘ//sGˊ> ?nI_Y&z#_Է4@Ϻ1vħM 6飮.u1@W]d3߾RGl/9~.t9~/crt6?BNGy:ImM"p#˓֑M9lKkOL<}׎92꫗mx`QbD~1GVO>ڠvi_|WR}uhԱ>]s}'k3V|R=smorY?`$]gAq,~i1Gힿz,֏}g4Z~h6sE$?\ ?4hA/87x-?4j=ʾh9GmJƟƟgɾ~7g?޿g+.%tvg!Kn?b"k[UG8A%#>] O8;.!1gk_q-ilnhK%i_c6<7r?7<^d:Ou8PB$NۺxM'qF~E.mH|tŔ/}ɣ|b S}+ylćOrz =?6_Lֱyxxv:؀w_Y{ş~c=Xzw ?5\GͿ<?׺ jg?//߿ߟ^A S/ S?S??OC ~ˁwϾ`>zO#}s̔7[|qa66!8?^Ο͘$c6mǧpCYė'i;QGG=AgǧYx yP2Ga1џG#|;ڢoTg_|HO_G__[J`M9?{׊%;4=/kgOߍ94jb |lG s64Zg&h{3ǺK6l9Ϳ97nb/+f~7~beggP?o?:cGҟ!+ϹFv| E>󇇌6c@& mul;h#>O!rآTgb12 2MY|qZv _i}~_ǖ?Xz.:2M|0؄#}M|9l8J(XG'9[s>%u!&)؏->b9w?5⯋|;﫞?= " ힿ_@޿FW?5l]W(?KͿ7~~ՠ~~~|AüWy-x|-`VqM[u_tG9H9ٿ,_ߠK61/B-19n:SGlj Ixxpe|Y8k=uCnSwLJ%/98GOy>8Wl]66?Pc3+s6ϫR|0;^JRS~]\sDz:Crw=cg?Zܐǚavzw#޿ΐ?4z5c _?70vj_Ϳ?ldo5nwGuw4;o֬?M{;{1.;]odz6מ6GQ:^x$3C?ԥԞoG_r;n\3$zSy2w|~{ii _Ш/ɹb z_\,Ֆ/pr؄仰|Q6ė7XwO 9G XO=?~s揬cBG{9 ƎrOgLW؄^:_Y]?^==/{з?2W|{6hyGW/<ﯿ!c*^e˸bQkkZP>'% to_d%q)ѣO|c %8H|+ĸFQwLQs,GA[>u2cx!_.u'Q~EAcG!6.ʠ)K9_ ފ> =6VW?DJ{nFƦ3y1W}g9d3||+~->uK\E8)?={x㿹Kz6{GF/OY_'j9g?q76lٿ?Ϳg+~y6n==/'ϭ ?xξ?<§OB\qڗmd?eQj:}V>T]>P~?雫{&ώmA=ǚ}!#N'dr"?>1ƃ FC:֗u62ڢ  29;NnK|KyH|tG3y sئM s?C/O_~Q>ħ?=w3'?|ό;3oߞz{P4m<87gsA Ɵ?6lg?7hyk#MFp {֬ ~N_S?xY3D;0x ǝ#di<}ߔ{A?篶߳F|/uf> ?r@>AJ[b|! h 1sc1v8:p/E|e[>my2yA}mdv| eƦ00Q2ǂ3 Jy<]wvwLsȋO=OBDZ[WYr3g;.]#gcWş_5wϞ?=NlEϟ{⯞k=w~\lE? S_gK޿{1/u(u#ŧ:u i >K?ǯΎ6Gow@rQ#{6hg?GR+|ߙGBӗO~߃/~<wu{s3_ݽ#zOx6lgƟ?gLy'_kO4jW_U;gϹ_#'1OUKŽ>rY>rNȸ~KAsQ_m#{5OBgO|MH>(%y޿D#`l:6/D۱PhX ʤ.XjG`:Llb JRDM,m?IIW;vsP {TǓvD_7\~{}F{'qϿ ￞={GƟ뛃"S GEu4n=C\?? c}ʿ?k֋gl޿# V|={z6({;̳w;u=g3\o_F[YGr#B]Ǜz_gҶf~_bx"xOq cbi+\Ƒsȁ9# yYTm}&arAR=dx:C` [Ić]?q{yvw>Ȧ C]Q=HLs_>6gx >9gşwQ}O3x}Lwy_gG\Ozl޿MGǼ/5lMֱAyNrVd6Alb.vӗuJGN矍s >:$ߺ2A𱓶XgC > _}<|:o?|j#sF9/?g)>mqҖmӮgS~x{Yss]|tv_w~g3~WOϺg;o_<wm}cq_52LMG_?rH#4hs}aݳ2Ϳ76>G~s{3~z ~l6>Ugo;L@OƎOsX:Od{'_6mrV _36-WsCA^T_~L狤Rϗc;%/?y<^_!6%m7BcG|#Fr Ο2c]kgǧv|c ]g 9.^Ock>:P;oڟӧOߞyoc|Gy?76h74Z>hw?:hwߏA{2޿4\G?4jwv׏Gd` YqR!w=CVA1OYG9t̉>bhFoǖ;Xqv:$G[?XG?%D:Ο?t7m@wu}L؄Uߗh.t>mIO2+Ym" fxw5u_W󇟺`hS]M'~[w]woP@ϱmg,/Pk ޻zk(W_eϟYwOo5l\Խ_7nOGޟJkoYWV}C/NO?P?4cƟ3Ⱥkvޯ7ng_IzoЫ>G&f\c>׆cA_]xۗOt!>&%3|SV'>|lKg?9\%8ۇ)6>/ElCn*ewQG{O] ;>mm$>n<Ϻ`ocCF|03>t/&|AP§>F+k7Ǖֳ;??Oq!r9:/6.}Aࣿ__ϟ޿3mq.5!!?<;qFG?6lyg4lI~_4^)E_?64'q{ gn}w~s_V?☟BP .)E{8' Cmh2_.KSޗ/QҗPvY8}7Rޯ8 iqȧt~gW;G 1Ab8t|>?}_oWuoG{LC{tMP-ԣLLǧ=Jx@n'(}]j;?jPpȗe.|]>u +KFCܯ-X( {!깘 7J|"2X੣s__a]R̳9+; _L[_Ckt'+3o?=yz=Ҟb v]Cvk,O޿?E9;s׊#u?4hͿ߿9 \N;^ kgO ώƟ?7X817Klyx4p͸NX#?}gggΖ?'gW1\a<%u(=swW/ 6v3yt#!9?8o$/|BTN r_U} <8D]rmtHyl]᫟{A{ȝ;?{-J'Pg'>>:?{g;_9}?K֋~_~}qO-KПp_g+_㟙^Ku~ܳd-A=_ϟ?#uo߹' |bo77^mߨ>&z#/zXby?Wߟi'wߍ?1cm9Oϙ _cW{ζ::ӞD9Gߣĵ>t'cHw{m |u_A>^~/E]\z2ڢ'>ux1"w*z#)%cKꋯo;hk;Cߎ}WK|=\k/O޿Wg?~{4gƟ >aOp4nwͿ9IO E<Oq6Nk 5ng~~Ss~Y>?A_< Y *\k >du] t=џ A_  9"h}s1GҗH\ȁ5uŠ2>Ӈ3|ѡ_3|w#|9+( Ca|ƃ]wlO?{{4x5z_gƟ?6ls|{?Ɵ?6lgƟ?s-~88ɟO Ky[o?[wtߍ_|Ύ-߾3|lӯkq1GoLWsFi*`fϐY!O3ϙ9gAgPϾUG]v<@9h$s|:1#h_RFf536sG}e2g{k*Q?gK皷/S<~ݺg}nQ>ܒy\+{h/-?;/V<+>'?=6ƿ?ʿʿ_ggc???????˿{s?|hナ䐴)\/ΙOQ5 kԌ]_ܥM1}\?|p^O9KαG.'9 oRpXCۚ/J@ۇ<s/U,Σ)k-y3roSF|SSCúyc_==9gGoG]Xr@Gq: YqsQ4a mt9u2GasvrI2m{1v,;g]Rܣ|_9GʹGQ揾ߧ=/?_sg'ş⯹>FS) FSYy*8`l>sO.ꉺ8G;1/xSxg)UNj;.=ƪ'Sg`;Gvwڿ˙^ZKlg-9Y^r)^)ԯ/e582x/*>5{ċnQRqc?ߚ™)s]sexcǢ|##L/נ7Q#(zM>+kLeh&u"O? v)گOv\o|xc_=..~n\zu&լx;coO6_#6 m[[8 |}cGP7E+&B _'8oa'c_"oK//yr{o{s埬ygm9䳈=Z<w9peQ57p|ޟ}zj8>lۜf4ys\TSSz~ M>2(_vM>됡y*9?r/oyS>Rў|ϻW>dR>SכOOyU#?gſx?g3?wGWWWWWWWwɿGK2zfņ֭g"ﶾosn ӾtsƽU<3<9o{)?! r<( ŇGۇf>5N<΢{,Λ\Da/}{-ԙAvs=ϔ J?r5{<_X7[dKgtVݎ?Kje LşodO+N,?GXZq6',M#z#xl?w,ʿʿʿʿʿʿʿ?˿S*.'/M|umN˵yOY?ߎ+k3H|q?3>g™|ǩcqg.[|9Ϟ98z}j?As kܻmy964vL^Q>R>{zvq }:9=?B>)FemCzo/%\ƤgOSS?G#? צ??g3?a\B{O~H,_+R>{`aڧ5()a5ԋ쯒?kgN i\?+X6?o+><C}e>X(4_BP<3y}kWoUUޣ|b3{a|3FWQޱmu>zyw#ϵʦNFGկg+snq o7k('GnGG, ocG#~[˛G+/=Ŀ,(@f)(**fWWWgwww#Σ2g}N}S{5KC%ܳ%p9^m?Aw{Q|p>P}sm }xsʢmT95uJenS>*|)_ַsYK2c{VƔ}8>O_&9eǶG+ٔ/%ӿ/3~vyO E#?wGp%|,1zFk!!.G#?*ʜW>9@v{aQQQQQQQQ!**M gaL9[T._"f+[3g$Q#k5v}oiS=֢C9̶k5k,*3Q{>GG{goG YF5\{oF5I5k(ʜY|q{TI=YcYދgXWykcO/{,&ܛ?şo#B ƿ??_ߗa{:q# >f}N.?şϥ͸(z0$3N>Xuʵ7uE1m{MPkyQ8\=x ڳwߵϼ{?qym?Mӽ?2}$[ 0ߚ692d:Dl s)qcrrLsk=||q gA>{(3w_?qƜs6t:s{{^Y$6*gs-k=1~KYGν%3|[=ߵg5rמ?G>{߹nşOC,(/ߚ?G#?'z/}oK_z1{?OSz;?{G~,"7~s|<8=|.\Tbk%[e;lj>o/*}UgR}h_l{{=G|klm9A?/~oS_ cɿ?ޗ?şO<;zg3?zo_l???!6f{-?8q6NGᢔGs-ık+Ss2G+ c6-v m cdͯ+>_wcXw_%p>kcTyG9m+߽SAZϡM>gS&{D>{ckLhpST.Ev4SGIYOa}3 K9G^{?R$̭|ٔ:<-޷oϲX1F>#h_7۟ewaQY>XY=Hc3 QYXw_S,GkB_/>\XnPwfհ/-מ?_Y8? s VNL>޿1(/ >2{ g?Z[(\#r(]sc~sܵ<|LSmBU$;:w8yyK=g{3Tϖ/^GڽGG|΢$?v5[>^},N?t(;_'#;WL??ǿ__+/yuWWמSh'ӏv׎URUUUUUU5RW?~-< ;XK<3}6ڷG3?IZ\z{7޹_{nÃ3I})SPR.)k㹴)yVN aDgkSS(H$[vO}ix1IܒTl3?/iq3"p>5A{G?şk9? !.7z^>+[0jJ¡7=px__]?G#31Ki{Kzn=2>sș]wR.ͭ_W~]-{* 120O_`6Pysla-}~dł|x5^sI?Tv}(y_?3 ׆쯒ֿz_z_/,x_37QOG#|C%<[G@J^?ُQ}9>WSS{+kx|Yo:j8 f-~^3kn5m?,sL3=9Ǚ*/CeX SUlPh}ΙmЧ̶%uRh*&3UmxQ3)#a?gҾ$ϔ?rϖ}&a\OOG-X*gH?YXSK++(5B+z/gSo(((XyǽxZq×>)s+;_5=Q>^joy@*;( 8(mkJe:)sURwj/:ծg zkh/(uGP8µO^NAq8? RW.SC8oph3je 3pxM>{]7kh_.Ρfkֹm s{?_O?+Q,?o7;>C'?şOg-DlZ[2AAͻ{G#K3_)w3xo_?pOO_g3}?^α0?qS>\eP l*Ⱥq/kQDw J`ʟm׺'R{- d|rr0A/-J7{ƌ9Z>: :u;?ч3̶?KX< F(C3i?"s_g?.(ZyWg'˟˿˿9o̿}!q y6E[sy"+0\QM<wlyڜͿ4kT^j5\q2n{Ӿ&=S>r(9)s\۞G޽Y ?8 N~/ʾf_=i/#|>smy==?(G?J2۞ﲛ[ߋ?xO8Q9ne]-?Ŀ"W+u3|(J>rέҞg_['~?pG?N2]lXg/ٸk=1^ U^G@T@LErg1NqN#8s}cL|&(GGZ;ǽ[Y>eSo"_;G,?  s-?_LKoaWG,,,,Dʿ˿˿˿~Cz?O 8p`?wg{RW{?^ e_'Ϲ;Ȁ%<?şOG{oû*RĿV/6a_y_/^|oz;./IG?>1'Pߛrk)g9?A|R k]W > *4(51X/iv̻V#چNc1{|)8.=h8`($=??5RJ>GICC͜߆|ֿ&u|\#+6%ᯎ{0~[?Ow5eFc$gk;˿W.m&??ȭY [!^o؉޿JcIέ?w(,,,¡R盽XvoLXz}3w?;[c*EP4 N'FUx bJ[wk:`PSg{S{`6f=u>aƎ!ﶎ>>=w&f 3vĿBm=D3܌䏝L.(Zbƌʿ?˿=},hw-}{w偞91Vy"[X#2k4HGya1nku==GV5sT>rn)^r^u@zoݿsɿK %_'[)1g8\/,&ڹ%_Z?ǿo9\;cwbf.(@PO9~B_8?pL ߌo` ix]2iLͼEcs=}|4Bۧ{|$l^ rxZmKN>5e_Y1[)I'J$sIFh:I=IxikSzϔkakrok~Y{uV^N~_'[!r8i)?_+lB?i8cig[Xi)((((( ̷ snDνW! Pʿʿ[ci1q-pcgжoLj{橰Bu-_Vn' |=<dQߚ}kj,)s>9)}:{мgmR<9=_l)Pչ/S}c:c])[#/bQG:Pz;WчRǿ_VH+V^c?6`ǿw=wX?w|8ǿUot@Y8!]QQDGyO?gArlj5s;+_ E{@@ux=ϊymau\@žƒ_pDŽ#G}.K`p8>&Q3Oa(v{s/uXXEδ"3kĎ:A?w?XL}ЇgSOqڎ9R?:}~1{s/u'~Qo?XL}ЇgSOqڎ9R?:}~1{s/u'~Qo?XL}ЇgSOqڎ9R?:}~1{s/u'~Qo?XL}ЇgSOqڎ9R?:}~1{s/u'~Qo?Xs:!!33ΊØo\cZ>?{*Oy%qΚ5~wSؾV{Ԭo! 6qeSؾVk}0?u8g?=K0FNҿSl_g1S^M}:bZQf~=s=gKҿSGl_5Q?ҿoꃺrIofgʥsPԇ[3u})/K>L}VY3?9ڞ3ԇ#ÚA(Oy_7A]7YcuO9Qӿo-jzu̾SؾV{Ԭtmϙҿojao/\Yㇱٺr(_7ak5Ls:fzʛ7EM/˺ =փHk KhOx?%}}FV}*mvwc7>sS)7~[).n`A:a,$LPUUUߞ{ V)s埻Njgc)/oRϕ_/n!()M;3΂oK%BiLKsLǶ{w{w=3wm8)y&:̹Ƕ{g%+?h3QWg;.VΝ6Yb }ʴі?7)q$α8jgƊr'K KueLl7}:8n9VG5Xo_.6dIvuIL]m1;bޠ/Sǭ?8j⨝F+,߮3`._Җ+31-fG,ӿeuXM3hcſ}؀%uL%:[2uE|&feWzLR@vm/p΀%1gKpu|4bwZڎ18sg9ֳ3c }\zǶfa+H=̅hC:B_]9szǘwP6kҿ=Q tr)qޱVđz?GB'Ѧ8^;ƼTђM<o7ۃVS)GqGW3=>AA߈ǿ߻=h#7>ȷ}zң3V)v{j?şO7}~#[:BĿ__^G/B@n[gc̫9ZcQ](^&'xQ*?t";EgA_/v ].]1}jNw߁NJ6Z1/sĿv,cLUS)? p> 8rџ?щ)G{)Dz|Ec<15crGt"|^_0q7 }ȏ:b7s0s_J.\?R;ᯮXOyb_+KOlf[UWow ş1ࣿ/qݜOG]V?ş+h?jxx1}Dl?ꊵL_A;U >Ƌ+%4f;PWէGc G ^1^L_a,97b>?>`nt>p cuwNN5t)홗+uKMqγn')[CA/t撾c) xT)v?qɟ_}&XK?v[і'.#G#/X+ClgsIgE3^r,Ds!6g3K$3"梅@ VD-ޚ}Wfs9zsgy6뙛g=ʘkJ CjqO݇vB~Ź[\316@$P{.{.(߅D9V[=Ǵow#p௘3?NJGb[-q}cXwכohVl=`bp+zS-cڊJ@/F-ϟ 2@)Z1Gq9OM>(xM7q;xQ&&bq3>qGvfb(neYV`n#ٱ'1CqsZ Y9bǸOq/ ciCJv{øv]'[92mHю!@G0C7q;9n'`&&_ /e5 aF;;+q317Ő((v87𢀙8ٟ6@ai;k7ڑşs^(ӆZbmq3>qGvfb(neYV`n#LJ@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@|sjcIENDB`typst-0.8.0.2/test/assets/files/bad.bib0000644000000000000000000000027607346545000016027 0ustar0000000000000000@article{arrgh, title = {An‐arrgh‐chy: The Law and Economics of Pirate Organization}, author = {Leeson, Peter T.}, crossref = {polecon}, date = {19XXX-XX-XX}, } typst-0.8.0.2/test/assets/files/bad.csv0000644000000000000000000000002207346545000016053 0ustar0000000000000000A,B 1,2 3,4,5 6,7 typst-0.8.0.2/test/assets/files/bad.json0000644000000000000000000000004707346545000016240 0ustar0000000000000000{ "valid": true, "invalid": True } typst-0.8.0.2/test/assets/files/bad.svg0000644000000000000000000000016607346545000016070 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/bad.toml0000644000000000000000000000001707346545000016237 0ustar0000000000000000"only a string"typst-0.8.0.2/test/assets/files/bad.txt0000644000000000000000000000010607346545000016102 0ustar0000000000000000" "typst-0.8.0.2/test/assets/files/bad.xml0000644000000000000000000000004407346545000016064 0ustar0000000000000000 1 typst-0.8.0.2/test/assets/files/bad.yaml0000644000000000000000000000002307346545000016223 0ustar0000000000000000this_will_break: [)typst-0.8.0.2/test/assets/files/cylinder.svg0000644000000000000000000000233707346545000017155 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/data.csv0000644000000000000000000000003707346545000016244 0ustar00000000000000000..2,small 3..5,medium 6..,big typst-0.8.0.2/test/assets/files/data.html0000644000000000000000000000024107346545000016412 0ustar0000000000000000 Example document

Hello, world!

typst-0.8.0.2/test/assets/files/data.xml0000644000000000000000000000016107346545000016247 0ustar0000000000000000 1 World World typst-0.8.0.2/test/assets/files/details.toml0000644000000000000000000000011307346545000017133 0ustar0000000000000000title = "Secret project" version = 2 authors = ["Mr Robert", "Miss Enola"] typst-0.8.0.2/test/assets/files/diagram.svg0000644000000000000000000000461007346545000016744 0ustar0000000000000000 Height Height Height Height Without family With non-existing family Time Curve typst-0.8.0.2/test/assets/files/docs.svg0000644000000000000000000000301707346545000016270 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/example.xml0000644000000000000000000000114607346545000016775 0ustar0000000000000000
2022 Budget approved John Doe 2022-12-19

The 2022 budget has been approved by the Senate.

The budget is $1.2 trillion.

It is expected to be signed by the President next week.

Tigers win the World Series Jane Doe 2022-12-20

The Tigers have won the World Series.

They beat the Giants 4 to 3.

typst-0.8.0.2/test/assets/files/glacier.jpg0000644000000000000000000512225307346545000016740 0ustar0000000000000000JFIFHHICC_PROFILE lcmsmntrRGB XYZ )9acspAPPL-lcms desc^cprt\ wtpthbkpt|rXYZgXYZbXYZrTRC@gTRC@bTRC@descc2textIXXYZ -XYZ 3XYZ o8XYZ bXYZ $curvck ?Q4!)2;FQw]kpz|i}0    ##*%%*525EE\    ##*%%*525EE\ "8   9'GcHq">/W HmǩK[D]7cŻ) -FIWm[kJ nTǜhaH?B5N6գw9hKV6p :@Sv_)rJ ҵR*]?7;ѐWjRw; Kkyq"ZJ @'2 K"&욇>{ֻM*\qqzyS͵3fe&Uck:{=fQdI6uHIi~Zc=EtU7VEUe"WfOQA]9E+6KU(^pkB,L-Xt)B- Q!@%h \ F3S EJW \[={:#E`/)67kxb5nt=,n7|?^)|k+b3(%XIe2 삡DjU^s:״n-ޣiu^$E3ǧ~B  F~7mcmARlq}]iTils8I )}}]5n8ە:'>6]Xqe\8*|N#HZ+L@6^cڂ6x2$\IB筙5g=iз_Q4Js3d|fuB`K|aVz{C|bܿK[}'EJHʴGU:_ZX]Kj剱Mܡ5+W^.~ ~,3,^ ݍ@S#;<,.Ҕ-gi)E}hyh.L ,PqV\t [J#Xe ?i;/kHZ:rEEln%*YF؎(PP,m^i"[Z{:΁=`,F] =J 0+BM3JiU[%$02zH`ܒh bՀ-״;3 j1q_sr%i6&AL1ZAt![-Fm"vU4[JTUI0.@2~u([AgbfZ^ǷzF9a(H+@<b `] C*^eسr .C1 N1hi > mUҬcF 1t3 !+BK'KI(s)^R^&;Vv\KY50֖.<_vy4j]ۯgDwvwvc(Gcui|@n_[OA;.(G`zQߒ1_OQL뵫[b75vKțGEۜ Q1B._|粆Fk`zY<-OLض5)R]%jW^MVC^]*,!|uXVwReVJҐ+e?"uiƭ.+Bާ( z5*[Ri5UqL4蝋d5 (1S'¦e(]%<,Ż22]0LړW4*]"%xaf]5 =Dŋ2/Pe/C540Xڼ-2t4o2s@嶖ݱwҖ7<;T IAh8`'dk]$a}d]̺۽eャi+Y4m8;qWq4NU/Ӌ|6]~޿>Ԇ*m3Cgl{rP?>gn43L ? qWU\ \c0=YʦH-Z,L: ݖ!A>e薿$D )ES!E[90BhWH]>fHk&A)z7Fe0+F2aXmhHeVqe!!V:!+@HdaJ5[H3G}4UNJ?S-Tg2H:P,9P,DJsuYNs++i܊\] []p:]*#G#4LEim$Ե]t~~i㪴>f} ܊K\;is;fgVб(򬊓2B ZP-_ EX5ӂyfE[J2D)H{ dAm-õT9/x:Is.|.C Au!'qnDjpm96Q U2EJڃ ;4-,]YrKLw?aBS5IiPXL'mGSݮpH!'Eh"4,]._t<e<߫>Q&ݞu;W>؊Tqb<9ǁ*e-ih`'%*Z(j-5hjE\vyVjd$ 򒃵^.-Ql29羕509q,EX#OʴiC EiUI}^ƙO=Rw(?SD'Dk„M[ifL))":.uClm}LQRi/Y&BoTCpYdV/ )RNFv.Dr{ŴۆA4-8 IU8bZtHOtl<Ԣ)N2xevQZT<2U MO5JP W E;"X4EE"Gܣ6fEEvbW@00 8E@ }nrft:^43q |xn2l#mdM9}]~%^qTۈiϪۉt$a}IZ6ͅ Eq%h.^33]rhE^g:^sGkF72c(1(e¨- * .)E,e,mgAK,nډ_Z2rw朴B9[<LܬVֲ汢mګ:TZ=c?#bU^[@%p8t9 f=E,m(PjASH*G83b Hр{::Z"v3hZ+< N|[NJ.Ӡ2RVw(п"a0+weJ3W>:P.;֮5hjvRٖ1bťBsdŪMC U0$f4Sk6K: +bQzhײ嬺;N8*2]ʝMز*x=HũL *[?)~q&)(?G AZpTp¸WE"ŌrQڴ\=W'ZhQL2 YWRQKk\3*J*ӽ:yvbӮÝP(<(G6Zs6/=GvNo`%W +2s1W-4KS\?"K'I׫A0\YBƐW-VONo-Zl͎#vDtjG̔qs*e;5(TQȲvܘ#RJ.8 ծCXl),XҒ,YO(N+ EU Fn;nvQ bj$@]Z>gg% uve/"Gz Zwi@#sW*̟sE!JXS!p 2U< LiU4 GYP H;TQK)KEЯL[ņjyj-R8`-*yXuuckjQag7W"zSvU; {Pt2Si ?!yc"^fдS\­ $6{_~V\m"Oϫd~:>/:~Jn_[pr:-TYZՖZ4 C;u.3rfPz)֭Z}5E|m8[??*f5|IRu)Mc,:|M;0]͢?_t&cnIZkvV \)G zResO̺ݙ(gS-Zuchjy5IZ+L 2ČYe$ŋ2 KhjQw¯\ER`uR%_(X΀aKkUn90\KU+@MŎZ%.JhOLWɭO>U<̕jC)ĩ5<ԖZ?7Őu([BW4gr}Ys[".Ut3AZ,jP ( <IVjC<5 UDS6hV egumSA>&gKoM9_*)=3 ~ȏ2T2S5WXaP fVЫ\q5ӏvۙ˽ z>vQE](NMhZuƕyԜm:3_[~2VBqiMqE;v=Aڈ:pg8Dt4IIC+N76+Z0D ҙPғ3+5\u4yE*h (UdYDPN[]5(rjem\t6gf)e.HO<1nH:P.(*veLYGYSt5cv"/C)b!h6fi=Urzd}xlni5"e7{JQ@ %ZJ(V-O4+@dCXg%]bݔvbO49vQR#+`Zh2jԁ- cԫZ!n_@fWW={vUHZY5V]Wil4[i)F nxYTL iyֶpS3_ϔԾ2VIs-V.[*S;m/g\os4YqF1MpP72 /R.]D8m9ՠ@9OQc<.C3idӍ:Xdg XX.^U*Z|K.3$N@t3 Ȫ)F2LR*mv(gTIOZye5d$s`nG̬053KPZ5rk1IGhfr>&P,dbEAq_z:Nz:-R=GgjeؼYG: `hϙJ J;[vb-D(vQZ@r@t+҈|RWj(e2Ѻ㞞dZjkF*i](CA;Ȑ`<%& 2 :iЫj-˒B=z)]IZhwqU= 3AH\|vQcKf e (9uҝX[-J.(T ,h\jxSV,YFLJ4{]H.d .,)Rd|0Wl)WksM2u$TO:}d)t⶜oėBmܝtIt2iE&zv~<9l47b)!!kWL \*&ESRRq^:V#5C&<1MW& D$ Gk+i=oG6r .*e[-~h2f呣WѦlx^ x8I@BnO)tW*Q[}G4n=Z 2),0jÁׁyE)ՠr.Sš@:5ƇE\Ym<@o7 Pɤ69hd}]QsStI](]1eJBE=2`v$el]Qt3Sw@(bڞkYz-O5k,pr.)+WH)+)Wn RvTҮUښ @[Zjtgx9uF(b"߳4aLj&ZM7@ހǟ5sMW{A>lqv<03]ʯCcXzyImD@Tӭ3*$`,Lϕڝ=RRuf&}{hC(.qI8R@ԭʯhرWI=mP'ܴ6lu\R@h+5Vjw= VJ( 9ݣ%YWb皛CDQuT5H>ފXR+RM=]+5'QбH%K0Tg|13[56hVtY՟5DmOnyckl~GJPš5gHicJ).(DsFb ^|xR(`=)JuNtrAZ=p Jj)f-JzȽhp8up Y X)YdvP]!CVgfWVZS@5x5rmBܚ5/ ?Z2Vt2XZP ̦%r+&A+"δ{(;'i8 \RN6˃5V鞱|mP֒+;:bc s 4|ASpJm$.mT XyTDZuY +$1ihbU;H @1KƧ4rÁj,֛\4aʼLԯfztD J5<*)G4ׅu)"~uJioy|ve]r-hpnPL\1cژj QP>R3Y:"OWŴI)xg(S) f%Ja4P7ZN'"p(}pui67`]eWE:5٭'kiW() i(b+chTD6)[k\djP68<ʼMEnb}MRM2P&_>жqQ(u֢uziM;2w -5Zhk Љr*Z)Ek`YC$2*R:ɫқ|jȹYFJ(\iHbWѪ5fhn[4\*MOLܖm8məuT 娾Vi*"^lbgKޓZ+˼HgeC:z(5(mL趦] T˶zZfjdSV-Af!qeH @ XP5˼ /:Jhj=^-L5yI)2RyR@jeS-٢t2ERȟ̼m~RSWJi:KIHWzWZ-miw:km P zdX0;"SˉQdʺ9R+(;bٖdSY`@&bŞk-[SE\[pj#N\TҦbM4RICcQ |ּ*Љ@:V)H%(-n?s ۚl:qa$$߿خVd,y1jXCM4͉)![{Xr)MWRZY@ czIdP%<0v,J;i]LɗZQs 8]*QM<,t2vmi_ N.\[@7w@rHhmRV#>fF+p}i m%LugjO[`ly:E̠@$Rt-}=ز=JJ)A(º뵖G뵑J)utzWEON}MsM}q.!3n4Hqa\6U- eItۂ/.6JC)DXSMME!it5vmZv1grh4{@ QSs"ĊE uW]v>ӯM{lED4P,K_>Z!PTY\ En\ tܚ(Z-+BJ٤R뀏k @_f6\( ޏ+x=b&Ur.GrvU]R"Pg.׈l]Aw/hqyYoL!U"tCgxʫe K0-VE$4] LFk=nMan60VCFa&[f?~K`G70.ΎjE_+eW-̊j:ک٬dJyGe”ΟWŵF&fsճM5 |ZijPVBвb^STt`lC6% g]N>|az`I9 Z'LZuV@h>,ʙ(Q]>PVŔhQM;^E'E5yݴ뵰dyQM̫ L Z!ʥSXVZ7C52f KX&"ab#8S@c*bC6RQPQON+dʟ(,EB/$NDQ)Kt8@]Ǻzx( WT3tU ,P^C4;(QOG&lp<EWG %]u4EiVStWRK)p ֍PgJ 3 *qf|)q69͎)W<]hJxb!UKOE˴;]j|)mpu4M;]OgVS?jH/Ārq%S~!C}ӡxE'˾OSlhOA\ThiLe%!MD+1Et"̎=fNn_8NC+sBȔ4V3 FNڿK-8=OkٌV45Jk Ѻ, gTW[:{zJo,sqs 48܏`oE)6jz.fjTǤRiTzũGkX*p2+M2џhT 0̞-* 6ZGP V3WqU5OR"2-Z֝)rPI7CX&f`&zSx+CM-Ӡі<兹f5ŊvA\i=}5j-Inu|5QjGԥ) (Ӱ%ifh;@kg:z]pQ7,[t3}d@._#N5e )]7ZL\"5<#kB!ޮe($̄ 6&OP1LymVg 455L_%(h,hf=X s/Gj,US'J*7fʮEPDj?zʡ׀&ֶ["ʦ:ٚ ;J &W3ZXE[nt<\IPl Սڊ H6I<yl >•~/$i2zzM3-J'wfDP8a:cJEqLq'zZlMw|_Q̇H6ᄉi88M:}qpNq[e8Bb .Z{$K4L:Cid% UUq]]a↱BGzrS+, :y']fA”lׁLqN-']4B"( ,ȷ^.z@?HjDA->>B,^PR=™vS#^RRec>ZNJů7!jH"]]c݋j2UHY_F>k|pҦR۵iHo2UꖶmĚnBmێX2M eT#W_fyogw71WpvAΓ=nRj?Cuz/)6IL_ iKW%P63ԢksO mON%1&paɢ@3,!y!EhFCoℰ^-:ؓ[zX3*)c2;%+>|YJev,Ŵ;O(gE3,@SҎŻ[J|v(ЭWhUh)Ws.ZVe5xZZ&!P ,C myXaf@%`eF\"žG4M[N(u|#ߑ bRis:A-eօ`@*ky nhVP ^f[MơX zeߔ{b' #z)4ʬJu>R dZ׋tWFfJ0W'JEaG,I-pE&FtKh~IM$H]8I K$HUqߋ~irZm"fߟ,/t"*md1>qjeN'߭~H bխ^ =|R̺%rx7]M]k@S3vfsKF?>]ZǗ|.̤9D*P#Ueuk?n?izENU2'OԗrITi%%4&tV}B k(])Q!=ɡZ-iڢ@MUܬ\1:)Ge+y3EH!e YҚxpI~)^p:%\Iw4+At%A+E:*ERmڔ\1p1mҥ\5ϲ/) y*:\V+ VjL ,3EBvfPm, [Qg>>r.Q!YGT֯\Eό5?Ci;%~,%.WEH~wZUJJGɬ5t'րu<JJ +QRʆ>NWGQ` \R6m^{џeD|Tb!dƤ`5ge'׾ORRH|Z:D%jaqGt9㤧)!@'!O N;qݘi\tB,΂ Zk>kA԰2n.tE .0ދF +>}HЩ:۷CLoŢ ɤv(,SW4@!YWUk4jъs޿wcܔ)|1Kxk3-EGbZegCXqZơJ; 'v(Sմ(Z$O  ,+ Am:Ue) ˥YG=f@(1Jt2_몜ǣg%4V[Eq: ߏ-@QT[-b'a՝i{(J52P&ۭ%Nq6q(e.bڊNy bY`O"禝Je.eH0DB(fZQPWZXW)uÃLϪC_k4xZ,6qʩ;yL:LX)njTY [ZJuJ>:EȥRʨiA@V@hv-M Pd*[CMEN5hu9撥?G<0ӊإ3 -ɦxqtXQI:y~L|/>SWO M;*yu@tq(4t6uuxXchjMh5_g,~;MQqS4X3Xk@yN-R5L;\:UϵU+CՎzJ)eExgB%(qz3L}W*.}ŭUJ;r75UΚ+ Qq\}:=㈉r wo$.6m%^q&WΙ\!z2XKm.g^A-QjJ qJIZ>_@E_ک%^D6Gu~JuDZ-aHV$Qғ"ƫX*wPwxm4GPt s2 i?T˩o'Q_CRvhnzyo\yhN{E\2QCj7sLaE;V)N)}lzj~R>f>f*S!⡊Rl{@5>7Brs;zmV \$3 @^%pYBcj^%mwϿ>ׅoh羴c:Ry365'CFżLS8h VA9RM]zCy4jg/i҈(|\)3\)Cݮ*ZЫPW W32ӥ"^-qҫh,!ChJZ0hJ//[Ħ#hRcCgs iصKEws> ږ2uD>p%5]yܻrJ~}w ZvI@L.yUq̽j0w>Wh2QWl P)Pjt_YԒK6CuvnWq*rMܞΩnf31+XlsmZ6@֠Uхx1RCh0M+52wlv>< NhlEnP[32U=j9O/aʼ ve t5;f Uje@! 蘔v@etvQjxmZ&]#fXVdUL1kyDvږy+ҭ o= ݎ)x52Žj2Z%")@z,7Σ3iW )3yexj=Hƴ Mc.eމIl_&iW#52T060 a7i4CڑY@rZirrntضCh 4Oj9WP*74 $(U!-TؖchgWm(L:眮7j1tɽc-tJ= {<39SPk*5Z^my'FP*&:58,« %nI.I{Nw6Aqͽ)W?~=1QCZܒG|Ϫvګsg]@OjjZL aEȫvsM ^n;҇hg.T+JeG%6{/L nЕ(0.̢D[ŞS(XP&WR`g`]n[xz2MuǩvyE=ntCSj/<}rS&uQ@;n<xJiᏆ$&Lsp`ۓ, 4S$ӢnWk]uG0<[m\jy4GbO je, KD(P )B?*~QrN&jh 'sα y]BoEG"HY@h2{@#@5*}q P2YKBgj Uh,5t. ^]R鑵<,5%JL% 2kCP-G_ Ϗa (m~Kc5`R'*. \*mjRƣ)bfjASZW^heiami͸$$ܒAlۉZRHpۿwϩN5^mlIϪI!%."$RL@'=mkdjdZz L@tK@$ݱŢO)c(ӡ;i:p:,s%MLŢԏhbzWJq'QAD7hCm"mCj8`\mC(r&Z@]g4Ta.>Ģ\CS[ATր[TmT.BXکC7(b܍UORvt'vƫ,[SyAbє)زČd(2* PN[Q"ZP1-+Ԡp:R.V}"fSOSniy[6h@nDh5ԊGFU6PSe) TmqE6 nxҾ7ôTcc P@l-k`??wϿ]1'1V^RFWߓ$|]ژ uQYVZQzSsr٘AзY(F-J.|%/}R{*P3=HZ%3A'L'zȣ)ط}\[9 _J ryM@yutϵ j8%OG)V}kgPR瑺g=ŖUҐŠp7çKG+<լ۴9PoդS|-ϓjՠ.D{$(%Ym8#n'm +Cuc}s_-[3>+T1Y|Y&Kݞjƃ;({YE‹tk4ӪYE mqH\U(.%pQv=O ʸw*2' >e-[e*tu=%? *FV+k:{4f-B y*m7q7K?$_>ž/#LLo:]W[wڬ~3t$G#Bi.IG'Ue|~z~96{^%ܒ]͸9ޅN&]x? Z~*y~5}DdZ3JO]+Z*(P(̣Ю\h}cU&.Nі^Fk*i+Y˧X qhhX -PmEhyU=DyYx:S0שCXΰI&7OJtW{lkVitOqeG^uė}Pbō&-eź{”]Ft2+!]"(@ J+p :zNM-t4zZh0 w ]Pu"ڔk h (S[S"vQ ՁjZ%aQHO]xW~zQQeZ-X%(Z-0We(M[E?} z*xYCuKJT"9-^z_aGPR3^U.4.k V$hT5O;%5ݲۅĄ2|1֢󒎾ܲQ[0@-,)ضf@μR'^Pe$3C==g3K^) fv1AAm2]i*DS)4ۍ+}qjK6wYj-KꚎv{O?T~):>逸{Jk"'v9S+%}v9c6W!GKĦR_c/#_m-q߉Z%XKI.I) %,-O$NkMul`U3ΒV"2yG5j">r)AwvҷsQ ]f~r큥g7%t?6"f{ӍmmᴉkmߟzNu[DQ-p ┊4,ȼj1LWzIhݯG)ZNS4ӍξyE~C_WP]]aZ-p vuѕQ\-ќW;E.MY붝{Dgγ.By[ 붐FLhE72"}a\ wpr⢚dvR L vËjeT' Ug-vmR"=DԂBSHfjZܚRͪygɗk -W*y j[@P]eYl!tNBZ\ʮ_-ԥы|V}tgy+B6 4Ͷdf+jSJ==c] ^2y-T[IdEWYWV)(=1 ('s=rʚ@n-LR-Fc,O^ʁi]ØIc&'J+X8LPV!ܰ杇*e;NR -hvjo^pGr)2aXq?^a֓rD뤗WĺRNuS~DQ??+Y$rC3:Zq7I֧Hw~ބnD4@cGCvkfZ>ߙ9]at&c/ÐK~G?u~^nCzFf#nǔK?04 N0:E~jcE4I?gc @.)RHZ,*jInl,fӹzjh4 MeXڮX.̀6E.ۓ+@|M,/:iYRY`Ocg+'SKits8۝$~_4Rhri)xTSΟ zN[V !*q}>i}]O(rڽIElYt?\Nw}iۿ>|,RYO9uȣmKNN'"6궜C_\lkECR@:D102%w6 mΫmë+g5 uT:薣x@52YL"oT2?$[sLP̩3LoW[]j]^]O3xvQEah 죽X2-XUze_vIEz!RնcWJ3C??_Z)^NF)K P- uu'U/2), 5JRPQХJvyNڿW:XvGWu֡mke43">Qe4x,LR/ه@j]ݣFr֌,CjѫUO)fatw[mbq˱,ŠTe}A8+LsS~۴YJE'5ct*;3\Usފ=12$ڰܗ߷ۣ֔擟i-; O}WZBE[IKn}it:j-IٗJv~]8>W(O@$ryy֓s&MJuK]o~}$UIw%rIO/wt9b~4wޠZ-D-Wd}(Ջ^ƩJ862+g7&8_n_G(wԔ!l_$_礀4c>klJ!Ӷ8crt`p;|YI elM#n1tGKSC >BzReg_V\L KE4e*Jx^V|RSA5n\J8BtЫn=cZ^Pb2\+Wmw&%!Oj}Sqri%_t0+:>4[tlAT+땇K#}]f:?/%_Zw׾}đ8Q'rIV%nIϱ'TMp7"%JIt 1/piߝʹOސ /V9DW!\!T]"\A]uTWJ]qZ)ޑ])p)zJ)ESE(̵ԆjQdzũ:S@u@xrw`9~s2/d;ummm>cv{FTu("^=l榬 kԔШj5 D] n)h i) ԙDR3CѲQEJ&Y瞡"(=J SVԁS (QQn̡,[kQl L-.,ȷE&8U(4{D* (t{Nt3̠R{ E4KI&i}jRTB ՁjQ-Gihb],7Dbv)N8vP_EՓm)sԊBSޑS!TWլTJ"27pj}/!k䌗ri*L1𤀍K 13-to֓pdd|!|ӽܝR|YC^RU9_;]Q+~C#k?xtؖ1nt]UN>>µmVJIZRJ]֝JV?p*J *tIH\\|o'I.kȓCM9n/t$Y$9$-;Q'>Q xvRQed wnhϊ{8!&h" [eWWOQAvKDzf*̦V>"9~4ɗi( cc!ng^QbY^ yR4Yh".C 5c.XnC ̣O̦zZy̥ؤcK^յVݝRz,|[QlP 4to7NmY 7nYHbTjz_ A[a?jJKC(!΀kUϲsW,#P)u4WP1_Y8ӱ %^I2ۉL$mϿ+)_~"B|uNI7q~VZqV%nI%S%ܒV%V%ܒ]&$ߏ.Ӎ9qu.ꤾpr]Dۋ !E)PGqQje^ع[pѺ6/'KY֬x>4+Pw3c+i(Cvjj5`W|hv8ᮩkg震G/ W㩛Ji"&$Ɍ۸~ա&oLT\gx+uvArVV @˗h'=vݔt7(J,B[Rub( X XXd Uϫe42J槝iՍhLXJPŝ;Lz\3o^\99Fk]mRrgѴNͽȍ*d7m)ۣmCqܩ(iBMVMhi׉utӿ\:QV=uՋjQHˊ*uw4%GϮt|N_VH_ͤ/͸qI9#m֔KuM_>̯5He7 S:u=X'i=mߊ wۗݪq䒛$rMmJqq:[q}~$rIw'Z3:Kut  8im)]_:E֮̋@ai9p(hE[nW!U=;S)Eh [%reRJ=slr =HfbԚ1Y{E_Aʠ]P?S:{F[Prp;h诲L懠mVS/$͵/8 tiºPЎiظS]\].r%`@E)O^5WXQO Qda 4od.&S]AQgm Fu}J4xT t~rI+%`eve5rRW @'H"ȥ)JRwE\,cy0z'׫>{l*`Du5s#$$K'6u|oS)YUMUreگ8n83#CA V|~{D_gQ%S "?TߟiFKa>nHI6>N6_N 6g%%^qq#IAP5I%n_Jܒ]ɷr_sn]%ܒz8UuMVr5%͈3"3h:U,s}/gʻ4**4-ڒ=duvQ tIN3hY"Ϣ ̮i2-eV5=f݁*tm_UA\SAisiC"KW]2C&sA2MBRlwsjU۫ct$+CqvM^pviZөizE\`by7QEsyO@ԯvʀϠvL=r.:l|[tizl͠4*Жq kխMhƥ[`4z8hNhmWW]tdk4US )_I\u;A]tE'"~Dw/Nq'zZ)-GmV&[N7$m8y_hNI<'WU$]Kq ?z$$ГnV""[jNMN7qk$w,Y2rd5RtbäJMJBy$1{zK$_xӵumo(VSbjq6֒N-HЛqӋKc/ ,4^kTPZ!UTO瑇ApDvkczBewdCƅkMa IH+r2CJ@gCPXHUCnzW}/54v@3ks05ƣiv܁t^g 35)LX݋=I!b#ZjQZb(/XgfEţ)uQ`J9Z_)o`"1fnssAѩ=mYZ[`Zu)Ό2]e^.Q`gyӢ9(cUqf.Uqhf4VuUϯz3 LdCt:ViM|sgI\:Awνm\Ildw|I7[6:9_~(S6rm*$qi)&}wHuIIαR!ND0p (=aq{ļ%rӍ}iIu۵$/ZZD~&66/m֜y>cvNZIVRH>IK$%^I.䞱%.. mOW>yYjd}VxkP\2/}zQT1΋(#'OJ=b r(Х5ru!()Cw|N'g^*C>mŊPxQw[>s/_w9<-Zv 2SS¸R,xrxEYЎ#!sLj`*$4_qD~j;B+T[ E#ۓ>֚(uUݕ 9*T4oE+4M!S|/FbH sF>ᖇmpCµm[Vةwg5h h]R=cų+k,]x4{\QK(.7ȵnӽR*q9ܒ\Tߑ%^#U0r+Ώm%I7j|_\O)cᓊa8I.ܟC"q%J%ۑW"$;/؏Eulkn7_Χiߊe֝Sfiڍ;JқqCi[6-m7mZm8Ji}C?U6gη›s.m$5bsZ]g~6:_~7"I.\t}TkMB Ke^mjv .yyM.*k\Z2U]t^-RkHfEŋ<-M^i JfU)꾎x@̰ EZP:\7v,L ۽m,b.QN]IAYb4L\hhPuuM#̵!tC)b.;[.Ed_Yu :Obczʽ4<ڒh H9uZCDZQЗ9~twKEI M98%m*טTYzsF\ / :/Y9LZS7Im@ HK:.stn*+]rEf=%40r-Ck7OP+jۚO$kB}:Ӹc\^v M8*sPLu`@%&t m)SU&!e,%veD GԟlZ;jY(br%pڮб]:y .נTW~vy@ S(7*QD2]h?( )EiZEEĆS-p\ kH@ZN{]PK+G֋P X??ܽ?h\VkP}rx ܜY(+!!Z%j/F EU@uOG|IRuG=QOuݤZ[N7^<e$(, C#^@7R@b04$t0.M9J8֮kW!LS\XRYTW4Up5EܥtT W׀(zh%Z2(L(f]C]vΊ~o%IH~< ؈UH|}KyS._>Bog`(/ER$- SE[mcsm)䮝r|bWV|˰S^>Y=C}\ ޶ұb]hz]5ZiӠOѭf~F$"iҊbʈt) QT`z6b-hz#p@G Ij(ۅ5"@E;֋GPGwE.z-D] m4TKB/ P& !\M>m:mx?:}Iuyuc]8GC|mt&WC48븇sߍtsFs҉sJy}&BMcBatw8]ėWK_긛r!&Mit]$&!6MIt'sKq] A7+]$&ĸmfqXcvM]TKヹq%%DJi⚧#USɴBJe}P< VO#3)i@%/Qb畩W:Hhծ*uTzJ)1XkhRmaW=VEkQU2V,YRU%)WxL2=V4txSRM>Ek"N dZurf,C[@r!mڵu2PJӿpv TUȠ?|&ɨ]]xf@F³ t2t=)M(v!)Z]z5N=Fj }HW!OQW`hzYܬo#;/f%,FMtfeEҙtGRs , hN%h6||%]dK6V`-qqG񾟮4KNCi8{[^>/%>=J4nhsѪm9Uf%>F0j/c_e;6]/' H/1ܾ"M(¶#m?sA1Ȑ8ɪq"Ԙ$LOhǦ{ذ NJ(je g'r(xܦ2d:3`>S̽<)vy#N*wUy7hS'hc)R+Az8vt7;|]4cT4[׫.e(t3Ӏ)ңhE W7J(rn,JN£ݯxl붺u=[_\4iϽ-"aQT6nDqA[N()TWٶV)Zhl=uKQ4SPAQM\C2{]"(/ QeYF!hDiE=J(&w:Mp6YqՆSM7PDz|ew{ut]&WquwˮOK~ZQ/>M?鏝13q6CI|7:))##M C.1(e_W )NM7Jt U]8+gkヮ>MY - %܈%|$pRC>4+ߙWIqN2]88nAS̮߉Hߋ$)%#?8Aޤ5sjխ2|Y2RRP4vy-SZմ[uH[EH[Fv QED ]”S#Q/, ֮CX 43t,Z:2U{[< hzfC\[j]S%vWPJ4{F ?c9Z \@`%Λ=qZUrGqD6N6i~mХ$n7nN|V$^Wt|CSYhmizX`f5 b.s&GE\UfUȸ ]ZS˦Q0̠p[CVAH[B&|5lb͠T˵3bʭv+!M-:SqT뫸W]w5]vӋqpse`E>w}?-?ⴚ DPo r. k- lEfnU) Wf ̫]1b _a:zLQkyQn4\H_IBhĢE%[,Pڳ*-ВAGz?3WJw {;RiKMh)eZM4qWI:ud~ ȫbcX.GU!u}}bmqpw;M5av3upOCw\'\mqMO2Sܒ]Vqww|mn7I. K=8N6Usヹq%I.om wZieg+Bڅ!Z{jIsi zEoə-UZiT]'fMrÏ& 'f@GT{H֕>.yKT,XҊm= 25!NĺdJ%,(p"\VkAcjuVȻ4IR ׁ*e E=BA( m.$n(WIQVmRv2-8ܙKsiJۯqQ&Q~c@c(]]{[/C%R4ʙQ f7XJxǶ]I_/~._trN6n>#CB#0Ϸ ucJ{ ZDzJd,r?;FdNƋ(e)%<*xZmS>PUZu5\ iV5GU2WRْzWТ.פ+e[uMZUڱ\SXUvh+CZwmu]w\vywC52vikdQEJ;\)OE;6J575n:-;\ʯNQGdΙYSvTyp{SwlE_sMxݠx:V'Aj Z|ۗ[2 [>sZ۝<-v5*uqGÆl;2iՈqCZ4=z: m-9u!YZ}Ѯ2x |$1Sǀ.`J*.`L ǂ`J+JL*e* ]eˋSM̵^J+Z,TR(w^R*uKNsI% J4+źz!Fi֚Q)4'a W*12ψɤ;*W|~ ohXtZ0yIA5h(0VsP!_Af|M@ii+Eߛ=HtR^nU T5pkߖCz@qo5m{QjՍ\u5`]Lq5a=Sޖ/>kcѧi,n%v"R- \iXځQ3ʸ1bW- бbYǺ+>B81THM {ܑ; ebIDv-z] :źڎqА z=VEQrACr#sYr93 V BPΒ}󯆦ΡZ) )@;z+./ș7<+TރЯT:]Rޣh^M4/T\7]wЭZҍE.vlj±5\v&ygz%3TʋViL&4_m~H'B~6(,iS@.(s؋Pո{D~VHؤ+B^ة{4 Q"SVEGSVF)%&̲}U |9kQŵсTA CuI9JܜMGڢ-|BsiS#܁k|1Q5o|NV{<93Gq2Kn{3/3m ~2HeD6_XWRun3{UH[-_+"Ayԭkqཤ9rq,F5 a^nw ]} YAϥ-,ҒZ;wU- Y"Y*Mښ|4ҝ=/-| |K,E[{VQ\aJ(:Pl+@ O#D E) Ehn,ۍqfSʁ= d+_t35)"MJ/o+P+%o?p˥Ԫ_Z)Ct򤥊%xRWf`Uk@ ]8KwCNiTajɭTR,o@6<[.G(%y])ؘrOj+HE|[ XſWEm֭1"ԔSPvJ(s+K3Q-&ˋ ~9~wLCM$$%Z ?{Rd)ҢDNj,ZYFhh%Zv-ޙ!P%A&]*S:W;c !ZOi&H_yu4󉿀H)p_*#.݋*8BiM4ո] ?=tU=W\+!TԧEvn]NJe(I'@uckMX4+=ŨP(E2-pRJChE8uFw+:VpXIfWC3#Qn]r5 %&^LB':mV ʁj"+ٚU@V|YB ( aQ]¢TeKAۑ/ν޸aj *)$Ru[hk-Regk3-զeؿ7bʯJ\b ΪIh\6yE4]$}*ED[R"ڔE]Cػ,@=mY̵"[V# M.o+UNVy +QZry\fre@hp3z`m=CX*Po<,0Ri iMmE;(%!Niϳ #½k:TZv&XڎV7c4$[JiV5K@I(vj< G^N7tUJT]3=yU^> ~jR.Se=Ftz!J]H]4܏E򀮾6(eR-3\jxY} 젴_hN^EC;vt[!RtZQ RD̻PdiAZFpu5WM%bǠ;u긆vl{H)L*4!u␮iBEh_eE) .<ɫ6b~6ZYyWsY\Wip+\FhRLHuhUB/gE,*4eh2 3j|3OCGjVk>>kљsH7w~62hNےJ]4-Yk~?i= )k[O=koYOn=z-Lk5MUH@8S҅OvC8"2OIE.̵=W+cj)Fx%R PV)33H)v54X >HR`U":EuErTJ"4RŋhjERxVV3MN",˭(J>,SJd 7d#3^tRÜ .Z0"i`wj5xCT9Ux '9RjPSJ2']=»(mTt3V1&Ji 9(mRCOQ4:`n]!]$!J]=d ?ߝ H{ d?`8;lօ!^#NwH83GnT&Ո=hU{M(QOkh1Z/Z%JJE) H@bzGLYRzScP|e#D~•Z$RPi/Xkg%Z=PTRHZ!t#]xAM>u3d(wMdfZC)֌aa)Tkrf2ii{Ԡjɑck)3=<)'\iu ERj5yָ=< )8)I@2usM@M3룠Gx~jUwVڞj ˽ [E =heOq!ʯ&V#N-k OE">-I+(` Kjҹ^]lem&sC3un,^s@8MLy[DŰ aE WEQtŵ27S.(O]u$b,I*HȹRDX]Ӯ@ yҔѧ]tVҝ' Rw:n)J( He-GChdƎKE2 BEFxm}/pn޺Ipx^x[VY`Z$ԏ<Eje+(Ktȅx,s_v+ Hz+"h+2(,զW dXOFF=&&-DE;JԢ){&mZ  Q@5NgGlzLIW+dPK _LWZhV`DC+E l(a]uUiKUqQ c݋tV; Ee3ȢJ|wSHՔ@FyAomѡR:v*M\G@GUҀvOG:|c[AU…shr(U=6 jO;\v]WH:@"Ԣt{q⣇-yҢ0r|u*9 cuϳiM~3f.%CJR&]nJPEkUGXh-<,\Y:xXf{DsmJUʡڗz^,<Emy *#x,QBYB)(JJpeK kauZ:aJR~)BMuN;:CI֬fuXm:ڭ/3a)H+j6KN[_e>{q8l0Wߎ}mn s:4xXS]"i*P^V,Y-xk[BCZ"ڊ1b~qV% j@Wg{vnX}O֌5 H1џ-X XTS\ȭ=QZػ dLB9vjnluȨ-+Gq ԢdRtZ=p֦T궝\&\w~6WϭEJy$*̣jpBE)=Q@tifeU;qؗbvի(ЭI*)Du3<!xkC݋jhWcN5hhWZio"{WR ǡv-ޒ٬˰.:*|\Fku,/V(()+E+@ nMEuF7)ՠtZ=@eD3S źWNӀNn':wE.i§]_E.Ru֝)֊ShA^1Hv9w4RExMC2S̺;2(V4eEN=\&wNq( A\)]wOk%4x,5 BU#ҭ4\.R=GJE yJbdTz5N-J: = 4өiZzP"!: Ju{ʫiPvuڼyW5 yav&yUȼjbQPlZQD t̽AW|BEhhNH_Ġi)zBM;jũAkfQ8TIGU8>e!yAQKpuJhlM25\5RHP P]w4Ui[ű0m!MFW95Lrԩ+J%t] AR>XBkKoVO~8KĀUd@3}r덎4snlrm[C;P$hmn5eF yM~ZH!ќP.R_zĦ<:G-^pT+JN]y~zӽg]W,i!bw5{]Hhi ֍M&RtV^-{xQVJ)IT4<4wQeL fՋGhSD#R }%)Qe%Eu&zu%"E(De\vQO K@<) ,𧈳ݔ cf젷U!QJZ=G{]`W]]Ξ)N&IIyd8o:~:uZ)Zu:N%\ZJ*uWJSsJQݔ(֮+#Z9G n Dxjy2(Cd}`TJ\&Me:i@;\]wEi/r>(3 Jy~kѤOY]QTRt*pf:UEtuNu8%0ԇΐM֮\[hVfE$E{$:dM;ZҎ@zw:NteIpRG;n*yTQj{J;r- (T h5H-Z=M&hY(([Q풲t[G#UD fA9zr`%"vMS5#{ki5 Pz[QC5(4\xfc*+wԤ5v6 )N 's8.8%8cO!nBBS&hg.ﺪr^naw+IR ^CCNej+%n-t"WP*R|LYm>X6mmR%Aw(;Ses\%mZ^ /)RݔYSS_jeZ,CP$4뮆@G k)B`P z-䦚ǘZdԬt6Uȣ5\!l"\TSQQEuupdH.0#q#ŔjCZS$>G}iߓ ~Z͕hnyr̉BW\mU# w SNTNU%vQB q"qcGb7KCCXIH`&]r! ]*hZ)=WܯF<'< 47֚JHΕjSqkV=]<&HU>R<H )\ґ rlgPm=fg?Aetf| e* ~(03,i5Xi]%Z)c<ԅn$\Q`% -*b(RHȭWP(|1EMEeKFjy֒o09S:;4C)F2j*"}F~i:{&@cp_+(gN YUB(S(\{L&4BNq|hW*RfIfeJU,SaPocEmt@*5ntTA}fx]҆G:fb_zYS:+ЯD{U}u:Y:7SJ3ГqFo-;X)Z,YFNs:?u9,WxWmt|2E'xrC_ f$VEhyuMd+E((50Rtpt,: 5%3O*̲dkHҍ.J +A/UHfbʭOќlY~<-,M]NPB@%*[cD ag@RuޯǓa!ႏũF)(NUm\(J򚄥 ;-ljRŜЧ[gD.qgv1:;+PtFUv$]`GZ((qFV2ZK:[ޱmuq+>v 4XaJj4QNE[RjQGj54 E qbE̼PĩM4Go陙PRbԠ:6˪ xINZm~Sqs L4Œ"ݔj:-J=٘e(,Y)ɦjSC((P,kCZ(VDm+PZ𪼚j=~ӊ4{JQ:.+JD*8E(P)O Qa:|-Xʼn(zPť rb+Oz@OO.JSA@wwmFv\Al)qW**Oqs.T A2$Nӫ*e*O|qyGJE|fRU{5 rGcV^TP(UM5RIKnUcwgv/nZ!e"5.zAD{GkԼ.-fSm@JE̼M@O^Z{:.&Y4S j,EKe5,Ȥ4  *(Z_Uɋ+W|.\@6ECLW*M4M*%$70{k_ }~2pp!iNu6TRN 8n7Z'>2]%wI(.TsjK;X}u2S I 4WWOϬx#}Z4$&չ&Q! P֝ }iw"*RM:ӗM5XKMӉi.6ڴn _e?^_MU#O_ƅO;֙P/pW2OшJxUsN< yr\ iԺn4(/*)g Zӄ^OEu[hʹ)sX"̊RQPL(ekWڽUZuޠAOTGj%'J,f?D"b52-`-p%٠!FNcG |bOѭ\gP@ k@41GHR))WhwYȱ0ȶ6_*v{K?%]mH{KZWztQce(bEu ӭ@őܖ|7ڵtFn[Z>(XJhQ~xPZr0Tw9CGeJծ52KSNnN]hNZ)M],}}=跉]Qrjm>yC(iAb:VDԢ Şvz\V6 @"=D2zfTʧU=EZ L(u&)+ BM;)Nxt ڹ3h)imX1tP" *PE9tcWx[¯sRX-O)#1e-Yt$( IkdVthoMwn.N_Qi~}[$W*kKnҬ_)EUrZ\4vv"SAі>7me3͟Z.\䩖z-2?a醆vҥWAshdpRaqlPP䶀^R(ZN48P +j=2>Խ^]Ať-/?i`AUq@5K>gdUδ5.x8c4nx]pflz62Cny-CG@)(u L7q,q]?} iH|q_i j(gQܢ2mbdQs5%gdh*hUȡ5MV6Z_FΧoɡ]XI7YC$q"mqa}H!11"eTO8+ʰM i!JsN|v!Q(M>ϭ;y&s󸟢;:F+)6]}֚hu~?>uYI _~]oA ci㴖:~E$⬤ە^`jMkWJZUNP5~OwB_X~AGyqC!AqWyC_}޶żތn~^5,=T ܼ>i:+֯dʡ%!t9mWqM N5M)NO"jƭJU '.ʤԅ HVҸ& 5%mjWj ku\JWx :h)I Ғ:34Bk@ƦljXmX4@r*r ͐L j@ j[]cXN(kC+#bJ@5hX=E)!ݭJ(s2| ⵎfM TbS%k̕6SZSAPϾ#FT ]^)6H"= l$h}A::ѫ`6:I-2SIN_`GQWC<@wU V(6)15+.Ȧ$RN^kM8 Rҳb5z٪j-RxRҥ)c5*'2E>gm1j[h "&^]_AHvkHl#5֍;NU?`q0¶Ivy. .f*!J '1慞wt2|ϥu,YǃvI ^6bUz265>Ë)K5cV@G];m^[l"3,W8-<9H(c>Pv<^ \@5heX2A|̝1E|g5MO٠*K,yEXPC}MIufV :FmٷQW%l;)_tE¢p"L[;#+/D߁w~ʱU0t/PњԱί^e,(aOjC*}?Z2,$ڂG-S;7hSڸD)z-+ -Xe2k˽.(gejgZ(TY_f/S5%Wx H(<4(ڦMdmn=n@C4ÅӳɣʘV7-JvxL S.͢ʞR]-#S`[iEiuʺaya0iRmg_[}a+U$ͤ4R#mpM7E;(#E3rPԃ- Ԋ܊Jh-PʂZ"**=QRy3&Y+#}0Xt~6bG5M(Vdݦh]̻MWԠSN34xxЧJ-qPwoRǕ"Vg<@P%Wj%W' 'D!˳j֢)6CE A4H)bJ-|SB g6;D (ՑF"W/JC*R LAOa&stVw(R,R&I+隔X ed5h4}2jY͟hO(shPǀ=ض,ЦD)@&m8Q`߷@+>,i@2G 䡊RDh6q UlPT\"KP 30^m5ǚPn/:a=ipVQZ ( 6@N< M$4-7ˡt?=*47֮α/~n<+anuqV[q.;yR*9C 5WtxI!I2@tV}_nV̧$q߉sn%Yu4|mJ r"pFuUQf;tI4x_:գF+F˱)~Iw1떊j,u&ի΂v,qwfҶ}ɢ`} ?Uۛ?ˮҧnmb۝܏I%sT?7xRݤW}1\(PbQߺNx۲#;IEJU+9[Śm`< ыE-_V&H l\Z-NqC5ro TnWOp< &e E{PV@`e!]RNZu5*)[~Uc,)kVj`Ti:N[ p\l{i@ݣFp'2@P#߭Scϩ N(Jt!0)) I(~9ڭNX-B́R*QzhWki-#+htۓw%F5Nizs@ȱm-`BYz7HN NX^JeE(p2޷tf՛@:ǵWtDf]$@cz,IGqHVJU/~|N]A(q]N|Y6Iii+L?muٰ6mΆ]]%+AE֙vMOp}{)u+˒Pѝ2Qu CW< : i,VZQ Q(@D)HbgCr̪4j7ͶM!%EX>bȶKw.Q= M; Wg:Қ \(HK( )`nT3\a^<ICX֙yzݯUsNiѝt9/Y*5>{:8ht0,bڥ t$jKTiMZAԼ\tg. *H 4-Gt<-8'& Z&їP*cӊu SWȚ)=F`)=Ǜq֜X#δ+5R8ov|3bp(lm*{#<ʩ-\pxmBP4 Δ妎nxzXUU[t{cXF]|uĴہ-'Y}Krmy4[Nw2U~IϢJoVT;^kw}_ Hmć͸$'e㶆!Wu*i֣IPm~f?WKIg5x.A=􋇚JCrBtJC1_o}D=U$jbRw/%=)}7ٗn2nx[v[#㥧ԬCv|5} ht:TTXo(}K< ܫlrUk(˥eM䪁U*Ż2VGivt@9\~e.THlE;HʥtDH*H(])WS(د1YX٧%Z3(yCZ*V`r L=,EFKh2:5B4{n t_Y TYF(E)GT \5E0֒:P(,.x \˧$I|ay+sNsNmߊjBK0Z[@dB{T1ҖT; }|[NM!FQv(C@EjX\G9&tSnk> 2ޚRڏYhy-Uݒg<;9O^yk4#TbT-ܝiW tN!m%X_*\ϬtЮE ̣LpbX '>wZ| h$\}QbφufZhEMcLEKi絺 !fiR I24 3= >U} uևTۍגMۜIEO7#`RU N6m.y_~.PF)TSZTkCZw]Φԍu*hzM|7+Rkq {QW&#/Sb0LJ)z$D3=H ǸP6*'Χ>Ǟ#/Wϸg/6_$[tszG՟a?[hx|Km*ڪLUګ( /}.Ȟ=,l0%3mLAYjg@inh.o`=.hgp=Ahy@[{jiyˠ2v7Z4ʙkAT%"dJ5<ǚL@qL( C "je6GRw4>R熺 mʴin,m๺0$332&^: gvdfm,^?48Ey{Z\&πE׵ޚ.r`*kfźKvE(umUr|uC LeF;va=\+#Pv۠wOR*FL0]5#[p[eAj&\ y9]\4K\[gg _g"+If{Q6x͸ڽtg)&v*6Gi:NL?7N7vi׾ڿNNQ\g$6Tldqrm.Mu]M/*_~[";JܜkmZ?kZvHS?bmq>mU]QκNS+ᔞ"Ũf" O؎ y5S*죽X5[8Gȵknu%iw֚Ͻ|[+vp\jr\&+{˕\^7:6oYZX""kˮdj==M{ .0ʶH;ZũGAjPp[B$g-t˨̓QJS;RSECZu!h'9z>eNGҘۺWuUӚJ_\RǴ*$:κv8ZM>MdSS[PIRȫb갦Kj:nux&6g.ں q'SCVknf-hjXeTz 2qOGX'J->N-tNŤ>}wMjܚC[(nvi<f%{|GAxXmCw0},G7*W<;t"h?ϗ\~*mE&܏=g(b-U^& lɩC_<} NjBL@:JWv)r'_s#XڱQIsM98{mKYXa'zTȳ!V1C۰#S_r]"/2CԮ8\<~^[1a3=Bu8+7nKOR\mV6o<4$4:]KR kʛ3=UV8TS(4l Uu=d4-fmOd:la:QEEdsik9QnǀS2\tNs'f%bnz^S{E}>} M''YR?FZQm$N^~#_/JvyxBm ZƊjnLYI1\Ѣ>}Iy[M g.Y:˭jdqtuQr;Ĺ*ʬ̊]l ȳhXgob>W5\1ݦݚ;;+W: 33r^FX SvJbπEbkAf5 3uRHUd r-ޓ~κ!](](L[EFjׁp{ΞX(z=]§WsIi:'[JϽVmβMsZ]&sUlr#ۇ6 I6WR֜-֝8];}ނ -4 U硎]1eg*-њQJ[lgN8DpCٸ7Q#~]IU's.^lua:iSݎڊZ8C|8+![Ns<+ւ%Xo-c, OZv,yZME-ZQ23RރHѦucW*ʕcϵ j+|`k\ } cyN.{\-ThT(Ye{|2_&m@Y(7c@6*Rtvm#cmV5W~ΊB7(XӭEtPfYDtӰGX TʋQY{$rMʹA o#<K_Gn)&+xB|8@HkKWZ[SY_<}6uZ'LWd0DE); y)mϘiЗEcyV_KЮųGEWԱw=BP^xZ!W =VƽR&fsj6G!KUvzMy/iP筶0Z|{>A/ƧEu^i{.g&fW7G|vhM\*Z=MFA\Ktf0"wnh)0WݼAUPշu^y{ ^U\.v+ iu| :Fۈܱۚ?3FfM.h- wR7C<6vSmK3Gz}l}asS~ ๓1irI^xgYw5_soZX+$h3Xe(EkV1X>HgWn"[|աL %ge]=k NT]| s?""9܅mU"Wѕ&|zPGa8wFt@Ptjbe:'thcϢ#Y$φ{NUϭ((յ)&>Z3G(tk6=|U2HlYm 6ݘ^}zѫ6u@}I寖승2b-_'SnuJ%Flt%qiwr7oAki۳MBd3p8ZrZ [5CVVRS\jզmR*eoi ҊVXګ@ȒMt9VQ\2QRND]tNq59ܹD>;RԱഴ[Tohɖz^<;9Ӵމ`t֛5Ų^J 27ZSvkdp$<=f zC4]糙EJg*{Ic~9U_:/Ýx])Z!uTw,>$VY>*%uYy5N)C5cPYڬo$RqHpM;IK1 y֮{BJJ;Y) q/ Z=(mj.z3:[G^3;QօhF*NUW D^ (Bg7-۟z0Wz~C@Ȁ)Ukb +"Zi;G 2EITZi]ŋ U* N£݊R>;j*dq+ R-کE);[4(vPbD|B@`i5qZH jRf)O1f3Hc<ҔPSuu5BdB#].E|ʵz-7+E"硫ҝ]ǺեZͯZUjRuN@X oȬf:eEJ̵2-_]Ҏ.`WMWXņSκ*,(8= AVLjnԢTyyA@U}LJ|Xqi<)KQs,F:swhIG5 hvzlHʥڴW&A%"f][s?%([D4Y/KiT^.:hH^k*RqMѝu|3.EXK]-RS^|j !ّZP:oFd9kF=ko冢.6-~yϚ~z?+4YϽI{T_wdǝ=|+d3,QH!s~rIuiGEunj`v@r[q#ʺhTj!@/1l j(ٗ-i"ϫzk:| *Rcg>kKwJL\ײVZY4)i`#HGuy\]ґ HJZ)\i9ZfuBp"5(OM蒊zZi)|WwU#-AV6KoM̔Yp~f/[7gʾta_yo%U"vM(} R5煅/-;%i*ֳ.Y~-^m[68LCEJ{lqIN?&!-_#w:( Z%hJ%" XbdEE-/4"^Fꛮ/;.vEWk/\c<8w7_=w^w#>ӮPQUK]hU 5RKD闱xS+_˭3 =yv.f$"U"i).ş\ϔƀ=sa؍dduq*"ũE^ljd QC5 H2@t!ZtU)jCU?)޴[E$lSmJ:({ µm/{E hi֩^fܿUL?žEA :04Ӣ+;ЊE- B]ڤ;hR>&Yn9&wƞSfDrJ9ĝ(.Xf@T[P͊rq9zRS4۵ 5]BxiJ !. z%Qck4i.զHb)ґm´ }uf@EuQg 6zv!mhv -ώq $BuuƠWDWtY= Pa\FUfVN8F p.6-س%&dT{U@k"|~ITh۟:*N.Ġ 5m.5) oSUJfHWqګU&IHV"uݎi(8LE2T (2hgp*5Hf:5D[q6P4&:+'m4+{]}_)h-^YW*&IqmkAy,W8g/ᖁ{"5\iuPrKr۠=c0vY̔]Vi%5]#ORQz^\'Ws wTPPe|] N.Mt϶+@Ҕ[h̊tA%HN.=+KXϩ:N]%ÊWKz@z 4fsqz W 꺻RVp[ASҮB¨jm;P Iӹ{Ym増ApSfreќ=G26U~R|G9lb>نn3<ϮSzyVbpۈ?hJ: 洱?yQ }gѱhU:3ʾwdtS.m9SNJûvjPm-Pt阴Wp}*N*&\kPJf_& N ȴ(M XJ&^TxE H3}8 z =AL>3x*Sx 71iM>eH/~ż<W<@)2Љtj.eޭ DX}T+rm4B$ުL|VUi:"Z_|]?Swo$TcKh2)C-^XuTp fZh{P \Sŭr )\Iƚ(( EV6])& ܭHL?m J jթp xzw*zv>[Y~(X{D^U铙'F-Ǩ*m5{%φzwzznBLsiuS0 ؚ覕ckT9C <UxXRG@v,))Mu @ |@5 3$ ,o=r;J.eG]\Ew.MiajA mɊd eU+3=M>fQڽ N(t5v ǦĶTXƫiiaEOcEnNs=תίRzCMm8&n瞟]L:&: nJdG`xycWxݵVV0/[勝g-ԹºZq`SV7vS{,.2 `֮h8WU@Uwb܋o9]Wx<-C{cFP'MAϚ7>]!}KM/Ͼs.cڻƗ j9Y5hnaņ*IEyKeѫ=wk4tw>K,4=h<7KgɫiC^EݡhkAԧfOEt FA֍qDk3ꛠe0 k :he+qO( (JMih~w}){@t܀"yIGo W- O (<q%:(Q(kK}T51 ](xixWL{EIJu' W Z=32x*ҏE=r6'3hԄc>!~iE/}y-Ft ^8g)U修O-§yLUʊ lx?.mAsJE*,[&ؤ+7i@nzdz0`WiI)sӎ_runy4m~E8Dy/Uz{-;jT2Zjp7|LCX]5b cjAZzKԣWu@ F*Ջ@@C)j, ]qje_hWm.'J* / XP@~{,ksYz P_kMugz]>)f*8ɷl^hQ-(uZ tGjxH @-/Ů%uEh4P߭9T SO[/Nr>{U#65 y@E"E\u# Q ՆJ4VvG4L2J; !LqN!f₮]*Տ>'[E|V?GopF9vvytߚkM9SZ^KC_g'-Pޖoϱ^K*NjknlooԴ zu7yRqf`ysdci7맆-~ZW˓Q!@ݭ(_())|[;Вtr_~'z:e:FqntS΀=]B:?"l6j,  4 y NrVL, 4E?eUw _g._]r@R̻9'Vܪm C)関ڬ7">]ϦN6Iw8k0M~:ۖU W@E+YĈ76뮆_0sܝ ZrmߟG)+]w(Z&bluhWYbs%__Q_\_?dÍU&kq4Z.gUݙ>-Rj qEUr}R=p,gO7/|o4^d{ڍ}HqȰ˟ZCmkqŮEqG6VZ=_j)+ @ԴJS@nkR*y?5R@Z fa>HjY0:[ך]jGPmӥʀ֝f5ljR.UJg5-m]V|['\ZGuHd`y S?8#EXlgjU~r\խes#U\)Qe޾Tiʔ[K4 9D?MdDO}$|RXOs)m̼Bq:QM?^qƊϭRMZtW"^tfML%EȻ:HCE'zJu AeYJ;ޘ'&]@;iHhB^s[ya+u]CW[PŪ\oKxkPVܾgEŞ@C 諐ւJmpZ)ҝo61?kq+=U' PsvmNU$m _ _|֭k|cQhsHR..TKg/lVvDϻgpk:^kHEY‡-6RͶR ATٜ C Z%7'ak}(Ԥ[@OғmaJzLp`Mrۢ]#AY@+2)Kts=R0m+FJOEJ@ "\ S*r(ܔ=Pz >)HGFWJEuwU`^}hN*PE-k (Jߞx9)Gb^ݛWV<]fxjFp)۝vSH-V*̞xpV2Y,Ϋ22uJ4]^6O^CL-;a([@ +aJBSNS"Mt_΋8ʛ1,L›폗|syK3Yz^5F=w"[J/t(zEcwumP!0 `1G!L 6L nh%2]jjWxP.3j5jii7R63s7DJūhΈZ"R+!-ʓj@4R)%\4%p].g|WxI>j^kdN,8ڪg4jҍ40([!ȱQ|XKfi߈ ;kť%p}T݁-CoSh[Wcus<;Xo'h-0y召J >7NZ?YwJYP%1/ Illm*oZ;4ڣ-(Æ\@n{MLĵ󋯼os;<ȶ@4Z.4L4+sBT NP W@ Oq 3I3"5K@hR'W!YQihwi<>Rۃ6B4('zTg>U5h7=6?z[nk4Eݦۈ+P,Rh ⣪EXaPFw>):# ]> m8JꂝitkMp_u~tN)m!Z,2GGU҄ S[En/qoI9*7Pi|2(o"ੑ[0ʽɁT+EU6kYMjr'yCJiBQ(zkWubPхsO 9+=6Gyu Q_ 5grփ^Lv.)qd6Pg}80(eN y6j7[u ky}Kd+E)Űқ`z2ٵ~K4UUs5j_kWRW#|m⾷? ~z&ao+A ;JH^p =q2)1NĞϊE4̣G 0 (ghjesw'Gš5[5}_JŔSQt5-=Wq_>[tRΤ(hR u@6on}v}WG "tVI*E Rv%i]k/65j)ju(ZtP"皷*/۠LY]UR1\T0IM ՈzMtUSO}$ot ]a]qit:&&M.AAf]ht7OEgZϳ:i_g}nxL筚Z-)BHȤ;~SJyK~x7_]ߖQ & +9H ⇟h7yKϞܵ^YӮy/s2yVQ_$3ٽi+/Խ(8??w=N A((6/Ӳ!=rR)xkF:{o_*drԧsʿW>)6 * kM2uBhr,Zd7)C+sP]nO /]P{ Nw@~֫G#L{PϢ 63r Z&tL2ZoA`2jd#ҬŔ|Mmkv@VR(eL\|P0GbHЧTS`ۢZ>-C+A*ϧTzѩ4QgbE^SM-Hv\;2XJNctM+(x84 ˽!g-W dn(TaՙGbfyW%8r2Si(fqf!'&"%5s؝ޢg]lTxi@_kNYP8@{7y#Fj.%ʮN}Өh,@L[94E \20%<(L;G7w=U4B-*R≨ŏA-kK|M_4E?y_@Yj. Ͼb{qz_/?m7)F*\zʼrK kMXE+|#yw2nV:ӽ.]%*' hUJ($Xhwxc~ XOyGP. }>VizhI n2ɋ-ucږVLcw Bt_8R[%RK79븒$S;WfԷ*]0s Z.s#qyΠӂŧFRVjO:si5wuLnZ__L.<:ǞnxkMg[J;ş㢻 Y+4PZ=Z+sPWU/e1g ̞{lRi]LFk=r~sT+RA8?AzdܗsM=\2t+K=)=pwgnҮZZgH:zlөyc3qFM*lW4+AQ|]j: ̅tC_݋eS1@5[]26^|>k1cN.R.z mWn&wLb}?yWp Ovi]܍hƓ>"鑗f<|eOOLjZuǜ%(Z\}pP @J;qC:x)ƒ{RYZ|ISK+%(Mk7Ԁ@k.)߸gvQشQe;;ԠXfpqo;V \;Pڴe?g:[9u&􂀰&k}AQҹ,}'tȵՕK!zP]_!x{iy-mKJ-Gid=].Sybgˬ1Ž+ bly‹OH\uW/v_ pxźUv@yAvms]I>M#̻xB왦5^,XRK6ecʁ(FB;5y|]SIXn.RjˠIBItTBIu(%YE C5h:'E[bUR IRA6hS2v+@u wUJi6k.r8kX@ŀp,qlt0LRvM6/>uUmӻ9|$:\4HK_9/IFnnTe)k-*̖NFsEdnjo1~EEpg)rB̺M;U[u,V<~sy: OW+klm Re*EW M:`$d5`bi^RAMu% mi2xEiػwGvKf EhiJ崐vSRjf!g/(zLT f6dњM|$w)b\>u#NE*զoԺ<OT_KZW%4@%35 ,02w;.M]]σk*\^}19 Di ) ŕ ]WZDʁjkRAsMh"EAϴ8F'?tq[)z{7އ{g5&qqmTQhR "O(9vg&w6\{kK"[) gTMZ=6JBh' ujS5զeC*t4^Z}>q6yK%t rkT0>l`0ZRZ`i9jRxAm)ZRP&@L]cjq:3 TQT(U-WjQP&O4{Sa^q O tR3(iImJL:*= `j,ԇrdRVzbݔwO'0Bi1?B7 W&b><_ZMShPΌG۲ujJI+pd34D$LnRCU&sKRykm4Q+{wu´PQ8kFj*)uu.Ro`ZjOLȈUlR#:ru UӲP@t]OTsҕ†ĠpÛl5J<в4ruL" ACZ+5&DMN~:MMJ"/_vCt%UV5s_='݆)5\Wp&OP UҦeXc<}\D S79FSUW@TݣTa7b`"JC5iC%+.W/х(cڤwB S֍4IгBGj;x+zeJj\RiG4+kJ|i[D2PŃ \t%HU@=Ɛ݊v(-J֐%:(yZ(u'jdjiy#|Y$Z> tM# Ԝ=A3}< ^+}s&M(ԝ>p%}?H)2A;Gךh_4iDQj1M(IY]i`Pxz\Z:] Eb"vʦJ`2{ ST=4j)TUl]qo]6C\w \4] }|Qu1>lT NW.&E?@: AmNF^e|:#EpŧF^Qʽt 뵻EUoyL*1WP'=9UW QY!BY] {kP 2p(/6s:U;j[@_Ut1t7zm<;D3|x W=,^ݡU^H(hW5QݔIOK.tm`~}δS 0eorm oANլQu4g=6}'@d J02ohnK1W-_65^wsҴk>"Yw/=_3h7)N.&o-}] ; h ኔ>.nBN[]X(rbU-76F`] ΝQH_>׽ro3¾y-:okN?vwq/vRcsN&əԷw?p7^k^g@yNKox۽""w~w|ל*uXj6?uڛ:Ӯ2UW*U: R X XZ(Hl"cѭHiE (=@>qU̖xsƽ ME2Qu_hg9}ːumj_*T2.K5^ZfϽ߄A*{iqu)M@J^yQm`$+n!Ȼ )!0.#ÙI:m`s J2Sl {\3Fi>׵kJ_ @ZP/(&WЋ^&~g;%f_:m9H_^#(msr49hoAsK'ZKO絬{=/f=ts/!CZ5ᅶTPsM),F~un{ֲ7mJ VgM:TCI*e`btgT5=\,QCE(3ӱc|FmMrR>֢.#pXEa{ۻ#/nkCRyV)9Cni82boZǽBKx?^UX=snVzgt!~P˲9YEs}19Oncߙ7Sx-ǚr _~lE%243s;s_uD 0}dqS暩M(FU`h2QP3.^z[lyJP=, ҥw ʯC)bNK!Z&fэJI"jJEӁW0.#Hmͯ{MG:_=|yPu G v>cϮ[#i}}ۘ]r-sA󞊯Ͻszp[]OO0 ]5 Ri4&gS'(C) R>4RQ)ڛGjTkh(^9\,4+@ 0PvUfQ U8XbC/6\pfzOv`]PE;N^H H5_|/6֝+Y.GJjuK[:ߖŴCdkشo+YGyH%rg;+c f{N({j-~2Gd#,70h6\Ẏ fqa~ZɴӾutQ:$V^.*2I=ʗjY[6?09E}9r+j:MiĚWw4˫멠6-wY'㊝u~E}rvfzکm Ef>Yu?]AԄxn鸼V7yI)Rz.С1mwZ FSsJ}kEb]A^(l$Zy0)vA)=m]yJBjz:P15~Zon(͔>{'Oi8f7R/Zm>l\uWotsLˬ [^nX )op)>8+3Lޛ k*_c\.o=\lym :]s'Œd<]] *//ٽAL;Hw\Ǡ7ϺmAD73gqnݣ-\EZ,jcYU`]Um`Nx4gsjNe#\yN "ч%hw|SOϙOF6)rl~\%o[{]#/Fr^C 4tϪ9hrA!j@ rRRDص+2NR{Fj^eThڳ]VgF@uԴJT{^S*qwi36ak+}eUPg>Ӯ>1Zjy ʴՎ *EJuV"]RS;Y*ӤS P Q, SI`e;=Nz2h[-g.J#zUQhLR\imc|Z k &k)W"2МveT**<}pVjeRt^,tHg*?/۬kuk!jےiw'[e*MTvA }{GAdi]5r1|}{I2GEۦZ[ψ<'=o"):O׆\FZ0OfyE8<̂s(RqP x .ݚkJNBm1ѻ.35厰v-/ZpϪ)w00P8ߕ/XzYrz̻JevtrA?K ZǦ**o ~I)i~8 Mu.xN2-FSvKj⇬JL|XKUmH%"δXh]SboVU^ GtX渶9kBԦusbʭQ`;H#-\E]iF% =[>fZ H/ze4¥  =< 3W h?98EhtסZ_7^ґvݘ@. Ez\!窜[n?G3=Ta7'g k9vV" 꽏d墭mt鶰ɜ XEŹSӗs}ZGWEA4_^}[gHS%ŤWA=|E':ѷ.> lGK@ R/RuEqnݭW*ikyU7sD+[b:{T u^o;ίW*3CUnA,2~{UqLrKiY-٣)iu9R65 C:o \&-iMwcz^PT odUAn\Pe'7t="/@ gf)K*jd mՏ>ul.5ۺAK=>~|xW<F`D΍C4Te%yK"̤M\Z3uYe)MR>2у|y2quVѺq|{ J|\X*@І)[Okƽ ~j1b ZAGBLj҄BlMFī)JP o]BԦ:;kOkBml`)|3E-~\* b,YL)s AMz UIK= eE{d4P-su/5VZL枻 _{!).P*|w`^}żg[Snw>S_E ⩺ k~nֳݞx(}ϣ7`]08{K*W] uZЭtLWv5Q7";2,Rdn858ߨN/dX،Ux8M "{E4< v@'Qϲ CδzPU9_Cs>wkU=_*V|S:ԥc*;ٯ*_~9m&h48hϊXsc`ntڕܡܳIFCܢt@X-5C권G}X^ւ9hAPrf..ՙȲJy}S ҚSW> /T)W^%J_IO֜|a~xz/XQP )M;C5_uM[UϚ x(Սhn.s. 2T ^js5˸4-\㢵5DXW=v8r} TE5]- |]ߟ]iP:'5}]ɷ긛fyJ(6"8WN--SQD*jB_M5<)ެ3W'{洸 Rk ;[MjMYjif"DC;(R)2wvz )M{|- S:*H~SiG@w뢨YεʖR<4`Z0~x }+:Z *ձ;W$@Z+hd<)B)ꕢz4L4Sm *6h.RhOCL4;d}<1./ak>LhةceYSA챙^ҋgULVQ)g"~i t5\He \%)O}ϨZ^j]\60rP[Wx jSJJ 5Mܫǔ7Z]G>ԡskXqjRDKuWvo2c7Ci#AyVR4͚๦O/7:gUjmn/'= |HC<)zCE]ToP D㖽,,4Gw>Sк btl 򜵥FU7nj4`]im]52*!֫r߳DJvwojM2r;x]=J3.G:]i"e[‘ Jy~CY֓iϳɦ[4EO4{yQn̪rr7*X$ ~:\g\]fgօFY#jhSCE4P@5+S+YAb@Z3Lͬ- QI-: iUHq:*3NtSLi`OKY+\J.*lyPг̈~$EV3*zhܡ`AۑGhE"jl]*y)Kj&Z+EJ.=,{|=nn:Ҁ4Ŋs Xwk;f ͓Gh4n:ny z™CŶg}0[]ZSK;%#/ڔhVW@5:D6Ϭo> HB3U·zMωnig\ʷ(\=3hXCW%̥ 5306S7@J!X xIE\M*Ϻ)y׋I%*< U",CۍlV*g.C̛}0.m\Ϛ*$V_wfOߍ?q-x;pR*tvP?zrMMdrq?.0vg90T ͑ZC@ E{SbEENz-٩-z TZO-ц}7p dHFC/_wM\/@PwE)kUݞv̬ U|1,=ʳ+ђ~ r8ZD0*X&m J4JU/>϶j @A{7l QfvN}vm=XOMϱc%]g.M\XʽhVǶ{V);E_Ws6:ӡ)TTRJ*[Q))īμ#HFTLs촢!mɳ_qcMk4|Ӡ8QvJoMּTp4Aƌq(zB'8hV8gAzZkŪ, u!_|)gU^3q޸^eS.ֺ}sCj^ss1ri[ fV:Pwhj}V2\sL+E6f@N>s)c09jʧ@^IbqwZhTJ(|3Tؚ|E%hIFT(2\ER.ӯ\ؚL)}1}#].d|G]%~P땗Z| u~K=>Xt#xILJ5}!2(ǔGRJfE)[E(aL,Otx+@g}w F5:%{htWhQQoZ"M)T/U},ͮZ*#F0w*"W̪͑,m=MƩZ 5/3nf=evx:QV/ҎXūŮkn}\O%rEEo>"jRuZKrX6鹥\e,'}M-2(UJƃP ($ ]Ȫ|ŝMt5iuFd̵L; gW)AI*^\,qw>5YZ,Ybԧ\gº:Q2hG_v!5[}pS+tGN><4{p|^H255 a <ARR.WD* e;/VR.[qL>I֢:>,q@I7k.EaPIC뎇SrzMy*hgm3 Ugs@McϚ5 赵[]8]i]61J+B*P%iCqrMm ӠoWY7;T\o!BkqtzK:F $-|6>K[e <]RQg.}JW}-nKޥhϫy*_u\նW(u\G鯋d/5ڨwÁ՗;!W J5pO5)k^y,ȩg4SŚʙh]֚^cӥӨMVB^9e-JC"t=T{4M3HSAg7z m[ʽCvw0Iϲc}|ff JCw(iux Y%H 4-wRdI=h y㠪Wv0-̬(*Z"@Og C7hp;U.E\Z:d r}~G3;O ZL\ʆooWbR,XkZf;htiVh`Zg ۹CVȫV*+w>K]TPzPKZ2 W/+WvxJPE 5JSx6B5BC\}[icqs*ey`KS= zEt:뫈_z̺˺"vQGWz4|xxkC;}ܔgfvJC z3M .,Sf*m7ʾ)33MEnO=Rв&nU((Pz W㫚ަs`[#[e3KZ*G5rS06:r-A/s@pܭ^SbL9Pz`/+^[B:җwqA#PPHUp2*sy>(it<-ntkAuW'V{%ڶ_PEkW t*.P7*nŁN 4n-A]PmZ,b8iHb+1n̵(0;hQv:L4NzR z)f3)\BJ=vZQZ7JWJ\eBŠU]hγ ~]Ɖ$XfKtvRf\>f>PlȢQmWEh vZhZS*y.H:ԮE] 3.7Ok\ מYbӃ Jmcz{E| ez56J;3|© v:V|TZHqZy;OnWjGcj-zpRz.,DȰJEf;))}HZRAyw|uܒgT\]+*h>Xzp^ EuV,ӻkM}sK3t~]mr*K mWp(}C\ۜ &Aʽ_ChLjYZeZe+u;M?F| hM:4K;PusZi@ \ (Wly}hMOPݭ-şCR 3ŵړ]{h6=Uݎ=Z'rjF/gҔbzR=)WX]-@Rhht|E̊W iGhIVgXrQGBSrM+%;4[_ ײ:IIv׹x"tW]a{m#\ [qaS2)=y^ b {W:Giq+KqZ_=ו F70=7xJ8Cj4+hxwJE™(G@J "Z e Ak0xl5-j4nK4uV4LW_j2֤@K4xw1LB]V2p5Kŋ5 Kz)ػJҔ)ҭQfJ<%E(9/U֞qHVKD\*AM6t&i߄wG):<ޱm]ǡZJ22u- EhJ~|--(C`:5k2T \Bsr@y~/7{|$A ރqT4Pr(>ѼG-;Rt\[磡fLOʝZJs sMIźG)ҝ+/^ WOPE(z]꒱$\FѦ>"BR-\vz5>QM=$ VڨzIa覹%tQf[2iC.-\'verV34n#ٍPǕ.曏dkX{.Mr =|?nGOxUB7gԍhJn|Ԩd GXxឹRG(uPfy_ M9,C".1W?3d ;[J5_WwIbE )m(\jrD..1Xk{mRCW([E*Sus@eJC:TMR4K+:  =)[Kvz`ZZG{ҝ"@-[U5W] YRg.Кe" ]IFŗN.JOZ-nGԥ"!J)=(I:sB\lg񽢗JQ8n쾛Կ\H1n)n En.r^m?ae\F4W'>*sBrR1>asIO TSŽmvéxRh`Lde0b L)^sOPbQz0:+n>cFqesQCL(b򠛍žiP-a^N mUx{|Tʟߠ%=C jS uY-hjIz'K[x߸|uZOSeuxݣ xEњ hXR,c&T++|7/™Ar]rπ*BN3"u(hb]vJ)\WJuO]hT,[GEvd4\ p$fТ?*ZWxaPz-رЀgǦ |*z +Aj}JxF()/>LF8S&BNc9yw8Ҵz'f5t YR{< /-7z\}9e~ gʸ^Co;^3Zz۠r˥`k=̒sjaEqLo_u5F@\P:D4Z P_X[EpRf3+*Qr@|CE:yZQS9ժ+G5GL" DUZ>pCLM*hJ4yOِ+duMZL1N+K4)@I3-*ȱj"f.QݵiZ(GܗR\EW$,_iBnȥ,utvϴif3JGH rգK*fq黿9/N#c&PX~L 2Y%g'WMVǚXk VT;֊Y1P'V,=^yC^(XIsE[f(v>xw1.S1bJ;D[K3Zhf̨ڱ\'A!*Sv:R]ۑ) >v[lWkPDȌ:2dVnVNK3wbz];7ACC+姇HwUP Z}6)Z4c:FGd+9Tr:ld^uxa]i› + dt.vܛ^ʻz4EAz'47x9GzRр[T'>/#Z-2p'[.IRZyb{hONz@/#{ OjWBR*xlzR;z{}rStfiPa/4>$^khU/W*QZzn'E(S 率t.Ŕ.-AobM=@!݅6-x]kzm|XAH3O=6֭r**o&3U/>L8=1/Ʋf0%_<әk"^kK+]W%8*}r%i;2 /<{P(Xֆa Uyݪz#mU,i0,͸)8Ȯ UrDK%/h;bA'g瞆ZXX`C>R&\([D7T+9#"gĘtzG?:x K7yiM/}ϼ(ҝ-oydMV9Y-{·T[t~k.1~}z7CN܁1lvneq4·2dύ%eh܁>džl5xԦ%8ܭmz,ZyaaV* &xg M.xI ;>麇XRp|n> h3 ι;\R yknx/,?WtZaѱ~hn黸 d#dyP-̃5҅0JѳEN.WOg6Ҥ3֌DC( ⸕Ͻ6U9Au~dzcd6es֘末gZK/2sەr?=2JA4d]kx,uP#>Hlsqt-9G;+tn(瑗J|O9_4HTllsUS;UG_u;r]IBʱ'>ywW~.G^vMaq`E.?6M4PB8)1Z1Ɗymȵ )W*( ) :}sf<`=SWIY֝ja+R)#NmUw{EL52Uz 5hҵ".!e(,EJښ QIP&{]mԻC4Hc TPk>+ww9v)m+>8nM@I m+/OW*v}B< /*fV3nj4 m7Xmk/e(\ FT{ym@〢l'ԮUuCg:\۟djsrgKt\}+i5mʶH!LcP=wp%U46iInUl}@!V:\kkA&}h^kZTU &[G;*k_6.ũ0։Oǜ|]0~:15~m5 tj[T󜿩hzyk3$ Yr.ԃѺ*l֮V2VAm旑yLGK-|Wk^rX R/kZ3 t<5 W iUi>}_tFX.c))qOʥU_dIBO fKh-4kJC;v- xY(t;Eômt E4N}d1I5H#iqlq\A?z 5%w]Kcc}{&fъCK`z:34_C?7~rX |)R-]̵hh hI5XR4ȹT`iW4ѱkݛϢ},UjG<-]sun.KC*;%J(=j4𵸶ڔ%Qg U ܤ=P4p)طf,b e^W,ie /s߳JGRŘS5z@iWu_6X'gS\wш0=m>/UhX飋$ʼnzt^m:*]{XaBoU+HnMo|odŹ9CZ ~Ux87ix9@~Q]Xc>\vђSNU{։#aTwωM\sPX88};rpsO<{!Q+xiT ܞfX5//=O:܂Vt4dVicw 5xsf9iݑjNhAe^NAn?%{Uje8Ke w7އ827hfՍ.c)ҫt7sŮR򉩙TX뒆hw|ݴI2+t]R{%uk(~UglW1j:;&h֖べeYs/s6跔ьUu9GAU{GnPj-P;&Sq7۪JdhSէ =t.Uɜ܊9Eʆ nӜtpR͵`s9ϥtfR5Xj[F<"XW,2k J\nSǚ_5Z3XyʛJ.7,[}WAʝOFϪ:ޯmA>#w_ [$Xz)u^j32:b,#P gj{&EuS?C%wx2%7Js⭪\;Oхwڼ8Kv\i=C>@q*l.W*-u.A-Y,}/4H_Լntޯcw:RK C_>SFa6Kԫ1ϧ\]%KUx侑55L }Z1t-=ѕdWV7$iϐw\cvltd<UhR*WqmHϓ 5ɘ-<獰y.K>u_S`Hf!˒[W*v_3c+VfiuPͻV.Ѡ]~SϘs,si}Ϻvr*g*ю I_F*\ҐzSɔ2 6!EjzBh|]NW+Gaߣ]h[\> ̘xh:Jyuz3Fr_0?h/"+Û?,+\-OKgĿGfˁ_ԡB?'&Sm:U'?`_p.;rm9} ך|Qo玽5CX?|_msZkx{| ys4կ@*'MELXAk^X6ӛMC~!n~E/+^[ *OXI3& /пF3L:;-ө?˶__m" MAz'7˹ۖ7֑'PC4P8Y#ZvSCIIrQ, X;=Ȑ}^{),Wv Yv-ҎkD iY @]H`'#]ʥm(qu!GXŵE JW%"0L1e!95U)[Ł<պ-mLX^U{5'nJhjl*)A@J=R̊*ʋŔ ԋy܀v::jRjU#@ nEf1[m^,Y}5ݬY4 RkY˨w? ۡNɁ_ b#@ޔ4uW<%'(nrwm^sK {;sڱƿHh\Hm~šC3Fian>h&O*!T֦t["i3dFyV1zj\Uy!>s7Jykx y^wK?%Ztd_NHN#-'0,sT@ jJkRȹBt=@]R6ȷ佦xe3B[Cs7!:@ﴋ&J`\U˶1eLwODn4: ~d3=Mϲ]7>F:Z'ԺE7xS#;(tp}AޥKwz *xlKm:#M /[.Z6eZO-ysљ,[SYI@3zYJ)˭h_6KӗcjEV:)ֹJcz]r-zKt2--عkrS41Jxg*/ MѪ]Xj$iֆ4{N5{b̫D R2vQ«ژjyޚJ!]RDJ\1e!EZܕH^x3 *))y*PMdJ?DC->,pWs\*QU+jwZJCxo -Z4ff'*RiRQ+aҢ*] UZuIM'mTMVZi4J#@]sʋ+zeWv-bݥB:Ѧd*v 뮆Q+]¢i:WR,]mR64S:Z豪@%Z]ҨgҶZ/pҕvjP.i5^ϚW9Z3+hU.a=UH)KE [QgΡe&"݆tC (t2=M)H֨d}m>-f9:E{J4Lo!(%P&xɚUr-~( D7Xtn"ezJ2,˵{DYE+C[b%: zESip20ќbCT {nqZґgHW;a@jfjr7HTjHʺlSӟwj{ 1L-EsG?4@ݱ*6bS)Wq ݾckr-{"Z\Ni|L͍nD͢=3^ϴ{xS][](- g;ґps)xF]kWxciyyZ2`jPD6UkE MP/ JgcBOj~Ϲ@|o308K RNytPuΧ?+:{Te~x쫾-"(QogUJ8F{gO=r4kUB2zJf\vv Aʛ\Y䥖YjnG_HămI.}i|#yRMwcşc@=2*[YqOW'\-)M-/;3-:ǯkAUflnԡHxEZ)Z/6R$[U@:Ԭnצjˤ B410Ņ^Jnf\UT4QZt]^( n( zx^0wo:R$W!gHmѡ3@L򽜞hjyM;S U,1 S<Bi5h..cvYjlYA]=d݉ujMRQWQz-Қ-QYu֐ 4(P&5QR"I =^i:s x ñ\*zj[U4Y =g"]kñU控a̴+Eed(j}db-Lߠ۠..L>չ֚v-hrSM)UԠO>[uWPY}D+2+Vg ulp‹yPtx֊+ h(WtJd^$Y箊wEO (8hEkRj<}4PEPC[j>2҂E<,[9+AHzRF^.3=MZ3Q^ XhUhg*W S89U޹$}yUp?zpx -km EsqE4+*]mJcu~@B'hiv0̦i=V*"52J(LZ,OP$ .ѩBObXf×s5i|V!]گg~T5wg-ZC5r5rp 3H)WjMU.i9(^䲓"3*)ImOB-'t 62`:\5re s aeV;ᖍ."cp=6PZUh.}RѪVeŶ chԁNSgJ:VrQ,N \3F4.9Ug0LcȲϭOaDtXcT6JL:`}3~j_JqVWmDTRw[\TV7( "ԅ\ܺ i;(eօH(qqM,ZmTSwy}D`dOma:A%Rc_XkVD1P#¤s, )w::]P/(.Wu.NE rU%K (TB H(4S]̻֩ >sP8ݶY^,>*u"W@5JպU Z?%SIbЫ6MjR,smze],By[Zbi,uJot@5*2\@*dD[5Ν,ZBR34tYlZP5"zQD5Pyp.ְOCpr}"fiP @ }6i)R%EZXų)VHͦk@",`4E;9Զ S:|=c'UV?g>ϋbC Yi^2 |wުkn6mĭZ+&ARѥ 0: ]VcıSK='ϻ Zg*f.Rƥ/{CR4DQw!mXkpnf|R`d JCz$)JCA(FjR)5|&Z4O<Ҵm OETMpfjEX{WD =,:$YFtP>4BtYks UxX\.ڟC#݉L^NhU(JCSo*Wxi_% met:xmXwԜ <>>}O3 _jZ^nJE2i )2Qc!tX/`nOZ5{h.WOk̺A(-'AV@8^;"mYR6嗞Z_*>?>j$jfc:ŞM GUP뚄[>vO*tepd@Ku0ypyCZ9~yW@%v-)Zg-m5*4,f"U݁ւ(T^Q􌥩h"d[yJl *E\ \I~2;hL,mcgZ^_I:/]ۜ sPU,umŠ[O T5` EmҘ/Hj'BA=˻msz.}wϹ_#TW%C=W)k@w\pOS&P3c^n^;=bf&)4 ʠ`!rl|yc0:K~=֏-& *Y-im h(y/YB6|Ⱦk'PZ\סA ej_-X{^)CZʢKm_JW'uƢkƜl)_W]$_\Psƍw2X.̐c ੑKjWҷsC1z2`l=<ښ˙&k~bu3)ټM=sHWʥ/mAn=Sg6kJ.ϲf:ϠUd Hq: RjUj,FYy7MК jvs+ -;rmH9iHn(j}E_̒OU!ɮ^8Pz#;x>7s݁=cwqzgiqz;hիԩO,WpOQf|Ӟzl 9v-(dϺ@331 H {qUfʵ(k W=67e͙P{H^s*/3<|X4 "|Z{ \旯-p͠&}r]Xތa m4am!O`ql MsUJyA}czoE]`l5yǣ,#wWͯ }j_)p8P 5t]RD+^KJYk0?=a+w! S?O}`iߟO#NPtzܡ٢\*ssHv;ġw\AvRdiE!mFk5=jW%&WZĺlҡ"BD|펹h$4 ꬵ2SiGR ,aEjc2sEiY4UGS $ !xU\y\kLS}pd 1rjc*VRQ'>|9+M- mrѭW3JL][uyB^@hƆz*Z7¦Y^Rc+سiB-{eŮ|Brʱ[cf@%*[J%[ts瀋*mJd#)=cnjQцgfr3<ΠEL<2%am ё|m 7CZ[ oK+K{S+EXmઐou-@-Q(5RO_R9W]kZ,mUݥYzA`򖳴;D]AJR稱oYD rP[]I] <vVt^:-WINWMEwEdZHmŴ@Sݥ)UҪ>NO \>\O!J:+Bx+P;-p U S.|,mZGnEv,&S;֙P#V$[Zd \MM&]ۉE)6* jx[@z:,ȥ5Z4]sHn \"d>m\̀)]Equ*uMOq<JyF+ѿc;SU|XdAߢ+f%K ;,-SW쾐.g3KEp PN) 2)pY* w#/OP\X'sfڗ:6} JCޓܼĻނg<)( fs ݆G7g.W]\$&|ZEqgEhH[Uh}37S H(h!u[jHGԢάQ>z]ʮOLE UrAŤyR).G*!]h)`o$ AQ*ϦsV6jNfO*Z.ln)hIEFz@)J`r˼7ZfzCO(Y|Pj "hʮFVN4sm,M̖ii*Hizr>i\қ_"(U)3ClLx{+W>7dʻhr)HѝY n5q)(wE]i `@U\{9iyIH@)үQu&P"1Aϫ+X`@vf.{/6)\]gge2!vJ:+"07'Z-^t*RCWt.-W,mKꁋU3h[i⩥DOUjfU @̔rq*E Or5tY,),뇴TYJEI.>Q|)* V\J>awPKl] -ќ-CkK0ahr@iwjhqwnՍ-JzN2Cؚ UrIMC9lt5t;2 ,MpSS-JPT]R>Q,ZI-)Wf) 4 ̣EO'B 35) )R@o9rඞTe gj:UKM~vV\FzJ_ I<&WWϺoZ\}=6|urjfe$[(LCW/Mi_%Zu!ݦ$0֮8g(ᡭ WbBK06h-*(Zi-^_d;)K*U2U,-rЄ\ Xm@Q@P½ܾy6|RϼUঢδ*ऋ@)L RT%Rakiˢ, DOsf"Z9zPس5%ky+cTz,:Nb=u]v^!]pLV-U+gikW.TKt7޲1C -6КTǴWڅƾ׍o/m2 GMHӞ )uPn)M;JPϙu ttS,V{r4ʸSYJ{tʸȯ֔ugf UʆM֔Zņfѡ(Dh)DR)\(< ڱET:xkctUNiz u.kr4E{G^[K4(C Sfi#Hl/U-QJ#z Qtm=AJd한'/m#{#O+}ai 5v/(,iȚJnȴ ;9vSuԙIŋ:L*S ['v;/ziJ itAI+̟CCJR-Vz,Y:޹\y9dR. hΟ4vϏnEBRcA3Ml=g,4Yjy;\*Ťg۝JέQmu(eWquއrfg k;P;35 4q h̝t0N@ Et rh%>xX* #iAgJqVJSLfŧ\NX1R*yОFYT]jSm $6.,*Or- <+4/TB=7R4Z堦5E\ &"w*-5ܴ[rVƴ \< a$b`ES$-TeiE 2xܩrϔbP[IXtқɴg6b P*13Rg[e3:u`Z(k@RZh): J([tԃڅri:]"-VWD}S Awiօf'mAF%)g|k4vESb ZjUy޹in.,b!tiQj.RӐflc21kڽmh rŴEEŁ*i2!ZMdYJI΁ %I<*5N 3\nOg..P٢֦p{F=رbΊs cj Qe"]J* xV%J <X:5QI)Ut6-֫m^HN"%3j;(-r%''U*(Xr/S>j]J-mdEQbֻfs)26fZR&8f`ZvUMkV3t%*Sh:xV..Gkdf Ĕ)7ӡg/W61nF*Xv,]=ESmJR !&ѠVqEa=.R( HX䠉mt34UHTC Z;chEϊvX)m\RC-(E0g7Z4=iRS5sRӹu`-J _7PY] wI%=Pjh麙s?}_&J156JC&4mYV2 jŴ4}7K:zf̞M}*lg2_G4kPOR16u<6}\<gV* )^оgы),uܬnR|Pr|Jw47-w /5yjet}RrƵi-40O#ξs|?_ is|lp P6P|j]XjVsH 9U6/Qޖk(:ѮZڽ#W2W*सjHiNy\<@R%M 5WLeOĻS P T (e:EJ1b5Qez4OV֊q:}`Tu)ZƝj+V*tYAHߍ;R|RdŪ*u(oѪ*,A(ТS-E@+ޮ c?UV`=:ȪMeZZT6ڳCQVj-./xqi}(*z <:+`$讋R0Z? @(". h?Z8{mB̺Sm^:=\ BJRd]|D wEh4RgwifR֭R*ix+s,=FUpoK (~}*m0"4;jʛ(h=.fCE]/ uq2{4K w[{tjEV: ERzf<# U^M)< , E1ԋaҼ)| wd>ۦk' "yYMίcOkXfu[Y"+#kXB غ6ػyw֤~vzNKF s.➩XJy3 Pե+44xک{P[A[rӕh!6"އpwl^6!]c3A연* ̧iݨcXJ|<4;)WSqg \]ր3[oL3fTC*tfk g: 7AOF, ʧ>74zĔ=-yŠ E KNe[S+mJQc.vFP3Ҋ3(`60N,ֵM8U+95\7Cv/Pw-lIJSZlqy>%Su+l\׾:5$A0nYֶ U~O4HJh‹EfG 4ԨJ-<ݫW-;(Yҙ*.:,eC-cgQ4:բ+\\ EYP0ք°րngjgm7o|gݱ)гԊ mpTݞtkJ`*3UEuKz*)W>EgNM`'ևjӢtT) 6EH: ͆-i4N{"+(5 F- Wg)Fw/ES`b.uƙY7G)2[402T2rB PyAETr۟-$4f' Xzb, M= 0+>WH{U3kS̻ ֊4e.NyTOj SIF2T[1(w*ӉLŁ\Al<&5ZS7@Xgg֎Zgq^ƢʰXʙXf`+ȭr< O:|3gUNH SBFf*,dBQ1B].=c(N]a+rZb;iLqlzә6MA!ư76·hw'jV)ujFPϴOU(e֊KQRFyȶ=ec~-Hms{&9\Qz(53@J*z.ޫmט伿ЙMl=往0ڀsvU襗"hv|?d#RW~?Pt8(0M5Hs܏n[sBw>]<͍>{Rio#~&lՔ8cʒ J jdi2p wp_dꟚ*F~( MByďj.ib|VXJt-3ܘ ޻u1@5lu. )=ՄNQ6*.k: 6~/֏1=(ȥfR V_SXZǟm9*z%L4_D TD6%[<@µ݂%(KWᏱF ъh2.ݗ RԈ]Yf4E4W3t+5]W/}]iMk t_ wOK '= u9C U]^oրSG% |1*MQkzZsG\kZ*Lה %._T 1vf 4 iBS;\)ZP+Ե ۜ#*8Xb'k%p~/9S=P:ҍޖQ<2M E詫h;bM0pWshҕ+&RCCw.\e ^􏄝rj,Ih>K4>h^lkXf|3(-Hw9KD6wҴi(U3љ+ZRZ<(PZ b5nFvO_4}z'diSG(!]Ĉ5X|wNZO3YUC>=7'_naLԏV>.}wiMLڱbRm*|KӊT#k ?5)HwT0c<(urVJmέRudy8\^-fP<~P9@ܦ`[rtW/O >D{"m:qV4. PeE n4(H J&M7y\F*,ȃhevNsV`kj3<ȭ eR=ە ܾk()-8Rrzf]bo!)l:%4h @!Ϡm? \vUqfjZ2TC}KHYAlsYh&>VҦPl ^ot,A*`(kg>Qm6iыH: T]}JH ~wo@nUv*zRhybzZ,2u39jzuDzE2}"U'G6jNlp%PgW A<rs|Iusc}UscvƓ) W LA-C:-/b 9O_9esI&]9 =53H4E U׋\,f Wִ Oi56; >=}rKXH+LjS҂MgW5CU4 r#P*2z+)L[GaOJ]Џ24(4\tqYgFN)J,V3AExYqs¨-2 KchPbt>QFYHXj8W]c2z$hwPTa:Z=3']jM(U|o6ƠJvQ;MGG* 2rꦩ,}غjԀjڦV4팪VOXK03("N3>~{:x_)ߩyWpfURcQm4Z]Y\a]j˔+w@MuJi X+ (PsIn@LF €vRqw7nYJ1b\Og:  Ͼi]:^l5c<,U(;ŕcfckdEW{ffݐ.N#f-j==o'5(}VۜfRR OrSq >yڗ!hǻ㽑'ԅ4QB166:ḛs.f, q@W},i|ʽ|r;P3Qٚ(Wtr&Zj7NKbJpxTwrbqn\]Hh:Q-DY-YB(x^7hGP^ҩ-Q-N]Amym/gJE[kV7@n狾Q?S%,-˗XZHiEԭNԵ03Cb{:_)ua[ievřZa]c /ۭ9<ɨ[jBJT:*;(ş;|KYgyVpZӪwm^J]sla&,~)I*t;*rzx*3m+G AL|cvZяK3\tHШчg҂yo[rXޱC'NS(]۟]= O0 FWs84?^,YUi26-:6@Ȣ^ܾS9&GԝLV@%"fjZ9hb+Fk@cAXea )(]᫏#5Csu#vUE&p+UeZ:ZJvƍjvr3mV6JaR Uݬ|n=F|UXʆ}6Ў}w}"5˕^*)(qeU-ͮI"tȭ5 >g*V.FD+JT}Az̺1r 2"RnMgR[jiDTQ`S MǞ%-` QV;R 5WntiB *۰͑m?!Iqg3:*f r[^d 6VE<\i hㄋՋV9kUjJ2av ]ǀRShTеXskZG`ȡa8pii"Ŝ)L[J.^.+m`:@&XJ"sm@E6g%Qҕ|Z@A40 W54SG巨~Ourװ|3dc'JRCԋ ϦS5{~Z)֝S_G2nŵTo]`n 1Vػn0ֈnerԼWwMWvEb!jt K-JCZPJy ;O|qm:, @MJ )nRa)P"*r:BYO 42Me݋e^2]y{P)-̐N}s<֗T.f  Ϧ)݁sǡQ5̻6 ½#W"ŷ<m䩚#tɭyoL.ԭ^{/S½cz^6^~wO϶TʴiIChTLZeԗҹm:ZlLJU-F@)I,] Z2@?6yYf\RzǜP*΋)F(=޶s^e i=BS*ь"HiC;3wb}WOZK43h-C 7I^P; i8'^3 JdFid L0br]c&џ]ӔU %rϯjQAH m)*JҮEbJS²p 4R.zx\1S%QZuJW%CL]IB%WϏt4ԥr*Il *:4 ߀r(%yFU)5oT咏 E(DșB%hʵ[Xș3>; CSvз ϴijj}sc~Xݵۻ|=yS:9١Űr(Vax)ӼJ003oj rx+2{-Ŏ-L\L=@uxs鹖 4iz-ɣ3(v'j-uѲ@E)}GME޹X`!jf7tXI]-tg>T]pH9!0FV .ZS6WnR,ZZ=KU6H&Any޵oq'쌫7煔D9HW:󓰀<[*xղIw$鷕~i(B3uHM.勺-G*V֢05>s| :49= V⎌70ny "RŸg7{DYhݥ|5ڟK+>ŦkjLřh;9zV9?*A?z;̗*n\ݏF37C5.P+Z϶ m/|ԢWj-C=B(n;|e3HZ^h>CO 6{N"ʺ5\[@)sZ(Wsi;hTٙI@/~sƒ~d硽!6h-ܪW,x.2n5j4-,jRyz3h%[&@_J{ m=3%M7n}@*W 3 MeR-;R[sMV9[Kcy֦T֮cjڱ)f)WeS3EcJ3jU"QXY/*hŸ\MsN%]yV"h۪QuqɃԮURlmEH R-Ϋ.LEu݋g gZPֆ..)Iyz<z1暇>w]Ц:۔5SZ(W[TSlwHV<7ާn,c[]i0Yf8h#5QfvhFxB/RuҭRZt)<-53_6xlOc\e [,z0%hh41+93DL\  )EwrTNME!UV--ԁnUy;Wp%D)M2RƉ\źp pD+4I@t Y!cTF*ҒO(N T6KW wW:%Jl)F*S2\Y9VtBR[S\ZʭlyIކG8q}cCF_宂T :/>?,]]٘5jŚh|~qrZidgU >fPh*L} KԺo/@Zrz}Hz~ʮ4@d| z{@5T PǬ)yJ聩_ \J)қS<?$=d xdΖ[mJ6vfiPv{i3(R"@0@ R`VؾK<>xtlS*Y@(TLNw,3y/@x 8FwZ4l 'OV~{6NYkJySa,#nx;U>xu}=汽 kJЋ 6긶鼹Amȹ̝w`@ds r5+7YU4˩h7~&ܯ&^l놝jaFf%ҠQAdfTR->g/<,-,k|WTX⾂k=~CZM'e/OYWxL|K`Lfh>CbܕB;0 gMR(>?{gv6Vrhhn\.5b h9)CZyl{v}ۘ{[qx枇4w7BR )(ӧOP,ieFԍ._>Z3  )(|96 XLۡ^V8 D*#4jҰ4=hӠuWes,Xd[swKMnM@IeZ˳4]B_G4vFNiB3h5&{%Q2]CxK=wӋU3keeMkUކu&p*RъJR%d5+6vkRm7Fy{Kcn9VQy.pnNrrsG\ɯ6Rk %]u<Ҋcs4Mhgv56Ym6",4e='us=|rZ.R5rRt%.Lcs*豵nP4Z*2锡[A+o%?9?>[zk#N hB.iRh|(EW3xh3)IZ~m/m*^^;HF6ME@+ MK ޖ;o>-|=\ޯ&DK<+T(\d5枠zG,qn L3`]?&fgz晃̓Uu b*u^Py_&NU𶡢!KJQv&~|Q^ԉV\ԡiXV;fƀGD_.Ř6\05WtknӒ3e"Mm.1m:9_3*;G3뛺o]'B'Sב eƽ*ߛ/]຾W /N-J3W`L i@)mk/q8g;RLeՁ=)RCYc-DŽJA3=tj/_a XuJ-,b:)jPpҒY-NRb,E*Y/MZIE6IL[07hm/=vf:U"goM{dԽ!̨9[=VUc{r௖KZzOȯ% Xfd]_i>ᴸ%sag6Ath,d BSr5FÙ]3ѮxS0ҌKA<'ʴjwLGnTk HM-HX*R-ԏu.R]3h ٚ E%4+For 圞m5Rg [Wo4+R.3'k1SbfA4hfM*m@' g'fН=vaugr=..Uj6|[yE]d4kr*S;shϳfiz) /[i8nm*d zh4]n} wʦQӹ*)W<^-(p76z(\JJ5"yqCcxg$YA)Nzaz99*kzоM @xE9oP BԖg6M4nu`"%rr/kHz :{N#)Tim**3^\~]ic;ʿNz@pܡr?Gt`5GN{A[p@J) j̟Rc$cao`%Ch8޶FQ5Js6jo/w,`̕wzmg33[}.e֝ZE5xhڡe=/R4tJl<_\բ(rQ#)c9҆´hʰCF]z{\MeцE".X .KRvpuKED Y{)Ǟ\G:4ȳ<u[{7;Áuj.Ue<T6݈&u\GA|o ?wz1ќԬ\n|꽇玪,3w~[sN3붜Pa-=D.4XRź2`s{U~侯͡2 JP6:عQe;y ]]I"mESZ?ZܴThxjKGʞ]o /glzs)^"Sj7ϥŸahwzRXCm.Z^&PtFYFdžfBuE,0F%OU=T&hm^d?x7K(^-kLюS5u,RrG5׵=Kϻhi@@,pǀ+kO'm`nu;`:(.lXдM͌S ECzJ!J jQ%qLumQ[G[0Hm: <~}*]uJ\b5sW@@JZ-C j-6 ](E2 >w`JOUR2T0^' iu~Km[btkqrU{l1+PpK4YWg|x,"\P (]\J,"e%G^d^Etزcݑj0TQZTP4GKдb:]w>mj)M4iHfU2Jߔ睋G)\f9EIHċ/^j|"yw,Z@]2y 􉝑sHkm@S>ѲPLMXY΍u)-4CAUȡy"`SC%_9W KP2撚W{CV5"m4ݺ3wxyO 3`Tfm/|H?*Eb, Ac;,% PLo*^ {o2t?7(jEN0|/tםjRzt/.})\P(P1m!͌ Yowk蟔ڦwiE (5rϮU%R9c.Jg>q *@գgUO:2|4`Otn;`;}=i UNlp#%JM5Z>RQqw ɤeliF9yJ7vsHϝ|=ʾ1xzH=4(}rTB8}Ojgh%4e-}OO~m?],d#Dk WN{Hs'洲٦J:,mE6rá~sr?>G&\J\m JRSykUi~C߁At<#POLƵM,Zmam3*nv e: jf\ρ+7PjY.RuF_3k}c= W;՛7qECuv^ž;C'ZXklRz-ݞls]l\X xFϟ>/d4*WzwQm .nfHд;\- *(ZBhiK"t6kdl=i]7xR,*dm;$hUq@d,FS8=_cs˶|jt Rә܄XʹlY>jzffx)̵P>GZ=o( ʭ|2lMqFUֲ]kA9CsnAܭC)F<5ؽs_a|LiK0p/^d}3uwY|J떏-7e~-Cu ,R[y>ϕ7+v]xNKnoR) `OeOE](faLo; eqhb\lP?ZʢOIѹK@)6a_ZejEMz|Ǟe[y#:3nQjQF=*;!Y^O@I}[GKr_P/{9֋7CP>uW2}G2S{ I뇺N/玖f>iͲ%_ _*vryCiyuy왼9L̋2unERM;Hr;hf]QJldhQg(tnrT/L+m>,Lk#t` OOB-^f5Ԯ3bߦj5jP&JeP;6r|CB`%!9Rx32hPGfu 2әB~#\9*zRߛ3/o[$:n5RʝwA7/)⧀+u.-TIfQ;c?tbb{M)Oc8d^_^ȹfg= )3M<ԻqF!PKނ(K%LbYjSnA: hx̚[VZVimm`t9lnєٰ00r0+O䶋 me5ErZ7igO iWPw;WD*u{_/N;:(G\=Z.F "*enm;Ru[D Pz,3c*kEK?Rjǚ4wM`W̽Kn@ 5R$"w^ɋb7vy΃ϊ~gC߾_u JHwg=<եNhZR'^JOWJ FR4ʹy.񍹴 ?9ȩ&^urv뭮YW*\qitM۷޿mu/aF hfhͶcP\Q^P.gR݁L⇺PR~ar˔>Ao6wѪ[>{/C:K_xve~D's<<>HR2.\>oL2/`7Yyk5 G)Խ~M: ӽKŽ}Ϩ8Ƽ߯hR3F5R2mUzZFuzKV֊d5С~ _+xzZyٷ"5r󞢯),upS +os Fi|O9ܚwKNW. =lʛw]b瀙=Eʼx2NU~W;Ro;PΖ5T=*5#bew.dmԧ5^zP>˺3~h~=5SҮy8;<b^hێ<9^nԯtW.Ǡj ))\ր (UvQQݴ^xX Eh3 w 6zS*cg򂝞:J̵ W $Tkw+ YicAܲ'~Qky^7=PŔZwHSn@ekȱFcEX *cM]Mhi}hs؎ջmhwq51WK\ HS"НBSc_dFU Z)\,#ͻ;Wts<=-SQ뺆QZWIuV\翈궋iXQvXJ W VA wGpBԢ]`,G l.=b0 R)a eT-i&nmkd0wo噦`Y͠XRX@QU 3-E+ XPhjf7X~ҫ#cQ \4gםD{WȬܽ.jPH<=&4l{L~J=M4ۻ<UU Ig:FA(7],z;{ɛkR;ò8ORëZԌnŷ|[&7$_0wֆ~yNZ|knz3zk kXރM`B*+MdfZ: zli{卷sKcB*.ddiFϫ6eG\Z /RwUzn7?Sԍ_Kcmրwh5Ϳ?MֲPu^}0, sQrtJ5#K[y3}C/g p^GѪqWjWe[iȈu ;y(IjJ/WZp)!"֊Ҟԭ+}Uѓ0%bz٪,HBA@83nȌs9.gykPvy Vlu=䫔/9m0'҄JI\= ZJ\w8P7wSfDi\C)SE+K)e+&z9A mmjm J )ɽ_=^r+] sN%K, y| ѳ|=mCGNFy ;O%,jk\C }>NOx{|J@ܾ` v M*,VErzYX[P,s9ȼ(u-4>))Xi[|t#x5/F^7zmbV-cCaiJ>q3 6ۻ_ 5rlI|8]|_=w3e=<[K9SJf-rhwzU\0 oq57iJXxI[S+j2Ł=2`mTu^.2&F@M aŶK(gvQWM ӑԃ 2ZwZv=̣"ڒSJ)E2J澮pB'ZдSTҸQN翜3*|ӯgtjy/ _XezO3i@E_4=Ag_NI(uWTYzp\Vұ:ʠJ)1Rsy~T@b{߷?- e8}|W (jsBy9¶ԏr^?\eS8z<6)-c5' 6G.nW-}\XF^A C,W?]|M7.mNu*hnJg,n|e]˗3zdR9Ϡ$.fhҔW (@K/d9="|s}'Jweup\iprzErѲ]'M윍؛{$6CڙsKm <|/LmP/|\Wihex랭,"ԅ6AʵFW8XJM6.hmuS 3C+;JfP'+]Kls=z܊J jRC\@jQصx? {"3BTͤEkҊ(zo6]mJ%Eϕj>_YLM^ȋ̞O>{LᾍޠpG:6q-rmg:>&Sr:oϑ}n{}zi@9寉63]&fjZZ+ qXs-9d2srXvPPZ6 ž\#膿RkjO/ʋz[o}2C~ϵn4iJߚۻ;hH4h[psdxVUs>XP'1ŋ<7)MOSs{4 Lh7ΤW.U'm*Fu\Ԟ{j~oZ5Mz6ލ#:="( NϿBbu|2{Nۜdj?宫W/ݒS=[  EuqnLXل6z#qtoTG.4L ]uuGeFi֦1r8Ҙmmn}7FXbxgn u)T* '"{F^֤z)c\* {"LA72Y4JkjW>h UuKSsJh-R3j=Jh|*7-4R{Jz,e]JgR(}qKs1O&tlZ[bZXTnEi Z5jU Mzue&@^,16]K\K=W>X j2{P+l\1eW hܳJsF6QmE(ySwm"tԢ5=\j.e\J9;mQm<(.QUN)U&(M' zST*vi䔡ң5mm#3F?xD*Mh%^F\yY{NT )K#}eRϟֻ3qm\UFєԞQeQvEWo@SXށED5/[D cjg/bTrU->L}xHzN_|_^ٜ%5{nK>Wjt4dB4fǕ}7|gz0(-9w=HAO4;RICJac$ Hd}uwҘ@xgB}%րyJ]Uޫ\Ӵc)A7&tWKzJXŔ ϫՊҚ,>qy{ͣ53ߩf}tu0tZJ77*`f!:s}CTѻ#5_W|w)C>{2|eJ4*[E|k3)0$̗%ֱ=D R>3 1m}< ?2**=0AR5*(gk*6} V4bZv/K3P?*g9=gwAH|åC/}+s2U5Ҝy.V|z'SO:_@ovۓR8qf}Gp~@\Ws}洖;ῡ'a}{3I/xJgZ!@vzB]W[hUm99mf.emgbcJՓʥ.WӗIE3_rۏ*=Yw_~@@փCPl`.rQG7ޏ*=z?j}e_1r=|=*"z|Kw ن7r蟜=Qە;/VC٣ӵ_5{ =׷qCte&_Cb4DXXiJ{=/+ؿ>Gu*s?CSqe 33zT(5wA_zSuvKIF+nܴ^Qck[Dze'hl iW)Nd4QT`%+&i%"E ]NhE4nr#CO5(;E)Cґvj.PTii: Cyb:6:Y<˥A*̀:)KB'Wȹ C$ZQشP+P,-<Чŏ*1)&2غrj,/(0ѹU?]Ӵ5\'.p2}X|PΣ]ÚkW;@LKM@zEJUZ i1p)>zkS\ Et.]=[):TڹmZ8it(<n(fksr0sYe<9-=Mo.}*RHzD3("CÞAJ9R-m ZER%gK T#S5pWu[DEqWU)b0ٻé혿81kc=5/[tRcli27AL@ڑc=֥Salùc{O9JjZYʩlw~na=Xe}e4ǝ_)Ͼˣϟ}Wt}| EH ϞNUHsJ(M?/_eܾU:qm/)5=ɿ1gj3H*mnylȻxߔϞMF:ע@!EҮy_of^孓cMc-Ц@퐊2uc l)0Rƙ=Rl3꾊~Sۘ*J-l;YW,hk+7 (mW+ -\{sUpN xU>`[Co=P9W{/+z67J3R'%:)O yNQHM3+ $5`Rml^RPTZ Z>U "ƫ9_,Z"*}n:x<ShXJ rj.@,Υ^.,NWJ R *F,2(^5(/cI(;CneT "aLU~-Y6{ yH*/9tjFXqMr~N/RiJJWDz:jCN]sgXk5bT+>j5hWzs [3wcUp/3j\@U@_#sב>H'Wis74ܲ=7F@Ԩow^a(kHŬy۞Dw7i XZ֜[Nuk[3 G*m?`j*k;Mk.+bnwKLFzzТB}f cT٘ڮLz^m2VO)BvW+/LݥmPT:m.| 9Rt.9C7~h/mk/WAX[M_x 1>U>cZ79?5+7W-跈~l|Xz`mմns9i>9z8|V}a{<;n#*}wdo7OXe*tt@YrױxfUYc7-tܗ_۹K?5}M2| &꼟."0I퉖0GQ%z;F;5T>QgTmG JaZ+(*}rSQs=»hXngru}C/su^./w܏XYHbu=Je)C,eՏO5 ]zvz|pszT `-ld"5;V:oݶi\ BM狗-zo TKC@f s>yQ\ߥ",;ZNU(jԭ|J$T].#rQ[EJ 6q .nƲ \>vcשxrQZw|7w}_|^s-+4i㍏l ۛ7|h]/547> pR TP( GsZ th-Q{Ƃ1T\āk~}r+ZxYn?a\ٹc^K 2W;_.}2-! ]z[A{Ai҂`HG(~WKѹЩܩns3vGk^g]]}(y/d>[T=csqAbSC2g .6):y-P[}ёYAۜE;fۜ~CL̞(||zo|GYXk} 3]i\r kCgڭ#3 ~ʻmt^o؏{]/JC0k̐\!t3]vR{JZ"TP tev/6eђЕ 2Wҿ ^SOܼ[ve@m;%N*Le}U=aźo&jXӈ4U?[3i-\r}+%7⠤1}ƾqw^ &^yR٘F.|[s=ܨxamonɕJ=%*g* |^o')|_M-jp*1ߣ3Ү.}|EުjH9|`xܥE~}?]v<-gL wvhSԌ[Qh´i:Qe\)sY_$}; h\ mAVܛE72|Ux}f{&gQQeUkV&Jd!J!aP7{srcw'W+KRfzo܊B@~>:ATYDhz¾oM1|X`JLU)N=C'u_\xTػN-2S%s4>+-/SHU\B)6L™U}‹*{R.P6"UvsGtsρO|\R/tz \n1eѬxW Fg6D\dV)3g9r_ZsK)T8B̐ zɼj6}^G>hc~}v?>*Gܴnd2m]jVfyrw;A~s>y/RJxxSEpSQiյu 4ۯSw܃F7*~,NQδR %:+ ffA9~9dȹM|lۨE#zUP˵_i]l 7~'kqW}dZ,K`ZyMSZj+Um<6a}EGY5v,(c"Ww"cʧm~f啹 urT1nŶ7>KkN[_N |&{%X>3L{L1;5<țC4--POOOͩXKFӆt/lϝ~?cXƥ!>tVm@όlyGuR-z]--!Z>Ij06_'_9$1yYRS&XO9S^zo*sF644;;.Cދhl:VB{@ uV}ԁ9˩2ӂva+-{nWqw_|ړ\5zcyh>\%]̉ |?s\:p>ۦ쉼+h{wJW&RMۖK@}9CtyUozygI`~qFs'{qnKjzT[M GxϱU=fATW~r < o 8dZ(~і}Wx˫CϷ:BU_2-xqbKc8On฻Ǹ}ǚ)X lbvBOySM϶\ UO6Ӓr7giw9֚(ܣ@JiR)$iׅxSlJwžE= T9(ֿ܊5^/;\Y[V3ԝ.6!atGiFNVPt‮ri`@~בOC^^; զz:Уjd%(NP Ӫf?UjOfJedS]Ksr>_tЭ|뒂쨀#JLE(wUsfkZ \i2J5 5E}RG*+h=Hf-ȹݮbpŖxɮ޼~%)hUtϮHC;R3<ԣUtZŢ I듋dϡ4,61`]P6(\Ӡ暗unō@9) qut>f/@ _)!t_rS(vבzmXOyV׋^[]nڇ |e36o)x);|^yZ;V SOw/< ^j[ n*<3ŁmwzvidEfg ~P"}A?S=H;mgܾi>j_o:}bcqw)ѓλϵUy^f=H[a!W}W`|[c<5cT3kU3•Uh4EU dcz&-2qmFtae!z6p㏱KW~ySj5^A' )VJY¾)Grvk49CsO 4 (jdmϭ tqq}6r7c#mc1=BҴ[rŀ1;zǭrwARZ>+m_ B|{;1YbBݮx%߯EꧭIϽ#eIke=/)'vr0ZJt>--+l1hJʚ.x.^-Hah2UkCp=F\vXG_Nnϱ=& f֗Hkr_K<^⏵~a;%P\[Y_g""4H68_UI'>)̟Y{9K &|>~>< ^h9 |x(2-`zxlZjU]Ľ٢@q>6܃i_@)fjP0'ElZ3|Ρ8:C]K*qx떰”ZOgj4@PEjl2kO>Qyy.-/>\},YV@We94 "8 FBK6z"SVs-:+|Pᡯy̗[4}lFt JW&tQH1-|[-^ZhT+h3L'|fօ>3C&4U63{+f8R.ŸSYM;\]T~D şRlK[yWig'O=* ,C97|sx<[+l6PւԎL g u?g_eSؾxSťߝ=t-s0E$}H 6K+Z =wW5ۚijܩ:1F7F) cz'/'>=i_R~)alCEEUwH˹;uzm޹g~rYotE\4pԊ)RR\P:sŋ*Թx<R8H,Dbi硛ɻ>5ljKşwіbU\nni9R}_\?gIg:˯Rl`:לo]珰+Es_bqqbiŬ5ܿK =Wq+1TJf?%?8tqKV~&FJ\B|o}+O- )e@KL6T4]J .u).^oA.;u0_ t-\R7^p5WS;Ʈ>W/-"ꕢgfz5]jHdsơwv-z@} >KiEDiSP|Q{k@:*{4 i4̨P2$idW&]tV{3+G%FO8ASʮ^g6A*VnMTڱc'?(ًKH+2T0i9"Ɣ\AyCAUs&\>fXG~ @4JC#SJkm4  Ae)DKdֻkn^:l HCA(3˭4| C2me$y( X fZZWGb{Bx{* b"bǒ-Ȧ;Nj]hFŏn_"bјPh'8K+""ۜ}^_% nsmdv=gEwѪᙣ'`oW)ޑE,k/[i:RluUv_4lF0o,D Jiy~pxH[Cœ.)5I F?3eVҲ*JQ7bj5)^Cw}x+_}{oCmo|[sɰ./Um5&k0^ {dϾ};zہ eCMJ+u6@) M ]+cmL6<E.yXEXSiUrYC{x:_>KihTcv<*|FӠ b=5\ D3 = ֙Z)m x~VvF:t;DφϺn;z >j3LQXtuwaSl8Uў>Pa4_"-C'u]4^enT4| 9].h*PҀ4 0=W\ x쫻 F-}PZ%3/|o&ZjRR3'rn7jOT\+OILyA|.~w&3Oaʎg]ޯ>2 wϘϫAA^AOuv/Tz淋\y}`:b0n cy2 Cwf-rw>\JhJs&獶"Qw,|=%-|-^NRhw}zQH@/{&U=||ﯜSzmE+(61t@@(uVur@V3ѱ^qX7p l#u^/PޖAB= 튰+c`qgb^)wz(NŔa xnf< )H,397 .T=hiX443 c_>=WS]W<PXρ5(ҺюJ@\5d4z AGסIJ4-M05}.-k5P:Zλmض>R=)33h+ R>cdcEG R̴|9.) %KH.b| YPŭ(qs83᭺[psH,F5Hѫxsnu-Jj̵ WR^S4 `Y{4:}{74Cq}h1:ejWA:fe3Kt!bsKdoc,[>drS}udtQ=R@7cum%CA J.:%%(X"? \Y~[џXᎶ)|Ȧs.\jIg7G+/N|'ʣ>zeމga^O;:o}'_n-Cf}OT^SމzN2qj:Bv'jza@Nغ3VJs<# -'j_) ]yM߇?VtQ) h`JvR.Ra~}^`b硓lU aJ_kf*3|]-:Er Ue"X%HJoc >ŕE8EQ^K͎;ܾ#ƅj/-vR,RxUG>#5 >XfLi|K_<)Jvr@5˼ e@: 003^i(/UY-W"%1wN,4 w)m6<_GMDՎ+=K 4 z|Uކ_N8Jw+vRTq>,e+D=ɝ=NJ|ᨶhfVyan+b TKL:U CP;McX|I], .}A܍ڭcGNM*k}&N=59y}]ݓx-ۻK%*y4n-{;rn^>"/Ӡ}79_zb3~yp:^U\[^mK@7ҹkOB<`j(˛ zFp3zӲ<4/s/ wއz ;fgF杦\+J<&~p \fbJR47Xt3+B7V<\]{FޛNY̪:Kũh:3Ws6gKd@+C(SHWtSHT ݐl:@!,Mx>)bf%6fzg(w).I-.Zmʯ 5|2py:gRc{(%]Qm14(Y<RaKd;ƹXS>fSmI?z)SXʶ2'SzrjR( 38ރ?>Emd皔:"vXӴ rQ *t<)C3BP9|:T x/U77zv:Zg3_wiG`kYMVEK92s%6LGZ/SxxgLKB@:8XZPZg=QN Z,[E;*~s53MBY?x_Y"ϮO\NCCƐgG>(}q䯙VH?c`vݬiJb@3S(-|iF4۽p-ԦkR*WV7-ќb95D$nkqiwnDž3jƹ\i\TW쫛_?dA`/H{#sOk歹@@Zm^\ƌ$gmsOv{A|Q0} LW+6|6]JELUA1Wu j\+cLICwe IHΦt݋jZ 033r^#:di.xC׼-zcC/MS4ݤ\uZ=?-x_O>`Y H^wk>nkor]hVm_0d/cW2K9c|GHwY/vs\y|VSfn噹<AEZHesG(h9ob>\j!q iPT "R, ezfԮr7k'_Q`7hj=,Tf5Ǔs&R3Ww&,@A!W|YQ^I)%F|1@4\L!L@:iMW m}>ˆeZie{i_F-ו(q[*\]R(VTCA,TDJo3L۶!L!41g/Zt /!B^PQTݦ(OG r)"wfUcX j:g.*{Tje]4z 7Zߙ=,7CWKπM/%-Jh9[kjE߈EG #SKu{mb-bޑ xYAwʹ~};C]|Xd#}AWvXކLEʈ(pV.{'z ٽ:[PÈ8P>Ti0 hy޾_8lZk:2srŋܴEj/hOgxYߣU~c[p޿0ˇG]j==љ/9[ ;[R(nE^3KkV+3CVf`fXiU-/Ѯ{ԡ`k,`QgS;h@"UPG/P3W*TOXO>.[ic&b>(;2O]^?%; _(`]i>S99J@]r_Ck^2s}ǝa,\NdigHkқ؎W~FU@fST;) Jzxo_BazːχdN?{2Cx /HycroC:(Y_P6stIsɍ>'󜩀vۅOBr 7oxv4Gj7Zۚi̋hw;H Inz_}*FݚyejYfs}!ĝ}~C؛p1Y{xŝi"{zGAan|M<2ksNX gLeFL5 ܗn7|1V5bRWj(kb TYo\X CM4"ǐ5L4.sȳe'ZW\K vd4.WY}ai8q}KܭJQJnsU̞F{7iAB֭!5~{AI~7Ȯ?5_3һߏ.YA](- Hm _:&>N7L亾 ,ؼ[_5N<GQl|~]Ms_3/%R:>KKͻƫܱ,L\ֹkW@bJCJ̡Xw.SJL-z^{QZ(W0`bOܲ[o>VЦ2Y=#Z)s3ʺ>sWR^[4nK1lm˕^π=|]@!<:nT1Х u(TMykFV_ Y4H 5kؠ~x֋DҲ \ l{S"j㚩|A^.fUr4561g3 E(±lP[TޖyDVڗ"ψU.V#u"ŋ0 2yҎ~_hܳAfGKӠ2Qrto9 ⍷:ӪQq52`()+NDWF}X uL6 EivQFFQS@\mLy(ֺ|+E]u2zm_A]].NU_/S3Zʻ=]ź۾]3r/y9M/(Nd8۳9VȠ|c:CzwXyPPW50yWŶ7Zяc>x(n讪]4@̞4]_ ؟43Z03_?PtG(ڎUlU{Vdqu:[)t?3viWEZשi7$3pqR%ӰqֳlrMw4§\ugʱ&r`&Zai5d+")УtiPs*U!On|vi~[{#n*7,tk58}uvF_2JRPTTfPlʚdP_ޚ<60idM8c=A<ΩM=Q<\Nm)m5zh.7\*R2q+P7雽IںE,-,]{+}+)O\j\p"ŭEm@ϧ˴;R`mG({FLΡVN>( *[n]5mZy}A;3c+9r[Ϙ=sWeqOfyOԴW«*a5_n/ 𝷭9k)e{>z>/@S|9.鏖:2\)hN#hܦ# (jh]b0N S5GIE cp1ƹtl[E%+?_}.ֲ}'u-#y)f4 kZ Tmrgڹ5/<}7|,rP>jө c#RȦ\q B#RtK{J)hӫ ]GB\4bGų \>knjKn?Y^ڡ= V:kLYJma0.h| -sPJFVѣU`z4暹uxv|WIp2(_3)SEϋߚ2x YUzVgs-aPy*{[ŀxXch'4,~6U2X(6ϖg:\ÕLz.ၙW.4Ԛ^zk)ȋ)#W[BR0 %ނC3hʊ˱9%"}sQ{n5<_UIO3ݦH'fmh[HWbb|[m׶7ṃ)PP_=)`_L@h:k']Vz~s6 jVg -\poYX`!Fyg-5^nk+]gCCWn翢IW<\M;Üs~sCʹ.ђ{UrsC[ʤ/@@ǀYڹ%\ʵ4Fd²B:2=vJv *E4++)@J5tXjKOfAGO9۫&fȮ5kUYts-%6Cꏜ/#3A+w>97ȿ3TZz,ڮAw5"sryu R{93M-u_'=m Qz'+5c+N36lBijGWRum4V]t[+/)eņtFKwU\|6FMξSBwGOl;!zzOKVz k/c:ǴlzEW>ehh.f7AGwa~P2|U+^{<_"7ڮfOKWj佴2*®;hPJNԋmiVGIve{2rkmV'E ~׾t[2=Omyytd rf/)H?/5m'(Ez1#рdRz3F{j-z=ǝ#,e XkCR|v8(0/)] -ӳ|Srʙ5~ KEpXtrfkɟ(P\ (݋MWS詜3dMtE&lEyv3nPP"”_~61m JO'U,_m,OTJfggj}yzRScu7 9AkTH#g0=7X |_Ko*xju<鼪ִӫ2T'oR:}=C[:3Yf~>-/ w>/@cvCm]̮<CO6+YN y`eH=Kky-N?=UO~ {=\\ wZ*!U4Zgz柭cXkoA2K3>źourn:3:6,PʯOJgғYDڶ5R;-h[Gi|,E4R仛Jg 厯3J0M {͂.gy>SܹO^UG'sM-cu;9[Hk7فmnAkcۙLce^2R5 "CP"ͯyOhuG.-8)G3ԅ^$o5+dYVf(X  ֥M<\GNUiԘ[n.gh[+rSP6ybѮއ~J!mvG*Zy :'ꆗ~w%D5'?zFog {+<;-|'rHmLU<k9k/NP!im4>:.}sO#>n作lhƤ~,4,^Qb ,r2]}wŴKE6Q7\iZ0"dN OdH_%cwۖ})\3\zmLZܭv<< R-€z۾uSgϲk[)y돟}s=?_; 鴬)Z2[F[cy}=Qi_$ސ7mKG}cC,B322w6Uq 6i6;{"3omc}^qj"g%yKء]bXܝ |Ň@*zQSZ "<(T{MxGr}6M!P8>.wb}k+@ܖ:}-o=OR:,ZEc@RqVt[KC@,iv6PӤk0T1XG5ECv|:tCn,T'@PtV*R/pǖO2l4=->s }Ѡt-yRm4U, Rh+G<[hlE}7#xI3M" JdM:Qv ]"Mm |5`CU]S>NstwnPnYTb<[CIj@r<ԭ)W'3#-r):F Kԫ0,_*Ţ>e)fZu7yIƺisKLy-\^#]֙/KsO7.cv/iN(ʁ>| CgkP>S_9@G)=R aRjSlwEaYѾ9vM\kz\4g޷}[4}xZ֡z_@t]q} qR1AJ Ǟ YE)C΂?qz67~(\-1<9>[Xڮr֞^sOSrLJz[J`]#Z%揢{ <a9Ѣ̵\ NJ+_.΂u/R֠{KW"|azvReE)HpHu\wxٴיH7 ]ȋZ/CFf6V}RܗٷAE;, Jy1ǝ5̾4'@ lkgC;cL))||Mh9_r#rۈ#u={^PGEL6TAϔ=aaݿW7-C,ep.G _UsܪjH b=,j+t_/Ԣϋ.5]'Yȵ73OQ\grV6@ jӠ?Vگtߗ7(}?p+yy82 !ݭ^7e)WqdϷzm4UeMT\YS5}-Ҋ=cӳIAc)X Lb)Wtgh9c_ZܵwjzTp-_A-ymzv{9)HmyAh-?!#>vk ?]|ky4)]nym |ʕo>SʛmM^P{Z(sL0 JL WPޖ؋ZSZiErMk\ݱ{A0ҭC ]-.\s$9FsT,FCu( ]>8 vs~ېPɠ>_PT56PԆPFj.y46)4JJҚ3G<4]\,k{S1l/ x J:T:j,Z9]TФgi5=Wm˩W-haEʶRxuEk}n.V]z *RNhmfΥB5T(T Ş3@:g9 r27fOϳψYYO1ಒGEE]9k)6NR~;&XG6n) Qm/F/OCnxO]GgK͖vH3£s^w/}M_4Py|-+~آZEڞ̗Bsdl//_}s/WOw0/}Jo3%E4VttEmR(F\)V);ЧӔim'J@̕4*`Wdo 29z6}A{k35qkk3vM0) .)rdVm"5\ǫ̡[}{9"/X ]T- h]eMC`sΑl[Wε( --d+l=*:Z=vZԦiwEFY<_~c u8svT4s.P"އh=B žg>iU+s'JԠd4Wj8ۀq砋lʇ3 |Dz[}_.~7xMM*/)\_ox\)7_Cy ځӌ D~d}sƍNSG<>e_^O}8Z󾣮q7L\JMAϾϡlb=Հ%E&be3KඌD[:5k 'srRYU«W03+5Pv4eT^e)+AHTzm5mn/ U(>7SxQʖH(zibo|>wKK( FV.sw5zCe/\0 q)EWԯڭEܓ7̀wJ:q`aIBncavFWZOC-JZ3I_n*š =CbaRu-9fdYhP7hm,[چMl?l~ovMzvQ=Z2M"L,buxLȰ 81sTV]}}ʸO&E?53`TΧ)͉s% +Hg,Siٚl)Wӫ(x閩Z[T H^ɬ~]j8ӍM>ifDiM~O2/OG E/#d%4m@YE[_w;QC*Ra`hjFPw _!Z}i\j h48AW3Mkgdm<3@,ƴ*:]}H宖ѭX6|yb')GIܪ r ϲxh l1)^{x;=3ErAL܂<@rV,:pkPrf.k: y~g7{E{M4yI@t]rn\g-\ jrzϝ3ow5n7)hG_A`D'玌ٶ4RNSEqّZTTjkh*4| 5՞6&] p~=3<*is")wua/+}vﯯ.:Os#R^ILd?GvQE);MQF4wZ,NP PKh点/xyrKrtOKtL3#; փjhܔ<DݶǗgD@+uW?4 3 h(EOEL)jFtޖG9Az&/8.4)%QԳ;>W>:5Nʥc)sKڦkW@RT@'AKl1 )2[[]3m(ES tۮfr5Zv}Ur+Y-"b݇m5+培)=c>cYS-cϫ̪7.KO c,\WVPѕdyosN%s &1ul 5O^~sh]ʹh9Q뱠j:+wB_gB./&•P 2ҺnW>T odd8fMmc(sYVCJ e)7*!.}Lq|:zquW)=G]١]]V8AMjP Z<L(K}_k4ZWKz I m^s{?\(\6`Eizm_ntdig]4VM G3=\{4-hqqy tf`P 洊[f\, L_J(1C-uVh*f_*{6}o| yR/yM61,yc'=fj)jdXt@Wh;$P[cZ/AlBszu~T)Hj].Vz=i :SGeTM/9m<ԫOf'h_ݢ6}u/9Uŋ`GΞiQ矢m5)WItjeNyWF} rI 2\9Lll}ќ4b棴dL[(Z f nb[`Ş^Lәt/F_|'5S! WM6g\7_>/ބ\.<5m{zvŶ|"U47|39އe/ݮF^I}Rќ"ʓ* I m(Cg6uw`&y))]="ӷPS\a3o8k3~ZTI_p"/ѰX|3C7¢ Wo&*~9C %= Bgդ(rֵ} ѹ>Mз@E Q)Qm-P`]AhO+9芭z-|iyE Bݾ`} =טuK bJ R[E~ǟjrH"x}| \'N[;\ 6&߸V8;v;@f*ry,mE* W(BZ66Ul~ Nx{^/|SԀ(Y#f^ */ߜUHZW%,)1?av^Əαg#%'4>_5qyLl\ ;cu]ic;ߘ+q}oβ%G4>ҕ-7qcw^'{4 7"92_v>_r{3M%2NŲ!Ҋ.iMe \ܗKV2Qn\6gJxmv6Qho#bh7, BXҔ*K4H!O+ZQںUmJ:EEz P'̑|{~I/M)3_r _?W"y6Sg+4tє1^[;M5% :]"PG&,-/o2m͡zyE3cu[@)ʵ}16zA%Yg̿[W_[ fџl4~~r7rgUNGmZ2JuﯱE626o"O 祫ȷ!oҕ|L ގ)rX[@Jd:N~}_m/+vI8hTeT+KF2@ie7 Yz*5,1yfNUkAr` b5pW6w{!?A1SW|>'GY%zg:o3w>)7Z|љrv8jPo=?K4[pl\vN#FCny/x>?^cosK2ݵ֚BdWZ@*T, p} Fm=,0dۂe:x7©ڹ)2Қ^K.^tK9GҐO1}}EcЬcLr'@U1gC)ԲZ!!wocךמqaSB>kr_94}RuvCiZr)lgeXX4Yeɡh>x:ԊWp!ZN#]q[N;hK>w n1ﯗEqm `z\) ( RX֭StnQ"5g8.a >\m Ba?ZOr ˴7aHLS.N \=E6N*(Y P|rB󢁓JulK^D4۱s UX@Ն;R)RJ_@&BJuqdR79T<_*WP/9m~m_d-Jс 2]ZI\5-oSh:6(KhwscԄ]zO:ՍVQKR۟ut dnjw;tfZ_GqJѤR4u: 'q}/jYC嶸UʸV=D2NJZ{Ţ\;"3CZ8>w^>{Eʼ]PM8EEe8`- x-Ue;IP\ȶEL϶s>N0*' {U<0>>^0 ,&ۏ k\ξWIZ^ U*K|[hwzKWj?{Qwxc4JE5{1֦,A(b.\Go WT=iؿ%'|@~\C-KU[V>Wf.yg')Eߞ)JEaW.NתWi)pk[&}ryfiPUH2e#ᏁIwܗdh0 5BUzEޯKL\s֖gKkE53=JxzE7K>qvFJ,&U䗭]zou'+uǦ:KsvFSaGKsޖ(hA,C|7ź8W7{Kzn~N~m x'r۹3 ^Wj9 \wEC=-+Us@rZ"݆4jyCm<|tN g➾PMePL))OS9?ŁWC*0cnVρ(W=jftzd#Eg*#ޣSs_7!.R~1uh}/*(c%rfR#Z*:(Fx70+vi3R=j[E RgZic=W#hϋZ%(bۮ0(}P⍒;B}qnHSо7?6ϻC$_=zFS>cR3NpD*v&W^H9"ϲnŵ{% nCin_N*N[`";7{#獼nF{ VC/v'KE6\]fDNxS<gQ5 ML[IE:H|*Ip\R4_ dea_hi 4GL/1 dʼ!j"E]{ vtsǵ%yVv!0U{J N.y~wGm+TK[rm#ilXەqgܿ1*Uw_ݹMs@ 7K.=/&s ^>gz{ U͹3 \S׋P@)};;鷥)]_ /Yfr_Aky/aRTݛݝ]3%ekRSVX'CYރ .BrxǺ\ h*:7b6]s2{* *YE 2k~w 9 G-z?zmz)Kmgff*v)c@2˰3& B <Ս MYŔ, 0F{/zP|1mBR%Jf sU^U3 ܲG+ rs3:_^dEyhV}rR ڑr')e+ٗ.vQFHSڽEJPw:#XƘ] NvEP\qt+JPkr:5bOv~RxSP/wEAۮS3~[67mS¡B.{)rhz)TQ:("$U+a֚!M4Z?Z(~Uʘ-]+瞀mǴ|ѸКC6CG3{?]}>M=}:6Όcfr6)2VS4wFi}7ql~/7WӵrSaWRMKCj2]_3̠YNe Ԣմ\MzvuҢEtfPgׂCޖeD͡.nr3ܾڇϹF^ kF^mJ=ʛcY o(?sGF%]šDF>=g}fE왦24۸+FP(ITkҕδYOepw(_D~\X=3wz9G~>nϵR.|Jyݞ܀w:F}|:(,kTJTY7yig7rg6 (oʺxnh떦꧒缸*l{Y-RwFEJ' ԮZg=C( ZGs>}tnNNվLܳv啅>4 JMem xȥQBz\2A2yYrO*NW_rs$_[^-̐۞}6/ n-d>G5UUAuh~7'ZY*=R0<[jRЕfyw/xW:Og7p^lXxFOK_8Su.iVWEA zhmC:Rz\L?\ _@.Wєf-%m.w9x ٧F0A-~Ůy?[5=Og,Km%/Zz3+gU)c=\8_>^qm}?<k=~C}vOj,@ VKFihO .-qtf_wɅ+dEſR[S9Pa+3ETbZ\2&M)i z3=XZ𲅲=EI>sX]h4Lr  f#Q4xcMHhH*Z KM{\!mCXuLLUmfEpVڼMTJMjL{xfP4m}[4 Íem%Mp..Q県*hutjl)bJ-[,y.,b]rҿbeKmk^\y,Rgv~=U7o'֧WmUI$s #JEnm6o}[_*Ie+Eϴ $5 PRţ”ZQhFOB4H'ILe@tj(Ak =YՍi ZK&ܕdžS AjXh13%&Vب5z>t?}]q Orq׼_Y%THi@SZŭ Z7m)H))M>hyPelj&(1kCP|d˘ 66SMqa?+nCN) \W$p|iߙT11YϵL.>xC7|S<>S9mJ ()K8.n~Fok&~C3ik9LZ%(p6E*UϽ5_5XMOVyJlO-/6v=mz_)lO(9==2 <ʯ۝dC>yJ}#wl>Bۜ4=V`x˵V2,p烫Ŵ{:rѠ|Ǫ+9k)9sũJM@^[_QjӋj49OͶ<ӳ(᚞CJK_>ϙ5@@ſh{%=+;JX|ϵT|md[T:1p67mxRآ\"QuJk+](4 .Z e;m xw?`JYE}o(UrLN3q)P9/2/hk<]@[{ {{,"ȾŹb_<, i7ϲ[w*J=y玛ٞ>GP7L|͇07ǝN##%hžjRg=ʽ@𶅝*!ftsxWѠxCi [iś i'B+ZPQng} NUsaru:DzWp*v Gdq<<u) 6eJ[6w])̞[ɶ, 3QZJO3tjAjQ *xmFi5h*tY( ĄWvYue\V>󟴼۪:?*޳ʕc\5,;(67 ^ v?}|gmHnZ*NLTG’C3BVxE'+,в|G S( Ys2ʝAǽg}Cx}w[KZvS7E(M^M0)(Abg6B#bS]OdO^ll^껾GozrMѡ>\eztցjR,ulsuuyAp O3r 9ukE]i8vmEҺC̺ӥ2Zy4 wҭR"yZ1+;XSS Ϸ,Y3Q8Mk^F,]Iy㠳f-CU)qog}+WA> UgTIwd4йz<(mE.NgsL)VA6 -ڽӒc5qgU7Aʯas>~<]W_O#kN9H < \ϳ֊}]E{U%NS9UT3V{3Hik*|2?CTvAT~smr AԲwe2 .6i2E@fa>[o5%U=b[ݚo˞UR􂧪^T4Ԡ/U޴Y}ܪzbhwԞe~:x? wۏƾ~95uθ2ݑ2.{/ W>ʍz\lv+xuWPW)4_ Hh!jFm >Rs2V4J\XTZi4c뻵L_G r'{B쐽_U+(T_=ʩ[EjΡSO.#p=?OXid.\Ϟ3Z{/ުC*>5r3<=9@sN5UiJ]p-j zr6}4=9VFAwv sAn}6;_ NS/!  G\h9>RR=`f~s=E`dA=ϹZfYT^Wp5/O,U SϽ5Y Uod'z.H@_2ց@r.}i5bK\AK 7z~T'~gd9CJ͌Z;CqJ>UCëN@tNZ-isQ ^Ķ0_h_OXnre"=̎~-CRԶtB16 V.h1:qsNs>T'S=\WHNXx3B?^||MHVnW#hůw/9?7 7nskl69\t0aH77<+5 }Z߉8K2n`:+vx*.d 47Y,ONȝJR&SjgHܺӊ:/0}#=Y3y =J4\[?hV*2˹,@k:#wZ8|^!#˅4)eqHi\k/5<, \dP Nn9ϥgFWlJ>fzknN,4Ԣ\|=JF8t>Xak\^qXَ3mz~)̖K>A۹N }LR />}˯KsY-mY;grs2S{|I9޹Tύ=2W,;Õz}R\Ѫ]%_l{n_cbhT -U=AECg:5reN #>düݯ;_Aa5YLP]5x)ˆ9֪Z}mqklZ[a{KrrK\,RC*K7on}0Copv6D):1zҮ~AZ-Y]irO^R SsN!RU-3үžw^]Fzֱi P% *$9/U=,6易lp mHlqrzEu> 6[sI'󛮯97)<ਹRi\'fyqm|"9~4R}R394"<ͥGvk:Xۺ[ g\=R7^qzvmsO_p{aP}Ki3W*;CP%wo"S#L}sF"%<6ԯ(}JS ټ'.VV}\w_M:עuJ.љ/ORX| t=7ᜫ.>R,¾\6rHe)=2P\`N\4ѲT:,D wѱ; }QĶ#XVA: y)U K畾ɒr_g"N N_4oAػ!S?*|F"zLmC*~iԸ˸r 6.e^ʁMUHZFYN( -{DK-my}zך|Mr ,;j?q֍u[5I2 (NHbh LZ4J2(ñx*.*vOUZF*M暂=ϕ|Z$vO^^ Ϭ\] =)VytVR>R#Ζ_hn2t7={.[0iH|ѐcnΊc[jFDJ͢I<^ʵrC.t)KJEJ@SbV{+wROPF+MyPث y4}s8S<մewUuZZ ib;T;aH[lR.,оmmFYR34`r o2z?X= P</3CJ,unucu{ɕ[o7/au\nّGsA-)QC4cKP}rϳ.UrϴkAFrZWZ*\]W>ɟL9.d苠 OܯP]}f6_Acvދo2uibh4VtѝY(b,뮸3Wfl8qCS"4\[UcAn麜n-$ʁjmjgǁKc~buzS*Ը^_Mb/tbBt$iRB w1.ʗ["ЛnŧK4gK*PBTh@%+94a+3rԬm4a:UJyb/MJPg_AjAR: y қT|IU -- 'uC7w|S7+ް6ߕ}%jujn\-ݢ. l9p0&h<ј5GXk`k綂VOkbU9l9[vls>P7fSKsuג*qR=\ZDa]USy콀5-#lͅ]ßU_ǐ9A]um lfZ rP+rkGwrcE"L45HvWv1ќɍt/=e_/Ų/7jŸ +sK@oWCP]V=uu 9|m[;!H ]Fvc Tӷ3 .i:/(i0A c. Cc[i|7A*MFYґs6^R.fгHZ Ǖ:|YA=r䇊1*,\=rO.]/AŮK-S 3W '=in=R󾢛CCiuV'ԭߕ{9CԵptrZNxϵ Uw՞fMMV3JFCy߭yX>B37:LdYjC)=\]ƯՌYHa.̴˭\vpU㼠7)D|vRiqb=-JkCF@N76w>{$(t1zlU{-/{nVdѓTV|Wϩ>ΛesSyYKSkt܆S+N͹eWutZNpyKT =jwWOgAC=r=t- .eWu2F".>z5cST:=%Z+&J(4g4t\HhCh7 }GC'Eumj,(sB0QbORN>s;}|Xh_Զ;(D^]UKs&ܛX\3sE~j4[C2mj u<[Uim)=mTٚ M)w?9ħEU rj-~z{z?Bb*V"p*Fz(ӧRKmsK6uq}WuEѨgmWKUdv9kd|By[MְM{=%rv{{ 5ng0|kA)様^hŲތ[ko׵l; mfnng<_ o3nU}Gsrmm6֚L_ =oA^w&~#_>wj<U}ᒖs ]ͱ{}֑2@f@(NEumܡ*R2"O^R[GEd3XMM_?-< ̵jm:y8>A\WzěY3ϭ5Xjz3U!=h";$]M-7g;v}[H\тziVm&qU3̝#nrЦy>3< WW&?D>ѕϸgisƢ5,ʺ9EU@aмbi6芴PlUu 4ú>Y5s#1l N PSDYE;(У=dcT \\-ܫssE cwth=QJ1+Goz^]h1}r3S'wr\HW]lNm87z}#r M^R~mX=w%S};nj{_^d+zs҂&`q/C9s+9jS?^qTkm"\k.d T|Ápw?1 STPE`r)t+t0#wܿx_Ijf-Wfǜ ?H5>?2bjm<)hit5KhmfUtUE,NZZ.T ʇ)-S-CYsﭼsvcʃ\ӜqJnuw(cF.()R+-youtAoMvPQX{9e7<Z * jRRb:i{&7\tO9n{dl,p2vyi!Z\@dW*ϯpx=U;c_F{A%FyC>-kK?;- ;늁JTmhJB c*k#T'U}N ՎE(T3!-nTXb&̚85 EKFɴs0.;ntYZr!]&M?E=ksu,εΗ 2*@hg\ 6+|ʴ15 j,].\NƅK7rUƄ{@BW*8򷽾 7oo . \*~Ͼ4MLRш4 \ݴ1S9z*!CM,}!~ko|؎#l_X֐4=ic4i}|[pu/dtKdW4ju< tW:z5%+_FEւO=+zlqG(z1ޓtFyNfO_<أ=}}b/xߺpbj/Cܽ}_ NJ;)v<K׆u@m-[nYQ)xa3Ե*26[ l1H́u;rxU433J}haR ҇ʵL MEqSEfZ=zǁts`CL>N^7+cTXeuVnxgz痢x=PܿA|녥r9qjPOg亭H[oc|yP\cj[ %T]PL\Eʶmϲ̷T44eTfZo&)R ] 5Ou00ޡer 猫3y[sKqn 3 )Hlt"ǣڮX-2ЖJu]cV(!5:?|jԏZE2mrѭHx0yK}Q/xK;bwCsXsngX)MBHz>#2@oӍWN.W)iZkt#,fCQШb\Ԩ^'NSIK.@򒔋?ql<*eذ~b6\R\/li/ Bᚆ|џ8wC֊G7j2|YeԈ5IG'jnUQkm/Z>n{MZ33Mw-i͹N#4,m,g܀?ѓ9U; c {ĥ {%q]i"Zfp&/~?dj[m%*RC+;H2Wsilihխ=3\ރ>|Ms*/px[C|Ԭpc*QB旽%67#**П4NZ=C/{Z>彔PΈ6U_A16GA枇V@~rU]sW'h@ޯb@x (Wkix:Kr^kkO447isfqŋYѹPJ;D 2qhc*>uFmǻjݒiwzkL|+~H'Pwaw|4*m ߊW_m01mqϷ£e( *(UmN]K <^.ULtjpr=CѪͣsHY;n}n|Šrz8S2DPe/Aw/gΨTx]2;<2CO+WZ,hDkDcU{ ya;tys5rbѮx{W/~h*/}{]SOjS.)E69υ}NŽSmVGφ+nnGX[ؿMpJF@X-b9i֫x =iP3璀r-ط`4D0MV& U<9ԷMB z;ʽikfȼSjdՏmv-)59 UxHJ@ӮE4P T4t Usv0 TFYOI7P!QUs Rim0-NsEmBBU~{ W0z/Vܖ}բCu\[>m4l|љc z/F;&rԍ/ 7K 2-ޛ;ȫZ/ ZMuWoD+^x>~hl[k>{9V9GP]jLŊ&&Z)pJ*t)sIhxHG|n8wU|겍~J(ģ@L8ޗqޙBmB66PEy*wp*)  8o^<^nIg >-q>u#PEZ -br0Z'\FQjԮݪg7,p->%>Hv$[m"5ii9W_ eff RcN!G[Ԓhm!z ewi:Cϻ'WO'$ujPؿts53|+=l3m,q.ŴXX][j-HZ bW{l ezFK=љ~v]\q,Og"h/aj #zј_ 3Mm/C~]44smiWd_qvG35"Je$N}ǽ瞄u=KԦ|))5ܥ*MRփГnaLeF/ۡ\ƅ+*eR}'-ރ]ip/l,x~9SPlOivzop6zWiOf,݋:\֦] Ե 2S74y@Sy.U; Ґy~2w|K]ʡX1|6s8nIzdjV;80բS60PQ/WPS)7=(_w*9U\-PŻmջDagh@ʴjnԩmeW?>z1RV2̽FzLhʭFE54z @•ҹwe:G7< ޾W^-XazJMy_f)EvCLVضU9\JWŋ:!Q€?PZK2;JSz}9󟀀|a~3{ڽܩt&<[J[5zf%3 RR_r.^R?;zf.grRJW>F֗C毬1-=I,H}u9|wGسKa~嶰t\*,=՞(z^:Gv.cӍg-9ʖ܇T։b AZjoYOq)ϻǝ@@@VMT,^ɛFڈOu S"+(YIB*fl@>Ah1SrAz=KkyD%0o_KwX=6r3xlׄԼoJ&H0 ]AbASǦ Rzn5:)Y[)!z^oAMqLuMJ{i^%ꞇ]h0zܖPl6.̐9[Hr-]Cw4`ޑ=٠zJ:+Zx/  Kg%q;}(&ZZh-;K(\6՟o hh5uhnm*g90 (aH.RQ= JƃX[N |^KާbʎnUw|oFҘ}P=Se]PlC)h[j3N?4[yBэW,y̯9(=쟖ྣPٟe *>.o\Z!U:S۞#բmϩӥid|*- zz1eELӡۏUțm:2&NxSU =Regز218=K}MU宇 {=zߩ9X^?:43k;eG[y ^C\ykx E:s>im xW%wSܱm&gK@I32+H;S=^.ǜ"= IYH.-uysG04mm>y/jUrRhv8_PW-Vh̋)#޼i=UE{c.4lQ޶<`R.͙Ŵ3s=0"lw'?TeX3jT/>mC&ZxZ?a_֎7[<ZvI>,̳@Lf ` F^ڀm)B3\v'힚TZ3\ۚϵ\Ŕ4Tqb?dϴj7Ұ}h;|JZu&x'osy?ej2rJ}:0 @k։BҮ5=W"皽bƓ]9V-8ű ke5{/ٺzd^Rl;>> _P9P_-%#?7d.敶yOibOhqU RP*.OEý;Og7Ŵjgz]mJTSѸSZ 'Sn!J=慷h{RdŞé?gGJ]kA-|i>}f3bj=vuo6}V(o\[k{5m55^z9V;Z+c]j(RVP6SN 2zϯSH?@v.d\]vut3C⎹ w6-lj+i ;\ɫ皾3B))'a6,JDF\Uޞ>3tf4"N IKPǫ>JzV_}}wϠnLG ~d`@tgfԻJ'[xR PeZ{_ƖA=ij(n57A)cuIGKF0-h.r Je8`$w&R*h#=5RyJ#QjDžrG(dHn~W 5^Ыh&Ra Kz\ܻ U)4ՙevNWR=]xFrKmFܣ3|%&@eCW5Ni-pfsC @HsBkϼn}Gɏz/+mشϒ'f2z ,_F*rO^.R Z_NavTw4!GV ],myICϊuB ѳjfƢ69Jm/Hֿ!=Ϯ} ndڶ淠E}=\j<⊵{Yj;+D @̧~|w!W󢺶S-K B{@ cX*3|n9̔y̥ %r ~aWbfrZ :(bSzFPUڴEK6;hzUQ4ޑ=cYP J3эY!<+Zs29fO W>֑Wu+Zcw}w<[OA+/WMCXf&a} ۻJ9^U I8Sd~M7&PoFWѩ6Zġ@W,6u U\ \ѨeB,q|Ewue5 0?*9 gt䇡A>wp[qm޼𮧖JtE:OCnT W/~-R|_xIW4p*8aɆAѫ$pM1'*:i\Tw.r.7ԩ|}[I'.&9:il·3eV<ܓ>CiyBrfn-Ԋ? 㞃^||p-`O|\sWr4dLԳ5s4iLгӻs9 ]lp:rƚl8ꋵ(Vʆ-gwIܶnr/鞯|ٙC^;4-Fimň74L*zh"taP352fkJ]ř)3f3j{R jJB,CEЎrRvRzEMAEg^s>o=WCl9BpUCV|4upZQ|_d!hv.qEhfH2 y~7T3ShxGULB)ԟήUn}{:PCřnm*9YsZ#2t(ZVS} BW&k3ґhf*\:{u/),y{y7~w)37p/K.Z #_4-5f]Qs7 ZܳnS-J5{oO?6U{_5Sfh.5ǣ#O3?*uhTT6C:<[Ӏ oSmMNPlmvyϪtS%Π[~SU.j=R,f||tdcϮ h=qW?gxa@dkY'4ے1wm *̱ܹi!a|^xl[i/c^75GҮ;'2[Or=R)ԵO>gj&iMBZ]OW).?j]P1޷U+l]4yjfPuFo"4̤ ch\_hxfvT rJb=HR[>ܳ¹.m=^姣\iHVdbaZuF5-^#mj3Uz+]>k7\\\ wzo Puhn+V;@lp3'<:2z'R8(ޑӱu懚xXt^AH+=8~om& `o!iŞfе\1W̪k hC}o1w;4f#{6Un}Amk~>\;rR `B2/y=ϵ D*]rg7z/~ myK$3!y|-S^騼c_)|Jφk06:ώ 0tDH$45h=O+4b`'+TYB\3%*sޫm6q[JC\esSog:5("R)Rq hsFDjV"ӠT-h!M_>ѻL_S%UnZ2Eʸ4;oM9\|ўxyR-*$wucT upE@+ ]\fO^rG3M\ҴBj7u/7jU(^:C4]j-yAC/v;a֩dw>pǼAf%TՀ̚Yl UԮs@pZj,ѰnrpJT@ppg~@&iۅW&|w_y.-.nVskE7UQdnyiԥ5\Ppiv>}{Ù@nxFR,u|Aϭi(HݷyO먾U^xA֡ߚRЁm;FF;J70c>m! ȾӜ5֗c{&Om,|edW>620lp6:lZVP/'wέTc,GaCo7q }jo%iPM;)e᩻Jʵ\zm:WzA7x/CU{ϾUܮPPfkK@"u+ɆJ )ite.x>oGn}ۜ<5ҧKK`\[4Fګrp♶:i]{-..Q/xlK^Zs6ܪƻ4\Zwb %+K*Rr[3W!N0~IsU`^SSX>x>}#znS<+ܱtgmz|J]wz0\[_5ScPH\f;.zsI=/*KR&`s>}|k.)=qnU)=/ljYm%$lg;k]f(WB;aGC~O|E)~sO%[貘-D͢VU}.3W8ps8ZN =2*r6)Ob[t]"HHJCMEe3R27\\t\1lgVwq~YA"T1ȫE4avR{T6jTɋE5vot07hu]SJ>>sNcd^#{ zs*KW-'nπ)xRNx>M֡hh54P:0fEAh::n^ejܢܳ--]L:EHqಋC'_s?)%@xZ>jΆ3Z#iz tʯۮht V h;j͟) P;̯Jο mp=\Qh]ɽP1϶OU<3k"O_vjE'kEJe$UC9J#ԋNi;Ph:F/f*w<|Uu"ѐm'N cCOC6 @ LC۬Vzm5/ϺZuO*\;& Fұe Uzo\ ѳ9k<MV|㒍Sm '(6;UݾUSih3cj\ό(Qny}Vr : YQw\HE"hԭmيޯ|VB|O9^Kh.X\4Ls6zii?dyM t0}O==k]rU7|͞ 5a&\+J+uڹV/cՌ\MHvXE*-G~7*+y^gӍd6S* _IqmWc6/*bj{ y[vLџ֐%Jb~2:{}ؐg+wfNT j5][SO.6h.;W3R=7lx.o5L'GUT5ři =p7*DОj-Vjџ\[U+, Ԁ A4᚞:ۈf_3w qPt8~S_/eT6~ʥh2s h15-%'շ5e[t/m5Ϻ_>nU'J|V;7Pk39ܧi(m8[D M*naq剐l=Eej{ER5L*lGA+G6x'Vp6@J5+J{輖_sw]4o7wCFmT1p|);n<_` W@D1]Ǻ,Q]JXe4IyK>P鸴\w?/_/06|NkzGFP{,h}#yG_.qY5٠eN]j֎}C:ZʏtU|3ZH?W}鸮3Mljatui)4 ŽNg-U:[ үhlyނX-#nTi4+ A1i@Zp'x9^lO 3i}lGZsh?+c**]1kB5ѢI]ev*z "Xݡщ}w2j K_wjKX+ < T V/z3l]iU$E٥XŔm6ќtٗnLgP-RC9m9.a-JW.KMT̶]ɛB7|4\cz>PKMEԒg7vPH*xS2ұ̃Z@g51[NA3X:^a+ e֩:rU{K8ïEyOs^\6*o|O% \LKiֺg \_}g_Я_O+!Hltٜ܊́HC\": <ӻU^2}UmgYZ}nSZZT -=BUz 55nR<ԫYFip%!+WNJuʫU~`RhWTX5d̏ER^*z񬎂? tnP^nWHЩ @ƃ使Yl6SJ:|>3 4E]ѩ4d>^Q{Od=>sĝ;' 3=\f2G֝KYdV{M;t+!'jE Eh z(Cd@PNJ]^Wo63NP҂x-jh+$m.! wPu;vM.-)n6O;i]5 O փ ϽK5MPRű"{NUwΆI}eP%Ԥx=@Ѳ E_,,[ᇴ @}2 4ՙ=[SxAk S5˓CQs-R3mag7zȕ۞#bР(hlgů6 pr I.׻&;Ht۪X?C2rNhJh{%J-lYL%Ԋ3\c-=G2-'qR s.3Rn|X#VW03MI̫^f.^o7}9>F=M+ڶw>3bR,eQKWQHBWk{VP.\}Amtd܋loCy. yv.<\[7,^n21[JLUPAnWsoG|vhUB)yFss0 }~x\Ο(U ^FmOWXf}hC,A^jyطfa} }9WE hM`zUǣ3f#Aq5r.~PCE?'Ng:7-㖽;nKӪ] czX7,j[b2%H 1Mʺ (R ͎4U>rGRtly͍iI;]62HkOZx-!w([egk_smcj‹uc}7Ϥ}],Qx9 ܷ9nՂS.`mnT1 <_h:hh@껾ns?ʏ܎E=Hj,=rtwն9 ͭ S9N[N Onw=_u%b4 +_Z.Ӣzg/`j~P}<+\;~րUdHQnFZrKMeim<ӾJp.#xbl7z;jŊ3^mj2#M>Gg[TkԡPZRH,Tٔ HEQR=TQtp}:*R@bJ|P'L7Aϻ9+?H}taP:۟R.fXhZ4cw[@b&| GE@"jYJˊ CZO #M;DyP.Z.T7BɚkP6@S\`Y^P .m'yHzvfņj¤CXJ\zCZX_F7R<>f{%+ 3c7G@h@ Tµ<p:1YVM wzοOS律snߥ/ԡ|AUy>yWOg-HL= RuI}K0@MX :ng=/R/p͹D^:8TyVyx̦Z b=-Cl+~AY+\3Ẁo֚5^(솱/<Q<]~#%qE|w yYcPV'`sRb ۮތ>?woKy޼'~yu2ݢ`CW`msyOG%>hZ4ѕxʹW"%@왥aQmfRMd<YAAE'=7]lmPօ^?:2k3WӦt {En7D[ UOxP$>^Aqތ5cKrVf\w.eɟj ʫg:c-[q-G9λ5BTjm{l\h^,UUrcvSRw:t}9[*- j/)(A5>)x]|.<ÕCm·jW/NuZi {tPAwԲCZ 5rENF\ڄ@:;$_ޕxtsLΫ,^A{W,{~{4h*bMѩE4S_xGZRYGH(+e|ViLEdy=,٥ ciHf?sr~}ү:}V7|>U\uѳ⊑Sa Jc{T(h )|.iO=a3.xtW@oT+rtl]df *PvЂ \Ŕ>sAr^Oy 22;*-[*hԚѫ$ Z:JCJJe=h x헊^zCJFEH4A;p-7ff `#|Z XH%<(_;|7aZ.hg6ܝǓM[RV{i\\4lrM%޷t rK>aIMWHa/fv JUu۷rU+բ悀u-̛% vHVfaμ 7K0<.O =AJSL ۈٚd:t&U`^Խ~Krױ7) 3+:TZmQhA]Tb]Kv?ypwK@:,}(->"(N(ͻbɀ3y 3Ў23F|j= VwօQASVzC/i1Uͣ>ԕ(]-R+EJPS{l]Wu zAmjbn@fie\G+ZtjQR*Z!ە5zo;# Пu<ݹVey)T筴qus`@Uے:7Ar6gچ~6g Ժo/ oWg: G}&aV11hOExrʋ س"Ð5ɛWK26bZI4 PP:}#PP.ŵ<6|o^R<{6&c}+j3M)76ZIgZwf_Z-o33MnY[lNU:^UձwFds|hV}<0Ҙ^刉"`΀<L !r"d .E P\5,z+[`m=\}6}\uuV7Q-g/Ҟ2u{; BŦ(p2.Uk@=_^+_/Vg.џX{ZvmLtL;>sP9EyCnn4kBzo%%gT浟*Y@$vȶLQ\=;ha{*wvzbjAR>zXeFw'TqHg]_iG#jowԩp z43/O"mO=g@ֱm%weKQm*eM l =g631v{=LK5Z7|=3RKiv VCt>5-//q纞{_1ps+G,{ncp9{7R,Emݔ `by_ѷ0r\3K9A#F.kR(Z*%P'š M"{ ῰^OJgyZ&JU#c͎у^Pbw _q.iE\TJCŵ'՟1-̛MԞ>)zmh"~ULYŞ[4hucbzsr_\-8mFZ ])edա|Rsht5;}KKQZE:IWu-~uR4j?9ۑSy[.]>^$:h k,oZ~ȧ~6'?tJ_!l.\giR.xaa-;cZ;a`N_\RRWc>6f]UyN$E--8AjnM(mVY(3E3 `He꽵"RibUuoqDJCy\+66Kt-Sd>ǙW6JCiE=X( [_2pC֪R*h-</-ϑa/:}f4NA2}k/v3 ~tm~cִdw9Cm[o\%*]ln:96LM~NrRFѪGat4hiEl3ܡNRE-h.[8tuߟu+~@Ѧ-b=,Q]Uh>HWZsKb$?77)C(I(r|Yhaٺ7.2ص-kiF:2&@#h*.MӡXkZXQVѰ.\,ȭW)F=,O4;7m#Uccvt[i֡qbnN&`]{*{3Poyz}ZYt>f]65}CprՕig SnR7mrR,`jǐm5st6YNRZnL fT4@8մY_>>-_+/Iҟ fU+hm~P"8+[E"նzH=CS]K5\(Uj\5-\Vme5w.^W6gcDY!N+S>>fi cP'׳9/2L݈[IlX;Z/d9qn}Ptl2emi#K/{ʻ۲5_QGUlP fb2s`-8ihU.r,4[99m UC4`y~Cl25~UAUѣg:yw~n^e>Rt!pш@PpݱŭU#}iZBF7>kUY~ӟdAϮhπu 䤠CR4h,i@2:өxgCKL۴˙B9-:n^KvwIF-ew|JqVa SH2&ْ_ 8?92._@%0\6ڦ?4s֮O%spFr=]ݔEUK>=ddi%Bg|S"9R1liRW^-zUɘS0 2=(ξ)c(,ꤔ>,!E9d c{@'򋔘M:ps COR"JZ"]xKgIK_W..d[%hOc4ʺ39N=_;Ox{^ʵlW֪臭Ȝ Ƞ<]޹Mک_(u+_FX~_mk[W _/ֲYM__>4 @_o %Zpvە <^}TAmmJ %-LŁOlbbx2ԦsmCNfR7@MsBZkD}r*-dW[4,IKfˠR2[?+(ϻ*%!U3xm5nV-JeO:Dl{'>꨹m:[ Tc;X4 S9hXfÔuFnU}۝wќ(w*mƓlxʶn^Ushiz^_fks%r.cES7)=H`uKAʖoA\=j>?xv y3r!o4(m-\U Pyܼ@] T = Fɗ9mHtlFUܪT^+(W}-lakyDޞO> d\ȑ\ [w'|zɜA]")\Tk|΍֗t>6©[iPZ-s;A9cP q3MifsSl:FA据m qD7cy~sc{Y<3g:8v47a;:bޯ=zR&ZtvsmCǣOUg);r\ws˗OU`]VxcO|2؎5u EzZ5܊7A/7m>OV1|Gܗ\wo)LJE~ۙK rt M&+95u&5%)([*Ots*n졆dav42lȚm %/HGFok]z8kJ඀)3h>WSA{.u )j/U[e!(4-|rLG>ѱLIN^eiWi汽V>MT|[-炴gT5[G>,rP#EFg6عbzm #Rem'fN{/0}Cn.x3\_~+{s{׃z/րWmWǐzo>ʽϠRm:R,Zdw>(;9F~= uچu<=|߸g= ͆Ŷ[&@zZ=RԡҚKaAv #vRV-Wb7,}ޥA^ mhlizi%mxF}yCԊ4]6qJP$1sKĊQEtYB,g.O;ac曒Nnqtjԡ [`JJU4 ټ=w;J곝BPşNis4%6)WYUeE"Y>sNFi)vh*Rg[/g"~o_h5rTE% @KnrxF4li|vuߑѩhe%sXzrϹC/S#9i3%"ztre[&_&Fh{LG4}Τt?9 ZrF媕JՍmWy>YNkP焿k'﷊sqcOU֊Q䌪PցuG kB|~碇_iyqϺ[-6|M +N3Mr52#kEUVy U0ˑw?w=sudMټɣ`M|'RᖄS `-uλ.v+j.xj@LűS)> mjS3tW̤;) Jf\S4NZ*W+=\TN~8p6ڽ.RQW)pUWq_Z;5=,i𧠞U:W+y25KO +8Up WH[I/*ۮq@jw/:e'eP62[kh,PkeZuuj|Tj.0 ܬuwjR2P5b,].Ք_/8[[_kSڨMP%zG9k_O 8TmZTjj"P:| YA"_swzOXM)R-Tm/_Z%"}F)JP错jܦUԹ{Cig(]= C|bsw}hb-є0;Sru` dQ`Z*J3=J+ =\Ve!PtR'|oiϮdindx&bjz \vn>d7C?F>Rvh 8U]#PExϽ\[YRYQJOW&BmEvxhnss9s\s}6%ּC0=+ۼ=mPsJSu E \v ݆̮L򓣆2xSq786ZP9~2\z;#}fZ5rOc7%~Rk̵(- WZ??gfz.}˟oCw<E(LMH4ŵzo/݁37|lSAco*VrEjw-8Ztp636EUǞ7b hvA]d>@'TZVk٩NH]vX8j\2˛_PΗH)Z*Zi(`vh=~+sk_nZ3JKTO%@62G^ /gz9Aʺ6}"SYJ5a6ؠұ*V5m[b6EPFcou3ݮL,]w@BX)f@j܏ +A3%rWdir۟ //\%߇Ztz6)SnY|sRx7CZV"磥_Hә(3WsrWt='mJz("Z3He%.E[9I5ꅔKxBjӮq|y|EJQtd@cnꢐ8KsM=Nzniy˹z]! rU7o;5|!z%緡ޫg439Wt:n"'OgW!in/9鹒hi@,bJr67UCK ZJ.hyMCGǝ7:usR@|z{5]HN,5 |s率Wy~eb4>{`tjϞi읇=}VQR~<7iךiP%XyT;FUڔLW*tmQyf-!xF΂vdE!~=R3qn#~U4|"̫$WUq_Cc{'p<Լ硛c*hk_+Ztj-/`|][Ug/EH4x$"S?Kʴc%]d&s V3H ΍ӕEj F,{StЫ4vݷs='5}kYAeX*+rNgGԴ3qD 3);rd1Z0³ǟXׯU@)s>l)H=6rD7r㾟v:NEE҇̊)e"N__..}\ڮniUhkjt Z]P\7:K}(qbړW4s9U獻k XfI fXXš,hhh+0(P?y}AS/U ٔm4 X j#f\[MKZcGS?0SŒ>Us&-e.^^ryAjߠ9LHqa%)V]TR,qdlUsC96f!Q+@?|P 3C`@!DKS_)Kh?K.sk.;mEBWTR犃Up|9=DzEѕ-}&`n絫R`'Ӽ(},o2/nI5\F @6\6FK\Z;oUb:0k1fE+|1@us9-n}ywZϴcAF=~S,k6vbRm%  (]u W)^'@;@tE3&#b!T2+/4 P%44 ,\܀2eXV=`{ŷ.}6u6rh'daz&,ܺo>%s$Em'qyT{ȶ3VgRnIgUhjʛ2 VZirf6n-@ۊ.P363C҂Qk$EA܃]V7dc~lf,v-'̖Z5n2k:sh4loChTmK.{y٥ 6~ݣ wJPAvg9- N%(ff wJDߗOUX5-R2.V/<3O3=lCϻ_;>?u;wxS&DJj4}1v/ь$Fmy˼^e mWzkS/S>kLӏ4qqt=zyhmqW"W%+_vmCjɭ4 ,X>JV\*}>B~]hQqa@kG͔Ut݆i(j,}uNZ"=#)Z(V_w] :m7CH}hDK̭^}鵯nJd4iԊs۾^s'@L\P.@wZ!]o#A-+<#w-ܳY[ 5RkNOe#=s `\Uru{pҊ@3CSb.Z\u)$)S+2A:z-;ÜՏ/diW@ܖ-*sDgN-KC!E̊-{qƝRUZ{iB\g۞RgKtZ龛/3hw%4x~o%k_Ͻ۵\Gx⯈eKyZD6RmZˠfoZ RMqvO()j,}" R.7k%$ZRqqE;2'UŢ+IU+3YOc)7Rnjڋ5mK90fqO^tlnt8s:FT =?><Au/g''}g}ql3;@U3H*\(oAhTzϽoZw;>RR ԡRi 4rMLr FcSlgtt ZڕC:Qw.-5eWReW F~CWEiT|wSm򦶵Wv3CUHKޛ[W:3>ֳ4gr^Jhz2>.+G Uɜ,3MC4jW>m"ǒu+s5E)M.줬,]ؤlӴ2.Wotvvm|bP+8,C5f#^KzJAKI@w Ad\ ok*֙W*QP-V:o>*YUY\[Iզm-G

-G&6K 5- jy w={&~'1Kr佨hwTvFm %/яK͸hf#Dq;c56Ly>R/H>ƽܥHE@jr1E }}QPPD@4*Ũd[OJ\ݥUm[ut'<8hn!d \X9H K=QR>RxWqa|/LQyr9z$藮?K"(%z#\|H2LL y jbJYI" mrTGn#I&%HFIې HKID܎gWPN9KLQQz∈=*L Iz ڑOCv>^MVI$6+yRG/"]Њy<.CChJ9z"sr)s?/_oZH1Q"%i mKKc钗(CD$ PEEEI\jOQw1W9"4h:W7)|%-LhA"!*O=&Kخ#C '[$[:^7 PS$*!>&*qzdLQ=2C/c WWxq1Dq5UHv]5 h8 TP2zb菦>G/XݏH˳FJ>~H~=QKe\\vwB_?T)C Dpbr]~%֏.' Fod[($1c9w;@p 4""ݼ엒y!rCnWs%"! ) -3k|4JʯjU~"Z6Zd"9YZ4G!|5ImHm];|+QKGY~ǹRhdmU\P.c۴Ȟ(2VZl<\)nQC&I$=Cp^J"qG'#q?/KGj#F q5-8Ȟw*J\׹IKW$?шw?N*JH~ =ߪOCCssHmQ~<ޙ)zs~yK?8$HvLqQ^R>cGHmQCR{}d;|J<@w_Ws˗?w/X O>rIK_.cDTRos*\"r)(Cj#^Jߤv]З9\9z$mDdD!*"!d@TY"+HaTHd@Vz(ڈIY^DCo)z+܇oDRQW9Kb44DDGs9/jCII\~H|j84r!j5IGDq܈LQd' 4? K}/Pù NQ/T}R?L3|,=q^K<]\oNdw"r"'85%$5(%˹\KHn!У~?KyH~\QRߪ^z="oB] C2N(a܆E.r%Vܻj*><}Vs2CCjPڽDDw {KyE IG!=܆m7!j#HD0䥊#I#"))zIDyw?B\#Qwr')s))zc^G~'zTyK%}ry~TG>^^#R%%Q[DEV`oܣJ^==qJ?K˹8TK$>}Kx#*9rIKnQRǐȉ! y 1P#Z ~z d1!r)(%L#Q-'#q]RK>\yKo^6*H⤥˹Qm&ܻDG>(Dr)~L|m)zȼrRC>yr9"z~n>g;2RKKe=]_mIE.IG%sr%!>cLyE ~oZ>r/ҏ3ި\闫)sr"7.1 ۔U(j%m qVI#G%.]I?%~WmIK*\kǔTV|X!I ?Cj)m>#J\&/o/Џ1CCGo9zGJ>w>y/.^З1QGGo)! {Q..ܗm Q[*K{}1{w?w(g1!QD\5.Q6̊\ػCn*J[WqڊEGG2˜F?ܗ~?BJ\GR8"藨|^_חRDq9I HQ\|{WGj.)s)zG2R?/\TV>>z芊J<̞o89]Cr@Osh~zGo\}QQ^7/oGv^F <#Di$R:ԲCQI|/^%钏B>%,<|qR?TC/׊dFQ,THK/L}r)z%QR8nDO yǔyI K>}rށyG5%O(kڢXz"RXmPnːԹ55.RQQQR'1CpWqwKJDDpԱQD],yI#(5佫菢^TrDCRo\;j+ǔQ.qR^1.^?5^<{R(nC/o)h9Go荼|ϙ^^"r9cjX%|yGjs1)szH~%ҏ#Cr&Doܽߨ7/j8m Ò";jHnCrb! n|܇|>r/w?G~JHmYj*JJ*$C]QmK&[H܇܊ג!j%LR?P9"/䢇?L/W?s?LW菔y~K~sژI鏗y=}LP>CjrRR]Ȩ}>e]łmCjo?6>pKj('%WIG NJ%ϊܿ]]r^6HKqUǐ/r\}Q/e~}6%"KK~o(kJ\DnKm TQo@h>*Yd^J<⼿F,>RK}RQR]R?o9!QRCrH'm=$CQڮ.b47cq{Tyvԑ5"|NR)s?oܣs(%?G|CIK՗!<Ȟz#(y!Q(9G%2y/TFHj*_>rIGQw=2L ?FI͜^.cC !?o{GGs~}=̿C?OmKV"V>%я9ze{TT}CCj.ڗ1hɢ]9qDJ+ܭKLQrCQDGDj')r"9q["7Ud'pb$ KQQT6\$TG>~!Cj?5/Տ8)R.q^L.]_rJ_.cꗤ ~ys(s ޏD_Q=>+R^Nr"r^LK%@$A}RG%/>cxDN^d; cچB"hmGط5Vbb6FhTGiiCn-DREDTȗo! P ,WqvѨ[$?@ڥR?\yK?W#vZ\/Dv},2Wb˶<9;JvԶ#H~Cw8e7Ԫ yTT MZl9nR&**⒏.ڊ&;')vCڢ99h$]RJaD'DrGڭ%仞o;9rx~zW9zGĜ*J^֏N]~^%Ǒ9z#/DyEI\Co;OLT^q {yK>r>QQ=/D6OCڢy)rs>ߦ\s57!w\ߠ4?,=.QIw9G.Drd)%IOcC^Kڈ[ŠHr"!hm"5QCp u#n_mB&֢")br#4&OUjZ;vgv¸4F%Dv<<>!zn6H闢@[vX=ޙ~}2R?XDǗ?w?wy+/=>r]C>r?Ww>(|TTWqIa˶Ȟ%.C$5~J_NrD%GTWrn ۑ-9v2"zbm6@@6[P͏Uk+ďtTmIIv T[^Hvl#|\K$u9.ܽ2V1u\'CUGo8+~ںzj=^n-Ud+m(\<.E[܇5$1D%.QǜqvJ\󹊈F]~RQQ.菪?.qvs[qye闦?}Зy#f?ҏ2/%J>/w\佫qRRD7~oEqK>"s}s)D Ht.T#`qPHrx#Q7"8jDǐǹKLT9-'MPbB%j̉RE+q2Q$}b6+hzqfR$KIR_0'؇ܗ)='nDDzR\zmp1Uj'nHINI/ziD!2Cqd蒉EG}1"!IE~ Kc0F(nc2'?T}~?*>j'+"zF>~n^+ڽ yڎM^Grڊw!(> 8!.܆ݨvlwp݉ \~IK9 w~ w()nCRQ]1jVK85WDs@Vb!/zU_=s?v8;ު*H-%"EEWZZy3bVK{|*1jObGX˥%Ʈ'n]&[[D)Hg^\N]Q"&/$G vrQCjy3X3W$Cj<$?җˑR+J;TR|}"ryy~Vo˟5.Dr#?O cC](+J_ȳ;|*??>>cQ"״^$%r?Q=E{ڰQ$H~QRG(!$O$DG";r~Z)sP?hIjUT$D"ҭKߘaU꽫RoUUhʁи^PT|.'>IkWsU"~s#WxGcwO#Y.Q'ːyKA?B_/DdW!y"7K%.Dr#y3yȖR!"\DnӃR$('DDrL-;j FjKS!IūU=1$ɋ78!kC"`7O)2!ղ\QD^GPwW`Z:7iÃުܵHG%*ITxlw;bNFhz&+vͪ걺jUY=]!ӇEY Io@%~?O?w+(^V!F!o)"".3b<}q~x+.R>JLCZOu|Y4mhkݯ͟?֗.Q/DTKe/W%-۹ȋ܆4>Cj~jjTU*ThT(hh#Tw*O%uR9R5-Py hCZ>`/Z?VR5;%@*ƹWVA{ۍߖúU.B˶I%HچxzT}Q|TH>^^Pw!I j)R8h,UhUǓ,!򊒊(UntZ?햤%HcJĎŤьn59 cD6}hW))r#R ې۹ dF1ډoL߹QȗN@@qPݍGmD -ڤc@u!:z ]jBh=ݼEAĬ!hDkGlUmԪ]s&`Hܨx}Ț5,5WMNѰ{UV6+ȴ?$aԆHjC%)#gڜYi'4r.zOP}D*}4u1.{L?[ڮHvmTbLVQƠ:qW\ǗsȎCUty\UmY>J-O""#E1 )?G\}cQsK=\~hnz - (DIrpȈ`J/%!DChյCQ'V?R/Wܤ+/މohj9^`b_iA@oT\%)Ef٠׍toև5칓ܨ4Q :k&<m5$z2P81T#A5aԉN&zzk W|(L6}qE 6Kxr""'Co"/r";JH6)rUGE تnTTGm*;~b;Q[~Q9IȎSW?ǴSDn*4?LyaQ}Ȅ$nܥ 2"ݣCwmC䆁hhhnJ;ڇn*"7spJ$Xp<1Uu팊 Y |B"9܉ɵUpDn+G"5܆oF]"6^L"=8HuD+}*\ATjІm5䢆jBJ P xy!iyE^^ےG܇⢆=T,JB#"9GR@hvnc@CCw3@& g$v[0{po"x^Q$7b%MچJqHCTȐT똱iƤJlyP*.>.(׭0 !$L"1R5Izޙ$x+{w"b#vR"mVfU#ϡɻ |zfC$Z6DcĜԪ+I7SdnD@&&)(J2ܢiȗ\'9zb!GCrB%E846#i)]6GěO!)/|CGPԹKO\{yw=|<3J 扤RZd콌\JӒ10'~)_STJn 0D8-$'-@ÿϗ(m(QD ZMwjQ$ýz?րua4 81Pquлvx~ ޑhnC.rorUqQ*ZOɸRtR&эRwUo9zȎRTQh5h$%VZ6 .(KFxʑ ڏ%VUUnUn'?ݹ{T)mڈoO5;Z 1"Լ[I۹ܥI9.ڊrѢx x]|$^<Hh|hmC$dOLTE{N@)q7.7Drdw(;j(g"7r@jv|!((~ "D%)! QHdH !nm@WGTӴX=i$j6Rj!$*WԌcBMN-pRFWؕd+<ؿCB8޸\#x-'XSW pS8eϼ-Q oG lsƲAn"0U۰5􄣣!ZGqƒ~2nS幄@&[6D>aq{{#f[qUрUCͯUSu!Z Gԏm Y% <hmTA${R|ݶjnۂ7ĩG'"Pچ˹ָEh7IJ~ka )kiM~;kXÜ<])2ScUb (Ƴz%Ex}kVڑ WjI VP` b zoB<Dq$墒5 pcxZ^3iL@LoGSrg_} 9uت5H3E)wY!Fv亄vt!wHr(&(܈!+D z??ԏyz/\}ЀCuq&H-IEEw͟R%;_pO͏#ٹƮmCNCOi:zkjgr}ܸZԪhhHbo|¼5[\X+"ԯRo ?cUɻT$]G1 ېHV'ܓ֥RE mI"Vܮ!uۙ kV j^TUeWCGvVeVBʽRwշ6MִmUB#q5~%?ODrr9-{ @CCj!HnCiH"-{HrM- P;!jH  `fǮ)";%%2 H *GnVI}+$C!$G nrv cZi7S iۂI4.Zddy!qj#Q5Cȗ#.CCQڞd4Fܥ#C܆ص5sj2VPƈU}"#w!܋m LɃ(5A Tsj[qr%mKY!Ni ;F<(uH*q1L|k+])Qi Y$7R .ŤDyf.hMGq/yRm`ZkThšiRu fojUgRsO$N˷/F9y&0C? x3.nZ_1+x1MՉTbA&@A#i\òڑ ]M@yة5M)Lݐ&otɓ73hs!(5q`#/aޏUq{L$N8{ͩdYQn8EsqjԶ5hmPI"嵮u\qq\܀=Dڽ~5_CT$BbDW up?ކ1rк1RrAIHVm@*ٍǓKтM mCnHA'q%bL+S{K u{UXIzOW;nܭ.~>@k!.qQZINT {5,&*d<Ě w"U#A^B|4GdC$R6h:!-kQQԌ=1'zڣjCBgb1+ g~sK^3dےFBZ}6u\G\=䡥kVW{1k}%zgM+#XȁR {{صnԪeͷ2sUtH!5k[b+J ls4pjn6s~ z jzn&ApGpA(>@k郧6Ao3{ܾr~H=Ÿ%쟂~9蕄AQ"(L{^{:}AQPLzANdcҒ|XF[@q6 czF9B̬TkBqޙWўC(ZѢ7H28sS8;*S25ۊ1v0MCd)"PV43in@ ɨ&Hw$QǸhcvZ5@2K"G ?R8%k~+c-/Utd#jqZ(k>34zϡ Ên$-AUDjQڣHCDqmT42*G<^Zr&zZJg4` nܢ9;r+/~>n/Pqs\^c5Bu# |&KHJ8T;\YBxI?-t6i?UH2 e{7nQ]BmGq2VY5;sTkhtL#g'kU!h61 \20dzJR ~iz._ ԏP jSCõ`I `#ָOtX:U?5^9&r#_Hsc61<WUՅiH1hW;6c(OL2[WVv0гcڈ #c)"ʷkO4Щ~VR*qœz1(F6 \a՚T%WCZ <t45BAo@.47ظT9]\]`MMwT&JWJ~ÛCvS6i& A,ڥ^1Ps=]3w&4^ So5n֥NrV߆Yוj"L]P$2Qb8aSו:ofМwH jrDuY uh@k>(ud8k݋Pݒ#{qr}hD6Z>&6QyUv*B9UY $ȄmjT䓋)r5pv -#I%yڤ8I(sb=E NGM6׈?`!"nQR%/)(>RB\h (\5P8M~Ţ`(tk"1&}HDrvƎO!rg"[&Zˣ\9Qj5/t[!-;hFŸ5Ue1?ܵa٩}noW&}Z $jb_um2$i"I@ QjFϡujALK&b@1qkT3#:- cJK #d}<5ǁ>AQZԻLͬGumΩ#bpg|W4*m/)sYjib8ub׍?i7r"&DDF/w! }cn^^EDDDE$~LhhmIgDͼɨ" <$^܌)hdC&[ M!P۵HoV6:rSaǛesFƳzК1_꒰rդQd}" Ҷk=Zյkz~ شp=E1)ϯVRppOc感k@a5GG.7a+ɴz#RpSYP]丆VAcIؿy\opֵGBjk2RԌ K+g؀3YprT4Vk4 E@g\$ZEVǑPݵ 9 12hhT+H7Yjjm2R;u1m*C|2 @nMRC&y *9 E]RJJ$%VV?z>亭&4B-zZAcܥQDDD;y! Hqj rC@v-܈AɨKDA-[y4! CΩ}>;T_%xnJJ$9.KEcGL-Dw_qW@Fz%A@n8`4C}af95nkak 7^ĮNʗ=W85*P飨^*Աl=<(WpԴJVͦGvVY<Tκ6YZOY's)twCQV6z˓ƉE&7I+b;hm[WǹW%ީ'تy9U{FrssY)vI ["NJ"(a%^-7q=iiVNjFG'ڵj_9XB&%"nVw#H^\Ȏ(˶MmC{Wz뇹&!I!jmzF1ڹ8#%8]UWюeED47"zw=RQ]44444Rk7ԉrI.WRg/IaW[ g!+]sJ2=uC։}CITqXa5*Q)V*Y]r_tшlksh4 7M$\Kj]-HYL{/io\omTUx1U\J?zx'8SԵ y_*k(OBAR_ŎKO&ǭ nJh瑙&lU|:rxUԇu;$d%Chڨ ^ZaM؉K[4zd\/P2R \ǮAԐgCC.3իJ]66=Z/U y0ib@u |;j+]Gq۪4' QN7";iU_IԨij7TD %+8 ` z=Wܤ9(^J+qEz"DMhQQ8]HmVJHjxz^ͶRڮb.rrWWPVZjOS6XrͨD1KQ _'!IwХi%Ȼigƒ;PA6#ё@+\L{mCv׈ځbC*(n-HuN BJʒGgU-5`G,S!!LŭRR0{ٔ_%txc{_TkJ0ф >AJAO3gPh-6V0s{%e%uLFOčRG MԵn#B\|7^Ba_ *HL 4g7lTM]#1 E\ށז XjISRܧ<8|q/^"Za^\;"ʬ#5ީ(t4"jR(MVSgkВOjTIM]-5pj4Y( 64$Aj= %D2Gn@jcPn>CnHߚyi$ڀb>hݸ"y"T"%G'#G#Kr1K܆ߖmq+2nUtgmDqvR{Bě.T];J\W7bڸF³͈t'4QDju0[}CkEjCMf\'?0{q=PR1g,}7?hH*iH!6c}4A{ K$6RqF#P鷴oOzvlunb1GROju4z8AsO\YoTBTÝcUR\(ND4! ēv47mGj#Q?J\$6hh_(@mCCj'#mDʑpqJ,h-JS1f(:֤=PdgNw\}ZmN^|^_mĤoWp]uu+IRpy^ks7mZmGƛ)a򜵭sI'V9bOPjd HH>o1p4Y8yNKŚmGB So3Z QڸM {_!Z]飏ٗ"Ti!xjZAM$zps9 vMH H = i4 P fm\Kç6X:뇵*JaD>ǿ ӓ_mb[]YG$KAFB;пrU%l#@Cm?bP^ (hɸ*nP@ -ěVO*[G'!rCpĺMmΚ{vA[8 Pm܆bݫ5/A61dA.Я5H2ib-ē  5Uߍl{OIs +*A%$6#W IԫnjUx=rVmmI3&jCШBng*MP9(H³ø_ijl߂!boxi r`njx!QJw^r97k V&GԈ7" uPj\C!)!!"u=qr= GMg 97]U~K(tdͯCv"4*KZ;sr%/m^֭pwRicF9{*7- VI&%Z.HJ,/LNf D d@q"jaI4cg*C_b9:77-I)#WW`ǑP" '~8ص*㎜#gly(G!rP̞*당* =ÚH?{o آr'nVd7 7r%̔iP7h6j"HnC@p*G|06T/<w(EH~sǐr9rY~OHS{ 1hm@rf֩~JR7ش UU&mqBՃiG >&S9ul7n#K'PET{'vGo \H~MDQ"FZMF-*i9v?#wz;LGc6|\fՔ\gHƨ&ũh# .1UUWiq4f 0 =W]dL.6AKSTa ,,gt~NvCq-H75:SCiB~ܼBu$+(mY\7R& UhxLZ.Ixxb^"y!;)rC/ԏ^ҏ<|2M cu$gм]G$BcVIoX";\6$Er;Iw9z\)\'P?ct:ScAjZM>ռ/1(*jw͑รN: g%xZZM"!IJ˕;CpsCCr~iΦ~b:؆ݨ' hHgI6]V{r;IKCjP"b%VMU!eUjԜLĈhm Hm5@r=dU|ū7nkZo-Z̒՛U#DC&iXMP8x'#PHK-%wd."s7iUX&ū7Y5jN$E~U*ȈqTC"|F-I%H?mP9^6" (Gpy! چ!%Cަ0_M<6C}W]zvGZ>Φkt>' ܨ; #֫_SRrmz}7ZAH Sz!2u0|켐 R f͏bź/d1Z.:ꠔ-<ܨTͧ$ MEx. Z7G5ִ0sǏu O͋8鵧jDa'Lf}KV#Qlcu˂4ZI6s|6XGYn1^7n6"hDoDGDiݨs46ݵ 2 RRxj"#TrUB5:?PM-R|*SY xG[{Y懥MXJI3߻QISMo'as8{Hkظa)QkI ֔l/Rpi.ǂit VT ?8pZ(܊0׭4 ,#w& K+84N&"T^!ZDWob lucoTQ]aMңODɥ"!'!r: roеN!8{1jD{YieĴ5ZF7kAkU5ZbxR֛/St@=RuZrM UթG,mWI%8TMB![KIR}Zt\PXF?gRk=LfyÓ<y:o/P7y{}C ղKyۗ \TL1ȂۧnD&JċsWڇJGn*8Q9 ʑV*Zk~X֚.DU~+Rr?46!䜤5-TY h$ôsDCn \?q{jUև4=Xs\YB*`c}Z(˧gG) mHrVKALa< 4y[+uGw tscɥ IM!w.(MR'Ԏb X"4R8"5y!?Q9I5dr"7/~ sQLc%-YFC^({U{~v눎Haڤg1(I&h5N0{ hGL69j(kZ§_fT䥨 z {P#P5R7Aզ"񥦛Uc6 a2!SShFn]PVGic \KPr{X( V{6eK3a-CV?4Dw|P Cj"*mԝb#qR5DnHcm r;؆ET#Qm&:IU]k;YJ8S@ ށ)i5ƚɸ!? Zֺeu2nb1DF 5R\Ȱ@?ʎҢ;iQ ᡷj#ݵUKp~ܣ{=MЂt2\1 {UT,GЦx{ضOU|U_*k44ٽO\'Tӝ(d~;j'-74Rrjs_yAOK'L9kVM Mցzڥ̃8oz3 9jDy{ <ɪRbÐmK\q Tqw>Qs*M/a}VCUl!T =H\P<8CGIHǹQ* {x-YkIExnتM4c&v9‰QH&sCI(u 7Z\=KVMpd=X8jD(LK'y؁JKl`VWvD:wxuCŦd\>I}3ܿ<*HT{շhdUS TZmF ^KdvRz4pnn׮#O.D'ЭE#&VMai* ?B #?:$ff׎h}Ʈ܉qRjhɴÂENr 0x#_6Y{Ut4jH9+й%s(I-t`&S9i 'a?CpfFVFJ[rfh ;~ XO*QfjV2`b5{ rP[>r܇'HmȘ RÚ6r#D&⡸ y"mj#"w!5 hWZ&܆Ln?;I9 ە#r@5V?ǸDDHAb~$i^PgHs)/r+6M.-ЌV~.(ԨvU^I;k(LjQV6Hkm [(~ټI ՒsP5 Tx{ LF ޿NkMjUGѐ"zJԁ`O/\P}˯5Ŏ%7YAKh(޸Nʘ9i&K\7]MjԠQ͜CQR(^H܈.RQDQ6v 5@AĔ{W 4#n8~ qTM pYƀO&ht4 \Y{:Pu9ٱܨ+Zꊘ:yކAд$_Dm KlG1-*U <7x1\IZ{_jTGRN{?541 CoVȀ7)P v ;(ht:oִ=zul> :Ab䆈uFjLKts7u'' jڑG`~_ SY;U M6.0o$Nlb#)A0Wp#ZLŦSyY3 Ŧ`MjsDZDjC%]5Um"[IPr.rT?6jƢ"Y""y!K۵ TŨ$wm=For5xrj#_F y*OT\ڮ(N*:r!>bDDF ~cN?jϺ(Ԉ|W?ǹivԔw*@BAi.K;G@uQ- sͯGu nZ(IRT1O5%a=+:=i: id crM%SG?W]^G ޏ=(ul\KOpuD1RQ3*CIʄac4 6.7j\A?r=SOK\KLֵmq64gdf=Rjm5Pvl˗ՃyjVppUkgP6Ko<] ULvN@W4ORF9|m ./$Fw֑jsD1;9 PW1Q5WCl*>*[֛PC|B*J}ʐj4j1*H9Kp??nH6"DE^ݥZӾ|ū7qU{qq< rچB)nCCZOUڕqFShU^]b6(9 LRM/@NC=0C9D%|{'O. Dⴚ gh%By-vG]N3Gjb0RI* rThVG,zhcL@z9!`]/VATCgr+P='*kL3Z0!Uak-YU#nZO>H$|[rpTMJԻLy>Cpgq7-ↀ|D?*APԕ]vnfҎG|bի)b HynRCǜ}#Crg! Ê $B_lY5VEȍD!#ujΫCv7r^2+rը DUj7oTÐȉqEF<%ʌ܆1G#Gr;@GwzM;u!'jܧýSar zHV7pgRF5> ø:bj P$U"x;rPKxqARICo8;2nT w@sCjJr7n"Iڹ TFE.RܴI‚#!N"QK>| y!uWgеtMR|jTvMո\h 6!cX雩T=\ 975ғըILkR@$ Kžrr!&8r! s!@A?cU ljN*iRxFE壻rT-'Jy`_f68%tg+FɹUHVGrFmQEI3 @"rvw/j#TP5Ci;%}n4 Q*5.ٷJ;'mb[~CP]sxzzi'{MX5kZm'֥ߏl7/} ޴-& и3r@{&g^I\F渇R#RF5 "8zԵ*1zxv=u޵#jѻ!@1; ش]@pj{K W} [hzyGY^T5dhv͋iũ:T'c|rzJkb{ T5T׏S D0[͋IO= P4,K~J=u'lsƈ3( ZÈ#1Y1 @^(d;U ܈2|DBG@C)Zs QRڟamRQ2 PV֓l*j{YdHܘLLemGoq# ?B֗%5}H͵>@1/%$2Y{k fO@ܟnHt܀jU8ZPma&t.!!QB9xAjuD(xlsZHdh^Q"8zݫ܆Iܣ$CwP^HKy! dCjD9$O䣋Pݸh5HKMށ/ة W]x+(M&@=5p+ (I[cuU b>t4#%1XM-JIS1?c=#~^(^o- R1 L|l5%%/¹ګh`jMOjj͞OUmzq [j- Ogچ}/Qd[^(%MeOISQx6#}kAayJjM飧쇃gTS  Gոj%SjE7j6?ޣvy((nCrbP*B7J46Qǔ?IKj@LD3 ;${ Ǫ|LI9R FPyfH IJߔDwb:eTbjF ĒD6@p4b h~(DnO$ dDi$4445Hzʲ:Bd1g\LG_.Go]#k\+G5WhBvQhՊGԛ6urbmCrhYLUc IcܩO1ۚ jC"wM!aZktS5A]77IDbMsTyj bkmp^\1vaAZT`GN)ѿظM)RJ WX?LQn.x9xi:}ƴWUqdIE K}RQCj aDDj# j(j^oJ#T&EC&MCpmG0[ŪDUd rr"#HIEEɴHi~+!ߜ)-&@qGGBnW /Mz@x^T֭i0ԓp֋IW[5e˭Xx/te=Z2 4׋sҀ'u|1Zk{Ua_:W"0z8jKP"T ڨtwa1h*IT3 C0{ H7R"H(s4[ jUZ+R/ MO0_6j* nCCW67w-T橆-7ۦ&FD75ۊNŭ7Y&&%UnC%dDCw\*C-֜IPP4̬.*Ai Wo{ي4КrE!F#:B4{&멬0/zIm}g)}1^r TN2b5WU^[b@oEf8k8 Y-C#|Q9Gyɋ{"8R$Ty _7!=do6)rw.ěԈpj}1'%k.dr'.Ե 0_Pb -'TGR35+0!Ԝ t1+sYԆ5IKRw\@f雭)<<-?V!$o\T1KW꒺U76"7Q۸B(;~JGO%QH۔Qɵ!xrDr#o.^g܈&lD0/4#&vR,|P5"IIHw9Ei]'x j˶"5AAxqGi6Wۚw|#XDBnGi yr"7j;U_ԝy1 ART,NHj$ѡ!ӌnh͵ ېɨ&*CDwH fYg$I4MCGgsDZRpxTBy?p(Cg"jXC؈@GbW^s!i2C#r6Dsw1k:i#Cj8uSRGZNJ<2+?LM~*M7M#MozuY[Oqb՜AjvSs`}ԻXKn) hn0 Oԅ o|rq ujiѼv_VJ5fmb.ma;/UD(b:fw1 hDjG"~!H|DF"')!D!nzܢH*?#CrPʬcjsVb+8y=;Fq#qqNJ3m*ԝY>!<OrLꋗ}^"{YrЫk*yK`?P1skMK!5BMݬ#Q9 {ɵKPܿꐸ]\oh$:OP2=Ûީ ; 5 "C2@5Ū$3s.ܤ ܈WfJJ\aĂLO p!WU&{Y8!H󮪐c6+@U .,ZNVQ;6=Q)ӻ6͋EcŲp7MKVszA;Q n#y GRCC(Cq#mt#H6U'XQD PۚۍzowK}RܤDfW0C-vmDDDRS"%̹r-Q.QQR'\ƸkAp5:h@0.0=H֭ZMF]zU%FT-օS~O ǿ7P6ă>c M)kX= o+5_X˞. EBZKk࿆`sٹq&*>I]Cs EIU[h<ǹP5Thj\ƀߘ=ŨڨDvF$7G!2!G2e%P8snCn;$ȘiP47cvHV6DkSMђT0ow""8qj+;1 J[QL!gڀ=b6NwD'!/j"8v;p@!"/Y۵ϒ#";qj*$+HM^MRCQQR;r$!vZm-tǕq /VF餾ZXcF5Ԫ`zbx>K8A ]@+hf'KB U# xB޴Z >0xF eMt^,Ն@bo~#;Znq`h1WF6hcۣ"56#|=jGk{PP4#&.IʇW-<Ț 8?hsg%jZBA~&HQR(nCr#"5{$WPIRSb<bH""5G47*Bnѡ7!%VvƫɹWr8Dh_y ׵E T ~KM-D!>rs'("''Q^ P.D2$fv VRTŋR*j7TJ_!<=HA9M7-7t.Ff\CJHђ ֋Q_SUT7R%E35'UV`Uا.ڤxL6wc=蟆RMwc,OܵO罊.ސ3:fn'YM~{N;c5Pxf޸EfM~-[T=Kmg +g l/ 2Wi!C\v78Z8ڼۃHcIR$ZH޸N3#B;"f3qA\gQcLGмCQɨQ8WoëuC!"Tɸ~B6 R4M֥b}l9 vh+r ܶA:Hnܬr$!ۮG6yq @02w#=+*jat' ITWVG6z Ўb]u#m~Bt &W[v:RP4XOW)99n ghZ2̫Vh֤㛐ǍPi4FmL&m4d =N/UfzZ^ +Y^TQ=q҈܎F|ȈFxc9ܣGpz}'T/q-a] c.3!q))kvf~ 2UWF@+]:zb=cSk'ZNPթ;hj0exZ1;7iUP./ϫq ۜ]Ԅ{<RRGՈĞQՑL$""juCΎ 3DF5B'\=Qբj&?$6CjwiʁʑC;~Zv)r#v"[˘?i TWmjD'lGrP@jPPԿLlQCq(a%{#ndT (H"}Yr 6蹹2ANDr!=CCCj!܆}Unjw EVb}(cK5%~GmGDv-J?1?@&b5KBmUc"^:c73Zk* oqWF~^5B#*m\KCV@֥褕˷0WV&pbubM#a浣i=-/NI zGQMxJ( EN{tV3'X:oJj[RԼ@"1.aZ`=\o *a{Ԉ*<ɣUěD1C@A&ŝS~CU0fnZkjQnMZn@jة%Op*IlmA//n)z%~5i$DEuH+Zw-%(Zi؀EVm5rڎl>QCjGlh>!m2;G&jD"wDGmDr)r'("' 1d46A`WKV(jaLcS#ډTLT{Q$Z$ }>wEK뀕5"쇛ޥ|mKO-Hzָnl +Wv#j#I%OSiI rnm\C>t5 i4%CZ -0Ԓ Ժ j{<5A 8lR>T#~Z;rj "ڒ3ZIq;jFX{~B5HMZ)m-mH6hݨm@nCR! C?v8Dʐۆ[nGdurCplhn#(Hd*(~!Hh|O/j#SȤ @CvCw)&7aɷ/Ӓ7r;WR;;iPچЏڈ%DG7 !vRTbjaTm41Ś]} W.V}.aVMSR_!A͏Z֓PԺ6O2.Q&+#imMc~HDDG5dP%ƫ?nǿUa70lb U=`6cZ1U$!#94KZ'իU|B+hY7SA;DG"I9 -[+<>rP܀|*FG-Dw)r<$Z4:q& m$|Q0nQ`AGUM 7GěIRb``v}k'TDgz ЍO]7?ة4ɟ!Uu՗򼙨בQޤyBjT&m͋IOKLp(ZM Oa ">@3R@.;эfz O\=q-ūRD$ഞ&QL͋B+_=U:r_PVZ/U}\n`}ZP* xZm`Ѱ{>} `ʬ$?5WTNr=8;du]KW 9l *'"틉SwVZQė-0Ef QRT#PH-ZR Gm\nkMըaflW7;u#ҞMڏ|m_ \D]ϱH%Ƒ^KN2B\KC5!!* {߽j`1&Џ}YPF1nZn{"F"}z e!҂=I5^B9#Muݷ` qVV\$\I_-Kj#P!94 ËNHRQ׏^`#U[MMJߜH!:-5 |NI@ *GFI/1lz.ZmARXԖN ]lf*]1caIb% @͘-kX)H=Wp8@W8kM5"NZiFvYZ!(GW2O6ljN"'UQgNB%FTsfk tG1BLhz-uFMdmHʐؐkI v<[mRS1rཾr#ːwC@p1HL裍AFo1oNJ9B y@+ 6ϡq'qTH 8N7[M&`ycnyʱG7WC5FCyq# X"X%f=bH!8h gaAO^Ynb?P H1ċTPKt渰g)3<gh8#`i X}$Y f\zcr3e䏸dnx\*jSI=9߃ d9(&VW,'ԈmbմԛUC7oG%}Kjl|8w)ص*qw.(jtu,EȎ9GkQC۹ Q^$\Vj%/ʚ=f;e#RTTTUz{U`=6\?t! X5 iJI8W\D*SZ434(k q ޴"!2bЪUbwL7 IՋKA=KDi2܀EAp;ڴS]=5~ }6OGuWFBR(!А5prxvFI3}Q,Ҏnz0^Q5.QD ށGs&"X,w[Uww+r;j;nJzN`,U4׻~dūTjݼY1WRm@81UӒ.$*Kw.P[&(Q?AnLTr!  T7Q3 ܎1 İ0Uz% UuLiNJaط}+IڧS{hH+3ޭI䜁b٭\麕FL3TyΩ]u*jXM|e4Վ$C٩kZk] %zmi3qe`+x H @!$<dr hzԚR<šqZi2DQ X'y*B*K`Ŧ'P5@I⽣"#DDNCj C]0HhmGwڽ#DI9w9 9EI{zonyN.=IԵ#y9,yF.a Vu wm>j<ȈE#S9 ە#X">;Q܎|Tqy44?onPS Pn$O%$F?EB(n?Zj"՛lo?j$[ռ/?QqU۰C&nTT5(%G";lr7rQ\}ZE_~-$VގaʑÓ"8qJAz=@T$%*M;Ͻ 65mgqmpF#ԆpdZo mxᚫi=!\ZM $1!r iFAx 1I[܆ =O~.&r(?i Ŧ頸 P壣!yn_0ٹ)UwW9]),|Et'uMjjT3jJF8yhú m6ٵM>U31hZ:ZQAz9 jqUY { 5AX1uе*K$:s9ԺZ <TBT pi==H)\5pݢoAWkEkH?ڣ#,`&ځOTTf 0*CSc2hTKia\pT8IػjDUn$"X1&lםHs[RŨ ?ON)jïj H:SR8-v1?5h>13Z$`aP19^5KdjH2yrrvԺ@YIpщ'ib"UPY' 9uiG/.0.SebuT{޵jo _&["G!QCpnVA&Pz՜æx1qGà$W -=(4ۘ<ޏQAfݜIjѱV_&Jq%N<rTt$sU#*(G!Z᪑S+'ZZiZ@0fOs&vE)V:c&q z6EeI7MC]LI[d i}#RC" 8 HrUc&"LF'n; _nF7r(ƙHH;?q1HjHۋ5@j~`n\=Z sFrvjAɥԛjەjI-ڎ*nUnUAl$_@sU$[M9jG%xchpk 7iv"8b;6\o`snw&mW TGn\UŨviÈ[n֨ԑPnmIߡkU;?k":K\v2Huk;}r‎.jN#U1Dv"9=Ȏ^%GmDP~򊗬GBWG HS3YGj[8C$Wq tD)ic zg^wJkT(icIV_ϩq0zT}{~Wp=Wr8s%*d-ZNI}kZv:n 3յ }u U$iGq n%<Bq£b)lp4Qls u!jX^:S^s3Tn('ۛ*5 f { $@n.*W_c-܀2mCCjUZM2=QVvrWMh cf3kPP&y q*g* ]oT؅4zm0LKǶyprvA:xf{ظNC=uuNoVJu͊s%\$j'C4#'զM%EPg4JXfpLkԺku"C|Z^*6s8񨡤eM-KR]KfCi$Fw1|%k01U|;SR[~1CڼTQXɉZŮ;uIDs3VdpUmUVcU).҉Gn'4|7n@j pԱQ$43[qrRTP< A%|Wb 2ߞ*JB: (éĻIi9WD"oڣ'eI&=hR7C@Te95/]_nR*TZ:VUK"pf\=\/g}{㫭6e7UJyP*q$d={jdDG.䜢P1І|4?%@$7 ؈Ua*FQpwW p1mJI4hD?DRSG-G0!*OCoT55"EGGm֥T<&7;P۵TTnP7qqhqŶ9 7341W9ĂGH2u9[i$6TpT#,ڴP43{m5zĦbF#ܺk-]fAP PH_ֆG^*m@"25o$3|1^|Yۏ)z6*AD$7d?jq-ձ;H^-DD]V2I RIWֵZ6nȍ5$w Nif!!&VJMB#v֓PLzд[[9 QK-꒎"nCCnAKI&DZqBD:b?qÇЮ|U#P8 DQQ4:;i2ZɸD dGnmEiZ6֍h5ZOjģTnuDQ75WҪ(AxKbb)J7r/* _ځDJT|B|O#~b$*SC7 @\ uk$85u(q)mN+Zwg.$QLd!#+nrG=|[{i:|.-=OD&A$~^A؎ACTjhI'ECb1>JȊ7ji.[d!%!(j&ݛPöhPQڭ@&Z==m@pSr#ILA"z d/v %KGȅG$3H9W'TYUR"KjZ1@ `i7͈[~R"'b%Woj՝RE^?Vߚ8MGvDP'Ić#(UW]ǹ #3r#KIpܔyHVFr\(x!O7.( Z*q`%C9*6BhI^dxvXϥ KC_ʺTJB*%>^0\6j4KZ Utz6Tu Dt^6b+S C5$\9t|g\Ўy7"dk| F;ǭtá&,Ժ*i?'huU*`tېUt-?7k:5U${SݴiHg8sr퍨mdJu 墎fF8@SSPzt581hSbBrH96k롤&:[O%PW:Mmf B?ָ!KB3 pA1v67Z(i$Dzڑr^<ɵ᡻})юsW'rv5u{PU9,kR=Hf&JɭZWY\7ڨ4 :EIիi>u<\Ps61t#;Âtͭи\pKtspQ.orNkԗ]D}rC6-UtdX5&h]R;' {yGHjx}]Ws|!O%"'ӎcy ÓyGW&)]bj(RCJ}3Zj|/ L#G'5[T%`) č^ю*sۨ;IP>Ȉ*!wz(@J gk\DAhxn*} V %W 7GCL: N|J+ROα.;BjUTὔLZ-BuISCKRCǛZaIW!/V &lb 5rߵ"QHd{DDJSrUDjH!SGULYhZ/pީ5G1\ KP 4L> k\SB1q7\@wIq$Y8?JB~H@sI:hza ;:lܨ(kt7'\YE,P2vChܼ?%N%,ѡCiL.vw*@1-ɻ^)-VqjԚN6۷(Q \VƏF;ڏP4BdP[TݵHjm\&MuhiR35ө0-X?úPS*d1AS_xhd,ɉ) !`nCvY9j yPSBhTAK%0j'Iy Bs18ӎkV$X}$nw5,6-#@m*6{Dmmܥƪݒ64rp}(vԐܥT*;Qy hj+ڭ@@p{ >* & P2BЫ_\ɻPR4q`/#_nUd<85j#w$sd10Ha+VՏ䍛i!- 57#Q>RD8驌LhFպCWpg~ۦ/y-7XvToZo= =OP7 srkGC1#ةrhU4 R쒙O aaZme'p5OUm5&kVm g7EfH.%8KIG1B[H0'.ǨQw_Bab\5=.7?'Fr C 5c#ЌuU8[&mU麭 b|~ ZrŪ2&O"q oRjCmtf UM{Zփ PńpjE -I) WR3Cz^Gd޴^5eKijrfEk9"by7Mrw1pu/*`\꾲cyIEK/g!8pmDq&>r@+H(-<޴]41jG߹j\?41^MMALʘPmNL޵-sqf1Ka XqӐSs+} n2nC j<5%.QV$zKc 0.⤪4a06;چ'(ܷprR\Ȋ1D +lQ)) 4xi.wd B YAaZmsk7 '%|-IɛmhJ\MBN؈^Օ0s=8BbMh? b RG C'*>`M/]N+y }jκ?UCV2~JEu;tw/lsJ$)#vqr&QW!x7+gMXN4 0ܫ%u;)N@ %*4Q3`}Rk.~X*Hj 7ԆAkNMB7]6&^},ݒm'Nґ#c76 rnB.% 8=k>RRA~~͈\K{r@@W %o/Co**\ѩ/rL%\\nfjŋ܊ɖV ϢkV[Ua<钖%IP94ЀĄZ8ܚmzri4ZG; xTmUުrOD!'2""9$GmGGoDGj#~_/yR:ԕ!-6@CRF*\!ܓLI}A?" mQ4CmD\G7 \;IE;JnqVB UQS5H1A*7 y ɢ\DT .dW!rw[bW&zHG7öb |k/cީ* ѐ@t hY2"4v1\G6ȵk"1ˊ>sظ7"i#"&jAۚ>O>;mVMʭۑӟ~!u-qfx*ߊի npUzzk7jh:pԐ[EK&3 mCoBֲ57wި4q4cY~ŦOG\{gi4 &AӝLwR!Y~L$ֻzj9И\ZL.kz l0VOΥ~ R'QL@|q *jIi ڵ*=';¦Rj0mCr"(ڢmVj"#G+hm"';HDr*FI.%vC#ؑRg޵gC["D:dGŽDOp#dKjCj!e1pw|" iݪ*@@@nچ7!*J\Kr%ϥhhQR6 U ~*5s> \Cj_&7'wG#g_Ju=qˎԎx1Tgv$3^=A\2x\=ʖoT 6 cŪZEŚ#KLs}ZqP#٧ܸ]BLVU1>عTbOO\Jocv^-J!PZrmIREhܥQ;Y6ܪ"ۑ?bPS7-4ȋMv-ۖK޴֚lKMJ۴cCw&LyFnܩ94h h(Uv Q6j#sUuDFbh<5IX\[KU \tӎiU4ZZh;s_&} j#ڸڇU=4ގNb#*$܈Cw钖*r1 YkOU4Cd&Wl$ ֭U4cPq@BC]rb- KGMIEkպrs-K*n׊ [ SZG}%?4$1A9GC-Rq#(F*cIQQG"Hcݬn-A>˿ЈQ1MC bEQݓv4rd)Gqٵn5"(9&W fpblrV R]kՔ× IlrK ~!qqAigMTj>jGhDrTx#WU\7R#`b\ꁍ1} f 5%%z=9\Z@jQ1?J  ;O{> jw\f:MI N!@&D#].D;r%HKwIGMGhx%)yVWOgRi3R3 sc1 :L>8>tC>-izh͐T4B#hڗL]ʒ>8DMzf3ū@y 8lb3{C*V/(P nhSJHmDm%MF7UUA3{Q{nC/A.b"7p܎ʐhcD]̕"jGmBbq{OGVȵ"b-Z U#r?enm!j;A5Q8UmĚ"w+x9\ܙ1Z)ph$""#h_+Rvb-Xi|:.(&]n\CQmRoĮrZɖkǕ֛TL6! ~Zw* c R4~#\ mD"! ].. T1%cv6rju\_"$6SQbcŪ\JzjgA Cj5K^@ B<AR:QaR?E&oՑ8=Uh bo5Q t I& ;qumC xjy[ܻ"y*팸YZBdroe =|iZ{Ea2is;]BGB20o5wM`3޸NVe9H_~69:1{=MVWWyIu JKWeT!iH!OWגGյ @Ŧ_ҷu>5RmhP7ځP;$$I\GDr($44᮰e,ǒ钸OUUbB;Ps=ĸ:f1B)-r{$ AQLP9;7)$5ŻyE ;F씷zF@"#Q?RMGiv1PyfۛUv ~#~Z'T'"e@wTJ#qIys!!k42 PTnR!ԍR9*Dj"?MGŮuxБkehֻmj,U 5A/*i +Io֚ݴ Rp6JGn_/zmh\VO ,.dhZ"#LDy+5ҏ!ʭCbԉإ.CCC>CkHjػjVwCrCj(mR6ܔyGթT5yw1CP݊q`_^=JߊsW*BUNm"hzp"b -JT{T%E߂Zht [zѩjPj81 vrGqkH:_.7orLV#)kC<ք6C'خ>(foиtEkjpظm*rg-OGIGǐԔw))sr&pGG;* $@ԆA4eSJ˄5LK#Z5a9 Z\XMtZxjH{^5~|sy{o(^IGj"h) ܃*OĤA( H)RSe* @ rhD5]&A6PAQ!'`x{QRځېFkmPdۻjBO'"hW[-mCjqqH~((41NPՄczw!qn2U$HIAEL\J=huw< : ppc=Z~(jΗq_ic)/\&JAӷMഒPtndh,0ě?=KI 6:7T= ēpQ NMPHV~Io{\nCr|1ڈ_ݫm0\^P pe8a bеZ0zB1{5m M fC|azook~AMYIgPq!Ո%\ZhFP#l{օ\=l5#}Hs m?VbOY?k\ ~1?+RHn44TRPr>xګqʾvGn%2xÛTK^I`M#qR(/XǹR7U#VqsCi>Ȁ47!rw|pZKZ[H+4qUn$\ֶ U@OB*P9i˶h Ɉ &KMoU#Uͨ%\GH"!FT q4ʽB^߆ qj!cyUhP> pζ G1!n\ [%c jh=prҎ.!%f\89 洑 q`*o)nCo!MJ%OظG։^:7y,i?ܞZ d$'5^u` 6ڥ #ة"Z @`tDo"s#T"xȍ܇o%IUm@B1h4|jPm0؇44?Qcr(Mdsk -(+عPV (2bK5VEuD!.UmUe^UuǢqp S-6S-dz]MrR7m?kiGq;nk%#r!WynZKIM4J)U 4ۆ4:_ +^L9]G)(# ^(mܞZn{[y ~=#CCC@hC/BmY9G$D|R\;rCC?.q@ ȫ<ܥvvsF!7 XF*J\+h1*}1^[sͭZ.IU &.17Pj+j5w-ny'5R˘܆)m]"r-I4J#$MbEЍ{_P=?IKi渄luـ";w_nR7s)b|X!j#d'kRյ 8zIMy_=KM1.uO5jɃ7xZhьak u]R Q65Mh`5WOm|޴U}!L9!yGKM-JB!ZeƎx*TrUuDjsr6NCjwr#I&K4;ZH+$ZkGF"8eSD 24Jȕ䆼˹|KhkVvL]7i IRTW KnC O &0mu5u>Gq$ ې܉"HÐQ>CCCn+#Iĕ= 8!"85=Ȉn Q/TU%t×؀lH! -.!žy1"4n6HuT#ӞMڤKܪW+xCn-@%[j+@n D Zu Hb!&ԑ֏׏I'H3^MP8c{U8aEר~ǭ7KԺgjDB[`1f=r"jcԵ f鳛0r>*CS4zq͟CTxstܪ[p!mW upքMTS6O@" F?tj'劑5P7-7r5A@?C!&֒MԐr7iR?ZkwoT&)]RWw 54qm2]h $41 x6\CC8mCOjC5@nH cCC!"ѭ58JشcTcCvѡ>Rrcw*OTݔG*N 4@MGCjY9dC+d w y!%@B[&ob#j6m@v.C hcJL(;)b;qhI8SDwR*JJ*+>`ݵr*Jq%ĺY)CSӃˉh6m~(:zæ/bִZ7&ocwG#C@"4 q\QkD)u ;;nILo&!w`Zu-n6.(;æ?K֤2&O1 }2Gz|QǵÏL4O~Җ)).ڈݹUi7ZťR᣷pCv-CkD58ruqȆBv4w  HR[r43i%I9UHJmjF&J5[pTҶ;ځoxܽ'ojo*p{ܤ4$܎bI;H=TyUDv!G&/rH8R#Ia֫* (m>r"MPH"Pϒpە?̭7PH\%bk~b'T+M؀{ɴpCux V$?"߽i\c˷2mC$MɃ65*BRS:qz ! !JH<ު?p~PKݹ~ᨏߜH."/Ȍ ڎF n&,mi!Zf k75z~բA椥>>!G99Fڞ5FD1NR #vkI5-&p%-6϶sSV-OAڰ+;*K;,zթxN uj50ɱkZJqM߂ $cX?7[TK\Q1Pi4=> &~;v&x*JN-hT\I =8i2z ؐ6halkn%Qc(PTdWY`s.C]+g 3|Աnդd1!cj+s'zHWAͩYqaR!iIm(͛U )!ӎ㶢U㶽tc2bpqr{DxCD6Wr$͈N% io G8y?\Di"V@ȦUP]`ժK,'qNt` 24?)4k^:^i!kKԌ챛2ƒESuD hfໃ*BRI/VGmjHڢD=JvQ+j hQ[q\a㊒É7iZ2  \KpE0L3y.ywIՅUts8WTĦ6'  z"S襨nlc1\P:lnofCGJ:cP1tƠ}XL,`Z9:oށHJ?CܸV=HoMn\'D~˟Vֵ7޸2;z? \`=\X?q(숵fJc#yȜHJ{VT{b"/h|4vOoCCR=# ڀ4ѡiPݵjbPWT2yإ$BH"̫Z!:b8 Y#hOԚn1&H!Jq z8U}9!U{Pd1r"!hBIRRP)H s@%Td!KmځNB])I\ Q Grމ(G (țWFcijD K59JR\ameļ/١!ys2D$ܵ)1 Ѐjة5 Q/߂Hr5#|<<> .q;D='u?#"Tvۊ;Wh4q 1qn2NހܛȃډCoRچ=CvHmR$!G&ѣR8OUDpb=$,P J)~!VAȋ95 LT;J'|5VOE465 #UnY9{Q-%NQ0CiTm%TeVLHX}WО-0{خ[D+HڎI7r#^h%jjI&ڔ?"!Tt4ކAȃ ߨ~Hd ۋTZGSpU-jlظZj֨"3*$Dq#hDpʬgG6h\Avz-f=I߽DrG>(!{.R@&2; I6 Yߒ0U+ ǛYƇIuKMoWWxMjM9ORK^r>N"ԴvVjBӛ͊oOsR=3CE^M2UХQ&" dS4GiO"%=y7-F=п8K ~PM 2Phc@p,'-6]-F"=4m01hm/R~3sW $zjhOJX5kY;ż?pilGaCm~ @-k= 8bmφݬD $ʪBW'NCNQDpRCo1#Oq穸-{漑v^a6Nr2Gh,X8YDkVTEG s7Rj!RK&@$Ϲ6"%8$϶Q~h9;_1\X x yK}{GnNKth$(jf܈H9tZ߃皠յ*Be6l ,p`A,.j q{Q E:m2MG<.j%9"pmTZLTwqRzrT$D 6R\ATILBi Ѝ#HR D8*JSqGc\5d:A,fIU&7՛B*b&* D8o_˧ >|JIGy/:]ZN?xw\_(n!bvaMh?p7i\M+ݶ ϱp׉Ť j6 y` P #w* hmpچz- ˞R &-6resKzå3z&48}AB#*/bjN'M@!BT,gLh5ӐUv骂X5b@1"%\X5GsQv ת &hnGUu ح"'7";壸y/rT}>ܒŨ{nGAr "%ūȍ;Pq .dw(Աj m@s"8qPچ6pAbiyY@kGebGH0I!~p}=y)M\6 V^+oZU%wO\0԰3ZhBL~wd> P v|؁T^RRy~TyEj"ک xTHhw$"!cۑH*Zf+܆ܛێŦ'nTA Cr1ȈccDr";H?"}rNQPHrw1Dw8691qT۹ TPƇQ^2{P{nQ>ab;ZSQ^H4v3$į:b3Cf;P$ݚ%=]hK=j# @&** UvպprCn-V"H|Uru0]Epj=z@G&*Z.׽UthlwشZ R4ј&7(%GCӴ#q $HjDE˹'~*(nWYV6b 6Jx1VGUi.&JcH"DwmD!$IJ99RiQU[ɹG'Tbr>jy.ԹE %%{mQZ {H|6nGc#D"r91j69܇UmD q۬?z\A9(%9-J 4CkNnf G YCDF uyj,_JRC%QL8͋IBN\XCԅ#`LpN')e<h ܨ?qPxjnQڈ])b;2DhZ9LHu(9TF2=W} DvODU~BGr FaV60?DH(+ڎeǔPG%A%=A`h))7WZ>o@hjii0%ݤ"Ш@:w߱x^`)vjUqH1pH"޿#61)f?޵SRٵahNlƀŻyWS3Uz~TWiAF9nCZqJQ! ^ jJYrȍXrG"!&kOH(9DjY9 G\8B9=۝\=yh'qCNV**#9 #NסӀDw~%fMP LIbܸx*쉵66+!{#9E kRhEf{oC ~.,~ă!\CƺR[ijD! fj"wMd?T#Q!ZsGdGMn~IZJLF1~A;+RV~itĹZoR .#c3G@P\/izm5G1*C2۩4D@{+#cդUfܸu3O[Se'yt͸fGRdb[zmR\g!;G' 8#ICfE?\^NCryX*/j#Im!6iG!RF5ؿ Q}b01=cB!=H.hZ)nj4Z>#- GFZhC=W'caC\=QΩ8=W[ SMiFF:rZC$ac|U#~%HI}UoPI;T[XLDG"!⎈-INZMCTچw ӎ[|6X\#N<(*HmD}#o!r12TU⬥'t(L89yZ\K}wOM5){޵n%14Kbu>%[H{l2&Wg6ogt xHf8eSڤ1cT ~Dj""'!*F@+vԉB\Cn۴J_-ظXh#QLI*eITLݢDr;~R'gjMU$D?BUnGrpu͊MȍpD=j_d&[ HU$B\Xƫvw$O$1*#\ND1%HL\_@h 8#r]rǖתFm~Px9  WjBv /&A54&M胯E`beI#ڪxZFNh  V\r8~hmzE]H];>"r8WdmDi21W6b8kX5R"EHYIRyO( r5ʸz}!ZMQ$2oi=%]|G/!ڑukfVoTÜ~rsL%K a&DZp֟W6͉(mV;&mT $\T4R;O^G!AyE Ԕ]9:z2\BJOޏNrۙU =jZxjn3i!%uuPv{f;J&3pE@/׵ cbAdŊ<`:ZZmc YūTUm6}Z85W`>kZvNpUB9ꒌԇ21c(5V{֛Or@C;kjR0_o (W\gUTD0x1jg\uhN$[\5]YBJh)".C=|CG$"IGKvwG$˶&[!.R"mܿ(Yn(Jچ2ET'\{IwEx#$@yGTb;dssAobk1ň܏jj65o/׊?Sc&.FUgRْМzaH 9ktVf=  pS@h1øQr".(B~GM#oz!Sm⸔Ǧmu\ç(oMu$%#X<FRF#3r6Q>*O8)F9L:]B. yV-H=hTPEdaekjݪHv⣋T#j~1`K7;jcXLpj(p =7đq8<ܵ6 S7 /5@껆ccDvBb]9mBK#Ց[ %A$J8 6Ku*ry0] MqEA$KũjD..BCJTz~fH:В\PJ{ pٹީ4z(fRHAz}Z g)-ty.!5uur1pDuB<-LG!#܈r9 D19EmGoj#!<)۶~ҽT'TP<@!ZA[ݵK}Ip|*Ay2pbiF^~1i<3Z%^̘]/Oĝ[ZC0A]u'QlSImDw^Sbv[G7Um!IUqNrQDp 5cWmC7ha5۩mT @qwosW۷Z#G!)r%r' R9 صR&sFb|E +51k!y(Mچmu"U{B߱zL0x -Ab=#j$pIR7n#m0P7R(w1yBjb0O&zԚq6DpQ?Cv3$$öQhmV%غIaMԶWũ;TYSRjcC8j#1IxQRCըbߊ[ f,KOvȟt$u|މ>-Gm]fSL*ɮ5AᖭTt=ֺ6DŚ] m@>\s%!ɿv*B2.MG^56ùUE>g6k:UIdd!j]JɯBHڔ5UeNQC})ULEb*Kr65pIo!TR7P8mHݶnuYŧvvq0k_MKJA{T2D&J^N -oT:TT7Ua%"10#5kZTީ:j087bW8~z!*;s#cs4 {oCG'#WUIl#o{4Kzhm143t-I5$Z1_]l`9#Z;%pօVbކ.~WPN)C7-[Pf{8KC2ǭd5PjH'MqFPԉR6l=M7šqLmr{0Zinĺy!q-VVi{]6E_Qi$zp~` iP5Vӕzzo) vܯ.,&ͯz}HCDD6qZ:m,Q**99Hj%UX:\]y*4}j#?7#d8ܘ6#rCAڞЎo VՄgT+Z֒J֚GsqqN%yGڮmRQ0ruvLTMCq#s5zm.qVѺtG6hJ:~ Ὃ8Gu}%0JE۞ʗWkpLSA&7#3eHDm!BfۼsRN9P u"gP%YVO8D,ZDG|;kB jag'רt:VXB Nw{1تBShwmr ͏Z/iEfy⢈F/j#OnQR6$BvǃPI9hzmp), G-Uu[P(j`Ybթ\65Uڠ0"މHn˭j}nnE#?(a1T+\R1f$UМNFi lkњB]i849Zm9)u-442ԁP }ūDDr&*$G"5uM-4{QMgMZf-Q0@ƩZwT 2nT;b"9>2 T;Q-܇o$=Q":[)$Un$]YȄtuI"*u z=7b<LAq+GcƉ|qzF݋m\ĂWqEKQ(mC ;H+cy!mGb0܉[滙/;,QۏF"SVw?ĺWn`@ jk.wKWTrܖIZr` Wl/Rn6ܼikH9SAR0Thodu{Uzx.Wb! rvx`)ȇn-"8"4FH;]¸WGVP;fv:`ӎpީ 7eɤچ>DhțL Rd#i.L7cT%5 IiH5Zw\Yb-%x1q /OoAnp'=MЇs>D$܈ imbv`f̚ɻKV0bUt-=ELtraSPO{޺zw`43Q 8-vR4Zm8S Dڴ GzZ@jHMg䵝7 Ԑ+ $U9)ƳhV+Foc"QL|kԈd޺~%(ǩy7V:0=0zjP@Yú5 ,#.&5QLB̘.!xAǭ7X eZu\~DZk'wkUZ5pǠjBoopeE]΋g4!qCrE!Bb)ߍ+m$$|Z13z~кWT6G Śj*G$F*:;u2;^okZ! fɲ Im 1f>rùQ({X5Ɓ P-_bA\=og:OMՅK܎$HZז}?iQAryHDnNm]w*G>9"7rph$9;ʕi5DJ\nFnچB9 7w~ 7-&Z\% )P_9TK7[KڴQU]N&CCު%پkEG{=8BMޏJzԎj$æM7oغ=6mQ$VKH^sgA颮6kI6ZzMj e^j2/{6ja? ĸM3DmRkJFW?xޘnCz})5-A}㡨ՑP)OMZN_]8D{ 2N~\1wb#!";#z6xqچDr'qR.CCCj""z6[&#W .Q_Hem9qE OQL1)SaqVzgաq&Y`b;I# hmCLL@Ua-hJ6*|j*M"C5I4*nlUEQC]ņ9}^;PHC5sh#@$;x7M{O&wy;I3DKϩkV\cO4 s$ 1LTxΤ..ۜR3Zy J2>r]p &x=m⽣D;+ڤB"(2r.;w1&7ڻ?\҆ 5 S4$gܩ4ӌxMsvY!]1AVi `A&=w!#\OjԸ\b=`Klc&( ]ף܋{D7nK  ShCW҂$qjW 7TGԪp$ڵZMiPRzKHcT HʝZ:Q^oе]7Vk.4:Jb`}4&T2W$' MS-5O㎟.s#Zr}9ۑȸUXI Z/fz=f8ȩR:rLLVad&,RJp6(򽴛 Mt<9Qiw3{؎m{Z1I)L7i WOF*}$]Qo.cjARx ?MkGjN@ BAޫ 'OFPp3c*8SH1i9aغsnz =Zm`;oNouI dzd݋5@C>}PpJ8qH>D{WpC*}莫OXL޵&-p :*ZFw' HB]UdGYS6cGLTi/|ԅF6jr=&*NJ=>xAԉjqI8=hQ+ܧ%+={Z.QDRGr MKITM bfY;o5&Ӕua=*f\aZ0zKP#aCm-=VW}Bu'}ëPhؽܤܤurq!SUzZ|[*V0!5A 69D977*VvXD 핮G*n^ↆj#G#<6+ĶZ%p2mx p `1^ICOF qޡI j5:zcfEpփu6[{ޏĚHMnLc犠ԩ4_ŎSf׭E]NB<&Wzl ^J&A}C t!G4-KOO<bP¥kRȍ{Uhz)Oԭ'TR -E iM=qގBUfscW M߹qEEM)4>q*]] _`2^ZnT]f(GއPW:o+ 8=X⊚%16k{'ОN]U܁T:LJjf`*[} 0v4Fc t`ԐVUT a} El0Z? PSNlfng܏OAptaMf,Zi$X+m4}cV-WL0>t(Z uT͞⁍jv-v`Zs_q\Pmw;(`6f~nZ-A)J14Aɽr /zG$+PsZ.GtO|"q@AgUCqɫ ?jt7f*6<تxR#RI%@vw[;̉Jx;MpҎ[*5hpP1ӏ'r"q 99E Ũ$r[FJGmQB!ۊ!K'"絈~YO]F_) &֍^w"Q)ȀA傤q7-ŪE40Vpr8%Gy+éT(x]`?09 %HMeKeT4XGʀ5w;rI씲@j7mDNCR$2*0qR8۹u`-RI\8 ȡT.`oZH49؇Uq  rhpAlG~lr'%Gs޿ \|ށXNu0k"U-.6 TIWh鱸<]PVZ1H 4z7P Lzj1ZhO#IѐuC޵5 [LԀ0Ӈ7.DN{. #ZAUa9Cĩot |ގGt)IqMYaZME27ޞۆP <#C z)rm֛ޮmDI\ژ8#؆9BTUu+5QCBcG*'OnMȃ$]V6OTT6R:Ok]u$Z'~/ hzI5K{֤`XpɒH@aM/黷&ŻY?}IHbJqhǞOii3XIfKR*Fjoȼx}t4R5;࿉~!(|p%QJ\;'I%5fߛi๩P ܸS*GEވ0n!hux/S\=q5 e9=^?骨6 ??gܵ<#~ ZJpob>K\jbk> szK~f Ulr~%uWM{OPAއH:$vj%1=؆B[3G+o &ŤdmpHB[&QV9mC6 { 4S9Ɯc֏CILJѱhZ:1YR ߕq~%H.$)z1r9+q6ui5_дs 'xs7fz Jq4eDEUn>FD&;הWq;Ť&e$ԵpIy$[T pGRԴ4xL-7pz' jU[{-v}E8 R CjDm?ʾ\I #[u ڎMZcSZ ok~-MYNY ԴăZq"8xxnV5kG)XHA^ ͛^d[ bԪ*Zi恫R[$4 S53s)r2e^W4S%wlݙ]N*$}P)~<65R79HqQ^6Cn-ܪ"y)! 7h$%j6!'P[qAKck7fδ=CMp'hTcZbM)LJsyq Pj">=I)JrG荨m#Hm.Co";rw!jwSDq>~JȊcGv.RG+X#fA#ڻ.({7#qCPëmW;mڏK%y#Uu!6wc7ې*'#ݜ'F%,Zq8dA"nCq95Exr"'9zr^H'Gw*D{G2;sBmoTd eRQxrj;G'n@pڃqشRUCGMFLwh.p;]Aۂ> m$y!FcsU] ,yfKd0DZY9Z i;\pOs%-,{jHX\:bq+ihSAВ61C૨j`VFffrH<*p.E#R5Km=&jwRZ9 PivS6j,"8nVaIB !yO)2=ũV'5E0ި:5j= /4oE]#IU xj"r<1CQjlЊevrW`_ PXXZkf8&6i&$H-XPN_Zеjɮ2h8ږ=zTPܓ 2\աPީLF}놵 [OQzk.Ok@=5V?_0pc9kZoZ1뿽iϷ9#e٧Q*Kw )O~BڪYZ/hQog zxlI#ec*UlTä1^?=E4R[5HMp}9jc5ҒΓD:{ߵӛHb$=Hۦ#f/r.P%;}+]X]>{&j;P!:rs/zGꟛ߽UY2^J1&f3p+H- e\Jm?V{-cGԎO~xn܈2d-D@ Na Ԝzm6 Lo!IqV%XUAnիVkڣD78cc}Cq.8Y1p^:4f(vMhuDAyFpzz@H cNEH#oĈ=o !ykM--PRR Դ پoD l蠳YqUnT{"[LALJZ}{8MG$]jq%JK5V׮-M:Q@CX-'CP"T7gT4:QɤC6DT 8^Ƀ ش* |:JD{v?j qUB&g5E EH*xqG67Ej\oǪZ 8-6zk̞gthc[RT-(Uה.()nS"'ZMuY4Qb5嬎 b[ YZ1Byq,T"OD ":RXmYhCmxNAHSk6+d#pɦި'}wڱ ڤyUspDvN^^AQ&J(mMjCwR1vD6$ͿZI #%ȸy!Ԋ!7Q #FnrD!ڻ SH!r]5 QDnDOTwE1=^M7=,(~jG$uʒ1[1\5Ah#ԎO@'ϐuhuziSfobԩuzbPZu*WS\芏";ҏ|6 (W7 @jM.Em~ؑ7ZV*&hQ"!Drrvw^L8]2|\P*OQGi3jr~!Diqy|Aw ԅpss^MPԪZjb2{&bDy)fWUfpZjB1njI fՐ-!2Њ"""(c=2b(EG.H:K#mTj+.cUUZZ%E$8;؇Uh(;knC\5~R#M 2lG5YBAl@ ?'bH&Hii dhpZNO6jW2,D'* H-PKB<%?j8oV nWR[54(Vp.6UԺNksR:zB9/͑<[qiGފ~!5Wa3%QGy ۳R!&mzySԍCF@ZYZSC肳ILBz[VUH ʻ4_\CcR9{}- TI #UW7?rjX Cy˃kE؇|gUue-ƒG=*O, jH.u.eL0A7kZWrr٨c=tjX7hIY5H顲{VBL{og'jte=f2rx󒗬P2lc[$(cLY cİ&_SJji>obx~y{Sդ[bM~'iD)om pyr2n5~-RSv.`Kihk.n܈9y&5nh>"9IHx 4q0mlZxz*UlFTyD& B:ʴђ#LϚ8z =\'[0{I`L^]mKNqf{#.%Jbj3|;-Jq gRȅE]'~}WHv?aM\F^=tZjU7L >UI#c6R;*@akf_7jZ]_1TU% clkPjNim\gU a_RK*8A_׊aY):~]ooy~W4EB=Q#-$`-sAMa 1pֱHZkDZR^,i(u,67D*BjR4:x|j5+B=RVj5'b8.+y8ihɿ_3Fv0޸j:yϜTI=?)ii%GR3-KP8*MX3SGhI\.Eu3$;r?Ig؉Nr c)N%@,Y}?~ bS'qv]Pڑʞ?U/ .b=G~1F9} #H* bj>&Y]McVm)Єs{W kUz*IV 4='M6f{ֵ Yptx,9T:pW ;%ŕu*a/TNLګ*6 D%0"2h1l6q:$;eAJZ=޴bmp@,Chg!:Ş @:`RlsǃrSSMkIj)FzɻމB2GI.%SR֥@V` R*I$C1}h9T ҈cɚrv_u̷XsZqTٿU7PmZI&qjyq~1&x6SJ (p{hT5`CV s֙O~ᑇ`Z: MmT}y Zx}Hf։N& Cv*qyoZKi)ZEQf8nZuafoZ._PD5 Tt&v RJJ zY:@g/W]-Sz94#TԇN٘y.sպrQLMN=HYM8!HKݟq%Qc>Ţm Q(N_c0C%1C7SZԝlɃ}}ގC7U={okk$6=mNBl%T׽iQ\5AsbA(۹\CjU G""D Ffoִ|L6}Qxj\(Dq'("!Ӟ(g&w=WYWSUPIěʿI)0pQa1.dh3މNCWM !]phIL׎l(=030ډXc aUf7^efIN 4Y?z@JNIf#J@njzNYkZԪk(k]mJǂ\nڑϽo) dS-OH6Ps $s֊:JbTT% O'gZ-VRrp2Ys{OZMU!mVpDmZ-(5.$cǿMn/uzqÓdصcWOi<nC(:wZ ajM-W~Oպ6.R1RTR[Q9zp&{IQHKydب(m[I=GTҍ0Pm=!&*T(KUK-7Rmp1Hv;C kUtͧbi$Blrx5Ks|B ܆qwmm$BHehpGԪ`$0m6hz;[.LH& D;rj'DԹH ĈʆD!9ېcRbRI3ը OJ[.#1T E2u$bc#WЌ uU8 v^Z.MGJ1* z6֏ޑ =y=H%PB1*FCԆg{(r&]%UR g&,97iڤ<!nkZҎҨGr%˖>1C"#N 5Hݹ麜@d3#'*~lp۹D:B2.%{H6ܪûrԩn-vMeQ7{FAӎ73qVSA R2 F;U% ò*FI"#E٠7!$pm@5!Ȏ9b&]؇r;1j95dmru%7QSz'kH!G V&"|TBC 8/hX!VOT,& dhbd5.3?4@c&4KO9z{kB$MBŔLZw- O%wླྀ.b>;!i[ZL~Fny6r*"'u[1.sL!=ʯRTWtk 7jpgеwdLDp$A؆E~!&HASxpVJZbT9hF HJy=Ԗz8Ghڴ-hH|2Vi!=SI\Aj&_GWL'3#B{ب(I lsm ElYG DDq$246 `چAʮj"'ok߱;HUWJHrwHѢ[TGG DqnMReZM=UjD38˷&)d?i #ePڨ;{-Bof{Ss7* 1ۧ1/Az#wr""""~FB9PV';x9dHw _RcT~ [ q)rh3Ģm4"x3q PfE}Xt.!r~C!,1KiQQ-{QIbb#yq W;e}?ͯC ܈UJrrrCCD1ޏrVҒ{b%TRe zԜ>`Uq3.ڨ*+U"ub!)g6}aT.vnG޵j[Vɏ֢1\.JyoDnĈȫE1"AIq$֛Q(V'"rjC1";mVq^=5cN6+h:hص <8!Ռ$&OZ*zimF硸 r^nݹ11Q꺛Y]8Pש0jnVM.g(c=ju'q@* =`h(%돪+uARTRY6nfǭ'qKeQI4c" ow֥9;k(8SlŤw (Ap5My[ ;MuICVJ bzI֋]kenšpWnGl85U&mR܆?` Ќm 5W[าA* TfWn^(d%Gv TٹqBn (شS!{/Z.?T+EjFf܊(i`nbjb_!j+Gr(*Bqރ u=E3ɛ46R"HnDk][܇P=iJAßдQ<6 jo~qQoR2 Z0(~sz@N~hzƄ>+լ8|)G~!vMHodJN1߭=yRf6>O}+/Ut`c_U歙ZEgT*^ a !ԎZvYށKPГ7Wyu =H3&a{Q H2?/LPچG0"OŅBBfM䇛~nI<35xqTI/:1-JZhG?~(Jjpۈ`=Rj@6U^:p ǽk\M8aD|P]a Tob (?wDL7kȆѸsk?WCF $D;l^.C'mZLN(! xɱ̃u2}E8i3A4#PQjF_pu#yQ :yz>1TRoUuZBfpDtڙ\c͌Cֵ.ٔE3Umfc@76GcmbumMLtԶWA2*Fp+0zqە%E!ox6=}?ZhftC扫UN< HG eUuW~=<CP2b*,U@4B#}/M%WM%F*P#d*2RH2dikK>|}GQ}})BLUd࣢41jR gR#H8O'm@ %i? 4}@p5 $G)Gd4ODw45(\ŨCj#vw.ܔv k9sbIecK7FM#!MIKl7ljo-6 -n*ab;x4x8jA*Z#Xݯ#؀nHnG&'#飉 PJޫRS(>]>S6.P_jadɃձD3doaQǒw &upypSܨ$PÛBF=RqFPtޭ>ĦD7{޸{xSp*';A:AAg{D6#.%-N&o{4]Rک4Fo1jRR4:}ֻѽ5]M3އZ^5LGD* Sjea"թTU4W3ZOq5M{?'\]Ifuǿ{~A#ԇT՘eQIOQAfgk2bbPBL!GSz>&ЅQQO-A0k;5Ii 1mCjrj.Dq1 .%LCRobjYL! MAax#b o 2g@1}Zh?b`ѡ#=@A8?_bC(ipuG8B05oIS9RPi@jzUCTԒ_Tb:Rec3kPpwҜNvebqƒ^EUee5b^7Po|;|B2Fc~w&5I]Ԇ°Dۣ}K VF3UuA{Tci5(h*Fᅷ7ю7bи5Sk\3fkRi*[Q\8Aq8-fMqzjJ 1 mx-JbyB6r+fcl7umaMHv}jp#G55޺STSx=iZM )v;LHJgz n9"8|Uq間PI[އ1$ʲE)HgpA &bը.Z_L[Tzn#U}5ar#ŻP݋Tp{<(iݨ2C&REعUmW7!851xGHQ9/6Dr#EP{b;yCL o;JNGmY oD&.Ck>9* wI꒔~11wAM{.ivpCF64zn&,CnJD։OnjŨCvIL5Id#^Ԯ,!oMZN 7U#LpC&\A ISskɂ!_w%8,Hqrjia؁O*KqCvH_vksyH~~}R˝7GDf~9j64bժ!SRWUMjy%ORF/Ā S+7v/b8#s7RkTPǽiMUE0 uIn szv u~MmC"X9 F1hZrN~de3 -L@h45# mHܚI kTRCCCj.}@ǹc3bOmiԉX2K C&M]0Mj+( ztяې@VR,pr%Fжڐ\j(.7qI QE09*7Mԫ1> zn]9LW3ZmAq3jɱ}L<puTJ_U50m0gu=UARJY8I1\u*raX1]`4bԵR1_߿LFfjKvQ(8eԍTzmOif/_TX KǀW[h0ūq&> {pqUA÷k"<0ZWBxoȈţwF1 ֻAS?<7ЇO3 Y${Cژ2yTRc*A4>LWQHB4[V&.n}ZOHb&Ap\f#Qظc_dU\:ho ֥O_noi~ s%A\ P5M4$&K3Ե=Xf#PƦb*G7 E=zOǫ:`J {ZkK:gPUkU-!{ިFٺǪMVpM E0?}&[]5"Kä矽~9i:ocȚ(iSx2pfOM@{?tɩVokqd] ѓzoj/nh치AlaflZHJ_/܍!gYM=Z- ).̘!E7a)׎o_½kR!S]]HD/SֵjRS4t3fRUM 5oj4-B!R~obQ7|V .b%Wơ1C ~$6Dn;ڸ#?[/#HHL\H#ͪ#hܤqRB"9 9JzMKgm]# AR-Q~"ޯDUdBM1ËK9)nёø?aɻP"!i5CR<ǵr!ŤD=pb4.έз8-v;qގ fj0cp-hǒFlR!1ͨ&H~HRż*-DnH$JdjE\ɡ [XA_ i MӒTC2* œ6"i> jwg֫44#f By* j R0%=i4:h 73Uͨzj-f {֚cֆ°{}&M,1o]dU2$â]gk)B[Zjj;f=Uԩa^lQ<NTQ)F6|)Bchz C]y> ]Pcb(bVpmC #^=X.RmdC؇lp KjTa5.Zi4yQAӒw\8I`vy}mZ]Ij`#p\B:HK]'YZGLCS^eTB4 ͋M X&^k$#H3@0lz֨kiu!5wR65f=lUīh2*@6ގ1@DVRnqqTl$U͸~#44G/r~yDrCv7EC)r(z$4K}G]5l|S{!ACjh$QSP籋B0+RRjN&n94[AD, >fNGnVDvMC1s$GnCCsr%4h Dݪ?%HcjJ1އT96Pp3ԺMtͷ7GE8&#JI>z pѱ=NG wm&z3TbTSD4=QݦSKRnCHF8ҋj*J(jGGnDX-XOmz=8;ٹĊjBO؁rq rna!{kPk˧ܪJ>!^l21#j)8}QPKrی<æ4g-H<}a'MV8=7Q*&`r `mnq|qۘE^mZ"ꮔ90<{֚o8OzWR0v*hO C LTLPI;2[ZWRН&b+>2N&鷏syúIj0# ~=q/K*MpWS{HfCC j:'*1ٻ = cPIDGvJ$7mR(o]R?t_丣K!S7T?`_p) lpI9j 1cRK?KŢzZE$XS3pECqԄ T['AJA!ez.JRi'{MjTk(3荴6fR]~ ֨xha ݹ܇3Hѕ]EJcQ++RxAUa=5b0\>.u,#;/U X*Ԛq44m*2x.s6=k'9~ zֿ媚ʭHp21KEYKek*ZעUk5/bGG1-7"ShO4}P&p& % Zkx?V5.쇽ʁЌIXtؘPuJI$a|4]vsvIY@#~&j '\z5Cn@g 7&DCӒ٪lWq{P͓ǚP\b-UT5$ In:b5HL6j"z֍ӟ Z֖yQU5_\NP]dIJx @a>s0tD&xlUZ˗ ˷%|Aܮش Wb$haS e#Dm@zH}u)\dqiH ia6lZNlJu0N p[hT8AH|p2ARWP B8 RQ*ոZǽ7Eԩxb?Lk;ud FJsIWx}sEiJ6i.H7MFHR=6 g1!8+'- VaھINZmS)yL&iE!hG^<MCin@)PJ%a0z6I.ŢV%E8c&ܧ8}fem5m44:q~n˳%>o_ti`ũR5E1C@!az=H$'NmFbxd#ثG еjT4o{]Y)ꋿb&F!ܵV#8$*ė%) <޸y(a e'B8j+c|mZڼQ3~! f5-4[&~0mMp(4J"B.!QsƉFܭD]TD!9R4r! nMQԇJA8^v1neTw" y+ b藤DGryFb:zh9rTͬ$MW0-5I1*Gu.\v ~hupI8"[O$!iTF~-ڈ6Cr#rC]nCv=mb**;QȼPڥIK5-ܼ[}>RG񼿥p7٨01kC?kTD[I[C_Ֆ}R]m7'*XեR-(3U$[LO_-`up6=뇴>1ټ}WTT3~U^UTD{}iG$~sC%%g^tYCju [!HϭIu%u.JR~^L@h\oH5pI#fm5hv!pA"i{U}I)E? ܆89jkN}G~4oشi"ql\QR^oDw~HbE#bF?Rwl?شpZI1iԍTwh7:zi4q Q%OL65q A*e{Z/֬BHٹ\U|ۓHɥ@i/rh܀܆5Wn7qUVOVp"LiU{~bvMۑ\!䚈O46"/rԶrCP8ERuHشᡐri^$6:"aZ;֢ p\=N jz=\'Ě-<`cִ:Sċt3U.jU#}\'n&y#J+.u{V/!.}rk]Xv9IvlZ2 fUd?bָ5D _nA"7W'uũZq#BX}hIކiyӜvKj{Aī+5b +֛c&&"Znm\"dUt܇PFvB՝Al|>wp{b&vŔ;H?*ƪkM}ޘ!Mjqz}b#v^U'54,pbn)$Tn!)RpZ#i6*MsB>H3ɢP'Yooq&ʌ W 5+>\6w\I%H\ C No4nn~qڸ彨 ٱiép{gei5WAtfl{]>.RT Pm,z H'4D!5* o! b ^H-YԕģI7Utt.2UVxÜM5a6g;OUnMM>)Qh7 ߼jt%ͻ7>܀{T&$GW!bJzb4Щ5"HВl2}CT0cT')8*8R-ZC'h&$L:O4:ScTnjq~.%xzT$y߱UzbI qBBD˚2Ә_pG%NU?D/pԚu;wD\A"ԇĤLG@8:WͶ?BIL2Tp|)@&nbj C{ CN}wW` dk"[RW2\ʂh!OG>*DK6zXJZahIuÕDMUGAa&_civ_֢5\mHkw"\ *M@5Xwo֮R9%8;|1 z5/Uc'O$4FDn7/.D$6rqj' pC+GE$46####v ݚMDab⊍h] ] 5no^|&EeB_zI'5N Ft5,TJQOfj*ִ͇@bCzGg}MWO|2U?W$ ؿ4zj4n62~+OHAHl%7h#w ӕlf*MUMVZ-R>5oR8X;DnM@.**( Hd9t# LFDqYRU#ۑ0@ ڛGC":?y>a_C&1iO\5B1ީ< +w}C٩#욫]\Unŵ3ZeؿS-b<=q@qDbi Gwֈ>ߒԝu1#9\خ=G(w9W8WUȎ;Iy.KCˈ+ܩ#bvꇪ=k4dH 5uAݗ?c޵'R StLUBר6j橕Ix{Ty5C+) SԱ\QF;q>LFv.! bu$kRIԦx-xb000Zi>Zm)$ Cp˙9߶m' ! G eIPkV*ZԧBCb.4d+c~ RMj{`i*d IU(RlM!"1.,PPvA m1 LF9 JY^&%90Cp6 CpH C9b-*vA˖QN侅IjJa'uɶ<miXF1D{۩T1'X釧޵nv i#uHתCRu (!m@䉨y7 ckZmlXN8u+P͉*l:ޣ sEx9ހJBH͋R #X!gQ]-Xj<*4_J ]܆:JhTkjH"6繋Rk T, Ar;٦xIß؀ȄVNGgjN'mk0@$\LBح2"XnO$\^-H5uDL3C2Mm0 Uc1Ru W#~Q r$RY7ZBm$7GW]@2Wh}KƏD{rza{)Ɉ@Q5'!1*J%k{gWV6 gITD^ͪ4| ue\40ocؿC=lfSvV=4> {~4:Ǥf׊8A)jxC O`{ru{)h,vOTn-h7GKM9cPM|]_P2bfPM#ؿEoxz~$wy~׉yCu؆ڇPqUnH@{~mi{wHq _RS RG|: ÷eGP?ˆ)jA E @md&n>5ejƯHS\:q/D%ݝ?4 >Ω~D K|ӑ@END:?HMT?Ov*@SaT3i DZtiD,nZCSle%q!C^6ƠDq%ԡn'-Hc-=_hwniFRiutV2!o WGIMPv RI㚠eb$^- V.zmJ [ILףorhw8T뛁XHF4MRڬH]n/POP+`頍P!PSOlUt#/XYJ@-6`b!{dJ!7"mC$V ;P?cQ9E x)b@ #GGr\N99 7,Z=Uc'ۋGĂॊmi ֆ~7QQMAMzzH?r6Qh"G-4ۋ*GcqG%7nCCjCV<͍RRDDrP۷(Grao)k{\KtPUA? mDn#ʬ=f墒hXm{& qTjUfmSv9JEI\w., SyB*P sSYC]WL`WKǮn F1V.т; 脾_ڃ4A_b2U?b zMVt#3-wO'}\nAՈ5W"ͨU^-G6@6k HbPqE ܈ѕʮ%9K& wG⤆C.riIM5M PJ5OW/AkKlZm-Pb R8ܣ";*&|M4r\?xU yBܨ _No5"jZAO֊J!R.RCo;Ԃ w3T:%ZMAJavC!(!³c4 : Ts޴-P prVp5 S^r+j#x-k^8d#rpzuK՟}MGކţGԴ*1xkRU0k #rj5ީ =QԋQKͱ o4%bl#{1HKR8=<< M*GXaq `$D%{VjI;jSsry4kZnm꒎G(['uK$]zN2bA-1H:ߚ2{ wlRBٹ#^*J\pmЩ+8;~S!HH%ĭ=ũUh&:RF9UջoDZs[j]KS Ӏg0=!Y%rIQwWL- lSruڕ}H '-kԇY𺷽Qi$ժi~k745b9qfWZӈVo5mغHm zx~M .qoyFqq~xs8:QԑRTO xjUö2eqWf͟Z!47#7i6z>AS{ԝz*w֛B;tg D#[ ļkoGMOn#.Dk{jȄ֛G@Cs[tb&_Zbm6sZmFSP2֬M y1E u89[ݵ؉TB w-1))ZKp$#f{%E%5AJ2~nT!F2N"[+Fkߙ! f 2:Y*R ,GԺvd܉ZN9扥ZQشCEY\{Lgh-=9I WnUzNSTV#7$}SbBbm`ZL^({I *V1My&dz%dQ$m@Kv{)&ۇ`T/vGSh<ɉKA}⼘1vO a0C v*$@-}\UAѓ+$Ghg; M /GH&y|;j E]@1J5\#qDDJA$Sw MhO"C#yi 5ӎ߱w\ ./QCjTqg)$Nq$KC/$6j?L;RCn0=nWo{P1䆥nC!w!6aZo K~LH& ɸ9W !-9+QUq!g\/G?D}CjxV?+eVYRG˜/&MC^l)_)M B1:R8a;[~Ck/Spr"9 !hoT[L?\WTjT5_-psNx1 ju==K6~TfmGujmB-1&0ЇP?,y7nCᜉM6 DpT-5nCB-u- B78-57AP+94O& xkH@t`_1i-3 #$qH";JݷDkw*D8qe=X6иam1W>HWPp-_ UjD78ZinjW1"vh-KT'Q^CC@RbTa9T%l!xtcq>ruAɵ3Z+mfh%HIR6:j=Ȏ{ިGpm{IRo5jaP:h5i.ť@vC*FAD5prJBE '1 kŨ"Է[Umd܁T6VOiJڈC@AƈߚBEvDqVLQچA UN\2'ɪRкS`#\.(qTU'涱p$JC'pԲo!Y\# _[mUwaI/q AQ)3WT-g<}N{T1CqQ$5IXgjuSlX M$P9ˎǭtn:oz5 Q| k?]J9{]uj0\=KTҏZNI#ɱi5=sZo5U yKEԋYGjUT*HcNzĩ5AOE9;#,8S;' mrrQ+*iMEުf]yWVA!jEh7^ hsb6 b97sU5}+_z 魧% 7\/5Ω4A4e-wTՈB`BU.7sP~ z=X:mآQPI17P@Kczm]N 1AC^*ZIoĩZ 8lz%5IVzKnsz׻3z1d-%bq);Z/lC[og{.G pwFƪMHWs+6 :7q@ Řt$O Q5_c6};|QmXq k<nT1HlgޏQziUɽ N=pȥWSJ"4su4mVOuboLo] \O ^=@ěYWkTU/`;)-W=V&PRJwl{@ %7GS;#ZwT/.Zڑ !.GF>ɽe0d m]=%MPm'U]v*|$Cۂh cQA٦mD1Hqb!6tШlmԀ) iF?6 j{?o!U ش΀1`CM4@ˋ֛rNCMuTEPAx ށ UT\@1"m؆A\^O b/L7[l@v^Hn!?K^A[>!_z3kBR{B zb ]ß؇YEHwۘH?VASOQzN!EkZoOY>}Z0xLj?M&:9vZ^} =Vl@GQIiP)F&k I7s;&pyPVۇ~ $,Cm,@1]CnWP++y*r܈Ȕr?qGb=)!m+h^N^"8ECnBIw#\/Ԏ(̈Dv*\#oJJ84hJX sUɢP6'Vjת_ïM>sC,! b5\Ժ:Z]~nf#G V)xf5O1F‡}|4BmT UR6OdͦM(c,kIdŜMQ7ܴ]7K%W,\oYadOe]l7d!Z֊{}IN ᮰3>dzi: iK-? Z/ PP$R{,\KSLҳdU&1ba]&kë1?3DX"+"%>nV!7. kڊiЛpPuZML὞LTq#K6UoMՅԉ9kM4t~xLSngդq ^DrpZ-a:orv1BcDE"`[}Fj֛gbCx-u rOUaBHC%( lTԨ[l^v-5OM6Mwz9~ <[ށYi?$qՎ]lZ.& t!Ո)ۛ G#ش*Kz{hคǏ\F9֬0\uI { %i4~f 鷴B(jԛ# >p5gZŦt "=-&5;ۚ>V*`b>C|nnU8wem*,-ȋŪX/b$lleRr[Id;}wR>~r1}sbG URcUmXHqirb0%9-dzթжo \!6,Cu}&ӫ$OHCwU,4uDɄT u?ZfQ^@P6=jNe-Lq pd4}?rzܯm6?ڵ*]wHsjBlT]n !#Tt|*Bi=ApUu0`&:jRa/ĴU]޿7z8@g|,ItQBT cC)?CԨ*u*A؈= R5.~jBkCN8kU\}RMl$>"s42nwj:?ت|zy!MPYW8.Zb Rx!#X lmǰ+#H7bu7ۓ֥5P*_o̐ j#L!t6m?Zwd& c ǽfK;cZS:ls*hT.,{;ވ㉾j!o 3UdA 5<:Jg7@ _TBB{YҢ?cPm@ XATC%1St#rkIomm?QGn2ZWrd7!ܗ-KMt o VAڃ6Mv*cYIM զޯP\jM vjGhMr=8cI rW)H!Y7'DqrGr96mT๽@ I jڢxݛQjqjr2nCkj*Hmܽ+=(^EHOF(*#I# D5DoIIGTZX5`i3ƇPK 5?o?YWtwCs=CЇRIB7JFf <{O UZ65k p?g!Q@ubSq$$\N18s_RH}꒣ oD/&z$DEDj#}CCR444?'""))zKU1pkP~,ZiRS[=ZGָŒbvF_-.䦫=zRO4d}xЍ*RSjA JO4KcopD!$M`) XkR|&\G{;2$IT/MŽgZhC*JLJs\a]IAHo=PSHG\+\A7߽kUǦ%MU-n83U ZI?ZMgfZ1|6$r|J^IAh47$:.iP hFMQ\9mR$7"8AWT8pMCrچ?CC"2J9 ĕTqj Ol2Aj!GȅZiRiQHxT|L.IʐA'lGoGoڎBIHdLAn"Enڣm$z{jX*Դ{ڟ8Nj$D$CH `@^()I*\aOާ$M"np489hxT-gT9)?. RԪ+{kj* @$YVQF/ZF^Tn")q3\C]lc?شSu־05KL7cmǔ;r'i"m8v.>ь5$61]ZZ.@G~$9K<9P8()"7I^81qWL 8oW5bh};I73{%85#Ը$tzKEU&I*2;MuٸC !\TaS0Dğ- #m^0&jd~IP fh:heb*q}s(SS,ݨ s&ZpdcXAɼFqH?hmYj5 > B1RpSVq f1kZ)1ATT\^д5@&TF)mMyꂜ;sr8jZC0KS5VIdC,H}bp-j8"=n,;V3u8*vbIիBLO{?˨  n&nf2~`؆2 R0 7ru T$1TyZja^N(5?xݚ7h|!ZWGWԑavo{pj~r{ب{;Qs=jCе*jOIQ@376x}t4Mvazu g؉CMԪj>-$Z/ 8%RGxt]7M Τc A9[56\͏ZևBe!7&݇o4b#DCWjH3VF}b5m4d0zHTv- XAbgiQ$TO*싽U߮i?^Pm)ODp"B ۤU$mT ?UQRz{ޫX$0FAUtrvR:߹km!;jAbL-PA9D|,Q95\\%K7j&"mra傎-R6-ܤ6u$i>GZqA[CCIr!{%8 ~At[ՖT.֚oR7EԩFR1nUt /#2bjnCS3{ձ M%eF~ b'iih|QR܍=: D K+tvZMo{mO|#콌 gI>@,}Z*ʐP$gڵR^Hu `.V3bH*6{GmRq!Ձ޵nvMjZ?}IW=(= 4wRmxw.*>GB'n6j/ZujJG?6>jQ(5ʱ33<]ugNv=*mJ.d13{ R:<]*S l\QO^PE7d +}Xzy;1<3x{PDCv({my;#9y UяY P|-$w+{|H- ȁlsG!24vN]qY$Kwdd~ mZr WTKԥģ=ZBB|.(z*dKFGL6q%k ,Kc+*k)z:ajF{m-} ZԀVY^-{ިC\Cg8pj*[5@BVByTa43j]='=^6ztӎD /1KI8N=CSywX57ޫ븆ד4MC\T[mjmizhdrM9Ҏnz6QO Z#I^AZ5Tk$Ť`_6&ԓ=Vi*+&1pj2Tc #=R*U=6>CTb8\z1hmM.MSy5J-O&+oxlT pSBiaF<Tϧทђsȴ.u({}jZ(tz2~Zz $<'M#]e}I]fbUdZI8jH{bAݺQ-Q$=@mC$aȊ4A僐܈ᑷHɡЂ۳ #.YW.@w܆ݪY!T^j#TTqv.$C"MY?tt^<[o"dsv^Chh=|+{7ށ|dmIx 7i;z2PrmXkb2ީAPiZmA2:f.T\Vm*Jai' %@fj'!b!&Vӈ-]%n" {N#ñkM֪i Jnj45HNb%`xB_-żzBŊaeTF)n>J ڴQ LG~dur@94F!x-Iڐgo`P4ԣ>Fu((ZP-?ɄG%Û83@hJ[M,Mj)-Y[޿BAbp4x ި+"u0pG1jR\Jh ЫIԵj?Bh5jX 1Z^!{)r GDAT% ;H7Ă]nbp?=H:]P{'.,p&\P0K$x*Jk$\؇Ě)2ف7DB>euAH¾c3@Bd`1֥4nLzJ4y=M։UQI߼8!띹k4vfP{P+GEO*|r+#sVE mCk"BUŐހ‚pR1HHri6-IċRhQC@6h{]#O&TTZ GŚoB>3iz-Mvms{TiSY/f\l\A# ި jFֵFB@1| WԬS |yjDp֟:Ht0rxǨ6AP4+p\ajsk`0{yv۵[G~ɹ#ɢ8dkGJ]vO<%qzԸ^LއQ')+d u#C!"H5!CI1Dj47~{@NSsQԌ$H1b$pV{؉G9lf*\n-C|t1+ ue3fy!жp:R{K~ES3PkCH9{9 M'PA1Jg}lzMHu`]=CsjЩjZ3$3f/\/FrP js{إ΃Zjt0kAnޡdy1IPGhj =σ“֨GRl.8] 5nujJ}}cu1'V{ucժA?{.tC1^>K.7KVVld1ԑ7_еm7]D@boAʾ$3|ܭ5QPVjixdaL6Y`r{R.W d$!'X,|]TBm6 a!7:h9Mm 1*Jb}4f&{{$[ -y<4`2ъ P!Ŧ[mEƢ2np5P;#=TwZ1CDq"hmZ {P"mT9ZT5IT~cDp;p]53DHORC"[CvI&()*;{bJC6 /j\,Tqj=j?#rr̐W F?;h\1r1Di>!A)nCKnOQȍ$Z$G Bslxخ/Oj$7^\}dE-#@1,os<7 T53~THnqq -Vi:hiIJ> a֚ȕ#Z(qUD#AJ8PS/z&IĔuqv.7u bZ#F6 BUdɑxiGh68bj!>o/j#qCv`}Hܩ4HTn$miڙ 1{Q7U%gRSMZ:a$P" D n`ڣGTk]i6= rW1F±R8"6юs{ ,ڜOpD#>&1.pՊ׍D %7Uӌa 941.چ0,RGkRm]+y(/4o$2UDj% %1)cjDTFHHD o^>Hm܉sqk["=5j+]M "-!{I+z&!}n֥Q'mCq1CvWrOMTaX!#RVjҴdgo#,*Eшy3\Jn6KOZKjbwňCM(cܴ.(\O\Mf(*plITzzK nkE.tu#4=>4ht䓐pRT>]5;+ګ[UM +)6=jڷPXF>ku.>S=MV8~k*:=1ډCVV 4&pЍz&W8$7Un_J˜gh4!/`kV=CS*,:g-UFCnCpMrdߚ51PS3zi-w(*B\cS jpi!ևj/N87D$3}RzO}5IĚꪫH08~GsshG81WlZjĮ12#.?Վ']=3s&Rܘ<ކ=ȄŸ5/$M.C]׏ C$-hD7rn^,ݨ$iDKUc\[i;ۼށT prn$Wʜv`qs"(2MKo%:~oT@f_'RtԔx4EKQOZ;. [Ԇ.*N<1xZyZ$P0ش> aYUh#er=)jf|foD-&^.ぐt@o6=/Z))=m@Z@L޸K͗Wi91~(1pm0W=p.:{Ąx칄጗ph)4T?peĤ/\=5>ZֽԌ%ٚV)_}nՃ /QT#A ɨhtsE4#m\pTT\MLmMTj7syaޢu{[BH?Zӵ-cW} z guz mKMի?D&JVHYx xZflU{\|6w޸}|ֻKk8ltǾܫ:m-(gV4mphRDnpqpǟЉK̓xTW1@!Gn@Bi'FKЩ :y&Zm4͐T!B&qun|W">dŦꇦ3dmٷT C]V n1W1T,gMH#bL/{6.$u^ZmR7/UV4bۗ`G'b]VzLL+Y"RdW\LTH6j!krC(HC3"ʾxHxCn6 Í6\P۹PÒ{+Ķ_Oۊ2j D$I[m ;v V+$n"8hȈE܊IdTD 1"?׸4J5I*F.ƚ,jUEu u0j@>9&NGsUZ8\<֓-,Aqbиdufܚ%V|]T981Wzb<^oCp_GԒwoU;ocɕ-{`:CF9ٙ_-'B!|7Dzi2zcjWX &]kp+؀ dPz"fAB 4u#jZX:!꒳!/O#*0'Րt$}KhMuFZe|hoԂIVjD͈4 ssǂISV;(ӐzԪ*z;)޿:nLMR>r%yn_mմ~c6s_hvm2X$z;~HuCC\#{=Sd<൭?`j#Y&jlD0P@ddA\9z"Ku-hv2ZgW*(-r 67#ew[[vIȆ}VrܖR;iUwR~LB93zw 4~ĺ=32fjCl?!m;!X9$$(ۦk=V!D]An?k\3rIC_(#X8Th.G6yW壬=] jk+]tfɢit6LUf!z x45$cXNz&#!ͪ yhZ-Q {?ivgq zָwMׅghC]\6x{^=&!qr>PjF{7r@ V7TױY!a\C4>7p!=lS|0s jT&׭[xRFi bI5HZztKb< ȟEwEWP{cܪHIJTZ^ vrzP0TBdͫM 0ܸaZ P -.,9I n6 bPb~p>3jzJ; ٽ h:u):uT! 7 لjծx~񡯫濉MNSЉ.7)8ldI#8O]!45 zp{5jR mzЪPtffR%ԍ6 $htZi߆Rx/d625l.!!\=PdC"]|u$JWqʞd ]`.SԌ!NMph*bNod `~FMqހo!RX.!m_oW%Cb#pXQO~)3? %G\ {hEA i5cJ}h:~t{X}ZRԇ]MRGs5l򴽻p] *SSl K&#0gUm&0!Rs|x.vF8&ִӱvnhɟеciRժŨk%%si5v3;'2U۪.,ZKhcJ9TTpA;:%%9&/lDh?,[٦~N0I R3LЪIӄ Y<ֵJ1 rStӬ1 *[shG4ji3|>^61]! صўyZԵkAogހwP=uW\ .f1CH#1H F69B)-r\=Kb+شjIGL;|T7UsCr;!YÕWNHk I4y mr!C܉s-cCjG$6D%ph$ZU].H ]`NrV Y4d7j%=̆bCh'm\fH$ȎCv-yj[QvZͬC(sr$F*;w)s)4Q*G%IYsO WB1꫄5NH7Nq}eavlb+ҴPtsZmf.Cݤ$x7kG%Z6IX19!5 Pݴ[Է [Ǒ [PՈ6 t5u1]QBH-CR(' B*:Y0|<֚HrдPYͽO S2UGj`ۊ#nPձޤDDo)(NChPn_7yMmE 髭̾ MԺSeozeeYj+-@"ʭ>Gi:/w$#ӓ"ͨeV@CvlkE6 4AHZDEx嶗%=q)WF`,ԇHX|$6D;h"[j7n`LPNj)eux.%DpD:He#~l6.Cjw _EG&nCRDi"1;DQVZ#~n@vHRncj-n$ڭW"S嬑J]KqZ)by0]fq rdcAw~x˶P]@n۷-7Iț)PMZnHPpGHGRbT]_Q]MMhҔl{%N!CmX@#$؁Uw2_i3z7$j^4 ]Hc6ؚ`Pkvf:jM.4cjWQ馥$*jI{VRVz] R&@Sk o?rq}v%;! p5H#LH#|IԺlk7) mi:x*iLUc7\{XL> &9 Ķsb2equ kM5-`R7>jH3?7.;If }ۃsz%Μ2v77-6c sj>zh]>T[ lc;W風u6wS).{ 7U͈ͦ G&;+s61~5VPcpDk_uTzGLBa{b8lթUjU#`6llJ<͊#䭌oGh41JcT8CdA; \@Fs..H@lyoT= %hhiОfҩAަ߱\զR49bL{ۘ*ި 9 q${LGZq}$Z{Ʃ|kP;&z\9 ص.T5-InVִŢֵme0?zеHg(OSyRt RF}4w[y׊ (I' &gb jj6{6BX52tbz\K$Cfgˣ\ɹv@ Bs}OqGjU.0MCusMqՎ?2~*ի Mjy-{c!*f. 0ZNoԶ@ mjkAz2 E洝k]JǮ+hhAN GZw{=ZK>sCn=7P`Cbs 4?03?jڇ鵃) Zx1<-QYI7zjN+fpk4MB&OT ݽUu,IPlZ uH"qOhL\CڐJ"ڇ== Iגo05\ڈE-n\T \1>h`z`OflrиE*[kb;߃'tևM棛q.NM9-IYGÐ@XC ӐlkCRC&MJb17 H%3zE,pW/*F.&JUmGhW|CYCԻ* EXbSO[~ qZO'=xlCp(# iuMlzq~qI*]HLNɟZp#n}-[8§O&oϒ%p mG; #KoMhF! ^4.>Rϒr$RvWLp|j%; qWqp`W UZpM\mmQi4kT<}mVY;޵mBTtĨ)AV:Jjʑ~p:{{>1n?\r}ͨĦKtc1_½6#1jN&rf8j#^=?Z!+_{4iu<>!'loֵq(CRGЄluǕ&Ds/ځ߱~ԋЈohjGWR3b(ev[^޸ΔwwV:^r7.(ەWWd{MT/*@?zRGP%Cփzi*PsELz]4l{/ᖥnέH/j2kaMZ-W -6ǽ֭ܺGmwЩ0P)*'R?8.(Ԩ[YR3}QUcn]S`Vn@=^ [qoJڎd\|4S:aLx1~>u$`0Zi4:C+=q)*Pdyb-&p`{֭=ԶI%% L{lWzh Rýtt7 )! \Q&WBJf}ZAI%FHZ;K۝3ڵ Um֊jl؀m&pk1k{-HtZ"5!r!^@!1mRedr|)rbvH?5P 4AH5 )OQrw)H99W' Ê#'4{'-jii ]"lwq 6U$POTT6kI `BFݦyӌu0ޫy ]V ͯ@!:w-7OےC"R\qrKnlT'@j1C%Hv?-ʾdm@BZt7oV}\$Ȏ"cjZMc 3ə_MzWu=^ԉ]Yq tǫs[SOYMfoZ8 Tw͋Z⮤XS S@NZi2uN͈b=Q$w."iF$Gn%.Y܈UCӮԫc0!QW $1MC ֑dy"k.䜆㕮'TWbAll{W-C!q@husEyrI l7)#Zw mD!$!qjrCCq2چcP;m42v.H䫋[knT^ G6Ċ&Dn=˹I!Di>-{qI ] ~KEO$7"9 c P8%os@p+\1 Qw!)҂!>V&\i:/JZsDծ $ _=&ao{1G* >ц2I@0\(ĨtsrZaCzիAft'WXZU{{)ٵ-6t661 ?Va5?OIT?9uV vx@q\"I@炠 Pih삤uXMel@ERo`6` tn36} R6)pjzossFo-D)鷑꜕!Ҵߡt wdTL~*8H cG~cHrMĥir`Ah8HehǽjZ~COJ9դь1fVgԫ4,ч T C*CG&QGL0x1RjFʼQS4d5 R։YCR>y53c>jjEiKm}v\jAg~%͈ͦ%`Tz8xA; Ci{&(m:A8b|;dlj>=h#| !4.b)4d׍$HI42 }(Gd&|T>,C'M Elw׎8! x&݈uT#TH&4#w[ZGBdo6mCZ5ACH1<ި9؇\!;>vMn*B1{ ^ꮆ یcI[a=TP$AD{&J՞w!ЉЭzփ^;vۙFT1 bHM'iru%Mcu!i%3-4w~ Їs3W'KԄoxٛ߱q@n\jeL9x-iڗBm4jpͯIZvX;-~zִVik&ǭw4*a='!WUfcԗ:n1N\}!z#Pxfm=.;kӅN$П΍\@1 d}^MTFmp!+Pё. ~u.%9;} V.% \í@*LH=:]~+dnﱜUASO{8) Mx/.bb*Qcച]bl &cV8u0Cm"%5@ՍRMVԴR\}36} DvVԉ]Y?izj MWR߭zhxT@&L*G135W*mz%R=_ۅ&MAw2KB"JbT5(AfvD! 渗IԺ>.!H)*=z8I3NE ͈ \HLT=5L0ۊ .Dѫ$D rZ-QPgؘZ85jaJJ^;63޿8R.=4~`W'UUdb!h5㨧Վfߊu Yևk6f)stښ޿$Wиt? A87VBJO Ju F#_z( kc3ܫJWԿWSт۴A޴(L8T͌{䴞>jg}]Z?r%2 nթQ##Y!!v]Ӵcq*Y jP褫yS1|=k(Jc*o2swRյXc!MAQ r+֭_m6d 3 ZWjUDԿ?۩=z>QB Jfx3'E%*VjAOM0U9T<3B=ܸI X%4{ cS&_}KQs]YOR:垛U" sJLUmY{b:: 6R*L/BsZNzMM5AUQԑ^zJR \0:4lpIR:4f\N4*.%֋KN[4zAMJbsCh):x-ʡ5!VWWAAbI#H Ȼ^ ~h惭90gOW `.%4Suzz.y+bqgI4${ $1obR 7FksZmW(BG#bK 'IQA'id>ܷZЫ2;M.Վ*S f^JSC*U]>Zs oUj5ִpiyy$Qn#xy"-Z9NCJ#Ғ+Vmc"vU0cmUă6Sy޴`6~hI(Aj %\U}u}I*)ƼpcnbKujA+޵*4uxPR5Ã+ӎaiF6֏81RR7\7hԴ݇>g,Q;Ua&[XܜL=RQr OG+$6ғB"T|E@LT$U!7$5.]v%%CnJXHIԿ{ܫ54㛗rM#BIxԵ*A_z).Vflb561W%Gūj@!)1zѲkZKSUŮU>jMp_M"Aq 9RS`b'[ƪ֛UV"R܈v.%xvxd/.`yԵm4c5AE8w!ZִKjdnAWq htZiXhI~3֛G^:T̾oz&$zHӎgsV\K"y<< _b񪼞xUc` 'zF5RIzkF*J?5Vfܫ s+u-F-jOM7iд_*=48i< WIfRGc=A^+=_ZVl~-4W ɮіză-[k!*6&Fd1W2^%%WQ.hUdţ֮"DsÏg#4rr! -7=q@L$A5/'uz#Kj?Zr)JC_ " mȟ!(LFDhhmzB#G[wԇ8Er~Kx TO/$A6ds-9 `4Kb%sR>W65v]Cp$9)ry\|mE 5^1^-R$LPi7Y6 T Nqr1@=6n$mU8kImMTa'W ~hGԈBpj=='UJ9QV& /{lj;6kI;RS؆:Ќ{XLv<NJgTmyIyWUIr{UYb[aMRSmb]d9N w6+Gh]Ayy7Il_l#{A5\AqwŦ$7l;7ݰdrhu% J7$ޓMB@}uc)9gsƀJ n{֓T#8-Jq ~4-4E]2V9O!3͐ ACKHǙG]G>o{a(n`3z&W8#7Wj u+؇P j11ފ#RۺPNHLkIM4e$ԢK3 ۦi =hwn5WSযc~ڑ͋M1)9{IⰐRD7QQy?jqD:lhIR)kU#0+{U#l{VPAu,C@״`׏H/} T8#|! {b~29ˈhnb>bI_}F7R88J7!7̈mMT#~I0@؉X;$kب(a&bu)FߊL*H$U܈k%OvZqC&H~(hj`#zUzi$k!j \7|(@=B UuY46!۩S fo{ӊ3~(#ZLXIH:Q ]L7| T8ҒUO{)i pt+R:763jt#a~^;Z{V# aՌmKmt'ũWi%uElP8JиUq{CTy/M8CO,ZVAk~$)=܄خU6ŤZvi+{;M#sOIږx`^cЪ8"IRN9/ i-2"iOCiB-KZ8i?ظ{G5 qyoW4o&gcW'x7&{WG%C 5l꒲U$?Gg(+%IQAe4?Kje|&!m4a6-7E-eq,j2 w: BRb6zzظN6}1?̿r.pMԂ=:ԉjMs2G4ڐS54VӐf=ܴ7^A%‡{1hCJP 3jEpMfKxIIGUظGlnocتzN |ni-FRJwyq.EI'oYJ(l\/~k w5 * '%*Q?7kkXCa^9RSN x*N2%KtT6޸C4WCS6⼛ÕH&f. 6RR9;&ڿ TQ>mzi's7jqeM.R< fA PT^9{*I\F(g(j)0[o#uXէ]r a.>;Դdx) d9=I 13q/ Wr$qfQ+V8g1!~6|J$T/Pa\7sֺN d&o ,I8z̼90Ԅos\CCCGDCudW3G _]VJ̯_-n#m& zm7c'5AnIHt}_:ͦN~s3(VAԻCp }4 b>Ԥ)N D@7.ެbI_H*qawv]oL@I>"pMFW m4 C8ěإ2Q!͋]B Ö4oց]Դ*BRSYA4,0u"p{][Pu"͟jqĦ \l5Uh5,~YHV akI `1b;PݯCz!]N KA|v4 V$k*g=x޺5VU5 c6گjQԀ0^8 ut5Mٽ5.!-E>&\KC_ez?UUv~ ̸1MU[K3Znԍڐs֭hHg=kjlCgT- ۜ,OEjЭcu4#عjfH팻\E@ܸv@̏{zu{|Qfx}XIr.kEiuugGRDyrqGbҢ#ǒV$ ፶ODA!x$:8 r."I*TTnlTɤCIE *[_OH6T AF9CS7/.sPr7jU !nngKM!:8vja56%r{е :1fz&gKVjGl=P+RIgZGPV}J=mORw]8H'?rе!X!˥by ǽqG]q# 6?\PL.%h@&`ǿri^jwERTpЍGEߩ~UkF<^L W@~Ec\]u%>˽ PIT]M|+_k%-$mbI{Qߖ ;Cib\M9Cbݪ#G6?BuneV㖞jr%U/ԝ5hTӍq հA_ JdIA1!{*B\I-=UzݟnjɃ1ф;4㥨v)jb0$ݪ:5C8gJbi+xGTgҐ i YKX?@*<>&Z@iQxi&% qpG3T#ԝwMdW0D>Y?i R:?8fMT?Uտ?ꁴ~#FoRViUPe)AUj5C`$"E ;;y2, jZMOWW8KVoP40kC&7 TЪiMMV$ƐMVqۘӑb. ]Ԅ:o<㖠֥Uy`[@xyАaq͒a@HB4:JclzԨILAba;VP2'sO+I#鶪)IS2MCWC2j=PDC|[hu4QCi 98H <2mќu^<*KR't0T=0H^1ixQQB<޿<(m bwAUH+dlc({nGMV/;PjT5 ͯ$ZWCDe3 =ӎ&ϡUݨ`1q`yTԫø$46.7q{kN3 t>%aH{yi-']rF$&AyTSGOSfއpSIŀ-Sv߀*m5Ƀ޸O=[b/e1^@]@{U^jՃjx5HMEjtS 9tWIZARija6-7\պZ4a .(MO{C -7RQ=T"@BW<{ icr`ڠ.R*AꑱP;&m!>d2bЫ.7!qEGK)FbNl_-7S5T1 6鳟.;UYf{$ R9lܿUǎUq6\omMpt<=]!,j]`#h#&Ժgc ?TA;o>fDZP4nN+hCzܩ1_ ;gq ڕ1:ftGY5MԫL8Z Zbǯ6V=>tc5h fjtUi:I5J6p_AnըjDAqp1BթOl#-J_Ŏ 8W&>q_¿xMu6ث-jOթO%şž(i' !ZoTu\G=W׋T0Գ6{P ZӁ{M߆/rus`.;u 0_"n61h.{*^͋J1k].i mVY )mZRԐ.SMkocߔE,(A~j\ŚnBHY#hyi?/Ѝ濊:i8 7ޢ|7і}[ǯS>rrEIqE6A6OP%Zkuښ]l\Pu\'}Z⸢Tn#6-Zq0jOjMURF9$B-j0~&.;GHG #G$2 m %FA({݊ Cm]EʮDa?5hprCDP6q+i)kR ?1IK! zgܚ&>ZUyFhoD]3[ʒzV5"&Pҩkf]sTcq7 hi3g}a$፟b{}E-)6.%h*zgV >_MKOLH1k\;h5T wj_ ËTxUZ fށäu> lUOGԝAEBjZ >:^fJuL\IڰMUo Ck ~]wQSV;ĵduUI.ē(ݬ؎b\!&ܓ,[=˔ RY! L!nRC͓˝3?qEML6Q1RpMޢ܍Hܩ ~رCn.@q"N*nVqw$5ؕw|v>KȈ H1Õ?+hdm;ۓ.ډ%CwІ߭ !Gržj;BۋsZ@>Df=Di;+Lت{>$AJ.G1= #v4xPsImx) ~o]ژdLU!Aک V*Km̼.8!/$0'Vunmd<,P܎@z=ÃDFD&7@K{QQKnۓHr8h_pdBnܻqjNCj@rp{8mMpNwÓpOsEV`MXvYuMZmS 0'Aa,zF7G<7#i5T#7'{ *KDIh3_ mdzg(ڏ=V5*p}[,ިHEKǛDԪz]H OZ4tIZ餳Վy"i|5Lm`c.nyx[i:qoUt'Uޙ0bEP5m66l܁KiI=pjN%N V: r3G/ghP)9WLzi̛ةB[MrHCT`&oD1P9i⊝4#͏=jT$L^yT ᪒v+sTi1A,@vAm6CMBؿ!,5=.ꮜ1/L{Y F>ɵHehfl[rog>?qFSVQԍ ZzꓱV'C*f G+skP|jQnހN!M{mzt2L]e}Hw+-);z!+Ǧ)+<`JUT|V.ܜ+M-"`MgRidtzh c9tͻ8PjD@-6ttC Cصj=Xqy&oVԴ0*LPj4LoԔ~Ŧ zn7jZi5yJ:A$C;yZ[y=p@#~դ dIJTLԍlt<&GUUVSԑ ÒEDuX!ظ˄C7RP]PcpKӸ>lC!bo~h (r]c}0I0_Bu0`宐J@k]%0~b,Q۳`cؿ;5\12Ƽ)a^Ɣud 6;Zt5\Au:Se]?TL)vYi{/j/-Aoq~A$ jok,u0ߨ?ōUumT[ve-IRF93z~lu7M rza?jM aElحE8.R) QMXCp{Uɉa U{*mZh!ܒևV0W"Dne\`Б`HԔά}T]7Urռz4[z0zJӜ.b9nrjG UR7@6 q!@n6#c?Ze ;^1?q)P/{ @&vԵp}YZ&Ǯި#!Zntd{QAf3}/t8-h`S>QIR3&`l!6MԚ oi-ÈG.BxPCzGm@ېuGi$"8W-b{"8wPUw4Aũi'uipE=@cR(}jbxh&[y16kA]!fŦԵ\ֵUH"V|؉lDv P׎7 h{WRnڑij0s;bkVd@%^jN z=Umޏ\:j6maM%˙kޙ !/QS ?oڴ_ƋNa`IzګPg_WRǽVeM1A֬bGPHpu]m.Cy#os}:[¹"mz[~Ou!jn\YM]d69 ԚCu iGH FRKQs=kMD5OBwϡu74N*CBa@5%3.7j#~F6{v~کzGWLw4\UAL#?WY^HtݐpDyFORsyW5D d&kT=6Ooyc!}W R*J?lV70n5AUVJ{f{֛]ܧ& W\orLހajm~ &f tKQϛ-$S78OV6`@Gz4Ѹ{^<ISy3:kjR648ARt s_RSU; b%1[Z AIUT2kI쐽ד"kRhL#j%򹻃Uc]nִ:JP'c39؏KW\|'D]Z!EA*8\c^Iu-7I Tcq z1`ېu*RzjNՖX8AU16Wio??B/5;4ktTa@L$j6#;hԵgb"**xCn7Px׻+T @ujm.wLv1b!Sc K73zW TӸY?csf5@jZq?3IUԵZģ%fgnL8S-'ADbq,ԪTAgVBɃjZy[0TAV;5$t/xdgshT49jnM>Ŋm&"GU#5zzh@1?ظx`6eQԍR:q0LbT<#R76:*ZA:7yX]C[IsbԝSw1ZIJoԬoހBjֵj?1W& *hiCC2{>%6d֤ զd#su8FI65&mbHJqx(-ܴBE#;h[U0rv8MpUn\)3RORT fIR6D{bm˩;ccꐄ ̈Kچ<O?(T*9TLDuwn@1rIf2kK{Ue!*rT mظ(E*LLARuN>j#&dD͌Vrq`{fj_Oh40I]Mybj OAlRW8*Jq))z!":ش.5b2qq^eW|EjB A`גTm H r)ɟBj($:l%k$wcwF*FKԏxۙTQG$;rWR+1RuvT:v/%YĜAѷ a5A#6 Ŧ=pd#}ꮔ#P 1 WPr:(ڎ޿`m ݙ>MS3M(+iHV2u!UcpUUZ S8{[%- gڵmRmeBpWqZKz%iL>&q!\.U0pcUYBJcޫWx#j}-Eq-l\Z)Z5@jPb>pkPڬ B%.Gp>^<pv 3TR::Ը{0Ըh/- U< ]P:Lj)j~}OCLQVY~g5Wk86މYu!fЍU ^b8z@uK9@ As;u>v_!,TG T DlP5.u#4BiF=4WxF=*t #&ϥV֩(R)&U ~-4c?ީ4Pt&窽<%4M$SSáT{B7iV[ֺpI8F1Ŕ!)>ЫRte6{/ԁMQƘlc: 7jP] }Z)R|ͨmx!]HAgҸEՅOKM TST2rZmbZN:m1!QbTÄIKģx0ҪBStloC5 h#j0 Z `;;&ɫ=3&$&I7#c#E޴ڍhJK$UmժjeC=6O;N~ީ_SQYPST6)5 BѸi%(KK#c;eFصq]NЪtדhzo46Vq϶BҌxOr- b~aSirPFL?f4t ީ)xل3hJ@i:h1M1RUpK=q&p-N8%=6Zswi H)Լc5n%hH=P7Mk6Un=szbMjA]\Rf17mE1>5:6o֓D`%#BCQN ZָȺxf Tp0k?RiPQgBTu$'i].B*JƸx 8RGPbŦpZC疅]@Rjj[m| {P4jh~դ-V gԁJJi 9~ny0ZjoӞ˻-a]5qJ"6* kI]BQ _ \ֻ~S10CjM( {.WR 6pK{֤n#Ju5ب^*l- GEf/r]KM&pDK gU餩1zcN lC@Jӽhzn f*e#btz3M^4AE}!\J A![*"}9 jQW:w@KUqRƘjiFϽ㥹6 ~.ǽE=r PBb`?"SYMֵiz*\}*#--V1 ŭpM^X;oxUbF"ukbOއBKd.MozuM[Mu?C40C#K3Ojԧ McyP*j* Meش]Jf{^k 8CM4 0ApIUS x& Ƴ ic3y W a>Ǧ{ lUzXa lLJW\BŤ ԋ1p@JzapRG6zv]c3ǡ{L@ۍ!&[x1E?g~ VZ蔺m M F"AzՃAMR:OuI-3`Mtvte )zH>I;1n@yZBo}ph)j4@#.KFN֭H91i1occi|7Z-S?֨5XN'dL-7Gל<\J}&<mKL@|O{ɻQԊڢ,& bЪfUKQJ"=ʮn G!YYMIhBI v JM%0=TLwk]m 1~jme4UzY]CL޵-6UUuۛ H/hx;Ë ZMuNR]=c]P]9gTC)jsc~; j&<!- VN=Urq/9h)yuClb#Gy־]8݈ڐ$wص51'AڛXMj9 ZjԖXC͋KXHfliRS?SXM6!bi g.[5qwcC= xfzʌ\<@tBH1vM[׉?bЫ5bO\KJH"gjT,K"F"S#I]%icj&k( 4>/+*q`T$hk ,ص鏟ЪZ_b;'_ "wICnm{q ߱qɧص D\C]Iqiϡq8l\H<]ńۤŮ܋tz1DO\9~xl!$D\KJyUPj:"='+ކ U^06AgM%8*w\Q|=e7V{թqPhxJ͜3{p5C %$ d@ g̗uظid$WۨH ~M%>R.O/?ׅ,cDz=qGO\<4p\gqXMH{6S1\CUV^M$gZ9%U1]u k0c 45pbq-#\J2FM<~ūR#m qegpi36.6&_q/.:&Mv$sPUA ;M|^o\B[ny};I<~vaqcFOUd '{޿+^1dd6gq]e1nP|ش`Z@o\5Yu y<].MoSg{\Jn({y 0 Ճ J* 2 sZm bm犯i_U$ 2( ?N?VRa=Gq2ڢG6- "DBx*$ ൣi5@dJ##W$G.CݵZJo)ȗ$d46WsTt4&O%Orn4vՌVb=9gg#"r 9UkD?ܩ Ka&HĈnڈ1{'P^=O]P;;K䂤MG1LOޤqU x$j޴c5W9ob+}Ku5F'ij>4vsZ#؁\8"RݑH嶖8.!!41y0{^TA!;#(ukͮDwHMT$ 40|֋]Rlk)͏Ti#Qr> TwfJL *lppi:k-G#MAkZ~]KS_% !_-dx%c{}@[ߣD[ݘIӎ5Gil]7Ms Qz- $*F9.Zpԍuw'pC0 7y4uؿ VxN2ᢅsizKKSI31sP 2SX9P!:֭bԣ!:uB`fĘwD*wi^͎aZC* VP` ;B(R̤cހ1Cs܃1~fiuJaw?1U'v9}TYC#CZIIU\h,&j^["pSF:z2D&O :lsꮟBm.~ Z_m7Cux`7Կؼ$J!L21'f~JPiDcIUV:w rlb&UK h4Ms^b>ĿvobO5 ib}?]M7?4B c x1ahhÁ'#R,ZO1rf)ۊLy0kMjCSPORiv`d1hǶqAu( H\ kA0hK$c?M9B>GN؇ a{U~_MY`DFlU0K3z[Io/ZSON!'Z}'Mo8`MUIRu/$&ĦXk)VJ)I. 0Z0-&L@iJh5P/kFJ:4`*yIJBC*2TT aŵ$}Ct{ Su$1 Y_\בjUD9VGC -$6z:%#z-EuMℙ籫B#ґ0[% ]5Qɚa5ڗi$֥QFw&OPKG\Xra6"j,mH&yV)6 dq dŤ5#'RTPǛV15%fևV7^^u nВLIRmYFp/2\&(*)nLUuH>>*(`&- RySS11i:: k =pӏ~mZInV&ͬ.OU> }K=T$a߽Zj<2gm,}>ũ0?zJںT7z2Uyص*S`ph;Ut$JPڴ} !}i:R =յ"~%xϥ'!Mب+;͢-$dM%߽4I0-JOM6y(9*)z7TS ٛ ja\<ʖY&\|>WN9Rb D7j\D17 -Xzl&ٱqI6fsU>dVWlz4j1=,SִZt'懥Js%P"BoZ-J71t}fŠî <֓7ڑ䵣)1q.J6H D\ڃt0_^Ś}xfզDb==yB,~S$鷣[O^MIk֋]8VaLWUoIQԓ?z9"R?zԩ HZHWu${֤:N z=ur1 Ði4uv>+ O?ֈ%%d"|޺0 3z6S~3]e$87ZEM\Q"{r36Rڀx2jlب+/;bqMi$SoqeSl`xLx[{"cLZME˔ 1hD" \4*U5U\7Hx@ D\'Im#o<?bЩGlzEEbJ> ˭I C,tobNE$jjI?. SP<AML cm%O&LABՀF, \5UnL>Ep94}LC/ňQ+:] Do|2T[ \**ʑ\u MC-6F}lZI톘 s>Fۏ ZnoS f*hDAKpd}5 0l1jV QPYf%7b @J$۽Rj[CH- TV{@03{ y#GR2=Z-@.͝]-]5UQ'Ss7h5=a؀j U^ZJdϹT LP ;Hc۵D kD֩(3~IR3VC %ElnT\VI$F4F~kɨh&o{qw!rG#m6r%FJG\"@@뷊=EaQRCDT(LHR4C=ۑ 15^2dFHn=1 c8Á}EHj(j#9j8-8r" qۍ;R;+HJ;U!$J"EnSC&H6I ؏j9dPxۓHDwvU9#JJT FcmP̓}]Io\\xjUO"AވߘL{rUmaJzᦏLF9h5bIKI68/UnH6Kވ`FVֵNA*օOhtbU$nAZZ=ꐀ4 >a%4C6l@nT;6x* Pdhˋ4{Ӳ5TS.M@hm\rմ:J9@y}tlUGz9QdԁLJ8M P {o@Մ6+ '5\}1/@A[Fw__z{Q+PH>!Z3 =~1WTT8s~pW 0oUO vܩ56vj^oTsrՅUJXL{Zm Ctij p;؈i6"~eڴZ@?B6[O'YG-[XGT\g[ {Rԫ<ŝ3]EC ALHMkkA/Dt!z0,=?IhۇNODi*\nkcuJýgIU7@ uY7R4{1s;ʐږP@9 [ȀK$՚U!N2t#0Cg;10 @GTتͤʨp=DZRVQ{^]Xꅋ]>>svrimKMs*OY4*Sn1Ea@L3?6!!Ϲпև s3{=hf`:BYAD -4sszmA>GJZ?!47UȟʁUMM삯Hjcn G횞nM Wkվ1_@M'=6k՗[kP. Q9懬kC5eϩR~$J Dp%jiL$^2h:JjW\1= AmH[KR;G>Dܛ?AيH7SmxD$|Ww ۛ=\B=JpVievB'wGQтmmNbG**~c0b% <i5L<_F:j\ IkE% Ih~@=WF1ewz:zo\<ڱo*ԨNWTlյˎͬ\CPM7޴ڂK/H}Џd% y&M%O_%VLf P <zeZdWuJcSfogYՅ\i>>&+;.bGnSk0T}ME1-x Udu8{8c WfߛGJ3Hc;+ZN[yqa.9?V`eLF֥CW{VT g;*0.<bq@:3ޫ((GX>ǽ(R69jq R6ЯU4͋BqjzilT5@G{ж-mb֫zs=Q57ߖ^EҐ-Zu6F@ӐmOuRѐhI^@ C eF$Qۙ܉uO I%wmW4$uLjÚ m5դMZ6v CR&/: c6-KhHY1&Քaim5 s;֊J`LS89ުR +Ms5_NBd#VUR$ &~WӂFqHrj>FAZOW4"yj&`x=MJAa&}(a+bO}(#ztASs<޵`MD A50h|[x<\7QM6lDq)"SGR7"&WKte!45si͊PT܃&:J;!mÄ~m!(!Ե놵f- 䪡s*RڑΎFGij㈁0CջuT6\M#l%vL<UIl@AX< >.zո}qlŤB %u]1HO8-7MZ:`a vv5A;LCشHb} 龷Quv?޿ &*=PjVcDŴ׋<:W9B CԆHu`62N I*J[F{޸ybss p}Wo}\$ԁUDתB\#-c(X* sNfiARuv9&˗F4Fzcw-kB5jZ?1,ԅV ՍOulTrT޴}&)ACl^r9Zu+DՈ `ԆjHкͿص*30yUwq9UۥioU2.>lM+AM ]_jUݖ}Cb̾~ռJB O3PͯQ u` Dn!Ҧ j#$wݤ6C1\P)nz&!C?چ`D c(nIWO_yb<|FIro=rn3.FJMttvۛހzU$KMS6c>no^I\HŚhƻx"4WqW /%V\hqxG}n9ᑍbpCn-7.Ci-(EGc1o*w|qgnb#w!-#G{[GmTRe^ `_pu3kh!$|v-5w}n{Q;6R$ hv98m(uqM Ën1oGq۞D kI2@}tiIs]x*FG QHVr iuIVx!&:qjesrj"ڛ.zqlpG o71i!`Bd{V{<޸"u\@|#oدiu4Vt5TsI8=}OUSz{Ɔ. VrٝZMP-sj h*Zm\̖N8شb66bWRj6JBp(1ؙT{~N V1i B歎$wD5ѰT')O=~@)8=R[^Hu#͊pd]eoq)ks;5^ cϹ7^< qrLc W\Gt^=D?ڪIo[M򐅘=ţ؎[|kCCV iQA 4 Sm5>=H}(3=iFIh]_Qw@*ReIGkU)a5+ Hicъ*]Z'2;$7ŮƆ V_Hr^Rӟ$:&L$֤nmLad$pr9m١ G7`I8b ś۴P&nJK;{ֲ$$߃S5^DiZIn}D|n(.+0GIRDKxv?nzrB;ꐄ r.#ܩ>wbʼT3  :Al\<Cj#!jBGFӎᾴ>Z =/*O-7Ws/$H0iA.F `XB[m~/u١%g}5;*ዳުT&~ŭS-K*).-v丢H5hn1ܨ>LrRuZgT?*;Ǥ$АnJKjv]ֺ1ģH7]GmT2 gRtOU]F*3SCꮄ\?U ig?5krgB _IQokϿ0"aI䟿5Dw`ūucpF5=C#\ YTq$nkZ5(`$cɣ$Vi5Tc<]?(f6/B sOtޟK]P8&IuDHPךeVLG1?1Z78bԆqlcXEIUtC _ !HbZz4Cb-Y-KAIj*z`,5M6'K@*]z&H21`]lުLU# w\5CtlQ_z=>]GI=VolM᪐uI'6* fM<>*O~d ]J +ȸ:ĬR~+5=C<އ|R ]'M! j$#&!eю^>թi bSA~-ģ1yR*ST {wC5!;zu_d |=]OYLLb"zsZo=t w\jᱯWjW@8(A;!VfC0@z2[7C1ZюR}y}+Vp yf@=[6vDG1-JeZhꋙ[P"ZOnbJ}?M?dyqa]&" Zz:תKduW%FCt@šZKcKnnZvҏ1+Y mEkE/6 r0>A嚏CvHCrl}˹*F${;G#G#L\4w䈨kI0)Gr8ǎmT89P+ܦ؆Hq֛X>6_BBN_!#ە:v""fɋET!z{IbQx"81|>7bCUdʌs]q#qq(AҸSr R$ꨥ=a&zi*1/4%%s ?iVAR%ENK36NW4-6]b#, PMơ8y B%Pm`|rt-4#lrr 1D*\Wj!.f{n6@ TbkJJbu="6C*Qk^UTmx🂕  W5 QC7%ƸCz06 #[?2K6$ gI #m\L=jφJ9(Ѫ\yR4w͸ʮéCUfM#d}EI Y%Ɨ9q߽c8)mT㑊67RƢ}A9!H}9R[o@%@s %9 A~Kr*vC*Yz!% hvC>;UIł#\FCq.(4y hw*bdۑ>⹵ŪEL$F\D6.VCnFKhnC*qj#I'+ĕv{mBLPݓ"8qj:q41{UDMܪ"(x"'(xr#bMDwcq5{86"I~I(H)%h{8զZKP9i6&/ $m{47.ڈBH#&nCvDUd'd]D7"~HY܋U !i-$zl>XCڤ8čѫo^Bm#G'yHm@i>IFj\ď EnKpɹRxxwd*9)-n"U?z1C d7Kes u(|HHjh4D$[){nJL61MƿR5$zUک* oc#wf-Ȅ+תJQ:傤q!-$A C6- rzG]̶ܓI7#rq1']ȄCzpPh{]m w ܊5ǛL,.{F? -I٪BV)l4g؈RmM!>ڸ\Ў_BDtcaĔA[k{ռGؤ>]ͅ\1~c}oCrw=.CKAơR\D A =U*RYpդ@GGaoֵ>C){VVRT fũ]Afl > RY-ɰ>KTB1Ce5Zcں9_ 0\P6ZH6d{k#?FM3c<cPuU4B},m6@Ӕ;?Phy Wn kr]Φ-^éøظR%[Y+INJ5CԈJv\/T16cYiu4y,O޵iff𳧬ͷ0Zi+8c7޿FՊ2QZ-)F!ş֪d޵-.$Wx?/z>D:vO5u&q 56EC*+cXD6jk$1,ll<ުrcT&3U|ȇC@+xOzԉV6o֯U/ԵJ&8LwޢHk&}uwO'OQC6GmW;pj[K*= A:D֤BIߡCwk4QpLj \L8ŦxrF}lZ(:\4D{z@ثAm?А.L+@&UrvO*em=jM'#]@2 2zOS Tih} Zm> 'j@c}C6MԀ}jZhr%H38lWv 6!86}ʑRu\6.oîܸxVZhO"'[FId2JfUnHc#VX2~ UbCu${iWti֚Ax9d5uq\Cp)ޏN"=9dd>ݿB<{zFֺLU{r'qZ1@k1Zm>FCnFC͋LHď޿TD7Ucm*Y5EnFm_;͋ikk0_Þ &PJ Q5D6?Ci"lb``# O{;w2@ C\ܴ,xR\8-6sHh/iB1RD+Z5*Rk 5UA:^l륫ڙVi=8P80#GkR[OoZAMNHpx$GUaijYP)kG/%P +SGuQ%uu[C osii`8"SjIRr)d@j. i1X8r HP";F&7vj;vֻ&J;!؎3U\:6dƆj>LDYj.CjdW'DomD Z5.q]m܎E D!"'9 `HLZ"(Cz>>H7mQ,E6C@T$\X-53r-5 R]xD$:\,WQM'i r%Fv?tkH"Hr4MȎڼUIېLWmr>$98r2[୒|y Hn݂w$,bE-MD%:*!ojhIbF(9y6)WB7 TW%1>G]DdMђpGI$m ­R\8U&_5U֭POUtkW$^B2=@AI l  b%u&Tc.mW]Q?0"1h$Cri*FHx1R4xz uI1֚bF@oGm]A R7" RqjxojjIZ(jmWrʐjs#v 8(7ֈj! ԍ֬ھ}mɣZp2D!mT;بK}7M-6M,ڀL]S@7?P {A) ZkU&Je ÷&,چܩ醆ކIʀpji4:6[C>ZgmzL mzH +Vź&lc+>hGhI#oH꾺 a-t$UP qyT co֭ՖD"q#8cLHOUDF"@xY4P۴pZ8$SٵJAD A~DظkM!Lj=ˁ5bY%I5=:_zѐFڵ~5-h@ގ?{ܵь#&A8*FE`vjqD .8z#Z/z.jHfT8]$Qi' 2N | mf}(QZN>L?wis~h}]Τ۵ 2IF> 4qBL7ma6*A&b?Wle~&YrYɞib|_q 3Uɴx=z]v W饧7xhY[\BBq& 5Y8ɃHDD2 s)CD"?lRSD@?4FڸLP۷5{yq.jnC!$E*AddE&*a!5Wo")eڮ GVߖLj 8T--&i<ހ1h$U7}\%@37]mI4=ZKH6s,r-#jLD TSթ&2ٳr˝6%A{i*g?{i7N޵z]$rԆ9i!: } q*87WN>"24w ){a?UD;~&)ڶ.vNظ^1>\4[+6N.)\f=<-͌ZKΡ;aƗM#>h6k(|}~eI#-[Gd޸ BhFϯq+~I߽q E-u+'ۋusʒ=kjakVwqĴ=ԝqA*W޸v|uvé֤wyHd$}c2>A-^*KqzϩZܻqBE?i# R]?{iBBnI%:]6ph"'4 ,ekh@CTa\/Wu&kk4 _5nX9?HD𞰗 LJg{#R{o_kw"3_nBMƮ1"eZxFɭ mh>;۸HDiGpɵ[܉G,TWqc$UNDDoܥZȈ*i^ۙ=U+CvV8D&WJIrQkH%'Ú֫(:{d֭OI*fօXۃVMmJ8&6DwC&lx~ݤQQQ'sj'5%E3ɇд^,){>nw1 W- pb:^v ReS7 Xg>\ޫ(:z[l&F.b!&4єag ni4A(mC&a+]\ Wh&+l _U0j*gm߸M*FMH8WX;-%1/9Y* a2j;Ak+#wMbQWW>j|IHh1Q܆mHn↼m䔐܈2Kz>9!Cj!74ws7n@o%y!(d-64U }A|/8x=ؒ-6}OC'N14rRHZW: 13Է N I%Yj RG Uګv4:ɼ%ao] Oި늂i =F\|Mnm VU2y v.*7jI46qh ݚܫyoG&o܈w)bMn]DDQ6Ry 96rqFy[z4j8A_iQ 7ݓFg7-m'mH{bc%̑6QQ1H ԈLՆ9hcjހቷ{$F\ 9o ;?@H3j>;~57rU̻jJSozBb\`%ApjHN hv +Y?jA'xGIba7m8q馁pE4:eM1ZrwUV43ܾIUhCGrS\BbóLꀇB=֊Yf .yMJ:}h>4NHt'P9*lU!!kZh Ҍowԩ6wU{uk}Jkw$윈2D"{b%]scm^CЏBA444I'Un҇TB~AM$>^2E^oupn% tao xCCUdidĺx:xUZaWX|/@h%@Z 0lw*-،BZKЏ5JqPKL)'@chGq"eJۆ[y8]Gڢ99 ċHKrUd?aV\1{w שw-ͨnZq6*CdPdMje!i2T$VG#ŦbDB}T_z%A.r. H*j1YiR5]yB}<ioU},~mbԈZ7gO% *"TkNZq& ^Ml07B'*T$#-Vc6-7jHPd! FAR8bUfՇ;)S DqKy()Bf|IUvj#ri]7*bּC c! +D "ڀ[>EPrvm[֚,!1n ZK&YYlކ>y;5@{AZ+@6C'oٮziFDGiӔoևN>箳d+h 1WJtsX%A;ÛQH"Sm#pDq;$!\HNlxR7"t! 7?ކ4rr!!rrndd&V+j$j׊d`B\Dj#Uͫ,ZzI89{ݒ"4R4qͨDjr;v6CNRys#'!rIj%1D8 ;D' 3CqJ ;rL6uiD)b";࣍Gyi$ bE8\'O_8L?ehSqg֤?{P2qPӐd pA.%)hUVJ~} :ٕPN %pri,Њ%u1.xAF Y>bMH*W ZMQ-R>pӉSFquԴvi;\aT|F0ظ}Ȅ4ض Vvl\J2emT$kϱpm;!Iq-k<.(!q55}&40ZP-PظvpDmKV3j#E^1Ť"=)$ȵ' m1ܫݴd\X2[ ֵ"_okN&DQIGGvw+dRE Hrq crh"aW|b"7!rr-lBX5W҃|rR8uJZm?,DE'STtb1c#Fƭ f夛uHشm7i1ک+.$Ŧb\6Z~Z$MXkIhHzp ԇ/5U=HִڂDuz lmAs#GV윪ɴJcY*cn$]?ՉjԤsG "8_Dv-!7!#ȨIiQ u47|D{]Aa jص y 9HcTT qu{4D{v6ppr#  ԂLE%ˎ\6-ZN⪲U4ʫ{{@ .KmuHx*{ɹEH}#Ijf11Ah"nG+# ;iZLQH*djָsrh{vɄeӊ"G "sD&5+V0b*Qۚxlتɓm!D95jf'o1x52_z~1o} "9\޻3jb[5@ۑ|RF("8sM3MQ9 7irTǩk]lxU[GyZȃS9-uökooлx!-dUҒ-4:~Isz6-܆m`|QUҜ,7FͫM&M#GF*!;x kM%%ԍR$|PATܽ@FVʐ۷{X[tĴd21d"Oq܆ViG#ەO!+#R.ڹG| 1$>Z^J;1ع17ӏ)mơӌ ]A x5p֖ t bZ"ZM=8s~C'T!7hibnF?ˇ?Z CcVA2-&ܛRBI8-@{ vR;ېF-$y I7&V+kIv-(Z.@캑97؎BD&+m EDh %\ZkGlAs"o`IăQ~RIm۽"M Ȫ;vr7rDvND%sFqu#Xϑ&bՆx[Y#[{*Gcpj؇^ޚmCu%H#kJ'|}GۄHީ+"-5) [C\%c0BVϱF՟VlZaV^N=Ă!-8u8n B;,V.~qmIiUZւ>3k6-YhHf M7{#Ai4yT%QGLwr%9cšS*4pW@A$F Sf\I` qqG/Ũ4jĸrwUӀc!/Ci*H};uآ7rq#iDqnB3" w4Dg"-HHǸ%IP?m @n+W! -$ }3Cww$aACq;(n<=ꀃr}qMj12&W*ONT&"PARvkǸz w޴WdJ67pr[jDx21#j>+Z'U"#q鈫 'Sܜ4sC]a'kT;6z=rc/pkpbP]LGrt^hG2\aUUcq4@=1p8lqzԵ!~:os֤ܜB=Z1%twqޭ޵.39eZ8qcAHkj춚n4xH#H'/0'i\|C$qFF߭\v b!SmvI?ؿT`)7U' ]BH]i2"֛ص/7:EkZD!?bՌI4g>8}ت;HhOe$ZQ$1m As+r/4Dz=@Ъ 4Dbת\oGv4${WyPJ %h&"4u1_AU&UpyتK;~jdUDpb5VVMZA"mG;Uf]Pd8_еa:b*rD"r%x~VI$\DqNDq$7##U});DȈw"A$(mɸ"ۋۓL D N1IM\*J?YG5W~˷1kU4D{VJLE5JTM6NBD0UiBյC"7kIBXc2:r=AsiIPcT1:z6-ԃ AB1J$s4ABjqhO,qz#f&+uelDi{LbfY_Mh5ZiG:R%e8'c !F ںVD#cwM4dp-X5e8W3zTxy* CGvN(X@&[=TlH$|QQ141QډnWP?*94[ݷjɊD%liHn۹-ֈl8!4 KhH!p)mG-ܪq: cūŪD]=$Q?GHv!''9 ÏF5Di#iÉ Du˃+cPȆiHy)/o(*?BdhAN8ْ#Gr#O R R&rUţdDч0o{ކچţR!<?m c %lm5ċI4mC A>,@ @ێrLH{Q;z"_lUtOM9 6G{{iV1)wep5W\t|޵jZQ-EWs*b"j\֨(AmiRhw[{^Dr\GpBnG8@6CډnM"oĹ$2 Um1Uv.tZWޢ#QԄ3\g &* B7 d5HBDtˆ5V{{PjU>5vDGjFNQsT?0,Uю~>UR E -.=~1(NV$MHz1훊@ǭÕ>;TngB |=Ubk$1z՚HCc 5U#޴ZJ7{z_cv0ZՀB7&{ߒk]xȯA)c1V%0o|Z $ ǯ`ڭl;%(^)y*KX)B;(qQ?+a:yB_<*1 htZbN˾@?YNn=kNwU:=ZZQu3qc@Q$q@!dMz zc޸s zk'zЎ fx1b-$#jCO. !i\4AdԆc= =\ԁAP vJF \<.ui3ԉInvZ͌\QT8<.%%o5R.!/bНrؾbm%Sb]GB7RwCQ hiTiTnl#4ÚBÒLHc\/Xq5ܴ-<nBQ`Apa$a\~bfrНm3AB?xd3P)j*8 ֓XK- ضhnQbUC)`zM5M*TckF$صŭ_:5šGCZkXť#G[ִ?CnHe )^baUc%ΚB43ojUD a@pi4$O Z{(ⴝ@ci Q tCT"j4b}V*Vi.lZiTq@W!բь!2TRu%Μ3l \PHz98hDOa&*òZ94Y}~JZE*)3{H@=rss ~k6ظu.OuԔUI `}(z>*19͉t Epꪑ%jIzSٹyȆ9"RF LPj%v Cq2@h&= c$%bB=Dqr:qC#447tC+ڈerij;G2Gu4Cr#q]=YMc%!{<5H14%!ۋI-HjCU :5 {r"C-ڻx"9[&\ܚHm^Q$qUdRRQ%\IPC!ċERT %Άp#lrt~i?RimnCvJIy),I$5pn# .ܐ-"h[6G#RvGqRQHd6Cq2ځn-9 )[*2mG[G I8|1!#|"4CDh˷KpKŻQ<CRŢD"[r#UHz, Cm,"&sGVWh"ԝIugz."5.!^Ff=&&h<ХL8.(%ɚ֨ͫR1]P8 =@ ۛ2\">`u$ة4AҶk<սUGmv\1Ÿ55H<{XPw!hi zljy;ihtd03 ި>wb돍L*ԆުA޼I*AT> Թ;CH[uLڴZQ!q֒pZN d޸hg>7%0.ofs>'$͋ %\[uz@η/zCb=6j3Pb#g\39U "y=UaD?3O'oH ũjI5_Kh4P_#4JG[HP_c VW~ `%lkm,m-Hg{ԩ-y3DrHGoqUnp]*ݪĈH65Dr%䚏bWI{Jy!-Ũ$U۷t.\;XEW^ZEVܜRIW8vVJ*j6KZ6D"!"nDn1FCcrqCv-Gi1DW1DD]OO$1djP* dDn$r6HL\T }ĺ~AW*9\#IkA%5#z;%IK$46A*I9861=jNԑkAREĴu"2 tK_\`h[yjz\K -X6P2Z>^ WBhb!s=jl.[iz !InnG!JF~GWA"6]iW.Qm4ZߡWDH\JnmN+RԮq55GʞloشQ[%ۛؿ޴mUq*HZa`&.!0, jU$3ĺm${kAXvgPRR۴B}뇍5=#C2s|Lrq/9hCB?pTloN ҎA!.Gd:]7mq HB_zhϱjt[ܵ0!J?ZhFahѿ*]Gæ鿡jԷi޸ָPƪbJ*/Hj%g!80DZ]\Oqmخ%I&ԑ݋J65q rغt{fZI"izgM@Jnoh%xd RqcV*:fxLԿu.e ZGocVpJbkkz1|r yjARj%U0'zn=]eeC!\ ᪶۹k?r pP V`H3ChJʐ*@i1Vj 5V3w=RSVT*׫cFF$T1%WXq'Gh(Hn۹y5IXȉUo F} #Q QEݓFHrO2d46 ;pƆ4Fnp4bIT <<8R7qPK ے$6I6|LۮDk-v楹Ph4d5IFYTH-Wcr!BF-@#V[DNXDj69uTOC`f_;  `=KjZj5CVMkHF'yꯆ4zRIP .V]6-0yr>7ި.EWPzma0VYԆ[J&-$c#>%) ^Ŧrh%@fVlGuiL7[dԵD8Sۉ5W?vb"PCU9FA+<Y)-ZmmIkZO7qHQ8(@nMD-]@LIqj%b;Pۻ^9Ґy'n]lj"I{Ds׹(uq'#G#rDq2] &HnTG"rrQ"{TG˔"x܋"n"JqE\G_Œ PhH=U= . UM1y:#n4=[ځXA6M ą1KiG zs] HIN2*JqU^V:*Ρ[=0SU\]6_Z,ځ|&:}<}MY!ܵm50(։6˟VHL>9m *(o͋k@\$ֻFI wָ "7'P%p]94v7hd!-{L"4r=);~ji n.kM쐏?Y>6*uJHu i Tl9jp:1GGo֛P0)؈vu!Wh $wAk5xqH@ɵ c}I@p@$_nFzqnnb1..q$ZvC.>ǡCmi+MnU'aNkI!BYw} ǽ/ \[M}oDMi T![L@!;f<]@:=GZũTmu5FHcZMoۆ"=صkkhFXgےq@UpCc * jjHj"DA1#mbj=8lxqa5W15ʼ98Gq$2R~ڑ1G=UvHrrQY U]g+!j/Czňnɪsw""7%"Ewڈݨwۏr@rDCv-G%wHU^ߚI"nzMjGMDwCM; 9GnT@>;滘[#rW* ʭkOxy )R4qh7]Gv7 9 jhC ^1ŻVdG.^>JC#vmRHv.(Sۋn-IĄUsP4i䚎MVW1WFC2#5żOCCq"O${J2Cn@nW^*͐ XPDA;dUSA{DK^bV8CU9SifẶd[-WIH'w'KQjq5p4*ZͧɁWٿKbJ|twmָzX?r 45uZkO:w~na㵊IPmcmԈ}<䣵\V񴭏EVv|:d&j#cްQCwmCȔ?Kx;pܝ\gj%dWJLHڧ ,Wp h}f_ܿX#͏{&鴖t4" ķ&lDi%Hh~Hn6M܆ |[BGUzD9E[G&bpJJ U:#TGԾRI]Gib}J;4=܎B{]ȸ(~Hڈ욭ڪ܈lHELr"{hqIGo HrQF*J$' {ɓP!jhN)ĉ)GvRP݋HcnmC2J˘A{RZ #}#چ5 {mi츣Z-: IpѪOR7 TnŪh U #Pݹ[$4=ܤ욈=dCpVG$Jh^I4m!4rj8F)+ 4H-$9 jƒS\=F1(nEZԍ֏pi` 7[u> MH2vfMn (kS9COZI&֑!RG\B>ZkJ)R1:H#z*|J=z7D$2e*ܑu)^HŤ"!;jԜIrխ\EVH'Dw2&-HDpT4y((CD5_pHif"MIu%)DAH Ԓr"vW$GD j=9aQ;ͨ&[P͵IcPAT;\$A*Óvrr($neۑ!l~hy T](OzI%.Tjjg~ʐRZJFdAE$1WW9w.䕱W'wD%`ݫ!kƭ +Di$GRVȉbN$KbwmĊ%cu3O*?إ8v@C?ؤ9"xdP܇WNHHxSX1ҎFm*Y+dCpw$K{Z_܀X!^(c>H~(>"BeC$FHhw2C&MleDi$prC6.̽@BdCݓWo$7%gxBFPxF<5-Zbd[p?5V$B"\@pDCo%+mۖb<5pc."8j(ZD᪣ TOQ{Q1䚈oLK]A zlXa]6KVZQe^:"8qrțU#&C*n$(} 7&(d@Cr=)1b9E\y!G)sڨqWY~lcz4&OlT>BQDhǓ4d6\!rl]Ǔ8KjP8rpVGL۵\D7n]Tr]̔q\r=U!B=Dmr1 g*Jq&lW25 ܁oCr#屨G2 ܚ25U ۻj iFr.d'j+ڀʭN5pqv 4%$HmT]9FXܓWo$5!2VP47 E ĊDB(Utv5p]Dpv T&DFȶ5{+mT%)YK&BdBdQȈ=I&\+lGPܹըleWqȞ*]UnCPT|2d8#WwMJqi6-Kjm8 \\`c%]6l޴]7IbB{D7ߖē8kN⣉0GT#WOD3M]QCr&ۛQ|/j%>DR۵+sjFA[DCwCLQۉ}˧nĈsjA%ZʙQ=4vG&ܢq DZ˜y dj}]SxB4tCܙ6$\XwFWr54֛Q@ചjf>/|0@n-Cj7Ǔ%T}G*bChWlTP(֛FHW ָ{ԍ\upⴝBFg{(tړT[3TOV]R5o*zzթZm 夵uFK@vhc"4xr)j2jqT ;4FU߸3Tu0?uPۛu! T,G[Q8UdRG"۵ d\ چȄɪGDR\Cm$}꼃v} #3Mˡ{!=0Lڨ5Kodũhd `3ކ6(n4pUf||PA%%r@Z1[nC ȍW"xy( I*F{޸1×FzkM6ڐz{АiIPpk\@ 4A.ڮd5UuUٟPwbWn6=N15ՀH:c3@F.-QC!;r ;vѐy= Di2گ('҉} CpCjթkUrwdF:6nU%V[gU᫳QL@gj!ADhR:I)H$HJ2[Y5HɪyZ$P' $API+(f˔^W{LWQ_eCarED;vǚ PH ovȆ`(*$ݾCpDiɒI.T%pH#rvx(JqD! x+DU~[m'rƏ p^HPjd mVxW+X4azr؆u?NHԲHqW(Q޻" TP܆1ܢL)&덹=nJy" dqj!!j*Uqn(mrDpw!ۋQn+#nd\~H{3 )m^H$Z5#}+\2EPLHb0$MW  [ =CCj;I.Kךd$OAL{#A`FQ Z-8,?B6BM֨ OT9<$Wdksjv$vAHh^\jȊ;w#䈈ݨFRA%.I #\5$6$6Uň82(Mw#vf[I"4J)Hemd+C% 7!rMR"!Dv≩j¥fpb2or7((huI:zA(cȎlH4dq#@ چo2bKUIc#ɵ ^QǕQW_J1hyۼKhn}%gr9+4XHzT"6npsi!0sI#rpE i~! r'bD6>(Jєrz>/4FR]WW9 d\G~yxDjsCƀKm ~J$Fmې14 gr'CȄO&eK%ǒ#wn۶DCjw!4: 6͑(H6Db]Va4J0cS4.q$d$[o oHDښ%AD'.jA!ky C͎VP8r?p<}X?Z6rr^*lh>;P;Cn(b;jxî#ŻUnɨbc^(bIDqW6z#WQ@^% 'Ԇw#GfHfE+cGr5xVR\H Z47Kʑp]1H%mCMD1⭢5wTR܀NI#qDjQG1AR"#ېm';$[^dqj #pϕ7mCCC98LQ (wpqr5᫄\98Srhj/Dj#I&Aq1o)n]w*𓸆0 ܺ7\ vB9uM%g#+epHD ۑI<ɪڸUM6!H1b2K#8hڤ5phfF=@KKHޣM* =k7VK˜+^JG.KpI$WnJ#+}Kj""4A.D%\TbHdC |W9EuI#%;D;v-Id5Rh%׼I*HG25s'f,Q (I)nDu_2Hm\<*)>mCvHjhcCZbj ?1Feq \Vj ZC&G"n]ȡqiG%,!=q A 1G%H$n"&r2G!+""_ Zȍ($BP^\L'$Krj!\DiEU㛕@1hڮ$p"5E\Cd rnCW؆E2;q TdtÍ''%Ivwy)DӨ hz$|[a{|nCqj 8x{I w sQۋBEQRCrRɒ R""& +(R$qD(\咖.C@ #V79`*%w#I0CڱSy(!or*dP@0 95G%p]Q$~-]AHrR.CqzCnhG頗ة(ĉFIXǎhgVyۋRp}hqsc EAXH&+#ēD$65BnWN T %H*.Կ+VvMUnnO%+YZHqvpC67/r2s'(jH;UdlUtG4CR h&JI7jԩIrj-G7!ۚ<77rɥIA-`zhnCɯWF( \ ďvˎDhc2b5;ߓܮ(t)=um7Q^.TCچGj%V VF6r&v"Ȉ܇P8݂j/{?Vu%g0+[5>b /ё9EIEI LڈᒻKLv۰s<xOG%_҈d~(dHQ! '_+DqQː۷Q ɋ84R!bTB#mY+5TOvDj W1C Q 8[srW'{žd6$TqCq%iDrr]9`E܏.#ǒ#@dDC/G&Mv᣻$@$ܤM܉n.D⭜NW2]wbdr( ػr{N8-ßb*'#@GwdȎۓWq dSjpT,Q#Cv.^MV!qr#rj(2G4C8#QQIy›\w(<\$I@†1U;<ےܤ0KImTܤ ڀBEH\"dr1Q*֡K~HUL|bX>4Omv4@$5Hkv;}}"2C^~(tuX"b'QÊ),FCux hnY!iIvnz![s!rLP8ܜCKj1܁ېFH;h=<.D1UmG'rյAoUd#9jGh.TWs{^Pd#>ǭY;riP}M!"RTd2ȓZ/̩A9u%A-7U\wZD ԏ5Hh%:mP{}_ÝPmHWVG;1x-ֆ3ª5Iˇ PGb1v M\?ZH!q\&ZY 51io̫A=pr_Z!2oVԫ#E_n1W"U&R0⎞ݨDj$r#V-@ɋ}Ɉ܀1bCHdb)#[Hv Cݕcݚ9 7_5 [PJϱs!!E\!ZC<F6[@ "5#v*H|DvMڮ &G$wr1CjC]xADn$Mڤ46C) 1˟r$Cp@iGs$vcC ׹ {WNI9iݓQI.ܼdrw/r{U](=\\9hP7ص&e=Dj8;=CZaA8{QxRFss o'T=R9*Yn"(Iu&sCpZ^*Y"8KM8y!q ?.k#[u;mOvm$3!G(5jvq5c(f\n@DvKj8jMOv.*#6ibJ{T ihȉEj@y}).ڒ!hݬD&NW#M*DVƇGW {=t&A]- Ԃ _(5KH&h+abR㝦%k\?_rw![! &[r99^|\#77j16I1:`夻2{@!C]`FN_GWSz-?-HGG%\}蔵W 6KsU[PH5 ]."WdA#-(w#¨!kvȄQ dE"bEJjjM]^7k(i9 ĹpC-v8WN8 /BCC ":qC dJ 2QplDͪG \Us$FUn\AcW/r*% ;e.vUzIHc$Z;ͨܢ4M@i$7$qŸ!]895T%1I ËCRq RkV` ExC:2nnⳤ܈K][ZD:S*6k9HhhddvzomT=ےD*;mJ/C8Uҏ(%E0EHR"ljHw䥊}(H]HDh⭒.QuYr8.D$jOC/7oY~(?ҘA(mݛU[Pdڈ2EȍhnYS( p; HK@Yy <^r퓗lCpFDn*OmRxrj%7rI]5 ljqGnےE@v%z$ZWϨ4o"\Qv]Q'r%rD!C"@"(p\$QUA9hmKܒ8.9 طjMDڇnHfsQ.dqŪ@HQCRly"D *Q9x۹n fIS؉rV ܆O6;]Ȯ=&8+$!xӒ^('ø%%Ȉ۹U ԇ 4rUn2bs-*#<Q-O^0\??U̐<"vz!Fj#IGmG]4"D]zݼq3 w,X5~Y (C.ƫ$*zTu?DrGq(%XIxQCqlchCAN5PjܯG(]a7;k6ƮG+Ë(֏G⺗4dɽMD1,D{-ZUq}j G"8rGn-Uc'G"\!HP bzZrNؿ?mcȨ܀vTqCr2C#I(TH<rxV oݪ'_H"SŪ1^*L= 7 -CȕǏ C]iڻ^dww Km܏N<|5fcvHaTʟr<%xynD6ݨm6Bryy!6(sv/$GH0|d=B%-!epA"O׮i>px; ":-ڭ vC2Ze@֠܉Nr5J$ |/F*>fGh2W ʱTT%܋p#U\$GVECvJ[QsD z]Ymu !.)QC&.T89w\0FDHjQ$!!+GR*;N~hj~PAC0!Q"%F%$73ȎK!j ݴNO] E")\pթkHE^2Eğީ*-rjPqw2TaM_c؇J;m:DKvj#"x)r# Oo`Ҁ6s5"*D#֏J9(EPIljIx!ۊr!]Ȣ5Q վ7 746FBk/4 dB9At:hߚ"DAϔ.Cj#w$چnqt*9 !*&#NG K5DVϒ;ܻR#H$LD<\InD.C1@hir;ݹdU'$;jGDs')#w;yj;r&MQ@C11ڀjB ԄD C܇˧p4y.HdJłG/$0(nRFQ UM&H$łKwnC0(9wղ[C CiGP79G QxjmD%%(DiRQHjDRd\KPpOh8H6sJ^ ۨڿ/O;rmKZG %ij sZ˕J_jqQWIQ/#fmMly* a܆m*qKDwd"[^7 T$U۵>h dP2! R;n rR(#Um=ꊑ\R ']a"WEcB`ॊ&r"D>c UI*ڗ8FE3\ jv)[5Hd#B#2x*ZnƱep " DHd(ܻrR$ xb#6.Cis>h<~Kj'XI3G"ktoЁFH "nD"%>7{z\LHYrղ!j$~d#kZYxY0D\" Q$h"D-Y"[\j(<چBb2I=v͹ÓQb\*C%,\N\pYG%"(K S\%Dh _׊rr@$M'Ê' Dvlnj;4BJ [K'(G]R$P$FNDh!J-546Dh'D)!I#DCPƀL~ڐ jDj&.QW1M܈IȖ⣹ĸȖ$;PJp9E*޵!XG'.#I&;B)J#@m9HAje(C(i.92wr#jҷ FrCr_mz>RCw!T*&h{<ۊA+##MlL,Pݒ&EIY CwDo!)m"@&HݪJ"]j4:Sſ"8x86\4;rCm)erk܉qHÓRTFMU&9&ի8(7އNy4"`#@/rT2bѨD&F$G!}'`CڣڥdV?z"\&\n%y/w1UE$C$JL.uCk %Uu4:%EěrWQ) ËVɒW9 VQ!pD;jOۛ 4\@3sk i:qY?ڭ+G nr#rV}nr <?Ӓ9I^QQCrqDvN %lJ$RQ')#FF" ǕhLjUm U6@i"T=qLѐpwIKq |Սf!ͨEw"Z(<ꯇbАPoջQWIs%8#nLpmX) [ڪVW4H&X+j8qYPLIYкŨcPSYOB\/R܏jCizh1öJ*;B[Q)s [K@D%:pnCD%=G]}6.D$2RJRKM( s{FmC 2VH`I òqhQGq;UBhn9Lj#A$}[R=яއ،c ~- r%F5B[!r@p(vDF>;!UpmiP95P-E8D/m  G pPChTi"AKNWlDCmQdr-Vآn+ڮ!["` qc!kNAk%V!qr#I&mCn3M"E@oL74U4@n;[$Ց*Q㚫i>Ќ6rW2nJQR$;hQ\ֻjB=-ta) S%Z2b۲uZ=D!k#O%vH笛|7z)HkC) {Q?rF/z9#'fՑ9w9EY\W9L7_-M)0{>\Ayq1}\'UHF9i< ڕU'Ra~VC(KD7b)Kq|6\*w9Rkl(;nҒNC8@ȕ ܆DNZ0! / ͕ڈdP8 !E9g;FS.JJmD GjdKMnn_umPyEHp֮ijGFo\QF>GtorL_#6];DI!q 4 w$4)G.GqUKbP+4bj4x7$ANCh$2i'Hy [R/͍:uWx.܈\ԉ˷*8E哺y\Co檃J/KM2G޻R[ڤ98h $LPboBbD=\XB4dVI]ܓH%o%s.]y"Tcj#P*D<؉PA=7jGڤ5drvIWF"Q<ڎ=CpH@p! TbOv׈R#!o+vy(oMb2F8F) E Gmy]s~l_z ℐz ܥyERTw3sbH.%;ÛWo-} ː2 ^ +.!wkQ/PNj|QD՛sصPemQ, Zm-&"R8s7dF5%}D/rCP LކB|TEI۔TU 5@嬘A*JWӌͦ [rv UddܜY#Aw8H)hu?DGrmI$ , ( Ê 9꾞E6Hdɨm zCQ]"rbPD{1DQ`nfr-D!;j-DCpNګZoDՈW; C&#~[Wo@1Cچ5"wPDjDZAݤ:q۶Ay)UD6]]"_bw蒏1Q/GݒWr+E*G+/"w ϸ[ƈܭ%\Cm3mRC)-Uz}{^8?4޸"mbcд: ",qHm%ۏлܕ) HI9`HhJ') wmI ء ޾pU]qx 0}^oCih$CRU^F"m]"bN4GbAWXA{Xc4>(v-K&"TU/i4RܺVTlCKRQDFX8ʭqPq6Z LDvMGj! q CǑ))2܏T1cC$nf'On z4A blVTBTi; V(KRxԹěIii7!7 x#<(Ĵ*6/rz!;hqGR%;j@q>,>oj2Ln<*6ӌUP^pϡjUX ZF'#i8H(vjxگ]-YMtsԉ Ն*H˶*>"#HvRQvsq6\Eor m#waEDnuV)o9sj.5 #wPD~j:rD@ڽ.`$LT ڽʑē|hz(xVAURDd :ɞic!J v(^7+hvCUw7.rJCm٭'GQILkp9#0TK6jԵ 3޴&C 6E@@!2"ȵ Ê9?] :1٧T,ݶ؈cDq֢XԔHFvgwD\;nCqܥ(tAU}}OJH7UG`DKvD\܀zd@hnSDvr1NC1.JGoGmG0IJ8cbQ.:CݛP4o~ d/52j"["z .q"m]FniPi1[Udqި){cRaZ5osKC&uu$Dq$QW+JH$HM k겹wb7cz "5 6(4kĴ936r% 5*S ok֭e0/& UP|$:Zs$8!r&qi`I9PTthEG@Aͨz=%M`E~+w["|֚At1@8 qGڽVǒp9h:QGFAw!G^\IGF0w 2]9-)mDDCQX)1G&',s⡻qPH hڼs$ Hf"xrD!Hm1ZaҌAirRKRUR$2 y P8߸ڑqpĜF9"7.ܐ{Q9+$C@RlR䈢=,QG>$ڢsۓG! 7D [N&נ!m].'!4!"42d}w.5H# ۼɨn$Tkmۗv^*#Z~ Tx-6w%D ;rrqG7MZ1*+aCi,͈FA ({jk1 #i3آ !ҏ" wZ2M;rp$;mqPǦrc-qr#FQĊU8G$EIE KܢE0W'z;hd&(mܵgR'o#MjNŴ[# 1㻐ڈD6bK]QRC:Ҏ7&Eƨ"g8/]JK -U&!rK.RKqjFP73'#ٱ\zBvZf UnyQsU-DvKQ@4tC |+CKviR8I+dPA5b5.IH" CiDvߵUWs.iŢ@1h$LP9 ["r@"0rG5VDcfH91Dh"2Ўڹ\R$TFT$CR\;hZ /C q t9U(5to'#O$2H ZI URd,")*5docŻX0[j#ۋ j Է.!'VYr)@6$ڻe[:P܁P;n!G%pCicM-[ZAf!ح F0hnQ]Rs!nƢS."nDi2C ~=x?!U҂Tb678P?ED%1C!8R $Cp8j@ҎJ(rEdPʿVmrnI&]8:z{mjԪ }({B>(J#GmWrHU!> b]5["!1hǴH'Hn'C!r9em W6CԈA\ZQ+`P1 cIQsj5$~T9Riq~JH('lY#M|؁P#1CpKhmZ‘O 1‚{G'!Wm䚎AW2FF9S!G$fAn: @vVRhc=CV0d{imC_?PF2bGbdGHX-Uwc_ƪ/!RݹU-D Dz۵= #mK.qjįH@d&q5C !jFr=u]4oD6wUn.UUd%4'ച*A{Q42VC6u#"8iEphcܥQI5l@6#"ԇԗn*8{yDj0׎ u":7w"FH)tvݦDi$*#tS6hn?q muD~!G;+g#\YotRWw2d^E{817r"+h}؏zus-huC4:Bt+[ॹZ-}>DE&[W|jCCjEK4R ]|{5dfCvƪJd.Dx5 G NGS% e:#ד JݗCtC6[ȋnDqwDCn*YLPȖ޴-H):s\j6W\MHMv\6)ȍ%Vc5lq!H(OͿjt+PkZi)6j\;^V.EuLPitmtnr*6וW 1ȅTq@!@ )r8jiy[&*Du ZmGhqDr"dQ,w`awERmdRIi54fUzSJal&F,Q"r99&CDfYEހțP:JC!T zU-_Hک W*}z#gԎMr"mCu^JO]='Cqf&9 dWr #]?Epv59w dՉͯjǦ 7 6M܆l|)i?_ݨ7#r'#Zh~&n@6C(m<b ;RVCʾZ5V<ȗ"N9[D!sk[#/Dr# +QH#IvAj!QL5ʒqnm܈AFMU L $]AD$Kqވ>7HtKڽȃW ;܏rMG&M$$1S!(!=]![$,JҸ?-j]Q"+.r Fj$Ho@&qVƈBdy VMr%CUm#@ցV2Eȍ\P**%)"(,5Ii#G.c/]Q]}.w(#]QV:qsC"#dR܉(\ 7r%9 KpqDR%$6fAnm"E Q=F4 Iԯڎ29mACpƽnݚ&V@28j8AG8=O꾳R)I8pDDHZLA!&Dy!^-\;U{Kr"9U[tZIKwHk\܇U"qC&s ~*#C 2@V1=G%$=]xtM;މ Hdҳ^8+ $rnCܢIr3j-RoM#:Aގv5t?QC!u+$= .QvhxrNVǒrmڽ1@8Zuƺ $E>c!MGDnQY)Fn䢤$c#T엹EIJHIw∥ d]@Dd6@nѢE\CW1 ?Uf6p{m\E$omT2mLCr֨7(;j#~"r#J95MNoRC܊#m4 nJ;Q{-UGjC 41^թd&!\!@" !#UEʂ(9;HLVYANdUcilV>ѽHqpTY/ԨzеmXhI&ث.˟G*o9RiL͈t]FL5d`"%UyO^1tG!Ӟ./)NCNR$8cMJ$؈=A2چ-n1QɓPc CQ?R.l{0C6"y=adQDvVܚۑ97.(b;!=B#GMcEYDZHOoQR7ft!&*6xDr+dԴ*kۘR q$CQ$TIR[q @'(E"bz ;}Q(&hoӜXrv#/*`۷H0K&竇ԸV- 4b6}U5i=0(Z*$CWq Aox1Uwb"#pP4qRS YjnAv2Cn: 3mZnU#׮N乒&hy z\\* i7k5-n@M C]D q&0Y" G=glPLQysI5\QC445%QQ]C0D%#p͊Yr]: !4A-,Lͩiȳ7.Du[QE"GIEvG/͉DmIG%q@@-܆ɨmūˊ=9sQj^͋DG oi"Jařdq[>!k7jCFAMؒص*2KOz% QOTڐ}Uz=0]Ud!L*!UӎㄆbD3& D*nz=]r#H>w2@ !MP|v׹^*C[Qʐ#hG&NVF9yrv#A&۶r U!lrr%Uc؎G H/rg.ʒԩ.Etx4qv"8Mۄ(*,Q عÐ+{4:[Gw #oƩ:BrzWPRɒ92j5ǓچEd nJ$'(W۹;Pꇏ wr."9wA%{@" ăDrjFD7-Tn`!v%!ܒP!kfFM_ Fܢ42b{ܵ!~_sִ9!$SevF%L Ts%WƸ7J$@*#h{PU!oS#&ʾCo܇ȍX+NJ75Dh|ǹ*!$17d4^V̭ iЛj8CcTղD(4!Z<|T!2ǹU1cSڮ+cQdڤ1mR$TOQ-+*&/ܥQW1vV3;U{IqQL6|ղHhܥDPH7=jUU5gdT#{E\ÓE5%P܆/%KCmܸVՇT6UrhGzablb&G""/EFۗQRF 퍪J9KW]Wq=7qbq6"/%"Qj>^C\qج*LHBE$6fCh]A5$6%JKo$1܈A˖i$"q ԆoJxfGz!*D1ږ0sԕ2*&ЫB$K 3P1C0ݨhn$ވBIMr^$JWrͯW h'o'r]H~׫G%Q"iE3zr'DժO:p[/%@huju#0hz3;7!3Wm"EU~Av/77EAo]%/ђF]Ci ZwE&@m@7+rUdHMR=4I$w$>.,&bDnQYŸxolD >@nRSc !vԐ5"!qCG"4Q"=IGr!j9IwyEmQ%GTӘY36=&`?H 8.`B"  U 9pr;Iv+ !5"E {AR1x)IVFubhȇ]vBŘ" )] tCԈ7Zz1@<)i5A c܊jպ WRVEno@%i$'تZ`1Co@f׮VvQZh*y4OUJ89$}R\OWY!!`# |Or[U:b 9"r#I'";6H7Y>[D] ܀OYȡ[%CD&+6C h!m8.!q9 U6 D6\y!9.Ԍ Mj5V"%E" LB#G,bK܆3 3$vy"Vϖ TKڈEU2=A^\2I\-4ԗ.@Z; `2drINDC(vV5ܒ#ȤӊJ#vHuTDxUZh2.v V|M"5^e;NVv܁ej.(@jDU$!y8JD'eW'! w$y Q-$%UYJ?ۻI+?#"8P *UҒ#1_ *LDϷ%P8rj>V0sH7WQ 䥥L(HhڈŢCFGnz[*M"P)HBICK_渗^Goz) o/Nr;'y []ȵKw/O.RP{>7+g#h$)Dh{ W;hmC%&J*H{.CC4:4ހ=hnF oODL=z&樏ں=j=PoC%nQCV:ċ"\%0}p.CScW\CöN1LD ˶W]c&6ÔT/Itp-Dq RU^>h #FL̃8Kw.TyI|Y-V &AmbFSmhfGCG'#܈U뚐~Y% >n*Hn"U1N]Q "w7(FQ)D& d]-yFݪ}|1DvCGֈອ6̐ {a!Sd\ŪFk $Kk5arqL"LʀadQ8]ȡ].r(cT$\D3MDr#Pܬ1CC uw(& CMN8T?jA9llDJZË܀D>mM\WFKG^0="ځבȄL2?J5"(ːr6[^FRW5VN+jDDAERU|adn8pR-=PT=Z.ݪ:M3}TGmGώz 7RݒsU7̘ 4RD=܆I_" (mIݨm"6 Y* %z[bJX7ZsU%E$\-Di֢y(qGD |\-CȎ F!hԗ1E%+9HcMܿ)T!ieT$[Vn '!wq7nD&+U۶n@GmDn.@ۂ8&5KH@06Cp!_=a5Ӑf%M>#ǔ@Ep[OTUN<^2EvqrɎתB'(89ݧ jZn_s&v1J,6(Ũn5! 'AV2b\Ev *h'CpDEVi$RDpPdmDCrRp;Y&P4 {42!b#Q%^ڏTr{Y>"r#Hy(r)!E@&D46$v\,Eo8 Ty|To =Jɰk!m@rz#zP1Úɷ6pb#+\g޼Z0Cp⭢8| UKUWlFF#ֵKARxJ;dPEB9kZ6ƭ&rG ƭUJ;P1(\"(%%Dݨn2} Èsհ}[99C`\uW9\$m#vCjGlo݊jQKT86BMܫKn]q#b669v (=qۉ*7{^\QGD?{]@J# /3D&]/;j*Z ^)r) \&(ډYpI%L!m9\Po.Cr*H- RR::7ޮ|n+ ws*JP c 9/j*CT~CDm9C'.hc#[JP)GzIEubj;|-.KժO"JcoC.]V7{ 41Aw GTJ~ O IଞJY{I\CClq2>&櫘r$Rډm[QCn+%ڑ L/A=/ɨyRjiL9Drmfϵ^G|& \PKwIAM]eXᡶ]UjB4] -:EUkT%{!rv;jZjpRj5,Qv!Z{5ħA{{ڈ@D6Xw"RM*$ncQRǗqHR@06PSՐ!:vHrQK(G'RUDrm ,WGq -Xcn5w;r7Th$;ڢ2+C +;cCwCqNjTFbhc磌&A-m $ݯDnVjj%-&;%aCm 9K-#QB!I͕]E}!rCQDiy7j(8J47! $7 W(G`h9uPL@ޣ7tǃXD1"<MDJvCL\ j<ʀk"Sd^ЎHw"BP447 D$ZlNzW(m}uϊ#+*5Vi]Q8 hÖhw-܆+c\T$A*+ %Dr!4B0*) OVѴ3\( ӌa61hwچ5D*Fhi5qnt͏DӞJCTT%Kĺ~%ۊ>do2j/oq 8ܤQ"H#Jdި4:ũŐwЛ$ջMr%]fF5XkBozF6H˗qHqCQ$\D55%芗1G"Z۵Y8H܎ܚY$EsRP){:Ew^VHy=U'( SdhIk޵jܨ3ށ]Q j>cQ$\*69bH5Dj9"4h#%:[r=9UIl#pdتLWڴdCOleTTqo9j@J 8JDW),1Ò4Ɉc<϶2+9DJL-؈B tM3[h|z @'7kV!.\QۻrZ4ѹ١Rv#pHGb$@[5$BR^hA≵Uk8wV@.]-H`Wn\D2N:B;Ɉ>JW:K(P%x 0%VYfCW ڤdcv EC%sH\^7?ʚa0XI Lv7rk(Ha%lՍ&~PE?2Z oG*j́CzC! IEKG#Cw!o)z$  N<~^JʍcU i `i܎bEI[Ũ.(6HfvmDCRQ+q۞VpW C%fӷ7<1 r%RQ?L Ëi4u3^7p dUobm'i]nד^M^6\|>(R; 9y4hGP.c!"lJ.zᨫU)*i͘7V,)5H [UIH6kUw"Zz-YyHqr"55tڸIs%Ei%hFG؎2TBڊh풘zj($NR"ʮ]ގ]ȪM{B \>S6 K_Noc5 nJ[q]Q]d Vw-6R8m>zDwn*G@6jg!h:Q-rDr#HMD bE{U 8q؆BIH]@nRK#iBaM $Ip Ɏ7$Cez:G9\"C#I{E\I4htه6t#.v<^!^Gl{Y(;n)(nݾ hQWx0Dpk%V!Q^i7"S^)\DcMCh]4]w&׎hI5"vR~= yBLqcۚ 9ۋ-\\-kA9$"1 w"rڈq0{%%+ڵ4@m$A~PmTs6kzq֢8yr Yrr#m"sD Jg7 rnZsC h$Qȋ$7MMI5jF<H%mڤE KCP9{)HHjr9 Pɋ7)]9"45[&Jr1GUA#U$܆ۑ H?Eִ[n(vz%)>dDoކ /D1$Ѣm!.w [aGvXADm\\ ~^}<Iu%S.@$ҢsTQDKx 5;R(}Vh"#V{J?)\LyGw9 mG ?]G ğÝ+*DCnI;[EE[Hd -UUEWSy\"!;jN~HaHx8j]..RB+|⬝ c\Ү|7y)&@JmbԸ5}pSSvCj**ChI WU;5R;aPH4rdL[qW8 oD@bR!$~srm w!rjQQQ"mnTHjXbyrQ=z܇N9+˹E$\r^;eUIŕ.!!LTLz%?9/PAخ(\K;OT x1NjQmA%CND05wAC ]MyZm&&DC01 1Aj/W4w5 F\Gr99RSrG1F"*D x;j\9iU}@G=csjv!v-UcC!2Q9V1D?ҥ@^QTwsŪ'oʤnflCo+g\욏F2hܢDGbG&O,'p{}  pDw"!ӒNWK؎LNȏVWyyrG 16i&{ɤr(j %GЏJH6Dj%8x ] gJLnעiQR7myKmڵ*^mIׯeb%;5jqCp7 Rە#Ҹ~{՚ g7m,rrʼ:G dǗq jCC 7#JŢUtMEqݲEG2]gR GjxrrZmU]I iQJ(9GzԛW/ODnHHɻQ _{=2E`qrv! ܀6rwB#- ;Gn{"\G۽ˣ]xRS=DG'W+JX2)QmCr2-CAC U `blT#D65H`o.LNbŜE c]v5?Ŷ)i4&4;j|L|wղ%AĢ1:҈چLP)F63tts#R qGVPUc!{ [GP Ucrz is7=t䋕ZQ:|pDq$%RR(-{QI+Ȅc 16[ m10ChF+Ǔ?c<(wFƱh%lr?qtt8w P+#+R%}bGѓ/,Ev9Gr؁j#HUIDAd&YXY(rظP!RL ǩkPûM*~= '/q_FΚO2 H%(z$1r^MRz@U{+zH**Oǝ W7\<$l!sr) DXD1՝Xw'ڷĴUt!^ԊkXU} NR$WŠGvcK%QR!8@$QQCRWVÔTy |K\>& B9|^*2/ivC[j(ҡJ3|?C@&-ح%ќ(?z?ގݹU5&MGso$@ HHG=I JI{׊6HeՈyP*w=am!ZN2x\mDy(hj!6MԂ*irQUY8 =<@6&7vԐƆY(r .CGmb!IUv"v硅wva rV6kAյ6Uc[V2H"/H)bF.ܐ mA!RSw&7mCi#仒r, {wIc֯HmQ/Ū*$AhuCENeq 4kݷG+V!x}JqV$BjU#Qm!OuM͈QT

m>g1TR Q0TڢJZq\$P1G&W;I )9|djz菦$_hQi2VIeGN]TPܮmCv>JR!12!#mDo#VH;dw.*( sUJ2BHA P;)O"\PIQm 9ZD ܜjs*#$47-Cq U_]a")D|x\s~p;br( c]F u1$6MYF-ܤy;j "|%H\ nKFb\z1vbaUm!i͹{ܣTQ58ɳzv5t^+vYø1c"9q. #sz% 7[DjvG|HaĂFya)ij^ *0D6F$VɊUpgqCIQMqD OqȆ&*H Wp}MDRQLCj*+qo9nCh7MCWFCډJ~hDD/@ 'nz[HmHvO=]$99 c hUwH&( RVƯvG c+cUè <=ZO`ޭLAbMuWTB55P c5RQQH$; !g$2 Ϙ[t$LH9@wyې)@Cs_q-mcq0WOH윣W/r#I&k_ud=*\y/%!bp/rW8X:W3| r;ZӎeŜK}1wB xnSTmx1 )G4gyr#Dj I$3P[nj$""7Lܢצ.C%$EQwNrDj'))(]rjUH<\B]q~- ۜn(FF;$NVYC055dRڈۋr]7o$KR8\)(RJ?M-BA>)d<Kb# gQ$ ˷&;ӀMR:ċRR;vdA4"%\a㚊>sG9BJ(tn=b!i'd!RqKM[|HݨryHy!x"#HkMج%Krj! -ȃ<]?RQDj H[Ǧ w[ZJ91+ԒD &r&(&HuyM'܆/j!Vm DRA@ףմ}V/@2ͯC&.CR6V5Ȉ*B1ȕ#3rH4nenQNqEdaK_Fz!}Q3 pT?_Fm6ЁYW"m &(R$A5[žnR]Cj5KYD%YG"(.~L=A9KFă\~(Dn+ˑj!r#H$P8,vC"DX\p H#C+ɪ JQ7+cDjP"JS5y*J{G$ ImV[EDs$J!y ha$\loE-DRD8v*.CȖ*UueirZӮŊd\89Y7 H]ȷ}Hø?O("#Qny}Wr#v8qDnHu%;3ZM)za&U.ڿbmNhojIڨ T;rqRڮW-!{݋QQY@QjVU>,آKsU]F#? ܆/%W޺[mpz#.9 AĶl}RmRmKj%FFr[GQiE%7ހ-kPպʂL,Dq$lQZTv%`+WQYwX/DPq5Th#ⴚpH?/zvW ;j(/R ځԣb%5yr&l)Q.RGdH-D'ַńQJF*J2L=P7WkNsH7+ %C9 G #FFw.]L4D1">**^砈cH$D8rr!4z -޻xYǩ=Nj!' c9/N.Wm}[&{2 Kj]9A+VjKIGRCm!e863z!Kw9)(}S4l#CA q]eܢS9T|hmܘuJHE 䒠ěچ7)~8ԅw,-P7!Jlo1&C9K)?or+k>DR!{|B B[ŻPܽ#I-+`q ȃm ǒ5EWO1oކAD\#HlnDhjHRQzivj27և d]̐5EDrCCn.Crw( ^]\RԻhn#A!rGMCi2CjQD".#G&b!dj Ɋ j!#Ch k}#-Rԩ.R]@+*i͛L8=WTĘ^A/ve*޴Ohd$܆.ڏ/jb; kPfs%A 4Rbl//@mXb؏GWpb; H*~=)G7.Wsp㗇28wjYWl%TъRQ@0d CQQ1"a˸-MWlFi bE H!c\rD2 $ Qڭ ji! rC*$'o%_| z"!*(y[#$pC fX .ڇK_l{A5^3sO.qDv>1*ܻpƉp^^(c.Aw1KLp@&AGRI{[KܣCLCQ&(mG&#ZH!vݚp8"p-Gn{p9 SZVK`-Ht㓶VW;XOS9v";&y(.T=揻QQ;Un˸h {䚈\D Ǽ(:n"mW{IHHnr!Rs+.]*9rGKR}>d!hkڈ7Btf" o#C8"-O"@&m`K-&*%zGKQy؈ *#+f%؏ǔC| cXԵJ[&PpADZUM;Jj9؈ JD0C8θTǢ4މ~*'VnɻyI~,ZI [y[RQ.$""]k)+#G+jCCMD8Uvs:D&%d@&[ݵ DD8 ^RQ"/.KUAkZq0lbH) Ivw'{1Ej(H&ߟ.(*7x.R='5\ha>HCĨK#϶ QU,])UDnCrz&z ċڣ).Ci)+D40NCqyIKFNZH dj5ܒcDpVRdW"x ?̎W\dTUGGkpUtDvmi'r]P?! 4@RKػwX8kܑ, ܈*$ȃ:(hCvMQ$T%lW%^(K]zHa⭓%\RQB(SGQlu9Cm0JIɊ$9 HH|2)zO֩=o.@7"5H`diMr0_JOx/H܏GW dxDV4U{n" q=D!g1k&@Au"()! )Al{POA?H\ܕ\ &/^$7. |\\ #qMG܎m٨#DA\JOt 7rqvF\0Kꮟjj;{[QɊ8w1^N^MQRQ]]q:F ‚Gi1ڈj\RچRܣ>*?#yxrv7C"F^zs-Di/2.BG5y\peC"=9ڇ\dkgpjǶAc*JK8tjJ@3㛕~V7P8֩.H8G2b( $/b(m&i7[l㜮q5InDn-*#Hv99 'qjLK廈d+˔Iʯ8CRizM58 m DC _]эcɛMsׇ=+%oQ{~Rz"D;hmRɨ YH25vG.Cn(TԹ ##\9-s Cy|QRDi%Cr{NV12C =˾ȯ$"!R]'[DjDr!*Gmjj>Di $7\Q \Ԅ1 fIQ.+`2/j!r &a IXBQ"Qpw*uđNq}J o? oJ=XwuWFtJېȽ=(#OJ9. ~-[I\"WqG%qQD"#Q >]z=J8kjq ymCh^q5zm%j&ę U4s܈)+xcs|6O9MW({U߱DrDW)~}TԄ @ףd%e`~pQܢE"YCpmD$sSƉE'BnvH]Aw.m#ok֚Ab Ë*riUUQ.Crv6(5ED)bsF?Nj|IYH*b0 ȎE DphJA`OnM]w {H(+FدWi|75Hqr!$C]ǗUՐ&+j:2$ڎ\%ocv ? ;Rڪb2=#9)*bŞh$]࢏ 5ZBF {ެN$$ [j50ީ*z0Qr(A$G.]ܢ5s%EK%D!IE IEIK]lܣd*C'܉oZ+7QYQH#Un$EKQ cG܉cɫVu}KrW4#`\657%tY 47@Ghn]9, d VM"VeXYģq ʺP42ܪ/r."m$7r\E{Q3.o!hڼ]{RܤJYrG' Sg$ME .8r4r^Hd&[P۫#L&.OsE]vw5y=dLyDD6L~s!jHG{Vvno/͈-"붫c.ډܮ(m^JJK: 5HrpȻhڈ3V&hc&(R.PI=]6C ǔ6BSleBztAD&F99rAvE'McA&4b.'1hi}b1761Hy!CWKiW2( %WCW&*mcpv2+dFGr 9Q7"XղIRvhw"DF -\5\47.@i%m vڽ rE!BMGqeu'͟jzJXu\AJJ\勔y )Ō gGjߡ$?ڞ^BR oJ%CjaٺL(M3" Y5lLڈD&:Z~mvԆ^"ūi$٪3s=X 7C&*dpp*QUIT?DEHL9F8Z$MB7WCGmr \fESXr[jz1p"4ך 䣊]6#Ӝ (6D AmGu|-Hk ;* %N]Q xv"\HCR]7s>%+$Yœ\*;d"=) [WUDhUn!d4KRQܤC"r!.UyjNV"7ljHȰT"7@T!|+6p R'iJUdOPm T2]+c`Iٵa(5]漕WqPWFp@1q ۔q@&DjG tmD\NC5H(n]mHˉ4hZIMP| bQYH*rE A]jDWЏsb:⨢7%xjThqo.TI]\ɪ 1RD Ab~8wbeqR#yC^I\7RE\dO+ڢD=]+\oSm6ԆB((K!m09!$N$5I{Tjb}|>x.ߧ5CL9j&2HhUe#ݪҵp4K/b'jB'qa&O@6GZ%%ܓQEph|Dm$\0(Zi[5riY$$HEji2]"4DO$DF;jCDj|C{MSm$HdD DGWE`N|TmIdG;FۻEʂ.J.5ڵM? Cꔄ Pת>v[$]H:PݵDhi䬒." 8jI*G.TT^XERv7!mw2ܮ";Hɨܢy!^RU)nJC!"S@AHczCvN]5T>]oǪJ| ObiaHrUbh@׸OR6s)nc:?KMShU {!rje^4>r/WFӞ.VuzRmΡ_dd_y5w"ܼ\\-.RC7)!hf\,Q.^;F=]+3UX%pyn@FM[+}CpciPr&!ҀMLf%qiԖE^>ً`&H|2$2MEED&rT4y#юCVGM$mw?D%%؊&JMDDFMD!$^QH܈5Om~{dC8W*#On]{D Ta ZPfQ١aȃDGD$6ϒC %QI\R"k@#4sj, LZm/zbȕd#DW2GoD $4O x麕KA4>isԪp$_@$B}("Ң7ri2܁Y@@>2Ӑ>D%$Z{C_ӌP8.NjI&)(Rڏs%T40NC="!;G5ŞoQD ʆ1I^;)G(+uDh/j#rj!7)/%,[JY5 b[׊3UϔH 4z24@Ր#Zw8֢8wv⤆ 0}JY!O W7k7[ކ:m]-%'(rGb1 #RQRDZ>"$R(Q"J$]%"rH"GdrԎ_MlsouM'ԩax1GK`Ԅ )Ѩ]"  ,E=q[:(\J՜w[]b!-~z}Zow<W5"IKPHksm\w*Vp(}[ކ]Ȼ>]3 $;$C45܊#Q)8yvԔTqR(m\Lx?#TLJAĖ| Q"grDDFDGhLV']@K5w|Ty ̋pNSTazjnLR:36CR_$CR8n9UJ$C"rQCm ȎÚ FH:! Dډsq.sI`w8\D!RWpyH!?eȃy9>J܉<dBF⸢ \6q&WTUTDM|A>(w]kDGڰ4 Kːr%Ȣ7!OɎdRQw c%X<ܤ5QRDjHQan&?DD!"8!Hj(䈆 IMކ2EHrq)cusJNLkma.U֪Z=D1^$./r\9IDjH{P݊y w4.";C "RuGF6"6"FktTTCj& _qHz..)).er1r%+]Rx`;T Fmz@0x(^1ɓQKڤtF5y xKLVrR)"4 DՊ6+u7VMKD@bև]fmz'&:j[r#vNC0ڤ0(ɒԱ F{9# #Q$WsdbsKRjn>C4='w! ͯ`KD,qhfN@Iy(KF>;r84Jrd8"MRzQɊ;Oqt47%"b5QD!*i]/¸(b-Tg TVSNÛ~#QHhdjQ)!WnVމՉB1@L# Oj>RD]9Kj25EL'UɄػzHfU\D5,^R ! ށ/$@ K*BR"Ɉ&(!Xݨܢ4J걍aF"3$7s5xdMm9zh⥹i, ojִ۵Z=LUm_Ork 4!* Q%WF]LȎڻJD%܏(I 5qCCq9HŢQ&J< ݹy+uQ h2 EI܆dȍDDhLI7K'/jNWruF/u].Cw(WmwI.Q")!Ӎ^g'*BVDUdŊ'2Ľ'PK N;F+3Q#Yr"8Dj j+ŻIqȄ'N<AxDqD oIHsj=9:Vy)FzχrH Y܇Ȉ\'VW7ܥWSq\$ZbE˨U.oD۩L[Ljp^%6,ޢD#糗mw,qv:[5+hnCv\ç$0Ť䏮jaW3@nJ2ܥq5'QG$|T}"TPǵNJ$LS]4Dpq Eyrȍ]ȮϟOw.HX.rqDBDnr$FW9oR B[D)2M؉C@)|WFMCn.C" j8x!A["2Dq;q&qHhm&JJ;QBEk`~CRChFJ muG Q$P܁cC$2"!rvnB(5dj;mX r#I"#~g"sP1HɻPܥHH9ۮ+"̍Cw!,_i{=2""[}9^F#rA5Hr&+ +ƴnMiP$ũj' ci<%tfgqT u ÓWo19uR!ĕ&V}˨k,Iyt ;Q8z9v$;jQ܈aŨ?x[Q'҆ܛ:mOؿNROM[bV2{I +RJ$D<"zPEi7qވ@H#rV  m y5÷qK'/raY%Cg}fuϖn 4p$Cr#FH4mu Dv*(r%q.^MOs<+&ے%=^JTrH-~$T9e*J$]THᡴ|3 ?ĭI͉715HUY#\HWis|m {'puLJ܉GTӻs.yq'meآAb2QWvUT?mW/z<$OW.%=EIEE]OF\Q{Q2I''i܉CIpHn"vdC0.T7O4JqG.օMص,(jo5jZi- zAr) `Uzi3^J+G+'.ҢI! DD+cw _I9U>"w!h&.@ KRiQ&<d pD9`Ǚ4$sG6y.) EK%ے!kkvZbrNE"l~~㉊G_ChTCh+Gr7 &!+l5RS#U)GLG ]H|U#vzTQD;;d@Ad 7'o+X}HN@01mKj#G'rw.؀aP>qU!) T₆d Cb..KkB4fnm$-kC61! #V67jqn'ue#|Ȉ<1 ڑ Cs%wTUzXHB9VHR;*W9K`8rCbI\%! (j(dPrA1C5r:i LWY[`%VMU{En]"P4@^vۈdW]=RMlQNJ=A%!"A~2kƉIDn]GG dW2j=QMCn.CrrC.JH"4@zqqP=VS$U?Z]=gDv$qCچJԷ Dj6 Ir("V2^^6[PɫTto1-vQ&zD&.D!>%[V&+' r%G"_aY[ b!k%9Y9tؠiv*7? h?5ݷ)B+~( \2d9!cgI *fZ/GpsoG QKhd\~(亼lW7z;jHU[$NH\Cr!R_2b]JDD2bN2K ڰѫ^6[\;vTCv+IUt5r$!P*\+vުr[ rX\WU I#.ǃQj"\ [^.Qڰ(Bs">Cjb#nC'&4ڈݨ.v*!.9rEEi)EH| <(F>+ڢLUZ/GimjFj!Ӓ5TD{}=;9H|n$$(g5.djF$C%܊1Hxs1 øCp_ IWK@G5jTzMuFȕC܏<^8bHjxRDROCwlP([8zO&lw؎eIKm&EmhPI/^Ԫo{Z~Z;vkZdڍW)>[Y=!#m[i܇nK(MX:ACěna4: a׍*k7@pŪQ>HT4:1O؎I'nD-mtt") tґ4GW&7 WpHijHۛ^u[C ח.⊲U_kdӌan bE,H!RtڇJHH I7NңS˼%l_ Eȃ_dD I(99KjPݓsQ"'-4cP)68! bHºӜQC0ǵx#I2چܚ;Dq$:T%%%n"JJ{9w"!Ǘn\1"~%+V%\RTWQQD\G8z+y5ԙ/CHr UHryK.D$ZNDMR&Hu)>ۊ>".JFB+j"pQXUx.6#}Mm؀j&؆Am!RMWbM?Z+<^ILyU|k72M'rG-uSOH0k(Hmx zӷhGFHn]˸o$;h܇9)bCi1DnM*#IT$WX75& +]tz8Ɋz;(~\E:w{vFRrH/g˶}4D%Y\(󹗒y^]6R|Zw2C $4%pqvThnn jR]pAC !5"&m]G) TDFvF.Dq%m\2(Cۗ)-7TZn;tIQڈv 1{Idq$m"E%5Cw[QyNO&.DQRIKr`+{Hr%!z2QnRR$T}=v T غ "Fu@71tQ \Ԇ;rLTj^ ;%o1ڮruJB M!(i '硄qRdR9D$^n%V-ڈZ[yy{T ~ؠM;-ŨneJ(j*8n7)(U"8HB k8G15hmQR7("z"1J%˱&;! CGjP%x[yD^KAń؆H"cw&!'..VH!7XIGq"Dj'.=@;dRP)z!K" d^hۀ%.C" rq 5IP fITcUmCi r"7j#r!|1[hZN!V\Q=Z֒r_ ) .]v.Z-_ŤЌJ?k2c4 1u2D3cȚSSV"SV̓B RiG7&kIkZ:x{$ 4Tj R!Io*[kDqCpI nKDRڊ-حAJ*8%sj!P8hthc8F&ȉ}*G*hQ!e(hͨhmV|A5 uEyrqi{ގ2wTG:=ЉQuj#IYJ|ZxjhG+s'G% I\ϱ$G(%$b >犤Ԉ?a(d&Hj#Wj1ܫ~M$X%z"=]Zj x3TMQS{zȠ b mR"rC $ Ѝ\C;4T^:P `۩ {\MzK"hU!ɬ]䚣J$H|I[#u154G'w2C O6vWD{!qrrUs](CRmw IQRD!Tq޺zJ`|dѣrjHrV7+M3ADdG5D*ޥ[J<؆Aɪ*H>(ډHii6 H)\'4pKHqp$nMQԮ!Di$dj4nQ&;P9((fJ$!].(Dkbs8ݪJۑD"u. OIRQxܘ`<;mCr)dAQ^I77uQRRD31IJ]Y92y nFخJ!hG>%DHMw?Hɉ6~bzH"|Pݗ!(8T6Uu |M&b%8̖"MJcGi2nQDFBۼn C ƵD<Ȉ\芲jzȈ/m ؑRjBhgE"(D|B"\QQ>8v/ŪXܹ05ФcHm$T?$;9 !!Q sIDqDR&Hdڢy"+vr+R Ud (~*9)bF?5DG*#C&7Kƺ<}Ht:!Cj&4fd&mC5ö4:17[ڈ[I?*igY$\ cе* R0c'm t=%)Gd^T#%=<} .g K#]uCv*MZmBx܎5=SQJ8^O;G)b-VW%92W/tMn6|4Bw= 6ǷITm~ ą\oAK&o!hC yDqTۻ.Zij@.VƺJ֛JH-4ċH 4ToDw!_9?zaw!(A3z@ёPI#H$vՕDi1 HOPrPDvKx Gr&[*E\9ޓ#Hɇ&%$yEi6F R*<_1kϨKR⻊#W㋶@|;_[I}G<=$mr2Hд,!D=?] [Սt~}\ZY,Թtq ݈~{Tq؈ߵ[$AE Vb%@I>y Q2n\2}* Dv("#ɨq^E5ܒ+jmdɩM HkC4z Ȏcw!qvbD4 HynG'؈g!#L] GC9[仜ՉDp%⸥|%ojyxnRR"4Jm&JK.Tp*%)O(d#5uHAc? AGnRqEKqKqHˑ.⊊#GQCrr8rOPJxs+|E\!H)rC1mԈdD6vԹy5 L., 185{#x"5n/4*'Cɍ"IIH\ %FQi2M <6jqvͥDj!6"4rRD&;T#?`I,Gj1!rT\T1rb)|Dqo8W+ xA֟Pʊyᦌ2f{3ކElC uqrP <5Ha˷mۑF{!B;yEJJ*4=/7 c@wCqIw $.ԶQGx"mWnMD ;{Oţ0Wq <Ȅk*6+ݔw 46mCCՋQjCjT=T M-&qVBddYH@kƪhd!j RԍWMQ=.R~eR7?먫⤣mb!(v5Hm.H}ũ4ckFOހ:A{(I?plD GwBm%{Zg*Y9 D]QگEIEi|1c1㚤 ]M`pqI m%%"[Gq,9DMA>3ȏTLvrqha459VhzNQG<Їo&f1Dq$684$X ZDtPڤO&2Cr!1W}٪G|PP!TOnMD" Ljw1DrK+j$v.))v%^*#DsF=<#375qg61Ò#R""# ZT4F.Vq^!}גG"#e,V79wHdQ*ֻղRܳDx_8S˶%4sqMqi 6 rDDr7 yy5]o$1(ՍoUB*pHo<|ŚN?F+4MEwZ#)MF/V+cWooQ*ybqHvCɪ*\n{P܆AMQ@nKBJ꒜䈱Ln5D m gv$E%+Tte$AMܪdKnC"ڱ#| hŨsԈ2E,TSɦӻh<^C&M^7Ȇ}mZ!+~ eR"!&.øMDvV|5_N|HKHN uqjA9 CpղE#N! ݹG+چdQm;v5 Zu'T19DrRp]( 2\"eV P4 08vCʼnb3|s2o)fԽrRCv.L.@!2"ܤK nܩ %@ TIӚm]춚X>Ţ\#6ܻWE TCQ$Bb0I˿zW $5")+d(nCQ2b,y@0(%>lGC6P) cŚWU0IEh]RGظ^qZLUuZl]8ADdCoq5+.CUmhDj5D$gCfmzwA'+4&C$[/8rŊ[T(4xT/GnHШ uIp.K2l]8OnJCmRڈB(#k!y!6-C!>Ԝ{schTkD䭑hZ@o/u) SmA1T:*R?ܿĔQU144P26C(n\x壘ǛHrKh}}01 HA({r.C&H%lDn7";qrrVȇpw+{Q 5ǐ 4^|M6n Ha۵KhIەzm3Z)I%L܀j.qzf-jW&7"4qRڭDuQHM"ѫvюHdDvѢIk|]Uw7 m6$7J<j4ԄDMR$\ܐ 8G&j%A[A+x6n̚;ljߡK?C['bw{AeyI ށhnڈܹIܚ#Pܻ5ET9(u7֯ doDR*E܊ qKN!;vq䭠SJΥR6l_kf aȆ1DX5w=f+B 3uBH!@uM%PƉPrS +QI+;QDoxc>mRۄ9 OLQEE"5^1^+#I!%%Dqǹ\ROCj9*(Sюu!#/>qap]w⭒*KPI[!BrJ$Ko!"i/ }9/JH˛ AR?jbkr),HQHAsTH y'.7d.o GZs|Փ."c& ߢK狔%dc2 @%N9Yp`ZXS3cHɎߡRcqq@7!7r#HrmZ.rC(xyZ8pG+\lsGGp"OMچ38jNG9G亖cyrRC܁mDG̍QK2b=dk钏;dpj#H:K $Wz/Dz)vbk֭U6|c%4!lV@!9[ʒ9wQ76 xI#Q#QC"2dC746$hZ.@&*Cu+]=i&J1j sDGHH1R ~"r96:JzOuzDQڢE|su |HRRTyDL) GQLuDjzq̶bta6+d!&j.neb>Nzv&r BD0*$F=@mۗbJ[H7r'z&E] Ԅm$\ZDmؤDC=smJÃ(ԑYQ"o)nQMfV)u/d(UdT W1rRܥ⤧Ej+B\^NHHt$ǑI5Bw6z$}Q["!1rʂv)ZGI]@\D2.6+j?)a$Grk c֫+oElv(Ivćm cWF !KC%!dDj&Ay~D$Dj%O$:CQRRdQ[ܯea$}m".MmMZS>:Umb ]D}iD0"A\Bma&APZmp-S ZA)OnfŦЎ6cQ5VNI#R]"+dETqG?ONW ?xHGUfVCG%pm A dCQ7R3nbn(dŜ R" %:pGlC4(*6*M6ڿSoDu5ujK׊:ԩ;(n) "!h"#nCj̑VȀ (ZfRoBI/ZvšMoQHbR8 y&N.@vچэ8vMmVAωYb!yW+.4h+1RH tZ8ԏ%&"Jnj#C]]O)j HhE`ɵ(b +,9Gxhr6t:}$-'*-'ON} $OF7 RMoQX,M!`2h4FGjDi"d3x(A܈2+J*HvItQ I%̐5DnJ6`˃TPWe!pl%%h:/5uG?VQѷk!T܆:57m!rȏPKdR'(K˥"7.Kߚ#QX)(o2J;wED81m|-wV޴xJ^O znMEEIE wH@ICx)nCnQW1Vȥw)dCCCvH)QL 븀ѮܔrD"k4*kSP5>iI" MȼjL0.CJE^Cţު':_uͦQI[ ۋ̬>*w!j$ۊr@nN4]5uDRxS'!r팘VJ?rDnJ$rCj:Gv}wLmWJ=u&REֽܥ϶[dj[&j\}EJCh܀1DpMC B rCCh$ vF%FIv!w%GeېiPc r!uƧd=Q"dY reouDg#xr-U*+ϒGM7K[?rQR^&7]!6R@C"r#qr=>ChmH!ERD7 lzڢElr]~/C1Jw `m\/YVS4]bpDq$8) EDFqD"MDr"8Gm^AjC$xq])2@pՕԴin\Aٵ~qOSc<=Uek< H1{Wm m$ƪ#1<5pyɜKYy]@y,6l S6z#u*o !; C $8ܚ) Ǔ -*2TjBo5∤}V3VI&8r]mWw HsK)rm$PڈH26 /qFBu-_D5'sw?%$7}KܢE-P*B9U"!Iy+cQ#j_-$j1Rsrdnb\E w>X(Q'.(!5Go+ޣBF>lܣ^/U}m($F|4O.Cr~Ws% 6*֛TKUWF{5֭RګݴxđFvQGmPHە[un ކŨ~qd-|歎<ITygmIMZ& 3Cw)DmJX)ĈLIq @C&B*Ix t*(y' z9܏bF e`[#nfǭ[IԬ1x=@h" GT#rPsuJSXh7ʸɂ>-ܪ,$AIGmDAӻ;@cJUT7ȍڭmq1Ew~:: 1r.}bh-{Q ,V5.]Gh{`vI4bi7y'*G*܇Ê%2^HRQQ]%+lQ'Dv\A֢HuȰ@-47!v"Uw,];&2" DV2+.$C6Wy1t=!w7R|Yb%5!swrDډmIv2%üs{ԌG.]jJ<Ⱥ[m(E<1D߽DVV Iw$!dQ(!4P9^7IK×ܘ>Shn}WrIv ޣfԥ+UXFBT|W\jK9.Dm@ԩ⊐ԑ@dwP8=RI ] Y'2ZjQ()(P7.&L@5Oӎ#gp_IdqjznQ z~ ԬjtPkɪ ]]fxzsOriRjK40$3|;hk9DrH?T cy J{QPﱋEXvEI.^MQR"QT !!AjPȥ钤'jED!Q'(dcVj9 ($Dk8XL!6jn !%QRDqDqDGb)EIEKTyHj\hmnQ5"8>vڹ9cD8kIy¼{ywęqIDR܆7!8"55& G 1~/خ! *?LE%H@u܇T2޺sE`P{}I:x4vܧ!&F4~! ڪfL=:aŞpY( ;jjm`c߹TxlPnL58žLJ}sv5 A;ɈZ }M9 +-ss⡸q^pV'!]}UfHt"(nD!D7 tUGɨyUI ö "*Hm܇ y5G]Ws$A%,W2"5j!RC]5J9vԗqHk T(ώ.C&j6 nCi>GAآ8)c8G>%DԈN]̹H2ClH=A݃|C5q qǜ}#Q傊rH\RP@٪$=feVj#C)?fzrw71dw*b5W]#r޸zqu4F b}\D&YM%C4v~)"RCn]=CV*f-4-Nhv8.!]t0<*!G9Bb P y wU˛IL7ndKl&/iIiG3붊_\a*ѭ[I=!q$3ɒ5aTW>J?j"{G0Ky(.C_Yvxwm g*#W J^@nM E9#~:;q"8$ory2.گ!97y.[KMfcS+ H>Q iC&7+`djy^?JREʮhO O%IUTڳGa '-/TYm܉OŔQ" T2.܉PAAu1+ڴj䇵W!g9 R%@EA]HI[=:OJI5v"r1ܞ7< Wmc$%'/L+${QV>E!xKn47!o(Hj9r9 Ȋ[}RKq. Fܣ(u ͈#yx[DQDv!rCi"5%ys ^J(|<$Rq W7r6 ،y";*B6چ?E RE`Uzƻ⤢OTR367`+ w.چlTIZIzOܩ?96RSG(Uc*d|%g wQMrDU&k'&еAƺfk=ij<@D YRoDi155@4QId' WT⿇*qL$ &R %{U R\4{}uVgȖCnӂhx &tVԙA[\~J$3RI<"j+nG޺p >.QHt7RYI7#Twĥ*/CX1&j +<^7 {qD6y" j,DJXcn(s"9w9y!V܇$CiH~\95IE\HjJY4j+e]E!ю-QCCwSSDPWcۤ9^3QHKdD\>Y#L]9"jU}Z.xjIo=$RRHkc"r! Ê.x TnDڻD6NDhDP ܫLT1&>hݮCr#rQxA1]`"Jh%VɸAj~.ͯD&X!Hv@pu !%OZo@BiتR g82 95 50ݻ\p ʑRn"+jCI"7BJ8w1C4RۭVȃ!]%.q" 7!R "IG17i#v;r4J2J:ULQOP1Ï{DFNVHLyܤyȑVA EDh%%z"Eo.)sQ8#\j\ cPqjG$#Q⒐I$Eq J$Ivԉҏ9-D$CNڎ[n De:m;JE^V:xKm\ѡ8eVuۄ^jl{XIYFK"؉qIvK;#R4HC?kTtPqMǑC4[ȩ y?b=&*;Q? * m m'Z%+lW ('M;D}ŵ(?z1H&@{}4 C\ش4r _ju"{ кgqzalD3M(9 {_ܤ9!q<&O~W4*flGwW48n7u7q.Gյ*jq?ckG'J$(72.CQRCCq1C0 #Q"˶CJۙQ%uܤ8WCpD\VȢjn xۄ Y#m7(R]5EOrDOHhmQ$8(%G"<LQ[CC0DKqv+$C:m}jCmx $TP g& DF.]U}x "y;\=|D2coQԏD ͈9)\Mo"!r#qGq)d5On:lgM&nq '@37k5""T@fnJc`I5[$-&Hr@tҘ F0èoSC?<5DP$q鷉RJ2>;") jdnRDj ܣdE~X5"Ey(0̓y1ء4{eD uu ԲOv("#UD!D@HuCx'(QvԹG/%\|UEm8t@HFrC6lQXOŊ'iCFA l o?Z2xUI"\G797emGaImtmMwm:N&W e|!D:wԱr@q܇TBmrq ݸkkv!j;U~WL_mM/MH*SU.Q`]SS 6 G1qgCn$؀ c9.;j[WӐpoPTd fףBU]5Y CM6|>< x1gՃss4P2FLTE"r M>}hhnOvIv_mCoj+QHVT=$"5 h{oTrCpùi<\D ɫ!<QEkvأ$Rv?O" Qh!k!T߶l 2cȈ=mCq~h \Ɖ|MZ%@&(1e;|fh|0B.dnۉ 욎ēq9<9pWXq6Z(rz jqjUvoQ=Ky ;@Q.(f#!ͬ"ArLKܯqDZ8QڤդLԵ˴f MyȎD9Dn@!$E . c$?(})9'>ϥH|\ԆZv[Z^0xQjDC3 Cq+Ao!%@B*Khd!r5[=zՓȗ$L (nfAiDIEER^Hv1s)NChPE]Hami!. Q]=IYO!"͵t~B}m$VcW.]VR?x֧%4b* {9%]-xCpdG%eCC7 4!?sj?"޲ Є#ډr(j@.D0D 8DRSF0<Pwq =XURC ډOo~ob4=@CaG.& rԘs`G? #?ph+n)'g[:jxzuN+IjIY6o~hm+Gn) \&(ܭ*$Q&(nVy!#yI[}+.I?eJq K*ޒC7jUǑJ f0j(hw%Ȟ(~J/rbj7+`*b8DfjD˔K?CF<99RrqBPMr b;_56ҽIm $)q-A*HwC$܇OZ]Om`A%q.D2#LP47!躓@B0~MC9\Qdy,U]E\l_j=g51Gr܆ᨑܑ"8"j=`ܬc|31VØ)z%CڻQ`y/1HY> /n Vֱ&*7vi]M}Kwj8*4Gbd:[鿭xr!', בک41z $?QqDT2ѓ2*MnD۩t˹6"GzOhܰRv⣊ڊ%"!m$ WKTdGw QECCRQ$욪ËAK޺ATRno $*܆MM ~He 1IiLHgր>$wmGw]-!]IpبScة_օobp.4jv$zţ%= =u\QW0hz[Ĵ$3:oLg CviʼؚoCXls6!G5Hj$P TjD$nv95ۑ)kCr(*ڸA9dGr!<$U"UX.epƏKcN`IOW!hdFY<%P$M*rwy nVԹK) VɒC@,H6;'rR')? V?I-TuuTD(pRRڣȊ*Z97 B{&c%7(IQ܆ѩ)! ~|MR9W(ϸO(ܣ>+(I9zh4 `J3oZ~!]LO脫-WDcD&1?L}LQD"%Q Y#~%^C+c["8IӀA)J'Q[_wT ZoP:b[x K)*Mk}Lk=dWrM"% i5w1CLCCry ^7rQ5"|<~HqCڷV:Q`WE[֎s#4bsh1]>B;*8.G BM;Q79EDj>27kձ*({TGrbB9 ڴG-D!QET@PuG.Aa83?CRDvDF8xd0IXqf3V8~(⢤WRgM8oj9 V@==A ER!A⻒Dj̐>]|*>(I 2\!#TX7\5H!hw9H[CWN46Hc" emD1n[QLU˹W n@n*1C2D1CR KM )n$UxU/x"SFnJ]ɹv)"ߊ͊@(|?N!GdmD!"7QDFDyHpw<<4G"8rQ[ {y3$bhmFUt]Ȋq!"+hvC"mH{MC eqtz$qA8HڏP> 5qudnR&((H5gM#ԻغMF|/(K]p`G F 0W4ZS܏E\VORp^$KDQCRdTyԴcvaQ-QR܇mDxUw9 RըqI P 5IN}x9]jDWFL4qnh"2 **cDKhHd#D˔=={^ jdD> 0Sʑ[&.^-D].ڊcLQ- X7r+%#9!y(!\i!?dsDϒ8& ȎD'W͚\|(>X9%-QfP{Ԇ$pTk(^Z+rp^APi䯕QU!j}jD_ DCCjxB H1zTfx?޺DGOprCm\U[x9dq<}U](#P\j==]|;Pخ\q7=jHI")R0 nDQW((u|ܻj$x?=D*i1Dn$T⽩"5t*hƢy\JH*.*P䤢>LQRD0[ 2Wm\"Dq#mCpC45;jDlCpǐ{x#*JHn"`Q9˱.RDr'(\"M99(Q܆ܜ4 HsmKlwnwo|]]ȮWqvs{ک5%1EH hcj?Dl%= n+]CCjHR*R.HQr|պ?INNh b. 5\$yĊ݃Q'im\d4W\:=HUu5DqXCLC"8Z.(=xVNZԸ\;I:zxl*G\vx3j{cݐb#AeDi)3kM69 ޙsCj;Nyl_I3J ?܆(#v͸UZ-M-P#L4a/j4Kj CwZ~b JÑ*8x^n>*Gi`V" d#I' Ryx.W9G\Eo$C(fm)IH\E"I `{SUx暏>XhA5=5S gmh֭5*b2sPdыOOi#]Ci(ڴڀcw+dC6!|2 \t"&jEsQ^^>I~hcH'8J]n-D&MD(r7$;i-RViv[Io0=Ĝ1⎈MD Gi"#ckUX)INq @`|)x|uUC%=Xa, (m2kEk9ɱ T{z%?iwg8D(>"_ҥCBhQCpqVG/w)/iNCGZ `6R47b؉JDG^=$|4tNqf'7R!"[UDY46Hɪ0RjT']v9-,DvF.D_+?Tєc9қKU~ 5U5 w$F^Wb1-Dz *˃4[zj!oC r[&]_lCrUJ|-9 H 5v%"9{N|DrRQ$\H89.(9$!|1 "y(GnDnJ$o˶J#]Fᨓԗl$5T9s1@ɑG E") [R'2 Dډq ;ݵKr׵Hj*G:]ٻ G%%fMW..ڊ~^7m>RRO;j$y.yQ46rdAP046[i$ÛI!Ѝx*Byd\UaDwnjE' ]cD!3M@ȃW+ # ݷnZapۗr^H"8MZ^,C^wD |4ƅT f" QN]QK@JJ<=ȍDCnRfCpԉ:AK?70W&t5dXu0<%(-pQRoө(t'c!?F"s&4ͬ$!kvpRKӖJHmzAKqr)[VrW64x$0;& Q)N'7"!DI] B?Τ!2D8<ŌC?H~!_o tdOi-ewV5&SX(H$m"r۹ x/=nZԑ.b-ILZN^^o)!(1D Gn+6rFMC\O]FNHSC m4Vkkr$pRڻjD]P݊"QŸmFM \Sn]'i¨flRfH'C $]BC𲱾O :9fp9re@ۊԌN^NqI JEIFݹ J욏C\2{27|P#NADp$1C&MR$Pڤ4=چ3jM]a;P! FBT x'.ߣ4: O&nګopk-6󆭑E W.5Uos!/Rf{>@yFA;܇mvM*$EDdV+{OpW$@ԇ$7! !\ eV(ڎ[z;Q<|PIkMX୯42&@QY"izB|YvbTzUN1U5" xl } 7{?TE;O ~Jg@mX Vă.GMP 3{r{.*:1 ǼbMh{-Di$WFAĈz&Q=>xx1pkd]h8ܤ9.&JHG*}i*4ze r{yvJ>L"( EPEv@+gUCQXz$>R')r(dy C>H!%/#yQr1BjGP܆!rLTx $آhm@q-C&.GM1ܯ*[WVT(QJcZNJ~rpUvsA: ē}qW-T=0/c"4FH|uSj5jڱGDC;bOŵwH}c۵ hd?ح)Dk~AHnڈ6";&ОF,!.HH5IvSȈQR^G!qrvM"?#d%1/vݜmPWR[M&ex6{(m$*A8r(n|cCC@n6AXAPR6JFH| *r܆j47!PۏFMVGqUd GA\jRHq]92RC%ƸjUcj')zq) n[qI cD2 "7+#\Vi֨7FN]PܤoqDMcŨjD%5! ,Dp5ly$FӼۊ]Kla?Vuj: {THѢyj9m8V&O Zel&!$m.H#uU#ZX"T"#qgd9GZ} Llg]E aVnKCHuG#LXEN2E~$B1~%WlcZ./ {p@%Kd@h%ER%gr^$2?!-zlcp@*z42Gm']OݷnD}A#!'.*YZܑJPGJa @dpCjB*K@a50߭R\ƘxlR'&!hnlhuHq@jZMr5E^yT܆<HDj$2(-Q.) vRDv-_1/'Ru d.zd$PԶ.ܚx^xVO l 7]92CŪ^(z{)1rnvqHLU! sdF6@ v=z2EY"5{I3$}9"~&YWAu֩ A;!C|IJ)h݋BԣG` "qE ݶ³n=usn&!jDEbȍ(܁o$M]Rܭ*$Xz*J#"T5T*LLvƩ!_,Ɏd$c/j'/,Թ["n@p w6C6M]GrJw}j\h4ڷ~ũjڕ5IV+J2"9{ڇ(bI>m[|\Q@1A[@'ֆC"Gq9D Uc$\, $D y Dh9I[=R܆lI5D@q"5sm ˨#CZ `I4prj@D KbjDD3GtW'!`E[O)nr=35j Cr)n6G$U-nw@'}DMS8u1,j$8G#sjյJAu08j.VȁaۏBLZ*fCND:PDw؎A9E.m!rP-*ԑ%96"Vjq<ȣIM( ܚj #P99^=b /OEbިj8x (G6CU r^6Ui\NB^&Hn6H?lHlMҏߛH;yU|L,YDO@R8hI5qr1{J1 ]WevH˷]Cw! D  C >#ޒ;z?rۛ6(2I8Ry CRKD G'hWwb2y-79EE5B֭$3"R(~Hv֚Kn:#Z-}($vj']J3~x 4h2ME*%F+dWCO.@n@`!jI5c!5j9M"Hj#Ґm q9dCrFPU$<&LKJe:Bs$5!>*!Y@ACRw(HmږRyH>H|ZI$ FJY!rGv:RHhɨa|IדV qR')zRb{SȎڞTb*`嚊#T!o1j/$Aj;b#I% A&7bDIJ$RE#+l^kTTqUş8>'.r5i$TeV?m3^<PڥQxbsy{bdExhn% rq]Q3Zk~Z/Dr.(w"IIٹ!VkT4mPvOR71^8ݬDoBHk5CjF)Ǒqڤ<E! *,$_Opj%A+|@q$N<  $s-uhn b4$Q+kMx\0{ٱxd5FTclVWЃz%KH*EmBIȕZFZa8$ս{\5"O|B:zGoj∉# (tdH\1:AO#އN;]Ex<܉J G?zrCi%H\Ԃ:$ӌlk!6(s(ryIE]R շ2;4Dpzn++* 蒎\>ג?>K`GrW0&!((YqRdӋ&nQ5RRqEX,2_}D|<""(Cڻ1Gu^(#RڈFÓI[<QBI"/47d?ũ5o%o%"P۹چߘDq7q+qG%%0_5v m@ոkir0jBަ$RoI46RLCT܍$ijUdkR ' Ad!xN=R#Êys 9 8v패c[ꮠj+ZQTljx\AIڊ"dcޟqu[%} RS@6* :HQ ;4DsFH% 3 $,EMIZw* s Wx ?Q?.^cQ": m]Q)'*o]U%3 ZN"zx/ ހP¬MUZ]5-(DT&!\DDb ÊG,w+ 4Cg(ǹ䤥 EWOGsH{UY HbK7(! ڻy!RKTHm $SG!!hh ''"5ID@& j\C[Y">coVhalDjI5 ېܨ4] R lWkպ_ū#kWG_S;k;,Cr)!1 & v˔Tw!r2j&܋NR6ۆOnMSY: MhoK\hӅmݬ _^%H%9Gv܉6Bb"RՕTi3ס{kӻ܈nDit狐*#2Qw"ly!hGBEܚpC12C!"j8j=a o.#y[P[""1׉@F@XV$`f5zO 4~Ad h CC NQCCp&Dr;h%VߔqVtɈ7* zjK+r=x&\ qnk\CoB<>*>^Iw9"r5{ro!gQP n&K {yC!˔yG|2*F-lL=DHvTI Ê%5+dGw)"(JH9Ȏehn ܈bUI$Y\h;𗒶E6HS8~d#A 7J#Jڷr9.HmڪHi7= ڇN ;H5'0zNB VJA@pna74xjNZщm߆~jEu ظ_OJqӄCgrh!\ݬQ]CQD1Tlh$?R8&j'Z(##ZN ioDv$?źvf7|N&JK鶻y* :WtךVSMM!"yЀyc@=~ԇD_#ZI{Dh$8W,(izOF͌{~j?ON Y' VW؉m{+)ACR$7)(IE 4ڿxAHԩ\4w-Gn]=Y]1G9Gq$4oM'u$4eipOG%F&!j"#?$"6LUϹ`ܐ4F;'" qQ&(EIHcP ^P0S'uC7 $?G*(Dw" jRǪJ>!ԩ6 @R)mGptvV2CU+Gjë-ˏj.b 8*7;twq`* 4.]XsHG+v`W*fZH:WՔV#ع!Din F& O 2RR"!sDHW;s"8ը6Z+FlgsU j#9%`NHsv!a Ē"= bMgh{D 串D`ix-c~8TC5E|*\#jJNV{(;ja";mW Il7J$Csj0zEEv⯥>;P !j!CE!HVX.Ӓ.^*CVɗ 8hmQD2 G.Q2b1M@p"ڈUWùr"rQE媻rG 9*z{n"M"9 vy4rEi6c}nDFG&HR܆.ڈWIA]#VcVNKhf3%Q-R5AiMJjaH}]Km(jOI nCCz!o(\+5')(8 vzM*%oj#!mC0VȈgyr"/r#DuK1 Ï?rVj!ܮS'ܳ#DDO%Q^;y !!rHJc$5";Iw1CvJ*\ݨ'(C%'cU'4CЄB{<%fX&3\Eop{QJ%IQI'jR[CCvC8L] .QzQ,sRFbɊ*JE۞2*B?lh{D|m4'ö8p@|(5 /b#E"+ucD8]) kZ %Y)+&[RHj,_?@K\917k&w) ]Ioj}+ژlJI5֬ZI@CvRDj"5R.RDn^*5Eꮹb;PǔYCDPĈ(@Q"C4GdO%%!hm$42KG-%Y,&)iV2{KZjiGs."AT u^(n"Ɓ|ViDRSՎn7vհQ$ܚ(-Z9qgu"F@%7Z:iaF85GrdQ3xꇼ5}仑Cuxo_UPEDǹ;QLQ8)m]Uqpk:gjIŨKVBMr-[XZb=j4C>(ڭT8I-APT<@=K̈~>zT7mR")U"PՈn؉h 2-5É6_SY8{ T4x{ޢ8I #=Uxiɼ[y !E<Ci@1hhz;46 y *Tf+ԃr%9xC0ڭI݊roOvD7cuXD1 j[Tp5Ed։ ÒF(hX2~%U J!ۋ.bwbA'"8j(nDF!jDM]%!DhmܭT5VmHw vxXwi'a Q|4G.RED5~)ǺP+j3*qhUmm^FtzIO{ECRE#x47nC^H\lG2*gZԭQ^7 E2WUS̊ݱk.E)&͈3G֤T6J?GbO)Gz~ G[OUN}VU[Rwr.QZKn&6q-4`夐vچCɪv {cCp2!z=._9&%TD&(nTS|fzB>rRmUE f$\ڼ5lCsD1Dr%?$?7 DC.C'"r%%]MW:ă]EwD2NC!.T梢19i5ZoG\)ZNr6_lvMQ]K\߀Aj Ap1:fb2#Dm\Q!D<.CCq" I\"E['.(akYL6]C/6.W6qr+|>{3Dcr3jOx(h5Dj,Y?w\ԐEa3D5\IHbk1p]>yn`=sN@ 1RVO'!R ܆욎3R#ɪ*J DJY)ܭg.m$PQ8r%s1,9o]AI{Hǜvw#H5#˓5/#UVT3 &hw!仒C D.܀`b<ȤOLTTWYGi$sᨨQv@Aqk:Z1UB:k->VuLA?f(lb())r)*/# IVǢkZ.QtdQ+?Sѷq^2q퉨M$^RF!>_dL4:P44VAxb!SjR O4Y.!{QE [c@6m.D% >^"G5ϊԈrMͪ-ܢ<  $HJ$]8 g bI: : aJ#^))jJDM&&"j.oAOTٕ1XtUm'j\dsOS;ClT_%HAɫ14|/6sY<0b6ϒ"nM%:;j4ؕEܐ۵Ry Iwݥ6Y+y2)(VY!R$TPN~K%B^pHOrvH{S*!jֈ;Gfw!!܊ډܣ8yrrrRw@Hu D>+] J$TOD%qID^HKysE"[)MCh~(mܩZjԩGn%Q.7!iU[FF2;*BNTC03$2Pnuږ{ȆQ6Mr2p@i q@vV)@&nW %znzzx#ȝx?o9@=Lܿ!.((HZp]U ܥj;TTTj\\O("/r!xE{}r](w-R kP81HK)*NN1{P$6GRQ!Dy!k#v^$ZE#')(n~KrD "BH-8RkWk+5Ϗ(?F6![kQHuGZǨIE ڣy <˸=k|ɧ\m۩J#P ~onRo+k8N戝0ōbo "!Ѐ}@$C&IT8mR~@mAA7rrCpw1Q\ɨn FE!)1GL5ܒ-\kR66 $[ɢ@3"=<͒99 mQW# ;Q+8Fhv=D Y77j눺WجNT;n 0GxzcTUBv۵HQQQ# Óq[PZTl! ގ1Hy"o֭RCn>H*(Ut!nۙǵ'iqDq܉7rI$G D)gn؇Y %/!jX8%}mh%OL:h{~ =Ciyx"vmC%FA7$0߽UuC(71RrrmVH'+[g;$֮_яٚbB !%c!8| 8"5EEdDu qDq1G"A5{Q8) DvO%oH'@#]=.R Ǣ\ m Bm۹I[?" j;;I$B*5VO%pro/w.Q@q"r˛.(\Fb16)b>oDv$܀M.܆2EP5 5ljC9s1!4>qC1nRDr)% SY( RFJ[q$kZd.*ݐl"Ԙ;vEE ވۏCF)r(K܈7sL31RK9R+`܁T?=.b.L&mܞɸCO]GD$Dh\44!%D0 ĉ(z~\g{0D9G~]=!M$',ɟA)( ȼy ʒ};$Jto @Z4Ճ1@Ĉ@&hrD ])"=CrE!FH@*NrGڣV6hf/Cj=Q1@@STT*(4;ݤHc":RͪX$2.ڣɸ*A:IDh8T 8jY!DG18|Dr8j!'"GG&$ڏrU( fWH5PXę*]GKk:{Wi$CgMV.P9#i' q%mGԱ \z1a|=u!V&)(ⷋ$45\n@Ԇ0EGnkUrj/N$1.Utg+B\_kCq-򊷵;TT]1 KqM:lj(nC ob b^{D^/uc̹BDuQhiroCn#.]q"0jcڢ<H*!GkLQ4p.CCr"2CWq=XT#@$ ɥh! ,w2 ! tsU.b} V W@%9 4kj]rTj9;Vjաwkm6oQCچ15i5Ue DG CQ.*CD7lQ7 ['&9Gc\IᬏE;W)F6juH;؆Oa#w KdjˍL[Hj$Ql(sUr&(@o]nR?Nڐ1i9ޣIg/.)(>ػ^>,Q^eQ99 IuȈC-8[UzFJh9U-(GxFCḂ6 %F.CxӢTHdԆ;|kqڬ[VQHCs{תLھv( QEXzw| %\x*d5^$^DMjjXK;%_PBSZ#n^ŭ#t7kZ 1 <މn3C ⥊qqaBI9hUDT#%(*JD@E_WŊ'"4jq STn׽j[zbbZ 4b8H:KRři-'Jg=q 2Iv1^*<5܊ c;On^EʒN*WcUoR԰n l5C.+K{]' -EE R&H~(\Kh)zpޣÚxO)#߱EK%,T(d(X%VO4vI<:wFN5Qc"g)" .ډG92Cs(9"[6ڊ !]E 9tzP9#DZgS?ܫu#'U+xd%@N4:A ).R CT:HIl3EG jAbOqۖh D]Fq"T֧F⤤4;hm"U%mz% ?*VAX6#w ēW5!IG%lrTN;D܇mKyU2Ғ."Τ$:q1ܫŮ7^m6Ʃ6lQZ@z*ZoHrDn*\5#4csPw!x-;j8j9 rqh/jTBNQ"U},@r5!RD"' عȍ"5^HcɨIq$H n˔0%C&RjP9ZbлYK˸7zFLw)s8P8'}ǛNJ Q)8fPT976FAڟN׵۹>˾F2Ey(Hn$W ;{ HrjڈbcQQ2ډ%9(Jށ#>Cpv\E)d\ʬ`R@?5yM]l%~S})o}K$1m;'(H D›P>Mvvx"7O ڇP 5E^Ժv Dh">ZCm`UIcC1$fmH?b'EG}f&Hvӌw}RA1 Q zq\^OWMW۹m~R$LCcÈղ\"8@Sxu!UW'hjND"=7ڈANOїF[i7nnZ N''Oa.PQ<8AC&7m/{lkɨa,z ǖ@QW&C. .CRQjDDDv|QBo/)! Gk5KFˏ&)#6v1܇PDT]xR=).E R⭑vDܺz f`#"8 r];-9?ڣHkdȔUHr I$2+⹨$\AJrL#$.LRCCmjpACwe*>doms"4r%nWODH&[UI2 ["FSl|6!D GDѻ]~]"r(1w⢢rKhtFkEmSԎ* y=i!T)IAd# ;T!jux@T.x6wAUtc]%+'N9":t䋶H\!@mY%lc1_ǓQƢL5\nhSaՍ [";m% QI_1#y1vh&*ү]kݯR#RS"N#|އKWv Ĉt$ݵ@~ sʬ I֪B jCqGU3pN%8Pk9 $Đᨓ%{"-;UxW#QDGnJ⥧$(i) }CEchzV[5""4kǓG ʒvR](f:AIsᡅ.Y دrHf-Xj5r&DC_SxLUmĄTKMVߚ5qqT3$3RUҺzn1; !;x7R*vG_OHi *wc$B~oi4%FJCCi). &;sT9 d9(dQy^)!hm%6 j91V$1Gj#U̔OIz#'+cG%5~'ֵ`h?ԫMZ64D7R KJ#m!Z4 ,UEF=cPz-X@$M ޻ᡸ ĶѢj8) )"5t+U[nRZ_z}(44pRQQR$:zYt;AY_zmŚ7!Ñn7*B7[OzN#W67ryDi<%%5r#[HR[O5$:}Jtqf6*`Y3i9rD! $Edy&j))qGQRi"Q+*y(1,yպJ*jI*}ʿGԿ4;3غ5B<r.CaH@p!zabP溊;j!E٨@*8lhHa` q]7ɋ]!lťCUV/)<bRXLN1DgjÓv7Ia^kBK,Z.xA!jHv.7C俵^Q$cTIjA{Q)FGᡮ.ԲCiY(#J)MUgC6ph xspqC Hm !hX{m&HՋT ) wܤ5Z@Kdj}-1.Z=]5euLŤy 7R&J95T⍻"[HJHUdmwn[TbցY5}@#1ʾ DrDs|&=)FUIq[ɨVG& #܆Rb4~ŕ52Mz*ZA> fJ(%!v::Mw܁E?⼕jFԺȚ. WW]c7!rqRCrJC) X9_q]u@Iڞj:-ڬ'g܈@vEr#H8z"]WMB?2fOlc#bj@m'Լ\ nH#9]5ZؤdA;C }xkIմQvUnJ[@nT`!H5zZm0C0ͪJ-(u"8 vx=WԒ(Y,s`Mvڈ4NvlT`h{}܇b(nQEIE cVI'hT- x6{w0hχdEh[^.#U%Gl9 @HnC%d#I7(j@i- 5ĸݪ$>ũ(Dn\CE%wհ#CVmCvKrj )J&{r؈KY(?vk|DiyDXd;r^$@"5Dj)rw\Q"]A$5. b@p!!R#+]@M]@܀](:z^Аd8_Z"#0&ܿ)ڻ|4F]e&K d$:RcnZk ]v.\@+Q*&JP9ڈG"wZz}KRG$1+&".!O#s2;5r"5#S̘p|{rje@}s|;d Pܨu=4hzACD% 4򒊶P s %!F(d]꒗U%PpG'!)) D\莕2Cj|()2J*ĈK. ix[krG<=*BS2']2*%INBCo))(؞^Շ؈\o47ص*Jm;s<? pij0 ՉN 1G+HS@Ջ[=CM |7 fZ-/]tĺJGrjLQCpm\COuTt$تu CI=95}>-=Ô[QN (ƆÃ~q `0ޥ܁oC6sUʲGD%ַr%-Es!r&#$@&+ڤ4MɆƆa]=\|yIÏF($7""4_~,P Yۊ"C5qLq%U7Sitk/:m *@0?||]FRqwQ)Alq WD$QulrG>1bic2ևBSk>mZm);t×D%4vDF7y4kQ*|5 m^嚸W{095n!4Cc7v! sކDq֨\Q@&Jnf V%_T$mOq\܈߆47AZkxRq;&m]n@0[%:ت82Մ#bNhw$b~nnf IO'%)mH@k4xb\07ӝ$?H.),- ) f5/P8dDo/o).I*FB*CC5lR\VRb1D;x!*$ۋqr#A+jG\N4 d@5Y Dh:I j&׍v6%!q ]0.C WG^o 8w *I$ Z?TG'š8cvjՑ:M5ەmDr%-ʒ$*^ȜˈvT_eƍ=VeP9sJK&qBdahgT1|)!fd5&nZ|jAX!ۻ7n@S\=tTPZ&ǀY۹i: 5PQq-D!q,Irӻ> MF޸zP[%\< éXGūkFёyhʚ/@nnxzHڷR dA$!n`<5WGKE#i{sD4DsE>gw4A"1-Y֮ WN=F&ChMc$ZGZj9 ^!s֤:i_-u?$`j ?ūP/Kr=7j%-x J**(nH;B JF! j*ɵ'W'(9+rE!rU$$A!U xo%lܚ*[f2nCpLy E\xJI!P;"-4Đ5R3w1]vMTߜ4GK]%) G&v$Aw" Ѫ᪺sLP~+ w9ǜ R,PI![)+oR%+z\|4_nQP)rի[C/jqTXd\϶~m,mz%UX4=<TqDj'w⤤ Se*U۬ ] sZkn"M@0 .v[tv~k&-$m-KꛛXu=@>(< C$d2Ar6*Ac!huD6{4JZ ;s ^|<}+aw`&M9≦Ix3DmDo7j#nU'O]ڪlކѯQmmCD;r_vQ܀ӡC7-U-'Aius9#A9! Ê;C ;ZK@F<݀46. GԎZo\5CH&Srr܆3.ZSYJYخp#/m]L!aDy+MW۹ E,n*(n&+vGwUmZM_r#FӡbrEEz]!\MʼxJ4~Q]9 wܢ5Dj c$fKaZ{!2O#H,DJ[we˪ISvm@n.@!]Tc jvaG cتym:!v4::T;0rmmZkG|U!$\a7'Qq*H gU]]T{؉Ŝ5SPq`!2|yxn':7?6*FݴGcmnk,BTpCi-G_srP@ @&CͨGB15a;aDkWZG"H AɨO&b%FuPHڲ9vxWLQ. |s3L j45H=ɖ1w;%NQ!MCp$m4z.2NCr9+) &C ƉU@7 j#py.܆./]g SʜRI& |˶AHhnCnmx%TKHQ7 E[$w!d%9LQCi9k''.RD#i;D)*tQ)2#F <79R;VHr.C5EDJ"!C`߈_TW)G<|䢆.CG,5 $hcNr ۘI|%`.=jjd܆JI4uAɨuԄdvB|a'ojAQVr^gcCv.VrCr"$9RT8yzb9./.^\<ɍGԸfTٽDq"&Ҟ$HCݪ\⬏R Ufr(""% ޵[VCDFCuGD])$bAʀy35ۍrغ:@/R @J.vsNUd[$)h,je7. $ݨ&[|j8Ȣj.*A-]rXWmHWDi=vdH"%82QkI_/7i<Iӑ ZK! y+Q6(DJځ*0ZZN`~1&һhvI$F.ډr(nC$"nQ˗o!&9vI5&]?Os)XJduEC+?;WQ_+Pf׎ +֊ VG{ȻjwJ:ak2r=CQ܆욤ݹ1Ʃ+x $4;`j;vFhhd5UnՄm y)mQ]pqQC~ }67=XϽ87In * <\VQ\hPIC5s{jMǹ*W-NoΫd֫Ԗ[c?[{O1Ԃ ȎOI*BI4A{!塹J"+#EpQ.F>@ u4mA飀7VNuۘ 4rA\c|6+:ZMc%KK"W/HcWMގ:A ߶mʑr>97"4ME(>it0Dcm%eYop$3Cp5)!؊ H/jjlw躐zzԩu*ndy_q8)Q-Z_]Nlg"jڐK^O5h#j,>`WE\TcMWCWz_B%PMD@p7b=?z { V6ڈJM܎^*0%ܢM6x+5i5-MYԵ!@d!5-w$"Emq%ܒ#? Iq"FbhKh'Ҥ;ILQ'8)D%$QLouܒ%(pwg<-[+Q5*CF6g! .ڲD:E#F2d1ZE6yWj95Hj))+hdCi1ChPH>;n!)"]Կ5Ri`Omߔ8{{rv"jq Grp&sZVjBc2Dn܇P;{ .Ȏ ېHdRROQoqjܢ9$]0z ȆL\D7J$]u'ԭIrH] ^"2-ϓ?"+)!R2Q:ڤrE\䥵Do9 zt !h?Ԇ∮ vs$m=Bwt6ԢDQKrQ"Z$O$5Q]/r)MC02f׎ZȞIG˸/S4ҹ G+WnNVvrGMQF SRWnLRăG$4:pF;O*Նy:PG~j˰C/i xD3 =^(nɨDD+V 5uwRI}um1&5)r"r/.].B~ Eur^^*gkD!63IX1MQ t7SNݦ"8YvցnMW`,׵HmKxdTܐHrɨ:~") h:?Z&$Uӌm)(Sڻ$pֹILj.2zkiJJ3$I[_.dlD #I7}RԇN+ZmƄև_+#3rP<"R(,|}e_dsUcH-C]DQCpIwFP$oMBOoځJӄPG1 *C _B~( ?ԇq " 莤i(۹{?T#Ir HdܬTU r"Z5"bE\ܻܛUۉDj47 `W! tlgx 5t]ET lAD^ݯznJ,$IXbCE%܈w(n䤆߹Y7KCr5D9;j΢KsɊ>rHNy* Z*VI&q5 0ݷQI5qrC"1['҆܈B}+=z Z⢻ (UuM.Lrj!1v7()! ]?'RUAJZ)GCJLIDn;r&Et=L%_G+j#̎:]&;I%xk([BbWw>"c(!-jI-8F5Z";.MCnJ%lqRR Xr#m5HQR^*/WN98da{*܎aJ"8(Dr˹%obVI)d2C$:pI{NW8x@"V'C0r""ڽڥ''rHv1Cj R&Hhhh|ↆE@40Ci x؟˭g;64;y!&UQDr7!{QA\)(HjH\;hԀNI Ȋ ȊF* w4&↢EDj#IHH'N8~SQȁk!%In1URrbEb(txoG-Q9JDZ؀ZhDR nMܤ"r%dRUt ~+)[iCq婚=3k<- Z%e4} 姨Wb+P,n-B)(ppGjޤIB H25^ 7TwfӜn#$2r"xI5[]=yZaȆ&(~"n2Wm3(cP4y+ $[m0QĎ IX;nUzNC xhDGRD$]5bo!En+6ImQȍ?҇mq[$QS4H0b1C&S|Bkhm d@q2'sWTSr;DAN1rO.ki`&-vk1=9Jې41nעۚQI+)VqQRQRDo!mb^ڶxKleQQ]8I1ȖF$A(䠸,\97jpnQ\ƭבZha3C~k5]+wQUЌ!z\P*&J[C< ܆@嚊($+Ԃ.䚈4F"4x8y)mGVU]Hqr#H{I~3Z#v򊒸5 \}&HC7 CCvMDi)R c$Ց#w(-6ynC$[@QQ|noq> G q~1 Q')1JGD}މ(bCdr&2+Q%" m wTDiA9@P4ɛ)k7zl]\rE^5B]]٨"j;d*%@"Q)P 8QqE 96HrRb!R?%-$VR]ВנcCw)~e S-އ)G1#MDwB v`QrFq饹ᨒWf(9rYv\:7mCA^[tnWOW"+d%8.8ss<X;xsjh3RvBNڤ|hvW $G6]Cnu,5lm4\K飪uH~ozAHm+D{\D7 5t%A"GNGm#{w(~/4sƏJB 9ڈI!ry3˘['(KyGQR(EDLa =槫{" vɪ#w-Cq9MHnyg4EW.y5[h*! nރ EDcqjG&WgTpT&C 5'P[!{ :Ak mKk z"9u՟apni`uV9ӎ-]ˈQ$  hm9\"6my4h\TFn*GE3˜{jI a 8xRK#׍ک+=C=j"ݪ$P"6 THo TJ?jA-hφ$cv.fb3IhUZBSVmDiC.Q܆D=M]nRV!Ð#GM]rEwm @$ rbD ].6 L5 7e9DD T'P1dFKn#HJy5 9*-KS/W(D>qu E,WqEEEK皒}=xRmD^L䣨ނr6^(|/RzSęz 4ܤpb6){ѓ޵&#t5?ᏱZby=Ky ."5GzD~ɡCNKSӸMqG*z9%p'eAv9;lUtj~nL6+yޤ")"7&r2uuϡDމrHq.nnݪ H:Z]އ 6\ jVqvԉ%V!%H[\Pn$1$|ص E1yjJ1kN2E^rA%5q Ȏ\Qn_k?r\P1ķ;壄r퉼TH4:IsEvԶM)Gg(q× ǔTTTvղE܆QQ]!kD Ihj<⤢TUrO5r{5Q>94TGPC6pqܐ`r O$2 ɒ&x cT/@P .Z۹IDcēP۞N;@9mCT6 pVQخb/3~.N D $!A n"H+,P 2b=9%q^$\"ԨbRo֩5-H%02K&4 Si Rje~1؍.%Wݨm1"!rj%mP3պݯC' 8Ս8SԆ15w.HzA{TGEȖP #*=H}j8EV!3$&lԭuwdsE4zk\n!&RLPͦ~_¸ T'@wӐɓsjƆM ԟR,RWd\JuxUKhF'ӛWY*)>LVO^ɨhmT$ndJ$]D^!G6CpTkj<5!J Ի[&Un R" Q( >d"ISu-6E)!*y0](5xr]NIEIhCyaCm ޏYnd1^L !MYT  !3.ZN2ᒔp3R]w2Ci" {cQ9BwŨ70G-Wh$O'PԪj)R8wIUqڪXAv`vCp"^(*D2 ک>HEG?z ,d*;{!1b 9!Cn+۹{JBdM@ $Mc&*(vbG%jC vk˹6⭒H@LZv$7[k9\CvQQ?D7 w|95P Jb0Եf Q=R̗Pr;F90oQlzw&_Fhm"GnG%]lhƇbJ$CpCpԆI+ԃrznCR^+f"qj\""5rC!"bӔd2"\jJC%(#A%}2Di|cڤ2(&Hj:F#F lnE%!r}vRi.  H2dAjN+ MMKRŧzPa˙G_{uWՎ uC|֓W$ ,~6SMZN@M>C{?4 !|QpRJ͢(u*ᔏuO#l46QH'5EkI)K 2إ^Gq"AA HI>wh⊙ny&w3b>T ޥ]"bԩz@(ITFUl ,U])1*wG%x t]VMsO& <=L#"\DwmW-I2fE*AHj9! $ZV&zi _z%.MKEvV%qDhnHwqQjD䥏"j5Pw0h7 )UqRjLU:%8;kP1dڈAT{mCPVAfnV$1N]P;bUc,9{QD 9sQ:iYqyJf"6?yUtn!i#Tv4D"n.Q"~0A*H('Uӑ\#G͋B?(بuN('F,Lt6⻈w$t.RC * S@j=A2RR^*+DjuqPjDᮞMp4=.]6%CHd$\ᨌ<5FK( mPAm2U| (GMQuAtD=ƠT..HnHw$WmK:D?6܆A DrT_BHnbjn}f!qꀥȜbIEIw9=RrRQG) Kf-RԩXy8J/%6ӏ$7?AQE=H5-uM0!pJJ~(("i\D455.L4ZJ$Gj#.](ăT_oD hUCކ|Ho]R܆ѡj6Jw.5*g|梭C0IpՍ H:QUSobFDA UU]ᓲim( bcCڲ G$qn]@)!9w$Rf{h(*} uj޺ʸl;~W*ͨw>MGY ݼ}Zu) -'^jiua^mT )kԤGSeD%f_5or#hHOy{G.F]pS Uh{775d@ ĉ!胫 ƥW$:rJ&܆E["W+Ĵ56DM^fhɦ!GH$"#43^jW~~OG@Dj#H+q䆣98?)2hD`* qpT1V4u J Y&CCpBrڎv}Xc-95Wn UěUPNJ N&XAR)ujuHJLW_nC *GnZoA ċrj!G/C]!ro $ 5x4].^Lv.CQ%Į7o)r*\:"rD .EddJGd/R%GzK7~r#EQQC 6ۋ-U[OP بIdwnCp$ _"UMj*>Q 2H~>w4ᨨ˹c^7!~T">Dveۦ!EnɀG*5SWl~ǪAfwrN܏[r5bY(T!G2U%=zAb9InQ!rr6(mRV0 (jKm D7d~jK$G~ozʏKW&uIöMVmht/A<&=<##\5i#'M }m`#I;rn_W٥BT[g]IѺZ)ÔrDRTHJL|Bu]>_k"(De2\\(Ha?Mi)4zhcMCEIGFQi$ u8yG8ۑ_9|CsC%$Ķ~oz I!rFRG˔PH| ]^KEhZ/!Nڨ92䚀Ed%='"!5!u-n!pHJԑj6ۊ6;rCmeH&*⻜r}E ]ȏn.] }HW#&42.¹yEK.YoԻqTNC!$mEGr-%ݷT^6R"%r%-A&^2xVC$ԽQDj#Q?q~J$WrO:n]AݩCnCndjIs)/sOP`%ےI GDRb_"wCQ:7+ö6jC8y SJ$,JŤos>J? ym]cQ/t"41$GMUcܪQDr**NmwT!\Dj`Ha]oևQě=nC" !]P{]]#_˸qTiyPjGA44cU4 zM3\89Ci>kż67v#nz=kTcĸkAIƔp? .D ?6rDڮJ9rFM'ҤrIW2R">h-LG$?hnCCq CCQ"AZIL1p#9"" Vm&żqHhyE[*!МD5#' TU/%܊}Rڎ2"%A/[$ZrrE%W SxOG'spe!H޸MԮw+oR9 ~DKk2nDh #IFh\Ua~%.ϔF EIKbK*G_eiKĥq`ڑ!C#Hҭ[Qzn#SYgţ~Omhfo1OH*bE$7$%dqCr#PmRTNLCi1"rMJ0jF8#P?mhZ-S Inmɦ5t+G;6'.$qwŪJDj}Sb aAuj%!F0"@3E_viFGBxOAC 5_aS+bve+W@.! ԉDn(%ȹv99#F܀kRCCq$Hv?KeGE! \E ?wDj%9ƇUH7! :a;Q 8żDGpkM1,zM5 EFRȈ:-YFdqCw<]y SjNQ6h}(c&B='RHf@ݒ 77rI*AF&\j(nq];VȆIE+RII wq;rC(d\]ZږGbpnr#qX+DQ$ܵ'U0Dp6^Թ h mLm$n+׵'ӰLޢHhj񴢈($.($QI&!r61!Ri>1?z=Bk{#XA]4y-Ji]s 須M‚5*\0*JZ!I!^HwhKW(,DrMRQAhUmP*q א#IQL͆ zAka=$@01#mz9$:a6@&Ha:T.y Dq%GTi! $6|dt r5r!EukWrM&lnn]w$+ᡐc@pC'lV8/ZC2I Y&*J\NQ(ɒ^-/d_%gY{PLFE˗mvԔq]ȹx##\2D!!HȘ mr(PܿD'ҁUw(.Q$1.K&JgGjݾ  Q<`Qگ!mu"5t)]9F$Cjw.C&63n@iHoDo.ܔo%&WRIsڤHdgB.O<RC>GQZ()\QQQ]PD UnG IDǷNH-&#}OWcS.z"ݒDJrI2R WI+x/- y$P )!r/s>!}.RQRDϐܢ Do;yܤXj>ᔈᤸrjFB"+-xɢhclD#U]A?s WU4cCbhadWU@Wr8G Hx⤆ʐCM@&(vG&d*$Rڼ\jrvTv>H"ռTLQ[W hU:]fk/VVSǁ1Ĩ8BbnM"!G.Eǒɍ#ZIzոũ4oess<8(.!r{!̫Zյ2@J;#RCQ"lDhDEUGl,1tb=Di"?Z;jƤ1d;I/!dqD붆HNq˶'"8R܆B7ށF{#7.^MR$TQ"42nCd5A(2d|41Kj8% rW||!RaS L)3bCCq?f}(:[pNJ\o4G!H$[˹-H,U!rj*JBH^_+x򊷊9rKWy^S(CQ,9v0((HHv.!$2(kws^s]&}}kRJjZbB(qE%o/a; [y n}d\!!]Esy)nɪ8C" {ydC DڈqQBCCi܇G"ص*v TpM&Mpu!pEA\zt ȨvQT&CډajJeII.88uB$뇫4.VfǠurrqj"򒊐IռPLۗ ÊCQW9DjGUam CDnwDF$2w#↮)J(dCn.@ $54[8jM k[tBunkuU/qj9Kک5mZEC&!C!ɪ;HR*I76^H187"(Cٸ0CvHnCrs4w}Hd$ZrR(";-9 wC*Hm$\5oR!63ɻU|zr\W1o/\!dJ%zЪ lcV/@U.;ԛ eCqS5߶ӒMCm.ܛ^=%V Hٮq2])RGݗ U7"4xjrRDϔH܈W"ST'){rH'5y)(+Q7McG.'l.)dL-rj:zpRD.rQC43Rc۹ c*j;3 `BV}q<˖r$ZR{P1I`NQH ÓTˊYH'5IHqrIvPV:ːԗn*J;0uw(W6R˹%\AmQW7ǖUV0܄֛OH7:f?cU^Dj89+w\hZ}?~ [TTh&HmCR>Z;8Punڸ9zMʐcr]uY:Jjfs !V ȄZlD -j;qD"LTrrմZm'FbCh$ٮԨF ȍy!!(nVn(c<[J41k1 Hr.Dow3{=VG8[QTH42H ;PAKm܆E-ŨnMv6('"8j;X˰]e 4$U%QE!zh$ jCHrr(Ú7̌RMD VwPɏ#пgDvɵ5epWm 8!X5^64Cv'7k7DKRUi4̬DH kEwCH3QjDqj"FG>YRUPIBYHm$B G%_Tڒ1&*R5={U[A`O_]\Bdb"76u.VsٚfLfsEUEUnԤAdtE*LQP5Ju*PB #TNwz977"8 Լ=4{iU!+JDi$wjC!p֤suUaaw9 AڊH|D_DmD>[P/EIUI=)2dܶAUdr(8; +Y+6MPȟJ"=U$\N{ * v[CoR]w_bD`ڴ]`; xH3G jd(][>Jp3CimPUdu0Cvq$TF7nb@&!q]*>(fߔL:y!$7JCC2Idh" j8Hh&('V5AoPv5ԵȚ~H z5䥹 H}Gd:|H$3b7!qD $cry=QB7(G$:H"Brӻ\ly)i'k󃏠j(u@"SK/zINjE ~*>TWP5Kc$A∆*O"Mb~Nʆ/dr*9QM܇lR@QO_ěP95\HG7sIY+/%lC0!PJ'@9tr@䆇nCjCR.)r`QD" R*Hoc=ꂌv)"r""qDhF븖Bt3M^*ުCeZ&Un\B#$FVhv-HdĘ$ځQ!xWNxCvKy"yr#ykT6-[TԄ1eqjԠMM9w#Ӝ2[u#Ŋ%NEgĺJ#{0UuZmj1ZJ;Iu "VԆ}z#NB"~,6#*ܥ]9#R[r7 wy\E>%>MG2DjDG qm u#\<Y8a d1J-]vGQvȗI%g+vղ+ǗoT$5 ;cظ*&qCjݖ?cKʜz Τ>]$8 =D&QC DqGܭ.QR@v>m#DjDWKܢ{n^MTHQÐVN{u ÓTK$F8DD{* UҞ7Ơ:-7P=ra Mv[9 P]UryKM)$Lڴ->ss<>Dv*]b#jGх#ͪ(wFb3nRɪK˕f"~"EmW~HcU[Q[|h4ݨd܈B-7jM$>kMGӇ?{4;LDCܫfE%%l+ е HN IcډqԅkWۊ#H8DZ;I'.W8TM*wG4D?["/%$5R"{rDnJ=))UxR8VD 9+ÓQD6Ë Cn.VI&DG%-7CԨmZRi%9F4c9CC"5䢆Mfõ{)R)sjNASh]?ŕO u!w } 7!vH\QQDr#$7 w5 Hr95 v0psj5*>Qڮ a1r%ȷj qR=v$E؆kK7!.&T$i$B7WQԷ5MCrH8|D1ܒ#GDJ-"8h|ܗ6]9Y$v! hms)(m P\&HVȆaU$@ 7nbTO&!8!˶~r񇚼9.rmHj#Qǐw/rvPG ~ڳpnQ!PH$2-mډTAU4" Ij(mZݪj<%[ɨm܆LN43RIUO Xz?H'BQ&;P!Cj)%lTCi⣒#$*&.C8qTTI$G$sq Cp]+Iqf_+{I$F3ȍ6˷r~HnŨ:.TH']6*⊒Iw"?x,1JC"]]IMtk3EJCL$wPu ].CGD P !/o;5crQ$9rHKE%LI'!%!ԑNX+c29~54nmfhcڤ$QC4S٘^r$C ޺KϘ܆L\!".C"O%^>4rrZe&JP8i54za\ݴSq„*"''*ͬU!7;riwKv@"4d#7+:mK1QHˋ6+98D{~A\97wf2I+ǔy{ԲCoC욇KvpGo7TU$ PSR}`0,!uQ!H1-JʱIz&Q ȁ+Q {4*7<AW&|7yMqxuč@P7#UCT7(*ODR]"xݹ\Q')"9Dڤd4Armw1Dn-Gn.D&9uH\M^*\r+d!j:ЃAM7 >KԹ7(! Mpr=XYa<{~ש4rUd5^ɿحD>I*Gbdb=4hHUmGs:KdR7(Ċ$]hmhwXmxBq5߸GAyU#k#CSc7 |QrrɪD +]oC!-B]ڲAk&@m+5r z ;j5s5&+j[QH>RCr8T*עj_#Cxv6~{ CۓQHH! J&WMN?F1ܢ8&FJwf/Nљ(}uēm4C ;T AD9\V(hV7"vM [ hw"dF% k@ !=ȗ"7ڎKZ#^ױd5ܚU\ 5?.:=C?zH{"i4n#"ո'MCHNwC0O@8+cCШ{y[^6jY*zI -RkaTT @!"mQj%=H67*Cw; G Fj?">Dq.eT9j(jl VF֥n y3zj-ɨn] my TFCm؆a'*++\w9H'Cr'" >ODaa7EjR["E5k$*1EMGB[r HUlj܉cb(nZ@&>Hɨ!rI][Bd*iڶI)RI v+g(fE!&#߸ jbr F.VTTD7-VȆd<]AUUnrmƸD[Wszt7[Q $DV$R "EkdsGճE Խ )nDC6ڸzrʸ{jO9 VI ifʑrW+y(.khcݹ Wr\Uԍ~;u|8^5dGخ# h ~*$1D0$.L䢣ˑD:L9"R$3(*\X@ID1:5W7,&) D [P*)hDsG<ղEkI&R xv]6JHhc<5j.Cr@b븤2)ϔ܆!G]QpDܭnPTw~o]^(= ~HaJDrz~Hm$x.@nAēQ![t!<;jK"려5QW$\,Q95Es2%xrFJJJq #,]9$dD{PܣJCWmuTmdj}jçoV%QRQRJr) ݄G]@NcRpT֤:S=}EϽ +T7ιR#4rb⪲bڔOs%1$ s@T5F$Ji{vԒoXD6˼y5v!c"qCN]ȫ'sU~Wm9 dNLT!W<6]Dpͷ ?⦥B]BF1fHnRqUc"%ϥȝe]b۷"VMI47 w.d( 6.#kǫt*i̼HNځU@/kղrF9(_q I)"_Q=FBJqpڬ[nN+%p7QB+ VRd^ H5 =Piu-uHjƈI"&C! z&S6޻n2hT:!  ~b ޺r "H7+da䭟V*`c|4;qCq1D _҆Eldw5"ȍ&*$W]pR'Ѯ#GV2\"H(MRW>J*C@mm<}FB+V8>Vnגk&J$C]&D "XR ܢ55U) x#^G=f(T&#vSY= @u5PP1LF+b#H;qPLQQ9" ]PPvFC 6^BsO6 گ80';rRQCi2@nNڴd5![OQ"休.IvF%h$OJ]kR&/$6آ1r  M'Vѱi6"lBC(IrhY`B5 أcXCvס2H%lQ_ M1\i:4R" w"oUw$<ڇKmuZU;Ywp$29[ȪX8rCpq LrcuKrv7Cq$(MRj Ci"FMCܹN?'HK%,ËI%$47.ܚ dۂ rv%QCh\ȍ)pwîrǒHgWo5J&n]Q4wUmxw$2"䢇YWMOM׋ 94y"SB=mwA>*HvCv.T%mHxQԄݎ~KX InxDn;re&?D[#H(ZOR܇mw"L*"1 IA_!܊mڭHj#ouƮi6j'#I !fѡ mdHk|"&;:,Ԫ^#0܆lUBT#SiwpeM P ](*[ωmv)7[rV04'o5*t\+cԨIۡ~MP1[@5$ZQ)yR'BGpDowH$z=Hfn#RUHNF9 _Zm=U1]. @ptha= \NDYz*õ&:C7nCv.Q&*"nJ##UJ(&סݨzpn(qD%:BDn^!hnWP>' On<⥓|vk@X5{އn-Gڿ8lT)\JB4"8!`g8*גIC2)H1ݱ&wɊ%H݇m .W$6GI7=WRCڏFDF5E2F$Q;w"dv稩r7ZRDj%6[LԭQR"Qqzjr.Dr 䥋 8hmCqqQ$I˾G5tq7=Dx,U Hd$H7) IEGDp>PȔe{ݹ U7(+Z2Y*zͥ@!-upZɕ+KܣS@ԉUҟ$FhDJwǹ B95DjڔL.>c*\8gI@ًf7k<޵*8qrM@dBlUz(#R-]w1ĶAmG=z"HbMDnNܪݵjA&[Q )nCpOWp{YYVӷr F*W}DKxh_pxժKW&4rLx؈\KI+`Uw*4r3RhcRqr wȍDK[f9owlxUW3Q"'!C J8E@% QARW x֓U:WkI9#h ,mP~;RRϸ _|^nD]=[QW%J:+RԪP;bDp@@9VP?7 AՉTU$&b7UwP)NG.4آ|.گALJq<CɾYDBߛtwEph3?ڈJB"Q%Ma!m>*(y> ̈N?H5APHDr(!R^nׯl]#m!hhhuZiFfv|j(naPB 8ITwr`GDCMڈ2'"{qhgWpk%p|nʤ M,O ZMQkg!qM~6!&NjvS:!kQ)u+.I(ݺ%)/CrHvDJE ' Vҟ%IC܉OVJRnbD3R]97Hr }Q""5k5 $bMȃɨW8ɒ&thJK5l_psࡏ (\:kڻ (nāGmچFP"D:2^n7r$cti*;I&M@h7)+˕qp͢dԔTFGj#2EDv+RܸPO*`CBx\Vv,d"EFoRE"Ehvpj$]lr\ InjJ( C#71D";d!xW r:”||⣹uorr.x!["#O%pejjݪ9 K%!j'!rCrvPy9 cU걨Dw(OlWj$W@AM?pO4A3qVG𦥓EDREj$"X~I殰CV6D7r+d>OoD83MD!֫SN7+hjh-ܢAesDGW Rㆆ|X!U[XIm `9wBeo8UtFj*겄!'r874c Ë%9䤸1G`\ݵ PQH 1`+|5\: gUo[[ԪPmM ##nw$ [EW"8."R|Yj\@;HjDqvIߊH'vս8ߊCjc;sTF? hdQv7)"ue%}Mi$G\"ETNg? ,\3Re#p*˩CpH@H$]U>E]9! yoDm iq5UFvHjpTp "8zհIhɪ J41-ʃT;6 ; IDi-6*lT @0CHQ."4r욢L۷kB=vM&G(/j̪oގ=Xf[CCj!K$:qYkj .G;W d6'rnA-Dh>~%߷RƢ Au%=\^o"I mCp bm\<a܎Jēk*IT1 x]PA)*4sLC71"X$+dKhn@Պ|qw r]@ܣHj+QC%o) T!2F'IQo;k&z}CjJjxF2E}0qFYRm}bGnR \՛@74sе8-h÷Pr;n J#v;lK=)-sDwQ-P=]ʁr6w.8 ݨܤL\Rw99R4CvJ|]r(f|RIWP19|m%W%i$"*eh櫋Fr@HpDI5VBc\_UAԇ"㪭XtX#TtэɃUa$w-;ޭJV(vچL5lknEǻ4}SE--'R ͹\6A`G{=k*ⶈ3c#ԑLNKk*$rۚA3Tɻ]m)#4y*?)CCrȫDTFvjAC]OH=t$׍#r2EcsH..W8^Du!/ri mC5} -@?z'_/.@ %˪Gܶ\ ]̕!ȡu-p 9u(EoQ܈JH j99؈}p MjNe˸Epj!  qגr]!ǕȆdymT"ڼPȢ5s>h< eqPH91,KW!UJDGɿ9wFȍɫғv 4opۆT2<2)T*?o§{4JR1RZLYǹ@rRQ@%!FAMz}\/@i+j֋2 :d*3ASz :n03j92\j\](ڒ5ld+߶V7Rdvۈd40MR%))ҍ|mwL ruE<!jইQsF5%m +y5IjYjs݉+h܀:5vTFX P f {Tq c.# fܭH EJDC յ")e(OQ$Z"7|Q*9+Ut'DHr(~t p63$% nCpԐ) JzE!Q$] Ԙ'QpkHcDq:%E]5![ $,+FU{r \Dj;qoߪ&[pr$IKj=.ڀa4Q%R܁mRh&H26NjOCuY. tHA c$PܥήV7UX\DmVQWddެ7=^#I ݹ\-d5}8hfHn4S/4]4+B?4 ۓJG&hcn55K+sK73/%pxZ);N76ݤ0ކ$6*DC]NC]7!r- Q"$mD 6+1Rڢ9+dEs$4 yDvGrZO'][?Ut36l<'i܇2( %ơ4W}=ҥ#Pݹ ܆<[DKO(IE{ށUI8gtT%Ӟ=J zՄOt|gSo=VȻqC!hha [ڢ[zw)j[ȔyJ$$;{B&kqT@1Q"!Uf-S :Ѓo*BMV 3=ӐR*+Y1\ yTTk7y$}ʁ6*Gkj]QqDF-܏n$ܒU4n*$!ѓ"P975n*CUDpZ޵]2ՉW' _I)"TA%I $֤Ᏼ6ZRY)5Ph`; -&J0vDXȭ5#9i-/OB0Em(w*'a;ֻqR!r(Qbd hR$]~(qIv7iXJB{*p;QqxKM&4y&8mQRCVMK \]vLF;IDL#G"!r ~B,[iC0>"%9USU7̌&pDvIr(㯮kDɪ$_ E Tkh-&Ĥ @1jqdW6&ROW/BmDn.]lj@ Hܜ jT _qv @PݦK"I[J5 (<@ECjzRXpLڢ*LI3o!td7 E n" q޻@W5e9 Gw!ekHhhjJ;E?HjHj(d$PH$7*J5lj4k;d"Vp᣸c{1Umk]&թTWrU'p NFj=e]mb ȥrmd.W%lxcUp\`=b%q)icϵi:MN8A؜.km~WTbn(Ch>"j0+#\6tm y7pD0[m9Dy I VI$:PHbsUG۹65 )]ih˓ K붉Y!Qȍ*UHHf"jͫĸr_+8'RO<}ҌsuMpV=h5g&8rj1Ց!jORBQ Y5cNB I[&J]{; *pƒGh7$@ !gص"3Tv;&dN"7YfHmu|^wN%)11Mno]9K?ޥIl^ ڀHk/WnMC b]7b;P/Tx8mo2vݹ-$ᮄ.1ͨz1W(. T] t܆mn Iq+D dW6;m vbepz;O${9UۻR%Ƣmruy1[؀1 Cw)ʽVFP8褬!B2 zAX(߀T:>OˡA T}+d 7!"8d9BȎHk%cDj7$%@TvڕLqfK1i=ċHNJ2rrn $@ڴK!@j u(.Z$vCuXݾdC mZgZ@ pk6!%q 9Efᡴwo$6 D<ӫبfإUOn}?+cm8I~!wqXsX ȄdSsKr;t:6/͢B1d6CG|?A%I]I!JܺRE94G"%FJ Ȏk iӻyw(C^{^ pl@Xò%!aCCn O!iW}H .+zZRrAWQF5_KW&*[ 8 d ŒQMR*Mja4:\[hAFƽi=R CC%܇FA١R}HmCq7 miDkUc<0ԆrlzpE @D67f{_åԩfp-b#@ר/RmDIࢥZz~7"4hCn3*NŦӟT uͨ#r Rɨf ܢEHq(R{ ]-\)iM)'!1 `,8!$7 @n<1nC% O ܆2!V ]F}>lC%%W)ᤏwZ(tYDw!֩ݪ}Ԕ X4(n Fq6!"7᣺wD4SxhD@Գz%;sL"bԡC"4 G UuZ( 4w D'lڒ#Nw'/&GF.CrǕ̚ 5dhZ:Dn52ऩߚ ƮK]@ZwyDb AXNOܲݬYp|"nDA*BbCRZA"7*rCHjB" j!NBI>S0lH47v.^*HF5RRq^qGrY#$A+ÓTTI˸Or%ݵ 5{PɋrNTUڧG!nPLU*5=HKq'!bZ. HY CQO$] 5D Ev-wZKokB8";j%UM7=pe !j2]=؆EHf;hPE$?$:3$5%lreA3w$ҮDiŮl"#P܆䣒(qUC V.HW7u0]-y2hRVEACHRSjx]KSTԏ>>5k~H ƩmȔrj1"DC$< w+jP5 ֲUttQ RRVUj#r#IQݹWC $̼TIJ95w`H[O+I DnMC !w`T8\!*X00!p@H+VbvA"HdJ]JEQ"t{=9vݹG&rԴ]jڗR#cnNahOcjx/@ɡCn+ OWUt6NCJ$Q%7M_ވDj+]炠kQk8,)x QeFgz qDl˸)!RT4G$O"mb8;oCpPLW~^K8~ ](i <h! ۋbߊFC))}"!!8+c܇YH_D x ;$7|CR^)slsNHkɨ{I^$f&Hvd@:v6_b";jAXFc{^GWRc!$7bD U Ȅ$Ww! J(fF /eJJ.&N.&8Drx]=yBG2H`Ct@!w<}8I ivԔoVkI 1r& @IkDK#rzh|W.InbC5#dE'>P4)R[w 7jI#%G'!%@*IT9T?gj#@HR"EH|㕫G<ۓU[Frܺ]&no5C7.)T2C0$ѫdM}]'uݵ$Z rr %$6[ƣR -*x,9F.]⥒܋^ɫZ'lTɰrC ]>';7R(" \J*CC^H{U[i =p|2H[ -1kZQ}iJ {VCk.2ifPv\-]dśC=aa o$Jw>v6R$sUd\ {(⢮dچݨnVNxv(/sk$7w]("dcÂ(KI#Zt4`Nϊ%u]VJqJv5^C(d%dvȎ:sr%U]HMBLՓE"$MC&.DA qʒZnj+ڐߚv1Qk(#,}92"=8 99R ZkG'7rWmە_ .q:ګ=1"H4O%i% 3D9)c"@znEvVHې)ItT5!jA]w CpFQ_Hbp^njPJ} -@UxbnR0o؈3T  jzE.@m%KLhvC02܀}sw"8vH vGj|apCcśC 1Q]A ܈2"mDq".qU!F nKGڮRdbn*ADi&b#v$JpcFRj#Aig"8jr"XL5j 7jo(blq@bNCp1eZ nr5@rlCFy7j 9JJ<~|tR^$UB  +V#MD$3aB@ UfWr7HtظOגI!jW)!.jKAL7`7J($<v"4䥏28%qm֏KPŏ]Ao3GVUx$؁EwDp1On;D+Z?Nt2.&H&+$sjQ]5HVȻur%-Y⢤HÊG7r8rC a$kQV]ȵUy;DQ"!)"7qe?Ǭ ⭎(~*\ER:9vf@0CjcH *(cݹ g/.Q.w) ֢kjHZܜˊH9)!rb9w=V~Q}Eyt=&T"Iq:GxaDn׍KjކAX>L+[GUŚh}CFHrBb94KRm$m*! zzH(ڑ8)[j#ڣK$@MO <|ɫݹyr#H"T  #G>]q1$@RW1R])ExRDi$ѡr;!4 +X:jD75["X,|Y..ǽ݈h#OrmvG,I! ^ȃ275UȚR 7o W2DrQ<ݵ j;T˾8PWV/[kPH![ Qkg*7ԲQ%@bK|N;B-5E'*FI4Hdغ;Gc\X6*Cm*9[ +{Q~m@CA/%d.Hn8Y1dӞD^lj#|PW{Hxm@MF%ZJ%Oj}՗]-Xک*xe/mIzsRRQǒj"%C(Qǔy&RjQIlwbhOJ({Ԑۊ %z6e%d{cԜKDۑsDՒQ IۈF/YpDZRE2n@&+'Dj1ܓyEUӫc^;UG1Xx$"8N6W"RQ"&' 4J<~$dv i7nC7ᣴ%mw5xRQ)Ha޺scf" wRy-4$bdއ\ǑH%dm]P;cD$CڇQHJOGjCKY̘.(5qF-%Ƕ=t#I&9!YRTWͬLѢ5RiUAqb>໋#Pݹy{܏T<G(I EwnqHh@4";mR [.]8dVÚNP$I=JCC%7s CH%F%DjԶ ػ a{PԉR"TV~uAܺ4u7mCgV|;r@j!6Yڊ;d\=XrC䤣Qy^5]Wo^-*#^RQ!܇깊я"Tnx|5DMI& xo"xpHzƒQ]>L6`CnD1mM "Cq1jUڦIwճ jAA% >;Am ؤEs-XwytY mf$TF7dE)RJګl"#obԵ-HTdɜ{<Ԉt]ȹEݷ zIKjEHHƪ۩W aCѪmh狑l{^jH!jLTGDh$sWT76$w)MDi % r#I/br=FFVO$:ؼQBpmWSIysEUV\27] /UZnB4cX5Tpmfgz4qQ7 FVN۶R8CnDթSs ^*Ck<!sm{TUhCln]FrȠ66*$RCrI%HKNCq1ĊcQI5\EU! ÓTrR$Q5 Ev> nE%It'a&!hn`2mCp8(4Br1?q R R~Ui=蚇?DcsGot?֤4ANڀJKn@I٠dC m'm Ruq ayӜvצwA`I\w.F0\GDC"<֤K/ޯUw-4"r[r1QU#%!vMױƷNMR7h m*[Ǘ8ZvFҸӚfVB7w괚hnRYPcg^J(U%@$7(d*<˷'թ؈P*#Rzr܇hVݹ5~S }ơUc~;QvqiW&+v}\%|%R" I&TQ4c&JD\`ъΚK^1kxdoޮ~`ʐLUE5DQ Hy.,8RQ&,Uz3bz#iw!.䬑vy ۗƈ^VVyA(]ZlF뇆 !\0Elth`H?L6 IюLDrCmކ]Kj46Goگr[ C6JJr!VIn;^y }#M1T囕]9,dՏeZ٩*1u C;T]L<37QIswn$\VƆw 1;؉mcRUaDFR7(Pr#v{ԔI>C%DGA2/]dOђsFqD0$F6*BR(](FkI:PpOD$JQbc!؋vesP5jjVv `⭍ ÉH ېۊ8rj#IH&(D H>Uo !@N@"]f1Jp\POXړ {p $R\>>u ?m$p@,U MC&ڎ>K.^J jMA3c%A lDnm0}Dv><3vۚ q~#Q2hdE )ucR g9Y"Lb$7(|Ȟ(܆A쇂%9"BOࢆEdqj!!$H8!x r!")j2" qr@KW/.D glBE\V!mD0r"nClۼLPy ^Z4M/jHb4M)zm܁r({m IDq7! riq'#z`5V}&ra6B5zVE]:h=5lF,i4A仒]I]ȹ x y/rn-^6 Hr1T;j cyKX.&IBr]4"6;WnzZLHqHdg޵jJO& &@ "S3.T =ˬJ `A.n.ڻj"IjIG,D7nCp^MG1]%"h)+ ,֚>;G~&"8[bѣQr w"mDI%Q ۷!v/CTOh)+.g6&am75%.CjZFY W rI7HڥD2;9[@Cq$CrTHEr& !^CrFGԈm"?jjLBbo*^ Ǐ2I]%LUܚHhcJ#ԇQ&׎ wCvt9mRz}[D#pD@ܮ~mď!r vjCՌK,ںe\?9R.1"CmۄV^:w-IIlbAdWQHQsӞ~7=vc 5!䵦e sЎbd5ly!Dj;U7!R;I%A<tBi>+mC]'" rdxNUnixEC!%-C]:ۼ DwC \IRj])ѫh{Ǡ8ckm!HVoY)C'!r6h.nl]`7na rDrۃv=- T,DjwR\Q9!Gj@J{"Bٷ1 +:(-]5[e^Dj"9dCm s@r%%,e)G^R XMkrj"7o&4r@i᮪jթNVpojBGi"AmR#v.FܟqDqCpn.CoFV%qA䤻Cr)Um%V4v8kNjAēCpD&;^EH@}Km R"Pu"=zI Dx(kQs*ʤP47)W/bxr(!-^Ii:ЉW6{-7G㺒iVm4m?')!#-v>a!7.DjI ݗnFC j=9"8d%4F9!-ⶆ᡻ $Dj'NCY Q)&hur%q #Ghtc?޺Z `%ܸ!䣵H|o%Crm<';qp15+bC눵'N"#rC;jwo!j"AVE^<[[DqPEYԮCSQ5c%-$O i:~ԇN>4F4B jtob2S5ćqHcrWB9Ɋ9 Ru jr!>).:Z jWad gLP܀2(n eDh 1_ C8Pj-5UFBMuI['R#"\D(cb1Ũ%ƑU"9g)srS7s͹!pօNt.ܢD6RmVS"5ry vHAW4{NH Ò⣵ۈ< wUR= Q&Jȍ3G.E mF$:c|KnR< uDDۓT_32ڶLQNR$:z {.,#RIICP)%C "@ 5hGzԈH^JX w1@$C%ph!S2Hh%x!j*[y dD:]P>F?"!qՒ;Q)ɒ#F w1DvNQ2ڇF5ATAJlTѐoRmGhMdDDk]3NR$%TJ>iƮՇަ H%А54ڈ$5ElrE5vĆ!["AKFQڼTJD5H1HDcH4v: {r(D܏{8׹MDqI[C.!G1$*^H!KGDWFսd].}rQ"~Nr]DD8c?Ԫy;*@#v )EEDjچ*AMhxj r#mRJ?5VK@@j"(Y% nD""+t5lE!%-$4G%5Zi*kz!2!؊!؊JQLRQ$|P9(k\W$:4*jZNjvҡy#pw(Hh܇Ny5Do/bFRj$"7IU=%>ɣMoS6Z{P i@>ڸAv+w%(P2Rڭӂ U};E$PܖFmbRJPwެ2ɞ((ȕqn:M+ F}ݓvr91, A5tH7EH@^J$ȗ-Ud's IRm0Ǣp^R"dٚ>ĵ5WQĢ'}Hfb;nCD=mƨcmKp"\ԏ%$FWT"_H5U(#"nCpP<ځ ;桹IE^<\5c$vlHtCv]hT$Kr(n \a;Q"#Qi⏧ɚ%U `y"\Pd"8x p%ȐQRTn؆mf zݛR#`ܜ+hFʖx.b#GT)(f9 S,msusyIH$|~1D E i!Mk%"'C$41kVڸrKđBhUI+"5 d8>ئ:T5g%2ɾ 'قӒHmdQWLL1Q"V8"ԂyU&2CE⺊ y"S9. ![ڴ]>R׍OZ{ΥH'{յ"/%b &D <4%Pɇq1$95F"7$M2Kr7"9E QW40m8Țp]i$?nhfAT@؆y rpI?@CHnڇPm$\EvQAR:EՊ4r6 'z;=1]=mdґH]2%o!kے=\\(}hݨ{w\%̔jȆO$$>DR]5"0QjbW$NK)xIf`I{|S-u9jg 傫ƒ-o$NQ"!#H\WAsݷA\c)njQ܉Q'.Iwoji[DдV F#rmC $2# RrmCk1 xM|-\Q!evvf?6= ýR7mkVnI-ZRL pIJRI*Gnz#OJ$M &Y#q"mw"1K[EfI=2R &d6m'MR]o]~L*BC QC6Rytvp#j8DQRRW7!qVvqrTs_pQrnx>cnJmܓ QQ.]7 MQ8mD ]w⻈}Z"[_VjT%YCs^IJ~4wv&m&({Iq Cp }зr{jO3NT7j-'юC\/0=?V!["۶ܗ+cWj(KXᢓJ]pwɤ9`b '71\I)vq`$TO*ay=1cT܈jE~A"#d#TGr񴭽vPHI ĒVNNLs 5g ՚A7DoUcUVn"'S+$;rjbNCy[$n@2CpkHR7sc!mCp֦  ~(ZlڨT~H6-4@ʞ/bՇkV$ᣄ&\ ˸d^_"bN8 n(r6%dR.5 dZ% P x{i1[2$1! '[]#Hd\*29#҂#UwI%dq]@AHED%*܉A MX6:o58I5Hu#wގ3Wv7dҮHdP j$VI6D@&HnŚ|pQwi?M65{Rkg%d(Ei/Ԫ]On+dDnBHtAW}[q $HJ{yIGY(DrF7!)ښwyUPVА}B`CQ<\Ȍ۵djW~/PU C0zq;Q2bUL(9HD9چKdHڬ$avHCi&dR_6q!# Iwr%9> &+G G)7.(v I[8ʀ\j"u^CTғj&w?LJ4 ڀxqjJr"8u@u%(sњ NJev";r9IX hy BCC@s⥵xjm"E#.ڶI5g7CȖ\Vm@wpj*gQL98*?rNQQvLLTDXN񶤢DDF!چM@ aQ+7]>_BK6HRTLjb1DqQ Ȉa\{19fJKdچMZNR-Wh-Vb0be.ZaE ChyjH$Zr*Xܢ<""\*$`F_OR;bsGrT* <*H2NC "5^jJVT MˑE%"Edx!3[5$67 GjrHt$]Au\B*^gzukd1^Hm*RH35CQD7J: HCr NjPNJAR _S今 R\C'1-ͨvԐ8;"r(8GŨdMc%>y3]=\L)pP,S[T;~!|^=>M]QGnQw."j O&U|AQiKD_]#vC $srmYd>H\$P" y;8*BmQ(Tȍڈw< 8bMvrJCI Hhmدq\NF7(!`P9ޏO WZ=\Ò&ݼFcUaf'ݨRQ]ūVSi'a{J$"u}M& #"\K1աGo"[8j"o"!j' W$F ᪗{PŇFC&("C w2l4d ^|AMmKr%5G+58^2MWz(88$VOełq"ECu7#oԴ!%QIچ@ \9mUjE5vWqv /]_;LzP7z 7Py"4DY)+5jmuTRLXDqk!%sVή NChԲQHn(&(ە  _jK ȃ&*#(rL5/$j`p|I'@aJ܆%Q$ۓTj]Dh~w Z &ZI9>")>ԇ|ITЮ[;E\"69EöC+_J$Doqg ܤD9r Ai5)1蔵jJTQDDn7M]GHLNӛ.䚈!KFU7..+dt$IbA=:n6+s!ҐHax"6\2E)'!R^ER( I[ڈ; uؠ%m;} cɪD.TA j .pb%Ȣ9GT+tj]$5-ډ%@M:?*B85!)ǒ% b!W]R"r"m\Նxf=D2ͨeD桵 ԅI}7zrnG HgnG)!w"؇q/Xabz)mQW܉N2Hj' nےYC ⇵H5{Xr^(nPڇ 9 sTtI\ $LrM_HdamGi>2rCt溍JϷmDR N2HnUe%Fۘ+dQڱ^XDR:_J9|!nsC'ԴVHE⤉qI[C 06=R܆"(sZ/SV:QAl@ i.""',GnCj!F ܤ$>⤪r>9`{E1w E+hnX*͹' LCa ۿ-FۘEH^wdː<ɋQWqD;cR{IW7 F:Hy+xsrN]UjjZ9Do))(H x w#棄gVk].-ڤu6TTL})xz=5M3u'KQR35oܫ벺G:~*#InHB7˝ʱ+gʮݶ̿z" JX9dCp-Q"nRDiԲj#rR"7w!hc&= -[I =y5IH)9Cr*$򒶥 P*MmTCTOl1dUa>(u @R7"vdUb?L"EHr v~HDrr8&6_ '@p)NCqDhÒc竇#%U^.Tr[@ 1CmȔQǩI ԒRV(xr>&GB!C付7$B.ڐr.W1ɤGd(&*Y!W9(*;@VPڤLUDdWT%%܋TWl\t2ڇ|mrp˷ y!H])mROaP47r#QLD\I;(&qܵ Y#)H-7ZhǒmP<䢤<׎A5! ݵc6;l+Dv#w%pD!&jϸ@6oօXK%*M?&*H2r19Ê96tC%D 2C%ֵH DW5I5RkQn0yQ hmx;$Q]˾B4FԺ$-f%iݸQ$_r˂unKhm$ݪXl/% +l+~1KCpHÊ' I+jDCڗkz&o=/ ijDrn.QRD$\I.ⷊ1b5d-'R9.ra+KxUD0MndTqn$\4FCi2RC&1DJ29U"MUU}W#jچQ !?:hH {nC(@͈|:JWTɃ֥BuL(g'"R,sAUw $P I(\S4 0lއ\d܇q{.CDť^AVs) hc$P!ԍ\ڭQ5k{B< m=E6O&JB*d<;nbux<#ۏ#J!]OM+$3P[&Z7Cp}J9clrmxHL07 H$. 3jD$N1{XD7  cCԢCRɫ ēUEHTTWmj?ARgҁiM&j s{ph#I'ơjW8$qM]Ň*𓷵L4Kx.TբA QkMjH5pwWӾe4G Ċ#rT%% ̓yIE^]%ŧTӸP}Oy=n QCr]16Tnoz'5\RDگ\LQ4@ەEYچ(G%qG".ڊbPPp{ hl61ԄFD7dMRRD-Ũ!mܔ24{Jه]D2.RQ"uJK5CВ ̍DJCGyj9$mQ(mCp$7br.گxrq Po֬pԱr + Hj#Ep,|q5BsvzJ\]歟#Xɐ%mUx&׍[%U!'iIֺvn7_!CpϖN|Q1˾JH z4:%CkQq!NDQQܴbB*I|jc8~F>HvU-񸻒C7E uH5R;y11ha 䭒*C!j*Ȅ5Iw"MjnhPH4AHD":8ɒz[rM5n@W)=HVFMV&;%!DЪhMԴ#H5+N_,mGBM#bAKj#G%-mCpCH42R}KBxCpK.(v=1W*Vjhf'z9K!D+m-rz|\L5m]RȔdUX/ވ|Kyz$Lw*أDiQR])+gE H}WOњi>z%#`GwN4ԪI.Ew2@%AiGF]m \I hnQ]!%I1-KU\a$:-zmޭ** SjOv#j* $CCr#H5Q8Ȏ ȆL\ x RIQ9xӰmoGlvԈjCQzrbX 7r8w"8:l] ]9f&ӽ[i<×Y_mԒj=CQꉐZKH+B4@2-HV9=Py9Z"SוprDu44j ēoKŨ2RCr8iۋ+);{u"v;m$>RCpC$pj#+U 6# nک+ю*Hm>[U!*<>AɹaHMDq;rr֏%*yW;]tMm]r"Q@r IIm>77lA"jChI{rK%QW&]jAޮUWbKт&$3nG _lXӜnnp۹ꐃ ubR$99Hڈe˶!d@bIwкRbmko_ R]eO6=45=ҁjRJ4"3Ȇ5*E\ki-v;d:Sw97rPkGn2z%F.DQrq߹5H꺓 _CnҜdjA/%zqhfdxUtJ0h["($GRI˪KM&r`b+ʃPhz.obpBc˷%-XP9ump7SɄkډ"!(:{Q qKz9r6bjhڮJUq^-Dh$}Tcv>.J'PH4G JvLE5e;Wi'@pEFӻDgoڿzuL~~Un.y1`;Cvpw8.⤪L%z_䭒M5HxjImʒ8ꯤ K&8mRQQI付" IvԶ%x!IHj\\`jBq~4uv7Dv'.eUn'u@sz&xϵ 1(oV+J#CQ"#W*CvRDnۈtlkɻT܆7![=ƩR(KVw Mݲ-Į6pT3P$W".ָͪHq]DmCq8urjG`#ވLS"8"!.Mچa܈ Ut5i]W g]olRCr j#wr"2^H1Zx'*J! #AI\Hc࿆}NQDw5:cNVȤAŨ9.*(v䈏r.ڈE!%/r?АhV6OmhmQCp׊.HmPRfZ)!tI4z3T Rqhƨ*jz8 @xWPȟ҆PԆKDJ.%m  C(dHk$47/jE r" qC0YRQnCp?=hNo95 fmEh%!#qCe%FmvڊrH`sj{w#r%]`GZƇqKo7 \QuFALػ'IDhn$rCA KL_GPH1[kmM,ֺ[nn_Pc=. dy VP|1V" Їn-܏Q@K~ \\G #܁Ԙ;IU[ȣT [c|֓WԄbŞhtpCp !dIY9 xtV79t?ڑƬb&WN{Wnd/=B ȕr8w`W%̑HH\i.2gbBڏo5p!eʻ"ۛ c]!w.!ӞM*@5 ).(յ-]ڑ d2drRڈIujAu$:sjaPݹy5D\hn$P 2(#y5[qQ&Kc! ٹ#q vc;b׵w$ 8y!jdT-z]Zmͦ&h"Q̔ODB[w>425eHm"%qKsTH8czЉl5Udە9whd)Q g\c8vvkfօT;d. hN/pqu4?T]CSdZִeM1{ԆCB"_DsWsے"j$p mzՄCA8~D6FDr+g\!TI$7r4B %E˸ {I%Kݪ.OTɢCs2CRݜTt@& mIuHlNG&80o rVr̕'!6UF4Z"MeÒ Z5!K֨*cŤ qjR@ WbHdL]nPݷr5pqr;rj"\C7-nrhD9A(Ef1.n#v\]RH+rWEI\8Вj,' $RQD]k!["\lxBU50-X sruBYpS5Ƀy"6C ۓ=XiIV;mTD6ܪr\*Hm!F6E$46%Vk=R z!&r %F.Ȕ 8 >r]^QdHw$Y4N}W|(i)jo'.1]":Vj6$Qa$e]G44FlvQݨ\@=46&zqຢJօ!mjM܉2@qrf0&CufkȁT&Z%%:V窽Fu>hn$m&H$̕*ty\Glw. $FԌD8d@Ikm1޻rj>ۚnݢI~1Bꍶx}cŨn]HFmW 5ؠת c@AKmHhow&NWNRȦ9$WD0$G-D%|EI\nj-܆L\r)/%"ECTɓw!ߊ(nCm!Ijp֤,u=5\ب+l`Jz[宻mZG  WC`4GMڻhv+E0{*5acr1)vuc, ^@4;NHK" Dv:ɻU%P:&+ujڸݨU]P֋w).z֨h*IN1: \oK^WkП\ ;R$FI%l؈1$7 Ê8ɒn^MDn-DmWk/RQ%sdg&TNܥ$D58ۋ5Ha,I')(HRri 47P5 "DR$uu]}IɸĚӐwDb[*JA7 Ԅ]G؉j_)("7AW>j!1I1œ #HNt3H'v!1jܣ"KmJqq l cش]@\4 4O!mۋ80+U=#PO&^+Q]9>&(u@r 8qCrcGu&dm2!#TOT]lr#HvFE,"7"7l.oޣTEFՊ+}]#&)d]u ܊qKuLv!^;j$*I.I%,T+}j$zbfj#k+NC&A.($Xr>ڐ"[R۹ĊK9.ĔTޝFϫgTwd܈T['" @%4 c;s+6- EMLV`Nq ܥi CjHKMZW-?6"Nh]/AnɢtwG!)DvRm"2nCn.@FkAX 5PچAqr4EJ#D9Pݤf8E H|Zji:=CG޻w2QL9*M>U]|/Wqq.P8~I]H# ExT[ O2*O!cvy5IwF-UmɢGțDM}2]#w=Uڈ2M'u&#N{2Dpȁ ܇QH$BjC 1ܻj[ے1>IQ!1q1T(ǃUITm]oU%БփVIQ~AkT#  4;JP[{"4h"#vH*JD"THFIHQ"dG$T ܩ NAX;u֛XNtH#e~!vդ$UR^ T]DZMqM%mZݹມI ˧8Rڀ؇r-@u_oTIyw $6NTX4hDp#i+h"#C"%-H#9"U\h0hOPP\{GwC\Vѐg$WRjEqH 9IEI(?$JPR}"Ëro{q&Hjr#5Hd[\ʛE?z# Cg؆H}&H#L]@D DD1#F{ >D  ַ6&-KhG(r#HP44:QޏT|S5 =WrD0(J(v[j%5]TA5ت4H$O3MCjPczj InA&J4zRE˶\P"SQqq1TC7jթ!{UE6$+|j."ZՈAӎ֥u Y:ހDf!hd$C "n;y!7nDnMR!GZ6N@53cog1T&סnܒ#G%!"_C|2)vvkQ\"(.D$J}Z-@rLUdL^lU^RSvLGp+E#.6okM :!4ÏM}<چApx4r%?mP 5RHM7Yv7 \$\8qޯ&H\D7CQusUr.!8kݨ$cU_ %3?]IJH 7j܆ciQ8@~Ԫ^7?s֫}M =rԵHvݵ }RBRSeM7q]P:!T'To&pGFM]54K(tݨu@A`Eܤ9"uv]桓jmm fOj%FCfm;IP cȇsj$Rm co()(ew%\na%NH!D|DcQ(5 ܻ|LȍRCp@iAI]Epj Q?cL$AHw)!%"7C$AP.[_FAenlTnELP2(3(n]9똠\Kxߊ U!-(Vbĺ8'*Jmi9̬ޢLQ r(狑{n&*vq*&"nj%-n~Ck=%j)R ˸|UB! qv@>zr ]@Di"`dly"j))h3<KuI"qjqrCM]47pND6Dv-i`}vH会$6 C@v cCq$>?jj#w)"4hn'DDr~!jj4ʑsWl(sd7#0{ }JE 犼Dm0Tx \ڥ^!dkmqͨ܇q7CrDof5!UI״ _zmNCpRR]grfA$y:5ď qR!G";GsDRj5$KB#uB.ܥE^D܇P"$P ډ" ;W JK y;i<>Hd`ūkԂsnZʁV= (r檺v:#WP1C&.DnG$z:1D:JKmD1@ ri5䚆L\`E"BMn%9W')mCnHA8\Tg.G0i¿z3$BDqmz%U jIԨ[73|>RRGxܸP$}V=䴒|;IhܟGILG~⤪l$\D2>(m [T՟))G%mC0R"[G |x!;qv0$2_CłԆBt|/)EEi:JͬT#S>=csEuUtb։U!M܆AYV.#qO %;zjb bQiB]BD ߽VɒeM+\I-܆OԋPމrM3UrI7r.d 1Rڻ DCCTJڤԨ,dk|D';vj$@,U ēQQ=*BqjK%Ud$RtrƇG6@݋5@Jڤ"IBFg$3nVI&8Um-YPjnJUFD?.QQ?ҮFMQ3doI&IOjDkT2ŮwBHq0@vNTKE&$(O*}0H{[9Dh"9#rhd%ipzbrrTҏ=i$HU~WR𽋈k CzWn.4rR_ .ZG&LZWx؆:!Dǵ\"l]Ȣ.HhdŪ$U~/TGh|F+@.er#Q!%dj9DURF=VG n]̗D]93V5nZM !bB폲/I\؇gːHh8mv܈ܚOqvs"I%1MPvr+gz(DvHhZ(-{}6{\ܚ1^C'VF<\2b!Hk7 hZnGyv+"9Y$0IȘ\hJKB(} "8}|bP9"y!&ODQ8E sȖY<\I5+ # ƫW($ZCqƆ2,$ݨfQHR#qj% \tj+GqA8mɽKzjQ6fTq0/U;q ln Gܣ=KW*)+]pVNVGVTwb4=vmxk"F2b~( H8  Ԃ]+D"OHYz$ChH) ["6J x5qfתI 8tT ZxOSܢ95Hhc܇rM7 w1Dn(nV䕱%G  1j%iDȻA9\mDff;H+APbԴZvPW-ū\ [c 4cVɊ0\F2ԇ%?㛽Vڿ&TZ;7uԕ.m[z?(n~oQk&ۊZ "4 W ^xS9`:BI=qR46Wў$&*x%P̚1ML^&8DnMCp(RxƆjrrjNzm\YUT$6 ^n5#4@N.: ~ŭ8 ZAQHAvBM=[ūVWJhaC%CC(އqRV%AGW! cǐ*"Od2I{9742 1QjD^+(j?a}("Ԁ&/ܓUA1KMVn;†ܗq UūZ= ?My3] D\ *qrv dmM 6Ep#TH7+Ȉ&$C!$M\Zr9#h$°sDո2F#҂ 8( عDhm"9"\D "!Ch7)@*!P9!rȔt#sGSBkɾ 2hWvճy(ǒ!6_i v!]I d}2 fP:ie yعC I 5Rm@hLURDGdy+Ƀe5?I!˕IR[D;C10K؆-RVMD_! 7iPL~m܎{Q<#GHP "4Q܀Nک~ȷTF)(%ARF K9{xHdAqEvPHTsc=Tcе*Sٷ; d\jHaZ2E nCDԸl(ߜ&4FH?⭀v _q!!) 'މQt<u!hnɫC qDjGQOċQ۹ i]1Đrwfz lEʾ3IxT72oL75Đ([w"-KZ}G։k+qkDܝw/%ۋNYHA؈bv\B5bZ?.dWTWn)'6JAo(KFn&J#ɪ֤jUӒ&cpC|_zHn>obԒognĴ!o°C:Kځ[$n)vɩWSOImR!%i5hMˣo2 ;u 5"i(5 rD$pRb!";6hh{\q ,yIw'6_;EgM]wmq&!y r)G'rD+[Dw+VK;Եj} cs{޵*z3y{QN#TPE dq"! lsr;FhfC@ mD;ت\'I s=nJKy"6!7+y+$ȉP;wXb;Q*v*B>^VPn%YBM>/w 8j:~㶡 xhn,TjƻjHkچ U4@.RC" qʬ`1b!'!i:ƛpcDPt\K")z$eRQ"˔I%D^?%l*BnTa]VTqj9byg9.R$TGQhnډrWUm(H;." 9F9o]='lx\5"b2ITnK" m$JR")/&@v%.r{Ւ\vդN^DD|XIy#Ҏ$W {]vIw؋w"\cP;j% x cD!Dr#{2 Cp+GjK%J]DC $vNch7 P<ɹ\#%(-*+T#\!IWyIvFW9O:Շ V5q3zu-4doQ$\z>p+chvuaQ,e\QDڇpFBMM$a];j3MQ!% $r" 8⼔4;r]9 ֤?mM=Xz{q)Yʗr5YQXcR1Q42P(jp%"j+m ԈnDj#w(j I+U2 y8S4@ֆ*J٩GGqDh"KUQMq-АZ֠KCm4z  8q"t4# LIƛyx*~FKQ(-佪<ѕC2ĆV`?Ў7a%*[roވBIDqr,Q(8qr=Qȍ+mb⥒P8$DDq1DpOWlP$]2nDhH2yUU7m$=J8 ţRܢy5 "N nCQ}CVi/"")"x۹jը]OgsAl='28dj +.ډo Bzsvj>/% b8gϋ5D }e 2 OtasW/Iyb6u bIKrm\!v b~&F&fV͈n&*8"5[RC&r46$7Hc>H}]~K#];h~(ZnGhAoXFr%5ث6܆j;؆A Rqܗq #P^ ]Կʏ-[Ma KW/ X5SPإ sة5yQy.R ǓIȃڈ":PU).D6+dQ"<qBbd=@LL Hj8:qCCj0MG'"9vqC%pr%!Nɨ$qkRcGWmU&I$FC)"T'!P*ݼ7PZm:4;rjbTH%5@g(D=a>J7d QM˿ʑl+!ojiv*A+r֒]m %W-@A#y!ʀMGi$:EەXhWphw9xK$F6OC0W~M?DĆL jݲ!+=Ȣ4%m$l\NLQAK$1E8"S.Ce6Yly\r.C˶w"yЪQ&VHj<TJu5CK:is=n.RvREP|ƏJBJ+S )TGDk*?4?E Yk25!ӑQ]E- $|mw\=nڇpۨډo%܋WprU\b}tvV -mMͶDAi_GjC BdhDmSs*)y."nj8kH- ȩ++y{I"sw!ݹ rfM5̯ LɐI)(sj u҅X5"II2@qE"IdC"')NU*MyWB1Q-ȗ$ҡm@v7!Hh:P⥹HT|!jQډ}|VԔ% #hU!z- ]!LGq Ԅk*]vMOމ|tވ(5ثpj'&%prQQ@u}K]Ws9cJ(ȍ\VFW( -ZHq-.$#Dv$#!4cy*MCEAšikM-^r?5TVqfRli`0Cʒ N$>Ԋz4BZNKڇT5$7NQTX.TbյʷMDp׻zF4GUDq rW"RDR(" 4nNBM$ )vxXq5zRՐn $RܤmHjDDKo)(qr樓$7b7 rH@ 'چ!$]B(iȰr8APTPև~F j QɴRTC]҉#df4qjEⷓPݻr>Z9 E 1hj#ەq仒@v-p;Ԇ!܊ @֣\&*'/&w"\"#v 1#FILkQR9s( " ɊlU#{"! nLH*ǸT8q&Px =nW-{ y!zzHn1!r {LڸzvC&8GX"g&.IsǘWT UQ gN bAFĜ∈Rܳ^*\42n@ $JrRڤH^$&OvI(xQːQkARX9+C;j;xav v9[85lJJHuGo~ WW mWH.I\(9I qr*Ch 7`׎tkqJ"I(")nTH]FYȆ㍮Z)+u'jC{Idb8܂թu8w-{ 8DqDk#i O&&R.&A"ZPc vi[ * >ۺ~P]ߖZԨ_y@H(ܨ5VCBr K>}dv$95$1Nr%Ey5K.TBAͨZbRQQg/KPY$˔6DrV~#mjKܥVAɫIYp쭠yfUEu8";nDh۹K#qǵ3 5Ê+jDC "o+j-G"`" T,-ڡ1%ڬpw R'Uc<}$G'roUTDis%!ǔTWspJ$ϨJCCi/;6[X9ingN7`84>cr#}"*CD1$5$nh֬poChݬ]|Q"2I [ |m Ex4;rCi17!$7k]C| 7j+VԷ!܆0M1 kI6DhgD3jݷz"IFJCQ%.~|Rc]!+=cr8HUV;rک+ ϿIx!Gi䣹HD DFRCJG{I;WB -r'쟵uC]9ka%EU$KrA!ro#AqHy(j94ЄTPALdlb%$pJC(۹ukImە"(DdDp1O vԨ{V2ePT۰r [D $4N-v405#z=G@p"zzځPDyղ"\Du!8 71 #v׍W-=1ꮔw-RV.CnKr|UavNCv!ۋH&vܽ( |T6%(iG<O$!MP\i}R^) W9H>R"nC ܉kHmC o*A|5l]r#F*qhju@d,ZhNB8{E*Q"!1]y9{Qɋyw$ȁ[9[<\)uDTDK{d]))F(E [ij%x7r!Y"S"CD1BiSZ>2;1߸^LqY8_[CrƎ߉́<^D5Ut:LGNR;d"j8F$\,$DV*Kᚫ!#ŦbdAeChAF]VB]Rګ+Њmh`s[uFR4¡ .wG@kmrj+HUɫRXJ⼚mGvMGn.G!>Z (!H5 #TVpbػsRW⣦!(IJ-R"%Ȟ(ܢL̐H? (~Hu&*[&&sGk9"9\Ex5'7o1 ǜw!ڒ8$AC H(Q"G 2<+ "m@"PTH{[Gf+n@i~(fnCj &ЂɶkЭޢ8?-H %,mRQ$H"!E C!׵I|Vj7.HrQ$H#^2b CHa>kv\s梆6muk!@0,Y(8ȞvrnIEE!jɵ\GȘ!r@ѓxv(4jq%\H*Fi&$]^>k\Aڤi䥵`sTHJHj@$ y dQ`* ynU|A ^˪W5w!ڭH(b\CC ėmrrԮCg^+vԇVaMU6ċI G/&"9{IDDRR dj(nb#Q~DvPMv nVtѷkăVVS;Wc]j.!ҊI~m~P|rD;bU*}XrA\wցVU[H dՂ&%ltRTMCrNj(tޮūkufr5Pxu(81UI& &P۹ TCHhkICC=KjHD;Cqn(v`Is4Hc%e =j'^HnūH Q)&\*)1-@r܇!&+c i&בPԆ6%f-@%]nC2 DK/ɫ1z $GЏ]X9d|V%@]{|5TCw!rj%.]]QR;Opت"4D{P+6RکA٦ҌmE{&8hR#I%xm;j |Aɻِ j3S3 c&phdH$TI?GFW{*q#To*9{WVG4z2EەHt7*J|1&Z)1$ڤ8w) w=Cs Q1rmCiԉnǒիAcr CpQjT%*jͯD0թQً؆aOu#8R#(1I R?qʬݷ*# orWn۵+RIj1YCv(jXKt$3j1-RQˍp 5ǔ!ĐrF&r#]ڎCc QGv\˹~(>FM yjG.xz3-.>8IiFkEn kDhFGěP  5 @C!j$Lr#Kj/ls7{Ǝ{>FRzWR߭(Iܽ(0Q@"{ƻD_RSچ>R"#U܀m٭'P(UiJ_1#B/jaIW!ֵs%I G6vĪ۹9*BnfCm!J>+蔤`#ֻt>^ItcDP-jd@"=#qj#jP&o]=XRTWZ 0"7(3KDhԱyD6xRZAՐj(KܣQ"ԱQz#S̔CW;/ܼ\E!ع[]DjX CݴdD#;m{ojH?-%ظPUdƖq-KMʢ{%o2w#"j{GuY [U,n"4h [&mZi %8dqw" ;[VܔN5!n9y(-CRCj%93rکHj#~ "rx#WqtTZsHێo#F\CiQJPrGi1GDh";b $ ÒCC"!rrtPT*0ֺ}W4 P\P&|3W3jFð'+]UuA&w,xPՕډCwp"4R?] +79HbrXI w>|[^}xeDobEWXHWE\2`NuʭE^ȍ&J$EhfWOF\d9E`Q$A~$jrc~rs)u`z%l])R}\G*ƨiG{vCj@&#UU⢆2T| 4h$5.CB{dTDj8 jD G&܆Aɨd܆I(ص*,}t7rD];y(MD"n.iܴšRPBNA 8GH$Z2b%= A P5`w}jTQ?8;D*/b*\N1 9Rt0I:glb(y[T;"4+(&\}˪ƣDOK+{#+!jHcD8:n9s`S̹r#Tqrۊ+j!Hj$nMWM(mCvCQ"GQCqJY(-?sj䥒jP$rڇcD욞2" 3oָnD9:\[qrj1 IN~E"I&Q2 I4CnG!LHB5VNVآy!"vWW}& z=8-Y1KrɊ4rIz=G < mʒvH9߱R W $An_2jȹ '/iRWUېETU5ԙnQ$Q V&T1ܭ.C #Uuz*J$D$CHaҩ.CpHq2 R;Gܺ`6D 9~d0K;r//TT)tғňsI>RX"Ui%=W޵M\ݷ3U&95\R ȃCpCjĭJ:?8=\"H2Cj@qvTȍ$TGdwI UeG2D%XYKr?Ivaڵ,Jۅ{)H1dKň pInI\ v⤮"mrȆGHnDi$@!ӟ$ D CmYZ2NT<[ Q)m )"Jxj4qrC۶*F{!-5Cs-Y/=Riro(]9T1oХJ⭀CR&*`ivڀn! ϔEWmG-ܒI!j#UeuDr+urDVj#VWm GjtAnCj";&ݹKjI iF4rAPǹIE@o7r%91@6*J$RTy܆ɪE { ),VqjrrmUē݊+npRRBȁ<\ܜ2Y؇QɡqC!>0RVlCn-Dm$P†\$2m^J׊;˷r܋T!rAVXr{քݣT$vW}x#Ov8=w9HqCDho%7TMYIԓ!Vqص+LxL>PV*Bm"KC IPKD7V[x 4A*C#rqV"rɖ@˦ކ679 HdWܵ*cjȭwmGP<#j VtXsȈT$c@ ;{PK"[R$L]W4DVDn;qRD]!=M*Il; \\hպ*9E98d"܁rMGz+=ǔ4I!mR qj%)D&NGdrj@T'yPS:ߒ \$ ˶.Ć\\c:jHA-ƪJ2blI7Q* "nQ ɨڈ5]Ȩ5IT5_Ǖm!>Cp j8{Óh߈21 5Ks.ډ&2^.Kޣ{+peRR]@?z= Yk+mhFOW-DCDiD7 E zSKY~"Rs3qp3(s܇mD.Cj\3ń.=ď!5!x@9~!?H+' $)KbQ᪚nyϵ ĒK !QblCoކfUtuq; y]I4x$||xZ $zqxI"UNCqm h$1Hnri8 TI\>cr̕Ugh-n(*t z=7.v!~1[6!w9D(nX 2knDi"%$FMR\m ܢ I[]kGC "?%s% hLX GJ%@aɤ@vrGD= gl$2EQ: b7i9;w8[W2RD عw$Uruɵ r" m]!"#' 8haƢ 8kqrojx1ÐsrևhPj8l"rVND'үdEʐt(Jqy"4!emMt [ղ!ڍ7 urrP$(+T=0ndd$,.bLP?NBbKsQ|VHL^)(pݼ6mU((IՐ\@0.!inHdܘAn5ʬ$@6.\=@'j6{L+Բ]0vv?h(Jo*-}Z#vF 9!Cȍ[ $Q]>]3%H*$W4Mܥڎھ3v׍GbߜI6%,QLv(kj9#t@7b"jFJCr!W68rpI&Hj*$]A)ypI8j$Dr< N@ 8GnV_$DbHLH1 O' ph(܈: A9tqrlܤAF| [ U6m{yv2I҉`Q$ 9opJ%ݓpW)I!4%HbHj"4J[V99û#;.GM*"NC!1Thy$=(<*nCq41dRD_CHJ-Ka 9\RPJ/آdi%"8(hH,PLv $wHMR桸)mRQ"D7.ںZ{)1IPjԄg'֫jSLH9vpy!|7!ԉN{D-7T-WS=W&DvGn]yvԉ.]܊ ֓ZKT!]?|4A~ۛ_H|?Yj[TԔob F6t@[xc)xz.& uqCp⤆v&"SCW2C ⤆EnH"pR܆@E+cWӞ-YACqDx][r"+ݶh Rxxr92j;)dƈ@I"Frɼ(nCh!+S M?rIqۑ+yjzIޭQ!DRQ+)G:-ZBP5\q46JUg[{P5Hj$7nr$7Hj@ mCi9\Cq7!ܸJr"4mH $D41\[ЉJLO/8O29ڢ9"9\ܬ I%qwG芹#]) =5^ܻ1j\r JSڣEt7dݯQ x QRmGɥjqQ6<,͹[C&EA546FGi>* C 1*"8hJCD-ԭ#ڎMWHHv"ӝ*Ha!]rsW %.q#HP8GjnV!'*JŨcVI9 ēQCjo}DR ٵi!MHDp$pwR -A[O.cڤm5 t&߳$,>VFcSb{Lc]UXݛ~ tsw"$7*.~-,(VA ĨvM3 wT⫬ݶώ*@,[i;tXj\l\{P5Yק5}U(ҙv"kTcgM& bKm$JI5xӟ#Vd $7Kw9IvH$3R g#ʑċ['! ?CѠ q57BLC@!ERynC(j\TPچQmv{~(uc)FB8T1vզR[r]O)1UÓH$$>^*;Q-zI W$Ar6!jȍ]r(%-vKh~Jx ɵ ؑ^'l99Dr"6Jݱ HmG'!r@MDMD6.@i2@&H+}tK[XEJLH-(_T$? آ8EJrbPI&DVq"p;h5p+PHʒNO~mI[$WU\qP @Ԩ-KVFz#qr#vrq=T^dEozF6vɪC%$rG=$3Df^ӟWQ,棷RܘP<ݓP މlRRrԁ!zSK] o%E%CvOCmNv+8|ے^<8" rXzN]ӻob? p{78uTA/%tL;.{TV6Hq櫃O!=\<\d*AHۊɪnnT'Ây7j^J8.܀4:{XOx53j!pbc#m]),j`AQ(ϒ%DnJ\r%Pکm,UuȻ֛s\5On7ކJ4k _$7 DkQWLgd@")"8qj r%v7`N8r̊*\Aʭ[wm #Cq VȊ*(dɨuI+'Q Ip#ZHi+Nr-%Jw(&m~}]>TTPܥh+w=8z;~dRQ%n C"ʁ\ƈ M]v 7nR@V$-܏PLHjV9+]6NGQ aWd*Gc!rrly+j T$׵( Q%!RSՈn@Ȅ ԐǓ! LZɎ"HحMܵ*r6:M@fݣQ;D6mX!.O%%pjʸn#&J#ZMq?1M5Cclc]vm5gRtB6$7\Q>?u% Dp;PZN&n]8-jVVJ2߂P#C!յIi54qA[u `5aJPcqCC b}H݄NB.k $ 0$7 i;Tr F ܇pmDp5UӒ$ڇs!o(NCwqm<5T] {ֵjպi~h8 %r %Ũv܉Ց,RLiAJ(܆Ȇ8 PMCO*Prە{hc<\DƎMELt"r~ I#\F#ITDm^˔!~QE Ix#rD>bAݪCQ@pՒbaR;qI7+dԙx 7! ^kkAhSz{w&&Q?CvJ$53MrGI%gVj+bAn+ #[" jVM.bqܞCVa]NJCH##Z91ة+n6hGDn.^:Ԇ!'uM5ݛު[nh47 [>*J*\B+~'8x}Vz(jpI J&gWD*c5bɄ{7 nj;j BD9n]> bB5z~s]Mw (m"(yw9 \Q"CC x\P !;EԵٚi^l;kNCDHnCpC" >XXqAh܈MP*/z&Z?a O صPv妓m]5ؐ vA⊉H**i"DJ:ڴ]Ru~IB xuD$.EmCRD $?PR\-[THKj$z}pROq$3P ک*ܵ*R|"=jADpG" "qiǸÂ#"c9z:S3 {U]IG+J,O!E> \G.j;hUD,hvMRE9i;jF*KrNCF}Ȇ}A\^-]" r mDh h$/Rr(EKI9 d"ճʒ ue8Ȩ'C#W$r#ImZxmC0${%rND&JFoO"`LLb/ RR*@lD%vHT2|< DmG_quZiO!'!&;UFQmyKV*)QK~BCvCQ$HD W$;hfԭ]q ypQ P0Db^Drj%w9Ew#mUrhG}@Ք`lC46*$DbjH $3%IRJVpy3\&kM&7p fC)=q.oq.8i$xT'rI"8 "4X5Di2 ʹUa'Q&JH]-'^M(pt:zO~<Hj! (R~nJ8{WmRT=p(Ɏv[~qƒmT 9ynQ[C5"l]Ɉ{T$N@\ڇ܀`v] :r|'GMڎHv-ԇ$F Q%̹EF ICQ"M]lDo!ܤmQ<!![ۂ9r j#f ȍDrG$6 I*5 gD 1U'#ڎ\${Uhw;$2C:zIXƈ<}(܇jCv˔rRo(]sFmCR >[ƫR J<ȤNDFCuچA4)!HDALQe*"&IKz?ԭJ2%NHHqCjچ%!Fj,VC&_BD$b:ܓPTrQRDhnI5UҒM"v$ˡ%W+XHj#rR8ID1"[Hy"7j<@ ͉@{y]Cs%/㕾7bnT\Kn.mj-dnܙCud㊨ŀ#׽i&)Ԣ#ڪG@K!$=,ͨmDo.ڒD 7+zks#%=:ɤTAP9oCoPTD@܆@(@ԩ i8"08=ڥnC$7!@$!xd|RU#[ nC_t/uꮖUM#zP7bBYܺIXŪ*\˸%%WFq^ TL1 qIG-[JdUdGjTj"#qP7MpDG)H/Rp؞ IEO!wVȈKmUm'n "*mȉRTZ\^rEjBPGɈ'sjI&7RP,执U!aD XچjA**\f.Ci$ACjO&J}ة HCh۳^*HmLTFwLEqK%oo(@6-ABwYI7?Y!R$jPے3GлJx6~z{14٪Bm"DCm1 rVކw$nLP tr#NI#֮ Td4AWWøQH7!h^>  "REAYmz6ч &I)a q\S:!nCnHC+=LrZpS :ePɸJjΆAk1)hnwNj=ri;V2\91RU˾+'nb"EE!(Q>+S9+;utb~c7bIQ*GL]8p'uHw*7r{ D (HC"%WXy9Dg#RݨŻ۩I` J9!xj EIժQ!Z\UKvLJkPT|2D%EY꒠c mH䋶h!WAr/QUaHnz=.SJo ݵR2"x!/TڎKڎHn mVڭ%"IG7%Dnp1ZeJ\蔤P)2H0#V9TWPݴUe{P۹KZs|wIY"JI:l/5dR޻ct6Pu@d/xv87&4qUiBHr9G5U W܍{UӒ$$%`1Wmi0Rit#7 #_q;Hvn/C!z(>6ܷIEI$"ݪorWNLJib]rLG "9Imo,ofs|9HTAڒrD܉`jCTTy .ڀknI-Ӓgz=uY* *II#KN(aZH__?@)r&UmbLj ƥH& Ci41ػhn`Q#/j:"G%lq$NQ^C&(a= *n'^ڭDj#Di2QC@pEkmDŎ٦=j=[4T@1Q4KjH$\CEn&5Аr@ݨmܜDG|n!|X"2v6dk')ϊI 8cm2Z˹ȍC ]GWmd#O$7R ܆WP95"smvDsw"r[H' !Ռn./C0ҠSKmz`Msv@8hnnm0] Y)MCHһk42DR 9P8xhd~(Di>xrjKզ܋P97jV5rv6[@9#i%hs3D026=UfܮND znRWUVKu *}"ǙHroV>cZOވHCn&Dz%("+A18Cp@m|zbGޤ4qM.("D=/M-Q6Cމu& $;"]7ۆbI2UђFmTPԔQO4F$ZnRPHr{݋ǵ[ڈLDqjsyEHܨ 1MCȃڎERRjDQ O䤻2"JT$P95 KbT$Cbj|&֕#HY;R!FZP;-UzyvEpx@W2n"(JB\(k}Xo5*Gr$܆m2CQ ԁ޴FEj"qCC%'ԢxO BND&GxD&Hn!V*JcH5t'iԂs* ֊c*n#9w"Ci$c"@VB65Khw.7rvI5Ex!GmOzG!hDj#H2!.ܪ7 %>Rf uuP#b׍Dݵ- (zw[yC+V&D}7G6E-C1U.]غzKk]O"p vM [q cj"\!qr4HbC@q sj#tsZq;gD=nUY1j*>/q/zڭ.Vs]ۓRj?rH78JYnUbGޙr\i(qEſ7.2 xk:9 H1;!߉1k)ڨؙR|9EKD8I,Cr':#w)bF=TQNr5Еz,\9#mƮPHY+dǔNTއN&R$TTImCpWq0Q!J9Dj8v"5l#9)C7"4U"(vGrMCH፮܀Ed;}iĆ74;eoܸ{X9za~pǹų͏\-Q-kMMe M38y-q 2`~ ˃iN>+M!ԍX{ ^Ԏ&?j#*"CnMP?zem`IFH9 HVfZUtXd4&ʑ7+Ëq2|Aprhf=X jPے jZD4j w.p*4R$R /Okw*mT$Z1:w4ӐD;#qގ=ȍ1MK4$w_'F"QCCp$VNAKȰRzH6 IrM܈> 8KM }cmG$$KG0/;j"'EpɋIy!ckQ7#_Qv C62HHn:Hi.HJl5M- IWOOJ2cuj*raZwqe\x"x{_ N;_:4NCpȴJ!ݧ Y!R"PtG5Cq;N\؎܇s I HdJڑ]jW+sHP1J\WQdDvݹII[C4y.~LUz/` TR &/؆Kj#Gz= @nK1%96pA+jY8^!yrHwCܤŁMYzՇIՂHj^2رQԋq EduZHZ]{_q q-XZG!)nÐ*C06'(z}ԤHy.,IlxGr5 %(>*"t\B6hG(()NCi- I2";!p5@^$z.L];vRܢ1m#_'!a& @p1")nL ղEjQ"Mo!(P^6= Q" 84ܜqwn]%\BmwUNz'<$C]̐Ubkd]c"E Pvj!W8HWT86c &j J#GPXIy!Gj%G! y9 M"=Q&[j8GU[quz$CREujA TI5 <46|@ cC&jO7.!W4߱MlI !Iq߸rHnt:i;ymHk5m,Y$F{,PQ"6TI'nCpܢ7]ơ EG y!_z8>b#qDdKD<зbz ?5rAtC6MD o>%V,U *Zo cZHS дZF9*@6+IM#rv⭎^rv&DzI]آ76uks0$AKMHߊO&&! ˶>G'"rGD0)!qrK2m]zrIUȔ nhf$.^F%-UH@USZ.*T"dFKdںP[BdLD蚅!2A} !17j i=Dhu>F6?Uuiq2!_%5!<ެܪuȎdR7㼊w 89*$ޥ(5"E \tJZEU 0_[+TI)C U U܉71ت_NKfͨ%8櫄'8ywGAPrC"3* nZEVK/xHNP͓1;)ic f34j? )yU\%9/bԨnPDj#m8h+$+jFOcޮFݤAےwI>qD1" .#%"uhI%c; U!6ԍ꾰&H}'慓7WW,تJ/&:7wK*@bMhw11B=[Q97JZn.(HaZDDPV⁦t̾jP3D 7"\QUaqޭO#yR"5 #FGAZ(GRbp3>H V&r#&M0rs!r8 dPN!$;u[\CCnu (=K|XcJ#<[+gp(P)\4*5RXMUH1uȈPwUwPokE]S"&J?%H%]ŮԗMZ2eLGAzoR@~T!z-ޭ> 5Q"-D:!k7SCiOz8,$ essKh" }v7VIrl/q 섽bյZQ4QB28Ȋ(Cw,N8I h(w$H5/~x˜FUNrDq]r-CV$Ӟ$ u(ib#H) y YըLDAr[*Fz^ʜRڤ GG"r Ɋ^\n8 .ڒ(n8R0ժ]NaB LeXA6;bW ڎQk};sƮHrrj%NW͏v"d46գb=%=!BMo*9wIWUtqj1dȊpi#E@m!J\!&~# mG ~C?m &*$7 CF<&;U$0Cq">QCr&DVȻxj~QdȎ:Hd%bN9 & >DjC@&I֩)dEm%9$IX;u*!CA`nĊ#"z$ܑW`-"= A{~6z=n\'RKRdĴursoWaQNb&i5Sc/'4U}چӍ]e'!]}o!NDh_v;Q y"rVzb7r@w@i%o5*N]$ O`dLWf Eȼo#@CL0$10BیI\+w-'Ud'lSZmʙċ,;MtTۙ5֤!QKRQ[_i7Ay5Bq0mu4ЮT/▰ LE3ൗ&\7B]hk^AzϡGMB#B?@'B1mbE%E DmŨaT$ndA2ICr۸.R%$OMUbJh"4}rm"#JܚD7jQR]ص-b(d[_z{<NPs  hN2WtDi&!@oTrM@pSZnW!gTH6}cŹBR7خHai=U߱K!ZmDT#\jc.OCv*[QO\WmS$UsrDOD\ I'VNkj%rӐ-wɖAmvNL'.YQ"&GKDpT$BNZMP%N([IN>63@u%-I$cVa{ֺ[ZR:>@mta qZ-gbJRUY 3 ۔vhj$hwnV-[w`R'(7YTC;RCO[^MR&Ha!*(RU;r&b+&/$؏׉ƛWBBصjń J W$.,jJ]8kMچ<?i!Gkw:bEkN'"*|rQ$42dGy0x#v\dQ#hj!s޿F6_܈mmD)"c9Lu}Aj˶F%EwQc&UDUm>H$7w1QC*Gۇ[$TIՉک <#@G5PD$]Drl+$Q<̆E5l]FɻTw!*$#T(mW&rJUtQJ؎ ͬ@T7)P?-,e]!)]4M7V̈́ D T(صnt/bx%Q<ܣ&(Evv5⣋Ʈ!}Ȏž ąހ:9Ū-Rn7̈cm["FW ">Dptѷ^(ɸ*`!DhqnCHIIR8hch9!놈3>LDC!"BI }WN86fvgk4[m<bvmTV .(*;CFw|#EVB|TwN*?Dq7tsr*3 ޤNd∈J ȢO.C*YrLUfˑ.K<o"4Dh$2-dۋ-\H$@ /7r"&DX jΒ(@Q"damCuȫ8IGr\lwTUEt"qCn.TCݫNW)j(6&Hb]/{غ\irV!߸C&kMp&Hu_ ̘c!nFR;yGRDR]7vܺSR dCچ ;] r#LVpjJ$ zM\$sGIm޵j65c˕ ܥ.Q<%W4$3wfϿrʓ@s@ppzbW.—"4K ]Pl]d$6w~(kGRDUuR$ɴ0Zm`/ ]/w!@VEjک ;&cXOzr\CNr;G.Ě5u$sp!\TrC0DJY'HmD#R7&6Iז6U}K \QGM6 Mŷ%ȹD] ;r$9)71jQvG]DNN4*BRw*FϽp}A1;#5~%@Ar~hPscV+D8@!@5Ef$ "7r@A >zzn܈nCp.J8DmچEG!"c# * bDdߡWhsrA^8gAdn.!h\1D!&1jBWK4Fpem}>$ [D 'XD.ny7vW)$ҢmR@Cj@Fru`vZ0 ##y'#?kɅ`M~('Di"Q)75\*R;]RU7U.]s⢤,2[vJsP&pg !7(brĄDs M޴ڭJO1&&oi#B(YYܤGrԔTGHU6ↈ|TKrCpzEuD:q2I[bQ$Q, RHnڢ9+ēvے(.q]"""\TqDQQDA6rZmFʒꑹ5ZVWӑhVy=jZy7mGUhK16:G Q:G$2-*FG+\ݼH䤇csmܢE"/rWDR^*J8q=^\>Lre}@Z<@R5b "A1TԄ EV I 84:6.4%n|p r!q^MRTK8!JCQ^JDC$ j$8\mInVx:.܆LQBjTtq 䢇m dW ;vh"Q[32 &[P%"žhMʬg bu2 Rڢxj'tb# Pn&VPPRQVuܕ]lٵh-4h v)vմ Eɼ@b4w"4H|r.j RچD|I8x~(dqWyDdگd{v42 gGjN@[.b4O'qpͩGqn 1*J.O%Aw Z XaQH37 duݨmQZInfjźZaO\׎4=9~Z%Pfc'ILo'Դe%`ϵRȎby:@~uNۇz TU}wG94Ҹ;o"3AYH*]L.hH,Vܓje4ZMU!Ck!ᛎu1zԜԽQ4=2rSz8y0jԴz%71P~FcX5ˋIojՈr!bTc%\C0d0͈)h)wojUDiz9܌hcUIr#'+gH98XKV+i\v |'/Vq?OhׂШhJj*B#ި)1b[pC$]$Lv#+ʻu{֓lǗքK܀"!zRf{޸zEEq**}"7M"&.@=)"TReqR'+ݵdC CpňҲBHC6@ڕoMIKr%.xnWrA8}-]4ک5jIPڅn1"!HDDC6IU*6TRLQ!Ca@x(P?5AO@*WS #ij1 իR-Hx.%$b8q"g`*BD9Zph("EhD $1+³RԉJLZ $I;r!Qڈܕmr"Wu*rIG5֏KWVw!rr!2RC"r7HnD5Qzcw!xTfQ)rrGwܵmCjI $G(s I$vWUpCC Ԇ 99RSM=7qT?1MN%1Y܈Dvq7I("9 +t!S;̈:#$A$3]nqՕ\&J#Ty 1H&(ǐ܆2 !y8ZhI/"&ܤ?DWsA`Wr\!jw/%܊bՇ.0@mPv']΋X3@Iß>ڑFHW1O/IDhA%ROnހKͼɻ,\r#J8*I+hdHw !T(j6Ą~6#3HDn`-⇷b!HֵWg@Ձ ^E,bDx]"" D ?!@*GRYzt+#d=E6^Vi Nyl&ACp"B9{QP c]9"Ui(wH2Q^6(q:A:;{&4bn\J%W&OT2G0rv.@ܵ#%EHkI%! IuM5*x^G m̓n^/Hy!kh~zo-V7h@j|w"jW[bk Cp b Z)HdP'+5qW6K~,T7M#X41Q#&"8e @6HY99Qrey0b%A$vD%&>h"rQȎ$P P-*&DVn]A$h~H W%<dnFGr Ddx.}w?"T _ WqI ع,&POLWwOk<6WkD3pLjv{XI? G hd܁rNZnIx#d<CbsjM(a?CPֈ>"FU4klkļIٵ3uCPKnܬMLqUdbUu=Hr{"UֺSAehDZ\ݵ)/;i1DrUܭb7)"5xrH>H'* B}X5fM؀ېɵIEG%.o]ȻkݬXnG\B.⸆2!"ب{vr2Ch7n]zc5>L.QCCrډ#H'5R8rv*hhunK8GiC="kڕ  sެMC8>uu&pH=G&$B+ڈEvèk6Rڞ:K܏BB:!ԇvm`ڻ.ژPI9iZڑ@p2bnQ"sh9 7&h}!\!+\UO'EXݬL-_Bbd=>1`&oz}sK\7؀d4}˧orԪ,GugkɛWQkB5܆5lD .xWjQ՝H D/q뇆8 [܏\I4Sk^Ar<J؈GzR(C"(|cC˸rpm$3( Cvm Jz| .Q(Ts!WL1 7V(XD `rgPiCuYͷ0z i-1vnz֩gi qBۇFOc@.4HrȸHaثkz!Ex(ڴJɇP77$kO9d>ׄ ?Urꉒ{H~Hub%AnkܤaD= d! V%Yxrhv)'x1L܇n("Gh!W7RUP #\\P;/i ĈGo:F_VnR)= `W(( jph4:*LJU_+DpGT#z#Hfd\CV6kpn_#ojW\{mڨ)KPM\FZ*Tb4ڵn>ikz%=} no@L;TWj8{wm@v'Ę.@AsU_16mBI ucrvhBo"i kF]9$R|w1Q$G#UۊDB۔QLPLK_@%0{QuBKFNQD WPDE,P)d\܆1UJ(Tܨ4+W3jМ1z˸ɨ$7RKz Lj-u0&qp5u mbV.cYq_=kA= ckTU9}hw.6֤߫ Z!2)"5IEK=nGj&Km*p[!Ȇ)X䁩kT%7v{l]ECvHf G;8}8 ȍ?( \|m = sr#O1W(>MXeo\6O\3T4Uc{Tq)H[eRWREf56\ l:q'ة?* ˗H%L͋Iq :Z9.sjМ>4>2/=24iVeq$QR=};WRh sGq"ѣkRۊ"nC-CQCmX#ӌMn#{FQWFi *D;j91jtuk$ܵ-S+o LFBEp*"BPk(`KpC6[T\qT,ЪZږ<17w+1M)+`@7GX"5À98cz$s71C- czrW0Dሁk2#Ҟ$/T(m&(%ơ.Q=z8T'Ԯ*\:QށnVˊ9.UqZkG!l@p.JTBdIGrJw3CDin\pDoi"FRQCh 5HՍ[i_J B~hPI!JI{[q\-6Q Pj!Mk^nsRoUВ>2 m&6m-z j.+xj'pCN)jZƧy@\= ǝ^ATWT~ 29]ud5SvD6*O=$7vp|^յ{Q(߃Xot꬟9:'W2V{f`!Uo1MWNq֤qɊRf_KAc틧o4CM[lk U[O1RzoP=@o%~lhR=W~H{!ЎNUbA{E"!AvסdhnQ:BW` .KĚ!$:1\V\mDcxw>1 6SʂE)mDQDr'8$b11y!2n@(}K$CR8eo\(qr$7Jy`@dDq"dbݤ {Hb7&O@pzq*uj/5ў!=q "`!KRM"iqѓ!5jX (C=QǷ47n]Ƞ+k= C &C#޵mfq\KjB @@!tyduٮqr95w4:=&(WV-'0q"5NVpD@!"$[SPT5r!S 8 mTb:HG&.C%$Fx\["Oqn፭"@6NLS-@oxx{ rm]6Ծohm݂P95jW@fr"\nyw9w9vq5xܚz Yy'y;jF=I ېPɋ )FM1Wnۑ\=wI=cw?xsQ)(ro+Wpj({U콈&KZ( oE[܇rH/%eĒEب2b'Hu HX9HD&Ÿ"(V+g^_L(nna}_p o%-hksVo֏n(EE1Cp2Cک*) 7)#DnBqD5KJZ-EE8Zx"d5V6vw"%.qQRdG/,T*Fh!r y/jD2MܟT9߸ "b1vMDNHZ4:OБU!CQWdw|DԃDUpF67D!$BM˨*^?K$JӏsWJ5HэXn. Ԭjljwb5 qA8^=5 ٦%;nf.7&GSցc6AkaƤFS:Zin+6$AnQD42b⢥hmRD #nWVqwbqmܩ+?ʗ#ziZEqEQ)zA3_-6T$ŢԄ$@ՑEn1:AGmȎqDrjz֨KLC UҐm}kM12~h#]A 宄w9Sѡ(f(hzTəCW,!ZGs Ko;r5IEGPM$wY-=@z8iLUkBș i%#Z(9P;d_"=)= F>L]@Mtul୓$խVȁ=#vM5HC܆2 {AJ 䆁QAАSkZq#KDGqEQC`%Ip*Tr^+OI@>KX*d UR*B{XKVP5{mXk$;Jf؉WX1֓O=Z~}_ju -R1Oz"4Q&JK>QԒ.& 2کLV#A{h*J*$^+ZۉH$6&ڴ.,Wj>j˥ԯx7MI&DRDiOzuWZMP52kqQݶX D4}#69GthcPI&X#AkI!ߓQ͋Qx c462*ߊ'W r^)fc AluN1Gw܉O_ZoR[p+x=k?^G}P1#%u}1<;h"U؀TI [7"\W%̕!QD.("HJam7b(GM+I!F4Jch3j7r=vnx*Wo*WQ1u3-܎B}c֫q2jGM]`$p5!IQU'@֛P9U h!L Ԃ,n#џ$vI&KhB͵i-zmmHYBE[WC5$wKp!!%@ߌ,ZH{Tӌao@!\B˨$[F%,S ֪p/z 9R8b@$J=H~D]w!ܓTH6cGۋ*D֩5-G!܈ۏ k-޵lo+}깯φ-n8%ģ-@$]x.sIFBP8I%WQKummz-z'qە#FV̔vUdRDpʼT(7]QH_ri$(5 WqUx~b;Od"}*$|vxMȍ:="S-KnC0"8{xrGi$N]8$ CmCh4Ёr 7-"b!H ZʒDT"(r9y)nCuu#v7!NDhxxDhnK8g m k\!ĂHri,\=UAfRMkCH-iݺ{&Ǯ%?EV$ElpLQI8r42.C*j+ D꒖M/iRAkV zw@*S!H2ED7M]MC*tgG7mP܆E#؄sGv.Ӟ $96kv#FAX4 sj⇹ ROZsG(MC&H  mTl[DǙI56PYikűY9ZC5.Dj DjJDLR]]m K!ѨPܢHK4^.@!r%UPچ2E Dhl HW7 ]8zD ԚacQTTHFI2 *)FMӲ9iԷڦhNJԩ!U ڑOh;#='8}J#?0T3!*Ԍ8Dc}$Vr?OJxju(ɵak(E?{"#o&Alk)Jߊ͓Z@``!dҠ!q=-\\<}`UMxjJ(5ʬ4nWYT1\PS$\<20Vmw"Ə@oq9#5-Hfn7#hU:) 7\@ rII[+]IEN]洚rvi1MܞAN(_OJ_Y fWsBIR\ ܀47\CMdJ4zsEj,G-1i pGu!89PT=ĐL\8A"|WXc'PQ#rnT$ǷAI&DD#|b@=Ubpj%P"dr=x%QH$EA]R[1`.9f@l(+\E܎I ֺJ}XE{Q.dqjZ"ґD۷Uq8 ĊIPQD*jLn>mDC) Jh+I%ԎDFMRF%$z=&zf"7r"!DһiQZ(*b7o)MCv9x#Qv,^ơJSRV$CO&b2ͯToӣ9 DVFq7{_Lvbjh*L=Uz}Ib-2U$[$C6\}LZw[c}B Di".D棚>FG$7nV}V&.&(mș7lЋjMD3! P\qxTM Ԑ*> hZ`K1k3:},=nV KĈ۷mHUiWlMi;hZEg?$7!1EJM6;+CQ&**JJ5E_B6K+h ](TR$G& GsҭZ1ͬZ C :vV.M; lsUƒ4 }-~W Gd)rhhpUdsr%Ab%.r*"AVI$B$spVI&4r"V$܈Ȏ*$ՒګIaPp%)+`*l{Ksj)U xEI]N^<D]%ƫhhfj$$WCDi"?-TG[;r }a"HCY8LVP !ȍD$F2M2 j(2%5ubpkcqrbjTɪr9HqZm_X1OީmW)"?J*` A֢xCiH\#' )?n^JTQ~+Ux \Qq}dWq CRj)cHdWTnl֬uI>rZmAi5T)R7Bcpވ>k Uᖝۼ]9֮*hڨ9:G&Su=#d"5v5v1OQWRnZ5Ii*  Sljh]@L iCX+×2EvղEGj9(Q1?R/Dn.QUWr W$44;m)0^"9#<7M$2$ʁ$L%-&5@=TcT@~j(Q tp!rj#Um$]%sV*\xຂ\v(FQư]o<ܻw(ʲb"KeEMY-7P$~[ZJcQ =6+CjI߄?+bu",ݗ :D&J˄<4xhf **HnC)?/oR.v< ܧb䤆aٵRSՐad5wꮠ&C|= i@)?.$v ԒnBjW?JAsb֛H.Pk<ÎJ7[Ut$# ܐ5])b@4ښW|ὋZb$AmxQ_f iNoCW9+JzoK*#]9˹Hhc VOmGRW2V/1O8:xyqt=lb/GUixf4j(:R-t'Kx=ME9ED85IR晨p}udv{|-Q >LW.-5É)k@R^H8lQLu5djCx@B- ܎BIȄ]ȬKm%E!-5_]_+s7NWUC1 ݨmmMRIG$ {o@H]=].}Z܉Ov DjNT1"5I H&!^r NHry 93ǔRW$Uz=xn`xro)*ګ^#>iڢHH8iR jC+-KPazzgpy4m]bU0:rW5ÛE["p+ug5:*@jj8$KB*#Z}WP*+|*IԄ6~@`[if@!b uŘLظj 9(BEgjQ"Om(jUh{+hHLnHaAfpw]ZAWh >MZ).o֓nWFmtoc {KqH7`+ ?5)kPS CH#(p74m.b8pCv&47"uJj 4%mPm&_Z qr*!ۏ2t=jhdڀ` ]P .|6ހahm$jrCvM@ M6sԒn?z$KG.ܑy) HF䶪 :t⃍kr /$;G1>*%>WMJ(=jZɨjD wa<\Ib((Y]8\=ȴju5/(?+*=&[|cnV U$E8-KP"L'^H"!&rqUy)rACtt#w-KR  QH CCA46P|7h z]&lD /5l?8R"zVI^#uG$%a#@9[DpsFBEIvmi_PJihMC*ZЫh)oܺz=g.Wqy5Kw"jD JɆ7bqfF ڮ DbK게s*U=w\FS]j x!1hnVhF%ʂBp%N,Q2bk+*Fs~pSjCQHEҸ8dD3%!hD1%@0EېLHP8H(aZOӋک;cQRRRRڎ E+wtI4Y/u!qnzH)+9\ݨ"?9=]A6-Q&\Ojm.OވBKDjI(Rڎ2bDv,ڇq rKU%.."j#I" UcPjD(fqE^!`w\= 4 7ᮔqrO$3M7mZhC :$qHeVkHfmYKqGj;~bL[m^$I$4viG.r;O \UjjAjW1pjʻ$TOR8hnx+CH^2b0\h'pk2ՔfQG ${crQ"\KrRRQ_嵩T"eiWyj$\8 {NHx6JGRJڕ0vwN w7ZN Iv7*/RzhDC+eӓv SI& GKQz]ȮPqxGj!ۓa|[$7w.!^25\؋L#8jժBb5Lre=TҷfrLMZyPԐ+Z" EQB!ZDn2vI4zCW J/_0M2Nr(Gu&(쐈@5c).bHNZ;6$?!i.VWeK]Z S 1mQ'*$em ~W]I%^cp!-چ!!&ͪ:ipkqDR܁PqJqkr-.z3i#0gw:KzH3H'DDu}5+vz:g7kƸjes&H1ܴT]yAp_w?PkG .v)6?re&#QG%\dSTՈ,"uZ1ح(a?Uu*^N &/REo9C %톩-ɢ9w2ڇjDv Azq6ݽy5UbGTZk.juʞjY##ܸ4%N*gJ@Zs[{^3w=$#i"2!\zJCR"KQr.Cor 桌cU!ZmA%ԍ#rhn4*PEQހ;ކZڀ-jkhHơЀnvnr U @;vImE\.OZ:Kj[IroC2%:bk&T t#+:DvQu@jTqw69ŢU?P ' 8esWr+ǔw npɵD$rZrډPD7IEDy*@ܸT(`%X*77#4b[viԺNIDc$)HAڸz-pSpѨ NH[< %%"(UU-UEMBDlJ#<" ǓPIG|4v=>#'ގu647HU&܀LI Gm\ 8tc.q 9ZU`D2pKI CIC!2r#GVhוĹzE ɒ%-5!Hr;% IڇQArV&jj~WQH;40RRQ$r+HPIqٶ=@u!ӕɫ$:IZج.CPR8ވ $^LF+cQ_nCq1RRr@hHxU cKR#fTY\PTd Q#I,j#!nTiH2Ux$cML7Z@ڿEDnvM %܋͋%PQ( wFn]A7$*ZH*Gm* <vơ&nR952r`.8HvچM/CpJ;D=ʽ4vFmDpZxtس~)@'kܛVWK qWĔ^UC*QWI5c%F-Goڎ((mA!%WB]l#-N+y7j?R2y`z;J H&TĘMxyQ6mC%o] 2!Ytcb}([UVCp#ޔi Vlz%9?b";FM]RF"5KMyĈ*K,W%Ps9"t"yGrJ7\v2.mCBbAv!R;C:LUmCn>\i1$7ԃT?͞n]hmgcZY\EDQڪAݡTƄAd K(nچ;nn硹vEp:zHڄ!2r -[fګbb @o%jp@ZqG$2R;{wP9;4zmD8J$ ThswDKvO75E #\r6%..,v2.\4mjDVg᪠[0D?@#D=AqURHĚj7ry jXCYmbd(*JɚmTFE"7j5\tB{ :܈E^";F'75pbLi$2d\Px-6I2b͌Tn" "<ډo$KDu}3Q`_R3a*(.7b=VPs[&n]!rɑݭT, eRP99RS.7&3pXPA[:J9jAbK46bo˸D3Q+dўɰri+s^_\)fQ";&W#] dxxQ_rZm9(:T W>nHT@N@Fn_Ě=OV։C0<~٤!cޡBJw}lVλ#8c޴ڀ^vQT CDin)gOmfL)QGM ڭvJ62ߒD2 SK$?Pj%ˎ@iIhCkb|w# I$LXCU%5ph" $zJҠ6zRr ϱw-Ka2|%WnVXlcj=Ar8|ܸ5~.$Fܵ"ecWNA 5UMŸH1}#bb1Uc١(|<؎jRsZ/{%ߒ;m PQ¨Z-NIQUdQ'ɨ&JM]) cPʢvKfjO#szo+tFjBpJŭub!N/c7* po}j}X9M1)>#q@Au@j@1 ?b=XF;TCOZmR>H 5ܸ:d!]g')PXrr#}*_EP⹴+R8T<0D :@Wo|2TUp7orbq؏OCm P41 vqLFZRګ!NE 4r\#!@0) jx|bTB}Tz Y!q& MA c+ZL~pdV79 T{QRDp⤈HubrsEw @yjJ| }p6}t D2C "9&&9AA@#pG7-HZ8_H?-Z]U*H7D "EpC"m"n<=M%*BMډJLpGvƆ\T3PbGns,^OVJHL⥵`7.CpFv@2Iʐ8Hhj$sDCQ7(7$6k*&$p*@rԫhU$6pC5MeZP@Fj;!x-78{NQ9mQȿG1F 5K × R ܉F2{UZ I øpwFj?YKSBۗJzg7uɠUDolci].DOaخPS6= ##**FM <]D6VD`vlbƣ5?bNDD˧9!UVcRb֤Hd֛ XI9IvTTHn"JJ#.b:\=X8Ii;7\]M7? PjLQ(Ⱥܧ"iA'mGqƒ^?ED'"y";$;qr@jqW(2'C&Yc*C .mZ+!T*뇩:OUqn7 $T.QCi">GC{UA HhCvJ$?Cr jf ZZ?)hATːfwЇr$p=  hc%3ZN*!?6t#tCo@h$6DmD=kUGk=A'Ҝ47NϽKجC$vUBة(GncTC&._Pj̑@WSJFAtDpzsͨ!*Wy+8I8Nn n]=TߒD:F&נ4qJrE}ݱ&19 ۄɨ&H$ZMHn.!Z&nV".nZ.@2:4%XÚ-w .ڇm ɕZvWNO rH{ cVG^J%q :֊=Xު WR5ojCq1R+P4 }Q1AӐxEPB[Z9,b#ShjlZ.RTFƳ '`zIrW IT;nPK~{cfO4jTUMhg]@4~(!w|޵* QQuD>L֥F9ڪ5`G\;GԮ:OD\c( IsRśք3r RQxU  T|MVi*)c0`I.ڎF!=AѠShDk?5-Hz3='pCc4}CZ-ss&CMZsKqe(Thlo U*ޖ[7شmuETԅ_GtV6K2AAȎQcW4.WFWvEkkr5pL={tdޏזD}prGL&yh\CC؉B8Ҋ UchGp8 hu@$zrED%#n"o˷%,Pے15ԈA佨tP+^u,Z,%Em"l\7#ǀ!8cŤx%I,K-(fXmVad%ƢQAzψHCm$|J%E\\$;jEF *[TI7-׌-4a$ =RQ|ZA4bH ݿAw]Mͨ<Ĉ浪4jʽ-UvZhGzAq\eCo4pW5B5z3'H6w!ߒD=uےIE{Qk|*CR9.EG)MC !Hu6M@V.,F74]K~Mdqu$1ETi?{պIj#O)M_jWG7d+Dh#d]7{7^#QWpR5aֆ!IpAz<0JZm=jԧ/sc I˨򑻂ID؞nL#UTކHQ4ZD 4A4&o~,C{CimCw"UWԓD@b؊#RQ"&)!~ /F6 G'lTL,@eL76vMd-4$zBw:1ȄGSވ&$GjTDcˁ൪w)6VG#CRRJ\~\m܆߆`Iȁډ%uz%)";jX 'Ks\yIw lLvV 8mR%"+|E%R^hp^Ю [Ua=mWq)ќQ +l9jzEl%IUmHa){ͨܫ8zJ4:<}fYIUXmW%,FU"nZ Zad^QZ@$嶏aO^?6v 横ͨy"Z.!=InfwK=L?zԴV"j#2V-ɨd\v;jը񻊫IT;nTuiT9 <8^soIĢZN_CŚ@aT1ŻW'+?XG-#ܵa塽#R+U=M ZeZ+Osd֛OH! нŻnM]*`w$AC"7n@;h/sKld}Rr,ԏG4IRTWmUz}1bbH ظzT89h$@1iu#\ocePHUUX6{;Pu6{\gjZk+1Q Tۮ.rD%JrinCi[;"U4,PG>sU`Y]-'( -4T)\^TFצi'e ;dXLJB _|Pd!) 6ӹ॒;r@pɋj2=~lJi2U} C D2Ppd3+_JIZC\ĉlnra#AO_ӒXA5R$,Q;7rrrfU/Vܛ ɒ=9>\=.؎"[S!HI{N`*ObVv*)>1976֤1WMT L1Cn؞*2]CFI7IʑoTPTaɢQ"@zp#}МDE1\$4 H*K4KܤDF(vC'x(Di9 ÊNJ(<%_LEWJNYDDz$BX} V*,g|C,5@Cj(nǐے)rHrG}+dWwLHh'귩F1䁹GxrRR=e!i[ xd'(T>HHɣ"#I8j=ؖ "S" %dIm@&MDnB"4Di"Q]9 Gp! P8+`= ܈T+hcچAťRԧQ=ܤ5D) EUtچnhCD܎ITH~MڈnMWfGo)bچ?dn~!J(wCIm5r#Gl$Ŀ7XL) 2QCCi]uy3b%?j 7K 5^rX.܎۔5Y=AMJ8|xjÛ<֥C, UnC8_Rrxk?a _{ 1Evճ*Ǔm`֒[ͬ$VZ]ϩ^8QQ ;1;U%n,cp9TRRQ!`uy< DDrj8 Qې P;?ݪXk-XLQ"jTͦ{[\N^3'GCvH+8wc$GJy" #\J8Hc!K%1FjgC]9$D"ކ%ԛԕ>!vB+djTQF{ +c k]FW4֥jR= Ԃ(98Zi:p rģidsȃ@p$C o& QRZHzcᐈ$T+M8htdsQt9rԶ ]y n$D0]تZs`oDC׀ _c鱨 5 )5-Ն )!G$ _4Uf[ld@1.JnC*%Ex&jm@6MQ>(ttss{G/cp $ǛkM]q~ozyz!(2ZOlޥH7\@!][;=Z֞|DH4Ƀm"*\CF<* ;RB?z>nm7w޴P>D>w&@'7dP4b[Cܢ4FWUMZՅ>W.Rvb_ڕUY!m*rr@$@]>NT|4z=J>(w#r;nw/r#~8ɒ:fIk]|\WHD_*tn >6hkTSMZSqu)}#\.AŤi$R?Zk۩܎+'"mZL*ܩH'PwDinbŦmF۷;fHGR-YlTL*&OA5@d8un(v C=ꁣ%d6sGI&^:o} glTriq@0ܤ2dr.C0$4G>HKݛPjT"تn.ƒ]5 qj!DO6ހA2)HqCȈIuG)#mK&;rDa@PjTpYj>E=dHGwX )dش]'C#hjC 7}d܆=4_j9:zdG VUsqG/rڇܚd=4=Rۋ7! GPEu$Dc=HUtGQ"<钊"qn#5!. )I v!Kj895跇ղE!+ɪWr%IVPvhnɨ^*|H]C5"}K(>\>q۹ \ڈeR3E7{n5Qs]qDA!F%t*BSfRT5W=j'ڭ$z$A.Djh.4pUd<\EVId(%!2r EÓ|1,HCI-46 Vb˧"HѨ%{NH;ث!&V[q?q9#ӒM-ܷ<}Ha]P&$. @ڢ8C%]CQI mTbHm'T\l.I]A2ܔ!nnZa%orLۋTrx'g˷VKN w"8"Ȼچjc^EIQExDՁZi0Ⱥ2St ^%16!Ў0TG8]hfԩ$\= m0Vo{7-[Im_r&qi~☈uMG5 aY%8_baTQb>KbO@kw0T7*n:H?{n:Ĉ'ҏ]^BSlމJLpZ6cQ);܎EĸmC&.O<'KzqQxj0j|rpDn6իWkQ6޴Di!8aWf#Z& VJ4!e#.koըx;s=WP\mϽjF! +I/1n"X ZR1@iM< NJ&;&L@6unmXW QzJSY~r@M+ ow|DUQ\FmWv(-ozL1pe@|^Nc2Z#G'"jĤ'kuG42.DQ&\1d c47Y! !+ђK5bFAo?%{rU{A.@HOjxw_DvLnx 25PhCRydCAq]@i/;rf!b!{w*3*ƿUPAn"v6bȄ@q"5$t'l-4ʓsD=TԬpj($+U#~`֚L|چc歎MVNVj%w~'nysp"8l] 4J[rTC]1 PEە#I`Aj'#P 7mzԴJ4_y75=P $R _AɻrHH$PnCpCFO5Q VApC QC#ӝHrrCqe;% $E E" j2Cɹ\^4;C;M܈3&(\jRk5[NOdص!Em1%qWWd%p5vP[\'F{ީlFrsCRڢ8Mpy`UŔ'(5q-UT$b9HT^xjZ]|Dp Vݬ 1_P .[t* Bmז**AODOօٚ8bOZN Sio̕Eȍ Cr#VpF"R#Wx Mv kVoncT iݭ^hW8=YL4 .H!:aƞl+]vbt}`YU#nb&jDgIPuW  jͤ7<켗RRW7*J}L>IF;) zNѠ5\$n)Hj )]=[P ےnUdwM޻jC' N28qC5$1ɨЈEWKʫkZ+Ioܴ"!pd؇OO۱UB=@@A AOq܈2|8"4IPTһx{ة(rg{ݨ[mǣ$AD6$E"(WGQC5i?ŚC<}불3JAhA,>1-HԆJHPng*JɻɥRrD=zIx6˓-JPR.2rQ(2IHwHjA[F 1VrᩱZm=B1T8./n/}3ؤ^# xURSB8 V N 5*db*] ;$>Mqԃr(JsNJ%97x"4mh84kXܚ qCnMIJ9CՆVj%9"@@AoUW}F0s-=Cp2M@&.ZIL1Gp풙jZZ\g MmGGܭF84ak"EtI!wڲ.H{?y#JȸvbIjJ(;Y'"EK[ $~wtY#r&4 r\KR5Yzqø?T](mlŢi-@zt ʳQݹ=^d'ݹ1Ȕ1عĈ D5!4z^H~[U%6}B$HQztt…+XWB{]QJԐȎK\<\} Am;*[Onֈ9Ut& @f ["Y M܎욎kv = ʓP}VIXDԢ:Ej`zߡWђ5D1"b+#4 W_^!}Hy( cTE!)+(n,\nKjGl U麑FL۵Kc2˨<[ W CB Dq1V{j$bb,Q/v1Dj)"5xvhIjDHmmwyEvԆ+{MRc/65WFx~zH?1uoTƪ]{#mCp䤢4sjT!4;_s@C.]܆]ZDyؙL;^ I7d?5Dm~ǡЎ;)3&=ʡ|B)yqr*$2ȔvYcQy{b*=@ԟɞ}}nb&\Lݱjb1V팅~)Ip~#Qa\VQ.)%prh+8Iw1Do28R'Jӓ-TU7j I(v=H7{}9"Ay8hօR[}T*Q UjZh b"<Ad_ࣹ (nCL6w1*'Ha/֪q&[D AUC؎2*OfȚN*z5$>^:5$+(܆CvOb4hY $sssdq!4FvՊxi ;vNjדLK ׌f&\<$ÓIqP@B8\fףC5HA{۷j+hm">WLqu)PǠjU5eITYԐz괒t4 胠4 b]?Z'f=`B\7ֈ|5TvioZP쟽HJScQiD&(IE ܆i BG;ExDp"vh{w`JIK#6K&KjyS1ܐvWjBpi3z9&إ*Pɶ4hI4z]h Z !fP'-$gMPj ɒ LlmDi+܈QAd%Br.J#x[nHnC%HKr-V_Oz8YkƮflqr(v䢀Ѡ%䈭$3AQE^5#<&98C"8I&V'xiAq M7$` T@(c}7#u>l&4rw) v ǖP>;8"u i"aFD "5lw8XL)\QH@65Bԏz41 `I5Ȗ䇹\}}HH~#O\dAN+$P"R'n9F9/Zv[uW'浭@ a6* KLZ\JqJ z3r'OWR:# I! REuaCJdP۹i$<9P7jaM=Q\$ȔTZu_sťnHjC܎2[rDNܩ6=dڣv4T%~ީ /8{wB w7* w%"Dx*KȄYld1m)F򪺣GBn:795WҲV"=1{I'f RRTT.\5";ojе`uh 3RԒ? [˸E%䥤fx@rIG.ڗ"[t,KLBs|<])xw*Hj ]1KRF9̆$ޏ&o1uc"DZ=q-;hf$v!i&$}=\vlfhG4J #8}Vmvba6!Tpmf"WW,"15&JBVbD2 &*#EEr$(QǐD;F9Woz;QLQ$\ʂj)բFʁڐP9 *77M!}Utx"!mD2* zBăXjk_8ƨMqPȢOMܝ̍$!*FhqÒ0T6$DYB HXw G&oG0 @"æ#.>SU}a2as bU#{VX2b"pA/ &ש8j=AQmص"L'_rUBТ5=vV'\Gx*;miqR*MN9炫>C4^o=˹ڈ55ʮDhUjuܻv\D@* hː 8j QFB?{[Ilw뉎HbL%Wr!OW@0q .KcJI76ߓQ =)]%HE#A{F[#HB~\z==%51u,Qj*+x\Cj9Y&;^Oli(d "\Ī2UzLy)tZ*Vpzm$ Ҟ r*i-c"85 Rkjm~ǢS7?r7*z 'T?V7q~JZB y8sC":㚪HrDr{R'W֊Ӎ֓)ˊ ]#-KP M bnwU]pk1Uc$%UYCjG$OĬk&IS.8{_^+c|8 8T&\4:[vvx%VBEWu  h^rK]r!?0ݨINF*v51)Dh\ ;m4:3IJ IUujFŤ$eHJ7Oֵj"oL#Ci.4J^{vU:i%M$ -Ui^\ 5!T$\$:}D#kjMZgHGefmU&kb֛e]-riRܻqrHlUhJ+\B:$b`ZI/&QUiqZt#[<Ñ cY'*;hGhd5"+vD:Idܢ|v4&IP{h%JËpD$4[w**@yTڵ'vǹj=%\SJA$CCi!ۚE عi4gi!C&MQ@"= /q E_NZ'{Q$Q QGdђK&Ci r DV*GU٠Tj=ȭh5v6 QÊ%pqD$ZdTQ],W}1D`D{]92C0"SU[~ @mCq#f+cܾۗ Di#aqhUmVi1UcHDFEQ$[ .@#G(nHfL?>QCr#v7rcm ⺊jTuyܝLH, v"bX(Քy v$v-xG%⢤95Hj$QCp!!rHQ6 }.7 mHewNiqzKۏ+dI)2 w*BbvU&IS =i::-sJ*3r"=Rd 1=i:|&8tMnuZ40jC"uG Y<ڇm ېy!\rŊԟUհ*Zmiu5h5U#eM<=RMuG 1˧!ix!HT##&KRmC -ɨu1w)G!@ YrH˸dcyơ XCpҢ j8qHPH9>jKKrH9\]@C%_[ 7* !4kdB5餑)z;w Pݹ1ɩ~H*\jN$Ev=M XEPLREvƀ&ԑyR۩ђ.H;m`lc&[D%#GJO\/\/Py6lsB2 [ iZm.PЍ_%dN m,!扢mM3{dI6뼑<nrCDZF *,Í \H9@!$ Qm;܆R4!>sIlUfjBp $]mT۹sG'"n5.w@Cª tӘǢQ..^^H"' _nD !bq3TGrH#Uȹ T N 2G0 PP+ 2?" m٨\ )#2J؎:J侴6EHEC5jƎ"x(nN"%n ևlqz.4j#"ի:͢=B"`]`')oމՈCbGILAa0dAɫǐBY$\xCը,ЇHI!ГYDjj7i$O?5IՏ<ӌv*)7 qnvVPY JqNiHӔ&HeT@s$J~ Xjcc^ 7Zji^u"{D-U ;[qWj߱Dks]@nK?UD鉚%9-]j&++|I* rq.!j;'";j! ]9y"TN@RyfEBdʬ/J ܮ$?;Cr אm@kh SRɢ9VOAʓVoztA k!RsqvH(/\ZLUxN$ ¨%jQSWGk<޸kOźHtu }S*=BWplLiŨuJ~U#[{~ڀbtJ5AP8hy/R *k6!VP9 {2։HFݧ ^z[޴dڑ9pL%u jđ 4JwG>UEHI6mZH@G pr=yB 4W lubҒ*b ^4QB%a$A*J jԋQDCw1WJbEÏq^CPJԨ{{,Hې Ib5yrM@ĂZm);4s!d}e(Vd{5[htULEes%o$=7I02gܵ@1Q8+i7j9nZePTt:^89t2!ӓ$z\%C!$G1Q"P˿&8HqQQW~M,F?PUR\@ [gD2'_!|I{͛1UP4 eݱ]]wW\`w__x~p}ᕳzqU﮻]r+l|V_W<,kB_Ne};t[w]f>S9%뫻ﮬ~IΎrVGugW]hK0APTUY[wcJKW/g9=KDW!dn ~Mvr{% ,jM˲oVyY䍝U 93? ޮƁ(@h˽VÙޱrNogE'nA;yhruwviwF] r!kYVꪾ+m5&R챕/kF Ճ:`.r,i_~@ëw/`:ߑNVS 4I2Kd_˻ L|Ig%ɹr`u{wЇt'Usa,wDVse 6NF?'/W`n09`wDwë:8n2{,ҹ(p>RӡgL6K$w ].T }  ^S{A}Nã .4VC ?US]J} q$M_@,]mWί"F" iȏ,S8 '~q'W! pB>P?uw:w~ѓZ0/B9dά iC001D7{%w_h}|M"RJ`AWTDl:@bBYAd˾0wweudʣ.v .}^P&VeJDI2qȤ1r}_l@ʼn?wz Eye@pT'"Uh@B2#('3 M0Bao/^ 뫆]~5΀BaƌRP 0ↄ| 'M'HT 0Jz1QG"iUG%B~Y^tHd|OEJv6Bz Rܽ]/H#cXw"%+ $j7b CUU̮9Wˆqz=!%fb@ J /UKY"+&Ϊ RUJluw4'QUȢg]a*@WUքPL$"Bބ`GP:"De}!eVbz /@C0Λ7t푄 zb~jJ0Aݍ+*I|Ii{\h ؗv@ **VBs*P\$ETĸXc\CU\B۰z뮮us\ ,zU׳Q9Fq 32݇@S(w;5ʗ1|Ht #B(Lڢzx:Wy + 2(c Ak)x*UsǬ'(z@7}/tpDٙwaڭaV챕@G\sg>Q̹Lϓ-9'^$З:iL 5Ģ8a+)ؙ\40z=> >k(Ï_Wq~QN !K+׫a.G.AS}]u 뮽]]b9;݃enpN QHG@0 !~* $-rWLEAcOz'b =}ww/l]Y b(T#14l+W*(j|3)˓ڭz9ϓ} lј!&"žo~m P#!$OЃ]VI$-#}ufV*p*|kG!a߰\4zF>j-/ :WDl?ErW *Vĸ d T}cLH~['BUW{==͓afX5跹6oa^p"!G]9s{K;Lp9PЀ ЯB/DNy,KOKUJ qWYn_wG)7}{=\aAW9;ps`Z" :]36^wZ_\W`*SJ~Q**0_Ȅ'>~'1cz'v":bT-/}u߱뮺o?FU~B,ⳠqyӒ>T6SD̨!va1\\ d,S! Og~?`( WqB{ ;=52}_Ww}uwd%5|~u_r& 㟋n}#|&2u݋|?Lس_w/Ar1p+^Wce'AUNWrWWml X>n#EjKNίCMC'Kɛ$꾪EnؾD0h 첧0Fk7}'W W?~o.Ɓ1:$[:  r{OPĩZs_VՒ~/gF^KC\M?"c/Ќ͓=:&6u ?|rwwV[}T~=K$,8 vMO Z|eD TEJuU[UD˸ Dclϣ9ؖ~@0l1g2|[\9^˃׻U.^TT\~bT)!w˗H }s:WuC|P|_B @˱3׫ə4nW{z+ ".a;'u\N8 1pe_$n%M:J#Z(CB "_~%e~`?M BN"\`*Gv w0Pn\QeUrWjWgD|'N;: f sB\s@s5̣*| w K蓡DT0j_ 79<>88àw6'W^ (BN.ɖ5z?@4?ꭟOܩs* ejrEnP> ?Cu;eQBUQLVcY?7#Wt |tEʀh|WAԹ3$l@D|?GKZ3EWu[wU"LlsN!n$j K?@I@e˽_Cƨ??w 7ze7} 'WV%h ]~7w`ܾh\\A(@ e}rF݆SujX7T4ZK"p`KW7%NHoV_AShJB%k9b`30TT2bt7DR,־o?7zw \,5{@A>Pku9Wы*6Wupju !W#WP˿> {Ԫ;_bQ/V `u''}wKXՓ~>.JӟX9c1@]]Ε"uɗ5CU,\ݐ>.VGh|.sDG|[w^a&v_?u}L vVg4AdeTXa ,&(dbq+s]C;웕I $7}BBw+@~*WBco)-]r뮌Ҿ*U|V )#'3oK-1<#A1q~X2^4-Q+aB% bZXר ?pd9 WgWڮ,Q=/g?",05[w.]t9=t_F WU뫸'] Yc ez8U}T~y3ř>#HY9 P9;X3߰f,|8b.*[&uz*&l|b-60~U/\~}Kv>6<6Ј5`jw]_V]]hΛP+c"jf0~WhB')bUa_{N)U>.\AevgS%jD3J"t[0g%s*yC˞}/"΄pKYj,_8u+ 2s"EQp6I*r% L)Ѐ~,UV?k9b뵅ٮg }븊A|f邳*d+r2Ddu:slȥYi[t/ygW{e$U8HdXH|rNHU_UZ(wr7;?Ww|TKb|T(bzN_9B WvMit#cF!FcRZ1 Ṵ@3* (027<ҴŌj8ĭ|)U,i 1x[>'7)RkdWʰX~/_,_ )pj>clz'+c8,]99%W{f xǎs:^Y91tK9HD9sZ/]-rVa|QDL0Q ,1^ɢÐbz ,GGW_ |c"ܰ2λ'aÏU fy8F(h_p8=c]ɍ17'Q)PFz:c8ѵeD A Vb.ɌuXe`2 39QǭUαNʋ?cLS.W$&pa)|<`["1Ǜ ?jk{Ց}t?V&" Wv!ـݖN1c[B=Y#L֬ PrFh5`Ê; Ckcg,@Xz0N.]ieXnzɫPҗm\zQr¶1=21\I+LmpWWw{oVeW<~w#tȇU+UެKR:eGP U>Scք03*K0o]ү&Aˏ.ՋwR&4bfǮB  /%p㌘ _O80V%Tbev?d=|s_FUJ=U h::7]NB>uV.)X |uwf#UeT '<ܥ@i5mdRbl dgF3@`M+&Gs:wDۿC W˕sw.O@ zG3ia&^}nhXMq 9#[F4tD!AhJ|˸b *Tcp4b9;EaAEJA P{7c R v+~gGO\ qh :n@ B*l|V?l h5[h]JTrf1"Uݝ9+A Qҷ) P)©ei0 WDvt``Zʹ3 SuH@ӏ {``=1J?/ԭXuDK`Nku/*]TԻ\>^Ealjb@A8+E 7_" 몆6[ak Lq0g̹Q}|(G2I2$Y#1( 4BҕR#a7%V_W:9WK_V@pOC`8瑍q`~lG\qEBt: PmEeUhO a9dx­PN@ јJY6TN9y0Gg%av zi_7\{f,WɗU_C`q}K;]"A |_oASgz>W<*_5OAq#NX\2 /zD E^u F`(zT+#؎`<"G89 McVW"6lT._dK9E%(tCT cƬL&I\xW 5e݌gkD jV3upA:+ AVE$ "1Hc:-! +B"/ *\ EReb@^̻^2w d2_^sUj䟚 N9qAS"FPX#9~ע, )\zN?_aW/"au4 m D1$?tvN=-y+ξArOK=$ ^iWՆ;a8-%6<& .﫻+U*TnHPuj"* Xsȫ1%[4`Ȋ턎LgXZEQh3Lp240xUUmQrb ʣ H^orTMsぎv@Ũ?W}u/`;@@ʾG~X be+["̈%A)Ϊr>k2\jԓuPҡYc"1@Һh |x&U\f%fF !b,ҝ\ ,L`¼{U"Sy)W1q%O[/S*8F0`㑎0 =~I=7<ǓG#/20c*yd-{F_jNIle)<@Wp_[0~(K$bDRbi=,24G%]"dͫZ.uk)zL2 ̶a a8Ym &2đ 8^J(Uu &3brU$Wp 8A:RrT1W ШBFM*t_Ľ\:E%Id/4Tnh4LWlepy^b!">UC rA\ &yYY%#ń2,b+X<|%+'&l@ ˮ\ "Ա Z\{"1?x@ŖNgRmn$̂\˱USQH"w]FuaN@pDJ*:S & S⨞IcE0|b)fU ;͓D#ξZQL6O?d&60"hK\`YXx'zVfO9in;G$dCPz/#`шuf %jSx" d/|P(gG`CcP FL#Br 吢*XS>(LGU[_%u)V*V! Z)^Ț$/0E6ƨ΋򳍒2>@XpG 6s/F,ľVN̺!gr,yBgč 0Lg*lj9y2G xyR>uƭ6?' ZF"/&LbJƉA/aBp7e"*7KȮ1rD*qܩPqB49Wbb7۰׉Z04Cq,欄m(9qd̸lLe&bQ' 0@$cl`˕%tcei XƔӋ<^CE|y^]>,A&Eq`ʁ*2WTH`ҪUeRmr3c]_fI$99Յ+&D(Q`_Z e\XPf"C@4mw"  ǙIQF@2{bǝ @B޸#/D@.0s'PeD:PWōLʈe|9qT#rgN&Ng<<O'!e2 Ȍ:{Rv:aCCVPTSr,|Ǒrd‘IV1&OΗfd񲅦J*_PA9˙:v61BɌ7?Wd"6!.4gB2T%sbl ;3*#gLd99]n<>0"; G.,CC4D XǝZ_Wk0`3,%r@kf` t#j'4A;yLSKğy^31FɅcde_'[ǒ+0nj$0 B"g `݈5ɝg$,3тd:o~iqv\9|."ñx&95DJ'A;X&`@(\lt΢$΃0642hLB @c$7ŗb>*g ~ɔ631\:tLF! zPh1rf@y8l- ӌt@ ( ̸ x6>`kkbJ*κ>Y`@h@R⎈!C  KE'6'DȦ#߈6̜><"W.O##SaIc8Z6XOˑ+!VE0.CӮ8!9|yo3&L1? "+%W4 J|y1Ln:9mR$`"y麏+OpXrb:,uꂌs:ѡMJⵔ!9р,u"Ō2q#ChaK+eTڃ͘4ehȸ y|&\/@KV9'}8Ү|.LhP&|C0ZsurXqf -A! +T!dB/󳇇0yFX NqS;&oqxFE9#a, Y@=@V*B ͇,f1yY\O҉|8Y']]LȞMm$ `s  'U c2kASf11G:A H~b9t_^@yDca rB!$pA<^Il7\0} S>>_)eL. wlXlbT V_DF~j "NL/el:$FZZu5Dɏjtˋw*tc΀P\&)0I͔h|d1hh#^8 fy߲V~07cB0cŇ67͇YV(G'B4c~[,%0֬;$BV0|x2A3,0V؊4g?wV?Z\1.cFcoqa`CtLQ֕_J|_..O'&,9 tf? .5/h<)mb.POkeLo1ElCaו:c8q(&U`"bgxa+aAwdo8tjiLyңm[C 0_M13YgTi{$qfwP }hu\ `"Ru@X !XXfLxlu\eA&_! +*yO!UƄgd8<${ UoLP% xֶȕZ* h"), e Vc񧐽d=iB6w"!RC!C18B5\7qTrb L0J÷*ьS 1:"bh H:MSɄi`.O3s1a0# 'UӖ>?"rӨ`@ lb`,, pg,B ~`9TiO|% dəlu \J_@ "fȫ0gu#"'CFQgdŋUVbM.O x`w9CUpBQrf|f1+X&%r:YQ UxA$p".@>_+.| #|8XTL29:_c08+PKǀ*^gm:̣4pĜeƎFHCd? g @$M WXP&s:H қhK:B 6r&@cB|lUʤ4VT5h1,W'VeASb1DȐbdNJ 6Ș*,3C,* g^9hـ׏ f1L倁ÈC93hl1+2(.L]q`s 2=(Q0EMJ )ÌDxR&C2H+HXt ӉdEcL*!*(>zPWB |Ή:ʡ+gU9QvI']U̽X*Q2J"cLǐ.)C4b1ƉtGVX^( 9< X 0mH/M, F@%,|88a7@&y҄,!DRHq3E u PBV\*ŒZc$<]10S(0eX@LjB˄adZ#H6V E`6ESxKK&IQ|R_,!6mmcmc㯌Q]11@ 2F?)>ș4BŞV,HztZZvNtga{FU g+-v`%a2+ C$ ʬb4pzH-*Y"]"a#3 (ECF UL@49lz%,Yǁf8KR^Zn$:A p+0uSzdqR̘x*ĭ11&P,8S2B$9$}zheɇD>?dC3K]Sch 2 f̤Pr#rOQWt C8)dkx f0Q(Vݖ_$*G@ 1iqVb,@(e|Tl#y>auA}fUJh ,]a͉c>iN#a: BV 2IKFh akePT8s`f7` JK =Q9 *6|xZŝp6x Eb\beұURziʤRlZăN2dTNF Wg?Y 0’A\95^/H<Ճږ l"v[|K7Іx3*!4 3@Ѵ Loـ%ы"y:b NZ%%`2ɫY +㄀*ˍVg4f"κ`k=N3FX" )ĸF K&h5w @ň1,JXahj<.7a{.k 0xg: aɓabO(*k&6QVA g5b(d_te O[.6T@T.Em`H؊h¨i3 JIT d=_<|1JL]t1 H A3BL%zu*Im ~NL+ c~Lp.e 2 ^A5ڬc(|yqJ i`$9!OQV/Ƚ*HE&vgAYSU2`?]d(b/LLNW׬, CJL}.}+ȂVTES!7o`lhS *BOd!37|\ R,FWoL98`U"|c$O^Iy9"+L2eF!:ʦ+6!I)Jڶ2]riK캖XA( dFLdO1kg4.UuedOnYi⣸xH]f*TرDG$qsʶetY>`#D 2Ȇ:ak.گa`'OcdCC1꩘\k(Fq.(Fy(#!= Z_z3d4a  VKu#zDrxa# hˠ ʝL+Cyõ/mbK\9^Y̑c˶4r!UяdR6UO8\W1Jr l6#/rP/F23N,Gy9rtH$mI/ыL4.a\U%䘣Ew 9$P7|iC-|‹ e sqˁ-bZ&nL#fHNK9ɀk:!*ř;ŞX5_"4EfEՐ%崺Ƴ4NFWi+; g,/=C_*k'be Ƭt@?vpb@: a,&1ec}ϛf0@ĕuŗ!L3LCLYx-;,Y/At@||3bȪKA9cK^ǏEN. ˁ@ .GRq\y5v8INu dkx~',='|pGWXI6c() tڼq'<#4P^W67ı33FFa@)*Wy珑r N :&L%wzZ00 AX̡ 8pdb)kB&I Y7yH)bh @JlST2%S [6姥Pc_EDly<\K1AhWf"T&,vb#bQd|Y!lX.6Mk<'91'j\3Ɏ M0\a *Ú)*.2{d/o v2T8(6AIƍQT8rdR%l%fUB,V$+g"w\ B/1CE9{q_2FL|;ȬcG;&O3ć Վ7͢S>l#"&pTELng#>9YcmT9ŌXCK3)#y8D)] pf^H lGe'NOrV4d+hg:+HŕvR$"AGXfWNAi% FǕͩ̇I¨Coː|A:1U.62П&\x`V+.I-aLjpc^Rdĸal%rDaG\+ mENe fNjsц+2A.?V?Zp03 | !3?)p15uN"@i/Li%A؄i2tc&`4 5pXlU BJT˄xd(,*cy 㩞u>E8S6|ۏZc+ft0g<KLW.,0UZc] @c|&U `bd S"E)0ŵ‘6<ifbYvB$ȌsXJfTi|C+q.9+TG XO!tGV)U9 .Na4,yȆ,S6Q8HZ]<2O 3d&Bt V,n0ǟBQ֘P21IK'Ă`8eVMQ+f'#Ewra9(1l9zL ql-0Lx5f4yq+|ə1e,EY0xy- „(12bၱj!3`lq{Y 9/\)IMb1`Hǘ]fht3e,?ksM2q yXy努j `!;3*0k Dc.ND ap*R+Z"5&J01W\qP'91,sl v71 3/,FO&(тBkӆˆkFD83 Wŀ1) c/?'F?R /+ #p&hJ"]ږ^qU,1!S"]c&a,ݐ Qb1--cLDGc*2@ L n{'P@VDXe>2 ^<ud>G3$A8xp8apsc߅y 7 sxrdNpogT,lűcHf{UXac#g<,zyyB`SXpE0Pc H`30JYf)0cZr 1.a-;:ʱYLIh *wJ1 TR$6 @*Hd00 L:\ +mxXɋ?dEl~JQbę< A N@G>|Q_!`V{1Uj6#JbtW2 &[hbTr0,|iF| ;Tuw{23Y! a V #9(`cJZ*z!`L&(t a cNe`NBˬSZ`j+Lrf^+cXNO\xsx0L^;V2J#ɟXc+o7I"JgS5&cr|E3uq6PXb3&F|J^`Ef\YH+11d2aɏE*n?#!O4r@( !zRq:hZdrOb:,`U!(Bb7P&C1brI5lA"+<~ZÏL.,xYLt yvLYs'$ŔǑO=clS)Ōa-72q=exŐF8Wrΰ8h3e*)pL1 :'<>B?ʾ@srder<×2pAr G) brclÊX2CN7a+g!:p偺MI*YqY N9"0AfGO?/y<`rd\l~LZ4eA  1X xgM U9˒t&^1c@V\NՄPD*0B['DΪ.eq*8қW"MQ#/ᮐ[OOX=6Lyɗ>9'a^w!|Mcq3g 1[2HqbT`8?Oy]e9?&1#tegˮI3ʎ |8ydOdWV8N&f8@Yэ8LC&|6N(Cq2r8rs4XN\@&"+ (EB eB@҈FTFv LcKbF'15 <%a0eKzST*1=<9<(1@f\m` -p?FE ?g9 >1; `s01>3*n Fe+c͍'h6WʡO>!b=g,y|5|91=eHr؈ǕuFOb͍AXB`VԫΌ LGBhJ>(e̮rE1|xURj'";d ?22iZX8BtT /As1 `ft@1Ü|1D 6ǃ/o# W>?+Rf8rS2&EV LYHO,_ՏKg 1Ϯ{B7uCLeWpC..Ng2!`Z/ݻtY RHtae&A;1c S 1Bt@46!ǑܞJ2Ƀ6<>6I1-ʼn  aL?_`fB0l&O:=h/b0Xps4>g'*{ռ"u<\q4#)@)U&r0O7|tw`pS%V !ˍx&G3c20d6LhX!Z咥yne#O8! 1A"0Qa2@q#BRP$b`3S?wQ65YٌxO-,KhBq+,.^o}tEkbʼY"ZBYD0_n,1lxY׼7Ѝ>E;x[.41#HEPg_~EyD'׶oC+O,_$k1~t?e{5.Y_c/-aKDd6UH}خ,abV/ʽ+٢ϡaa K/ }K,1}W+;n/h^{خu%F!+T% }lc͏ cԋev__F.S5.>o~ŋ~ՋB 3XE IկK}(lH?fb4,,KBegy}O ױWhYB!&7Ґym+D!4>b,,oX}g]rv>{_xBB^qXƇdƑe{DykCoit^FoF(K~Dc(y Bg26>__١e~eNl}4~/ۨ/+6VRlCKe+¡%X^EYf/yc7HyB+]4!WCyYW~/Xt3~_}ヨ]];^cB",cCci{}{Px}OcPؐch]McL?ytk*Ϭ1 +yվ:+xwذfa~^fXXtmkHLH,CeBDBuCxe?ث?]BşEt6"аwgJ=VǕ<1X$J$1 +8RWD_B6?}C](cy<1Yr;+45>>1X} / +o~^_m$2A,a$ll}wki>1 /k ?( AcC,HBᾊboCc/)Ⱦѱ11!!~ֺDbrelcXBC}JŅ^K}пp`Wo }/ -aUd9¢ #eY] "P +t3eGѡӼo>>3+?Y^bF͌yUV6*eh (kb /{uŅ#]5o/tpb'{Ceau/n+/ (Wbk^]9,PcG0g8h/+_-1c=?XW"VGD!xBX / x}+ O/ݳg/CR;>lآ(X.>,_EW];fEu/eƽhoȑx}O,.%v}+ ,!~O%xċ"&ܚM]^^-t?lD(}[κKQ9HF,Dd叾f cS "C԰ƄĿdą/q{t?E Тltf}CYyx~(^(x~]++aum_؇%^w1}ƺ(u.!a/l>1~+e c_cŬؿFKeat/q 5oWޣb߾o^讍ekO,7a uo +WR^_XH^yX}bWQf+ _-c}h}oy~>deЄ^Z7,WZ}uWWbu/>1ױ! ]E}/%~ƿ>eu*l5/oXn,ҽ?nPɿ8EeV/CrK ٯ_辷__x{YbVѮ^7h}Y4/ٿ7>_ݿ/!u1GLr5Ї {t<%^ =E vP}6VwF+-t>Ҋ}5/XDV,!B",_ e~{LcNf ءtYB/&戋1,Bκ^_ug],1d2o.>*7fՏ,^"3Fƽ2](YgY],xm Nl[WগŗnNP𰰺V+u!cX},2G"Ck!"$ CŇqZ()wʽ2ć_CX?yB]"+e~jS.NfްF?̣cnl?G+F?"~ȾEQwbXYc, FGY_+Tg -}ElxD-lxپ<ؒEY}+&qrk),4rvB1% v8?3a/q>'8|&H Cϳ i]  ,>e *V#@CYYX/[]/qgM- OkD2gZ,үd$P2kz9Gu?پ}Eu?(X.̅m:CxG4ho ~(F,"hƝڣ߆[Р<2bCųE̼2M ]Ey]/>^G+ܛw2s~+"- KE9>/,1iu! }ma˳C;;!B:r Ic˶ú(ș!eb^?X/ 1dzIk!1Zz[m^ ="Y]$TK_DL>@Y"nE/߱.]^fp%ٕ$Tsٻ IrzaBX1c} /i*^4,DZ~'.sg_ҾoТ>w#H/9:G$k+Pג҅!zGfeu/">1 G )Y_pN8dDD+'(X'~b5Ϳ{"]I ̆#xW]cEZ+۱YkLDߚ>JfȋEe:k v/M첸f"'qϹkYxKq^BZvW)k>V&( pY8_"Sg·ɥXDjְQ2O$+l/%XdbilSCϡuoc/e"HC,GO.)vмe-)^K!OA}&q#<<^}b%,oaװIQﲞPQ]/8LG $K쏡~uY?zFPOG7Ro q(m;XձGM*!z,4:W [D/ $.1/N Jq;"&:$' MP O~gDc_!^F|GP }+ HC겺t?ПVo)n|2kGhHO]]zcKY?K HYGE/ v&MV/PpKgѲQӁx(1Mt[9zVh~5CnwCG+’9D1 Iwج?3ղ\Am71I2ŬG __#]oO/ xDq!cmLֺubdQ[ lqϳp!xB$/;<++##'kѡ"KsG2(Tq;Eln-lGخƖKk)'}}[D~ lPܮ^lC]we/y] GB_ pJ>_Dq!ݮ_"8N8bbXBY#&O䜕Cyؚ'DOtϢu%XWm KLzEe.ǫ7&BB_z$8% Bv9a$o;ҲQDfr2 ]=/ 3X}$7k?cVk;Ŝm!赅p8m|]՜/8_?쫥hD|{Lqx]޷D|$eJ$F$OɓG'C#8+<HG>ϼX!Ҧq9ݱ?U*qs+}ƶAHŎ$cD;)j]Һ+c'^y]{ˮI.#B$6JX+ff2PƼ{8kn/H,wc7|O(DQ7oȅ~1BuH+^8 K?2hAG q8g 8 x#qq>I$}}/ {Hce#^+^ǦyeGw#$~=xc7x;$B.)]l׷]ÖȯYfo E=0eEϺq#'Z8F!L(>'O ?/b͋?74Iv8?q'&3ĉ }+ GX|!dI|/+ _O+3b5ӾdWrԾ ^7{DEG]:)ݖ,puIԼ>{b8Ȏ?䅊^K>S,<<_Bd~ tIx%Wt.F,}ocYM <,!P aWJ,oؼ=#g(E7 5O&q>N#!t<1A"r 6^g+$<ˡ{kg쐰>>L_͈}/.$; *ccCGWϔ,z9F$7]+ {GGH.] u>Գl~CF $-]# P}cocC}qʔG5YDk +F2YYE*(zQc|COkD'/6^(p g J\of]6V'Itk uC='jއCo$pWV2W_؜h2TENNo#țXTpI$:+,,l)/7w v˃ljơ̚O$"ې6+4pܒgz1zwB7ԟ.[讍%l\GؗjMv'?*ފм=Z8}XG5N7ZvǢVEv VJβ}o֖퓡ЈX xDI?ݗmUrכbbR EbgtNs6rR9=I3&ػ1pb-qG9jQ?5Q^~YǧEH~%Z8Dzxdc2e1?8~Zʖ6Xކ/(xRWLYbE* rOQWDn?qI2]][En#KlѢ>V6lIk$#NqO|8+v>ÿ#{:m[#q Uܿ$["xB^q^3)vc",BOwBC].TLyq-lLP߁lCaYUv{<qJw؋#]\o4EQz_bE .X"v,1KYi-xx'B[X7 'B-]/6rJQ_ Qѫ8 ǟVrg|+I .ZKSH6.LG*/5tV/T,R~(OC辷.s.>2ghb#WCF}GKvkƉ=/eQaV7б7F^mWѬn_hŔIrm5q.M$?RXC%MWSg/źcNdrog3QOCc.<,()LON ?:-\i%RqqÿbT:Q]!QVz?U6oWi=t.>Dž?:WlWZq7hB 񳈼b"'E#_xo kCq%kIY&!yUKui % t*RvZ5M[Hk)w#_%TM^ORKZUG3 l PmExp'}Ofv TtJ; tS>vb٭v_2)H٣9US ?HlV!WUBKDX;}V%} v.UX2_c]B/b>0t_ct\-1LoXK$(o>_cb5Ïwd8m 8'xcg{.븆*XëGd"U"OHeގR?5p%$U9GTOY>ÕYXK鱌t{5|j[R'yS9tCkȕlIWj/a~Xl"}#OYdpƞ,^$'V]{$:'E+8M>[8rrZ9jTQo+x,Jlh(q$Ig+~a룘s>{7a pۑĻ ]Vlb"ey3lTϱ$No,!$pBx&м2k$xJ>FTnB碞&N> )XIEwG&?Z3DWr$>kg.tۡ?ݨ9 *GHMilrC,Mm᡽1Bol+rws$vX9]<_dI w!XxQ_[Ұ}rד(GwX8DoT? Vpe" 9=$$g]O%^"lǵqoJOE}tVPǕH^[rUd=T>f|$}B^_B]CC~J]o7$14?<Ȣؕh^ |oc$?e*P(1/eCVT|| K-w)hն\pTN wšTJ&n%xE56/^J#CQ'Zcb_|675_oekL!H樖r.z؇TAKwOqi݉_3 vr AQy%؟K>i~3D5pWaWmŋ.?ՙ,1fq:' (6G/>M"ȢЫ$C(Xz8IC cԞ[~0(K]ϔYj8)rg.Jb=G ^",|NWLhelj kk^Y2]2+#ˡQKCSFZHoJ1e-!rV*orIhL~0B5<1}o7kx(XO2^17B+7.Ʊc/$hU]־J^>^Ge_rOT}cbd pH^+$K|a/c7crA_d)?|͡%ْR+rkd<7:HJBx] >T,! ! fԅ|'2Uc7m (rzZX\?4UW+Xo.]s JܳWZs-|׌4&ja kЍ (Ɖ_%c!{bˣKeWO_!ա7BoLiBkhq^/dM'-gm)w?4?<-3+Z79?4kE[+ nb+/ƈbLuر;9UjvBi%1?Go_iTq%Db "PY}?aⰱQ }eʼnMV6W*/}>J1W'gb#8B9u~ wBIÒȒt C٢Q;9|khl?oNT +vFؗ/G.|Ho$_^Y1L/8/%vMК578wq?3<Ú+he_8藒BklТ%R8spnwzw>mD|č'zqX,E?GהA~N1t,^62}oG>5B{L~"jQ)It%ssY Kg[tб]k/2~v>.0##{?Qfѽ>Y/)R$Ez/&w{4P9 4Н Us1ڨqsJbe$r^w%<;9dp?-1HebkVp^TWRnMF UyD#c{C_AioU4Sކ7$Gq]Ql ^ҢMhhr%Vzu$WqxGĭv%WsN^DE*'̷dǺ/|}"sQ.ŏ %}c]ڲiWܜ?&L? a aJ]vlUtB4%>HYX.:ŊQCK}MΗb= }ĐGWr|ay}Ut/e|ea<11YWGdO; O bP肣k % ג2NHxb=I2zdQv섪;[z -V]ɺWZ(НhG9owLWui .lNQw.4S=Tz8.}7&kW- 5.TCC~Mnʪ}XBqۣdj1xJЛ(Q}BِQ"-%=q_쿱û!s þ8ij;-Q B)Ct^|ߓ}O_"5$+;$qbuϘ4J>&HOE"/?#]"-)RGR>`>TWp)i^.m%Z CnQ_w*S}:ǦgS[vAvhont}/(zx| x&",dЗUsF$Fz5Gޏ|$8 @C'K|3B! v8DLyG !gЈ g̟]hBƳ^>/҅쮚7C~7вB¾dž,o/",!B<} d /dN#Y#}cTGCEe|,_G唿S?c&?ax"b#]5}e{O8Dc""Q3p?E h| GPYQ?c%}1xde+>/YDz"#pH /'H!h?X2E!/O+xXX_8#BWrɯjBkkb|B_څӣEǹxV5dI!| zB!t|DQbXWL}1ϣ} f<}t,DFMx$H"d8 'O!dׂTI_>!?piN!!/|%3q/"O؈|"Mv2cl'Gcq16'qN/ƣO≓8N/߁%?kG*?=*"I;8 | KrG r]K,} ~RbR٭XV2bp($.>_T$.y]o b,,7HD?vF@pόh#z5oX b$E,.P.] c^+]qěƿ{^دaWr)xP-tPa~ /cņDž >:^o,QeX]O˱ xWE*u_J>pϱXB7$oCYXB5^ 1wг1&Hwk'5׾''6G?#5BxDJxXetiű"5ZDXwH) /Y:DLSجU]2,K lZxL!#Y{=TC;YUܒf8e"<ħgPcmex>lEaPšExMU,r&3ԛEpccVQ 6xxkOzH y:$o|c²;,Byq Ǹ5p<4F];+]->JB7^XʡywHoF܋9EG9ę]r":aIUX2Ke *)$ZkÎa:q΋dSk4zz,2>FJ1&zH+CFCY F͖R,ލVe cBBFEvĞEb"h_]X}D`B;%7"-vE.4|DoWz_!'YѳYzO:)lQ-Qعo#!bVV) 2C"͏XykϧoEh>o 2SӢX) G)eH /)*-XXV,A)CZ/ 2LLQ!ٳ~½؆C~xX:"slo[ͺX#r|(Z|18x+F5xW,] gՄ w8q[7kwT^YfGM""[M6S(bP atI+4ŒJ|2GBR"&We3xL#WT^]x~q$sI44^/"V-?c(fNP^^6'סhwB]ىB_dHae+#trEآd>Me>''v2^ź8Ok)m6<8Leˎ-cE-F($Becvƕϫ.g;(1驡=IwĖl6B{E5*Y6džIGBk쵼5mi -cFOh|Ε!n_C)D$[͛KбXxBxYBBtJG(ɾ㡔&%5͎Ǎl. O쌢>Ufx49ƺ\edgLdx|*]kb:N!B) \>m\NV^~]9kV+|gOC]mtl,<%c[*T~_}IPV9'g4F&(VVbQ=8hxv#bcE7V>_F1ѣӎV7 OB[$VizeMC(.欋T3!/J+~]+,"KHٳ:CXa {ue>EK~hCzg4℡v;Tq!JPO4sMJD!s=8CClK5c$clr,|ǭgg?N;bz?1䨤^ bd~]g2#3[t4'i[3^ƻ2"eCfF]wѢ<6VX"%bαo(o[?3vE1އsD)Sߓ/oe9hFM|["++ 9? 8q2=rJp69e{Wmq,Ew/fBK̬YXywOHRQ袩6R?8 J y]-te7<.V/18<1b6SS}E&HoY}X:( ijrC9{L6x<[ƺ%l枎T/ͷd\e/|N*I |() =sqlʗ_e\n#Yqiny٢fǖٳ8cƻ^K=٣E Mh&%,4;}bhvz_> ȈiԆ}WFJБRز} QݦrB"!t7I1> ƙ,YFY.XZXbG~k^6A.oʬ68|#u.cN^|qaXtC'3LQŕr~2O).S_Z8],}IMlE#XR&(tM<8e9H Q4k DPcb|eMՌyQN\DCWЍh Hq{6S' hWXШ֐ =&q'^(:۩enbz[Fċo'yK-Dܐ1/:b/+6zuChXl?vurm+?/ ]_&m4Yb\ƺt!QƉУ ~g?^3-PRc,z/N_a>]/)|cǏjfLBeaDlTSf4z㛀rYᜭ5o_䯢h|)ϼ)-3?XkG.:,J#&<1CD&ꢰ! K }+򕋡 aa%E%BOɱPB166(ٳyse.×#h/a#h\ZbEhXxҡiC|FrT2|cԅl\.$gt6,U9DžR\bB.t>QbB 47c̑}1C=%LKe3?/g<:3̇Xͦ85sKEx̨N{VJ8Kƽd_c.'D y\eC])߶%~ .Yg*5@ߣKȹXg*p~NY1ܣx>Q.Xt!ݞ37蓛>Ĝh\G/ x-'}Gyg5ޘD\k?cf rF{9r2tWdc„/}XŔ߄~gbGbhՕb=&_LSFDŽ,:9/xCvhXӲ] $/{%B~yZ>CUŪ*^1K]ThUK -:-XFŲ%Z9Vus:w-6x#rDGKɶp&a9n['rlRF|R)7 TX󡖆3E z>+MXi}vo?n'No7^u벺rռыЖl$7>E;D"B9<1z'_M(#C9SfP ap u2й7xcyLbqy.2]wnó IaQECHd+e9-Qe&T͍.#^hpR"IK4،:GME(xq!ORCZdQO47"Q'75j١C辧xC] huE})bUX,oyA9eųetY/ϱsTÿ)#CK%ۥ%[er,/BSdM[xu?iV˕lNh=o5ѬUe)4mOs~6ѲE144$3X:_'uFYQfCP+ 9o+5޳3 ~Ң=FO,BZq~[c%!-X՚wqb|%V-]c54K8>|>+Ie+';/IQ(>I~}:d߹=5xOI1XuxuP{!$<.aGT"wGyfCdgJ?*ʋcot} *Z4EpK9 杲V1*4Ivc~J! "_G?Dp4Y?$#6V9bl^/e~Û}X_%=FLl}yx,/bem/A}P9{kr~.//SLUě>#MOVY5|WOyDj+S*cM5 SQ%?qON%Mx9 %OpodECxtQ1%4(ySMm6I83k].YOgyc/RCR|1ŒdF} )~mMR"O/ #b|$gϡ.bN;bL6E)p:zlYBl_BBh"1Z?d(K=7)<;>c-:YtIbMIg| LMPFhd"~ cq>r;t>eG'N_?q}ʓq^vhg|DGnvNc[E,gOX ab/k2]gbW\YcI6QMYvQoJ&- ԆzO*,WLjnDeQq%2Y2Ȥ'8b俜Ȕظ\:?6n ?&}Ͼ__ &+dfбECVr":^4HC9XFǛ9s(߱×Л4*ñkYfa!IZ.ʼl]C/ 76[ ^ M EqU"(R/] emw8ThI7,lBOle(KB6k1WcuJqknjzbć(7#09UgC4Y\;lXG((猸R$3#)/&99u5Qk:h&bEYފQ2Cv9Ep J=spcŒF[61)+]-hiL}Xi1h,׼2|m"١,K禇[x儅Qx'*B6p%)Ye|Y7fh;װʬ^vo]i 5V6lۑ_obƅĞa)xSvrǦF)b)4rqegE?g] l_cMKX=oڈܳsw+-rͭ%fg2XDh;xR(T,B( 9_XN79a-b= 7Uc,Ip4 jQ.捍ti=͒Vl}b}*<4Gdb/Yv)3贗;;Dlo XccY|(4 zv%>cNqxI71^PXucK;M,V/ư]v;>}8Ѿ] Ȣ1$&>I.|h'.] l ][Cnq8WR? i7T5V9N |8I"#[7Ϙ&kx$O$4GG!e(67!'iɋr%Ѽ>t[Ѽkz3Lٳx {*a3cL+:c^KE!44VPͬHhq8RIwĥ/ô%)b(UQuh߶(#hhR_yf#סu3}>Ӈ<ĖV/#3ȥW."NcWZ w5K)66$b Jp!šG]$_dRōtQ6%ݗXc$s;(|L_߆$p! 64o 77B8<=JO.YfUO-5oh*{"͖%+e1*Ŭ_-.bXhoEt>l&fhk v6PJXW4VeH/.sDcGV!E柲mB~F8et'#DoڬˎQ=/Qz=B ӣ&q||*:?;85َ^?5D]D۱]D#؜M .R}5'Z.Wx/ecؑ}LQe?̿Ġrp!=#e#]Sq,ëgXЯ=1ytTB\:8Sbʬ&YHYbO-V+,xn44u+Ɔ} f.~ho ܶ$Gt_]TkiH?9y,Q8HOf+$51>b՚Nt&S A]SɲF>؟͞Eb'66VFG rTBob9cbOLe8##g=Z9rœcLvyoxE RƛOV+"ƻe Yyx#X"+܍FYFh/b4S>>I>x 뱱_c5lR#Bg_#G/~( MX_ȷ)?yR*B.co?*bάQNP9azi~ S}cd?,XD`'lr2^] %#i! #y7&1F\6+e_9D|">+d\Gv_EXT͎,.m 46:!.r_<<3*ge pNVIv4"+b=O;룙e)-|o"4}Ʊ #xkbC] m Q:z/xqvSj\-UZcT/>hd{3?Hg/cE;?OKNyeĚDb6qWN KdP%T\XŠ~g[#f̬k-ae #}|qȡOda<+(}B.JRBA4*)V*O>բԘ|~^_cZ5tivhx7%cLb.4/lg'vdfHq:#FƱ'Qq7KCZ"Cn-|==:dZD\qb],ksbui>Ea$ʑ*88"7zZ7feK4Ee2{48EtS;D8?WѮcq&QJreñ6|< 9U[#KPCbҰ4$o}> ("|8rw4KVS eak;/ t'snŜB4;._$! R1(7 ةceg޺, guV5#^^L#Iѱ~[6k9Sc;ifoۃ>!*9wwRfϱ,Uסb^5xtYyhqօDrqOtk.6o:d&|A_|g3hF$sp֍'.ݞ]%*VvZe.G->7b2EI9+X? .XsB:9x,xϑ iOKe5%q<3/v_gBc)ԯOrhѡ ХscUB=]Qk#k] ,#e+]ǏEf!b$ƍtVRbkE1wLl>š<wolH\8wDۓ(rmfV+b_qZ+HKɦ%d.]>+Q*#O"t3ߪI$#o]{aF5xPG*>+ٲXxKCg~":W0g]Q A%F9jGmmcKXѲ|4_G%I >9E7oVR3ylkcN> 'ȗUk/#襊zKE.7bƝŬ_K%iS:xe8>LJ 3Uծ"GDWx.=(bbKRclvE-G|,l>_C;y=+7а/Fȥmg1- }U|-5̾)|tYxR݈HDRBbq)|x~ >SA<*Qyl[dOr0)2ʦ:+ q/ÉK/yR]Z;.i#Z/+G+tVf͞qcHd/&hƊc-t,l\>YF˂F$ˍ"m⦅ܧɢ.4SM$>-t:6)YR(fK]/ b]7䏆#MOմCrļCOԄk !r~ e{7#'K8vrY!K_6K1x6hDq^dJE^lpr8r;G$ڮȾϢ/vyQ^G>4$ϼ.7dsE?/GKp k lo**EW]lMcxRŢ*bxiѦSYm*#ȗċS͔m'X,[bC];.bG9~SE#DQEEɍ<ĕ4Q5ƅ*l][;xGsXIEgB6zYӅˑ'7IjjE ϳo>fk+鲥.zq{9eXLBC4o>s4&YL_&YEcXUz_O)gG,mS¥2uY,4N>RK f5EIUf1WYPJNTDz.sF6dQ㥖͟E57r"?.QE|t57i&la8ں'[9QFw%|fxw8S6'EVhL/=9MTk>#FN=?CR6JJ|+9')D k(Yo-m}gee~ԾN 2|F͚(;hѬ,X~9xg.,V?~g5\O4[ɼ'oCfki%ɐ8whq!ǧ*F};5,LvY˷q> L!Ycb+44_ᎍUcxgȾ8rY>0L5sTI6ZnGqKeKYz{b?|5elWeM#_B7в͏;)C-tyI[+ b,v}-"buLQ񇊱lN񅗄_~cZbvFȋ{n'/E7v̐dxBv}Jgly,9oF͌nO cFN)i; ؾE9 x$S,2LJfle.FQBvr,*9 :4s+}V7Zb+} ͗Xx)5+8zmZӡJS:)6o7zӭ?ydMe;H 84>'^I[)V6[*(>obd6GB64X1lEVxX =lDb%ӍS!-a_㇊-&lmS)?8g2S6-Zq4YUF3v^YRu◜lZ4>~nQh"rq,R6o42e ,sf 7,D=9Uth7ѡ;®PYvZo;cҚ)ea<QhS1cylVQ8{|_bPN?&?ƄEb(9x˽/7/o#8j]C~H104RYBOERaңZql$\[4DT;.68%k[fG6o;w k7fV+ اB2x96wX$]gFǚܲc+g$'/vj2O赍e]#bʛEɳԆdFaؿæ&"a(COXfLײF9.W")GFt"/D43yM,嘨bR E(vJxLc-v# 6pC$1{,,pZFR9K4m.^>)P6v_cXXDV)|f6K y=2Cc>^o'ViX}Yg;Ï ,Jb̈́*!f>8 41hymhx߂kn]M)fLذ|o,L][5:ȴ6ټ㋘Ӣli2\V_CưËthUYJ%Wˊf,gf\\ö=Ek:eٱ4U̧tz/wŐ]Jbus$SGeeb>4\ෝc=&͟]T>nu"Beō"xbrmcY#w8!fIbȥؼ4%b%'͌ _;:EX,3Yu?*4%y.+:4d\OMпcQ̊B$^>kصLAb.[+43F"6ċ~yy咇f;9w)| _3C9V[1bޱehŌXYo~MT/Rx,EY]*0}k:yfIKfs9<t,;uͶV=g<.cYֈ[G MY(KR{_bQ|dKy> lԙwQX|5hBub5֐E3]58Wr滋? ?_&dž{6"꘯zO Tv=q68q#=FVB\'J{6S7MKFS7$(n 1ݼzlNiC7;9/a_~*=TJz4#x-W;n*{.,}wYE=:=46iP-<ϼ(:9ˆ]1~PXcmՋWh<摲sP[ƍE}Vk o2Ŷ"^:!ri>ĤLI>bY4TFK-u=O*ScYg445s/V%lDiTWyƋ|HfWby5S-VƊxyپ76ˣ *LCm!X6&C#)(jf>R e$m汾īȿ%/ճ׫",;v=w tzE>y(Hҡ'>o+7Bp}:xb,y࿖>'ܱsM M>K2YC(:4Ic9:x[p95c//z7xH7ͱ[$zH9efk q,!>D_ kb͎(6l]kk=bB^Keםtl٪/l&x3cl87}9y|ؑq9vilUV)IQdZmrQNMQ8G=D9zsJY Q/4N3[2dkr K6-PGioo5qy{Dg Wb2d2pߔP˅QLy<YЍlELVY}4͜˪6uԋO_ оO^wb.ƱgD$D:B{z!S6z.$5"qI-BkBQ'ȔH]!c6_^:8ɽ岙i]W,qBMmmEٲqvS!Z%\ET^5$#1;/ƋԎ+QL_4٭r[$v225xtK4P$4lآv%' *#_z)E|΋$qKA;.ߓ{;}~h"j6ZU/cxE+BCw$hЎ$_"pQ*ebeO"(ziwXq;t5B~YVRʜ)mma*a8m ai=jox(t6o=8F>[y|>h ѼPLO]rT?Ɖ*%v*wd$q>N"{v-cfCbQN'Z;}ҭX:66lpvn?"6pһ9vMtEDJ8(KvNrÏfqOeXqBK}<{[5XF4l*(=Yy(o$;$RX]63c4Cê4.]I-D^E-}SyB7CLt;(MGqfmt4Fh6;%ß54\MؔLpsG{sNnW;!BebQñ q-دSB\>K"B9"/]J,{Z,m}XQIeCƒvEl64EQ/Ȉ#w+dxVρN4g="vsg+ ëcrD7cCK*Qf6Z5 9Cgo6h9px FXe"ObQFx^-cllGFȏo7;.,_ xHXѳGB{9䇑)R$2>EsB/I6BlHHb9R]a󍞬~])skLc%^~H2?'p1]OL^8zSj~ lew!fDs"I>,SZ͞eϯE{7FXilUax]24z\>TPmQhXQXEkkytZ(^P E|N*&gF>̓} ec6.RI5B>*ir+png v/G7bshNQ6Tv b1~lTq;k8KL[\˂aAY;2ƊGcNbhU]YI+8>B_gK+ <&h دC2DpHR(M-& 'C߽p*25lWaƅgѼ9oPm2{'t| E3OX.7b'YK>xGݭ16N]$Ƽ bE<8t6BZLbL\>7/sS]'',l-Џ?Tqin1Qe,k_, l;+y rѴVlHLgE' D&ƻ4Fܴ9=剮:hK赆*,4YkRc "dZ?>l>t[LV3DOuH47vX۩5VB/GMhhG,K%*"e;}[!XlQg(ގ' ßgyM HXkj\vMd%W|3Ť!EplVW6kdEYM 1cxitBÓ7Gb-vWE0bUC482B|EhdEboxEoG j4fkW}r5CRes#EQXve^6Qy) n7G4;b,;|KUxѲXCg29᷈RVoTi;681K+E#dŊxثbjJƼuߌ1,/'䄻1Gy5vqa&nؚMs߂4V. .fw̻2hW]e BI*>=hEH|xRۡ]5Eq^4\zfFlhH"S*d88O  ꧉/ſ8+xxu?|.1"ŏ".]/Wէ+ǜzN=DmgxhdX/(Q6rѼ/oyFx&;7cXpF_bjW8w8l 11;glPL8x,xġ5b8k9Hc2~v83C]ҡV%$Q5Jj[CLq TFO*Z*cg?cbx5/%fm#m {$,&ȩ6.LЋhcyb%J)Zh|?*Eeb._!tϒ~.#Ty%g+"OJB74oENwI4Zǫ@ؘӬmd\QeF44/(5cx]boM DlSg3d\{@LsXhTDU%ñG<,S8T9_cj'Kz4pڔeE7YChi!͕"( 4E)6rHcR$9f&?δJ53G?[V-4vŇBhr"ʕ;\M"/1 *Ħ#Xf]k $#G|s*[Bng2(ߵ^/,wOO)Ec^($h4O^qkq w)l)5iKc&>BV8sa xʕ͡Z%DV)cG$zY'-C%Ojuh͗֟tx m+j՞rlr2(}Dd{9S P+odoXY][<)/ōbYL]6G9QE6NObf9+x]Jqx}F9XWCt`WF&D(ylb iYwKċ6ϾÕoR/6.]ӎm ~N}pr$T?F{I^6z<kxvhMHX;Gho lIYI>%멟 }..кo4&SxZ|LE(M6+eqE+q&4h_.q)'lm ĘEo .$"QI>wwSX飺8>)ƅ;6+ňt5Z zō thO9?q*lx;g1#M4&]28wbj]9x$EAcFaF<.!*F:sg-㘧Kz=Bhoܲ"4\K6 G#_ gѡŝ֋uT'(g0Fa N}gЬYChkfؚAWBO]ó _G< #t1=CP 1$Od'߂~e/8ͪđ?أ'7"qRsNQÄm8/ЊƅϛG։%Qt>/Tk7QB*%l}8P~Fu+JФe N'r+.ک=Ep)ܠQXVRhN_l8^1|1Ы-bM8蟑Yxg̯Wsx5q3J=-Hdh¹#hSx^0GۡŨ76V#M1ľoL(wEA++(hc4.$\GY֏IB25qC(GS"ְw~\՟;,)Qům $71]ruʅ /;,wbkzˢJ#Lv?lF'ltXlv5kd4.XC}ѣyxNzѣL#г2͔.Q^"ѼN:D=/YEaعiʈӐۣ5px*hJrMb#lvKQī,gabi:+B~yi˸l[7)KT$6pg:N3ѥ/I8%9&~A+)W(I=t:ō2H("'- [/Y*=66Hlx;oSV_ɩҚōߓ2a1Y(?<]s%>q"bH'/NʐZq+vr鞝i~g2w],6~uv%uvpw489jN)qA֎\OQ~g ӶCgiJ\a>^D4~%So\IڅKE)_z8^',8\)q7s%v!ٗ)qNJ],!'!8ֿЧPzlދD4;8*sRP"ޙqrϻ6N˻}B{G8DUI˖pZk Qem9vce!>/(s^(yO6|/8ؚ4(LXBkckf͟'G/1)VYӄ.]lq8m]N[G?~!뇯eŸ7(ι|^On咾#NEqBg2q=BR>'U{8~qc)Ķ'M7Li$S.}$yg yYԩ4A;Il~#Mgcb;Cog4l:?-x%Ýeɾ[D%i0%MV ;} pf?%yx!./pETȸwXhKCjrۮ?"!S)6_Eԋ$/|<M?~\H1xXx(ۢcB+sC³c^ TO[",>^}#6%sMؙ]%U8MK I9#>$ogyOod] y&L_7؃dSF~67\{8kҟJJ^ڣe8OT췱|^ .üRgЩ\~%ٗ37Nķ฿Uep%ƶG\E&s*'e4| 9Bƚ!!K,)|7Np8{~"*g4bգNNi4˗/yhDō3vT^7 ~uC,'riVVYʪ 魈)eT +Yc/;VYM|P좽2[GKloCQQ3&[+ Cebc97Eؓ55hlykEG|"#l筜|TИ+w\ ar}З['pd%!C鏞$7J|Yzql{l& v"c62V$œNtode ʻ{֎3?"KMZ#zBB}HbrIB'ÒM"?G3BV&M"Qg<b}# ݑqv×ñ';88o/8)BĽi:S݊=,CxT5Y) 7K{ v^yEbVYz,"&hlhYxrX)ư'OD>聽3K(oВ7Cbi#,jV"2(>zƉq9fb(~n#/*{? s;ƜA.g;rdQvIBpx3Rqx1Q·Dp><5WhD!PPڸm:R8"V.T*EYËkͲ,cJи' x%7 j7!Wbj9bKIo'wd[ E3g2Ú/GlרV&J.Ɍ)΅dC5پG'rSb71|/"dPixh;E j_'m2OYhd*^thV(nclbBh̆c9VX!V|#]61Yob_7_21'=\E}t2. 3xcJЛ}H(*&ObC>"󘗍hYy=CHl-M8:l>Y դsOvIeKth8v8&8+ӣĉI_sKԞH]ÁÔ4OR]NkJ4\8*5Bͷ࿡FT1+Ì[c]"bi\N^d3V"tz5pcz5Bts}/dI0m=^5FvĻ5Sk#g\(O6G4lxOQqX&l+U/?+hrUGP~X6Apܧ&Ta<45N;'tʍ-a[delձ[tRLf2>dۡE]FoT'jب1kd =&~?%DZr҈G-:D7_:xcD+L뜃#Q?2 Cr!T%Do: 8RHo}{8sw5脻脴Q6_s5pxIkD+V/.ho;>APGGV.ihk7 |?蜥^-ŽPм"UL[B-4T/P Q^qx)#d]ρ]v$D+ -͗h]t'bnӢMSX+CccˉXI}EW=(1 t<+qLD- Pʫ ĩhdyJ/ˢq8=#E^"qI}5GDȍKCD My/Qd/W۟I}8Gq4ɽ G?KSdxe_BlNG>|~p}k=Jiswd/ztq$۱1xtY88+rTB.%PW}su S :r"CS9cdcoh;Vc9^,-$pxtDۤ8p= "h>_1K+eN>N']YE;,WYp$7Ȕl]5=H[$m4b&},S2:*4^(<'_cC巛%ŊBzsh4V3E=͋E-2UcLO v>=d&'w IYJ]fz9G/r7F-OKD>Wmv8.NO4BOcWvCg?)n%Le)9nEqN R<Ŋ^;Gj]Tl ;dpIY;$$'HqcG47q H{;4Ït+tY;{ 4ldx' 钄emB5 OLn(&:4q99"K÷KdԍKT!V,U rtFrĒ*I%3x-SĖ 3hbvr9ٳ"m9G܌Œ]P;'ÚkǙ#3DpЎII&*čbƐoh-w7Q9=.iE/ѡVM4lxyJ'r_Ӹ|cXb#\Ak$ءѬ* ]XCwL"5 񔣲 m=#Dt$4K G9؛G-6KӤrU OBo)>^=v7ܩ1*d&*^xDej,xd-_8dk|a5WDD;$\Y !E)+DOJ+De&IC_,Wĵ\*;'ql_۶W!kso$(V9y&4crV?1r>FމF2 ]ƖYB@a 4smN[eI[=| h[Ǣ:G ??,XICo43pz"ȏXٳcG18ʤ$W<a>VC)y8j$8b{uG2,d;Dh 9C/^6lW+ ;lΰjI&,cQ#~H ?CRD&sKNN8ڕB/|ߩXӳ*8HO&su~K#ݖ i1:qeO7w+ v%]>g}ׂ|GI x9qVLj2FJ;?rI3O +8|Ip(\LiY'=C,4%CNؓ҅I˰%%n#Hv?-|9VOv6Q4Vϳխ#;q?Bسc]Ė˻5w"={%ihR{9U=6p܎+Ë8dDž&q<#Ϸg ?Ώ$22cFʖb?(Uܳ"CE& xwѽ 1rƫe$ĥ-$ 0@P"} ;`"GxUk() zuǵQ\H  1 $yc[d 1|@&c7rd -m%NQq~Sic0; F%[&0)3 !Y5BYƀsy|B2"q[C~>IIMu27Mwg5=:Qه1F ba#R(5ia; $f: 6fX*"筷%{1#WBS!0.0ݞvfYz2[*fí;uY٥s@4 cԭtƸbc뮸jQzkP&r?#5QֽXff0{%&sKod[:]q`U6U5"i}q exXy ׬0 Ӂm|^^z ||aXzw+0cŦ"hyx^=cP*`șȝ1 s{F"jAfgkM(БAq6,Yfc;l*T B< [%š@1=2޻ME‚X.:x않 6L|@tTk0zBb1s,=HLb*J gY"L"A5c$|!{l*R5c5G?2z*|4oBj~(?[glPDA>q1U#2"2ar >Ip@RrY=3WZ),8}R^P11&1Ւ*Z?ȴ1Hu WvݚD^/LDA=z=P hu =cSc5c;- j avlx(516Ѣרk44lAΣb#z^)ޗYF)?#? kIbfs?fCMK=&@j1b3Dq`bL,PQ &5:0吰L]h&)E6VʧO+{" #uؕD'%mo喋c!5 givHLZ׮V"058ZpDg,թJ3_Лs鰱6$Ccҡu=/0B&&Czv>3!K30[h[;ٹfVܿ]塯6BDaJson<8'|AUUk`@ο>19dP ]f  [;g+ 뢩j=bs3z$;T0&sg;mȵV!qƊM9MJXp (akGX3 q, `fP:fGXu?lH}g͉0z3`{+4dЦ`윈{mR51cC6 cl~q G?h8 mosBYyA1hBTpQR]o;my8phW=Ik=jاc}䞘㞶gm迷niBL#|ĆξZlbA kEIjuٙ9ο]>x W^ zُe{dL1AYI# tDT z=(SU\L#fl .vL6z ݍ4XM4ҖMu>3JE]q]YEje~!~Gɀ`CFf?cBm׵XBwbv6`F"`z'`f$Bzz^1b!,;mŦs9Kfg^lB[l{$qaqƄi:fۤ T'kfC`|c1:bcG>ƺUz)Ga?"֪ $ƧPL,׀fd 3Ub"D/]Y{+FdY,L*+ o`t vm iY5\Á54.s;3m$`0cf?G#]Uq!WVUTJ pqG^(<_ N n.JUz"3`eq鹸fHY%Cr?m&1[a6A[&f>X:#?FcD&?! ]a0~z,Ƹ15oqֲ Bը"efklgv8 [׷'Ԁ릚kM;cޛ6 "6 %3o1XCtc=쌰Eȍ 5U#Pakj!P& !-͎f3:g!5;)-9:!f0^ Vɦ]hqHR8/Z#@mAgvHQxqz#` L@P@BcL= W?$wTa]4W؜R8u oY+8&1'g|*{1XWa`;Bfz3$uL:lY8 j8.s9?=.'8#QL͟3ј?_W+]qm'O3W(:qZ-a11|Bw8?ؙ V?m6m': (cq,q0r@{g] %-&"oghC/]5ag]ܗ(WV3癏&s $YY0ІИ^!#Y3Zyk"UsLhRvB/p֍Bk 1uaBA 2\LMp׬j [[QY?9?&cff{;'33=!͕ұj )]X]uѨ7 qZЌcÙ}{s1?a׬ ~OYC?fm?H0&z? fIWZ ^#&11fuv$h[lC,Lw~qas=rQ||fk;m3 c#+q?xqq#@HQ1?z x'ф5A'=!fDX3^\c޿tnްl<Dџ!13c?_|?39s15c͏埼Lt?|#v?'Gf[wQfz#ݷYg96fs3)=@X&jfp;&~ |c- ϶'=l?zO`cP??9KKV4*c=l #\L|??X:#bfLLO:?s؄u=gy̓l>s0FKE9'`3= 5 A3GF`gglB0FVw\ю&C3Lp"0YD/㭾qz M~s 'X5]X1TwV??oU*zJ ve\Mz0`'=cpO$`c,c뮺X&~5Osq6L`!1 t?{:'z=g0c}k_l=mklwp5$}R&{Sc`jWX`$?~!]q@=Xc[ 쎳O1bkcg?9z|cƺ |d0130F6#Pƺ=kM1lvۥVMVc|XdVVu ?Ƌ\f-q㭶-kz;u1s6qm`$@;fdgtAʐ3YnɱmX;_<C5נXoLLa  鿦]}=7!lu ?31315'`O_=4 1Yɛ!f3l&GvaaTgcdњuU-zo GXDb`6/u? qț{ &:(g?x#RL!J]^g93.- .!t:\L&1F6x, ]@@9Lb2i͖Mf1>g?ĉph-Hl,߼` f1ҘN |W5cg]GXutW/7v`Ddf4u]q0I Cy @Xz`F1cfg?I$2idUմ m&m+,q&k\0jۦ ca5LhlG15>٘ե" EY #ƺk; hDɳum#$]]=As0͝pyԠ0ƺ`d19f|G0rW&n|A1v :[w@Ov|GX>rXGq32@g;?蟡 4 nfd#Mu?}ziYSEYABZ uk5mb#=cd2NI`{bc9=30sz?`c]crF1z׬u)0հ]+AkLa Y\3vYI3`5+|[fc~ !:kY;Lfgok !lyL?&'p6f&1HEl_}"x6Bjf!b@L NDa0&kТE ‰*t##u`8?!pGCLk1\dr=Ҷm??c$7Y- , bUai!qh9 ]u0g9Yg}T/G[l@"aFY%UsQV>9ɉAREdף ŬPx:;LV3DΤ5?YSvM檸)Sљ}<0Yc yx鮺bc g3͌s!#  =xY;? B0 !@:3my&1YA1͈ۤF:Efc8Il^i6[mvƍLCƞz ^>>>^b_bbc_fGtJ6#92=g"d.qVf:hS 1{Ed5$@vm͞M]q33흻X' И`|gkf q3Xٹaw35Mha`?z[gz;ˍuq` fz+=:E,vٚ!mf4izOb. z?0}c9cp~LљXa:fclω1s$7G'rf` >sh>v+`9g|c1 6,'?DW~c=n"Kfb^.^tN2:C!3m5-]lH-71YTaz5QxjR!] 1XCC |c^0TٙC4=c&k(5TV&g#砽8} u) =G^:2F &cwܨ6ڏ`xH6YfR 3"8^JV]Vd11 c[* qbm&1Iu:&շ}  3A~p3w @ힲ&D OCrʡl׼A mų",'Dx%# @ Y "rHlcDFa~qmhֽ㮽cgᡰCOO_McYLB2Y16& V" 1eOy3 TMi9va`S W0;lʢ1LU:L[uwf1~®0 gvSoMfYѭ:wF !anܰ;1؇ D"Xa LVƦ6kuHC3ctHDCbv}w+LjELLk?xu=xbXƥ~5쉐ssc04A|gUmAĨ )U±Z;d?~n6sHS):n[ghH"bDnLaϙV  a0PbsL5`: X;*VUE.: 2:d>_.!AaT^s3yƸ#A 0N$0L †,ΛFW, 0̖mAwz0A6^ 0Dʬ"lpL$Hz]uc6fRA!DHa I2`g`9s;g?C  v'3$&> h`#@tz95 =6iL%nA4v.NC33gSZ؜Y($A`RL'|/Ab$:cP5ʜmd]p.z# 5sFC S5"a0ua zD8;B54 * R;=l4m6!.튪 f(g\8Hqh?TŘPG@`?C Dd]L2L  ]q1urf2s`OY{$ޚc&цʯ`ׯ<2`!3,f𷯷Oail6zQЂr/̀MaH,X&]Ez5dA+ M5cͩ:qMk6w}U, @Ņ2!AИwF gy ֦3qkbc5tz۬@:3j:1GAɎW+0X]ѕo -F%4aՊ,%+ǢJZh`2h]DWl1lə.mض=Ȅ/4,Z i+1&4x$ J5\@D30@5S 54BbI ŇGf?3,6&Ղ$ $wJelʍ/X`l ¶/Z`Ǭ\l(vYdƷ+\ő!++bу6FbboMáfj6yqX v4MWO?????05ơu0,ofb)CD`͉g?}LfpgR!RYYT0axˀPWmb *Jk 0XF5@~&CZRQk5+)V2edaZp+U,v:x] %3nyu*B,IC!CbcZfGggYF1Fy"j&ìC?'̃F1NaЇZlXXpW'b3X]1YOy#BQ0u 15Ϳ6o]=Qh-7 PL[oOGX1@@ ,ٛc@ cֺ3ٛl/}sv 3z[9 1`̓&396޾_OCp}c&0z 7YfsYy81&bc1Yض`j Fc``gia\L@ 8kF5s}6 &4 KxM\[MǭaBq^񿍔VhlЌVU Kwg*3ɀ+d1asX&-{֥ln5UY]:)E3αٌ}jA CXLlz3L=0cnb1d<ƥVSb!\Lop vcEH`2V xYI0:hϵwZ zd i\ṋPt raVU,D - 5 NwQa`aG:(uesRbށ B E&,U&;c龫3&VD=W ;b5Ybw@(h#"c-RTF\NJMEQfAX\}ucl"fx֞e Y:2yXuD=Q0.kQ2U(t]j~-kK+Yd f!D e_Xhv*"0zZ cB[QyKZ%ƥ!2O -6c kX`2"j'[kЙM3~-VRijjeg-k{Xzӎ7Xu =Y˵!k'U{rh" B.1'L' іҮ M1daE| 1,Z29DL_EddN#5U'iLѕ[Vk30C<|~ 0+X 'lbƽew)*c#qo()1󝙕*hKfe[, S_WV;S ,ͦa- m1jUVjL3X#HCfCXt̮ڼV:05BBK00fL JM! gWE'>+V$ѲzLv'dgxg.yTfMKL|Se@C|_{iu\`PEf-dR%U #*S[Fuec5W f lB`k.,&&Éa6vޞ;0JYт0 5cR0[`=0 @j낤ԙ,1mJEvM zP;߶ߗW[LwgrqYMAYa笃}[&oQX+ŮM܉c؟gKbաpmQ5eG;5{*qv!#g0V;,D F*dcRd+epbMo(9]4&qLH%@ LX +1M^Ņ1cYmIZJDxİ6h^m ?_-{LC곌ЦIFš#hZx\ͪV@0Ʒ!f5ԯWɜc1FN% եw ʔ[EDiTx"!-jXOnRlSeʝLX*rS~P̓`:XW  @3 T@8$K-[,ҵe}`&8!!nzhb^Q戰O/_W"mnIkG?P&fI-5Ƀc& QbXGNuBiD0u`L9l ,#@cSDz!%qrWV98yUt/˵Mn,aE|yo̓3M(&' qՅ Q2BZkS4p`&:eƢˢxmO19͈m(1 ~o*d,1KՏBY(\9Y`b GeP Si6=-I]D qB@V2\kc4. tD\ g@tRY*͊lCӝ+W!.ћqy4V'&<1fg~u0;:Zs_^at,&j-n 5 f%NArIg?JGӔ8UqKDe^`X#SyF,GUMɰXVRܺw^46Y1ŶY@'38"L %g* " zD7c3 !yU 3nu$ 潹pt3oHyO.CjW̭ u4&,Gzڞ6#@oZ R(~ʍ͐rv%cu ٮ9e5}Rt~<lVV O~5QvI?6(ޜ6%?&"~qQeaWq!W!`N :&d2iga5ODwؓLF+1 ,ˑ ;1E3,ϭhL$Z,ųq~5ARvsyй>hHLnbN~T@y]%W0C10Aə<9QBX[ Lb+$XF`zے?^ңʹnD6%% /(NCXzY3:k+2d>slq9 Tj!Ms2Kp4+2zDercqN& X:Uvyfo;YI\2(inf*:ij谂1goje3DlZYl%PdPr7"J1h5]4Q:31֧9/q=[-MKme,=H&D'jy 2mB4X 6sږVa\=Jk3VźlUWeXA,r8!F8ؕ&DW)`Lad׬x_h_kЦrI75aұcŨguja[jk\Źlч^ ;IPcXդq%"41gɢZHpTCƯ"gp{ٮ `k!4&CȶQbA#U,u gV?Ik2wwIVX ;5Yfr!]6[V&j8aY5)6F٥S a10CZ^<3INV&SǾ,'C$ƕ<Ԯ%UcD 7Ơ4PbMˆӆ+HME9+,]LXa`Lؗ0!!iݺPvMV1f R WӓR2qI'+ olCQXաS`fV0uR.8öOr}V5x0Ō89I=VǗ̘Fdb9bYTwmq Y[ǺCx z Ю4ZfEaU_@`m2@^$;DS+~{=s=v>i E `㪬x=ՃZ@zS 2_wH=ɰXGWVDbdCrlVM+LYk,3.J3D ),:+bT@yt\ś @5 @PD*.5(#A &}[4S xln;[A[c322hG%z$ItvT z @M5)t//XB[T܄)ZS57%!0q3 b?\;6][o5[U\;zy\`˹ ]qxZ%x//Ӭ{\u{]aw~o9&:8PFSaR1aYv^ _VNu^K9fǐ^t{pEGG$E^`;dR#0hg9Uhc4Ɉs0V,7K%aBFtaoT:!^+\.ˀ BXv*z^ joBuM#U-ucR~z \PЀ0bu eHJ-3kTf2`#) ٬p=X"4[Woԯp'52:rč5JU2KĆ`¸x`ή(a++ ŵDjuJ є04&%`()үPn{F2 e/{J0FrN=Z2ġ YG PF0` 0|i^4T)4%aZXVbaGp*`&J{1lv<\ +jM:ڶYJ Z`ҴiYvY3_1*,WeY Dp" CD/BcYH{Z//V7fgpZ315^EwAtCi=Ju ^,@C3S,bSiaz1mH% Mim ,XUVǕ#+qď`lbdCxTƷWVz5LzKu*ebqUYMpʵE])e(o]PpB^45UY'm1[|DK$k=.KC6?Сmp![[)bhMrVFiLgb[yU#L`F4·. 8Rk$a1 bO + b " aֈ /JŖL涤IhHt} T&w[BA!gMbZ2~f:*6*X0ge*XhƸ]\$y04i D=YM|_3쀉Ǖ<{x㦂q3+7NqW_!b,f. Ε&aPQJ%Yh*xX0P+iI՘,Bc@yg*:Q܈Ȝq<|>͜Ց]Ʋ) ω [`PWc c'`cK @P a;:0C+5/WDV.VY]f#XTYHE rq^ņb% ˍ<M."*Dƣ'25Duc+&ЈF(Ei{/S\DHl%WBPtNlhEgD+MJBsyk\{kȢ=C\۶}QUL~#q,i|au[]sK 9>031&XPteҾJ,^?y(_&E^[1`W.eՑY =-U &0\,*: a־8L0aՑUr@\վor! Qqlg6SNKUAe`/FȮۂBj9k e3<'mV-V= dSdۆEP7L:3I?Y<`"L38Rbk -bX`uc5qiF{s5Tf%M7%] |^LA j0`=8C 5k(;5He glohk٨@FJ"DKP`K5[tKX^jZV_=1Y#V8()L2-Dی^Դ1:yߙ;usDH۪T72Իm\%R7vMC-jWH 9h`hBb/3[9S9䊚cM=Ҧ}@$EK讼+ǂeO`1nȁ@T&`nT#P*P\1xY0 7>JU|[.rrUuƏ@$[cg9X,WrhO=\MyڞJk`FD<4j"K0\mo0C]Gcy3{Wُ:D؞5!VCxX#7/\8ڶٙERR׳UhBN5¼V0. ¬0D2"!ǰ)ɖiZ<2'&*G=b {Mr?FꫥJxh,yƐ]ܮ/+ɾplX{v,y znS4ffk*Gﲖ ̕,k=\d@hW*Tӑnju8uq?"],Ma[mRO 8X1 &g=4l5,rF-QO'ȇǧp 4)3km~WDa4Uu m(ϸ*!5x!yɼstpGfқqN=*'YeBRlTPDVv)2yU̮֫Sq+VBD5oH҆;R)RbKx)׳O)n6{zmE~c/UM-)bV&Qtjk˧dK9S?1V/#?VC_sN@uʣgDDQ\oiK(ZLe8,ZՆ!j ,fn<.σx3Ɋ۹;0Vgܓ2蒶e DΜU1m}|VsCOX1> Zl cbUVoj /)‹ 0tWK*9?-ƵnIڻ94yũYI]Ѫ@ACkVb#Mx3^Ê;8' QF~=my%Ȗ~~_]Ej~-d''һO #MHZ+T^=o7UX{\ Pj'Ŷ Ug"T(Ա" [@h) UG@l5)0 %F2kcxAdvcChT޶ǰ[ųRA*BUؗ+yg8\ʫᥐJ5ڞsoMhq (dGs9|KXPwe{UdtYaMHxr.FCl(mAFv 1aν~QhやU ӏby ]Nr%vԜ.=W4JT~-+cel_q$_%mRu &4>ƣ"e?m7/*l%8>KO)y"dH<B'%N B[2Apij,Clx(=O`2+DO5}/QA *0?ćxVMvX r(BXP6d{-l+k2`ȍqu%[!{5{WCPl,Ll{/䕐X&+mzz1#[!#whIk5%ؚ( ҶTP!qDJ+{dGt[&Hd mo`x3{$r;Wx<^ol^_Wџƨ~bQ$lż""|1 gLϡ~_ ɺ alX %DBB,e䈄^gǧ! ^D1/ʒ޷v?C,?e͏~MC?#ڌoZڿ}=|{[~4˜ h߼5/Dпq&4JeEz)fW2[/K_^[7 }6|uo-R0=:c>?3d,e 2Oj<Efp'hQ%z3 H[!~ňCml؊|o؅ЬmW*oe?/7?l K\k{=qb /i"k"lO7GU5W~|r1  t6[hz22K_dȓ~4/EmBf;c([!oR"\ ԑ4Gd-1$Rl~,Q|Cي_3B4?FvǪ[?PBy".D"'BmE3c-ڄ&dT!oe َȮl~lh[ɍ2~ס%HؽhkCc ҶO."ڽ [!1"65?|Ofv!ᚄma2C~ 8goM/Ց(HFsKR"|f?d7_I{GcC(&BOl= >՗% dg'k1vX' d!l7y%CoddmGubE+ݡ=^D^ط[)La""^fofPlC1Ϧ"! lս׫~>= ҿ2 gcDH{!o/FFɣӯ҈x%N|LUlDl(T_}{$|zWnKf1W%Cfm\ErVȏnB^;}B"}ƶd$|{?e1xh<~"/Ȉb^M?Vm[vdxbml#t-,i%܉d;! d-tf(^#ȳIu",Bڿ;N?x{W>w^:%>LQ[!~YfwBz(tgc=£xdkv2E 9Y~ʗ#ث7bCw!5> qd|ur)"BG=䝚v[~gEuk}tg?BI|m9!=#Q{Ijl魗=#5,Y#1w{|zЄo_PucIY c'܊/DOnB dc"?EfGwDbL1zCz+џe ӏBfvcRj%._[-o](i*//"B>/>b! du3!zw+IycYKjXF EzqP{!{ѝ $Kl*~*$l OyV7^zVkݚ`Kc}c޿ngEm?C[H~~ eT\mp.(>ھ߷^4BCHlbQe"6%g[Edz~Ǻ?Z[^L~"kXb5ދrLqW'HD˟J2Y*؇sLQ7&%"%RTjw+{;V_?J[!~|~U Կ`E/B|І{ogd/Ά%HfUlZ>M8.^++zճݟV1¿hlŲ1TD\c9pHl1K+$f{|M#ɧ]/C;yb^{/{^xd#5HlώGٛ%Hk+\fϟEdf.OM_н В?@X LOuUl[c9`M1/gG /9J;o'VtGߣRiTIt!S6iam_Ev 2^zPю ?Eُ{ߧ-{?V6W~?X$}RuE#kO&+GB"#y4!EvWڱ%f1lץj~J u[/g"%~ՕsTF) זvB%[|_w~'h?=H{ uB;6h<LhK! jXy=:!gU w+Ҷ[`ȶ^f1wB5ng"xcڸ^K`7\K[X d| ?KЊ=%k .|dn"gϣ>[_}F= ^Bou"~=فl Fa^} Bd< 2~I&2^7>DDHcU=6c\𽟑/ke_ O#L}O[!'ew&XD^[eZ¢q|~?vc"{|߮[O3wB$L=^׍쭕 tg"wʌ,~v^1."Va7]w~/ؿ$ŵvi!!¶[KR]$ .vC&L}BHc] c=ݡ7em*׮5/!zl[?<݉z(cKjg__D]ĸ_o=B'}Cq 0gLLC;)/[/;Z݈mSf ءV:/GBVZhf= l(fI>2D cB-e/S3d/WɌ{2ռɟ{lKcL^==ԏǶxaPnc~eMƟKizcDH~ɒ|?~z0Woe|=/$E2dL~Wt!zwH{{=l[-"3b3Ȅ'E e|}R(kО6]j䡏i_k<;^=E|zWj!>  O__Wed|'f;_]CȐ=6DC/Uy,$Gب&<.VhB2S Kg[~4!YH[|{Ep{&`+;d!z/E Au^?C" $VNC\3Hqv>([mh%z2/|_5"!~zzڄץPE~+|z/_~FJDlc/BG~ץ a +$'Uϱ\csPxmB~&8lO( n `~ gءuLI7z+!ggW[/گznēgc!~U~Φg^;Ț:K2w٧ȅlIrQc=d6v61">K\3;xjBVk /lQ!$=ҷ_95/'{@iOx{1dzٟD~OOX/!%6W)Ə"< HeG }|==ΑydPȫdg"Ld;%o?&s~ r[!C1kz="?\$MA"!~!]W1 d[DȀ!|M%;C>K\vdnoĶt5wȬ<6ɯ,U>G+Ҋ ҽxon7E:C? 䑨J]2kI~=4|RGdz;#i&w%#e클50[1"2GN_{!GaWVb[P|\uOlv7_[dK6+dE-Q\`q&?Sh{4xXF /DLg6E#vMw)x&K ""4P|D=,d}L~GO4b#[/ץz2"O֙|2^O{5y[g-c}Ѩ=&j,bޏ\mLT?ʶ# Wl^=t%Pg׭KM#!>!CӴxwb>6~ķ{J۝/^F/"bF겋ٖ(oyp|~{_rgؗua7b??~ ^ YWB` Q/D k/tEl ȟ%vbٱ&KB}Y+cj3,Tq_rWsT%]?Ry 8qrFЅ#S]2>_n'SɊ.f~me譣8*'e_z>7["F`d%n3L]V'_QE춯fՎb|ELE e^h~vٖ!zSݎEρOg)EWq'Ț!Tr6uX> 5fMؤj( Oȏd|EM{ \|zo6I ?CuNN9:Rm&kjNj,]wDPGʸ/h]N^{vC>x-=ԾJ5v_ tj3Qs_p=c4D~Iغ NhH,Xy{t|mkg[2t#yӡl|l ^{2g՜9~C}/D5ֶ_<oR{he -+$GR/jVShdBvDH}_MiRnYe1Ӝ;b dB"j*̿3*;{"7En];Xf[!/6"<'$; ll;/ݟ&ŴBoQd;5^ [W (B[V[6|hze czDy=OQĤHً\ԾFnF5'5ҍFi t|Q*,w/~U^{V?žϩ CYzEdOo]!y"#IñIn^ƢXcN0?{{VhlEתUK.:ť(dVY5" JFI]_;-Ȣ^+B#Sbg+n%*>?5~+kTq;ߩzW-?LBډl^D!o1hݟ^g#(f6OɌ&%pcօ䈅/F$;ёmBf;5:N͍FrjHI ɫ Ac QidLC7[s_ 4'^R3~M_&l[ɦMfDݏ/Z> l|lzV{)w"B-|Pv,GmEW;I >,MqD~x#'+n-%ُx0N>[4 E bcQBI! y$$$jrA> y;-{~޽qԿR/ ==#,[#"DD#j˶ 4NELxȇtDqFJ6Ѥ>M5؏7AgEy~+-JǾwOedldwn[VJem+,vJ8>hOi*hϡ ݫ>w|x٘1%zeHwElddW1-Ѕ'c[*/fI[_q(Qdg1Fx<tN+5{"\IIru._$tG ?_%"|D>:hM[=q1B7oIᏰ>Ǔ%ȶg/76-,Ķ{ж;zg{|gȽ{$ffBMkN{ &xė%/䔻GM#:o"{'dՑWf0HHh~u] ˑ"6\19l$t4JP11zjR5W5r$GhEw[""/ohd;1Y?#Ol[gvYf50Qd{Śs0k/s8*F7!YHU?&S#Yi'%d15*lLTtjl]6[gO(W H^^uFk9/R/Sُ;+v;/vET΍[LKu,:e<]M4(MGlJ}#i&Rj|cmQ܄QIIk^-d{*QA%[J]Uhfd7Ic9]8<2c.r2MS'\DwVN򄻘M EY{j/|/<}DRY&J2^E]JvK䬗܅WM[IҲ=<B\Xur^ B#!5h쏁ԹBf?"_Byjȯӂ}\X}D\[>q* 5ȄWMc_ډ_?#-DKݷx=I5ݺ%ҬdoI<`Y1|m I]~$zV)@/y3cWa؅ *vȲYq|$2?#]|3?+&j>sɃdFy?gd #}C{-нmgEw3RDюLE%LR)?J'nM&jF]]](2V%3M pIq+ F9䐹QX>IG$;=CM#: ^6o>H&)w1HX,QōBL/E3< |pcK/օ{xW_(LUxK_"(b ;I ֿ ufg ȶx @D[x+͏wiQ' lپb<r(?=;|5dɓS%䕌w/>~I>H LDYrEؑ; 3U/ѓiʿh|/"!yʿK1C!P"+Dz$xf=~F>$Ovc$H!5 d.C'vd=ճu3B пnC!^[-{c&M"GO' v[^oF7CrGd?o|?21/y"&c-K>}9|1"$vh^wEck"ev~}/::󲬑{XOl{1|H!$<H"HkdzOr_䏑>Gk2d<bb D#'1yK/"x"D{/BG4D @""$Hx4ȉ#|4O^OmH"L]b>|$=Ou"g[ءڇFp^ɣ:$of2D|$Kc|mLߍe٭[WmFﴼ GD cCb4`L,]GmEBe$L[?>c2;̗PBq~+-з-/ݯZ^և|z(,ydt%ڶ^|mdDy"~:Fll/O}L[;ɌhY[uʌ:Q,Xr2^Gxڇ׍ >嶚',޻Άc:-tȑ?;{8#dJ=Z'ʎ +̘%"ޫvؼ]Ķ{Ǻ#ٟ?[_GlB%܆ُdL~ !~;$ؐ v*!H$|ȭv]m+nc\6LbehQ(LImeϒiэN&6\f[RX3D(Ij\n鎰X\("+[$^}u{&$ΦΙuY,VDB۩E dRV1$dFh0@uȇ[@C/~jbPe숑lG{Vdm؅2Ŀ :v=ȶkh1E5ۥݙy oi<EHlطCKBڭ?Q,@Y&DR&S'|}fKgUB)[Q=hGSe;V[<;=[7z$'Xf03&B| ,~VⵍJh7[[4S&ƌ1LwB$#Q|" v^Bύ[nZywCpc"dh dbq伕3ɍtCMce׻ љ;V<Zu (! d2JYՊ+u$?#b(7]|Fv$g(O.8J8ڑJc=Zِ%U,|mȻQ| Q$9C}ƶCr *:nCJR>D>Ȯ$"/%BR,T-;Y~Μ/Ew+wli1zgȄ/Cq!!Ez>z?7gHZ++t!]|,rxG*#P(d`!WviǵoA]I1*=lvGFvi/j|RJ)*gOc0M/c%{Mّ/kb B|}'OꎗMm{vStH&dvqL?u*gR_P1T)Y> pxGI`iU?"LhC pB]ȮrG-ٲ kwCُЖ,,Ez(]6|B/l핂Ɔ36^S 큌͉ DNuyI/&$1H`-;^B;1Gx'Xd{b[{2X+kDEحCwLE:fZ&vk;y-h:{r9ʊU}pwsUDD({6Q ˂xϳFnԉE^܇I:C\hu&Q{n%,1ʫ=[tE"جb6W{#lmHv|2by'{+2M!VԈٔX Er_܇I +QCe˨ρ2{]Yq7Y#F6Kt\"%g Cl} /kbM7:yB&2lSq<٫>#ʉL_q3^#=.[_β^J n`hNhYny]*OhÏ^~3 +ye(LLBҭ!$Zj;_@"&gX/ |\1&u ilc5'ؾJG]{FtШvI|n2NhNv4m*$I2m~z$ɔhl͕e"{ fDJYvJ;(id#|p$ί {3£NWDhQUb^.{g'\D,t 1}x2\pj7؄yViK5LI{WVR σ;Ž 4u~P'lhoژFvulR065ٗLK(|B't",e5-%\BUL<m+awȖ.eϩ1odvm.h:L-!=ǥdͬ N0?E]W"^3pR0^":Ƚ ] PP>MߡtB<Z<>58EFmBtʻQ*jo%mx_9ӎ*'J3gDl+J?>dyL^*Ȍ=ȏwR^H1+q-e rPاQXcR:bKd_(MR5)v;P롌&47  ,u"2}E(otc&Iz_R4t*w~6躺_`rޝx,[J/Nz(R%icl zlSJ/]EdN:{%tħZW. CW/^DCv+mk}X$'ղ(3hj6VyU(έBӔxDI)jz< >6VYܷSɁh-Y>!gd"Α5HPl[`ԈL|xCNHZҰcLB]HcC{6=ue/B#B1 {2Cڌo]"zcY [$ezFvɱ{%E"M'YcD>.kfN)T %?')(b' C~N ݡ> Scod84i)-HqGGI(ǚJG>’HKkf)*|ٍ==m¥e&V*EpLMS){Jڻ,^7{:M Ϫ3VIv)d둙>I/5#ۇEmGjIՂ4 {(hq۽qJД`{lڬ򨌑6;gf-{2iz/:(Ė0KcgX'C_ecj$;obNȒ>FTtG*^vJ^bR]Cml!L`&:[!-L \E$_CbfvU_gGH7.IvQZq(EQ̇7c{,ǵ-QSښ:Pf4uS0*'V\ohC[hGd5T*;FRY)C0/NEKx"b{#[Djiv.8ԻIHq^ l ˕rVKYN=V%l,y魓&VɌhc3[X(]F!J[9JD-]8Pؓx'eD&Xԇ$KM^TclV`LzXkM$ܥ;gV54a.-/IBLc^WWem+܋UTkj#>E iaKp+w[!p/MuY>WVq5_ti>BKhM sQxn+ohK<B{urG)pI5IȥlODCY$gDZb+ҫ\rOɝϡm[A^-p@#|molDV=1 k{XB- G01Q6!ly%GQ3][QHs1?kK%U 3q+.pdxȽQLWNT=mXe\ GB,R/g+>ѭ==Ol[{ikkgI|# -,Ӕ|ON=E M.7cTΥc]6RuzK3BIQ;:GW+}K%Ȩ_S%Ʀ8*#n-]Fq 0TOox)sjeKf=0{wg}ٍϡ>+fK?EDm{*%ؗ}z%1c%[ӟ]|3gO"r)p>v)#t,K1I$1KklʊQܲ:ZRmW_mm :o.YFKA/,w}I+YNHZB*r[[;`[FsuS{_ox2;QVJC}Shi{$V]De>{-*y= j7^_GWF28NHcѨu+QWu'1U5#:fN32ԢțՋ~6Ȅ--elڶ{L}TNݎH=iqnc%c.#F% ZwB{̨f 5c4P:H>N"K~\.B+:G/~OevP}%ʆv[`re*k^ԓ[--z!NGDoKQ5*J4Yԫ~dMz(qrD`V'vֶ!}$iRCIw+J+ :uJ0K7Lr78rĚ=G&n>fvoòJN=OT c8QRG2CMԎ6PN9'Tkfdnۡ2j7ؙ4iS48=[ۂWdzݏOl(f [)k>Hdg2ny"*ol0$dV"ف}Tz[>k=Mbc\f [PM x&-G$J_)t0(:TPlclr5kZrr% ;2E-'NzW(ՑΞ:#,fKa|CM]P~Ձ6]$rq\;h}D*qϒM:y0Z"5lcq D\#.uhMPYPV}'TZ}ǧ/F'E%i(uD+h?C+;\SN/8?GK=雲)!,xiFEAE[-ս2QJˢ>x-pW$o(ǥwCڽ dS>d.LhB2~ x^ jqc"bԶE+"1c敊 G9z^6{:tG-kԚwb/j~Fdd0\~GI +loi,Ip٨'Z| SZ5bi{TCbhhҏأf l`c{4穨sD"M"jLc}K"VILl (JT-"BShǝ{fD{+e!oZJJM ױtWĕ_Q[G2DhkݗsݳJ쌟U j:U3[3d3Q QD_z{us^zge( &Mr[duHl-",_&wEzyw[K%z.&)D-tU!3{_QQ\:}}dz]8}[tiO`RMe%Ʈ!G1GIP^K#R9Dv9VMՇv탦S-Sbjd>wdl?Ռ5Uu'cINP%?jkOڎ4t-gEQZd`sqYHYd]!'?gyYrϤ{d`CZR^tE7CzJ|9C(Cs'[E#6L-2,7hLQ8C3-oh>QFVk̽Ļct!lţ`ϭmw.JC0#k\<+ж{Yr.'\bbȥf6OVE9Ȏ#4I=uR1 쌣4{.Xc䎞WfB4b+ meG#E4!|pvQkON%/HLْ/J+OwI}ipV9hu|yOWRn4=aLz)s+dʅw;6R!G9/[*Σjp}tL]$)I f۵3_H4| gR+%SQKZ҃%l첗Jv%#EiR-2wgE:l7ϥYc5Lq_Ϣ2j lmcMdoWШ(*BCQME;%*>G}' i(YD-./}GӸU%kCYAi.{u_BNUz<%ս^i|3QI#_sJ5:{?h\%;35nod+o_K ډQG)^o OgN- *.H'QGD"F %JP(Kz>e}whLqW,/]b>{?k<5/-PcJU}hWr'MeP᫄&I7eHǦ-Ed?">bfvT$3 jCݘ:sNv8%/UJ=8dbeqDѦȦ2&GЯkx͍"[Lr͚dj0dGL/DufQ-9d֤Vo$Ԟo6Θd.?6Q(:6䘮gQ!K,GLbV,GV,P&'#uO뵾!Xx)}#U{UR}%\_f#9[{8HMHQ| JHblSEnf[2ȧsO- 3NKpэ5c8_?Q3GqhdI_OuCIi1.C~զѫ ҟ"jEGL_jМtPX-X,;/\rx3^ <=db%u-%QժǦGɌ+fTmxBrY|}2E"'pk䒗L$\I-Hcp|3yO/ KǡlKjLq/*i?>˩9BBhՉD7o~dӺ({FԠ$KŎ_W⎳;i섙-ES0Ri ,bhX?tBQG_2M6lPv%~G-<e\ QVznbQqԫ?>Y$SKN2]#piXxf.8,ΖTEU^љZZߧy:zM8Ɗ02XqXxgз;Nnc{j+|gfĊe#-Nj%ԗz%X#Kt_&}Qt颖y6f3bW]B/ك%;$;c0dqK~4)h%vK&ltP*9!Em (f -Dt8i?[_{J[;] *#T(c#(TIX +;Qf6Tc{,}ną ԝ#OFsrkv—қ)dh3G"ԃ?PE1k};N5>\ $F䜓!7(]0곪6+VHC1`q-! Gbn/Ӝ-b==~/%1N6"$ύ dn9>?ԨOΜ Cl](ǣmWvhjX#J:_'Lέdu4Z䆚E1x< h&P~7Hq[u}\~(GvR%)d{/y(V[u[;{6{~EiA|!)׫jc'/ Ǿ)#P%t{>5ȤtFqOZESfJHZi!٩Y5C&^ WW%a_s7FHO~qdutc(=:^>wj\ݟF3銤iʶedkgѧZɯק>##؟OY06x$x)K'&$)#hqzX=44VG+= m)&sdhB{cJOѥ.V~ -?El4S# r}VwS|"rzןUյJ ƋORꜿM7!-VQ[yON^$y<:H!ςCLPXg?lǂ%X$tCFJpg]?ENHj,4ZQIP+R듦)3OSF9ޣF ,gJWG6tKNI FlM:>v{ty-[ٟ[>n (fվ7[N2SYDVI|'8}QP}x=),ԸC]Ot/LSm,M#WKUC[ZgV/"y4?_'=PlVȯCze|mCT5G_Od2=޾ 3+X\H4QJ,[֜z̊B2==955/$ISWN(a_F_֎zϧ]< Vt$LɑGt%٦W[-M9SK[_\~jG#iĸn˜dբ3B8$O%fӌ| ڣJ>(x'Hɒ=E\.I4?%ܟqjlY*>6_~ oT$콕g^YmOG{QU Wڲ%GjiK>"J%.h>8.4iGR-,sQ&iȤ RK۹%k""q-^Um]L8P}o1k Ct{_dGkCNWocQj.),khK_I)(k`ԢqYN%&"gD0^JA¶E.H7cV)#"(iCrY%lKlj)#b"biIpu٘?{y0+q^Q8`'=Fx :dXP-KKf\hU$=;t:Ѯ(Ov}!uϧuzU9TM>}QH2;Pj']tisE17k{ޠQS"7LJ))zt+te( % cVNL&̣ %u%W&Na;45>{N0])ɘ{=Nvi>J)ӄY{_*BGQץ(IJU8,\RKX`ob'6v!v+i±hRKd#)R=LqAƚ&`*Friy!|u nrǒZo<þG-EesEק~X&ޜosi|qb*u/d:_7(_$eq\ c7KhچJt//|Vy+jbY#IҶ{/C|!$')#,WΓ6:^fRLK'ZтZ*>7|L].8ؼSzk& )[4/}C /-m{//RۮT3{^ٖ5VȢu:.01OpׇrOQ=(K5hPZ-8茹2t8 BmcswhEd#1DX"LkfOuC$i$&сk}7pFlp{&+#8PRYDYD% 吢·~y^h.<#NkJZy5 $6:GL0.(͕+#8,v"bF=7ȋ $Mh8΋E!S&%OAwZꝍm>BD亨(䎥ZEׂ>icR|G۴tV9TUVꄋowxEiWbIW#u B{̘0' > ,RoGE-|+uK%SKl;NԌ8Ҋ;5 KO>Mr 4^(ǔD Je;N1²Kӿ*Brkh^:d|tjhETu數ěտ ҂[n;'8'hI Ov;tȴR{JSBJ*MmJZ'[gl /~s#ȷp>Eoaiќ GLhgjb f1{`~F%(gF6-^2QV!EעM}Yf* iŶ_G$9Gh)PПcNOAWa>$С Elh^MIr飱ζD#5$:!;N٨8-?uS-_rkBoZ=2JͯK{d"y!'>4TiK|~Expl֊5mו|Y{4hcmevݣߑn1#eW\HK \]HZpm%ԇ%܃v;^vTa p%_ ijM>KnPuzWB{Vx01UR[gNihև|ȶG,4*LIJڲ 4S YcQ.2}f7:\AOuMYƔRJ6|Y>pBN6C)R-uFN4{dHkPkȖ2e-ٓگz-Qd(D #MqRɝQGQbQ#ȅ1&n$jGI\8j`[ǡ%sǥ23{5!,ijwhzy)Grv!,OR#X{RJ{ru.IF:]C:ZB]LxTJhtv<(.D.#.j٩%zD"G3DHog>C&k(lЗOѢ4Ԭz_۶RIЭtC)K'FWǧyO&6CBceDQ.Z\;:ڻтk4c3Qb>D_Dc/o'b{FozCiѫ 3[I2N#IezmQ`֒,I C3"ݶTcvYCڳ:uS/F ۥD,L[2]E={YQf(:Q.&ΥI?M"QhK.JV+ix^ J5!>O*|3,fڝ=dP7.O Gǡy٭'_Ӝ+nZRcm:w.vڟuaI$nUc|8AhR YL]#?,T*+S2F:]}klIdsIV!4S5?󫪒^_m^E _R(ĊhHMv#'KD' ~]9bBlV$jC[kգ[4'OdQӚ-&_S>Eԗd|ȊO'W?l| SyaQ>Ih~ *cK:ɃkSy8*"юM>Q\ lHKl+enHre.t͢(\e/vY"ӳ(QUD}#ߦM([`2 _ sI.I}$5\lOd4"jo6zOOpI"0M{1,Me,ǵ`cbX^ f=I AۗDc5TGho5>DN6{YiGFGF:޾ =77Y''Uqu]=p/;Qbn:$):4v?bGL"ߊ^x3R(.8) 9bq䬉_Q^q,[[LM 1)gӂ$8x2qw;'Ȣvh;&hqPiGNdSu8 tC7bC:vke;iZo][vJ9簿Dv8|4fv|Fl޺2VPNรRS&:Tq+N7+k!ĵ:IR 4ex˕e;/QAJ$iOJCzr^ ^!z3evӂ(^&a#7lKlВ5;]=ŧ4:O䵽{=)jVzz4{4t4ܣVj;GVŕt4Du V9<dgeܢ*-mRdcJ/JHE-1Isޤ\/>7 [̖1+K1dR&EgVꨄ'x?K%tfOjhs&S4I&w`l9 Wb+RHRy2UTt#("׻՝%%Ek{EJ_Ϣg;3{D[B-x)vFJ:w%kGS+);-3Sâz>xGF{̊iy(Q'|Or>v$B{3St-d4x"^EӋ>I1&_# 0 {NƖ W[`B U5C/"q+g}*-VRM$YԯyBPD5cb2{*0Zdjor${ʓT'88cS)drv;n{T!HDFZ7dx#]]ElD|oO4rx*k% Nm$ƝzR]VMSYMR#%iըHOlqX|l>ެf6Z$DmBp:Vx P!M|+u s 5O 5=MqAe_(o붑$JQoB ,ᐌL(KӍvdHBHqFW%Wzld.ȔHl=BgjIK #bQ(7"mQ4}*Ng27Dey'& ieV "-q}ISD$Ӧ#%dw{?G%L14t#{f+l&j¤OFmh6G= )6AYT[,j[Y,ݣdt_g 냋jZMt:E#%-7/YwoM')FbF=%%D5#^3${)1#LsBG=B7f6!2[Epe4R̤&$7?|!EVg"nlE_ճOce+$} BԸviղ.|_uFjBJ\P_S$ݎ̎2-]LGOCKbR3rTYln-fL$b6ɦ2D&J-:'TSUC^Ve1ș {GTJV};jkh~I Y&:Mwญž-Pέ?dP,(VLf j/LqD%$%Ojdn/dLՔ&v>G#*,pY%3B:]9j/eDj 0S %"Ą'9?hߍY-)_"pO6}LdQj9e27c:4Sy${gc"f=1Y{r苤>yBI%3FJڝDR} OȯN],ݘ. ˉkfgڽ90c0)ϑ˃}mPgT$-h~䩈GR,yr=?U4g~fy)ܲX| 1ONI5. Y?RDt;SLN)Pkn.YkuЧ!= GIh}GE藝!Vġb&kDܱhs䳦Vd')us5[q>?RG\V&>L^iNh|mF v>ބ~8VDɟղ!EM"̙jX1g^yH{-'LoYbTđ҈HirQ%̆^.Q[x## :ir{b=/+$Jí}YxV8R2' xi_Q}Ĵߦ3;!.K^K'S&(LJ}gV=X?;1^F ~{SfW];)6Dz|ok<}UǑ&VzxY3'詞Lc#n蜴`SSVAt`LIL{-IP1TU"CfF.?LLhN]%ףS]VWLՏwZ_c)9.j)hկbgȐ 3;#N+.I=[VkO/9xD4Y'I3dgMX"uʨNWov-{㺢ث~1ϦAȒǧ3YcHUd]FF9$,|FEԄ`t|ѓZOMY][db=8*Izmy*{Spa_$[e vȈ$/Q5"K,"DƞN)u!'ΑӨpm":ѣB*w\2`bپHr'!EU&H(2LKd i>R*7}{О9|/ZcoGim!%wDfG|#P%ӫ 'e(EwGN,d#/_5v/z:`^YދɄ{ǿQghdI$*:rI1ĬTf SFVI?W$:dCȦ&ƻ"^w]oN/(]dMVҚ2JBP읣MǹW ObUep# Z.W .#Jݽ3O")؋1ŬX -uiԛ `2Rj Tcr9:ThfUiNm/IgіCE|~OZ>2P2_&dmu־GJxfOS~Hɍ3=bȊ;)ֿ2藔GON,8YE^˧JO(D1rOMcҷ#d^,!4F"KO<|-KtشK{BSRVfe Pi&x0Q Yoctdzڏ8ߢ\E5[`~ %X!dH$_ Ֆ3Geӵ2`%m%-op x0Pv(Pu6ci tY>Bڜ#%LhOquq:{a.;{m{t+W_8vl*; 2v[_䧿mlMjJ5:n&L{'!SȺizK++3htQ%.'Q]+k`%[qn[0y`y_ EhI@}'=r};ƙ4D)dVNQ.ƴj*cӋI4L!Pn Y,|ܽ Mxٌ\1s9ڤZ>6}YȤiuŢ%4$<3Ujt4:,GS,dz^NK ՁJ%:Hm '%,mZ= ݴQq' K*!L_+XݢK#(BVΨll孙![cxEezoU%=/+.fI>W;t8ƅ"/]b HbS5gl{Q HNf SO]`dQ(*؟{CٸHpݲ}[=DF}3KSBHJdlWc8.%8OGq(1g.bL4%Xh2#r(FEv!.Vo:5Z.Lǵdm)P (i)1>Lm8g>/K6dp(pKEex#=:sdϥEv[)ɨܬqbREwL~{u%oBbڄC޻쑒zb-~6F\l S%ฦdGJm}VӷC4xm_SO>6+'֫7=9Y(Gwaǹ->Kΰ9,Fق;Nݡ3ڌM6[)D5#0!Eإ0NC0FQC#{YkiPvy=?-}I[c_ 1'{Qwbצ eة({thN{+Ԍ E#?80g/vO\w Y#Z^8믑8#R31vܶD~Gk$wu=sK|v1e$/[IpI n2Mp:{$BjjϡEkiGJ|snWOM i{b|&G$ƐLgDBitǥtP{>#;Q|-*J?6t_bftd+-`f80ȜE(V`MChlG\Z+[R/De |:[X|XXDoRcۦE;3ݳ?2݌mfx"aUvU!1]F::URNΉZ:5~W{L+&'Lє{ C!Q۸E-_RG.{QCHQ- 'vDdWn"TmٝS& 0X+ҭ/"WԳR&Otӷ,N^X|&`ku+*UzfQ8sڣ>ӝ'ЙjȧVE, #YN/bX39КYӉ3Y/tg}U8d,[-070Mih5.;4E*h2u-B:t$m\b)"D۷aIC;+ D}WvLMQȬKQ߄AzuFkJgOy'K{DE%Q ;EdۗwioaY::k"ۦb!1QQvnb,e*B!(&VK%&Y$:>6ZOQL"6{,$*r/&nɱE&{FMP|1%'o(icd\{PpHn/0$)]ndľDT`BF˃wE‡(Q%ԟgɋݖ#O&y+IJ80=%kX)Z0>VҲVT;ǃP|LN3pSB.U\r(OډJG;cѝ쎩ߍgt*Sճ5+6"0t, =ɺC!.6K椏(;,zxX+QC=ڄ:~*hcx:YX-FJNpڳ#^ L"$' K mev"ɲqlMٌ%mf6A&5<#EbXCGgK,u(­e9 *↋][*#k}榩[}(KQGk5+%Ŵ)FH "!(͎RQufVEJđӯi(XGSs]^GEкDhVQ'} 5rx5kBy(q'yHբLݧԩe- ~,;7[:VEB3`q#d[YȄ%%},R:^6*+7ԍ On[Q>^ǿ9lz:_Q*墙Cʊ~tQ=hhF;.,ekbNc͓:{jG^B*{d٩\/{e22Y#!oE=6[)Ak-w4ڦPY:evi*qq#uY:p;I%G^F-M)G -d); `օǻF _'DӬQ[ؽs2ڴ N(l/):)V^}4bk=>Y7|-|첶gVKڲ^e{tKe E}[^HʲO+,!&]N ݖ̲q{=W EcF ږx4f?%YlM''dlJDL;ZŞЧ4{tp!bsKﳍR/&-e\,HaoT=SY wzRF2J$ZU,5}`r\ WUS Fg3ۻ-xɬ}&McMIah[B02vզ/i4{ڮ NkҋLd 5f.dgj+gRI/'q퍩Kz۟Fv!!Mr;idh#R>exw}1O{۶+>kl JǼx}5{]Y*ZDp`cZ3[{OE alYO -4!. ;;;(GG kt/9xS"Ƙ}_ţy߹.$}8q[|r5:0Wk3]ؾUNyC$VΊtĸ-?ɾYcIB!.HР| 5KNnx;vZQԶ[y ΥgN ߑEnUX=kj?Mp9iroվ6{1;ncR2M, H腎o'j\ߥn,ԖՌmVutڴ%d>״VT%IkV/Q QEZiO/r'+|I$bK^=ܮƈH_y8,qk^6E23#m^Ė3bd~MBFX)]$t~LrMbcӛ#%~/'un .IS54፬ԹK bݳ\!.ӣ[;0uIyڊc"aQr6ٌ#.1V·g6=vE${On¬!/M>"նJDbcN}o`v`"Eem[J(S,M{6yUnƌ/RT}PLG`ddQ*=tN23[`STjij{&SRqJTݐG\vKTQwlK*J1gxKRBAQ>=-*-/2qicD䏁c;$Ƙ-mE\3 ;jK#MX0dvk}S :fu?4nŖgk2BR;b|mBmEm M 7񁵃Um-E?Ӛ:4layپ!tRoBm=bWꭳb"1tnȘ2oD-Kh!v(ԩkMy >=&b!_ݵ!Pof28N&^wSϮ2\ml㧁}"֥pv/"4}#QzhɋLOcgc!FnULT`C|gb: $`#׵Bh3&nx5% x~I(tFvvEDWa-AK.Ç)`O2zw9Cѩ,E"Q뫑yf ,r <շԷ5&YM $FQIiШ_plmԶA*bѕBk]6{}W$Y+'b!E)U")k#e>wE ϣ;5{5?NviӏJοMFE.n'fu88:tӣZ[=`N^(_"[tV:ww^8{--`%RIp.hi?IIP6M+|ʈ7D]>p!N[0GvΘ$$$D8iV}{VY˃߅i`e4e|3LՍrS=l ibX%T Q_^Ume )X=$Ǐita|5>|e/&Y_ȟr^KCOcMΨ]?i "DVQ%5>?8WȢ`QB1ƋSX,gh9aN Ji?#]n$L՗15$K+R6{#xބ{j;i VĠZmjleC{gj/^^ l2DV0)+[ҶQ)qh{MJ H`m{y:Zt-X&Q2\m5/˩ q_fiϣX׷JPOIpM bD|E ɍG3=Ӓ~LP4ȡܪN;_bjX&N>NHJGSX);7w>vF= j~FedﵗmA;CN<fZԖYмҥTmmS$Obkk*"tM߻$k'̌bTIE&p3%%\ruҢP5|і+fc=M-UVZ(Mq v&^3BZBQ'R% {FρNAv#O4twfQyF!٤i.(M-Y랧[͙/d'O 1hr^ ʑfy:ׂ;`d-`O#6 <*Y:5z\lZG7= bB6ɹ$j ō_c$*| %YOFECQaD%ř.K}i|G]4$XRY(?j7^^CM`vSL,:](X;?5$aKr(ȚFˑvH}QB#:5!;KFMG,*G9e[-gVDQHFvxttFmmj䁦yD%gJ٤/6>đ{1x4EΎU9!;ŴcOGʨ"S6Unq!jMG҉wD<="GڂqB&*-W.ãȫd-ޏcE /;tFLnW\lE-ER+f$ORMw={/c{#Q&'co{K!3Sh[Y]Lhmjşi]llȲʴ&uwCIԋI_ݻg B|Ě&uyNQRE5~}'FO,R.Y%"Q|=IIr՟"U2SSXD:)1IE(NԢ+Ɏ{:5[Jjӱ w!2zyDgR#z4kh_Z,CrRH}5~I9,"dQ- I>cJD"$J6]wB\&JD-ف탩'"ȎgꎯDTrߩ|Se< HGoER4=FFYߥx=Bnу ݳ{2J$՚:23`C}$I]:|Iˑڹ{2Ϸ?;^b{q55Ir%Fa`sG/#Jф{h]&W&Mn* +"KB9$ߖtipuZW! \m&g*f uqצt#N0AJwDJ1)} 2-d+$<q8L]zqEI!?Ҋzlsd^pCSNk}9ΞM&bI rR˃ݲ,22fWɎ^\zUر%uvPԙӪ{V8Vǡ4>d*q=V]^%#r{EDUqO"Mʞ8%Oa+DA&Dl"'MS"E7Q"OVH cLm< %lDjƄ3CIqfqɧ5MY$qIrjFޚ"ԧw^#pY 8,v<߫YR%6%eRGg e7Q\J4!\ۡ5c]qjmB|:>.ENKFyIF^Uܦew}_M.!%'v;!'iY[n(^/KNtٍmL E缔_lu'|`C OC<Co2ZKWQ&O}dRs֍8ɨL5tT^4^[8R3(uR4G\E~kƟkh{Hj&IiR3N(ur_?U|:a"E$Ѵ$ŲEaq*Cԕ\m~TMD^ B`LDKQ7O?$\hUC> 7ب G4(FIi)p?E-(W">if> H<t{[Gpz* bP;c;x5d#[5$NECt;1u`HHj]@P d-X,=dƸ$QrEmN=8mNvFq \,m,6uw AB]23V;boB{!Q1D gSOEݶPGG(SVTԒIj-Q!:/oM'Ҟ3d▔m3WMN4t9|i]N6;pEH.Kh>Q*\n!#b#}oKgb̊WmLBY(r"թF5O:qFNݢ\ %d Eix5eN&JtJe,DZrCEYU6[̏#d.~k56-+v4{c֚/:{6*Ahf4fȬN>Pj!b"4(mA_F*b$YGQ.*?? 4z.ʼn5ŐM.¡ة3DS~ɥ]hԜԈ1;v4w,] Ijv|2",iaGRX}oG9'в5S-+BI&u"jS_"|2{&eSM8fY7fL bViN=CLzp$DV^BI<F9W"XOetMv5:Z>,Bu?O7m2Q˹U<5qmK٫WS/BEK(V6W,/F6[d4;{{vɮ*%F/ JXJY[YEGdzf_T)[]m^QԍpWc#mH$+N)/mR_j)w4SgT(Zg\hQĶ%1eI(zKqQq$k"pKʰ$$IŝK$VM/񢻡KOY5,ŕ6~I9U'EE E٣#cF";c";hɦdG~!\Wb\P[B;*]2gΒ)+Tt3_|dꂗDk3goɡ{^)G/lGd_e41%܄ZzeE4Ⱦ Wtji2>vb'0`i6)e,eFEֲkh}|73 lX>Sg\_O54溣 ЄtMFnQ9A:%%:)&tU]}oL"\y[FOQ\ I%NX͝TK87K$TŭGT54D 5](cYڶLEcUsLLr3Ld8?;OؾrSHqlN mW$MM[#j[*!t#.QӴa=ӝH:9!d Z:9:8gNFa#%TE0u::GO쓖X!9C+5|DMD]jE?aNtѶ5vИ԰wXJn95匒4&EՑQ8idggVG\|} t53}*=Xm[uEdLCD{#mGRg eqfBFQZ4׹pưjKLrd4S%MmȦI/FV=-5})*5%K [u}48ҒDzrpOi>GRS}Y':dC2P!'WBl)A2_GcJZ<3VKM)?TxEe{a$R7mxue/8 FVU3M?bZ]uZѢ8}(Z} HE%SgI(;iMtJ2PHbo('iGJI-K_ޚI>ӿ(KԟJϨuIHЎrr|tku1m"gO/t+Op0,mе!]Ȯ3Z:8r՟\Z#R?+#Kv+9AZ* ӟۜ_FW6jcf~6)&d}8|ID Y $rG}V-M\Fxs#YiNRŕWc׶cY_s:y-Pfx%K"Jt-{x*|,Ⱥ Lm3'F"oot>Iy4k-E^V_$M9M-ΥjDN\~>R=] QL]GVf07Q:ruzY\MEi'}6BY)`uur9j.ȊRi׃RK.F/҇WLR}*i} 1o>_ȋ[O]_4'.żM?ZیxjCq^ɡ}=+\oF[$kONFC},ir5$mrjE;; 9I B.KQ_lVGI`Lu%#T__2Kt3MC52V(̶TК&%-d\PmSc(MS/l-' 5MuQY$Y:xFDQb2gwT|ƙ*8pμ u-~J)w.Jϒrn9Gn[QE#;"JxeRdIF7Ԗ#}V+OY5'Wfm_h4TQQbbB!W*S#(F T[V܏E-^KںCMDūbӌ|lcR5u"iڑzD-SGBi1z| Pu?Ko)*:gM Epa7E2=2VZ4\ThO8 %$KN8f)oRB.Q H5"4}Mzq4:~ÌRfW:T%gDӋPmK5qGNdWONF<%eA?wmxCQN5N̍WVFVW*E|M?;S+ۦϡ "> +5T,|lش9EH|ɑc7~-B5/#RNm:$&hJpy{K)N҇9+2dm`V{%fVn48Qy&a}.tҟRϩN>5yFL_kB,Bz ٯKSFLm>Ɯ&LQ_W5~*rGr^>~1pPG ӌ>cLZj-ޝpON/SI;:y:HEh|z:KSR^ikjF0y6&ӍqQB- e"\GyM`X+h?I([dC;$J?gbm5/kJ2vFЏgD+KS' Q oU;(+QhqTどu#9:jБE#}ň3c")͏ȟv(ɾ1QxI籩UҬ`ZB#`WKFlMDwe`|USCO%EQ?"{$_Il7]9G_"=Wa1!BS.dF+Eo[g3?i>z_Kel]B=H|n^}fu 2R~5o(VI1h5x-8eyRT{ )lCzG1]̉aSdhi?sBѹHRHc8}N"pxAbGOo"HԊNK:x:TV 4tcGVh}F#&kŮ&s&?q\zx+Q5TNYɭV?Ѩ.{Wb\e`]49{I8WVPσNNX4Qr>ND]v>mڭjӲk"#6gh'Oc4&d'Ò҈.8:b{4 Eh<,*T>UdP{dUĥtjdSӧ8xȰ;Ti?-b?:}xR|ZI↸$iQ{/'/Yԕ1ji(J:pM<$7< ۪5J۪}JIQͮY*sM?u%,"iKx$喨H5\OmB@Q|9e|ҏd'Bh~Yv_} N9G|nu ~I$>EpM(r>>((18p~Y_bUto6| Zړ^Q(nt-WF6G}im{Gɡ)[ɡ4m"J2cSkBpI䞆Y?%.U:8>WJM},I_/Ң kM9~mՖ%YrHǏ{[&irjir#US"Q"n]n2Fˬ~I4 tOZRMd|t9pˊ4e`nXGmt٪Uŗv=+jCz9s_]3ʚ]4f=dOMvK%Ԛd5;u8۔3RH S/Mmn[Wk: 2| ȲoJ26}}?ǧ؆tk]Iaup[% WJQ}W}c%8?5q_n ڋBby<P!ROu*ro(RQ<]2'IFhdѦ֬}<cON՟M woa\Q\:}/&B'▚v`tM*JǞVcZk3_M)K2uEPׯqXttD\^M&ºE T)rΖF!UY$yb5%!iwMi餰Ϧ=1"Id,5ܕfN?> ߤE>' /zi> G Hx+L]|bT6>Ijth)1IYo"' ? Jqjx;[Goq3cc{E ZP#F6!K %/jodH~[{"l7J66iV"lp7x+ Rȥ8[_"_c(i&1I bDU$қc$ϷdFjsTS^Mx.5K&RkқGGM{9HԜ_OJKƲ-.HU!;F1'Ck2ʓ:LT)pCOMOԟ=MnȩFRL*+Nqi_jͤNd;↝J%igi>F x%/D')]1~١B,N 55Lvj)ତ*%MBIurFYlUV -EpN<Ν:5 ԫCsN}XJ/.dxMuk4N=> /.L*{pncB5;Hp*]DdTQ'],[F:#H;36J/WqȦtieaOo3l^XwT$%OM*gLq25F6I(+iOv:tABFp|w (B¬2 dx4TFj'V?O q85VV6clz'ӼKM5iRU5n! 'GGr:ɦ46"2ME' <2ꊤ'Qx>NslnN $)eM8G;|X#9YZ+GERd4gRdo䃗>.ELׄ+MlюQe+r4:#. N\~ MGIǚ>4CU؍8WJ- U5ɧ!!9 < ʐv4si$PnϨՏZ8hk7H8EIA}\wD$G6Z-jTƞM5><8 HѯjhuaJE8{\HIO2Ar^B]ųLjlCDMcԑ(yO| / SViWb _I7r{vB5ܗAܓ"i`iJ 0;Q>FM?$-䲎Mr8LbkilҜ?S4m&ieY/Z⶜ӫ.+%(Tӏ[$bhȹRoF"й'\UEY<.gL@O,NE['5t.Rhq_OC.y'C͖}t\P9!؍цY'Ve:ܧ %>P:5xYcZU)>ܮZҡԍ8TMi#Qh%.}YNXCPW"K%ԥ4] Ĺ(+זcZfiUdeҩ֔ki&J*58e N\PfWy>H2ȣh]|7E҄$ਵfuU]FWu-*ӷ!,X#wkAI:4I] TGLՏuE7QdVI5ؗM4!I 6['6~z T;#xt|$ׅ2P|ُ%h]Ek=1z]cf*H[7%M+gGKȶe[z{O{PiK#Le˱( M6&SWt{\魳K!]mFJ4u׸k]i{~Y("/IEi)q\i Q\_OQ=5hñ]ƻGK"|i׫Wk8-=U.R5#"Fk&M8j5%)ґ:VOӯf9ƙj hOZYe<:%lꍚsF/'Bj.}k֓Pbj7.RQ1]Tѧh1R|ŲJ8%l4ϥk:w4i!Iam99='}]GHZ1Ū'Ҏr֯;0XQ]d ):jĵ.8G^K*.4ȭLC^>-$䪱2hSJ QM#[SQtI!ElӁv"$k6|?jjjub A2- ƽ_#3hh'*"|,U O~ޜ tB TZ0xw1յo'H%. I' +etȅ吳+]xd*%=T`oh{#OJqMFEv%%2mpg{+E>7jlH7VY5ę>biUa-4'(` O nv7dq@si$J8pFQ5#~UsEj'Ϫ,NRe31!r5t7iQ;pB\ki}SJ}HJJY53R~VkI;j0C[Ic i.B/1i#\"IF?4&2m5wLiq]c%^~!&YT8w$^:tԎbM=zCRpNԟW^ME/tVPMZ"Ċ #=BJ%؆*H҃vR0.jgЬ.mBOU(Γ-4҄CmJMк}Qܭ|obYo܂BsZ^ޚ:4Lڒ4lKi{IvG3Ub<RXc7Dh׃QڮM)ũ Jh"Iv%{;G[P`ptN ՗5)Ǧ SFFEșV*,4Zӌќ0I:BBKϢ&/ZJ2ܺv/ӝ;fj&841 (C8:Kԉ:n$| aNԪ=]%ɤ$)YԸ% >vӺbKD_'Z,=_mi hZEf GO:}&mk(tkZuQVڎo 4 XU$ e CeGI4m95_"%ؔʼn&CӃQf}Z^&jhNQ aPHWɧ G iM#c \Vǥn &Y'InM9[0.G~]Ghž-i%cyR> $8HT7*YQ7DxQcnΔSH\P rdSwGGyiǒL hD߃M% >!}x5a7Zz+U97o-YSM) ɦUM'Y$I<7E) (ӟ(qqt, d^?;Ԏ9D*tj'f&b"&eaFD[N-R#}VE;`[V׳e0Sen55aM4K(`jבgڍTBFѧ>S(Q-2r[XO Cז6tU3ʳKR]G(+uL"+tȟsKstFOMZ{dt ˶4@U)G&&W$jJMTϔ`\y5I'ԧmejZD^N:^Jȅoˑ :{ItϵhaS#1*A* [4JTSVGSNٗYӖMWrj2s}.Ҽ1*iOzxGFR瑸+Y%ʎ5NCdȈw(J) ǚd);gLO"?wT4RG"!+>Q'#bk')!1AQaq 0@?>6YryGC7[\MtjDx0٬4~N۱MdR2ZC`s1,nc2,AoGF P_pd?2 <F1  8@ ` ahaoԭdOʿH"K_ .l& ecçN'Nibeqm#]2p a\GOS9TA 9-CAդ cM [azAowE [R=[+dxp0_dBcA!3vBcZx{u 56D'`Mrz޼cg,YLg  xE r-</Gݯleټ<@:\:KvTV̏,ׄX''=2;|H&m@W/e’yirǦNa`>=q/> ew2$w l;rqǶdxkP]C%PX H1p`v}oԂ nKO}eyb} $;r&!.屫!6nL|/2]V=O\ qgi9AzD_ H`ۻ#4˫:cua-V uvc c(t@')b5 d +/l@[ 'N1(oSJO;/s\#lx\ ~AA(w4̐O]aV~^ C[tld2IŦa/]%s7w;-;-bIn.|ߍnA܉oeT#V\Mչͻlc;~мgP$z B#׹od.} שV þ'Cz考r:G|  [i7Nfs\SP$f0"iAg%5r@:l2:{umlx@'ˬkR#haX,7nr(l׃-Kb ߲#2IaO~>A$Km!`d;j&apiy%(_ 0BK6PcMeM"$. ؝Xuǿ KlkGZXY׹Yʹ~66G ϶BRXN&#.DŽX$KµnƄ$nj<$5wdf½}i9݄[?竃r\$7}O `u$a.HfX̗xe9f;r%nL.^ {kZ wۧg\}xEce}LJYop]Mcv, |-cB >XC(A܀VöP*Aao6]~B ]y OPgwpboe?pmձ铅gV9bmOg[Ig]d2[n ˾:dhOb[r36՛sOm`pRcðC7RR{M^0.^@0π3&l9|#ž8l &L>5bڃ Y쾲RC𰽶-K.^G3UΈeG5*q%r]x[w ϲ.-.OM#2|lf26I׀ūrA@&]Y-׃Pao5'ד t| M$z\HKk)0Xq/Ve/XMuac=@l݄"x { Ww1 me4j]oFa?.(C"nY(6L Tg*|0#gř Q8;Rx?XoGrzXA2>^xdN ~*Ox=!IL`<.˾gV^607#k߷qv3IMe| sȤ,>PG !fX\}_ǀvlf]x 5ԁ3A$$@e|ыt&cn"A YS`Yq8xOhpˊ.Kwsx| =e#}:),>,Z A:"m¡9ГƪaO|.,c/ۥ'lKjI 44ĘZ-e$D!> qjH6k ͍.%".K'  9)n~6BuXͼW\+<}[&VX|zcz`N"K 6]a ~PaDnV݂ ~6GCa1wrMxl|Y7#KH,Pam&f\l5>@]||o G%רw='.UrC6\9w 4J1#1Il;+6fjW=A$W<%΁#4Qha~)l/,]"$OIy& !+xmˏ6Hpw%7v`c$/ ,seoA\n@ƞ$3;]`n̏ea&  ty`Js+a\!#ȘՏՀ"Hm7Yvȱf!| E"ԟ.ɨX~X_ z<2AsrzbAJ L*J+L䀃ĀA_D'N:eL2geəɬxS|M܃ 6$ƱzmUe>#Rr_@A`!^vM { sݯ [F] 2UD Ŗ$qdWe(Fer-#+pqD l6I x=6=>o%Fl͎:ns~W ~Rd?06X:=H,XfB:&]|ic.=%{#5lFի,ԗ> 'ŖXd\lo|AIZV#c>6 av~el/o e{7džIoro:YTr>H+_^Jm>|% _(=|Ja_CC̋MdK:2rc>(4%}IXd$ౕx&ev\ )&Ò<`ٱicK˙*tjԀA͌Fdv 2#\!2u)ܱd"͏r߲srJݖ$#쓪GԈ,-sc#l!" 9G܈kĸ lC 2eye'`I#sv=eǛ! ?Pxհ^t2<wdyr >?F əHgF̲<`rl4GRdHn;7~|&Xm&ÖE`K/i{f&'KMxܴNWK3-*!cc)a&wKvY:p6[2,"?Bz׋+'hOSxd76l~$8 ` uH{l| |xy82[jC.Ke#OR'F}d߅B}Cc2|ÿ9K0Ov RU'uVuv3tA{rq,Elsv9c63snVx?hr, RBau+܂`@%[%W?~]BBIHg,㲫.C,ٰB؝u>sf/Q 3?2d#d~$;mN'E#.*/H_l\+!M/ Y\Y dH|,,oa dCd72L8s-t'JJ8z/h>DŽ$32DA?Ö s6ׁSȹ |.'2<& 6`Y@#V~2f60_HmN<'Hx 2sI J|$背6uN]Lx xYV|! =ݲhwj[f0.S as!0Ә|0 VJ+nKWl\#6R Y|P@ͫgׅb gew$[ cd!S 9:C!-%ImJ '0yDzu%ϲH%K uS @#<ːϋXd\#@) Vme_P&bmV^Bx 0~MovjZq嫇,%z'ܩ$ƺ,DO KrS$c=8N+W|| ɟdˋ7v̐`xoơ$pѽf8^ {͸2JOR]̃, j zU^t6;{O!%ܶx$V\!Pkj׮Hl8nsuY`vԈl~G-6sF,$\$~WFdMs;;AP8̴$Oq ' ԰tѵws_S5FlXɌ\zh2ٟI6 2C02/|AB xAd_6E1E"wrig9#ߌ}J<bY\&Z |))[jN/vX, / roL11lX9)BN‰.J2KgG}Cad29[%L?:X~d{93-zCvFSd<Zl֓qTSrs6Xˉ1e_Xh%nF Bw'/RRNF@N%7`-S nzqnwg \$0ۅ@M:,'$~#/f\Z{-KpM%)wd9 YL2Hz. ܆Ny[9V F>E "$&O$-zeB=y[W9s 0@&v7fd H>$Md;2'Vvg2.\q1#c,$ CxKwl ̻Nqf{6 9fk4dlg`XsƠ %z%F=s쵗X "gL` <{AE2ڻa|DnO# v#eN%A{O9P[_+(Kbp$!t4`_ͽ0nۓ|`u SM =ʰ_3A,[V׃G3?1I,=xXmI.ÒCsdbP0|'$0azOx%qaD-y"s).2pMaGov!--C,.od rؚνߴ6AS)B6y6ׁd: _nr\11ݗ۴).CMK,L s1]FOIBz 5&(w;LO!S"%>|b-p͐-Ni9]m} ]ڗe"e\`̦ە.ۄQ@`r.x}< 3vFY̌i6įh~'E7owcGKam"a"K$[KO9:H6?=dO j?pާG>R l[2 &ɞ D3 oionAceٙmQ;Xgi| xF_h#Ԃ82|N<-f+`>@ ;2v{Noo&Xdnڿg=6&d3ĭ; e[yoA}fv9.}0|Ls-K.xs蟄j= |"H[KP2'2 [X@#l2sنK\ |4"] C)#THjF 0ǀD?/!'5oRA4uOp}&%ѾR#mW2A#,|.I gN G=C\GA esfq-~D;m !96 ѳ`!l]}Y7jxF\O D/Djψ.JHI-6[lt<<bG_8-a_ NBK~Ҧ\x%ϛ O[Eې2_; ,~p due"s:3~٢S[ <QCo 3Ζ`G:txv鹶 ;`Ρaڏ&kn,) P RoR=7>7 3Eyf<\NbD[tC/𰠽OgaZ-mŇl=yI/V͡ݰcAMY62>=q?I`̌_z~c^iwxM=+uW{ c,A%\v(:5\'s,@y!P{H0oDla'w ID9 9<n\x8wˢt9½3^m?3v?>}0Dg=y\cheX3kaAkFUaCrL6?Ծ,{Y>!/Òr]H2H l|&Ɍ 2M(vodsfKh wv\RKGȏm̜9aIW'סk $1KYڇ?,->|vW$`?9Xx+x1N!_zA HrH-`M)VDȆ o0;Kiz ӷ(Iw^Y9 q8d Oɖg|ˑXP7hsOf-~32:Y+3KoLj ٛ7rH pA (R'?R(|^vLsjHh6g"yH w.DPl.$3BI{?^Ǧtx/is#0#}-Ch;͏v豩㼞:Hd%Bh7r@9̸3`2^0~֡K9!{,ɍ(r;1ՍN]nxӈy>Hbv̨ŮɊdNԫi`lՇD!!xP WWI$7B}F|}.;>n}RUtu 6L&ɲ 6L:,!<3.$pO%w|/A'#ڔu9é77t }0k},I >P^  ]HO~v4j! â``O]Jmc? deݿ)ɻDo` 5d6O~Yb3a$6SW#?/ m\aʄZD#hx xYėgYvr@D' ntIvY|rD͞='[zdA!R0;j u ivu bL/V"_$~J C7GP >f^ a{O~@;̶_>A$m^;&}lu l9Lra|f؍Lu`{2xb ?pO,{Y! -~0ɵ?t}X]1!v 0-Rzd I޶#Hf3vB.D)?%=DD'1tGw.HMs60JPqb̷ky?I^ ==}x#sQ+L#_݋cnN .fx}\맇=Y$kF=x,g$@-h\. ^@DnOY{lELj>1R}!YF Seƽ}v8Nl7.^nI|+ HȦ8 rlߌq#蓧Nn%s{b. ۣI Lw/c><9? yM|K]c1-Hv"mTۖxZ-д7,bnD\]5yb{a`6!sSvʷ-Ps-K%ׂYdp-Nq8MO{>s16[,xt_(ǫF[/Oe`0ߨd*lrzuБdE/ sks0 (vA^a&C]#BG'Hr2O Df̓@_c1As 2 ZBxgw`; de`0=ON!i![$&菶7Y6qjgvV[$;&{[ܐn}7>#, `Yg,nORO7g='DԿDvk@T-9:(N7ʟBEd]ߍO6L3,񅝶yGS*A y $g0k$#3I ktGńM!GXS' ۳XsLWa<s WГg9 KN>†f>C\n`Ӹ8Y8d$#Kïū'[d{`عkѕt!!߀om5nʝ#C,/k.\y߀xeRI9\%G,+P4j qK 0 &0IF-e¬l,iZhEeՃ.!m..g3rlj$˙r]-&sLiG,CMO>;o:פ]Bf|ZMOY@;Nq'} -闇moMĒ\X{5L(.rp~9jؙp7FO>A!Yy_HuzRl$ugtVqi~3s&[^|\2+\e`žq>>K_ rUwCew7TW2Le{M`<<q.L.}8?.np$0wT~\P>k9Pl:&̴$6K`PܖJx܅ֻ)s/ a%hC'Yr<_یa#2[\\0c/%Jagه-"`>a#N, J~eB=p&$"ͤѯSvvQ;amaBevp j g38?Gd&qy%6.~#d=su/-tcndw$95O};!.Z7d=Cǣl7 /|\ / CIskaa$-=ŻjYlc6ٹ䝞6w%d6^n~e(\ _3LE/ܶN0ge| &P|4L 7ee;} qۦϡo 8p#p.?IYɘH>of3e":>Ol'<Ɨ `H,JvmǨӦ=ģ2!CJk?:K2m\?֟`sr7zk'`˕,%mnC3,"ll}6&,$5rdAe{lܗ7>J$_!\vIm .I2 Co.'=?8nfN!ٍ%0%߄c`p[G \>'kWfHA:k1bI;ȽE5,`-oRbO[ 3 "}2vϋU8Cy ?44t _O)vXj a/D>$:C)"R559. űќ3ܲFCㅞp/Ar8vwP#<>ydXɞ@eBk' !w1{OWRx9Cb[#`gjx ۸ru/Ӥ2mMGrqۓ<&ML &y.KUΧO .ca01$dƞ=7b X$mμXmLN1@}p?cPz(3X^&~CBAZ3rRwB/k|u.C ?vOvm1#,L_^jlaI{p#~AIh1 LHf@6zx<|̂υv !N8 ρ6M<&?'}P\'?/+$ _ v}罖_piŜyu?e>,B:OÕN: d SM[?$D&w۴.b.F2(\Þ`wo"F_0 Ac}% 3 | & }fGƖ`kaz6`X-'O $; j\c} ȟB$q=!ǩ Ih '=6ؒF9o@ 2IaKBjHzdzS'}} l2İݼ3\<@Wr#ݥ*zDi-e;'>RY̬%$2O<,?rK?g'3F凑)C q!|/)Gm%e_%RqCϲYݰ^H>,!b?l}A.>2K΋gs<0|eslgM% ,%] ᷹r/?[?&l|ac 7:H`/v9 n9f$$uN꿈w8`}lSq`$ 9?6\0N9L; wtpN ntǃP_gˍ.̌3UZ=:7|'l̻ |Z#!ǐI@ x`3؅hhl?,| \z ex[@pzl0{=)UVE ;sa s#3Sw՞5`xcnD <aD t?ڻY~S`3 x.NAO64>ms,竍uԗWE.R&ϛw3?ZKa{`|=[(s|p3~7b L׫^0|gټf7o!\wՅq`uh9ׂƏ-~CIYCԀo[*@9cc.rpcKfdɞ_@@XKSO-ñip5 ˸6}L &.X3g+",8L,nsr~@? ?ߕY)$8{YOv$֒`N' isz!=,>9%16Ƀ5տo~ּ͖-^X; uiFns&_ #V2!ŏOLxG!ߖ7?yM>os7"}^vql[&_XBWhx~Sq͌Deg_a.䦐 tY aL,#8zpTYk2?`4LĬ?M $!C;afI 1ce}[,OאxPmy.03dfщ' b, =ȃ_."#\I* dӈ0[Ir* ޻inp;1{.D n= =(?@uiKwc:P#6#srH!HGa^`BS2p!w#[VyqK2L[;lIaD" XF1F_a h4]=!m1e:?:D;_C b[RK_Ӥ2?21+C߯GN˳W5_P}@}쾏_kWvAo rͥp? nqƍPw٤CEF959m@C2C/m͈?ɒiX+.fglSgΪ'j:6M@_a%\=JbOrlj[Ν^X@j[S.$v8xYaїL3˓ί:}kf屌|Hǂy{9;݂>d2 !^^AԧRYIJc7 GO~Ig"ʶMq ZHOǓApKq)=AKVעs ̐l_ asہ3)at1?3}|27`仠7vJy>Aih|+ 녟KHlq?2T;gsfrԫِږl/ ׀[>&cI9 620.a88#m ^.cNȝse? ̗@?{|,J44NjpdH`aٗxbDLe 1g   w 'v<c` wōϷvJlj6/IuoS. mx%u' b90\{t[,f4#)(ףۑbtlYsu^p/W A)'|Oigl4U̚W`b԰mH >rCR|~>v0`Yzɼu`_ (3)$[8!R!&GF_K&şvע[bυ38 A3_0νGα2y$e_ 7."]g1& =0; bB eM=KleA4!j`gI9KQR߫) ܐPC ɭéJq:_PL;wrS=]0<P'g, `>$q:D'rM XX\?m;i 8dߴ$_owHcV[p-h܇pI& ?w7L>| "4l1a[~i.R*~5SV"S߄ |=m'>Gnl@?6Yw̫g/C*oƮ};u9 -q-'PC?  ېo:Zc~-<16L|׎y,cPAh2zіg=0,Mvm˟/i,I1-J4e3&[I,̸k3;K]N۩>8?dW^soذIuO[&JC0'+`XC.z!+Bg5U͖mēanC֭%PgdD.aI}\R}2&__azOGoſ`³X}Dn_Fl<ꇘQt{N[m(8Q<Zwb6l+kܷ$L(`)y+8z*CQ=$;d< w?`ߗpIf)%8, ݝB>X2I57Ir[ʚami9NRCL}έM~#=X3#Hv 9ʨ1i3 1jFd`*=Yv'C'9-; Y&tl86߄$؎l]܉nCD1EsnUl@,ڶ/1$X)2HSdr\۬c􃀃ҖulO?^cL}˦ dk|l,7 @ }[X'ksimHs@4teX\d` c/ǫ=[${\ \ 2ɝK}2lܹz,(Q4r\:KV&DFG +;Jx$'~;P{X+\nqoD׃ms&,K{$#{P_m|ֿR^vM;ρteru7k|z ;$::;X8:؃^'NH7Yx]͚&Nk7]Vdi՘i-.>rBalKhsw>?ЇmiF`5 5~G&a=@_ m6Hr@ZBA̱8A|2,I.a@/_R(2`?e&δU I6%c46 }xsu:wn]ZIa{#Էpe}f ,m1:hgF!כ> 'gse7%|?%c着vN k9Av<0ϥl<@OqiC>I2;hX kAm5Kt|$.7(5"zjOTM( 62Gqw^OX{ g}8EG v\I1ܖ JH->C5rL7Yfsy /C`+t¦({bAN8&WK#DP#koC$+wekp_Y;5;Wɮ*>EĉJG4Dhv~'~yka.,C*Xlmo Ib3qv/e.Ss2c,sףG1 A<Io- A<_+l! cS4ݿK8N=bM B-Tig]m` BԄ;> Iܹ:0>$}nNySm#fLd jm=a;Ba/FΥehg4#H2Al#3,& ’䱯Dp%_tFbedrrޥ$a&ٷ?ќ/٠ocb}_s~38pD2׸~I{6sm?lh@8}db<}g0YǸqGe#/K;5fhu+ܷ-=Zc9#r#C GɆ\u$v#av9;ӧ%l\[q>.% Kq԰fx|-c~U/IE$"lDNrq$*f5,O'4n}߄60 3FOXAcYI=H]LgkK䕆ħ!݃pAa{Sul;U^D0oմ_ᱞ{s: |KT_R GA5ncΚ2`O'ҳ8)ni-6_ /˅q0c&. +.t m6um@f^; \eU!H$A=`n!gK.naV~ lS(#ܝP8s>TUŇ?Ü2UmP3\ ^x43 [FwŸ`)8@"Jw,8-+!|j߶inl>kjOơJ3/P%"@y2@t0`wdٵ͉ݴn*tlK`g  ^n D/\ Sc<0Ԅ+M ]12֦G#%v}0 2d!L#CWչFr _aHmyp2H  ɢ3axs!`Wp@Dc]=νIgXxb$de$s{n>XK|,G1# فV#qՂPFsX& [_>#W%N`[-Kd2ZjI"HpߡJ;x0gIg#鱷l=$x4O x3p/?`~[pO쀺=ŊW2h#`_i-.NGT8TbI$"Yu#"@͒ש8\#Pk;0~s%$+;cʮoxsDI&;e:]6dWGBrX?gۛz0f OL$v\v,Wpp$|d39}cptlH`w#gѴ{r{KdX"דK o>?!(Nv#C1mx&:n ̫rXoR,)C?k`dݖ .|.OvY g-;a#?ǫarǣ=Mb#9 f![}7aqc z!B_˹<sKAɎ #^2[6S@²pǀN~׀>6 |;ތ}CX2_8[<elԹAxNH~7 W 3ض>0ZtA_rIRډo].8f  kܯypz-YɱȞw>枫7Mʹ\E$~Pc'"kY{6adrB-C;EpJf t#F&}?9. c3o^g-d>)m=D4b67*>Ƶk|[N\dڹ (3DnZ!!YpdX$~72 EEkkK0<=>j /U'ezN`TKϬ؇ j3II }NM$q gO}#qeK+9~G%b<%Hf?}&q876z{|{L8>>qe/ Pݏ'9h`Lsp8'GХt <϶iCdaVw} oF@d^2^|&[3fISPl3 ł%[~ps2 wπ>;Ͼ.}Y1,eȁ#NGRc$pNL6}kؖZO$A~Ax\ze0I݌-*a .S8i5a{Z3_F8{˅x^}> 8XJ'ьP']7F˘610%P>sb߫F)ތb2 1ג;~ XiIxVH%vKmZuk*@.AW`ɯRxH;vCVDlvyBs[6kGKeq3[\ЊίggfG:nu !Z&$jXhp g2>ܸ؜%"qZrj\4G(@WBƜբG[..p~]efodbwp)AKBwvHQ(~V&΍g2O}@l/ry6jopA eE m"dq̤v-ߑ%/|竁@ )Pg^dq8 mI^{-#qiԀ:,C.z>D8Bϣ?#½_-W}<5d4ng㓗X42ϫ.E-`Tlְ1#6@[x =߻1͐P,99%:g=; }r&^=FZcZ#偣nKgpCoQqrOxr#(d9r/Oe;=$OY+ 4G3ldSoM0zs6΢͐0Ta< F% S;mݓHnnƻ 0B>̉p$ى᐀q8.K.bFCM3ɤOO }&ȇ̎ݍxx_c$Qӧf bcu.峏s> 0'DYfv$=lk3O ~QgG>q п,~ghmt0]fۛe3q#%? v3YO5p!!~'J`@.-#q9?Of|fU78epq}!IGn}jDC-y |aj7ٲ=qp:܌z`2'nfˎIA0hrbp&~FA-,Z69ɨu!.F,|; &í,1n9했[X1#pz\hU (GL#.?b8' }F`S*@!߄;cI][!a0m&!jI \IsĝIL0^#?2}H >\QcM,1'(~?q! o .F˖`m u>w_ʳ~Ӱ~.BBZ`,H`dd~pc b*abI>.aAYmp\,B&c,ɸxgSs[[uO3=Nt㐑Ϻ8q?[*Us qIl@N::4xl=Y?=I6"Xx& qI#aC 0}E ݏS@:,*LOfCG1Ō۳v;S}-]d﫴G"!E(}X|ԣl;nIԠ΍C,vTH0+L?e\c6  j0o COho3/iqϲߑzJtSxLr"s +KP=w+' ѡ"Z~p; "]Ec !{ t6aŧ~B$ ,`2şwgn`<,[lHCEɩ=!8c6=V?KX cLme=ڳo?,YDm8Cg2L]cIdAIAY H=d<^T-~X7]ezlA36p†Ƕi ekڦ6M^qσkac{9 ,9;49Y C6C4zɮh˘z,<=TA)f3ߗTp5k9Gvr! HLsd{F~X;aŞ!'tKy7<;Cr(~pur]T{HR{e _c[rwGu n!M4񗡾 I7s92=JG@+'B~;}6 JМ@uq0~B~\/CCC?9C`NW$O~V! ? Z$xZ \h?>-z,>N!5紷f&!J.Zr(shC^Nl{GL9om)3ύЃ 3]_+Gىעi5կ`^ۂH\ 87ele-}[!ʼqч!j\4?[u0 X@yQinЌrl ]Hnp;$עyb |d.qHA `]-f}p`%x Iin9#=#t'b0P'S8ucGq~ċK@%`^%Ϥ>@&vc.oyI^]v WF{6?lo58A 6Njh?Ȑ)nͳ ??N @~76]-牂}cci=|Enze1Ihcif:N,;.(plx9&G]5 Mnx5DsSrt=㖹n?۴X|[F[HN D?ájϩ}~TOĪ?IowqZpG3 \뗶 jB@iOh!Hql= >%'Gv??&a mP @Hn >܀) GlFDrō=9m0K< w_c9dPswV=$ŗBzh=2;n9&|'yeY64镲Xa`njtRI ^6qy C)}XmK1h|'6 <x_ԛ?~9(_ʼntvQ[ x vy8__Ed|w󭇁{%]8̏P+}}T @nCʺae= z<,任? _M1mC,`s?g|g8Q`Wdu<%;n0O?^]x(i:-,!ǢcQ S ;".70;Ys:zY[0rZa}W/LgW݇nq\?]>4,ʻ(aŇg~|# p X`x2=$AE?-Xt,z~h*g#R7&# vRBw,L6,5OǢ mH6?q3^>kң4/4WLYHՄ,+,'闟#n]o]MͤgZl9=bq>!?q rU_-;68[k_HL܂a;3 77oy  &Gf9"+/vܹ[tS~Hvv-偎At =|Odoc]Ĝs IsB s&:nX\ꇖ#ƒRL=|x-g3u%ȵ}[ oO]3syCls?ǁ`2uxd&S ?~3˲U5`vZ!}ZW&C1̟D} y n.`哯~mz7lvJDz¬ 1g3蜠dAXG˙/5g+++/D| ƿ%dرmppO俻#6/Mdþ _ع`o՛H׸}&@ˑ?HeH@O>1?@ߨ_ Ol,M%z#}tۑ6`?rO퓝Ox6a]hވ s tXƘi'9$st?K3w;b̻I{ Ew,X\ Kkm*ēOpD$8ƀ_8@a8{{Lۊ!}A{u0f_-]Ao$]gH9K{ 0?Ndͫ,\ gq>BP8]qnJ"OCػ?)Wl/Dxf ՟I3֟OߜѨ(iu>Tgňs+ iMû3Gs{#>SQCwKaݯ 8jc=3Lav5??~}RܜpSO~G0am~c^tBO}}(@w\Wߪd>66339. x쾉6'p'&tύ`Ό~5PHHb q=?7 gJ/α?}KO K@L K,.&}[m#SD8xa~ϰ>x|Ynpʚ@;ɤdB1:(tJv&Cd}P1nŬ7vГ;v w۴?oZbs/oitQ-p$|-øBh-9 uqcS$H Yq&Y>ٹjWD.FDG.b%Zef&ACMư y-?Md|a] =B B KC-oѐg!3&߉dc=AG qg ƽH?-Ǧpr\;> 2Iw}%C AN6, o,N[>%ss5 쓒HտlfԹ,xˉ|b-$g$O: oI#fM;m/o00X{T4$4:h!*M:Tٽpk_쳶lI}Hkcln!.ekij'mq.:;[D!$auKcǹ|7 l7T޼ȏ" shW ެs= &``H!w6 4(0H6g&ǻrwv 'OqΌli֞nM }vafté͙hKc5uԗ mˣi d6`2r?> H4d&\dMу/DfA\ܰY*KDR Cc8X-ۜAvVdH7 ;.RՋdGz~ ]3 w Zd|۵x {,!ߔKyXGSnWFxw3'w[^Y n >eoC;=_l\ے~.m̿/ &ws3nRghXd1bq}A!Q?RH:L13d,6GBAIF| w,Yn=!AX`n0q*2#Xƺn]pG1/dR?s~=i][/0x{grM&>o sm.7H̟#2՛ԹY08ClX=Y6I ua؈ .\ ~0E&Zݒf/LDzCG66%Zz>mN`llA)ɾTwvH459ܴ+2x,3sr\ư2S!i-;|#v\|#n9 !B@J>VLE>~=N[\6"G>,4RO,[p, 7,IES߇cA,${\Ѷd|tmPT3F=r>`at 'AQ3\- X/lwr>tŹa3g ,c;!eQ͟C̫c ^dAe IC^}ICR}N/D.l\Ib핞eŰw@DFł,YδlV`a V@9lOx6׬v^zz l#t%tà,Q:Cx0ls&YBnF]3RӉ Y+ t[lnl9Ӌ < (ivQz'8s-m91d\=E r[$a r9p#B~&T 'fIJ\"6hHc a*YvL1#=0{>9#u 鞢Xd,wKKqf7p%_ k=50.10𶼇ձFc4˛<:'_RDM`:V 9$ Im <̻>6J\ߒY&`fR=s!GH?0b5!%a0If+1:tLfv.BscT6%xd dd-xdj忡~@Lrd$g $@}Im42? 'p7f<5G 4:%9_ m]$L"._R 垢#U}ZLkeܐZN &g ͍%?RѾZqhB.:\gn4dsI܍\[ C;s:bpdiWuHÉ,HB|vq7ñ.le෯z@89{%ę!s~ٺqfD~H l):z,=0.g~<$1SJ`[Gl͈yHL1Ivܳs!.=8{GXleY.V`& 6 \Ǭ3}pXx2wlr6v6%l#8t6F!݇nZ0jr>!biw6='V1-cQwp鎖OVhJo qǐ잋M;YկIĞHk|&s)LAvGR-eAre[q*Bz7gZF6Z1N#p6߫lmY=۹#*r3 cο@;aiALw@50g^ ,3:( dl|\Cn=\z@U ᷠC&lYpO(8X$fSz2c#>%(Gr#9UKrn`X e t%0Ä́rCV67ȷ#B^z;KA-N+#8KfJ?Z-?ϐ\lXg-0'A!/ H0vnrN5A! ܸ46A͢X\5;QÉ6d]8fy+^3Z!.Jx0R} &K;QDE22~Gp 0P$rIGvX݀ǁ,6CVG+9xawˈXhVrlxO#ۘ l) jc=-6a--s&F{-I]$$giS\!M91ٜG*ǹ׋PuDnV}#CdD8I0.8-2]33fx6RY?"Od&d<{ݡcaf3F ڑ\ChϨv}g1hwO,>QY6JG2'1Ş~.U2 0N8Ηu˰b%gɉo@XnD!ĺ>k 86eQ>%Zzǟ&M,Df\ ќuC55h`/VX5e ^25:&uwlFR1]NQ[Fsnn %v2HNr v+: 8^&pE)uoJf54{ ÑoH6 ض"FxƁn\J̉p2=qf!mzCHg r$Z K#MzNs.ޭdy978ADmr$8z=srI.GX6ڰ #1? FžC[@~BT쟵/D*d*wa-\Se&f,Kd_=߫kX5pIy4XmF!GN¦^<I82mn Cyga eWc]}!Epfs ܒ ̗@HflLO'p'N'3g9׻r; m&^egqA3'Wqx LK 9acdNa%AQ5ۗ c!\Yk:3%\l_jRC !g#le;zm,8 6RH$xO$ʀ#˙3,/Xw0v>RsMX$;Lײcwpe\#>FQ_PmDnpKCN P?cAh$$M6o5 =Xհ093J%kVƉ',X?oV.=2, &<߄}n5E'%bv=@ zޡ<>=DK$-Qr˗vG?垭x&6)I'A}عrCr^nms׸zs<*#_Kg1c$\| NZX %ڸ{"KOlE`uh| ܗm.d μfdg wf tm?>rZ- oOmNWtݷ܁ĀCpH k66 Q#͠q&'R^NlAJD1llE&䑻d):F:xedb[/bNZkp'E}'O9G'vd@=8zl $pcMGvLdb !ňSe`WGJ `p`Ԟ[ƭē# vġF͕c}S.gԹYf!_PZN lHo~ǟ /}={K<KP-PK$5esJ0z /rKGYnLZ̸՝ϒ=8Ac+Gdٳρp Sqq=&12 MH'QvGhT &m!y>oi'Zxқm-D&g]DIΣ7[DŽI8H>cq}|j KI:Da4 mXLC{OۍcSV3yzF{2:!>2Qq?M$Yo{D07DF{6Q}@A?ܑ`m YDxv${H=xf8`| $B@pt3r|kݓJ%pns67:1d7 k̍?,9 |eK0)wYԧZP%ɺa5!m1lz$儌D\F$pd5ddazv@ˬ.=VAǝX\Y2N>EC_ӐaȅJU'2/,l1>ǂܼnqudm]:B'z;u4{i5x-Itr5ϼprD\m1 1xF_, rdGu쁸B:}-zl2k;`n$$_w$P7 7ۭEZNO˄p֒d 8 AٲX|#0Bxlccaܓ0m5|lHr27>0G6@{qr K;Nu`@'% /ӻ`&zf&D䗸2lz[lkZ:r%0ZNyHrpc,9i}qbB}Cnu{-j2LV4.ukLt#gSlz;zcܹ*!^3<9$9eM=CK(LOF6b#zMЖB|V,Ke/GGbc%8\Bdqt`BXSp,!6H}&6T.~OTr[0ns#sq,>s I \od 1@J!`ؘx|p/K'Fԇ+uk;N1 wjK0vLz;u/8]ݡcHq|O[.r]$v4 cR1,)gа{fljX,r(Nz.e7($e\|ɍ\Dtx˙ > ?X@Oi!dbYs_.8#i4LM!dkdn1c>PNp}-p`L$H!C9dN*!hdSvgpٴ"@ _ #[IHMc*v,5l:ƽwxa[.<$~dW.`6M2ЦNX`$rbYzA@#F&#qC dFYmh;"s<l,S\i )P绖gr^=ATo3fCCؒOd,3Z6"cH4?k8>b\%[A?+չ v'>x Z@0dYܫ,2~qø/Eڼt6sp@F nțK&.Qk͟ >G\'͜iFZs kb^,6R݅iQz͉[cԟfanu_Mдg=d%=é/N+̹x#=R_oa&? ;],<؜dvpσcw %~3 ą5\[w7o2I>nOԂe>hgX6S CQ>C=~̒tcvsKG5y 6:2C`ݷbYŰ.p$Eb[^'QOR\oS̈ɡ'=dl'c$?C?p e"e]Lf4Y)37n<c Um,s`b˴d69 dI.smz{F$˾MDِȮø - 2Uenɀ-76.k 酄N$n4R,=\ # ueTAFHP5V̾CFPKȇv^8=QS8bO~?ܺq/a.yM%ͅK,ޭۘ4F2e؉ܑ͂,D3<6,ì\?HOQv谢!,%/a(|dF5m-fy@n_Q{rV$6fC\||]xlr4 gC\V{6M 1' # f.H#]nm ۰\PZ[[Sw&&4221&\@A#$.,h]ήam> ,uY.dXѾ<h@;v Vu z$;[wۈCc3EѴP꓈LC7.?pO.3mL wL ?!}ہ8]TXöoD2YeU0#MgGMX[6lh1Y2Un@Q#Pj[.[kS,1!TFKvĝ=ba!"tc5.U2ƵD4.\ԻϽai OlR80^BnbP! ÿ._nj-K6Ƕv筱`@}Ula;ǐ>C-K`,)a<@ea:NegQrR:236Ug2^K#]Йh.r1%CvzN)&|z! B]\nGLah-މL.:.Ǭַ'&k>bBȃc rl0{gI,e|d1խV_d aF 3kݔz]vecP!n8H,\29!Z|dS( ?T-DR.\I `Şv`I:8݈v;1~ q͟9 u^Hb +À8{ MO{q!,pzXuJ`EWL":8kDՌ[/S' DB&5 b$Li[. a#eϸ kģc2PQ.!'fX, 8F&O3ȶ2~GNVc_!.4g0E@ԉ4;h[UY"\@u.k?v,k rQ.6雥zZ \q<:#Br.خ|%I;8, YțԊք aV 9݇qd#cARxBI8 sբi,AC2g^li(~&#ʹ/KR1lß,fbfD@9 Ig6^4oCIZ>s}lj, y <]c#%H܎8%T$J%3Eo.BA;ɜI2GN_~k@ӑpsYZ;/oYzMYXpD3!3tC!3g[ //v mz` "4Qgrl ۹W6ئ\c.$ ܹ$ =ʸ,$BVC!#7K8z1[#^7%{L8_GہdHmݎ8`e|XIsGnށorE'qfiS<9z,.#v]Z,"Gfo ܻ-C-vga 7<)#^+ 1Α=1}-$RJ\uUq H6I(xtz6"]Gt >N9wa~Eb]m"!4Ĝ m4}/GKEYaL ec&& 4ӟf#ȏ+U26z+/NmӤhl <6Exnuv> ђ( ,QIH!qkvNnw;97PfC;llR Nٴd̐jØA =% 0N#>"y\4$6E X=@G\ݗP7u0ϘsEMĮ)@  t-^xxu8`%*Y๙͓$`/{N n-s&)pYli,b}J1:Ke,{l[^ ۰6ӣ k-6E`]r2X$ܮo"KBXrW#l%"=I9ivԾ1vљ,NHJt1/KEpdR969%=H׻͡@ɚ:z&a Lx>6lĶ:eU$81m,9hus8zCrO?Dv-ߒmiԴ瓁&[<eM͸uݙE7XR+^C/MmOfH^0Iu7k2zZ95 #dDUBԟf` #uIHc2kNzymw\k(ԴCCImt=f.# В$À>FOAsd,[s׃'n4y1i#~lf(>D y5;H<4vF<>͓q<e!@Bm:vjD3&l9;e!Ȥ#JCף`Z2 ƾ64Xayl>6Mn `ǏmT|Oů}㿫/Lx ^-z$Iǀ ֱ>^f_-іeϒtBA1y&hp6`LHmޙl%b@=qk"BtK 3J|Bv]yH> |d密X}$oA`>a=C , ,W;%2stz?NL|M͜K.}Zo^:aQ6OV9&IͿ-աz#c$A$mٜ̄)=6g`%|ت0 IAj+{}ؾ~\dAa]`[N>XI%[asC?"K˝i7{'M1Hf GAqOɹ\/8\؎:Yn#)>i^؀ zOCgUF/n9-42lx??v|l8ܰXTFLfA4Q1!^ g$ vػ<2&9;U L cltYN'Pؗ>ny >IrM<X{4p d~M'q$}2<)3"v?o%e#=]wZ> N ld\83'īWū>/ .$y0d&$ ЅdnLK=2zcd̽X VnacpIQc,02qg%9 %.}I_Y~$ rv$td3crvZa؀6\!yȒcc8g3b0"업p`wv>m=݈GM"ވ̰: gh\̎m:A!Z6x1. x1Ø8y6}svʊN^K`{>`Ob-8tf0O9X_tH0'gpv?eϑhnH$?ByzXvePbGs+׸YocWg}1)/Cv87m!|$Y"@-z,KHwӄ'BO)`%m~?( F !ʊsB;ޭ'R Յ\-6.Mq=3Q^f==$4FT4HI~NyzrN0K#"6pAw$%($' ɖ@18: s$ḏd \fuK zF$Ƕ0N'. -іb6 EM !&Z7D̖A- [(B8.F^hBIّ1߻V7H(t = ({$\ZX+3Nc:7Fv:F6 .[20# d, lK./fDpbG$"P@g$=]1|1U7Fvz.@d1Cb8IwZ%D 2m/uDp22?Y| & ǫq"uh@1nOKtݐ8k*= tKgϑv\䑖v 8abC9x'gG8e6{4nXij&us'<{$#%a'9j3'y6[*vZF["[xoP1-Mu9@mAn%1 ~~ ήvBuݎ2:{rZO G 1Blm<E\00+:&ɶZ0`4GB9 bAEi'm,r.Xxg5NIݯp#Ŵ%I %ԏq"u.=2 ̩n̳-Vu3# {#! |EXG9ffg^n7ۣ$`@bP[ո3>~H@R{x.g(\v$6[ASLS#=Fg(e Ն՚aߝ._pF.Q^6U͆ÛLHlC kk 8dpx&)%d;Z{2l:1v4KfԓrDiD^!E'{ mLݖ-ˈy,ssSP1k솢SH *jȇz+4a%aЍ̃mC3u=JLB0G`74LXu)@MT83Hj^3ǶLvcC߁R,,4DB2c6 B^IX“#M&/,&nJGD~^ nxdѲ $.&L6FyFcpp!V1Fnna6/2)X1pka$#1.vA,4Rv1;პ lr}ёnr\8rcx;nyLbr]&ܚ]5 l2Hlsɿ3ŞsԱW&nHjHpp:KpHn Ŵ>HJ(oc]e`CP{]&X1d'*Gs#p2-M㻑.FЙak9jm0g69݀x 0a'wz(ܦl"a.F` )[icl3<>e=$ CZ32ãŦ&>!gW>H7mB1>[&2aH3qa{ !BtZ0`bǼa#eX]!NY3Xpٛi"Z7Hs K^WBTlh w6dޭ0[ mdP[!Y 6'Ujp崶Lـ%6 Sי`mG,N[I\/2 Kgzv3c_syX08-YKrr׹M<71l##ԷhSãüEDyl{>f+xD ɐm0%s8&/Gix$Lڀ'F ,CDHxG[&gX4ăonv ֱvl;GR1m@-;^l>Q} &c@u;d̍Bbc)&q7Hɓ̗K\3k,flbq{\6ـ#&03VwpЂiAh䧼,}'dt`ft%_Bs ы7{(F=K;:L:?B,ĉlD~S@] rv"Րts !lc.鉘ߙvdR `bn,ĘĖS $M2ɛdeKXb- - {&h`0TJr0p:8q7 xÛ~\ݶ!ahˮB|g# ] o-;8&mVlVxR ܹ] ;Έ.JL.pNę q3K,@DZd7=, 7j`2w!TGc1.],Z(`%Ԑ6c!HPY Gr0g?II y ہ6k!SVE{W6X RGtBnVYrɹs]nێ \vGX'q`wna(<WGHdܸLal*%ϝXCy(q\=nj;b͆+%`-@/Y?'~xN aW#.32! cdeFZf2|!FE>xI:$ 4p$|nC]ǨX9Xzlu匹8Jv 2Jpr, {xp +rǻ;5)ɪ%xOKn VĢѶ[Gxte0;Vlcrԫj>eȩv $+b2I'!"s&kQvz:cx:I="[AbD8$y3gfR#  ]}n .AF;n`Z}F2{z/AimޞD׉P[Oqi,).it`XnY8|lva!r~$+~la[ZWmqq,qmI˯NH!cs z JOg6ǩK)2ݓ3~G,|D 9n;}GMť eZ[: ̽ˑ!hqpa'1t=6r6xz Ò1DztCRw0/l akmc rFK&-d2 ; ":2~ <`A! E]rӒ pm C/c`D|l7"K`F9.HMḎ/FG,{Ĵ@Hu= D7"Ā4Mrё 0Ϲ' aGLcQ^X7Yn$o\B#&/HŎ=DvxH6-_~.]~)ounfA8>*XІZ1yD{B#2lߨន7*öٗ;hvhNrr3%h(mϳ܁)D8"`!Pe8=%tF[)5D1-| @ J#3 QFXR,yoCjѾ7D -rxE"Zb+6XIasf)umd.IsF(:6$FfPܐe%:G8ˉ6\|zmCR`dL =sn X}#aBy%5m|\^og}^N`(Y񗫼arX6{H6!pi |g9]gpkzR6, s~KP}6, 1!ؾ@$?f0gu䃁%H6ڷ/U#AԲF"%^t;^dOars.ܺz ܈B=EH3m.0N/DZEYv=<. X @t,x]0k aMJG(ĕk~ʰi@Ad]w۵.Kn5u.עxH;U2 !fkf~ FG&& ,Μ!ls.hGRU1l)x KYVC=io- GЍz<-ϲPiQռ>!5nN37-Y tȸe `GƨnǨq@d3-6'NXeCn1FBHk2c+I1e MƑ;nLF`ʴ)nԸ%ayEI7M-1| b,HGHmh/RO"`S\2~`XTx\y46,:dMo Ga22ya` MCR%  v `K`X$1XD[X)RjxF1,0%zv`ÿp&nrIH2 jw,C1\dnmĐ'Ͷbθj&v6@2 lWn~ sɁ! T8wh820&/>`D9IφפC.r:>2Ad2: .9 4I|鐧e@S}O_xÌ^&c*? %ԹfCnNGùc;KP! %'| J<?Xdg ;8O-6 mKIvܧ_PЛ9&`؝Y.}`{c&@,r]%xoXX7 Yc=z&J OlgY)%>Ls}95 ߎY(9 nH:[7 r-=%KMN>Q=A31rcs^6%sui1cl<a CRx,o NV@@\3 y5K"郐eک&\waqs^panz{]6N̷ؒaX.} ē,{w<7ըk'*C#@^H%d6Fz69m0:Q@2&f&'SB'9Ȗ Ra?~:H6jG%HR 'őѶdx$4.]x#>qÎL:!p;<2A"!pݝY't?t˶` 79fG XYR؀aZp>2Y3tMDCΥ- U _v''! w9#JYʇ|Y鑗v3#sf7@,uLsCgV ˹$.A~rtW !Pp͍K6>/|Aw1Cb l8lf-r.kO;eW^r?ѕa̷dysRKA1 vg.϶' 4,LvnMYXa;L;: #ꂸ\|)w$q߲YsArE7gX@0O7x`MKV2³M8Z{ޛL?r D'bfȴFĻ,w*Ek x!"nq́0!xFR!R!M߅,&}S<2.82\a'8K.aVms{ 1% }?if:ˢ,bDȞxr)GsRz3Or uRXͦ$hGYf-ϳG %\l%!#`[ƃ/dj}$Zua 2{Mv P0.ګ9.AA-Dz[X1{@g Pc2&^L0MCU;7+[]Sp@H.J"f1\lq%{8mɀ6s i@N]XO&-L[xHYRA x.<:|dK 2q-}cn7Z6 $ ,7mcx+ 7]IDfo<źDn\f,Gڸ~D%O6stM%1qK 6ݾḅ 3.@s_2=$M9HwRwT`Ɯ{‡9 7?^nd11'^SlyĹ``8ȢrLvR@[-XY00L 0ddew-6='as7IT ٓG]i1s%#7@, {[,-_FÃ=1 <^N_W,9:|8DK\gCؙbLսhR$z zgßi&p).-PX.hXd aPt BItʍrYb|m8Z.&eP(2abc.줴' .d!Kv8llC$I^{-N/7-.c34m<4ě<@czd-lඓՎ3o.v9 r;?2{)ܟ[(Z$kԓ \22ky6K`9qazl:uee y`f}X8nafOsa*1=L;#$y51lhf 2q9HKuT"<`lvgK@n" ;$+i '6SX9}}ȧ$3~뛝Xa޶!9{>ay7Q.)$-傘Z9`-r3 &0 %-0I cmcC c0{$y'aD9.BFr>P>a `8q.+s̒-F!()K 3<Ϳ I]@V&QIA2ŻFXr2{X;l XGSs[ JqfHZ ۢŲl$Z,6T9jړA>2vO 2"繃X Fp Cd1]?.~8$ c&$Ndϭ'?dsķg;Ofp!0VC߿ܙq8]sf}j\rg 6Y7 l[:[ G d5n1Dg\ض`.vݗj #ZԒV8`=BhN@M:mQZ˭PIͦ-Y Ɍܘ Zav]A+O Dd2~0btdGI1>y&nm̴uq ռT# "abL!rAC6[!݅[{Y#Kp2Ysc&#ddžmF]ٓ^'RE h3y$愔,0Wb6H[!p]8Þ KXK-)>㓨eqvq<߂IMC=C"׿ޛO  xv@hs VtˁDvG0OU++ȩyIK l>="L$̻ɝN]ŭabX͝0DгvzXKit-ylM䓅vIbFU3_Q `WY` 5Ե̃Fgޜ9-οg2JGS0U7G4qiz$r0*=c+Ml9 xa (d甔Msbo-d< pل$"' 仝s&rBDrYmz"(V &37v6#ÍP 6%؃I\%h:-8 RTa>8vq#d3ճb~'>BrBV AHCqBmjDۮ/P$6%9qKMDH[`;?] 㗤1yZBD {l ʶn=>ʠN ?h?$.xe+r.fc:atRg0[m ?5P:\$2ԛa%#n~/`v]6ȣ(6=Ch<6"m`6 @ OF X6vOv;nn]vМSIJ{*vJGQCrrih1˨F, DžYvg3J CSSc2.4d=#rw+Z =$\e܇}"ure]QϹ׸VVH sB)]lYy{=B9cTC8b"+ĦXgWݼ,cweiɝ&$ @DIz z@ῶ܀pO;N3 XwJc//7,hy4bH$VK.y$ et@KāL|rV|/K|/,.>p!@~f-.wT|0uIfjk.b"hݺYvMʃ5E &Z@csbVȢN c.Kw1NEg .zӜ"9X q۸@WG+0q!_-X$dR  k:!va&C 8# 9OSеbZu(:}!dAorTG2Yb-=9w]ȑ-,NEI]s$I3`k+ݝVgB$`6,Ճ ;hɌd{,%5UcBK0s2ִ,nBWf\tufJc!Vm3- 5`l;?9-Rh$$Ӂb0W\ i &}dXJm =ı El3aId|}zZ3]>92W<̺͖̈́@yCzY$>qok'$:CdvfxF|sтch]ݡHGyy) {٣cӿ fl,2twpYݳ$a -h  KG:{va>"l͸n} Ȟ9df'\ w@fǶlZFe=.@E0E0͏}H8]g{]߁fc#Oz.̴ - CeDۺ86W| ad&hG` gyX;a𖦒=gXBϜgd<,`XJ2у{" 5 u8kp|*x21XX XNazv4Ĉ6Č\Ym{HO؎{t؅1OKHLd\foWs&OMk-R_mk XODEXoAy5H[@}cy<r\&Þ#;pcum^F9v71*mi= Iz"0]KzZzl3ϻt\i2̄6Kdʹq9o CIp{IwŶߧnM]l#zs=U1EI=uu%Ǯ,k\ܑGޛom!c%~21fp?˄ ͇Jws0t͠ 0î}6sLrBd`ѱk,,?ɳfV;q%.ff]{e:9`܂d`ΤL \! -]=/Kb&nq2>3, c¿O}\L; >EIHݱ80>$,I"[Ů?CldLCl2˓!l x8tӱ 1TI=qW(9bœYknk%ro:>]^Zr@VFFܽ@J͂KŊ9AGbxpScH.mxs؉k-1,,O\y.!7VZN9.dLM|;cj^ɹOtf˄h.\<|b6n.=Icr0 /E~˰Y!3-<40mP." 7.),]a- :'2 't"˪$al{d93/wes1wkn,V^ZۨH4f`!E`°GJ7GνR^ŀtK}H)oVrR@4Šj*:+D"x>tFH,Apay&v_9pNzWskuȷa O%iiV\7Ν26r2/'z/Z2 Cerd%ؤr}H{1۠a-=.IX)'l"3,=|XXI.u1ce6eųIXCdY9Rn΁kS`=q4K!oDg?'}3m%Yao#|0"TMPf$a;7@0A&6aZ ῑNA͸QT;@_qV ^&{{pA@8Qkb- /ms=N49ۣ,]p#g$ 9Yhm7W'f yԖQa.bd (iͰ 4hD7#I½:LOMۂ-vludl`f'pI $#<YK.dc-.-Iň&AÜΫ`a5rzNJ 4#C!-HnY"bf,zy񉓣z̜ٶ :wa bT honnnXMK9 9/^fUâ\'92H!8O$nDfZYun 1a!ktMf7,i"C%ʌ#ECba|Iu`r, [2,HPbiН,j!o[-*c 7#$!|"=*R~d?dFE#ͻB vcKhB䃇4[bd]=`MbC(?&Ĝ6@@F4v} fe4?O`Fkf@Z7e$ ={ =N[$YI>=->kj~Y"`8gfdN{dT-;ڽ[V+5n->gZOFe3F!&Ғbex9ɑ!KB,|.I߸ ry\@hLs #>\1L4&`;ȱ&IbD]կF.oNX@rGȲՔBaC@<2|V?.]xL&p8-a͖Y&,WGȂndqp^K/aq|&@Z$K8lds~s/qu8K3lg3DŞ"絒Cqzko%ǨH,4&lfSn<4v!+e7R5m䶮J .A%.G9:$_w87g&wNru,VƲD&wHrnt )x7 ?P/îf١Q/^;۹ n x08cY>j1" $Fw `g$L w& P˒@(\X>xxǭ gIwd3.zDx/0wF}x'?,b 笸VC`w{>2՛nRnՒbJ].Č'͂8rKmQ._ϒ m1ųOVsO6]2jcŜ(m#T.9qc EwOvɶ?D<>&%b[`7G-K:SӋ b/?"t&w/._p6΋n3ܦ><{7 X-eI1sl+ }f%t|bpZp |CɸF&WO~?6j\0:qmr>Î[W.nӗ!%!-l&8eHvJ`r zB%Uo4ݐ= i,뙘 LONZZ:ÜC6 Z,z]Pf;> ;6ɵp=bOo7ێ@%cכ9g>X#! .ъA@XE[Bdƹ_?_B Ԩ_Vl~/Gip{s$a5G@=:嫐\X:1OoAG>} FD<7]*`WyX9'tikUl\MZ6.89q\als!CIU@m=Zjęf_4sɺ[$\-A0SnPBAGFm2KR姫,(u`%n2O0}0!n'vHpmOKz,MYx7OWz|LSݑޒ$9E\$GƵٝ"d7Hl#8Yk% { ICN`Jem]*ə4ō.rٝ^b(pqcvOX=<$NɶHN zpITl^S !ip̈J9/?iv ZfTGu\v Љ lѵc{,Nne_̆${5$" k3Y #p`]@ݼUSX*'H,sco[g<20OVbxꈍg.G<0=4Ę  n ZnD< kR7e˥x~H?$!M9!Ԃ]Xԟs*1HΡf5@0omˀ|`7Ag޻vĈ@#/ErȺIu grR 䛬av>ܵ\sdjI^W )ǃza<6hHq[8a\LYFќq1'm і"% ̆z~J܌+' da'ط@ }2pg=ίd&*z#NtJE#띕m2B/AX.vnFl]C0;̠ lFdOsc:θ HAǀ L!2Fݒh*1!Vx E;N'3 >?n~L- s{7,3 Y# ]茈BջKՔދq*H{ 7l9N6cq.kK2W& ."%lr<ϫ@g3(.- ,T}ܖ]-/ p&,=NԹ6=ܘdv.4gqqlsbH)خ( $@!(x,s k[dfSdF~RI|YA8EÂ`wA#!{ewb6qe%nۨ~wĕe s'ѻlY&@F~1d3xIF#Z.;*@R>$ :A:YY$,K[6U01k y:X2'r:^D!O;IԒ+}jmʑ-܍?Ȱd<*Y 2aӎ#*R_doIf; ܈ Y=%)28|5v` xO (  v*3g`x>d A iVfX\=N"Zn@cB仯Ǿ 'Hq`COx]\@?/NBs;c:ى7d:X\ M--K7$u 7YͫbJ%Nu9q̚Bf&x=ݱ?8OSGRS}1PtbOfɮsƓf6Hb{'ZÇOB8Xr9qaQC9܇E-N$Y~*w0SNd0s%3[ ,;<ܘh؊F;'!$6ņ9ixl`$ʄ9<0:d{+iɝqM#]Xg-s8/[)d?s2Y&cvWGf.vFe:]2LNM=mɍ.^d<81HIq| %i< }%(e aj.ܛuC\,3K9 V.GȓIxּxu!p0ƽ`=D52'`n[hI}{TpGģ3c46:.I(}\qaGhVL]Y{41Th )Q rc=̲"?tgLA$! G&0v#}zK"CFd;gqn&/Ɍ;FpV X}4WbG,"̘'_Ws%ɉՔ`nqNdR^ׂˬici`:XfG0deXK>C`A>wl1?c#mgS& 8dI%ò^H,1ORJ@wp%m[[;d:!lq"j8Ռw=E 1[`Y.\\l/Gr ^L.L[y'S!öPk v-fR/B-Vw>#PXpieŃr" 6w&f.XMďR48h A#P@V,ɯ l*Ӳo]]Mvcwbj"Ih4A2/<s K00Ԟfc0 qGX]=BO]!-9UqG" ѝg s` B`MQWO.$?`k0haK^/qd!I-:|,;B-A}e.MYHTX8Ap{@k =$@q>G `|6X?oNH;UЈ^Kc6OLՁi\͎wg #CQ݊ G(M > 2Lm$Q4J5;(8e{/x R~2ĈA8s! =a~ n3yЂΗeBCP$Vd9UN8EA.WxՉ׹1.R!D$g7#2 iz J .hXɆl`2(ؠ)B7?~#Whސ&s7nE„48d o/r/Ip1n !f7bAIz}~Y&3lgt3B51V6.Fl&p3n3[F~hܷ96ӧݗɀ u1۰2oY}6:ʡV% @fM`L69#*g$Y9N`mI5#ܝM0[x$j\Y7"\ K5r<ݙ 198 #D w|\,xV=Ff-f,d<2R0,"8p +D7gdUc/Wx\Av6e?û?q2 '9qHqf:!tF%7IeP"8ʷ<['M9\Jv(&*:')7}[R7/Ӊ!W|ZNNTo;dy1Zv[zx3͞a܎2;lce#ڰ* =wn|dl8cg=Awr$6 8 l,?;DzdlG'7ec^X Afu'ōxD ;R/m;q Xcxw"İv̄$791Nа(4]PMc`Da0 XNq "}ן/ma{۷]69 rLOL[s0I$G'rsX #1-Ce,A!Ⱥسϋ0pXx-7#"ȱRq$q;a/ ͸I,,Iap嗻c]gp؀qb nL8r9&7'{0$9bGxH[sY]Ȝ;m;B/ '%x 0{MDNd1X侈%8 N`ÔȈi>{7e@ƴcOFR&ذll1<hY&ǖNI2,,Z | pR F\;} Ȍr& l2 czjØFX}"F&b:dxFǩَ)f~@BΗ2Np6sZcF5Ļyg/h.2]}C ̏NH柄{g]\e9Pgl[N:_ 5GE`:#nYCNȚ9yk"ܖ= 9qB$Hַ/;;FXB`nݴg [flo2{DKVvl< $ $L8&$Z-$АzN1sQb~A?FIMXrѝΤ$1y}ڈE"C,x'M%0{5g @eX k7vCQb>L:d>@|c5>W#I0Ĉ#S3rH@9|}p3$xPM!={Unfb ϋ!SufgcnrIN9NMہcss1iӫӟ8y݋ch| o ʣdnofyFr`#I-XEK #ό=C~apg^G:;8lBO &LIOpdԖ W{>[}6t:FХd#с#"?&k1ֱ݁Aб:Gs0g-5x SmذX<?i-# ͐p'L^z1ө|//_@8HicoI$ 6\-W!N8NK!2!y$>:=#r(iX~(zoHp636DB _V|ލg/aq7=5edr[azq^yhROvqnZdF??q"f r}J},Iϲ_N| ~.r5'GW1v (whjNuP;w!Ͱ9&J7 |vk&[OdAᘮ]\чlNN'JMdl}vA𷥷.`$Kc,;2SPk#M$l2O4ʼn {e5@݈׻|ɰz]FEtكEo$)%"0\Z4,O4~ݗl'C!#G\8x1;RZ3WvS{A$7`6`"f;'8뭻oIuo>a:rv,=Eɑ`9UV3/xvlahܾ5C!k(ƒ9 Ct̒"oR>"?G 8\mrAP>8S=z'CM{[PȬ"bOR˸a!ĝH'ffiprfou1Iޒ=9J/ə-FI$rGՐV`ۜή !17[0P}BHMk\;V6`=} %i[TJ"@ēzEV ̯~mAz#eS:&q6㻲dZrtCҝ2 ;vG" Ɇēl.Ћ<$?Km>~,iK2dٱ`:%`ͰX-H\%ͻ4̘X1Ol9ܒ#qO; 6V;a7k!, E)W1,{jZ 0ko&EfbwN2 M ؙPưoςK147`8G(F(-8m'ñ:*&3vm `XX:Iܻ:>̟!߹+fy!`{>r:珻jz=̍=,Nzv7N$XAJGJ+WD+ Pٮ?F~JO ]tc l2/Va=}ܳdNpG-}3Qϫ@?Q-?'w(" ߖ,ޱ9zs73XKiשjFz͌@2`L.f! c|p=Ih,6fOݘ7VAdtM{q7x8х邷K\sIzobcvHl 69ΐ/չZm$>C bNOGI2Gg@g5(6I-"Gp$mdr.08!?fN)0/)q1aƐ0bqNUAjD;}O˩c6/<铭 @}/q 9 y @hÌcoNs6RA ,am$Ghv./Q~Kt'tr%Naq3ӑps\߰X6!;|Ls#Z`o9$'ٗFK:,qݻBŊrD[^}-Og*qT!gY 닦 `=lq; 8˝75ĐGW1too+{ wy c%Azy56}D`;H3FK-ݐZ6z޷D?[.{S#߸ڐk&p5C&S鋩tA>1-" : cѸaŭAnlxIR3b2,=HܸՐVm3cmb p8\8?Ήi*s@rd1pϋ{a,},zdsb>8Ue&dk[&Y\ηܘܯ`(sg -O; pp$%%cA&.u=X/~1- .I6/yM-xt:uY;ZHa X_ED\GeA(Ol.rxzPxFR#8wD7܈'b3I'pg[9")Ow#`䢰:Me)ٗ.7;y,>,5$Gqz$ BDՅGՂH1^Kȸ }&+`pM̲?M"|,Ep1$0ArOrvaX*䴆ﵝC񒃛zCtI0OϹ-Ly,7Pq(l=ICHp4'<s+<ssi|K0g6d~7ݹ ӧ۟~^Qz 5%ޭ?ƸkgA“ڹ9(p$N]g>]ԂͩaËfm92rqg2'C-:>{odutr;8Dul܀r§ɫrjm6Wن1TJcÈ-`< KC ,E~Ql5H[.zTNL1<-өG'}as9d$zwZ}(Ϭf6a=c.ZM!N8>gIxYbg2*X53&;̃g7hl!LgX!DC9rLÓ'gd]%tre%I9%ߧ}Y"䄋cq="ǓULjzw R2b'ʖEX%&RCS塛[fgۤqQ&psLX`G.VƨZv֝>p8%6>h2-+bp?2k6XE! K\J%hs\>ρi?f2!UYݹ'`HIMq~峎|HNܳ#G:l"df}Wm#،MС3%{fegW۸{k =eϜsʠ5ˢ 8nC9k^]}174?yx~ A =9~9,(ka"6fԵ4sݐLi_]KfY?k,țU <-IB8 ` l7yl&(51!OL vw,:o$,@vH}^:zXXD`N胳`\_$;Ms>K}vrs:d^zaQ9{#!}# %ȭ1 2=hA_bEIar6=!3~pba !e2Mg$m0'쨸H1ƐsNdxerXqm#/ lb& zn%_ <'lFk8!] ~  b Þ%A-lpNXYFV?m_jS@{ܻA $`KeA ]>3G']wJgtpf$Cm&2 ${I,'t́G&=6<0/F鏶}ŸgF[ ma\NWH%s5cM2@2{ iEon\KreɉahtA9n̏0zdgiZ=lZ1 z(L|hIfFA^N>_3>hzXN;( }6τdM@ad!Ů̀([:w$Cr3M Mͺ?vKWMlO=ٓG SBΆbss0b8;W%Iɰ^}.Zfq;v!.S-V$5bހ|%3$uHc~D;BӁ˔Hi?˒izn3>COĸ$&{8kNE~L.c\cW jʀ>R[׵ .Mt4K"1ަ_W}3 Ie*2 |.&b6Fzׯ #p3ÉW(gL.@p'0r^#l9!{xJT J-ۑ])ПFj:e)!1AQaq 0@?.@F8 %k69v ~^㛦L <C>LtKd_' aHԶ4$BrޘsYV. \Og3n6@QA#!G X|9赻}%=af% w2HBwx V^ kLa:}l&ُorN1/vF!i[ 2[ym@;.br iFѬ5гXV@v  lumsfAܰN<9,}0#ûb K 2̴$B{@ih@lO/DKBZv˹% ΠcVߖ/d\8۸:l3˶ФLԊk7. M&zg/C;0G5̓b`6=cn)p@-헛RFYB@{do;VB B6y>40Rlg 07ܧqN).}6Kg$ >-#=0gVEJL)cVcvfYfd70䷗t Շ 9VޭE?Q odi%\R3e&|/aymlZiju 24ed)<>Ɠ/q.)@8_oefZ^3}r,@9.-%B2``<~Ҝx]烡} ߄F@F﷨27sj,6[k+'Qo+<̀.},Pl`$g씐:x-l.dNwC0n/Hg~L^PQS`8DI1A73YK#IDml,8hyax%NAL<]F.,*Y!s߸+(FQ \kW-h3X!L Y!eu>m ԇR >X~O!H ή` բ <m Ea c,8'PDqd=ͬf9G8;j.u @97^}Y  xY0tƾ]ltXh\KCǢaJu*zkݵKMId)O69-cm͸헩K\m=><59.+E|.I#` y86b1b`Hd o 7B\o09$Y/Ix ĀF<D܎τ81ZD7-Y0go>ݔ3,. yspGt7|8"ťބ~d8ku@M'Ld,=B"-ṠB@|'qOHE7!\_rSz.=#K0In+F826G  'PFIo18E QX"^"/qO"lDAcC^*X#omȖ1.%&$'2aqBtKVf˲CnnGrhCI'#gk4F &05_ &dY"A$d_mv=InG#f2?"s=qa o87Í\r c;0>N-=,j@}3S`1iɬƤx6=BsVlmv$s݉=@Xg+][#2_P-0XJ Ӳ= Dg>27$83[VmCQ< q)rréi) 3`bx˂sVٞsi7 Jha)Őg '|Lŷa}sl4vPJ}>BO$?9D!= -,4 =2:Q40>YQN gY$zn 6(#@ow|d?} bIz7d!$,]em7I<<$I&K:a({Y<ݬGhOOR)MqpH;.·yE DΖr_q* #G `~ZuO ]x> Y! Y~2B9 D8S6Nnx-#8?.} A| dE.`( dX @Ѳ'Lqw;=Iԓa}x.^PѲf0X> e L Y<Hۣ";/w\'Q&M`k谂Lls,doyl'NydL d嗹v=0OVDH#]v%Q5tnCMl6Ѧٗ'|}gR0{xY+-{#][lddeXyDX̸`A",ˌd\1 v6Idy e)9!] DG sdzžC'j ݇dc@cAY`pmt,@1A9$\F#\n,Z?I-.Jp6 3'0o|pX %z%udGi)nN,l1$||I"v;?/A#3 lqB0۹te1:A"-ERbi=F//H4/!xm`=s$6<VFlil[. I<OnIdžC&sP,zp[92@@t"ٜDk2S Dl?"6&l 󄥣X tX7`A(Zx7*imamHgB+{gXd-x!A3\["&5#.'=lph2\= /\Cso!d{D]!cBb$og'Rn#xOo,0y `߅6q 'o;(cm$-[KW7k MG\]`0Zؤbmː^C$`ڷmřϱ"7Z^V9+ԻdB :u&Ӌ pHmHpdϷ~a;I'>x\i9IX ! ͊`=;KpʺHx7%+B-̐ $ֶ:X+r]Y7->?x-_^8.N YɾɺY~ vqܐL,[:_6oKceF'v03g/"=]dOm<!% 54_g !Ȇb_bLq=OzTX\!=l?# `t) c.7:0,' {OԼ!SdUU˷lqGkw@a%rI qyH|:nm l3d[II TB?rIO Ùl,.3J.g>ŰY/vx% a=K7rܡ/ nE.| O9X4!qٹ">X=F^YGr8]F6rZ $%l@YT3b'G Ygq2IS+O1ձea6TrF\5#/q]rQdXX!6ٱteיԝHǸ5>|]&uApd:N'Ha-X$c ~hrނ5} lp>_c)q;ϛę _: vU]d/Sb$m!f OCI6ؑmd'`A$l@wi`Sg1?rE@բGDZZoG8| ?vv/GL6N%ex .|6Y|0gĔPsSX1' %ٞS,aHsp.I Q&,.a 콏촷P@(6K<3|6d $V= ֲ&$d_4? S6y{nrYǎ5d0qj ?ly0 L%?>y:OIx.2^+O6ga Tm>g^쳳0<ǥ^ٗA=IN8׋kn!jn8KX<[3|,3 @{I2@ ṋ(Z0$,[O3 [ aEUH-m,sv`Zuv<Ko^Bl!+. ˹Sw!XI2 gՂ͓  4܍XJqCFqA-O_m FKP猭;>$o=ˏEdgŦAnr7ju+v2oňv\CBbZ8 ߀i{-as3d鬈Kz7uZbp@!wk-&<2yJ~vL95IVgdJ} 'h9νȚk@`7,Yi{gm]u7##TE~Vx<>S =-~&3#v~ӭ`ϚmJw_ -ML3l9Z`;}Trr6K'RưCabnB"@%!?ǩ}lN$t'%I<#dxvs- n3@o1E Ua)c`:"ݛ)s!87Eɭ䩙?չ3#a1=sF?wH_o}ō{nnjP8J$\N1' 3Aܻ3%7S%'[g9 mхyN2{gK$r#sW3 ,F<P+8}qccu!zCzn}\Ei 8:-;d0V$ ex_|.xOf!œ0};AlI0W'~L i-ނug4/dc^C##B1,gKXLAG 2P0x0tzn}w {l'@Y"xbYdF`Rnc5s#x ,!"+x{z$oO @";fuc>3uF6Yl9n-(I6šԤKt!lsKr݆'ARnWԸY"Zݥ?KdlsHpqͲxq1鎍.7A*2s(ӆyldXr"&&xfXneה)- b{ǥ@#:X39&*K#4)gs?ȸ\͈,$ln; ;ܑ_Ԅ|lHyYl(XvXZiSv~^0nH:4nP/ 0xEjqz 3lMN].cn71!7#-IsE9> C\iF3<',MɃzhd|nױ͡0!#ޙlzK@.6.z/ӧp1^oI82e:@p%Ƙ8Y6iAj 僻sUki,|yM!!ݰ<ӡ nCG'^`#d݁t#'4m~I&l~\1ⅪA}?!ƐIH- $rkge0<*2C)0d~rKF >Nnoz۸ lLէC,|ɄF;\|6!eVxg6[ݓ/)2Ւr4x=YY-\swc P@ukzkU ֿ!--׌ Ÿ(^{sS|4l%6x#nפF Aqgx%Gãur cη#0qk1ϱ x<}B [љ?ᰏ8>D<\ 3Hp! ['`](: 325}WHy$9Y{!KIKEBd0dz ,+/EbLK%l$%er|%z%7 !e+8ldn٣f6[ Ν7` ,˃0U`T<#hx &A!OʻoN?AdEey c][> Aa `gβ8Id &)5ao˝XAkx7g2vOyE1'h- G\9.%nrvq5ĝta9+ !2^8,˲o9> שM,&27jɒ#a]8*iTɗ9yw o d&q:| 2?$=:$$y<-7sC[a0xc`'oDh"[]K-\ hfbNe _|0٨ rpv=C_X<3|vG$sSw&,1$ ޢl}@qW'mz`{/n0\--0 @$2A8 7q," ܶHl/qk&^ eԕYw[ }gb ZO$n_P;&xdg| A Kw7|" ė_3dH% $[~1al'_A3;8>?f4c) pb$CYe'%#bnm,%Y,\%qc4.}f]@2ɸC d<Zw ϶\r ~~-(3=/ fM ߌA̲׃ gL,}/k3 .A3g'}0^d0}$e^7 e_mO $$=0軲q8:1@x 9n| >IN{tOx]Y&Mv, bbfK| MRur/cinyVsO}sŷeQ?!لzC)ez_p,ctugSM%x%m <|0mI'0$r:Tf]99A- X|fXJ:.}zX^Z sWl! I`Ae[zdl-*Iň,ђ<-7B%$|/ȢxNgmA,[m# К~>[#Éq؝:a_ص{'[,Y|Ka^g=7>`aDKK0^%Y|.܂|36  m2K'eHHYbqH[\\ ڤ-@"F#C6.Ha'- fqB~<(KWĶŒ 2@C.v0`,_ 0Fz | Y xn}6ܝ WCl8d:- 9_-GD}cceǦ˛`AX6IXO j:A-X\'VH $1 `_]㸉$3 s涉 5!X,6?M(-p`— | )؎6IecXVӯ1!7=ҁ<#&-6"{_=]Ňqk97`n2IYd RCwgLJ}0"ɱ'=t> 0R2f[s=q vk#,} HFtB!#>7Xcؖm âcET(K :7dėd<g $Ag,F{,II1 5!dw$6 GiFɻPrL,|P[,zw|/c^@}E=!z,EvfW?t|k.W8UWGVIΉ6Y~V$D <$BH`< 81g/MnţE׆,_ IA}'F UU6S9ija!g_ LO\27`QXА =!%w۫2={M$'ܙ2d![`!'$0Ko[^W’H$I-˸xO"#kH$Wg-p9*N} .`gEqp"ޢ<`3WY&˰uL-I.Q'lvgXC͘/MY:sHϢHpgYG]XCvRP7۳3a?gK9t: VkGY%}ad/p>:-ea, W0aOl|+s,Ce\,9^9娸~8vw~8UH3Kt#}A@]>5챀 -Xem2gkXѓ&mMYlL%wH$~a| [cK4lhx$6!ًe疼OiCf~[rgD^v\FGe$g1| rxmi'O\;O8=y[|g5.&zʄ ?ˋbvI83ְ٧krC}I:N:Fz7@fdz' $)r:o!<#4g_y^'2׀>2A;=- u}vTԾ2HamH- #H|_W a W?aU Oz@йe2I,Q Oe\7F iȍ`I`P<BO!`3_^aaV'8l nOM>  K?G|)$-,shvoX3f%1H8C-Ϣǎ7fP DzxZK 2u Oe1/\x|ªZ ɮXHϭ K Y<GP&BO%n !Al6//%XIiǫ AdAe ,nZI'dɋk$g _dk,3$xm=`A8,i/o{<,n=3nXYeol2mn=sm/I"[d{%rBQbA$Dz\"I4 maY%˲Ƥz<,OI"/LHY<%[m|mϳDMxa^V_$L vLb$̂!%C-ߐ# ~GǠ[p3 gmʗ-xHgeIO+ d6_m w'nIag,baCt\u0edaO;`ٱyf7.,,\עH(8]7;g-AG(\ $7=S%Y6 #İ̙$ȸ̶ u% GIC O,l0vB3~,{'w-3SU_7s| ߁8,i!ѕ|[W)d`lcmx,l Z(E&(C2eԐK$['A[9xP#/aYllw*-ܩbЛ @AI%xŬ9=}&AXū"kuDm a3 @mH'_lĦ9 bI$q|!I xOd$ cʇ>6$ ZH $Xa)" 'K,'-AI Iu]_V3;3#.=sGvAdxwȌdO $,净wi;Vq $K yXt[wjf[Kmĵj>!ae2mL0OIg1<mͶmO7~ ,Le\d͒Fio׌=Ǎ{?;dYLda &44nf]Hl x<þݲAeO!w^>Ñu;#Gd:lZβdKcA623ӟP+$8[|BrdkkHCWvp:Ie !R <'ml[/='a ex ^ Mɲx3? R ,ɸWm-3.6E6@ZWewV3@d.2E 2 XIL٣s9~!8J?A-,G`x,6XrX.KIxQ^|k#İ:%$i d ^dR\|%û,_']C|drp~\!g Rnv)Z<[&CH.I }M<|.r>3A$Lȗ<|bF 9yO=yNℓm2=g\A3x%ɀ7<%t+[>}JsI].X=\͆ d!3FXw:.}¶BmۙǎSXdh*H4<| 7raA'a20,x/3{fVYC_iƿLOEIggRs<@:,%5 C{XR=O*O؅ <%>#6<', Ra-6qC ?yg|DۆS#4ő%bkb^Rqi8 nKڿ+|`xR[bLc%>l>-X݋~_lVceB`|I8A$l񧭓g#%bޡEq@OXnA]$ /F#dA',˨+Cxl1!ry8pms o 6x$ m.[0m_xw6^ɖ dxd]m DNgb??lfgnFp G?!'9,k՛/s+iĜa`>d5 flaf0G`r2ݾK@&ݡAM 6AbA<' G ?! AoS1ۘ_KĂ>l=˦?ۢ> xco_z/O~/c7'<$F{| d8v a'^,C{%<>-A!/ ?)H oSu ٥l' >FȦc#e4O XInHg崄Y&pl0m#Vx% X|$jnY 7De:-7km},Ģ%}Xjܙk7|Z+#@cI ̀\Ț[6t$a96avl )pϢRhvOGLJ |<_&e,-,JcՏP,!C$Svxp@`~܅K3xRxߐI %}{8%{t HK o3<Æ|/^w8rD 5 \.`/J/.'<μ8'',n-ٳVL瀱i >qbLnٗ$MF]YEϲ_ףIdI {F.?Yq7Y Ow$RCl &>ܾHg 9eh CHd$e`9YdZ ܳ&7-+@v#"ْA~P6\!eR> *MudCeZlZgT<䁜|%x%œ;L1;XE?\uq< e`OR81\A M.֑ >:0mHd3j nx0YXw r#5dR,!X@Xy8C'&>7\,cyٿhIdag :\Kw&p<̟%ܸ_EN, a:(,z$A#ׁAKdr\߫.z|{cAk6X?3vX Mb-Ogd:#s7o"֖`,BϢ0ݯO n6jNw2rw]HemD|JOY><|2\L E?.;! QϲL"V%5Œ%*2Ćo+ŗx$1Dl9SBl\ywAOw',v3|$lKa{gWp~Pd6)զY8,v߸~z gW=c}J*ĿV<ތճI,_ż S!faI3/" Q?8l0,qIr GO]!wH^ޥn>L94$C+Fo&>[,A}J< ,.,Y!>;tF[{2&{pnL&[$H9->% /x$7c%iďMۋ!\ZA$_&/w6G,KWe, <(JP#}/0~.A˞:LLwՓT۟fC,s@o>pC({{p$XI $}#,fN` ψ}jC<_X?"9ReohҭO Ft+1tdX#!-kqpxs;-'eę w;?;' ԶgbQ/QvyuzeW2W#~c]:K`9iML$ǘj-{#/ 5|st>8xd܃Kc q 0 faR'x{ #}֗`d$:A#0̻a7g \80o*w m}akmYdmx d3 [67u-{Hf0k$2ϩwǃM ]Bę Ӎ_A r^t'ѹ:sKI+R'߀D.m>/{'~\N6[G‘`jo|nDg^.u&M#ydΤ'Ʋi{7g1k݆ ,I27l<@x?a&q\%Bxe'nٔ7ܒԨ4#$ >uq`=؇d3[_ q{$? ~` YlGa\{,uq.۾<-3&H1݂ ._][@ݖ%8<% ݟg:.۟o'2q,\cqoug@\)안4/7!&01g({h g/pwi B6/f]ܝYHj;&ʻp/ļqb1l;ӰZ>.HԄF»laCH6 KLK\0#٢K.7V}&Adl,x5%u Y'ߞDP0 hr_#|2eY$0ܘ(kh->$877s)9̴lZb !2Þr w!#ؗhF\!Y{&aiσ' $7n678 l3#& 8%c;?N\=q$0Btu^E}~>ec*ȑ2v D!/Eo^;LԍH婪`S|Ǵ+ ѱkdxw`E.7 %X\F3f#~W$e,ͱ^16v`w5Odp{g>| 3W'c.f[TtYdn!ܴbM / ձ |wIɬQh[Sbo;'rB϶{\,loт{ GB @0/~lA 5/2-Izwsc]6 >:s~OM6/Dc(þ9{Z L\}mlԱ͈`$%ǝ9iS>B@d' G zN H'_FqnQ7òB|.Lnsk㲒 Mrv~h&1mBHtٵ plIL-H6Xaۙ?Y-6,(-D܃4m/Ň޲qY{]2F bB Hq} Cx4ad< %aQԸpnpl9q`6D6M̲/O'#~I?xؿ:nmmfdΥ$吪1$Q%֤al`r߹.ǮQӟ.'33|״l뿙hںc C^>Cr 6[AhV#dgG&m5+Bj`=xzK2o=qkgԹ!,5oQkHI;ˇN3ylCGNxZl&s? >D ~=\.tFt]me!UDF-S}Xsr pZ|i'Tz僉|pm*@@g5| =YdBאysoJI:t} %0 Ƿ.*%]XA?I/u,'Szؘ~GS' Sv\dşvv|bpi.!#Ed%S },H}-=3|{L<O-?ǨmmS]n!.YGdF V_uq3aI!7Amny"0ݹ s&4ưf\>]zN oH^JFr\z$<$eps@. c{n?Mk~aHٹjGܗ~2j(YTqѴ(xO ylzd` ݁ d8G_$g~^$ʵy9>m tl<.K/ff,.ÒN-{aRm!5mYd+ ˍ{׎=#~HZ$!"x,!Iq?׫;[dńїgtOײN>VOH'd#smb> #Y}OvKG"jȜwaf6JJtNn-@X<&_Y5յ $_K4UWQ;~Ѿqy`\JG}7 NO̓?0ĈR>Y|8hC=F6AՃuDŽɰmV|ChچgfL>:$z!Ij>INeBQ OiYfLc}"+Y1Jq1-KA>Y~_ 8sINEbp1{!+kw7l-..[zC;MMg V^˼7/Vql67e >Q9Fv{[ǺJ y֯{mKs'z:/m2I/$oCtn l$ba-^KCofP<푒}df4e8' [HZQ6>l/e.cvE- : ̹ лy'b^ى/~#.kh{Y#&$d=EL"1s& <,Cpذj\ct#dfZ ?sj͏p08c)dL?I2&aG6=~AF{Zd!pGtLDߟï)ď'q- K |lv[K^OFZzjI+׉;CxI=bFB4۸{vl[Y$צCۯ Gacu ;_H~EG:> ѷֽ?#߶B:"')ss<?%pg_i MHbX_ -l7fdF{<$|p\K, PClb&,:[OFCNn`O؃r/b "OOfRw#ÙrCuلV4#v&$=nqeŸlkȸk.m§ q% 0`k'$q-$I3$ۦJtl[s K= g>;I,HREO2P<DgN rP#NO68,e OeѓY$A߂sr0C=K\W8s7夫f&~g4ZKv'#\ ;~殆Dxso qsx'}rm{,S LwHuw1PE2jÊ\'KVKkv͑10 BZ վ~"[}SF7w%f 0ʼnj8O>N 0k,a)._!0/,YMSG5ͣLAksoDmzVD#TV4u6ly ?)Yafŏ[x=E2lF}*l͹{dEa3xKC3Y HY_0Τnlqqlm$NyE3V4 >f -86.b|mG ~?;,8ԴD׈A=-ǢY!@xIBbs^|qi$11z lY;.Av$x]E2r#fN3.l@%Иe+r͓H:6/xWg`HWG-ZBBslӛ`RnscKD x/MBVλKw0r14|zNakDgmKɿ2%Ё,7 @0᜾MÏeX.dZ5BZE8eH>GaܖH]gt=QB eܾ rњH#8Dcl!)|$Aθv8TkrDԗxTRØVF"j \|,}˅ sI-\`1-Oo##z${d' #v?SMa8ubXI&~ϠX|CnHuA8gǏ~Q9DC;ocpCDlAeC)CAdC3& ]la? n>L9sXZI/hqc? | ެz,$,6O$LN/d8?gr]cwdN@8|씓X+ d%!F5ܸc%2sWbsn u*VqS<;Z ,Xv өb-Jq%m?Z ݍ>-qgPo4ŋBxNvVlh $:/- m$f~e:!M->XוBXu&'È"/|."A 0{x~̹:*׌iϯ/@\⿤C_K[>.Htlbf6iP|ٗcs͔M{ۀ#/l\afv^8#q|!H;58\a˻F:BHش=mi=odr=kfspIᘾXl."1Yn$W$:9a$ 3)q }YV.^wswR9 !H< Y^Đp65qǙjD@x$gH2,cB/d 08\>pB<ݗ%|H,Cf`Η",0쏐F}}rҷS4?b#9ei̖C lr (py M;C߄R (d@ij|_OSІ%ԛ&\cy66orDN |G.N,rtA .% x́s߻<-i6r>y#1%d+yKoFhΦdn0cD5lÜMra A0$"g& [NaX!nXX ໳ŋld'A'^X  D&eNO, 指VT`G`q~CvZM:lvM$ i\Ճ.R4|.y J_ϰ鱏Vf.4˔7W@ds3?+>,ϫK,XYԃHRc;Lmń.Al wG| Qu|E52-,Y/z${lhE;͡]W']>f}{s[apGte].H-lf`$i#cJ~K"u$;{8_9tz18r4jGNzv 0 MZbDqŀ{MNyc^هx0=\aos|`зl^ԜyX-|.K|# , %8ͮ:G'ҩ, `!2 %3F/wE {zOt!X=H.]'Aa ݽ??ۿ]]pGb @|X8>Y+ŗc  VēT?s l毫-x3ߓ`M {^#Wl;?x~A8c3cڿ2B75~aGK<~}z4\$a}FLG gܐc b lw`6 L3AC_壄.ѹa!տMlr>`ә%Zo`;e| ~;?1F4e|f`tChI !pe,ÿ&UQNmpчz̀vP*gւQwOrRg"L1@C;`4ɪ)v-qfs]݇+4s*w̖ "Ի^VP:~6}P`{e-{$3~%\i`g&xM6 }qfcpd&X<:#06[[-?DjZa[oՒf,\?B21?6׀ՅǦ. ~VS6Kƃ%ۖ޼VaٰKrg~/6yLi\zdb%Foݣ?{GWέa3ņԯ~Z8Lb(7zά1\:-p L9aI 2yYٽ@7 Kȑ$c7]aj $@{ z@'ad~"21P4BVs%&$H8#Cgvr5rE܍>@w,[,ϋ? x8ęTIc2;c} RW#0 ?2i1㐋a(]L&KRϤW6at/DRztxqM36 Аvջ' Iod/V7"fy& gsOAտy\>\P`,W?Y?jk;Y\i?#3ND!?|Q'xw'.1̏+4źHv}鰲+:˹dv͋W uAƑ-h |`I?y.~[sk>IDn 5U>32Y %3𜡄rfU %< / xn}͂u%3݃=|g q}gBT[ ,t I(2μϷilEmY2TB kې`qWk)L=);E1hn{\$Y^ ̰_E̛tY§h.:u)qy$]8Bq+̕Ӗ#&Ɲ..ݑlC%}I!]f}I|;Ľ3eq\#Qk6 Lձ2-1,]|Lg_ gl$ވ#!meJ ݎ^=Oq{*ۯ4_-5߉䔴)zI >ޑ!dO &^u::/5ۗJ81!gr NTX W I7s' >|F9n=\+ pepZ;.y%q+Hn8f˿.>AzNpc~$MIFT 3>vq16ܶm76˦6s#t8[V9y͚a wDaW?fs?~1r'>Xoku٦Xj-7;8wd3؉[xE|7fX\.w˓ )C.^0||v,3~ss-͆X]D f[aeH%lSYXw /`]sbE>ֱ3l2%ܮ%aƓŘzgBdw#`M82s>Kpծq ;P'9r_BqJbAa'~@%ҺA<\ቍPY =".֋c!ǘ{rNG[us]כXOpV-g4DO[.fq%LuC-0жj/i k<S x͔6gu-a컣7k&#r~D5IcW6fngԡg)8 wd=Jr{#prˇNMx;A m7.:f@0#Y0ITYrp=.n Y?1kK59<$^:d.Yo!ՌuK;k /Y~AN]/_? Cql׶id4`CE@ <?_8HV-oSX$MMe9ԁ@Z%.<-%MC%!AaaԹ3d~J0sq涺=؏X#ݜ x5yAJf:qȉ).{XEsmwV*_al857y ~@Xp}K]| `B1R1/G k9,eFucj}˷t}L^ϑX ˧ iwn#lsy` 9GW[%Ͷ?u]K:;Ǩ#%ӯGfy,i矆ʹ\f 5?,㥲$͇3><]] ߧI0=A1WSW{n˛&e!񈉜% x\78&kť(&YCtozi$` %g(q!^ 0rDI ,YO%[ItxY<H$K$e02d>Ȗ-I K7>bYlX$ <{[ |n?ͷƗ.5d#[W#C&Ji;轭X׌cOPH/w 14zx?IƤ'4Ol]ߥ.:%s#(ާGP$#Y> ]#`XLn+f3Cd:E1;87}O4 zGXK4RsdzʑI/ɓ~ne ےtts?rM :>WW|~pEPO%z됸 ,d <%$!Zs߀2G0f,`_E?o0!##Cעkv7Ga e>6&hPmC$xK Ad.Hd`a0 M$sK>?2\&Z@C0K6.=LFQ},[R%Dz ώ=d0Xԧ2Nx~֛Y8'p#iۅ<?\$7w6cIu66'sz*A`O?#җ0}.&2;a }'@:HfR:w-p_ e ̌DJqs$m,=\z|sxae E͍zB4O؎\,;6 hOR|+aS g/㳣Fψ׆ NObo1NaeHlS^ˁa=D j߷F~)_e Y\Ie^K{pPklCH/RG8XMԶphrvOظšUԋ3 g}qMd ,{n p>N79*1`@A@ z)/Yl"IB[~µNq?b%$~?떬 lEra}V '\RAz2Gw3|+cW^Kߏh#r)n&ORo>@@Xq>OYc2>7^c4mÍ>6~a6YBLkp:VE:_r?H]?OysܷD\k Ds'os^sj$u2Yd -H< y]3sIcAyXc7`rذc z.'&K^4 e3.`.XqH,0Ә_p =:큄}a=ơ#9k=j|$z LHѶ8q=DZC@Cv e$={o%5mIٙ ydC_3Ϙ's_ǢDzK6> ö"xu`zKQ92 <4q6Yճ ~A<2]ӚX/-|4'L2VmpdOgAطΞ%DS`\m5-0O2m_V K>x չ,ާx%/ ixIFXa׸0_1{a kFdܹ]8`wnܖpp0ؑIi$++=CN(d]=<*8<\f%|XZ-ܖ0ɚ4sdprQ$w,,p,A>H?gT:參Ȭ&y@)^L7 7rK[%# e52DOp}j46 y'FNp$41W|km'2xCQ7Xz|:ӆD!8d\\7ֶ]H'q3A\'=`OkQ6Ը\C03CF)I|jÒoR=gt{nׄŤxn5GϤ6lIj?ީ Vs}hIөņogd݉2eX=:lCbl>g~gnG ra-Y&3X  D̖ǸYjKq5*e6$̌\3.eݰP L'sլxpzXaO&Q&;`*.'{^X9Iȓs0ݒ((ΌCG0mϨ`ad=FYӋp*)1f8˿ 6$g'^vl0>əחeyr(!ksi1nœ+9Cպ 2bݳeLN oL`DlL01[p#\BKdd:2<sЛ0u`lLX䍌\ ,̈} m-]+9 M q2A$92&eȴz@,zLml)̶l?g,+Mw#,rn`"7UAsПfo[nz7%a;"j/$A8nHm̫-cFkV>OF(lm,7gѻn!1DjZ6upÁuUspjpY "`n@P1&ܒXr9ea܂"sY?FՖ[d2-~HOp\Kl.GS1GPqf#qԫGոrl--j2hs#XvK:p`=xŦ g>l2kcwK"kvKөhlD(iȽ yfc(#˴Nn!'9pެ\fo 1&M`ahbom`H98َš; rq`#xwjcFdčrϦxDwl N^9[@XC)wFHs$dķ'd2p;2 l)w7n9CTI~ErçI)8>n@Ȯg$<#aP#nvBY :z~,j,:"Da #ƈ.2캵tcfq&@160&tILpư/vw$szZT,V7hA?lY܃P Z=_rAol9H-H 8gNXmmH-2>;ci r[Yz@-'ݓC77^^ c./ol W,$3y'h[~Yq];&q~V1Y~&ƾ"t Ùk<㸞,Ou}S1|6gr%XSHjײK/ ^ORzay=\}0+# }3]oԩլ1ScSI=KZIvEYb@|_ K`r'l:0\q'!z?^=cE'|k#Vg{@ ,Ŗ*=8fZk{ejcW&7x͙gC}rO{4 ̚Z ڷ!Ӵ'QrSN菲&0Ã8X:ϙ!۷!H`%\'0w'x ,qAQq4[ɁaK1Lbڴ% [2'',C`mokjѬ[,w -utLvSْb`ud.g\LRlqX!ȜXpXMϨXPN>@H#ch61ܐ 8 A?Ix"r/׸!6 yX@8$Y8B jՄ/DIf,H8xBtXgl]G/?q%L14blQymVN}gɻxz[&%Y m2.jxxlF\wv+k4,h&[nUK dlo+NHOH Lp6" d7/-cHԦ虗I3?\--zmM`qB@>I19S! Kѻl_w 3]IIk`^G|sRscFqդ >#-Q= `!iKa0";"l<KO]I/ig;FW6Zk;,I@%A xn`ڑu8>nRpa8-&C ,'n`Aꐆ싼1{}ƕF2'6 mˌHk$=9g7ty,̀잕 ~dsՑ.V_x@='W80Lۚ;OOO}6c65$U!^xm'`it:&Ȳ2] qCr˶mxn )j#u(G {"f0Cc}ʴ` 2SD taMNέ--KsC"_ !qXqe!.6åm ?. | ,5j2ArDVƾ,\Mn^!2OpKs,Banӆ<9~;d\{mMsezq˅+2M L"w R=Ȕ73B{IV!Yݗ"İlQפm X86W!` uY)qapK@8+?n\"2EvkٖfvLA,M!{v̯Vϣ`pBKÎ>6.HS踶 ܻN2bu3;Z,O;2HJ9Aővk҉;z7amv@ 9 &.TdGY$PD9/L!}a.l>KPQ"W#&C-$BHu?x`"y7'4F3m{Σ7$`bE;WVnO v`,KD -0=^e-mXukך2eͻiw0=O—V@{GڰM;|քxrlY'Kހ?ڷQ *ףq"K(f[9kYaX0qΓ#0,{'N63ŰYsY5ph2dCb\@NiajtK˗̼nY%,/Yzlq3.GHedLw̵5,O>Yq!X>AY^5u<ɏ#d㽎KfL͛6{l2=z׆Kf2}L䀘bp؂r&'B=$GA1|pCg02k`f %$v;a{ՠr7,&vvuwD:'b6y1{ F,#]Kż6$Z#Y 0m\c՜&YT&oVg0"6 ެ: ~,OpfBngRHiZ'Éb^7W#j #.˜^R9Zg|k9-S9kcc hxF݆ dAܾX_d-|.7D ֐3f pD' ]̍&#mn"xIp0d7CalЂӧI!bkDGԏYYw`0F |cxgC'w F)l< - m -,gȏɧVI&I;Mc;VCN]N n1]R7 ZG>&dm c}YИ]"酁 1cb }AbN\dfd&N$D1s%FT-@)ߗenj1P'd.jtAh¡"i-6Nҁam Zz@15ĔOdf 8A Iqǫ u81jOLC>c\)H%k5%07 a32zlgu˚/pL=2kð@p_g21f6u'2zlWGbK`r?FWˀԁ=eGOS9E$."@ F&jH^"l 64 2a؀0 NݠV/4}@ہ FN-"Fal"jza-}E v![Zv\-eSCT3O%uvHi  deWin`,=/OsB}w46>Rݕ7?ml $ȁHBYޑn?qDisp |XL$3 <$q#.18`yY6E\|:Gxc|ER[O/ЙCØ9=CʴXi6s$Dűٰ! AիvgX ^Ժ6;) P9iOM}N-^?7;b"؁2 =^ {F 00Ӊ.AL=qpN&AsV;p$< ؼn!'x;2Hwxpލ٬f &Hxy}H=#cҀ!`akĜv`L90͍¢>O#Z@ ]LWx@<,{Gɑ,h8 qImMע່N`Ix; b@^ ^ n!ԗN,2@Gwkb3&|x=sx;o@";-z0]c"<=d0|_#1h fK W - FO\y dBC-=QvlK) 7$ Dm$xm}\@]}Y18& `1gՏ#K٫@ o*@FT/܁cio4$"z;9d Ôd7me, xk;bðVrz뷹dG&\ <|afH0zz&= @GY\Lw|-A0+2h1do]ͷ؉'0Kc7A#883WŤIv2k-=dJe$f;KcNlc:E<ބXnMg`XP[6E:tJjݏDK1qj9[*p6y(bAYƄ3Nx:,a'z}3o^vX`Qcz w"龣F5tJu;( pμI-h( |2EB+n d,6UpAd|IƩcf_-ғI9aB q2͉o|塬Fr i fG}>MaÝg GdǢt9 '#(nLc0Im!ds| pb\ٜ\;oY dö 2ޭn?s_Q/X6;V)a؜򸮗C0۬z~Hd#BˏA05`-aE&4ƞ̳tX@pN?B(}SF *_t,9N~"Ea#VZ'p+&:'ύWum{!Ysi7^E.ฃ=šaGDAڎz]wk$W l$~ǂcͣ d|m.9 ÏVG }YzdsDcrf'?VdXc: KqlgݮV%Dr&7`GH.lUXds@wunEiV|pX*bBC#̝r5乄$یDtwgưZ-[uBy>'G1*` IOeB= 6uEHE$ݧr88U:5V)-J ?U2O܃aT8~06Գ Ń}3c8݄7EI: s?n3PQn0FPU =Ys4DjeC՜Qx4Q*vY9q*`LUL Y)<OPdO `KF,/LuHˍ`ņ=lMCjI{2ЛCZb\ XObPb0se<\ld9jsE4 0m!Զr1 Md$ldtc >Q.s3CvIe^p#o2ı;8!Gqk1VoQQHö5cͯ= K,k~n$4O$\lfJGK6{u}cAG>0w@gjli㣓#DMv~ndG)&ow08*_Q[7^ݻ+kOؔX89&ש,7Lgb[Hht 2;͜z`cK~,TNJ32cXB aq5k Oo5 Z&w{|=#2ul< іAY$s2vC\獘fk*vXŚDA͒Bp%z7Jons#cD > ;ALPg$~mc#z͸.@-h6,Nf3=3}HFуWمzIa!uq(e#czsc|sg/lDy'2iH.xi?^LV_R{ :l[KN8 Igf˰{`Pvp;}! ,hΎzE6!/@c 02"?ۦ\h- g].M8H9-6F2̖d /@F|F݈ܻuYœs6iˇ;q',:IhL^v,Ǜ.cz%'-]q }6F=bg2yɍY"ȼrfG FV 0v9G\E?`ןܽ9mIFIRӒNRלdWqN!>2oߩjs.71}8>qjl=@03݃g[a?gøN` $? Rⶃ0/,f:9 r6K[&^ep2&G@9]XNƛk90 :w&G(a>z>!deh0 2aaecuTģ­0}[:NqE(b$1@rs,fGWG!p&"e`H)W Un48ÉD>$pGz`DRE͖g- H C$CI喻:^H␚_EshccMPa!{ٹ;蛺w7"HBˍ*i8-=`躭CÎ  $eFd7,"#1݌1dN8fpHbm7X'[}r[5=ORzd9qtf7-r!'&v1#P,`14rǶ eܓ1ӂ0ԗ#Cpx IWI1C?89ؗ1;9ٷuga İoCT܁ިcFs'Dq085Gg['\.0cCFlh\U<~Y(`p "y\݋NepSsm FKY?ehtVG" yDtsǤ,<$eA:s-{9ʺ A-sdXޓ!i_!f$7ľ Dfog?c?A}{ݰ_yl/uC:,w`2d= :.s׋}`iH XǸ\]8=~\=,1 .<Yer:9c; p6}kCf^t2fZɑq icpG0X:s ϹiRuH;w$qÝ+`Qˑ:QM#k37n:6WཝsBqOH,Hag1n'0d5b}cbC@T\xl9_s!ԃ>cΝe]Kzn%. #c0vۏ7m|'S՟dKr; j돻Y7[ɃEu py$boD@`"Yc23xv&b/1}@&Y/nG:-ʳxjsVg0$tc/26exrvf6<8,nYݳs$3?o魁2܇-'mgLl%8(M%%%[:~tJC\p [ǑIp,Z,f8l#t|xyΟe=sɖWyw&$|=]e-#HFŜ{.cBsG1Y+>H`.˞c]!`X@0n"1$08ۦ8; 6fX%d `CpX$deLi*uk\ino22ZeM% '\ű-oP$8:Aw2{.w YeչNw,(5+q<;1~Rdhy-rdhi ,s&xf ;뙾ga98Թ_a,3M ٙ*@H,g?$0xKs,^3lGX<^b ŀQX &32D¤3Y'/(lH 4#f]cQ$8Dy{5ϒ G^8g.6Hu szZz2`'D& tIqcL) Q+rP#m|T΍=I}ݎ~ɩWtlw;[mpXK9g/'dScS/$H>{ƇPƼۼJmPzNlĊrF0 {.Kbkmˇ;גR;o^̀`]P96 Nmȋh! jX,_r.1.&6av.Q)hG\Pb۪D."[Omr-SX "a_-=K2r[}bHb"O?nݏAR7`#fmǐb&3KM[:l82ehj 'eԙJ:bFfes,P26p2&gͼEV%Z  ibP 7@1:W]Ӗx$`<pܶ,iLŪ9hXoV.zKDWp W$ೱO'`[G:8 _9ȹנc%Yf'rasmb*>NOwnO`# AF: W Mk<ٹNA_!͖r⒁ ܆p_?; m F:Bx29  )PV8APMqW"3>gs>B &ַEkaوr5!][e sc'CF8m~ Cp!|wnm 탓5CfT!?.Z67C `a&ǫ,N]nz18il`m5+tHX}_XXo!6Hܒ-IMha&`/B惃;em)]@'ؑ7|t{1,<{zwP$${{@L C{CT@H >heGREpD;ø8'}bpFE0H/Ifxl 1{;"]Ē!‰ H;8ID{AHտ撉v}.gܣ]!tvf>w% ?ɃqHhB;K[ ې` rd>ElbAbH6kȴ$E<Ϟ9;/rb G[ J,76 R}m zfB]Whs\|܀qL03N2_dôcw}sx!tXF:A:fvm9?gM7I?.ՙp[\ KSR6H7"&7v~.ZvN8W( ۩nj6qu<(큄~ j\Iަ53#H'6ȥ;cf&07.}-u8?S Q< zoPG&@5m#Y&#̱.xk8#-}[A ؃ 9£}l@cl'B/,`9'\qZ!>Ā=zEeh b)Bw*NM_0[n=;ĥQ;>xXas]i!ӈTfym֓9%4}sr~PEBŠ-9cvvqT6u(c>a,'Y!RGI$n&g֍Z1Ʉp ^)}e-i˩E ,[~Vr@{սBΙn8Yzd"tJS `nYMO{IIzB⇰1/ l }$`]+/{t(2M"_29}kuag1FK~LhOksFRɗ%[ډ1>`׼݃Xf&X,R]!3O_egO;Y,/ Y:3Ԟԙm5od׳6 $Q^[Y HAI z0Y#^r9av' Լu|̲cգ%b*Zd"p,hDZ8>f )3au?ע%Fp YXIG#hG<H#٣f8pnRW)(pY̰oQ&,!cq|&Nf/sB&L|DqNrQ'Ե[Ñ wv.dZ4;`m|=M[t\ A;,/  dZaGs@1C&.܈+ j䞯`FK\H|ץ"N<;M_dP?y|Z9(y:︻I3'>B)'\b_ˁ5JKrѹ0ܴ܆uT-xp]7X$ːqKd7""d1c\\a%ԣP{ @quXznxVy D f>7u_ۋTɸ+#y@'*N Pb0zF;.ƨNv H ɛrĉ -.9,cHq0@GCI;$wWշ1=:\o3'|:-^2 zzs6E`]z:l(@"qq4n+IcG jF8q݁xMY "},' XqԎasX>-1opۺL}\-!F:'2pmV 2m--d[>7K"0ȵ!LKVvG 'OVmOt 6'$gԷnvrn7ˁ[]ÂqۼVZՁeֲa}@xIF:,|o5.Ȍ-ceۜ@u7NH=89s:8в݁LHNO65dwI|<19V]HH\As+f5˺GHeSHШr:bq1"Vd渍 ۴>ólgɸLPܜl!`bFd<ˀa" KÄ́|ɇaG2K?5Y{u݊F{a2A=ߵʽȗ ȑ ˁIcIv5xǨ@W!aG0t逝AZ"pwȂPzMKM㰘"}Y/wKga Atnn#c,F3O'o0'%썎6ti?FhŎH Hx@~%댄Ԉ@Ɛ*wLfq'.,2&XzJI!*߲pb X9NA]s D~ZNwV@k4̼DM?sE #ݒ 醿r'9ǯ]ǚh闋Πab&B-# ;z;|öAZ ;dHu8۝HR=H:Q%$ܡg,c03cB+mgAC. z0z%N&l G-??2.&Aޥ4d-SsƝ㎥WWCpm쑃_ؿ jLS8))xt#`y:=N1qhAEŮ#lOpRA}$˨9=;-l2m8ʢ,-%%_E5\°8tɓfx n8=Iv nY27^$g% CBułܪ|ۖ N1 ϛuMd$uHӿoiKe$%g^\z+#K-@Flja4l%iۉag6C,{;zK].o@XtwR@SHlgvl[ICI>G[kOŀˈqM1,>|.}v~~K?6jY.Nz/`ƙxL~pe)(u @$pY]#fdm0=mSupC"koȁ4aܶ#}Z4)6Ņͻ'Rl~,og8 [~a߅9fqlè?z@i1?:?lKfˉ!8ZX z qa"M}GoK\b+(兌7-աzJoupP7É}Z@>ù{c}(̗Զ,1㙰}2g'ځĶO>~үO&L܋_. >DhL#?$ka`܄z3SCrf><DÂKC~>&RF8 l=p]jHCzk;`ݕtmz :8cH!}ڠd Mw0@-<̗2="]J$nZe~2И:.D-IK8t$rO tDuxg /rY^a*d)`כ)1`:,֖xho4!XpeDrYI f* f1 ˇZÈ݅] GŻ3 b?3o51uCdjO^-҇[!МE9g@e_XQK. GgM ;w 5 !gݙ:GP}uw#5~*4n`:FnqC|sd>ǿir7[ȿW\yq BOB w{xl q@4?)ˇ5l8[}E4 eN.0ᡁ,۶vpY_;#00'vڟl: r.u_{7DR;CIQ67M c71SCH-m#hqO @Y%?~0$,k=lNu~IB̚ߓΒlN%$o< N7G?azX!0@}Om9ka4agN%bâI0G+#eƋIprS&&;0Guz˕ VX {!VAE#!$2m@$'m\. eN r3C; {wFYu1żrG9 ~ܰ<2jxnE"s%F3|Lͺ#̂Y,"IGb'KW2gI+ŭN_pU&܇PO6qÉN"?%Caע>ή`A݇w:EEE7|Dl ju`DatS@#Pc3T7)KgYcv4,fl ;}ŗ1(?! oL.b clHg5n!<6LT#? 0J#rɥ' gW֓n6^}p/; Ő 1\3[t ͅ=[ax>ZdSZxj!\O #ݘۚw.4I쿵䏛DgY8ܑJC6F bbf]{ 6Cpg"nn_pX YnL/]Psz-6$,ۨ@a9,@"8ct2|5 C/ qa +:Kњ U16 mI@Pe񒃍CUY%O$?b)éZ;tZՍ7XzŃ.FoPc\Mm` ,Q$k8G@ K/Ź048! a OO[wYv nx ٌZ'Q! `Yh\?ۘ^v ̵\x2F#m,)=Ɖ8C}՞15q=pЀ0׃ S24~I16pT[ߒV]@_/jˀոM$Dq>؝ =!˂pX E7B5CMpZqMf0p{ETY%E? .BH%\&ψK`N|c#ڽ7? rƾ,=/R+X-rX ;X]sQ0 Kx?,صlr ` _Vwf|BvpA‹N O#t (Dj7<}ڡwwhj8HO!\zJ;Y'pm"5 $s"\w74|Lv]K5WqHmן,-d8680!_2Y} &2g":nlhklxz@Xzaۗ&͕nI9Fӌ9d`?e2]iTMɕmd9,0GIɎjRS0&`ίH &'݇o{/Kv'`=s|9`{'DiK#an8[E-z Jqi ]LP(y~'^1eĎ.#`heA|׷`irH9nWB=(~K?N/KrY슝t?C_3Nn}8i`Ǎvl`D&`d!y!h gMv7F ?qq(5qmdYj fX<9!L6s݊R#@rQGl`R<0T/$hc3oB:I;/J-p.e?tVπ}% \r,QMtO7PTwZƜДhfRw\E.CcB/giK>y.ԖatFϫrg\욅 7fDsb>G&g<[P o3H~#>Is06[l蟋[Detݺ.?o,I^MYBdŻ:\m%exMvl?@ xӂ8i>Uմtf=zFrH_2xeg4ėP07~BL}ʄy]8fy*f;ѧ(06%AAwعs^u8aJ<%C0bBh>N76  :aIb$SakEjxwaWS'0(P8qO8ݖRl;,^J2L<;a),[u=DݟuC8y?ܑ:dc #vՁζr}dC;-Cx29&w^;M :agKsɩ'NZ"N[-yCr`o`nm sLy#pOOk8IȜ^K}c).e,ϧDB3p*۸ ͎.;$ ͟?kILz]"0q !Ňqyf%~6n K7NMvF]8a0'?!cpvNaHuwis"%螶df~`s$8pGh\ ߀E_AԊÈa9FbaC\#Klht3rG1{l,6r - ,u35=7-fv[Й.ٯigEx+i%_q.iVHq{/\k{Ci!d揦2% nMт[P(ť6PڱȪ6fd#5ڝ`eYT$KZ<,{pf -^4 cTt|hH!N}/ɽbJ0XN=eL`峎 SwC^V%v`MВ6Ascԫ &%):d9X e5 Lqo{vNf'%,д}Xe`y%Pw oQY"1rI0 B̸-{-^6$-[OmݟĸZu#G}_fw;оFWs(2K# SQBT{bܗ.[ #̣zX:gw 7wy}`o1C[Gzm`\ˢ'oq.l+9c ̜Q8M`}r=̖c8Od"zf};> κiN yάCqk僙@:$P߹/6Eɽi񸤚Hr'w*bl(O.7&K!H`IZA<܊G̃s/ae$ .^.g{qrB%2x AȬh Fa#bNA[e-79i7亄jk>[>\DZd` .vˁӮ{$ĺU`W(,XKlѳw&;Gq I%AV>6RLYzNchb. G鿗#ru{>4 6u[,L/KW\%@0&n.adag&Uϴyag6& dؼĻ7n^_D =NlAfq*k Jx=Cv3Ce Kt;ć68KYg$8fCsBfs . =acqXc;mN+o킝%lc -PG$xslܖ'aTqR:&H,=jZsYN03i$$Xђ }^?l UAZkNa3gGY˶WXx[b2o'컵!Ǧ: X!3K>m\%^ \TK 8N'" +V \.ӌ7zm64|d܂x-ә 2%ľȱYǎae(tI`-iK̘0Yz{rB?#"WݴPažӇcoꑼ.7 Y09; 4^a>Os @0B6{#MaD7 ?Fasr<3 }13[XfkbA9 9*s:@:l+c-ԼZN1g$G;l;dC2p[܃@]\]3Ҹs'MytKկIÐ>V%cr7KPPN6,ZƱlQ:.ZP9=ݝ&iwQK/Ӗ YsIA**Kv]?`lf!FCݙ\OQG7.n D8 ੖άH-13i\Ogy}:. #8w !&AlKZ(!c.:6gKhP9aw?͹<M%o^$Y;Ƞ$] C[r"0j? "=.zXmc,7>Bȳ6R2cK]4ӿf!I;ty`f j6@tnaୈVq['0l<#g[ŝ^M D/1] >qaZukha3.,h͑6GðD)eό|Fm( nP~/,o0y y5/[o2$Aov&l Vdl]ճl]:>0!,wMIU|lw2&`s'H1S=L >m e9;=MպgD^17`$fls-YM5&ڳb܂Pk a F:.YMFir,G]3dX҅c&BVlsf5ܹăbnov/TmC>س|c7ݓ}w.{׹'wi<"\r_G N,e\!=܂Tܰa̗XeH#w4- 9_'Xsȹ$8~ėt`O`QFc#`̓d `̎-vwѹsk8p[tP!3vͱsn0/5 Vcq.[ULd酱͑M3,0.A|!fucu8u5zY[e6{oq]]Fv9Zi/f:'ՓLȤ K{~e͹XO_ 2 Q 36y`~ZK, 4XEU% 2F]{CW->=eyA-k~V1w]`ƽs =Yn` 7q %f0v=F;mZvݱzD !W\^.HrmP4StZH=$$*n@Y_Ko K/e۳YY!`h3$nj PF@ 5Y#NAC-{ڌ0=- F"9b1ܝ4.}M.1*t%k$H!H]#! ޱ'hL9lL3G8oI%%@׃P;Gp ֺI2K]$PÎ "t6Tn.Y. lud=&"XEVs!Q̏ k] 9򇼀AAaѐ.DSLAV#Am H5<Ѵ~#L``Hpzrs4N5m&\nsvHDIb=OKF`nW &VMGZIFn;>{Q!Q%`{'"eHqu;I'ISsQƇvY܏q,]69 '|Ae0`yr2 us-^FI}yỀ?Xcӈ&3G0& yZ.`Ko/iq$lVdwPnmޖP6 GB^am2l zEoÎlAIïr \!)%/vd4;.eBgzDop rH#p%9PeٛΙ>B:Dx1?Ħ_Q &$YqcR`ac /Ae ldbgalˀH׀ÏrAG 0rp|I-6Njdtҷ^rh1,,0ټs|7洞H@?-uK>Hd*&\Ih4Ћrn.-`헤#Vc4rnl#h9dgNd$fF[5js,<ۗn 8RH~0 Q'8Yk9!L<wRFNL}$PMlGvB2창'b}=jWn@0x|sǨ@ۙE˛&;,f#2Ҟ6z/yNj;g]r[k5/27dXDV/ n?g)C1#eT:=IK}FK>- ɘw2uNI7'r)015 0!mvlǰAՂobeqxFCelOL5$')Xy2dunjL^QK.FfVeێqVLn<ȄK q,͹0iQrǹ+xG;.Wl1G_ E .L|X@bApX s!,;"6M\c&ߥϲmԱXZu0ZmiϹ$ͨs3cd<#(BƅT:Liă؊#$vtoYA`.-QٞA8#妈IX"Ty]ր$ĵ(#NB~@sKLxhBu K#e$~x1H^z`HD=YCm3Cc݀,.mM3^l 4?9;XwFDd>ܾ4fȤl>BcũVÞ  %O  3u-] z]=lEX_6d$e["(XLA` = &nLE s 2L&[)ӹ'+  $(x; ΊtA" 'pF؜o2k&NFYLgnp1-7ٳ3jDd4}P}H>֞g+f)w' n"܎;ҝHk$+Qfcv:_d9>E np=˔92p$,㜇{s][}<{,}sj ŽaO (Ǿ܄`O=зnƴ첏 >aO%-xʰd $pEztuu.B0Z$.#&(1Q ѷ2Y[ۢvנLdg9 H4qYԑg3VC`5ȞzX{k=l:u ,Y:<.bLz&^n-(dPea "%3e47965oɰ!sXffΙYqz.g`7#n9-Ypi ?]@`)Űř;F#q-b"$6qۗ>˰Dyu -np ܞ2ufA?mxz!>p"q{ }6H! #b<|*dfߛV]Í˾Z.ٷ,K'?OvS4Ԙ<0̉ /`$rnfs3PB>ipKLm0{;PO lpX{F~?C ͹&, b FN(ն@ ~WA>'~vzcˇ2tV2 ~-Mmcp_|WI 5q=:*X2@%2n0`ԴY169f m.! w0lĸ@i65nBl6 'l:a|HwL$L3 # (("ܛ Ӱ ug3Y:$ORqVXHDȂQ,a0\m˶1>4 ,:#ˬ 2c7qz)ǫ!1lXGI5c+s5?1N߅-$x#˶YI$Iz&OlNB0 Jd- ̟2!{YudhdS;Drۛ6oHXLNlCs7q1HCۂ<29@ 3vC`)r9cEfmH?Z; iS ?HylrWf̕q1(=~ax/q;˜6&pg33D.w8 :mѐ?,`Y#88)3KM0O%.,OO]d#oB k./[n1h x}Dshʲ 0,׼C9ItW*#Hm Fa ao񁌶wcE55c4gzKؘ)58$9@hqw!s|K&o[OQw>}ƉOavfݗV i߶CS܃hΌRM Ll8rIŧ]:BӂAA\ grXXUr WW𲺹48(y l|ܬs{`1H\!9cj`b"c:0yZYyc: =m$9oկHӲY@v/AN !z>S@ctSR FOh%H9=c{ev`'`6.Ď9+B}; w]e . An'=o@pYrl4fZ< yMTck.%Nb` Q}8Y1%t#H4K& @ /T tcպ޾q 48k ыRb) ve(XYpL/ ,!dס C2Ep<=L e'fBb`wGMG09$3Ij͈nC$lŇCբ䁻@;c:l6&! 4zr ԗM|ۇ 6?#N4eċo0菘X z.HF gN6+ 9C\' |VʽDv5x8iڳDob7㱙t7,&- l"}„F@d;D6;ZOa$@͝E`l [??r@1bz]TrXCG3y{2 6; AlN0 sYmט=l ѰXslX~ Jg}Z)N7܄dn)ݗFq%Էcۨ%Xz;V D擟R˜.KE ]s9?=|ylW,%X속t\'8ylaٻwY(=z&N$K^T,թϫ ur<.^ H2I%y%L\`MCKΜFCKSq: wtXd7x!q9r0os9g8oYz?r2\r OL./hl},<46U:mƹ Y>$ćŹ\\~Dzw9Џ鋝kfOZ%}V7pa &ZB4AQc6)Σ;\t\ۗQ-O??fS6*;t|2nlN,]\Ku#s.<_E2 C%g8"8\M,kj\49G=XGNK:ø Wn_AtO1] ~bClnγWǯr''*aÿ!$$~@dg@r^4W=Brw7&vq$d-Xm,'HzF^qvوC<><0d?Oku7čܟzkb@0">ɰmHa+턇 6t7Hqv,;LtYEJʄ.!1Ho;MX{"+]*)p@vF &]f<6Wv7PX\7'n kH5{S&6 mAju#x $.PjJX ]I14b[$;cHB GXb`4wKC$䝌 2 N"F(;qe3~ڋpVlW!/53eǬRMt`;&m;]VH9a3FmF'CLok<{s8wyNNbd$i6Ňnf͡VMFdi;L<ͅ:$źP/ͣNΤ$s >KxX{oe13{,\z~]: j^a5pG2g$#O'$j@!=_}2x_ =31Up,^?bql-t:ndg#j-`I|L-۫3c8w[/};8̓/G$.6<7B?nBK呝YcF?/7FidqjnGcV8iU˒ 02~>FŎ 72ᴗORK<붘`{ٹ65w ZY@R) {GChIp:=L~"|fa#%OK7"9`AݪixL6c} ̂"@S\Xs4NpN3;TQ cYLw,ٟR|m}gn7YËy \1bnI̙7&QŒ &h2iM>IgFm=!{oX#N}PGDTOeԊEJ7Հm is nfIXˉ?-D}3`B۷ŁnQnļ: .r#ŃplMNk ,>Xl_?hOpB!L庆 N :>[~8 UI(_S8e+,{ϲ zp[sbՆ{8"[/8ߤRghe`X\ z"2ji$AgpI{nqg} Y"cz.]979țY#\'l w3ˑ M !XC{3-K?Od?ŀ!lD](Z M.{|fąгC;Kdhgф"& UAiGf`3@R,F3 +Mgeb '{`Ĉ0@~y¡~2pvódL܁`N@˯Q+63$5|eGۃL.[ZrDd&dGh9<h,6u-t0q `d0:%dB:.I%] `9s%CG"e "ClF lXsD;b;s3g0wp}L<WX]yPklu,< #U:b GSb2}nBC&2,^ Qda _:9/ d+m q C5[pvm.)uL$"s<9 1ِ Hzz DfKOq ֝F|̙$2ewoӑS||/Vߨ4-xl2YycCHGaFDB[ܖOy:u,:  #3іDgsX3A`Ăħ%&~7V9͜fAݬ݂G.<ԇ8?ldp}W e 3 +KSN44g`s}%-[! BQܠC<$$dt:; J:ApXK4w3dF2ow/K&̜#ggv WgY9.Zaȑ4z X0ˁ L!acZNb#h}E#u`C  7 &fD$MC3lܾY&krpȦ<\z&@!_\rMÇ/S:&s|d4rA{#8>$W0OCalT+E~!7!?̺0~]OaK) >CAՆ%y pGjRba{XHc ԝ?l /sJxMaɧ1j 4Pq,-D3,eȾ:ыDͳ{,ij7i'Dv*0'GN ~m3KH;tz[(0 G}c8lcp/vGF{'gx->oK#ܐo㰂6:Gm콳LT]6=Lrċa7,䕆sEH:|X9GIQFW=o1`z= ,`72KrbeVN\vN= ncw&ǒ얬ڝ{al+4̹Y ^8(qj|R7;8 %q$m#\.-7 miYq< O"#l´%k>\+ Yk`a`e}7ˈQgt9R'~V$H%^A,tP'Z'h=:?S,0YMƇrZD)LM C Kv$ !$H'Q9z'%5~,J#a ɍhs3>9|~8ݵqՒɅ!D2z]-1*Pįa4@F2=n'2މ]FEd0SF[-'z ?]H)u3#qZ5?q[oAbS-??!q3$1-~ȃԠTxb점)c7j]]%ld&NCN@%-cHO?djv:GGN0wxΠ:1ͣt0X\[n[#`KAa9߲00/OIGd,s%0Aㄲ.Kή4E0n<ˢYf#ٲl ,r;;."]8ŠXBw"ww!d4'Z<$y88Hw`vx!s{D3ܪٌgWHIzO6>]&e0aw`e)XFJ{ \!a tdlihNiݤ29e[ "wT6ܙp=ſA[y aHuR 6Jj ڻ}"b,gˆ˲b2>̵ZzK \ݔrY,Ϩdxnsr@鱉{r: m,KC.eE"Qb_isa#:l8>`q> Yчw I3Y˨yE+^Ә9Lk}6@޿b&o0]X:BfddBgVrM/?}Y̴a@`B%\l{mPt-Dz]ge#?ZW{u;+\X2N^q,ίJ8ϩ4d0 } " RC .s!ؼNsد62vgh{pZe^-9W+FoN܂Kc_F)ŸGK,݇%$c& H:o ]y[S9E6e߰tSW7ٛb }Y#3eq^{aͽY $`.fzɰ uxW ~}Onn*>w3#l881݆OdͱM?Y`H&,l>DM mw̓snElH]o'ɗU.Ϭ0>[Nqļ݀F@)0&Oz{/ @l-g/O .%2]2tW^X$:߯Kp̑[xY:,ѤMύ0<5ixtK9!rB g0\Dltl9a7).#B\)X2 am4!kDbgݡDGN冻@a!9Ap )$[~q2 nl8x=ȥ&l+19F-6F}7nvnI=xp؝L1W2k:3@%I26 ەDewSp]yqwc97pw"Cf6=8 eA70Ef?'oETnD}~囀c}Z2M˞>ZXAݯp*N/ɸ 4NMg?ɲ%@1Ԭz$]›>[w=¡K$HZ3!LUu, Ickp9z|7  \clɺ}>Ew,7\5 -ɱu! ,qΝZdGkdh윎l%.w;v'[,i*=DuV~a!嶒ԛtnX_r7?cu#MCv7`m@~bN {c{dv; 'XKd&K@ @icK}-B#eHŲaHr9C>st ׄlT18f ok.P5ȀbZqLnи1Q5: :cw~]268,1mz9CAt辑o媌(3&_FOp8>er7ס;Ogf#J`P=!׫z.LEjvB3Y0:<]ݲN57XtϺ}r gw019"tW7 1;0Cob:A;r^3we;pw6q#g 薼 b>n@[CFL5$a$8"{km:VӺ$9ݣmKf4w#I LtΤ$5$HC9D Lrq18YN[+ 66.EXuj>a"m inm;@Gذ 9g\P21Q5tnN_3o@54H6u@d!~ϜD`5۸̺zQG ,1Y0)ܜ!S>z';K^B0\$E8]ls辘NXqo[2MՖ.\9dW.$n5 8?,Q[mp=ܳ%p!lsnoX]2l1$q'($FWH~q cGl1hS3l B)Hvq,P -UnkSv xL\̃t]-⺿VJz!9o4%r[1`=dy| 3z |~2H2̙:8F eȇ~&Y%vmHۛG4sn N*F ͉&FSHhA`)7|l{9,e$xda b+ǰJ=xa9 .Peɍ:ex ki ⒺpAiQgOV$OE!c=-Zd/KɡP͹ qeUޥx1yKhcvr\g3NqLq/xh`sXd>>s?DiΥ! ihts0YEץ Vp>VZy̵[>&"wv׉Ә mb?#OctG+Cè )ȗnI*jvh$.|6w=#-_Sn-8Lc$gS9C4w0NNocI7{̙awHÆ[wdb{`kanb[%H Y l3;q|+rvG@'\n3f}ہëW]f[u#]P @zh&rqhh˙7,HG)H8 \ үV`tڌ?y w1. 2lL!sH?H+Pq~f10jy8n p\{p

ސq&r?Q ׈ia[(C:XT-Ώ6[X9 0 حma '7`[`(3%e5A@O w 8c{&Hca)D9$`8~Fğ8N ޢRbG՛dlwn9>q8GBҧe )$F3edfn6<Ɓ`_8i]m0`l 27X<m LK fNvˤ)#љ8gt) r"S@11VCڱ‡3ݖ$B]( # 1F'C`|F-9mɼCŭM6,}%pNҿ(=rRF< C';1vyn!Nh;v/MAE˦kRfh7,kV|l0n ͓lɌ xXf?}Kr?:6ًg0<A.CLI^~_N6_=&'LoPC`18DPÝI;:@aNpww!n8#x7ޛmul} k :d=;dDZw.þ%XnY7?,I=ˉǀc@gk@a]r]p <cQ;'^Y7-ãI}݋m$\K)=:[l-Z8#q cjuH$0݌;;Ɏ1,Jc=-_; :z8FoLjFd0KVBvۀęNG3,#gx>ozȰL#S`OR7~DňasvTp rQy$!Hzd߰z%+HKG;wX6.PS(lSt":q!6 녈cAzwi7mj%c,# l'֍6J/Wy[nǂk( BeZHϫ{.Af5Yo.lo %oat\/IM[~x7LvQq/˜pcq`{ zX^oxK|?-swѳ795`Op1+:S~}nKܸ.Z<}apKe.̾<asn}3dvL̀l(=Cq G|,?3a0jc:V;c1zf0(aiG_pl3v/%"5q>| =B N]Y>s6DFa.rr(@ASVc}$tE+:щߤ"/Dn$!,h>saJ鵝;ٸ?M.YRvs@!.Y9ٸu,@w;Xd-'(~Ns% ۯ 'g8쿠 c͟ nH"a (fc'f")?6BASgݍ]M723zc?F4TN!,Px{k$1Ϸp9,?L lbc x:H~&$F'g Ֆb8vOb)\KD8쓺eZ$$vdG'w,ntgZ1Omq=G.CarO8 d0Y~DC ,>W$ 3*YXNI՜ I.܋q׫|,猅#amNbqqУ Qc7bJX?l3zi>`z2 qJ&-B ?W}a՜̑>&pgv]eXk=olr釦. F `<1`OF o38c ul2hd=$?dSN`]K`@ib}nklу.}8\{p?Hlcf`>/j1IgKѻk! 0Cv#Fd9i%Hgi3`p|X_ht&Ë@iwp3Rɡ62QVq !X\l6<& oa $ᙀg!J}l3$o-p[ΥdNGL 9٤A?VcDyш.UU> (d\2tkGxA@vʿ"l#GR ޜO[1wK{$pq;R+ /$ d[ 2`75 ?9~dƺ#~`/d]@H >J8,v:l.im00r2Kix+Hd;jP%v26-\1f5!a~npHzPm4 6 5 H8wn0_٨rۀv_֐m}YA1ʓB3xuȬAr~`ϱ=}Dnqr s8'qrD?VEeNz K.ե.`Id(y! a3}Fs&kQAr %g|peevxdYEYRw'n@ 5f\dbN/6&ud8e͌4 Ʋ~d!e= ?3l83vezІ27"}D*2.fμ>]𲋿xwjpzl#HpSKg =z2zg8ؓqsKI.9\,;#]˳ $/MۂԲhN,#]`$@$hXpn 76p+ſ|6g92)rwA`M8'8XHeܸ;ӨNဳoD)]:%=\'ԏ[x䥖5Ӄhyg0Sf̼:@-;v`˹{OPe.>͜:rDU2SJd@d(XS,cxuip?CLp]=HGn]dC53\GdӅa͹.'Bu[XW.A'* z'Y]FVm=9,r8ؔl9cـ9`Dn@^1잙p63& lnlfs w I.L,\AtY|_Yr8[?܎8cWs"(|8=| cR 6%7ڹ=Û1`o2:99hI6klnfvdk}' ]0U~pE,z[.e3 eմ d/Z?pRn8ES콢z'KP\(˴rc*0xz!8D#^}6Ea.'亮ܖmqTFt%L`)+o_Ak|{$Tfd;Q3c.=Z+>+dR2\ං]Ͷl?i69YcXߓ@|.Za.f; +Vϒ2Atex?%{:]I\x'-/a<-gVar}Z1$90tf6.~st:.{ZB0pafRwFU, rV2qg9_5L#nçfW܌ 68-Ztk8kzt1:ս!ť^:a-ٶE\&|r#+fQ6vfV7LĄ=2(Hhtv8|xHn 'Qt|:ZG f4: { kr.L 9tr4̈Ċ[!j5Tnqvn_n nn1ODƯ& 3u_PqAqpmar9'ux8}@j+]a1'i:4Kl#dljf9Ë, - ׅי8KbMk@`ͮPv/0mh̸NW?i9d0'?9Gah i<6`;O~̉/I0̞便H:iHtH&ط$Fa"o7t <-9-FD$%tw"dh=mw8 >M3Kg2_=?EfZYRm G~yh!PJr|2 6'G0s T^ _}`3egqr1̊ϳcJ6NrW`~H d AT[>߄cB:"p݁1Hd܌r}m19azl,|X4+]e¨+UT h :XR ׹_io^'F>kĬa;։%A  bau>)98W(8O\@" IɄQg,:Ihy+z8ML0h@| w9 Udpاx{eQA8]`CN @݄ԟعܜa+gp ǥ[h͡lD$!cNNm;sw nȜIL cF?:OfO-}~${t_/pqX7\^w`L Ld>7}qjwnAHZd)T5w.Fp h,pñ3&[dfs=Y_tB)rm !‡&YcY#?Bk׀6'+l]qCvCvg}!?.uq,oBC +цHA+ >OI24HPuZ<`ޜ۟66W#a0%յ1sX idL,@ٳ3E=hjѵnx#5U`R ńc͍@^#0!lE"˗s1oEړ6_7g [g$v^]6.aECS X $L'hrl{r8%g,OZtsg@ȷouG2\yX=W:2# |{lթ ?!!9#p.+lD |m:8DGCU y7N|lOv>QX!վſŻ8$3 l=ˆY= f؁ٶC2hA ab%w3<3B?.CVl~\l'm yC#qɐt6-2wd9`,<%IG#{o>3! 7϶=wi'Ȩv +  dcvz(涐 U8w[gaԗKϩcBKAsY1gI41es&:<P(,➤ԏCgg #F^Q^a*uOwiR;z2,d(wfwv̪dbI.6~]@jm;`,)ōnhA6HxOaHqiLgn ˉi>w0=:93pOe o lN"nRɚˑɦܘ`f'䓎XD11*7t }D\7za]t z'7,ld%Ǧ-YiFGJpWd?axl6(> +3$]j_ӕϱ3Mgnč]dKQq=VK/owUk`adN=Y.@l<[B=|̮'M\f3~Ăpz")Uջ~Y23۫Jy _C-XEdvBͷ[HP6@ݏR#wf} 8$;w9\r@0ӫH$1±9z,ٖIɵamX0%5ܺ%pd, d4h%$Pri56pUKLmva'^H0K]YwR$̃ψmƐ;?MU~K?a1:o| EjF(>ۘ^1 #,|vH{rGnlor ȗÏK12\!7?.ϲvz7wc$ps ΟxC>@39εF;gW?A^sUsN!?Bqӂݬ5OWh}X,8[(W8ꉎY\8!=¸Ks>㇨GV1(Rw~'ׁV,`Zû> G౞/'q2L'$#O 'sV'LLS'ᇝo:}>0}.X汴14LK3Rij!6 o? vH$~A]@pec9W&|d !/q9/la9 e=wD3Xa>MpFnEfG5ݼ2\F'W.3?yg qⁿ]#SIt{ޠ<`ZO;n6[(:^;p26s90C4;b'^96nFc!ugw~@> ~i'8ۈQ{;r9.?I8a2Ym ;sCt` ?Dԍڎ8` F汌+SٜҜ0&g԰z#탮``Sge!3}#A~ثzXs>Ƕr({nތ`zjmJO\/9J,Pn@F?##sǜp;O_(\|,18 U]ȣ/\20NZ˰,C /͌vDc,t6QϹJ;pol!B&9-Ba}{Pp'%an23tprɶ59oվuQl6ccVd8m90E K #V>O-2/'ϳTaiv.GDdCq$ĀHm-oOLy ? ص_rqiVi8/ eسH8I>q? ѯD&YT@xَ!ܹ.#0=\=m{m7FNsZpw0 >A\;pLMK>,/5' x|+Mu̖NBDcVH![:C9{E!lzMftF*+xLlE /@b4,xRWQP OMC8'6#mBb~Ot @k|O2(}29<@Ӑk8չ)w'rHh_nw SvycNFΌ 'OVZHYݱEOCh^$ {$!Y+M~ zzu܄ȽHðF359e'\D$:,Jza!p\dc7 r?ćK1ٗ`)NSvGN`K6ќGw:l\@C-2).چ_a=o9r]C/~L~(3n t$"@źu]n|P}H:]`It1zWKDdn=L*培M_Ix{t>DdC2g"dXT69#JuW-wnɤ kÏ}#>SFď 9n4{; 6fS-}GcYerW[ u3&LK8 aSr'rT:@L$7d[n7 $ryeZ't"c8Ϥ]$۷bØZ=Ϧlv'eѓu֥7Vҷc>)*?Y=#4!8,)Ě߹)-?C`Vey:G$n! ߭(;XQ*ؕ)ÀD'n}B㛖?Y8Rfp̬dJ Ry)~6;n޻2bg13 _Yptry\>VGc8f'[@>פi '=t˃L " j2F,S 3|ߊУ ;2F-H'cnQ1?I6& :%"6$&vO2]З&b,0rD4\ `ez8Ûؑ~x?. g]$͸C3lh7ad;-Q#rX{& W-z!sմZ ۓmGCYy8Hq\3@`[ ! NRB=cFS y1Ydk-?[7tgqc.w-afdPĔ:<䃣Ͱa@l pm$5']^I`zd,<\?تf9 :#ՉOJ9Ϩpr"Y9'Q́jF<fC/h6m Gm4Q_A;/*/dǝd"-3lwO 8-qc8a=uChnFs(Ʊ,ә=PH3Cb 5eB{өDl83GF^GEnxſO8SW$qZ槼5ͦP@}䦶_M!q1xb96~Z.\FԈN D*s/݁=$٢3A"ލW&ox^[tP)j:F__.ȳ:YPHp<'LNAWe2K̕=Cu$`gOf@gKFNWp@{`=$(skngzKZI`YAiF;ͯVܱ+s4G46L>^ZYY1@&_G9w fϷüOSuV>eri+ԅsR ̇asrLm2c`Xc/ޛ Τ+mw6|hXT"idn@lMp*ܣ%m! i\~@.z] c/ cSMhxبhEnhX۱H`}m=r{?l[8d︽KRdع\%A 8d'`q7pe?c= Y\zvmv79'pdk:\w}sFow}9g4X]f`GS1rߟL~Ɵ#y 3b`f>/6r}vLses\L7O`+??m(^Efi`4evpu{Y_r9 ry$=Xpg+$ol'd_]Y#CJcW,ۄpt<\H9Da/g.r͙t+N/B  88q0 o?KܷN#,s:`7_*ZxXC#Ǐ8?%yf`ʹ=ӍP&tFDrL*fA9*zT9rr97apcy'r=qgi0W|dװlڪ;Ŕ˅lWSݫ {=G"'^R'voa7wAhwc!PXdy-eX @'-s?xa#'5Ӹ'qa8$!~.uk70~K59nI)p<}l X5Vq<·Cws3- 4-IO;.jFHcc2sИ5<Әj\}C `NǹXhoE0@X;\8 LE<^Le6"O0{њ2cy"׫Pn/_HA6ޝ0=( SHph7rl}A_On?#F9p~u͏ע`1e'%pX]G8*zh,"O4 |nM^Pb?!Y/s ɣzCț&q^"2|$ ` ~xN9'h9e]>;g&E#CٟJtK'0m2 3 vn 41nI%{ a%s]Dđ#n| 3FI9ѣL, pc=r5jM6%:zX,01P)`Ƣ|zdrs ^⃟&f HBPfPT ,Ж0Ӭ━u]qzu.P19}jG/r@/8/v<7+XʢeJqE8c:`i?*'`]Ml=c:*VA'}LG"&) ǥ:pS_pPWSdKXSBCI{,Wȼqq酕,G]âfL(mW-Z =Xq\WrDspĿSfŽ?-Yr8fr"q ^lac?-e?8=jl6z #7`,8R9\K]CBQ)K?%ydΊuMvPg.`@8=ͷi -K&?6c [w Ksbt\ `[ upo|>rP\ɞ0fU?CG̱طh69cńQn_(ygVD?/jq@Ir:>[vj7_Ydys6(9c$Xew q\hCiBZ]%\Qest%8^.Gc nO8cKz&fe@0b/&:,t|v 2Y1 1r7MCyfIs=ɂ΂)m0Ă<\:bW9Ԇ~Cϭ@eYZk A"( 7~XtXdu`~$&Nǩ+4cC%r.>':>+./qd.P ;s)pxEJݸn|iRWv3e1;f5b>68FL ծ^!,k+}=A]1 Xno͛򕐗/a͸EeW~GmM8gR+}Z͞'w!bCOᑥ_2Xf). pi +ɟ8C$>WWڀl Q翓:eŹ@}pC#6Bݏ Vǜ%TfE/a1{Mcn>l! Ws[[OL1twéJC~:;BFgR8N=ŭQ_kwj ν;oN' dh3nz 6 <=5.QdŅlV4M@SR!߽C38亹:u tǛ"c6=!W`2ّίK\"wJ?4r$7QG5U$eKil'1gY> rMՇClxL^ˊx6F{"6&Ɠp-LKdG"X$dG,3:M}e4#c6m\${vv ,͈|yaokr sq.KFqr2f&ʈ.f2#][<7m#7qHz }w#h^[}Sc`,if yIOs wm]gF,T-pTa@{ػFo8(wMw$^9v~r$ȏ}`-'N zM;$Zr}r\ƅ,0%XL:{ a0iBϤ{@ 67ܲkDvMP9] 幽 6r]%u cͽJOSWDSt,&JL2^rQ+~Pѡ8D6>u+,{ *Qmð,t:͑d]n#)$sO( Aޣ ÿVpwSϬd$/Єw%tA N%xLc8E\@Hiun1Zb Jwr߈lMtO^)Y`̓hӗn{2pԅMʎk턿zl^P7 Q2xJ k\i_ddt쁈?B`;72D9q{J ګ[0g$8Խ)} 4~Xb[g`Zßd8c>W')be"q36IICF~s˻\/)AosgY#9c䁑0A L)V;?K(0Ie' Z ŋ`1z.w!b0&PAPG sԣYWDHOc.g7>ln*]JG1!)-_Č[x 33c ڇ1!lolFp]9c|ll屏M{S otypst-0.8.0.2/test/assets/files/graph.png0000644000000000000000000004313007346545000016426 0ustar0000000000000000PNG  IHDRU: pHYs%%IR$ IDATx d]s@FCdALMw{)*A;+J\;jڮ 8!esǪJkI9MWi`Uʒlw!47`% aI׫3Ow}_խo?N=$I"؆/q)Fp `k)Fp `k)Fp `k)Fp `k,?/^7JI8d Qh'3n}3(Fc !CBE.yn߻ `6)^E<>ף(:5 :w菇YVqV?;0TxXNp v&)PcjY N|A<<Eљeljc/`_;tHAt/菇i4˿9:⯻7y*>p#QopNp 輰_ћ^ݛ{@WIx QTݫ~7GTO??6(^fh*Pu7HFTvԉ2^{>Kї?ѷ|k. L_=J?8oNU!XucWPO2돇ǦN-u?%\t^=o^|W4(}𩷽|@%~F QԽKLQopSw z| >2ʨ7ؙ'׳L" h")1ᩩTbIѨ7Yé?^HU|nV (+l<,N G~qn@.ͨ:(Mp x85QojW.zU9dUZa+cu`*6 JAҊzV%gP]gʺ8e-Uuy&8l\L2 ݜdzAf2[V}LU6Mp \3yUB K>KQyUUv6*`JM*'jQ)N_q)udUUJ8ku,%I$j[ 0UT}ՠd@)鬜e] duQ@Ʒ[!8,%d ElRx{!eẌ́@սK<@aS\:ŵ'Qk7H(SVTVKp CȎZ7@vT{Ij9E,)nt;K:FC[kPV N@wbkwmS̜8ԥ1Iwi!8]ٚu}*%L!jSbS~9xI. -&8-SP1sAu>@N@Å쨵[ˎb8>6QVQuh>)hb׽K쓰]O]j!dUS-VU #8 LVꈦ9MO>U2U% 85V_eNkf$鏇;SuxVڤ9m* Cp (3_(btQ(>]&(U 돇ӗ E'YU+m)%8 QfwCNM-xej*T 3LW)f>. )õ;z_TQUǓ`1@p Vv69lW@m")XB(fNI@JePT}wgxsQ:,Gp ̧*Ɏ:LTeGALU__QuOp 2Bvڙ]BVڙvSPN14 tD(v9YU 8@GbkwueUOUuIStF eJ1sq3un^TAp R'+u&=0UT}EE(+ Q;nQ`8^{u$_) ); H) PSd%IJQu!8L岣i:EGp ۄuW3hUBQ2heU0Mp 4 5*J14;J E׭=:S]ݥIv: iF$8pzu{3l`U"$XeZ*3_~F)b BQeɾ%8"*j'dGPPT}k!8`!;jhQlCȪZ;WV@ N4T1%QxP+qRQV@N4@<\Ҩ7 E'׾;*PS5Wp%dGqP} Gp &B1u2(f@ۅ;+lqg$3_$;JX:+UߙǸTQuؠJ(&e2oN2Bʵ`C*O2q4 z52`Ipڮ'; L(8>ɪZy̲V8m|*z}T5jqT [!;jU4%؊UvwѬP _2 ]L\g~Op3ԎR8׮9z]+"GI 돇׊f'FʗFsϽOFG7>ýl@ A:ߌzvXTQU&[c8 gwNsN5_5o~D{}ѵk׋>$I6ڑh.)xqzlmӠԛ^E{?S;/?E`lս+! u ; h%oqZj '(׽={o}k $IEN)~K>zӫ{ 3~7(O N23Z/U-~_u]soя~4oHY[  N :OsӝN{i}xگD/z:m͢귤S/F/zы (:yraYKIv{c&gLMoFy"79R$In}$T*TTG)J8q":ۛwcHHPDbw Nkt|ͭ*)S[ ^E79mX+;E7XHp (bc+go_}g?٥Idn`  [3FO|Ë~C1t5y޶푅# (Dp X(t̛;yGVԻ~"7=b}P&?:>zɅB~uO?>]ww㙧ѿ}z~qtsH(ܱ\u}gm~[s{{EԿEI8PL0m=|!{__G_~/ͪ??Y<~;pmiu3IȠXAǢ(J#IzƷ~kt]w^Z>tk+_4B$"Y@w NޮDQ$5@1q 㹻|,8sܡ?FQtm' oY[BX`8w8N# J)8bo\YXGҨ7xJWBUeiz.0@qɔ$I쬪t|x=07Xn 8 dFoՅ5G7 J67f8>dxWX.!@?g!pY2g۳&8 dFYG(t[wPz2C]:2tT^XaycyE7'Еf ]feV.,xV yc 즽9cY.B-8NAGINܤi&2P}^0JR(4A+p9d4 XɜǹrBct@PCTc9a-M?7fY56LNAEScWtڪ6t[݅ @$8-Ȍzdt$E[U@܂#tL<,4YT4Yt,3r^Gh)ho@fr 3M'iBТ{]"8  dFAR E *5fB- B]Bn+(ձ'8  dF`K`U A{ NAR 2@fmMm}Qo` SP;q*Xpv돇:tԪ *Y 85-·>)@BfO:vx`] A=%&85 dFL'֥&Xpu dl᫖N0*boA1D‚c:;1ぎX΂#Ԅ@<,42Vx3 zz@q|2 d_׈Gh)آxXh jp</*,]sضÂ#4lA·p 3 dj"S= H:* xԃG7)ذxXh T=s1@ zF ;*WO`CᢁQJ\Xy #\vTNDG"8돇2@at 5dG)H+Uh c _Tp خk|Yp BQo` :@{q\-cGp J dFLK@s]lJDG-| /bE#lfHG=n%8kꏇ2uP 1G )XQ<,424ԏ3EYp Ną706Vf`X&TGp  dF 3iaeaL-u``sB˾֔ɂ#Gp [dF + St1(,|giS?Gl3rqZ. VVpqV?'8@fPy0z@lSYpNA dF iP|3R% <):/ԕZ82lTX_gPGe6ɂ#'8EBuئ`p5k6H -@[ d~aAN0tBHYQY[Ă#&8E-|2iZjI'L-΂#a၌-|4N0tM-GXp Nz@f(VPg$6_ 8EkR 2@F+PwC'4GQo` Cc G: YphxXh mf@@SYht-~qm,8vS4N<,nuA'CP$$K[ N@fz ' ${ ͂#m$8E-| 2@ 3cwuSwSZ<,4QW VWŐI \ٳV񩰘oa-|P eו&˶CI,8dSJ<,42P qGa2!0 HS NQ T-|P=`XVv,ճHNu lPXN'xԛo7@q\I0lGBp鏇E2>%`t OE$ItT-HNqa “70 8tTޓa:ba-|P_:t:6|#)6?Ȍzh-uht224GDpJBQo`  dB3&Nԅu dF 4#SpϮs;4GMpBu]tmh8 uTV4ǂ#"8Eią703h& @\N\(D~cWF d1-| O^ :dAT8ǝ̹a84Q39ϼܺ] dK\ %#6NNZLp {:  pš;BaZJC#pU%+$leϧ3UgxJ9TE^zPsWBF̨7pJ]s\i IDAT] 9EO1 pޒYWynQEp%Bew FaLBRLK3 Nu&lJzJIb >k:\"#tBxCpB`?iF@fs*loy䣚jv:xɭE\Zdkl`Ym kdrZPn@fV@ia‚L a u&BA}]T\p<jW5gj돇k^Y2VV̟EQ%\v`* -jTui$T|^k?`o<;(KU]$Ix3M k%[-)P U$qds N5X'=C PN0KンW?+ѻ' 7 }IIlgoo^O==cE׮]_Yl<PU'zᇣ=D?wLpa/G{ΗOGDyEwn `uE/X@Gy=wyʗ$-p;`-z=HW"gG>Z)I}Pp/R^?]wݕ󣣣ԩeO5X5<֩E~K>z5Js%.r{ lȍ"'RS?UY/<ha0< L_430zы^~krW@d@{GΝJ8q"_[ @S57}K7Wť ?t`SoI{]wnvwh s7i> L͛MK'wi0kc9`#B|vEchѹjxo}Cċ;vagO8Yě"+ns=pԳ#?&wmU;K?K=tQ@ǥi"ݢwy/X}K~MA 覹*7,-r!`nnn})6a-o~mzmt S4wP|J/*͞h|WZm=`f.55|Mၭ㯯 <$8Bs!u *ش L?\O?>//,5Fp*~>ҋӿۙ4oGVz+&7|4 :!|0g?ҳ(@ =yZJp*ӟ/g?q& oP[Q~'~bM>.@$I7O#4 sOFx;W ?nrŻLS 4 :ϏR/,͚z^t36`SfYꩼ(2i[x=߼o]jOG>袛]ODp ؄sGQtnooYJp.{G7>7Dž^3]0:hje&mя~s?z[LDp ؔk׮Go0t*?ѿz9؈!:w}4paaPtwEnn&ZGfB]|%C?㷶.psN4=+_ʅTi^"O9ؤE[`C%ͮoyKl0A 9g~ΟO,۷+h@*s$I~ ?i,z__}_xy[ӟ>}VUAGAQ@8Iwۉ7D{{O>9UcVlR"79}GW}ݭӟ~hP*u%Io0Iq?~OtzttGw6yxwЉIȜj(돇'nkJC'G.VFq0c^Lwؤ8woa_+ش8w(zl{$Iops`0m/%̢m/%H 6.la!d2ͭ\MKTYThnMtBY_C8$IZ{bni9| N5\Wݬd{- 6>XI6ao0Ma)|Bvj8}Gg~1/ԊضPྊ)o2ebUymqNJkCRNpǣs}Eƫnmy?* lEdh]G療~0 c߽k<~NSz:b& &8`!B|b\8K%_L _.{E] /GFLeB O,,,6-dn>yش.+*KhIog(zyN8Vw ؆ 9kt90g}MNÜ aQZETlFK;gRZL87p5|zkPq]M8 L=yI\'&縝moLsp4{r&$lDؼ&H[;ӵ&d,cdn_$qcMnҩp.N l8Nm9Ԝ( fN&IrWq"@ ^NPq_Y;&P<:9= jEY9(7ᡬ&Ƌlm} 3g2BΖ{㡔pRa%,;иi''%1)msXV`*blлub64CYMI4[4TQg*ݫ[QZH4P!_jvS@eBi2f(}22A'fl+>;Dj&[ll2S)uʰv3έRjW6<1vBHdN5DNX/ͨ7lDXN.U=y u*5W)Qn2fm0S 0U43k4@N /f}?ZmJST̀ݜs@sTU6.ivrNmc:fiP|wsְxGdۘCpV٪ڳk՟z?j%gԙeT6@)`manD(~>X'rοțuFCF5'8Usa[ɽgy)D7-7%<ԥXڜnu>UY @{ ̼ _!uq״څݜ9~D}< nxP ]9`)a0Zu~Y3*:irp6 ˼8f1S5=zÜ{r+\a>T %(K3_m-Ƒymc146d|GdۘMpts\`/UXurIOv;_:>:Yli!~3|0l;wɀOK3.Q!4ȭTȜ9{vk4 ҔәoK fсrSSu S"t54:f2LnS53WʴjyxjϚrU):[E5g2i(4̷!ɜTΒ٪?lVY[@ZĜVO!ׁuB `"iن,L>OS50cnͥ1P*¨7];Yq_ͩirfjR}`6:Mi҆s5P6SQ궒9e!RgQvCVPftXXye;elӁT';tЁ}w[&8E-̤"@Grnw9ۘCf8ې E۳wBib#J3 2?:2"۳{vCx:t̜G7ՁV=M@ZČV'tJ@05C["8%!24n ;9B]*S?Uv˘ TȘia-.8FBfU 9ݩhwjsִ  S%E6 =:[AvyH E%M՟l%Kj$YNw -"de1\2سQop!'%xh 5:f۩_uXlGJ8[貙Eilc951iW${GxK ʑg=K+6w?J/-3YVPo:Og+gm]JndZSf3WlsYN/?lەm. i^io1?[2eH'-6Opj a0b0P*Uc^LXk.9dg)pJiͩ?/#f@4 lf9k V4gk)D6,tgiPkڣalV^󶹬.޻CJflP@ YW2βs{C+$qVaN6Y菇WsC XX>N~(s=n2ک$df8[!qΩd/sjOF ݈ PJ8TlARx:sORaCt U$|^g+)؀ Nf(IXL̫2X̩%m.g~vN}Ofֱԁ vFu*c r/c e<@jduydN-!D@f{v+2 :[ 3lLH:P fL= Yr3g f3 rR菇&P0ɮThAJ7(g;[c3oAiH+q1/Ipٽh0:[?Ӂjb:nOz9tՙ:@FLXSG}!J)X_@A:[AuBi:nϜV*` :n_h[3bb2gF՜pa:ҁttjLe@Es1l sl`ʜuB]ɜ OüVCm*`I3Vxm'lVP>]1Ŏ(Cq|SЎdN͗WgV; Ju6:SۣkF# Z/eX^^fYʭA W?uS77Ѕ jNF7n6qs 2w^e kPndנ|2rس{ݞz+OCP@XN S SgJfh}lkH)Hk"d<5ʘ3e0S# @_<9끌vVjg7'%p($'ܓ 5$ɵpNmcBi&flc6|Swg!FA^ 6̠isL՟le3@*f$9 V7g=cZKysևCSf%Ukm'/%<ԥvPdmc9Bfav j" d:fK3\TbnΜu?d(og;fS?/‡fSr jL+|(&fx,s4oXL=7 sR_V+S1+%\6|Q3_dK3v^=Cۘ fhY9:95U=` QoNʶBUY!pP!A; )َBFtڜ9}=4KWsӶeʜB2oϮTuz4lNj%at|aHSoP5,_.Δ͔W3iΜg}B! 8s=衹$-[Y|uFdWNFa5x̩9{v7ب7H$Og^32GB#,0l3:[=]i;l_uu-dͼLdpjjKv0s6y)Є\5GکƩۣRZ*-6)sJ3@X,y%tysW3Cdr=٪?Zet m9ԟ Bi2["Uǝ/Lg%SUj& sӺSaفy64cnEТeB:;a-0Lg\U:\eEP,6BӁuH5-smaO@sj'\^۠zq(:_xB㙗~NEol]>jŅQon[2avWv AȖ&(8>ȹO-0ژ~f]ٶ08?Lh(~"ڭzK ՜wFQ guP`z%\o̘R^Ȗ;gmCF@&,鋍3?{v +HWM6̘"t m9J'p{ SEgM֊Ёft%J3lC敕%پS>-,gq1;gmlpjFtqYtDq3٘FWbc4ɶjؿK L}ũS9t?ja̦JnrBlJI?\33Id/XUY{,#r!n`7!d<5i`방q iRlst.K c6"\gdZ\迥WP[S Lӧ&IDAT^p΄q|jLW vC6K9k3\3qkxWD?u"T"s&U|ε-Q{e{M/ʼ6QFeB؅f°3]66*8pYoX.N -?2 U(to6-e'\D|\i*vX>7ش̩*h۬*I:gUnUJKEB\n I[Tn|P{Uqmtal(ګ1Wr NU@2oꦨB\- *S*#cVh3M,˨j\ŊT92i'AG NQ*[>Ufʄ&hD4)8E]Uut۵ _} U9ox(+uҨSUث7UD*TJg~P絽*'Ib@٪ ו^Y NUU*렢WVmU}.wU$7*WKwUym۪ΝtXxެWUmMַ_}^QjS4FTym*GTMXŹGÂTQ&ʎD|Ȩ7H'WJ~FB>']Oݪ6^AIV}aߤʾ6BU/][,˾6^jڵQ[0HJФJ!TV3ްv 2KW4X%(IUœbwɜʾ66nиn}IULӃwKj.d9yF@5I\(X;I ْ Cg*(O$9SR@Bc7k^n Nci0-`?~Rⴳ <| w7mǵMu3 N&莐H9g=r]8_{F?$IN8IǵXzpAMzؤ*;4E,8u9~ 稓+]٨TZ|Y`µm9kzmƦfN5ʐNLȻkQp`Axğ.ة(- lqV\ي0>>u@jwT!H텅ɜHPJ0a!ul8I>2j8ppm ʁk#uy\i8ϫ9+͹6i{{kS4OlSl[#8N5Sl[#8N5Sl[#8N5Sl[#8N5Sl[#8vDQ%_ ;IENDB`typst-0.8.0.2/test/assets/files/hello.txt0000644000000000000000000000001507346545000016456 0ustar0000000000000000Hello, world!typst-0.8.0.2/test/assets/files/logo.svg0000644000000000000000000000127307346545000016302 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/molecular.jpg0000644000000000000000000460651507346545000017324 0ustar0000000000000000JFIFHHExifMM*JR(iZHH +8Photoshop 3.08BIM8BIM%ُ B~+ " s!1"AQ2aq# BR3$b0rC4S@%c5sPD&T6dt`҄p'E7eUuÅFvGVf ()*89:HIJWXYZghijwxyz ! 1A0"2Q@3#aBqR4P$Cb5S%`Drc6p&ET' ()*789:FGHIJUVWXYZdefghijstuvwxyzC    ##*%%*525EE\C    ##*%%*525EE\ iK.6d@IwjA'RWn|01Q)A :c\*T+* UNTʕdi&-Y*1EPN"aT) ᮖ/" 9\ IT id*`@nqh' &*bPaCr(9-mtgk?K) Yp餾%W7bnZ?l[38%l 4NzB鸽j賌ktYaV&UVUU&&1S)z0K&jI;.7_P7IxfpHr,iBstrh\NFP Ӧf3(1B1!RQAsg7DeeOƑ|NorJw<8S5d\EezvoA 0jOX~+; ٢ͪ2`Z"KLi+k‹iuhp uMUxWȴJ,`= %p:FrHњ:) yRQ].Gdn;Kt9IVJn[PR76E'jSpEuVjD0 llBȁwR[) T>oG/Jt)Rf0S1DT*SLT )& 7s3e,d b,HEBeaL)кИiJLC )),SJj,TT|XȁEYQFBșc+:G}+ͽV9[i*&M.P"E84d68d0l@/[L`T1D)LU12dn'`9C-Hg.*ᄔJ]%aw2z6RIDf0DLlU'q]"BNjg(D7 kUC8n Pe -Lt Ա&%֏ylevTAFs7L YlC4.ϋJVF+ Q0+l,HO-RVTfV MQsgQUi z '-L SE;;7EѦ+_O,@;eaajҢ7i Ї֨Ĭ*IQTINBs"*HGPIؖDf 0Y\K ["H hjύPY3RjU2o10OP~Ci-`bGe`?:YAxO'1iڤDJ+Rec.#TlI,*Tiҵ#LRUFA2(Q0pD.1)*ҊVJ@"'T+fiH"iS)pX*+!`1JEHBVVBM*:[g ϛ8 _Yti&iUeeTN " l3ڦ⩹ځ]9D=7tËRTe8[mSEILkBXwG˔&$̢g>ZB\t4"Ea. +ZJ:XTT*3)ш*%*b4,̆BLݳ2䣑m&k4 ^$Ժ?ݪOr԰zR^nh, Z|YٜJP[{\A3Ԯ[pUH,Xw*Z7xvO">h=KW=x̠Z$N]S9Ϋ&rcfMOR)z@<+Ul>i]x/µvZV}-1 H2T`3B65Z ]TeEP5˔2eT\1\8 CR]Ih)@3(1)S31T܎W XH=)Jahna4 !nqn0x״2UR_LoRJPIJJf(&)r"R"T%vXJѲ9I-@8(Z0T)T2LFMȚpd" $MA\YI%A,)0JL-D@* rY#TJV^&Ҳ/[>к8~sCNVD΄"JL;Rf 9:.U94BTQ0&)`-+\!wIHPC0^Q5ug@N8$i'רF.c(jd(FU jQ7%l@Ċhⲕ-AC"9K 3QlBtjop,=9_6i_9!ѓTX6l >l+rF 74DZj+պ]>=if8txn4z}1Rlu]/&F4t9R,%˕Wj#D|2YR9qpȌ&X(3dTh0sה)6@.-uu3BİS TEz&Sa 3rpFۖ1*()y Z(% O(  ak6T$BhYƝ)qd&i\G$Kۉ[o-sw~䫫0&RUիmI\VKQ0ʕk(:Ri!9TTQR.[nE;n^8i^/p~Y;uad%*Wb&1 *Vb9jdRBLQ+Bh0 LPKvBSYJJC$DM.S4ˤ BHlG%L,S:3S+8P>ipk} L>3)UiJ֙Lң@ђ30`'-uoGz+OA39vUmvj=3^Dѫ*@s+ypҝ7ԅ>v>7ɰdFƊ^F+Nhy-5 c\ER=G"fA (&VX \s 1zA \7l4u`MU)fT[9 +FEs\lg\+9!UN@_=| keOUuƘRp)LVZҭ%g@Z&oQnHw`)2 ZK@\*!AQL)QCĢȋIj`,Js UE*5"]4bPT)8&30IÖO񴴼l˓5^)**ŽcN[W1yθtʮu=1 T9ux ?K))tE0HvN#iYFN,/yiU;_*A! YP3K%dNjT%YbSS$L̤b$%)r r$Q&BtD.i;&@ (V)tA@rdu+IM J&!1) M*Y7v# Q0TjA:;W bʶ'av QghG_R^9Rve%U*J4NTUsVlz`GMh/9;U5JIhWC""&I&Ck Z߀*!9yW"Sph(jAW.EP3!IH1T9a9Aq LEJҙ\ b(ަۜ?_,ϓ9^J5A{\t |׮p\U5ѝ}@ W93(^l RtQb̅y&#v[R@jk vWוmT4l\q0A% ,LQjVw`$ch2DԆQD,֝bs DAkۻoBd+z_Vv5,b܄8G-:!5 \N}*Y+͓p.eaYZ X}UE5YY9ikej 4e*T"u|̿PpNAnHf]tDo R}$g[אz?}GJyS9L"rNk*ZUDJ)aP )*еL$(*PH**1TB"fIє,BWB3bV&]#. N&%J[(e E؀tu(8Շ2:pV˙ݭEžz{7zg=פ^R]9Ze JiڲO;slJ 6,7p-9j42xn ⵯAݟ q>WGP΍T5vMj^L@u#l+3sa .H)"u0"DrU*Цbb)J(KФ! 3 +BշY > 94~pj]"eMϣ!YɫmiѺ|ѓNՕhs6Z:p#mEUy"YGz*6t> 2nl*7,[MKkECR蔡;! 55lhxX!4>vb XBA*uJdQ hZ(r5.Y! B͛ Ceeڞ򺪛l4nQ6tv`zMsc<Ȗ-jXl &)k])9ti^&*FJIQ33!crDA5x.~kajk4V ^-ҟЬ <|ӣxgO^J$*J Kؔ2 ԍTS:DLt K*JTDPYXj\ TB -SC$jhUh^UF& 3)Y)-[0 Zf44 dLdfD$T]s=[Ʈsp䞁uQn)SBY[TL&rTd:m%x9[fֶWG根D2}M/}S7nt'ֺ:ul[y?ly:mX2IesQG#6AcQLJRLj2K `IƝa&SJjQGMc[5KWŵ}3{U{CZf*b-R]zcr fR.\tr*YIXz1ҾX : t7EZ.0*ut +\LUV\nos=^;{~Qӂ.TVܴ׎7靱abWpu)ZJiE @bTH!Bgj(P\RT'6!L7!ր25ȀmlM[N b^49"Q q82AL sL䵕K"R:RYѫSWva "#Re&m5wyn]84?8~ۉ W8$ab2̨D P*LTҕ)"@̮ %K%jх,`Μd$2(T!I%F&Bhja*\XѐҒPhADfr@GB ;mInAۍLOirBb`KC}/qm[k2RMm1P545^@+:rI9Gr\ۏJ1KJh X7|Otno<[sO֜7B._@yR9􍛀Wv6֐& BIi*BT5FDXZ*r"X6͡Sގߟ+Ї T܍BB*,nlYk*s5:6Vej 8i,`0].]< w 5CY(q]jE%㪥⪰M)[=v鬂Ǟo>5Zf̂B&4 Wka2 (q+sJBZ jQkx$^;S CPb SmbTGM-Y֑- a'hJ@K˙i[jʈ4JRy8_RIZC(ն*t~7a7C4_8οo[+"SDM!F$j!K1 vU JK`FKV\$…M2I"RJaB() RȄiD)*LA LIQqR++ f8D' F*M`˜0c"Ż?zD;*yմ>KTuf驫$-܅YITӕW`M>Cqy! Y[sք J$k۵ 66)"35o+꼷V[^/MP#PFusD0J=+K JD$Yaꐪ(mTV8@X-8?N[Kҷ}\~ Եh  .г\  YH34V6ȫ|eo"x/R.KVtj`Fǟ|jmu>zSv/L^:3vXrM 9dHT)E(oMiD+ TNaa0r&XFg&hRF2JBSsY-)3R @$PZrev&LrbPFN$KEL䎒4*|VlTXL8 0BS2UR*ZH M1D0S28V!G.2SL؆{DuU?5r7'1 tfE B<3E%8#sT*biDRAp)\D1=1F$r [FEB%-(](K Ru*XL*PJJ *54K_MBm}#hSv`L ?VnT~羐bLWOӪtlIRi ZGBjOFNKYmmip $dE KOmݽ2ߏҝq].^_*߯.xl~K[4ujU v %懓0\Pt&-(BI+ ЃdVom<鹾{Xu^LɵPh sKd/ Ee;rYo)L5!^*LidVe7շ/hY*td*:cp=T{eUdᛜ{[gv[lOB"`DDT ;dV*!XN` (:D8DKh@n(2~ 4u -I8pbI\ Jni9 qi\6KdS0jV%0\)*1%JAU*$ӓ W "UKI-fYAaiSѯzwi>秢VΫXꦹt7#ŗUq +Jןu<7۠^7]~@|R}xa=ĦGc{W/ __.&=`x xDO>oppoxQuX<~@|4ߍ3dqνAX@G>nE*v7[j\6lrNЪk$)up#6Vb(CnHT*n \fJZ׻> ZS7@ENoN'}#}a=_-y4w_Gr̻e;scPIZ˔*(hCC5K :mtEig $ kV )S47,PjhEaFH"8\BBD4-!MN=tS)wlHb QN C3#zhj ;+5[ ))TgDʤgj*!9:j#~k25T$*t JqFwq (ׂNk?G <0'' SW^XoPUl͕j7dnD)i0|7{K<ǃƫɯY<\i/=NqhPj4swWjuT.@pcX(?#&qg e֦q4d\5N$PII 5!l*[qWC6Κ%d `v|岥ʨ52[$s~WVmp\;u7e%3ܐi>[735oabq2g?7uyh^'IݫcM% <)CndCn0(TLKD* [Gd""hᾘ"ƻ_ nYeusm;7mjpwP*}]UjR,D 8iX9v-qջ =)uS=|/) +V \^5WG=iy$օMlg/91lRi'M(mKL8U*é2  \Ee u nu2#!j"D*$*6XA!e¦tDˑ/I0f6AV;gFA)ed*13enQ %+f dJ,3D*&"`G$LN7t~jDP1rJU A!Bd$bbՇw=,ߒ56[8fXT<ҺJ.3;Dh jT*6(ʑStM*RVV*RfTBQS+LjRgTUDS9;E Z !$s!ksћ0Wvή\~A'\ G̞JSg2箼B{LT.g{O/M뚸n#^xp-Y;oFhĮ)JrbS !s6^qŝC~Ư8]:Y - 뿗y~>x=s:庚j连#/_Z=k(U%tj* !b;J(J+jlCճw]ïIP4ZXֵ[ǖ?F(n*Va`sٞĿQh'g`V0 YbM*m`{)LP+JnC@8~)5_slanͧA;ܜW.r W$ا@U%+yD)Q c\DFIR8D*d eic 5A['>b%#q"lkl ۫t{!5#W&잘4: o]0Ǡ5%*VR '|ŏ}*n%9B E$ [ I "@TIrP0+jA4TG-ʼnRDM:ʍ[l)Ӛ%eMDƭ*MBiQ Mh[BLjSUJɚ15;MB512)ɭRP 5ڣ=+k֦ƽO 8z6|&aMLE!WW:yA+D$+r8tFb==@ -©6v! ZP i}"]pfӕSO=6?2w}yk~e״۟k8?#5蹄{XƮdxɦ8BV %* 2eF37eWcY>z zcU° kGbd f洔jPw˯@gt5V.CJvCfʱ4'հd} VCMwB[!gaO{7c[pn~q` YŲLzygY0jzu6yds]V`ud* v\.H] Hԁi a$4!M@N%eDt*P@n/\49j꽖D̡H" + &FZW4BxhT6 p|܂A( Stvn #'R;ʼnTJx'/[2AJ3FZfsLh^v9qybLUl M",tg-dTJNLMBefNEJ+LM'NTiZbjrJ*"'H& )TT5i12Z*)-iiZŅ Xa_``l|8qmSo+QNlA69{W1ndKeo?t{'"tE< [L\2kX\ˮ/9>-iAe] .6tO+Q/ Ӗ躾sr}P>]'ywwU4 Q*7 eWbڷO-3/rvFRDE-Aqn.ЪƂ] 5fq/+F`V<-!X90fOchň=&֥)[9ffjdb:waT5 ?f _J75K7nDz:ָzC=}=QX6nƩ0˗96]Dʃ!'[cIFbTFҙQGIeX!-x?DՊ3 ˭ HıIbgKBVIrfIlңLN'J|Ѐ/+8 (,`I+L:CWm=vSˈh$З:LiVBɂ" N'+U"fvRfuFVQTT5NʤPU&tƚѕIRWQeR1ZU+Tej*VHH(N[ nj٥kzKztAō} ^+8WZr-ryC&'ͳXK>|?:u3ӄEZz:&UI+ܴ<}_:'3j&_ZjՁMk v/n^CbW6NʚWC3psPeK)*@(W/:m3KXv'EM4NSC2Rdŀmۉ,H8xgnFE *;9iaUfM Lɉ`ѽkLL@- IQW*q"jE 1;Sp} yETy &WTS夎{0Hؑ 01JD*ItRU$9ra-eifS5;E+mSkBf*tNj6ڶTꌭYQ5um [B"f*i V*JG+IF@dPTS*j~rҁyglN,l~_Qt|]}_6 Qp `pb7܀'^*-HX r︓oqڪ=k`[)q$a Ty>n [2< [bS7W>yWyu<z_egSQ4߲u*Ʒ&]~x?D~OXTY@.fOX :=+%"nf@vzёaB]fZl-9+$ŌC~ݛa`dgbCn+`-ݚtwsáj,`[&+^L͋1K q\Ќ`#-ٔQAl > <\;Q:TfVt2FY .`0SgZ( 9Ib(qb'I BP=+}2껭 ]#/&|f{ 4Z VbGR䔼 TnR iDi;r|>rL3 $I! ) *NM-6y-vD6)A!),R1&HѠxT3[LtUD*jTBQ5QQ4Fڢbjf"ѩKDNRRU[LTQjD iҴBU4$. ٳky?<&zZwɘ͝ZVYO]Sv|%n(e,lyKfዿ6nL_5"vt|WkM/E5SMR.1hj9{L7~t[OT\|Bty)Z'`LϔF9c.\WwW{/L|vVNVj )%Z:iRTUL̚h= r=/j?cUM^Ȝc  @+;2-!I"0XԺbWY 3v֯< \ ٥3l:ImWk^}ձ +Z3<*EhGBe3Wl =T" AJrI.T(b H*d Jܑ\hhRny>]ϛ81CCd) AD)P‰x1YRP"t WiTKre#dY-%1ĎɆR .{It$jhP9X1jO5?t񃲯F$DȨ#%JBE+t@\wt>3b@2i֦q&lR@YW&ijF'Md+ejLJ3&bi4**4LTΚUHTiӦVMDTΚӕQ9TQT ¤BdPd0c]ln;}_O>8 !C/y.ȱRApH2RжD T#n+hM„L7QHEPje%zjtMe&c:t&StѦZcTBTiM+mITjuBU33[mS3UQ1& *kNUiPUhRvBJ#,fBe5 "  g^[c㼧i{z}OW?BVFWn$y[ۄ}柡譛Ҽ%8du`7' Կӌrs%*jz^kw_gkB73`F(e%́Mye?枈wDBкt ƈN y (%#8Éع0JTBYG75 @Fcm/a\…WEҬ50g+`\S!-PlϤn8~n{%I%r팰CWpdmnfMdÈIcLK2VD*T3AQI`[frΐ I خ6қ.ׄ>͓gln %$բ]&IYfD[@nC7 )Q-`ҁ^ U`,%\=3R 6%d!K^0}:lr,"BJ)򡐒i?ȩTv~nϯO %h);yR Cr2$~ߠo/@|&6lDk+0rz;|^p×ZqG~jF}e5?=IqJuXf9,7?zz:X 1% (&*%,)L10J1.S" B2ghZyN(Ɩw9 ]<\T@( p^}?Ovǽ0@1/%|U EhD d9@Hp鳒JcLI.%b*0YHeVT71U31R+"g@ 8ILTPDULM$V\%pa&arA (jL,[zn*]ܾ,˩%+G9Ec-T(wlI݌ &PY5ڒΈӐbQ&2$eqCIP%*cjI>KaN>92hLB"VU-*uRҽ%J:LhԔTBUUxѕ R&^Mm:Y;M&tLL'jSQ32F5uBVVul[B4ꙘTjU&#"q) "L19WS-|9FVߙ2!+$ig,<חl~v+DiNa3#!Ys0]V^^v=?=^T>N@VM7 % [j3V!`Xae*e)q)[xsVyߝ2vnaUwu:NyKZ42\%t[yvkХ;{|u[.9>R38"Ls@ q JN.+P>qz=1,_N!0sL& ,XJQ ni%M@#U*:Q5 2fe!JjVI"]JrJeJKN9֩f-{kF5[ʤBDO0Y훱bgnHVC*Ido$M+.WCAusHo7.ҝ{kt@Șb QGU*dYm@\:SS JK"LLVBI&LN45D %{ThU&gTN֙M&4T 4JMFV3iڧNꝢ*ILաSCCCA(\ )T VRt)9NJO:4s=*22[ug L:3 l}Yf' O:.)DU$,&}!L9X}9N4xzAF48 ܤ"G%+4WZ W$NYU7JΟ3;lŘZ񲔬d48p4QD5I IDJ˥AQ4bJ 4G-:ve9ΆlGVkGz~|guxŌ3e v 1:曄 J$t p\FV1"Cdh  >C2B80c``Y GG9 ub\TeMFPԨⓗIʂ"fHD"$A9z+ԙTejD)2Qj&bʤΚ3IMU:u%Q4NV1Zv PԨڡJMemI\*jaZ$I$pJaxA"t$otdK|]De9!@)0~49|‹9~KK=+'M`-.uVn*gI=m3{ UeEZte #z7u,,i]ݤE,'M54 -y9lr ++K.*l >uV)êtԚ&ޡ~j gvlF9u.+E@Y#4[1U4LS 6rm -W6%}E|''NNh%rŃBY\U }csXtA]`m-^Ֆܵ5;>l$BTGЙP@tp.5Vf9v`T8fт,q4tX2֊qVKDlYgr hԴHιBk;Xs a2͈Vhlꤰh" VԢdllQ.R*U`ZR,9tuZI܂۫:.E=M^]^?bР AW͕]օy D.'M Ωgt#w^sTF̵V iC%Xbȯ#6*Z*.\\,MV$fs׹nDF6 -Fkk,u6h7[y=sJ[7=\\5\U`#323>nټ)o|0%pqN"CiqX"7լ2ZːKl`:s;z$ bm #Adˀ$OCyԯC†PQNȋM:sYd;+GZpF!2+2k= mTq2s(kJ.F(RH`!p U2"% H)Ի>7nhC# Pb6YYP*3*tEhLBTp3l< ve(\~![.,!iɢȕHjXDɵE&Ä]D.$mCYKJz* 13\+%I,- )2i.!Ri$d[cLllN3iMBЪRնզ5LLf$S5h[liJSNDմҴiB'ifcV:t"f#1:m5Mm T0F؈ˊ1Iއo.+\i )l 3D!RٰqGG_I8{-\:r/J~ê ]bǛ]Uc+ UVh#7e܅~s#8-DQ7͈)-1gb1aH7B: Kƀ%C"# (z0y(u.'Z0DIh-8nFR.zq[{ԇx(ytR XVʢP:(!iP !xځ15|.A?"$bd=J!vGZl!fAy-ʹVQ, HlAl>cH' d iq1P$Z\ (L "QV Z$!W0$4L8%IHtS4D3  :(xDQ&TJT rT1)RRQV2RӦ*YRf2*YѩSJЦ]kLMmNi[i*FVӢH`f66;ENN;&ThLL Si:Z!UTchƄjJhBThDRk@;S?k[yvuang3`34څfE;1==0p:ԅƽ:{obߟiWsB(Wzy/ԢEfYR&ͨZ Sv]drXePit< ղv;L`䬡ɗ2FҩiT :8|u0eW$~El\wtwBC0Ah.&T!K"#L*25+TP % Hֱ50FOmy_U=< =j*I0{!1E<:0|)%eI $Rc a\~0y:lUl P XfJtbKXRKtd80 `UqH~l9|-Hr`e7T+E![R D4 :jyHXiҠ 1T2I;D%IL/EJ;ʍS0&v4ԭbi+L*5Nڴ4Ic tA bFvNΈ+&iIʎLm$mm 5զ&Q3UmmS5LƎT!U&C)3\ENLı H;Cظox NdeSW@dwWlaYo^uԻn}G8Sa[:2HnX"ʹlv$n˗o\,0Slk6{-=4] +n\-q3>~΃#4%gR5J&NyrIarAFLWIZ ,)w f8H# 8jw;s5Yٻk C/ iL$Ip\HR 2 A L2Ph&$U"ƃtAe Cu]zZ< >"fp2v+֡-SWZZ[4X3dLo&e̪0*2uv&bÆ@ 31BC7TP Jb0:s]CC] ȴ[' ӲYW0"pΘMKw X3i* RiM)RBQJFتDc*U NkJTiPBLj6ԭS5:&FնQ;Tƚ,)34*& VFb5NRa;L#m[NѫL*k)3[B*46JDemZ'TƘ[NTj*iD*ba1F¢)5|/dw FCa]˲STȖ܍sWZ6K-xϟ? 2\Ƞ9t5{'3}7>"(|G_>kn5-XØR1+(ZE(yGѻTԁNc^4a2^1 8l鋄ɹ51axIr193ե]_9`a׌N;SRZͦ/hAYiRQ1Q:)C *Y.v!! ØV5dMO 哎 \)lAS3hH6sO,)U;%rVT n$DB4qC)Z@D72tGun`L(iP"Bk G8KJ"a iJkk;׸)`zMŵ#"!2CJ(BY )LI jML)-70+%Sh eVBĹL{*Rz(ULU3iQP.PiK'jS4ڲM N4:5LJ LaH*&tic 5է@N4*&tTΊtTLL*:t"t4e@v4蚉drh *ThR4>}.rLΖj:ܡmھR͑jTuN-͇4aZ:fn؉ 8o%hlk4g_w ~|elr*Yu!\dk^y0w`o7|=׳;.^B)N)$1N7 }9Tn\q-RVR5ʢ 2QW/+fr)PB[)'+ Դ\ƮT܃W/Y/Pq#L(xS[A!TTPR$g[S]lMX%VkFokWi~ )LŚ3XNHZk@QiL@ 2`_*(q!K) pj˟rs%Èr>o#W ^aJ4.̶qj\Y$ _HVRʀd\ɔZY@XM ГU69BS+6MV@ DDC) AU.6lQ0[Vni2ܼtrf$4jvQ(9[$BQr+Xٺ4aT1&Q0"ĺYRKLL&S&ʉ"tM*"c)TBe Tj JUSa13a3B4쨥h:aPIm5S3:ڢtN[l)&MDZv5MhTT+&JjbdQ1"T51IJISdR!UxО">ob Nv?nBoWֹ#keu܅lZ%r~ٸK]Az^$ $tGܽ*]>0zbJs~疝[]</|/BDejhxfL Ts5tqFKPH!4̢p@/"(,aKcDɉ*J4 t8 b\(eV Q-N iA] CQ3 BgI9CvUnΙdsKYݺ!#Ey'LւMZvӣ93L*IJZHZh^L*beQ352f&!U:&FfSS "4&4* *QQITLeB'.0NPIjJT+E*'Vi3SJ*Q"Q,SD\ i Nն:Ld&ާ *7xɵON2kb/pc,sMnsTTYt,[Z)}wZW_̥~ v>_M"QeiXH, T &2:pmND9'BD ̼Y~^SXۛzϬ$66!elX~^^#!M$c A)H9ipBUِɈ/D:Tͅ%5SC#8#"NזeݶsU;^I{6V I尥Ii5$3U;x}KԽGզ/@TeL|joC'tNKc@dYJN8riKQ1K aRE("- MIǨ 谕0TBMJ'VBK8" @%I!e#eLXEA NמcHtRLfa0&JN*YBI!rCJuc&MM*b*gjTF )DbS Y3S1LѦa;MLƩTMDVRS)UNSe3JN;ENJ$!4L(1qaŁ.G2e-eD%bB$b$A)e"34&*M+LԵt0g7uo ۈVFzQ̈a?whLѺ|O|%{WgFdپ|܇Vo7Ǩh! Gu AE?(נ*|)V>aD,&q\MyjTlfZ1 :\zJI;Ut81w#+p$\u.ôI_'cߏ-4hs)Pv-Xa$+1Rb @! 3%0r&+`!:7/="u}$Z;^_u҇9n@3vVtܝ1@F5"u09dr 19# ĕDpDdzPu:lRnJipT-`F$XNK8 %V9QR25j ,p CX̔( Jd!rTS5@uB&jaQS)T2Ъ"Rf)IT%PUu.!UJZuNJbf4m3 6Rf2Mm m*k*5L«-^$Z4L(,b`I#ZPhմiS*vmJZÒÒLF%iUifh!Z1U qF0|O?1@O~(O`dٸv}5a:F>M%Ϫk_Twiy]߷zz_"eTlS3/F\L78KUw5O1SD Ukz5`<{~Lf5K(䲈Y%>S'bw, 9k^,B'E+ LfBABB1 ʸ *[.+Ҹ $NRf(1X}w|0p.Qd Ihb `@c3DgSyN,yQ Kg`ʕ,DF3C@&n` sCW-Tʒ& 4n 9b_4t~fR7л/kԡN)A5d<)f{ '`=CyЂ]ut6r1|&/)E=fWhk-;xB,-:SD1hn6r&NTT @@**0D @jE@"*DLEX`,IeR`ˑr55Ci2z^ADY`L0PCTZS:t\HTbdQZJlfi b8Ͳ Y$C*21:BUJ'B+.EC ԕM,R3&%dt,A#&YfW]%3ҿ航'VRJ,T  )*(Hd2Y Hu cy3m[H) hh)d ɋ EMTRVZUR*U.3t*ٺHT_Ï?o/c/9t hu*10 :ڦ4ThT0 )R)@.''/?_EXKGMZ9'0^_WarmހZZxz/Դ>߭z锞nאbY:}+fV3Tb~:,Sį,UY5c51VX,a`P 译X$jUW?VH`*EQD,SV`Jq,d$`^J3;4N@SNSpDHJ60(8P$M6cu91[8i2¶l j£"(T[_>8{=rRN_fT9WTn6 IM#fN:LI*3wE!dVA"`f$Lp@feRsRL(Y0V V%0KɊIKyiڙ$+:HAEH(Dnlf0^LTS)ZdQ) K7=E CU%P9;iO%Cbd 209KBӒ8dhQ:"+jR)JDT%d%mi2Tƚ^JIZRS0 1Kqbqj$]BQ@ЫTaܽ|=1#fPLN31Q+&fv%3Y3S(DY5*!T Mn{3qD|!fϞޙW\7Ivn~Ko>}|ayeXfۊ-ykwשFt0 h;p`mj5j]0jUh"+ mLV`jjUVQT*E`jhW#D.ujJD kT[vDKe p#"5J4P` (v%)i(LHT/ UzFV zfFHSUfW ֑+d lzP>5I"Ǻ@-r3r ,J'U($ "%\ hRRc(V*!X1%\<#t9XK- k1*] [y1#k #*3.4JJRf j)|Sc I<4Z;hdG$}[}utD Je0UFemQ35T2T*RN2+ J:0Q 09QS0ӵ.PD@J3ZaUB!(Y"Hfb (ϫ3w==#VЭH&L&f+dhڢ&*SdRdž% RS  Īi>~ap[k&uz^%?A/oKw\=zN5ޙDߋVW|ïӉ"]Q4A`({dTMiBIV\iy 8ˉS)UJUZ[iReiXRU*59kP T&dS3Hŕ0!RU-]VVȖ8.G]Z2FVB L"&*6ԝ1Q!I%#c,-%`" % 揦9|6lP6x >蜍-?4/1G[gq'f*l-4'lH>x4Z7YAKAP3D9TFA BBAp5$ **VB&;LT9$klV|&jZ:D P "$bɓCIWUsCQAԎaÔ(vZ!vH7Jtf *_bYe^%0bWyߪ,qbdUDw4NYP5-pqht\~|"D3di8j9Jl1aK)$HՒ0HBi\ lʱ:t@Lr Wp !Ќa1X [c*(M`ЕD5Ss0?17? H5^m.Wџ9 z %t%BX.'VZU['RLUbkm3LD+15 +)dIZI,,Yykiڕ:je3Jѝ +i"M <O?=Ҭ' 0C𖇟6D O~%5V'X{оt`xg,=͏5~ T|<5ǠkJɳaSOsw\Gz /?W+ʝ9nlWYU񜝣̰~LonН=L0h!50`C@;WÑJFY hDP @ICe L(xJt` ,2U*b*-Rв "1ȶRf)g3TZڌ̎3E<5fK x-ʢez[3g+,k@bRH`t a)2JJ *|02Ku% TC$2B$;TZ⤶R WpED8PNFT@׌18D-V4Bt$Pk[~q{|ab/* _{mTTTBi )%D(:kNFPTUhУm DHj$\jZZ*˔̫Z&SLrJ-q9 |M(^#x(Nq|0ZdS|C6 _LVyT4w|7NMnbꎊ϶M2{SP-v[8]NSnfgcN$j޳m(*l{ <:msXTupҧ_5,wÎgAb^mQ6qk}I^W{m_A! ]" ̰k ͒ Pj`ND&tɹV|1Y¦;vC*QCɑA"W (#9XNe 82*$JZW YyS&JP[ ""t0gGi\͡1,f’db) p驜u u3\EVlf2\[cLZ@Cȍ-W[W͗. |,0\$SD̆n [pC AI%$d)/`!3Bpj(22`D(,4dyI*f B5 R`G8+JZ$GNsO4>r5S30g`n^{z. TNDf&STZgTMLmKR2DL[eNTL*&irRUD)Jԉ LhG^Wҟ}J^+_YU?=!zs{"Y^Ygww?-w}=UnCɯ9/6^~**'yV" s(5X3,M1z)C`˙9<ƍ 9ŪFܣޜvjWC%4ϵ0>,u+{qcܕIRYX. *Uh9^~ft:oU+CfCKp2d*)i D`.ݸH u:@"f+LmDTTQ.92c"-B\FyK\TU2de11Rffpܣcki0?`)X<¶JD*bjS  HJNtBZ4eP$bJRJYNԜ%sE+%i[GCma6mq|ߨO%ٺ> ̷>bStCi)㎰cUGO7Ii7GtzO˪I7'f2=nV η-*RZuN'rdhd75yu+ f^ !#xZ^_wX뮈:/>Y90gu͚>Yr{]}?E3͑Ycq eB2 pԈA 6 / q8ض]+i$HYhf-J0j& FCPd$ŪE0fNJn%bT9 c4q(-^(Lb̯VԎp, ]7Y!\b!#]7)dH"(,B!b%Ժb$R%Z*Lʩzhԝ+zλx|~Kr)0 ZӡbɣAHSV Z4mL- ZuGKGsN#fz br"HfB  F3ITh0L=I)IH"E)9W?|w\!:d[V/SBKwE2NC]JhTrӫ/&3"bKiFfvthD֘TrѪe 5+NUK.P\u10/R^=ϟ<NjWt;ҽVQ=%[ݒE_x*N-4HעT×ۙ\Rn"9)7@ "u5g%0r$9iةn+B6YZr鵞IgbXg%_dD}:5tŸX%6 s`Ӯ3HmpW!A@Rv܆ f%$ 7n2SFЪN!2adqagй1)4+RdrMn03#& -,NY$js M6SŁ^ڢЯ$D~ZfBLQ,B$Q#QI@YBEh*2\!J)FL !XI&rڴ*!Xǯ,89(JPD(*T5D 0 3@e< SX0 kr : !{F.9Ʀ%yC 3E' KD0un')RDIW[oκ× s\ QWmTޡ^=V~ȭ1tfT,rEtt$eD $UI^X:S :kLIFL&U)4 P3FR4E#,E&iKH5Q$jJ&+yχ}#?ro?ڳ+^m=-uY=&>ۛ}]=Ѽ>wm7$!8~nMDj e!"#saf ꇥ5+^e|5mH;LW#ÿC'> \t92@XBn1 t8-| S+Z):iv7:d\EpJnb*"ScDS |䠴S553 ppZ©.fxY()ܒ-HbL,uk2d\B.!QI,‹ j\PjF45-S 3I5N&bN j!Z1:cuD[Niф*c_H[uDu+ " Lb+2 T*̰ER +* E rHVcغ0`:.% V`)*`402Z*"2в!I[:F/~0HT&@VYnvL6OO1^Cp b%MbARVJRf*ɚRTjR)hLpTu/&fҙdS4"h)"ZRJWR|>c钲>O>/} ziv'|z2Ʋ9>^/KtLHԐ Mm䛺i`sB\5kl ]233bzׂם,^MעdIx鋕ږs!R=~;?vzu6OUkUxΩ_r.#BPDHtnF.Ypp!@ȁх4:r7 *R[M@YHUJ:h̒ &)KR;z 8b@lm3.z1_F K34FXKJV'D+BtjV Z4WK3JVR&QTF&&0ԥ#2KRdR0\AjFO>q1b-aҪ67TZ?&@)PgqЁIn#D^ 1,ڻgO o YgZ+3.fXC[t"թ5C3^/I"HGIFpv{"Ψ俬Sޒ5YU)d-k_ǩ<|pKP@1pZ;dXJц&|?HK4ЕұSC!&)qA KWEĊ^,:-Huu=:y^,LbԎ0TB#f ̨8\[Ź Y k$RUxRiLPU&W^xjBF!i5JNJFNTMhն;Em1JDeRv^^oi΋8gִKUs@Z ȋRUH*tP$1(* & Ը01uBtaS 6TMiJL CӝS m."VN&R4#>K_^3A)dvȭ\z'w,$}DAy*(U!AIUmʉ!Q4ڡIR0S))Tֈڕje:)S4EBRYB\k)H&B_xwyzߞ{ gjAU0*eޒ-A-zc'x$#VAQ`]ncãW\z9_:G\fˣ#\T#*f-DRtǯ<'W>UnW:_=} >yލi.ߌa{S/#qӲygE+tp܇N[ϛ%Kv 4 I D f"$\\I+i<4W1o|)& IlGpZjsʰj*&X`,k*,eV>%O5,+lt̬uWzTϯg}?E҅-NUԀlW)H=2ՄtQaYnc\.i xV\MZcS+;s W Vy}coI,Q􋦰3v _ !X8OkH¸fepSKh|kѭ[S#3[9<@GJRZ9:՚bSN`, HJ "*1*"(鐢$Q+U K "Jke**&fc*(VvLLvTVJ Cm13FIhX: )mTeElm'jV 1S;MNJNѝ;Z h)$$HԼ|Ή픨A abJZd`QŒÈ2C[$h $ZUnGQ9J F\4+$%qQz8upvBeSs- |吽aAxmS|73s$ǥT MeF +3KPb:*R&R& UJ53S*5e'T9*ԤBi"*D "qLAj* *}xb~uWղ?y7~ba}qOGg)sF+T$%wiS y NpU/LB R kTFLE(R,M+)R9t-t*;NN;KZ:4fL* э104c*PJUTi1[N:4RIV&Um;B%3rq3AL"'@ch΍DF Zc˧Ys(#)-fHbAD:sr phTsDNNGD L-45hq3)tc8Bb%hNEAm$PϺ/3.c>_|;a7zvz:os^=sO̴zdjVA*pKȒfaFPY*ˑƥd.ƭjJUBJJNI4iRLjNP,z&K `?~~_wSGM<ZHMMLz,D|gι|_֟"~m"~a$Ȉ#u*w#C>jB#m\f4R#=N|fdnpdmV7x\[<"ۻ~{p^y빬9 JfԵ|UGɭ~Cs b.؏"".3E:L@CBB茤DL`eTGI TI,P*)RdVTbr%XI^P3giTjӢ)Z&ƭ#13LijmS1qefi9QQ +LLcB+m"86531 F"dDt4mдиfRLhifR\bңS94n9 QAJ ʥSrN(!Ϥ &'+A  $+e &dNL][ne7swB@[< R^o];z iQ4DɘLP T5:&2d.ƩɚVDԩ3SJU,FJѩiL&j$DFQ),D\ehձ2Yo珤ۖ O˷KWu ~>'Ξvr]j9jvt[GD0B)+\̕)QDKDGeJ;/F21q 3Zr2-5 Шf&f:&c:&c1ZcC*"3UDhΉi*L@ ҚVcIU12lEhed;mR&Q5MDNF8b*2+LLDו.?y&67Cڳ/@*|}OR8˯R$PՈZK]JĺZ&*ƪ2@ʄBa.&a9*0 m#ELm*u*BDHȰX%Ѭ5 0 RҪ+ %>[|oI`>Uޛ_ry慨 VzͨYtres̭:Ni{8J0ehP1u$kiRrG;46\Z40%BQ2;6sfHM;#7x AϺ!àmJDs"$j }c;NVzk>y_AߏFO,~}R f t,D8c$ĀɕHT2 /jV¶BF'M+B+MiڥP3111JLңiƥDBFtjTNm5ELl%BdӣT:FTitMiSM: 10BcD1DiUbJ2CFDSa%Q51F @m NL֍'Rf:&2)gslmE% NԈdHʠjW"x sgKdgdH39H ¨%Klr1#:1#c~sv\àhr$oO[`ǟ>n(oO1S)\JTBP)hYRVJu)CJNИڲӡ Ȃ1ZcV‡0ThL)U+2l69ET!5P EfZG+^ڢ9o~M.+l7yj'ANhiUek>6d$B$?XGfu9 Bn=&9c֤e-8Q\3MU$j`ض`\;PVW1\Դ9g"'O3=bG_5NK:}%ow瓼lv螷} z TheRt)TϦbp&eQLΎ:9Q5Lfvl%H)Ҥ*ƩDUT&3)ӢT+mQ15QZ6Njl)hi vҙ9-L詔ȴ譢Mj YI +mmMHƘB'D ЈhbcCm0Q(m4NԖOA0OLdRnV`s7PWhlΒn$tK3eJ\"" #!.Wpo7ysp]#vdg; zz>[?JZ]+åM%[Q"JTjVJhNaZgTZM.4Th\\iU:(5Sr QRi# AKhMsnfx /$~VK$D"6GD_gqmzv:3к;`oY0=%SDH-F} m `:RzݳdèYl!6r$%BC;bQ nw鐁&UbsKWi{*̡|j:>A4:}ZahJLbDaHS1Dԩ*!QN11ST%MI*RfeJfDv6ՔRNVNLVT JӴ4ɚiKhFTaNhImQm:S$hL:*HʔLN,JiRLMh\JW=6]k~nu#Jt[Fko$ 4XG$*uQӤC)#Pu/-JP+iRzK~.cbXՒjKЙVsv]6F1BD7CdJh,*SMT0t2IWP`%IBÂ{^_/DLo+xMHFQ0cz'?w}"e.rjV"Be HQ"jtMDkFF 0*a5R„Kp  -+4L ZF)V=Q,eDAKuR2U+*5zY#w@]Μ$&}iU""s|_/G@ʚCJ B?z n.FnJnMc'?Um<K ..}HeEɭqڒkt,^:[Vztxun/_ o2ׄd~o Z%zLZ4Z  [S1TSNVRuNf)2JiY:)/FYHTcpmR:6ȦS"6TliTFE)3Tm1LY1KɚNS15@ZvIS ĥU:!h\ENӢM;D& 11dR0e3S1Zr}( FSNԙT^c67Isv-˞BYQBlQ.VҡDlTrx@ 2ePvXeH⏲y>}cr%0hZ;kz;G{pyP鈡CFգaI5PR+KJ9Q  5*0SR.& nV  u1`VTUJHT6'scmOo?3C2sj:%ZiK&|}5!ѿ;ɜskcD?37 C0dR?N1H.APQa7Œ&+n4k1_]6!éЫ:lX &VD̪T7~~B?as[?(C|v 9|vFhw &z LVJB3Li!kJdʉRbDSiфDBUSFe)Rp5;E+B&5*62V31 Jt4jrd)Z"3:i2$)^NjcjӢ)Z ˈ11S(]Jt%8RLJ`P旇"'RS)2tUIɝZ"H*mCB31j"fmbuFTR)nyr4Bv}!QrdL30\`UqO.@Ψ JJ&KƔ9"v<'3A `#ZFOZ>}j*J("1 P^!S %qK*5b\%%% lVFQ%DNЅY h*pQX  7sIXNΙ+­IoIf+ .woE'o,v1ɝF%DFR"TS5e!F`S1- qVJ9IeID"R")RD֔JDIF6M*6*UMm ɘLJe[i&&6ѩRJ`R&ZTJVɥd*Ф.Q N"BT1hei3$ΚBbFvj&"aUbhFb0GZ?YtzILЃ TN) e q hkɄb2擉-ǭ~x~0"t+Q2z?c8N_"C銤oX)L'F \. Z"e- Ҙ *udNL 0@@jUP$x^5&VUԴ@.)P+l]ŕ/;|Ct\e/Tve_qN:_]! ȁ|BCa ,Xo|~h4%6VPu- Yl;in==zwAM#[;-(ĵ|r'NG7xֹ]Vޕcr Bt5sv6:sKܮ8dU0ٙH^uwMcpW-4S3b@]!T/> Ӝ&ҝSbVB$BLLҚ\6$ˈPT"fTQTAZg e3[mJTiVRb311JɚmQ)dȦR*"jtjVԩh&bD֔/DUiQF2 P)QHP")Y*iI[Jk)TZaYFf&2tLm%L)4FvTV" N'Mmڒ||4&֯ep"IeH*6a4*Lk Ü" Ry D Jh1z6m3:DVzw^ߦlT&U E*Sy3Q94 (jШ \a.6I&IVt/+We-=2hJT. .XY.F>vY~nP?%-L*{n\rCGIe1&}<O|zv(fuDIbAt`ht!YbYkX ׹k'hrWUy$m ѣ'x\>H ANPaά9lȡ+*T\C5.Z+qWt7[e:B5z:wPtZs-lRU:rs2&3FtMNTD*iն*JHJVLҴM+FBfBLLԩLiڧFLTՕ[LBrf;m mNҲf&je Yh#m"iz S LR0%l9*Q3*%m1!6CLh)*IrM LҔ.鈩ɚV&& LFe1KT"S5)LhHo9ǙDZ.1Iʎ0S nfYLT2DBJh-4-/_'y?0~o5,J8Ҥ.@6zV>DHoєTq:"ԥDJbTDf<,q¢S2&.&%M8IV2??ٚYDcdЪb BQ$m_Gw~{^W6}?}S@ {:]baiQQqOGww,o4ȔFEC!r2 69p4lPVb|J:Dۧͥ甎?S( r5R.)Ly@2_tZ}8]}MmW.\"-B]-0 t~DFthF&9qTR3x5زG~/^.0*P8P RT*1*"LDne&X*DDJu-BII*A<$q4K% Ty:JN y"#rlR<}~t@ g Vt+#UZ29+W?g|=Vr7PV3iT:NH띓+Im fmw/m\~ϕf m荣i+n^x=ShUvv6[w_jQޒAeNh|`K z'~vp͸ #LTDLtM)ITNљLI2S&RP̥S*4֘:Sb&,"DdfcVɦa&TEƙNTBJ& N#AZ"(ULFF;jT!UjJ'j\mYHLmQV9+S1mR%hUbcT."Н :Bi3LLm)ԭS15j"M3 Ѫtj3mFՂTƓFǤ-ަpb%9,)JTLFS_._/<+r(&׈Ѐq .g:|zg=L"cD)aEjRU)114 \%fBPbhd*GeSHUHB4$(pS )$. ;JN<霊Fز^\Qtåm]:7?=6.+ YxO.MUo[k2#={{?0bGM6r2fKW]230~jv}!yuprsiθYr16~gfUe5ghzJHԛHDFz C G8B#^So~{ýO󼳤N|6_&pplw\%i`sg[[iOrƘīBiLSJBiʨ*&cE.S/DR5+FUY8E/B I'a*PipVE'R3S ULjrtɁ&D2M-1qruLƩL5:Dƃ+DJfbi+Bj$QLҡ*%Th46TeQ ,J^N`ʔD "L ĥ(STNDR&3*tDfbj#b:ttxtA8F9[\&"I"8|kᴀZa:`ud"􅈞˔LDj\"ir=D39jiY fThngKJDɊ^Bz92֚rf V⾔ Y .4 im6@NGBT_~kNo;m}}R#n] JLbF`_n1.Y>?ѿGqṂ[YeZн0['p$2 ccf`ƕ\;.^ncdu˵O'rە] et( \HጕGp򷮦+Y/]x3p̴{Z~׹kIt1:JW BɅVLgDJ9*%Y0zm&KVɩRfFi DZ"蘉LrfKȓ+#RjVN2&%dM+D4Dh3 ɘʓBFL@Ru-;R3SE+JijDM*SL)JM/&kFa3DNRjKS)%IYə1@$d8@S %3D;CsRFR26 i2+2z18{D%o4Se\K)T>o@X sn*E8ɝ;9=WI=o֓#TU LU14\TELBhB̂KSMB DA#G,i%TeP 6`Pz#!-Z pL(N@2w3 0>`/$\YԀnIq[b %HqaF͖-x)tvGteSKbtf:̬ |}.P0ĉ-)sq-srǣ諺yiy-lfҳ6 g烉fH=}\ҽG'_V^;.,J.-]ãLY9%ȒɍD;pti!PlUʶG"*tƌb5VTL#S)ƕ&&JM*Siy:J)r)25+&("TDTk)D\B9JșfcRSD]NS0NԩJ6զ"&Dҥ3RfP6E#g%&2 Hhxb\ 0Yj$dҶTFj(ht$ 쉩i0"a1V-NZ{ Ϭǥ5dRKRUp r"Lűt"& d3~=ս/&%1t&3r$%JLa2c) L BV̭0'QvM'Jhi `6XhjL3@&[ݩ,)1Sb j` aUcdG![ߡy=MKQ%eg$2dA'\1_|Ӽ`IŲ*5ȎNmy8!HףmF;6X7 t$Jlat .:ΈNzvq >Eՠ3݊l}sa#;\uޯwsƽ/=nkU9+6Qc$ ѻ:&$Dd֔*I#$U F8LL:(J6ѕg-U1S13DM-1L5 hJIڗ :$ӡ"^LiFN4B)RHZvST&U)ڲ5BiZ&IV5DhҪE& DЄ\-DJsdedAtMLh4daLa[VTc&o"tFRi DNL1TXNiSlm!OUQ̂Ŷ}БLCtOVZl^4@e1TGG=.XLGL*JF1sG.a HHH FZ&"U&bNE ڥ;TiV7jV5Vzm5A^ʼnP4r4L#RD&hZƲ%OW? ̏n#SUfJ -Ҩ +԰0B/ ?G捭pǟGBw#:ٹrN;s8 ;" 4zZ fo\7|űC &#v}EN\9ir؛n-:>ʋ.y;3>A7LD)e*\I-&)ߋ'$*AU11RˉQ41KbW g&je*DSe&U)R)QS1PS ӓRE/DT^LERV)1N KV1T<%dI+Lt`U Y"*rf4ƩSLMNڦ*LҢ&%*FQRD(eJf2e *'Jf:)RJ yg lAB\Nե3S1YILkiLTBiTvuQc2#|$Ǘ҇'4  PZ0I1话7wGբ5kԙb8&s $+)*SZtTfeDE )I#El01D!rW2dTՎoV ƯZŵx5P[-"L"n&T̀ B,_Śo+K5uʉhjp +(W_?'J2:~>dḢJԃ[35U$2`H,;7*m6NJm=o7n@zحH[57^,{=gg[O=E2uwݍ\d9 uV]xOP든hк6XedmS);&*W)JR Y `2%da-133)%4jR3*Q+N-:)q)Q)fDJe%KԹai#-H-CTeH)I(ԭ3%UE+e &Fb`j2o4(}OD,z*BRt9hTRLReHubdUXr!s)*3*&EK5V׬ջtյaT0X;"Zօj\hYY 'W{Eu9Zv/(T&acfʈ/ +7<Dn`(KlkJRۚʝ۝;ʇT*RLN:5蓗G3L&ërgZyוu z ]!gh] ۞yޗMo;%;ϰ z}}Gz LKۀJY DX]+Ӏ" VrӢһ~P٢S&JNB: NLERS)M/hjaQ2!+0acPiRbc3[h꜅R)LDQ3 \645J46хꙄ)& 1Rf"IF1$j+*Ē8X XBKz eFE*4Rf#CsE*GZ$F᪖D'DR*b+W(U*GXDDKSɥd)edDI LTDj@\WKˆ@q-a爔3BCD-'hz& >43*!P)*%XI%8zH~:t9ةSdPT)1D%FReZS2Em+DeZZb U0 Uk1*X5ao ***cP:~ ?~[,bfjC&k#5}3.+Z~Q!F*VZBZ88͉$Ldi P:Viꛒ1D]%ckp09%88.'rTgNXaYS>o蝾]W64ݟOu>w[O (e<[)[^:;m*Z^.lo.5*LT4 E-23 aDU)2$T""Rb31:SJ\R1Z4TT#RԈ&u&*T4&c:5Jr&+$'QSQ2&E3(QedI,I\DJdfS14M.-NBh!3JɊRǪvT)rJXSRJMe/!TҔt *S J JUVDQS:*e k&\BPA2Qp(-)2VɃLJL bKx?*(.HBZahYG J'Y'^T閙ڡZcS[)5S(efT*%QR2M"fiUjJHV%j dѻVi39ҳj~jXF4x+1̕nTG z>uwFq'BX;")7H͒t7˟J +71[$/[:9#5.NgSy7p@rŴC]4"9Hkג03JFndY2z% luw NG8FӾߟپ 3s\ns RWHU.zKT=<(ۍQ8;VSdÚЕdR4&&" *ff !q[LT- f"*h)ILWRS1ZtT$K2"UdLʈVJbh)R&I"Z\ Q 8a h*QRVJDTr$ʄ*S5:5LFҊ^LғvB)y: ]BҘ*!ՖJP);EIt/F %̵'TDKőL I{&5Uш^+x?ߣz,r!8a3JH0ˤ+Ϡ]KDSS"U13Zt 2W*EL.fJI^UITMBeU&2IPΨ4!9jU\e j]SOu8pn 2\'(<os_c+W14*LƑnW_@ `mxAtf$4.Y:;wsgIǪ6en^A^4C[ue~9t;p=;7(sںG?G(Dz]zzM§}u-tg2T}+._7s}:ӳܳy٘c:u-Xniw^:II2d*aL*d"+FN*Ęk5f%NXT阩:+LE+dԩ:2bbj#jbVJaB҅Re3S&VB ѣ sD/&iZ ^JB$āUS3L%D.0҉FJWJ&$'"T4D.Z4V"e\D)rS(#ZPJ"Q4%:)RLU %t%u/"irKT&"*Sba-"'A&vM܁ ~yl{]*4kb!9ӯҙ:rvIJr̕gJ*T!:WV7hdh"]B#KO[.U7Zz:>yVz5o;t}mFӎKD6&V5Gv|05?;r-..RJU2ĈE;"D34AƢHRhT(*JLEeDQ1Pѝ"UN)ZFH"DAR!qB&0ɔEi2B&#\hsK\-KҊ$0"tAiJLaH#(\DL5-)Tԥ!TQp2LU0I2F%2L4lic/%BF%@=DU*GXBR KB+#Te dR*5KL{A: :WI~FB$cD)!,Z=ܼS>JgE$5* V&f֙ZfR&DmQLbjeQSJK*TR@$H E7hVT%3ES)l, 3VgNe#RAVΙ2 Nen5O5y}}%epW_cIq9o|րX6e:zØqp6mپvo#uDa^%u3*nfON\/.S֝FL{rf-խ{"i)/fb ) =X6LM-~Qg8w#196G>U?_E­ K̦@2`ל ôɘ5AhQ5LVaz*t.#:54x e3"LVTM!QD*)  Rjah*LF(TИ΄Q$sJj$hHa #2DjVeT4*LPQ2C1"Sdu("D(*M1 14<@$PFȊ.MJǨ<"HWd.4q &S&K3l-*$BiqLq)~)RN  Ӣ jV2wx}'L@Jc‰JJFP␩4 )E 4Lc*0ZNSZV0$aI@ȊH 7ak*f5!iP 1f&Q 5Ki{]| ]?+/766͗1A0},*DAJ 4Y^.3B+=XyA̧2͐60Дu[DugfSMvf\`8 p=nlvyt2;Cc c#Oޞ7;6w^_ W+8e'CB`&)JdeUUnۇ!zZfh\4F'N'& e*&2cU1Zbtd\ҝghNkT'lLceDbtG&fv*&bS<0hɲ6L(ZȢd-(]AJB(zԬʁ%*3L.U/ C/DIb|(RLYQ4R⊡*P$!U22I"T`HJ4eQҌR=S) H)*FG&R&R P x? ( o33)ւC1OcO[?zSS2$DT,R&r\"eB)T3 L*:LQ4hPNBH&VLeUEnIQ0I Xa,)b֢Ow{~2VQF%Zj![tvsȈQU[c7͠P>^0CrFY=Ngdo;b+q(4#>m53RX籐^r~_B{cT шT)ɩ"%1Zr)LhJL&6D*4ӕ4PUDD- kYjXY_Ddj40Z&:&fDΊr8$Qʫh$Q0:RI$Lei"EII%EDYX4 ^ɰ YY+v)i*44s N-5gA,rkJ~rOd(ܐ1fvJlghᰙR!(VtmuHjkXU%%wPąN``N1[ms'#u !hjFI0.Wrtf=3r?9 KoB>&ϲ.olϭz䝍$T$kj{* utZs 8LS3VҖ4LVEJf9[V,J4)*c)aZHRS11Rc0EUH#LR BCiЭ$ D:f&)BPE kB9RjJr#jeYxrUhå\`-RM `d(N0*R$-)B]V"jV HS)\'RKRiK-(h1VT\% "(sG3ui "PH1F1$R ӈDTx +%"ŀl#39 =~l=A%Ь*RbB)Z  38;B10LΤJ*+-36^\)Z95*(:)w@fFp(%KGPf(6$xrP휳Ý!yV X.E-E9Q1Cr(Yh:emrtly-"pt0tFkr܏`FdLz[;C qw Inr$n%xZ&vb~ Ej炵·Z[ Kn&5s,2wQzz1d/EਂRHASP3 OJSq$5(FbbcI!KeN*@m3 ̙S0i̤<&p9 h"D“HIH"+EJjCJQ)DTDR&v")HE KJJE+HSKXP%z)rEJQEU)94!4E6-.4 tD0⊤E-CYZ A*$u(&:J,%&"&)rK A, bE7$fE&^NU|FDiB;(.Lld,!\agERzə![+DTDT-*'JӥeZeE9Z1TNUe SMBTL*(yz'g*N+`:]G?(չ,,!9L+pn/]CGlRg:Vo6[uDj=Էt(WN+egJлi&NZW\ٜ;s):ߑ^6\mZZ\M@K-X-U#v+&uH@`vgӫ1nY]~wcΆ⡩L(j9lJh=WOkD](E`>u\A{ǜE"xotL#/Q La%V!MW @ȑ#+A&0JJi"JazE!zD54DHK Bvœ M*2iq4 9Q t.BHP򢆕 2&LLS3BDkJIIBJdiREAdňI"fMJ3 )ԉZaiNBG&5+i^DFm6U8JRb(K, A, WDJEDH,pIR4,RFRE" (*m$e b&+DOA^n$PʴK ο꾃M2Bb0U&24h0 4m1*gM&ti$Sa+ - 3SF ( &%$FLZ?of԰"N:`Pgv>}};~nmw]]=YFeh”jW73 ¥*" 1*dd3F;qƀĊjH ٸ-pV &@;'=nH 峀3 6z-b1 oO=%@z.1 n\YPOV_vf4DJczЕ@՘&E J(#TeM$eԜͶ \ffh*3 e13FV4D%+#+E16FZfL$)0%%PeHiM!IFȄ!Jv\B^M@Ԛʄ + ZSK&ʨQ+V)ȃ#(ѣ3 DU) H($vJjVhr54@@=*()u*$(R" IJZ*a*/!1q$ƭTeU_I~)Wb!H_=*Dp_5}/Z6v2+acUBeUU2t3&L)Z]&rf QBq3IJC`B )G퀫AJ!!vrhxVzvvO;>JrǷ2(:gH.(,$(&&BH$e#/3)"JvEŁGJ dtt ˪{'RSaܙ'rԃ'$lwȄvˣGHBhnS))eCA\RcDzvxK9\zN_Nzr?:N/׆ zj65;$LI3NR ԪT!sA1iA"#Ia*&L*A)q d)5824S +!30T)NPRVBV"RTԍzT i XjLbJZjvU&"k Z:I1 &KZ"c0FD)KF ]L u Dj\mDBRgLR-Fh(Y*:âe tbBE0eaU#Y&T(i#lG4i,")jDRsZ5gy ++:1fyɘQi ԪW{}+s"RcBD0Q2rm*j&S4I"m1uD+lRvէMLƙ[Lv̨HX)0DNPn#Px-}EjR)ALke@2&lUl em.P'܇3 zRO7qd  hjxFe={bR@6uhԖK^uڥrw_c,> j¹D׏>Bv IJ#|뫉\RIjuӇ^ގulY.ElHX|Vx\]iv<_Ds1I 25Y14sDNL&TdLÜJaS4B[h+I9*FZ+$6BH$De3&"*&N!i@ e!QiԔ+JH:*#M$e(HJ+H 1D£&(ZfTLR1DDjDQ0D!U 4@E( ,'`*@q%*2+%)hHAdid:.S)irZH5Ҕ5MI,QT$ R<M+A+ H=zNԅhS(^f4m1J%QTi*Z&# TRT&p;ijԨF&&19T*F%+B !nPήkeq9R D&;tYۇ,*tY2hN~Ǫt-:9=XH}ytͰ~>dݒjw69U6܌}%Z+lT,3FۧNZ;JʸO:5#g'.KSBg6փW* ,!um[8PGN%*du|$ۃC[C$+!81\PLw;/QN_@hiZiBY* v~Gf6J]e@SӔd`!ZQ 2aED*) D&VFTT%qI t$M%+BU"ȐF !$ JI M8DiZ#""9jBHhtL ,G5RșjNXI*5J*!$ rZȥbȢ H*Q,PTEI4U=b]L!)ir"T% V!N Z`u18H%IT"H yRR=L%vd p~>%8zjȐ5+aQiU%Y1*r*LGDLBd搵"rhU"rR3NZaU\)culfa1yZYAS!`9R& B#AF*(sWM[yW~F)&a] 4gmzMlެD 6e4܋P-xeeԤ6h@r+r=f( * 3B2gfC;+WG.̐99P81  eR@-  JjAf*,+2-:;BhW&[7]L-9T*)Jrg3 &f#11PmTrc1I^H)i*kDMLiR2tdC L&f(Md0NA"(ASB2h  %L)!*R$&M%%%%.(pa 8J"&U1TXiNUBr)pR(3(0[jD(RRM,s5=K$&h2[D7$PDI \TDdd2Rʒ+p8/&R8NH+PBئΔA 2)A`Y :350`0\Hf< Eܵ^@0XdؘBm N4ċC$IGpFuB;ű4*[rV24VhgK^Wni,w^};{rN'kHVc1FTS3TMuD+TeEiK'`+dmTө*H\F6Ra ^DgR)f 8V!QeJ &E4")($RHq3"'TB Q #(̘^H煖H !2 &D 0Դ\)XjVII,o -3%TXD!i02*I4% dlP2,Zeȉ!2Ԅ£!CJoshU%jE)y4I6RWY:ARv3:v3;+E:t6%@%P4iLĵ: ʄVBNL ,GE4 s Ϛ*rFV4+زl3I}9@F9c(B@&=́R++91N-)LK6-(8U! BcAudI ɔ'y(JVcF3"t4&r3)X1M ^j6ՒQΘNpdL BxDѴ9Qj VL+J4rS M!38a"4P9$ BJ&3sBT/PPd:b:rNEvB dn&x0%Jh2weE@J2"50DQd+ؕPdRPF ! $pIPAU&SPf6ULb:So4dN/eVM&tff)RV>aQlQ4F4hLc )2m1NڔD4* mk)3[mZ&)I iS!ʠ@L&z'=u\+XB"0nBIDLĵZvz4 R`Y< lкQ02)IZ >gjPj~j<C.TQ,!%QVl``_(L=Ư[f %S5;M2 Xez{bnbܰnDl- ´r0nsu~}BALMFPhN14aQ4RgjhVBF:dm0NZc T36i Lbb`:'F&GZUb #N1! ׄ R A""tYxQ.X 3&"I5vdຄBL*D-5>eXH+: M 5AIG&7BiLD pX%XBS4H̠&Ir"e֨ %1Re,JP)Rg(m)\6ڶdifJWɕ3dέ0ƝZMmDjFѵ)ԥD 4:&V5Z'TD**@Ԅ@Hp~Z.cJQ3J+6VED#AȪ} Y4#d>CᣲM+Qd({#ę<4Si>@ sՔX(TCfF4KȈ`3v[*X !ꩊc0[Ujߠ3HfR^Il`fYdY1E|W9(n`~'Rjʄ3 VkNRgORgV1m1 )0HLS:1 Bfk%QHVTI"E:tbe51FTA R!B*+&+!i FTRaR8XL%$ԌIA5 %t4T #!LFI)NATJgRPRe*"D[ : PJP)ڛhrF)j(IHRf*B4#$oB!e-jTDҥ2hTI3T0Zg" 5jVd銝1ZaU-iINՕաZT]F:SZcTmдBX2[hr uw KX0lP1ޤH7PG?Kf$~Ap iR1鈫iZU6NڴLLj4Ӧjb3L´Q30YqID"f+ehrjDRfSh\ ;IdeD Ra3BDiiZ)9Z#JzjBHZ)9QD4ԩ*ZUHVH*hI*HA%"\RcI*P FRL k 0EB T|VERDT&QH *a(2$F\PqBΠgIb3 ˜]1 *X4gmSc::iNƆ+DLrB#T2Uu)9U VDItE*'VLmDLy0\Fʌ,ʼ7EGm rIx8͵.:;7MR0EP]'C)uDKya)TPp Bk)Q Tp*RddQGBio(d H u.)dT -H`脩 ND+LCʑ$L t1 ado뗹AB$Tbfc5.2Ҩvղ.*&uBF4T*)3)A4GM#.)3QA*)34mD*Th.*1*q(M&NV%QCM%*D`D&D+Jyz3^PS"TeI%i0`$AA+tQ@d%&M )$ Q\,&Jeb HK+D"Ed%pLL tF -P1M M EM+PJr"vӵeDVZQ" &aLԼTD4U6eFS:[.+Jt4ª :Rhm4ƥ'E+m[Ni31IʚNQ1JfCT0`Z17A_cY(nŨm,70@F- ʠHC\,5 !ud#ʑ)c*P/ &HV5c|8}&Z*[5&aD5L.JF DS)26JU"6Btag(Hcjq-$e1[-pFDz;/㣗l?K6IH3d) QLΩьViN*rkNbCh°1$L1P&++ )V2'hRE T:3F\T%SCԙDa+E&&)#$R2" Ĩ IA4:*fT,,YQ5C%ȕ^H$Stq VgLE8gD P-ZA4$J))$ҸѕmM'iXhZD,R[(rɤB E(B*hrBjLdJ~hDmTJTm2*&lєB2vb&Bf&3&m ;B'EB5:&[ijNLꉉ10TrʒJe4:ZԹ L ?l[;CbڎnY*IVX ]2#euz 0ek2J"(J R.Hd^BCNe2na]<+pWWbxuJqj O|x=y6U}:yr1j^O%yq5}9,<ތjw^r|ס:k~G?oSt{Sj"*cf&f U*9+S2NRrQYQ5iALӪ"dBJ 36Ni0Ħf+B"e5,e"U1D"9P!$JV!%8V2f)0ʝZeBҕ bf(B $AGb".t JIRj%HARd"Ldᠠi I$b2=1$I΀FJOn qPd"JT ZLJIE^䜭cL&$JNJH4D'RbTm4*"tTh*4$ hP1j.RuJLMD1B4%IULkhգMhڴik/EBA[IUD`F?GfY(Tl: X-[5s[d_=z}~WJi=_8Oiӊ;}[kTKg>ϧTw" ă,H㮒q˟-s8o1Mb&zzu HkU.)IjfU:Q=Zn1zuY`ԓtj5FXzgVfچgݥzM/ue'ZHLaQ1:)^d&3tQ;T“R>մLTDҴMLmDRk&bU TF"f0"dIҨ $LS qˀ#mHԙ"u'Jjbu"vBD+L.%I4^HDΤL6131LLK1,!P" n0H%Ri xJ%+E %RB0Q&HJJRH#Q^R,ACyb%e40tm%UQN48*.I5S1BL1J[ X**n*Sµ1Iz[M5r3)w͒t0=`V)e#Yl30Fy J@ZÉ :[ʩ,Â2VBn]M.}ԥDhS&bc*f3+Fbf`Lʎ1mZtօL:+cJM6XzRNY*:)Y3艤ejNL*eL-SIASP B4Zi*"8SE:uP!iTJ441q d%xDPԴ CACU$%DLap!Dd^ 1S KD#D7 Q2P8+Rc*K 55"0DƕLAY2Α'NfvF%hZmª%3 0SiJtb$A 54ƚjRjTDmղS15 L%1Y&VsVw6)dwʜKzBk8JrZa ʮ\ T2 p11[AL!̀XbQ\A%˰2v<\I4LjSr&QU&&jtS}= ΧTyv*}OS=kfks/u3z sю}:͗CNOG;y1ڝa؍K;ӷPe_c6QT˶}::::t]Yb{ŐڮZZ֕r >A @iaM+bGZ UAPHuz2Y5NE:NtIx;TC y<[ԇOOz})^ҝ˦KKjbO}~z{yv{i|z}G'o.{ݯCEZ4"V:Vޮ0GGGGGGe/^~Z=ttGO7Ap~ud׸ wzvu>{SGW^eu?rW^A0K f4ҡDтdKL{tu,]uJu,WVuc؆Cr_:@d:QOXjZ ~J, >fɢ6HH'22TtuƗrZ~^Ntw`;1FHe5ep:}=;9 Ex׿_>^}^?rW竩MzSWGWJ/*ӿj^Ľ{UO.>Vh=Vn::qtd: _#KlO'y瞏`u_W #tWuCCOCK`^O'y0oȿ5!]њ/'yO"yo7ycu5eo>t׏dQ4:L\c>^ö/jAֺ:Ft>u4tэ~]{Վ{:v$vuj-rcU)tZX[bIf%1Iгf"2d^ea%I^a*x2ZG:FCQk5ѫH!DF5}-m/AXJ^ >Ҭ 5'T%;& 4SةmFEQM9WWW_^u р/G!{TvY,r;{y=a14tװc҃uz?.㷙=ڮVkCڮd֯F  T3Z1F>:?'^ Ojv֯ɒYuJhҼ.4V$*!.2Uq 2Nѥ,V-K-JeL xu=;W]]YS u͇֮ZYj1ޮd0GW`JiW=j~O˷ㆎpUdx>O^8ˌMKX&ZjBT xXîUpctf{Ϸӷ~L0{ڮ`]^:b4 [ s9: )JK , 0a]HaaK奘ޡyaLxAAQ jPUt/ѥ,Ī@ (,|BhR4JYenE Um;]{=ޢuu~vz1P˜[$5!+~Y~b<~r0__~]{qzTv֎z/^h5z2֎O5g~X er e:Ku?y|55a,aZiPc(<:v?rڽ@,]uRM]*RK\@I}HbPBX0I ih/F*zbU"=Hy<=X^N|OK, ;K$1+Rt*d1Njk֌ӭ@Zҗie,}{HzJڋ5uz֬Vvܧݫj,:V{ tt`?=*s_DZ~Di  9=-v=Z;;WRq5z^SW޽q1G)IV?ϲ{h3V8A KPTQ~];yں<BueYd՟eUqWd> ]9G*mL$I^^+K̰f"|mHPuS=Y%ev!KaLpe,tyQ4to8Zv^ii@׶pӽ{T}v,(::2{!֩"eVWOPĚa(1!h]]]^ /^$~`;Sy/'=ߛװ#{\`S. t 7?{_M[Cޯju$O S^Ɣ*ί_]@dj4jb  '͒(/jI4M{hux4/ KzWPy= O`]^La RZ pQgNa4 CKji K?k<_N)C*QQRCRbPa!Ca稡`Y_lJ١xce S׵K `C<,)ԕG½4,N,(լ<{X?4(р0YdB[~NV&2UDzt/x ~ta/嗃[x/GO(;:={ {қ;kWONH͆Kjý;WC^z_YeV;p'c{F\Mc[~11){%4vpGuS*GWWq]C׶Vbo/?^_iHKrUM(!QKUiSZ1|a|:HK0/E2R#TԐYHu,de ^2i-*ao.kqx B2UVV3'N,0h! iFN M(t~eWˣ4\mIx2Ctttd;hײ] İ )SY>V,>[xj;cS]p(zNWk]0ڿ'^rGj(?>SQ^Jm+J] OgkN34v%Ez:wӹt5GŨ<\V^e_wj}~t_ZPcNlƗ )yaa}O#Z֋aP*C,) ^D

|_zױ;y??:?:: |օسGĽ- :;ni8z0z5 M3*ttz]~YeFuFz,T{S׷{u=Cr25$Q*.2GC\1A|`k+!Iԥ-QF@ N^*uXѨ&@/CE0K u짒\:0W)/t9%Jq`:}=b .ؗSRu!U=kaKŀc{i,YcN'WWao-k7tjz=tzv~n{_ާc1~Czvjv $UӶzW)P(7aLhO Z5AuAv]C\1/P,!Ȗ/<^JN~=)5VHj:]@2 ˜8!J3&#)/B,)NƒMt,LF6jQuu IU^Lx:v9d!%r(e-24h( M)cP{K M?p{==hÇ*~Y<]a0S3#͙_1]Y,UuRhԦ$Ne-+Ҭf\d3  ]TUYbPaDbdG(!ѥM/K," jaGWF.t=sV ,p<|g:C!<^/UNPс,Yi,{ /"Fn׵O~Vp~v}h_:v^?pvPpqGaAۇn~lu,h=kG8y2ñ=8֑x!:y1V8/@,\Θ)V|{Hr=IM~\>nwNut~uа6|8QKI|YJKNa&E3!y !OZTġaMHK(ȆVȫ杴8yӷbKPF49FXrOoGRaHt#a!C z]п?AaJ04 cV֬:X~Ca^~]z0B=MiF+(]{vm_{Q zv!Ŗ_C5NMk5eڌ+B8ӿ  ,v.:JK*5Jy:J3:VXΌV>{y^ըDFiP PbN&TmX+,!5A^@,^CJRPX/JToW i[  -JvC-ii11x0'tXjcV %2^öцZC!՗V_ t/G@`=^/u>~t~_zح*϶p./ZF.us^Zv{:ҮkNɣUXXZqLCG^ǵ]{W{)xrQkU  qWVCXi ԳFx}]hH/FQU`C5KtļT[ [D; ʽ^ZKC0<-A!tyU6i-E0Җ?FGb՗VKcڏGV_ziɇeF =z?/_@`:hC.BJ^;kq.ڽ{ޝ=_q^W!vu=}{u5u|{CGMkj0^8B-?.@IWu25(_WprFHB.I;TiX9j②lŝ/ΚkFuguN82UH:0MU$dQ[2 Wo$R(#cSM0|txRy $2Y$4PXSM (xӵY-EeLOd0{ܺ.. /,2>eΟq_rit`2ttc5t;'U֔MX>=z_v&5/zWuA,=mXjZj/WB5OQx-oj|,Qf1J ~~ލVI/݋8# =@t 47$,}ʰj'Z.$p9jmYG0D)qPK442_4RC=D=^Y2$ъ)J2*`,2B-SU?v,Z~C =ңC>WbaƏܨœ7ob/ر0!X ň D{Ufb)A6 7~)|D4%.0Բ&{x2eէzj, ܡKI\R*78n5.ZTKCRK v,WBӷ]4k@4d-EC+@( Aŕ %X*|3H| %y, WEYA||1.4f%Ě,*$:2ȆŸC hSjz*GgGFZ+)AgVRԕ"J(ui5$S2dKItM åZ]TXfe (u(YH|UҷtVZ)%EEBƭFtyPaLڬvт{OC`x]z};Qёʯ'*|Ǔ `T6 O0y<]]]X?` }w]aF*^V08Zhm  ]I,2,0X.ESYgV5z*)1,ɖUjĎ $ D*ܤU Hyktx$D*JP+]\ +g^ X5G]YBG=eFiRtRڨYz7 5RiFSW$4j0FjI $+@e%/-BPdU0˜S!,\- pr%KL7lZRttttz?GcޭEՕaܟȺ됥]tɅKQ/ YQk욹a9Ig-PU=^IJJҠշIc@hE)WFz3 T:v,C:,FY%Xڒ֖q F SΌIFXa;ӹֽO$5qɅ䰠.uֽwzӽ];y1`;u~l1"˥11fXHëўÇd.a%aZ EBEP<*JJuwr Mۦ`IZ:xp@*N(4+ExՌV5{2)=^Ѩ:?e_k:L1GB udkלMyȪH|ל ^h H"GVSWaE:)-+yYa}o Jأ#jmjKZ4Ր4=[+ i,::::v.;Q]>cܰՐ/GWՁ{ï'tn~Y&{OSSSҩXU$=; <;*d>=5i{S.eVjNO&UUf(TkŬ`~9('/Q$+E /caT6PWrDj1ȚZKcۋdWz;J;aT)%^ /C塘pMpK䠾BI0%A(_KVj dz2+@>,/ZV,I.M+|$eMjiS CR]{jzHi3<=]>,?:vevPuV^MJykP^ؿ2]e 08wgΝ~_| 1?֋]Z,0ryBR TX:4=>.1Z;  <y:zreCT^Rؤ|mJMAjF*%TDIDH [UZZuQL@ů ;yUVkZjP Bҡ@e_[-u^\c.T+ƒ/E*)/E$ֵeZVHiSRhBjC `.D4eucKUkFR=;$] lH2uGF;S?.G-OɩaBjcðc;R 4Oӵ;kvSWV^4e9+[ GGN^,0t`JkF]^NO-Tj;d)4D2 !qZj/#q+*Iir֍g-Q,v}]h )]Y~gVNx)e2C* DA5y̏Xd$J^S $.FPKJC5&N4OV@%HaL::=_e`1:kV-z?1<R։/VcԺ%4 qc;%M'ތKKkYEՖH|vRhhxUj{)]7 X 4)QtxHZrpM'BtPSz:vҬLE=]]Ej(HuM:^LCńUx2RX/Bc žr 墒C.4FnR‹K|]^ǁY@acڎbZ4+ yu2|*X ڏC>;ӵ>]]XOo:0xSc?߉Yj XKHqa"(nrhWڦ/}BNlXKWB\]{)a.J XC@`ODW w Q/D{UU+u[)[IiVɈ62$hWZ5QF )p(4ր=M0NWTu)רK)i5dBQP *мZKJ*T{:XrDKFI(Q,0 :)2>杫ڬH#4Č+?,`*eO0֭*ʴͨ$:1էj31 jƮ|?p,}wR\KM^+Faג!бՂhw_n얗K 5G] KF7Z'V]I'SZ ;4Wk+hTR5BW\j.$% w(nUd).z9}y ]@,)4y|y/+\0zVR‹ʭQZ2 saU8BގFWVťeӲ$2{S]{˜Zei^h= v c.Y $=kP~_WV{GN"fBAV\D}ÚTդ^NգՏkr2 0eZ.h䜞#[`kE*C=Re b9PH)Fk$AhHm;y4DEPdH.3މP/˱tx^4~Z0S\ уVSPtiPBK4eyBԒhª C'v.!fA$ 1WGOU$rd2Yic䀔CJubiyi%^ `AQ-^άп4ѕ`5\fb_GFiN4]{eGdNqDjƆ:,VOɏ;tƍ9YKu-I`ՔUEaNdP=)aF ZvIt`vaVņ(ȫaʽ}ӵ]X$4m24:4~`{?p$QՁoO:vjiFj}6?e5Κ1LXaʰ(;($C9j\[DTYBZȲ~i.Qs]`<] IjKK U_cC׹jU-V{J6aENt@y=(+VR|Y v!GJV3)aF2a:tP`:1 >G4b^)ǛcՂҶdal-GOuG,:vчj}*π|ߛMXWяڝ;S?=rh몒EY 5a΍*{|\Sye]&C^:kFbZԚ8V)]{ʎiM\v!}bmYJ]_K ɔ&FGPZi&թ-.jKц;D|ҮZK=iP5 m;jۇj=0އaװ/:1#L21# uvOFGz:Wӱftcq֟rrz&5%ɤ+!TFY v( &DsudJCZ/рx'FCZY.5Աvӱ4bԕAc,lB}.uuu~Oͬu]]Gm]{+ڝPSjPЖtaLFVSP ={ːU]^ڽ,U3;XU v|Sttttd}SJVV~>>;SXuKİt1?W4rnDjio-\h8F1:[sb㖮=O,0FFK 4QHx(ve-O> e\y=~X, X^ڳ„>,Mk{&@PRZV{QIt v:Vua25P EHܯ>~tRNҶ[ aNDZxHt}k߇1\4UjA2[M+J1V8:=;q|;n\*/m5얮W p:<%.54`uHoGo D fv̒`ʻZ(^F_~ :=XS)Ҵ5Ńڌ0^VKaG'C:WgQMEu^;QQO)WMtxBV[JSɃb=zȽ^ ?.^z/>ߝ?4b9h#9E)WZv ']YgVYѕ1%Obe*c!JXA-1hP  qԔ(Vvyl"C1Ͻ]YudjCTR'TѪF u5O26 JruaҬ׽*C5Vj iZv|ZxQ՝] ua.ڏ.k}3æ5Ci[JSJWttdwܣ?ua_S"_=˵4'S:q{eQUN M k 1b&(NЀN:(ip[K[Ug8:08^3~=kXs*2rFAVMZ-[a(ՀjH/N_v* D:W ײB IiIa]5)}(!Tj{dmZ%{UVkCQP5jtOKK/t얐 IF 4ueGŚaJ6GQE{ V0ήyޟs 2V4m*i?SSzsGic7*ꦁytҀ< yjxϳxn5~k{WTO!Zh86aؗӲXgx(]tk&GþD*]tL hȁ^R_1ZZ Xu4bFx4щZW^>/@t Ŋإ ^j5GW,:N2uAo> 9ڬ0lYKRʍ+i[JSttttO_?{v+ϸcDS b:?1GdцNFJ22k`kdZw -I_S u-LDl\q!=SɃW_^gu.hujKHNhQZ\jҧ)`ՂSQ2N*DzҢ<*K'ZԆ*K DYW|;Q 5:Ԕ!=>]Xz={gL:u:ƿ d5! B#D+aLK,5_>>C p~E1Ra~aԵU˫N#U/qI!/i5kuzU'TE!CBbitta{׹~cy=C2Yz1BëR :CV=c:uy0$Rb $tSʤJ)Bz]RꧨtiOQ5 /*{т./ÏZ*գJ?xqeVFGZvQڌhA3ڿ̇WV;F!+i[JT=z}'W1ڟZqu%?0EruKW=Du؉ua/L$>{k1~DvOz^Z}.ʅI(ʚhZ%Lu]-T$ySF%J քC5-)t-LhYtӲҦ{Q_aڎ:wX?r*}Հ{+QMj΢#bWX.ý֖R˫JVҦh׶OcEjX)={ vPj˩wP8ڵUapH!jhuy:Z %@ؑ?#DR*ɫWLZ\6c:+,qFYT. ( ՝^! ѓvƪ=νv`:/ʌ t+@z=j{ Caуڟrm]X?p-ie 4-l)Oz =t0Fpu[ba/*QVVʪÌ~D,J'^!,(44eL"Wrj[EYWU /Bk6. Hj= "jjX JSHhUJ:r ՇV L{:W(r^tjK4gF:׵Yc {ڮv{YCR /L)S,j:=>K tttttttttttt]ŀX$VԥTki_LYi*aܮY~z5=!NjQuѕZ`=K]*8>--FLZuyx=* g4(԰P R4U%2KXt5)rJK5iGUdhXF4ɪT>X,NxʺӵCzIy: cT2xP:0?; 1ގ,VҦ4õY,OjC}}:w1^4`vэ-Gr2ZIVԥhf?N維gL.TENOGC<_+I%LgRоJ;xQVj) ^M(id L+J*CRj~@WŗӶ?-kj]E#2NtMQÇ"֬0iWe_SCڬ;i/ϸ=`X.xPԖG`ꅴVTN'y:]~]{G=_EvՂөI\^ʽTWg/`?h{T0~_|>e^؆h`ľ `KN.:d]j, C2j4H2(Ɉ 2C窺zgŷQ`- R.C5J@f5`:G{hAG.D˰`{,W~펵,q`Ղö2]iެQ;Wqj:2V25DkT|o7>c>c7ɕo'_4Rz(՞zV\ՠ)FqijǵG`sŖҧ y3V8dVMJBeLEZ=5>, |,-(9o.o߽<-9 [*S4BR:9'RaZqѧDmWh5Vk]GmV\3UPƝ4mK cf|;SF;^{RYCRZ.JQy:^ayELuKu * WG,,DGV8q&t5((1ԒK)֤8f.5jh*D]]X:.3jv?p$iuXe(^%;:4uz([`˦;lv}xP]Ne.%t`::QtxrXH]ti]uIr*uDi~D98NDAlj8_WVTʅ2yd*$<)-MNr eO.ZV$(K!/ɕ0*X:tLGGF](8f:< ê^zP~Uց tmܫBʀ`e& ZM^M:g֡d/-~ Sڔ]vѓڬ}zEFC](^,%xiG(x<^IaOM+JɓBW`^G׷d.jK}VCGUҔ!ӶU; =J|NʯmjC׿S<|!::{QUIHk]M_tdKć^ڲZT{bc??w~zrO7 k+Rd2ГTI%ը@%5@. m`Ko?-hi](LEXruJ%UcGP(]tr8.0OHP?x3%/ՠххw=˧c҃~_~ޫP5QW~/_~ާTu-JE:Ԫ .8Tjj*XIt%*WJӰ;-5$e2Aj**/VV^Zh{d eӫк:juy NkՏ8 ~TzMPK J]X(W@.a,1 ]rufۋ_-^]mq{b1*Φ+qKU-)z2.45@{®*aL{hn7V|GC5iHgj[ j`QIP3@j P2PcUUNBƬGWQ%S#"]M5y?o6{y})i#wʯY"&]X.8Z)2[IC/B.})~Z ,QW]]]jã4m^a IzCK3d;jŅjKҺ:IүWPCWöևcP|Q@ꪴfGAE3@Ū ZRh[% v_P}{x1v 0^Nϙ`.5 RBΊ%%jq* sЭ)FxV*@ ʺ;_2Nz܄S.%=>G` F=Ưj| xZN=;Tv.!2:@ej`5WWVuuu_nJ͑uT,opC^nDd';КWPʶfMz_0qߒ|R\7~ioغ2Jc@[= .XvϾ:iJښQZeōSp~~\Y )@T} v#SSV_uzvz>Ui% ,0AGVIeBtԥ,,j+LCUBh:>ǸaOr~O_uuucܖGEDt"BZƒ98(Sh !C@:]ucKnњ{Ifw;={y3NW(=^N,Zq~]z+Z?i~yR{WAFiڬv^o&jgAiXK۫$Հέ!,4uj%뗖 ^,'_.Ƶ(F{=uuu}ڿs,;_P=Z*zե=J*4x⠍(ːO=0mBcBG%4>f_a/WӰGZvu{yCGR bk%3)E:W_V8WM+QQR]Sڽ _cTѬ@,R]谡F]fUH%Ti@Z (~Dj0NX=]{~C}ڽ`O,=uh1#*Jƞd!6S$*Eug;5SWy+=ݫװ,j.s5_e\$XhDC]K4,btAdвҗXMD KjrAtZ$&*@e(~0<M K@ŠUzvaiW}Y~N~C.j}tuГƯ&'^$v:+Խdk^Ɣ~U,?)ɫ@:VvZpGUuhS$թiMb&:R˧q f΁׽{Q}>>UuaWV{WOܯ}??jW GjZ2Qj gtJGdKKAĠT$:b,"KkttbT?r&K5+:[:m;LkU] a-(txF5z^ru.:װt։i 1gGP]Vkڮ~Z]_t:w֮_Sd&ɇZIQ2Ė7Ijv: ^&SW+5A|Q5=ʎɚ}>ױtawoɂu bj%UT֟<8 BZA|NӲc0$WxMFBXPix͎$JUQtkNVBI6u[\f6KT^+\ C_NW> :%L2\=5ӋXӰP:Ccuu=!5Ic`*I]hENJ,CY-cF*_䐿4!a\RڽET `:Q_/^)h%2uo=jׇj}ޯί϶zvW,VKQy:]Yuu)d 2,I#CR*\pHeҡ5iiw\f5{nQ]" (qa8?, 6ȯ%CR\z im5YʒaZ] t,0ڮ~\NprzTsz?*]{p8ӷޮ'Wǿ};x]hT:VHtic cx!& 4DZv:R]]_ruy2tuch|9zZv3ǩQ֊z]d/W^u~TԧVVJ2u_ d!O#ܺvZ}:?6XuӽXa_^ wH/-,1\iVR(è-@2ZV(ZRƮ]m__^uuuuuuuuuuuuuy:)|Bjd43b 6jFC;`U~EߺHJːZtO[Jh7|bIh uxH.UPMjҮJ^ZWB^N֬*@|~DMyi|QVQCj {_%)ZbCjDWسM=ί}Ou݃tE ZiA4T/߻>St|DʯFh2y}_+_<ڬv.7.hPSUkSK\ihA:.^7$+H*k= rd^N (^TyTy:'O͓׽j\ë:WJQ$QcU՞Y."PBI%]ru"y1WSu2VT'O0P]tu]ʐeBz]Zі˫ z2O͖]>e^(o>K?r򫫯})]Gn,N*$BΟqIъ2c˅mD:vT.{bp5-bhY]YWluuֽ^N_L/WW]I&T^ZTE;WL#J]{UKjuu5ʮ:y:Iѝ]zKB^ZԺWY$={UՒԐ$ГZ]<]^G<]TR0O`\AsƚP5-xZ P3uoWA^ՇVYǵ{kڿw_Z5(R_;跡$8No,{ jƮ4\$+wi%TZTXcT1,R: :Uv׷]tMhu W]j]Yu.:jPΝ@*`u=ЗWVeNuf'SGjĺVY%=kۉ`{vױk *=^:҃-T ULv5G׽t;y1^Ƕk=?3.J;SnOWQ$œ:(jšƔ5 5, U!!B8!`8<]]]Gbz]IVY(]jrGW]j%GPZV-R5.Vuhu/BΣ' y<]^KN(J<^|h Qu ={iڽf]KŊFM>ua/ ;P{S?txQӰ,1ؽӱuϿ^vwTDa8>OOOski:'r5U,U [MƼ䔉"s_Z!n9-2UI-.Tn^ڲkQڽaFd햠Յ\uYub']|`/BaA{EQ_]j2/JTRy2jëW^hxyŁR;y&v7u$}ʲ*cV8c](*QʿrtUz,>i}XxՃ|Rg?^vJ~m2I߶jMژHr0QkeEԳZJ]de,4LAjDD%K,Opjy 8qd']*G`E_Om{dɧbƮ'XSVt_*WPOzuՅhʃ5eGt~Z?ju!~}ҧx]Gv/A֣'NENykRy<`.LjױWn*Q՝jɡ2kۋ! %;ct`:hR xX4e \Z K-"0]];!ђ^:5tb"ثYߗ~E2j XPu򮮯:>?|Wѐ_9V«2| D#_⫫!,dȽ696$$B7EzArM0G:3r˾ij;UªҦ2K̸uZME_K%k˃_XC;T?4{T udZUWɅQ+YUO7Y%S=r({]ڮՅi0]+҅LW{wM/"7- %BE$rx*%H*K#O0 UGF*PàxPb:<K.iQNFчdPV83GBΧ)W`&}]bhۋJ#WVGjTO:UjΎ =^/R/R%j:g˱5҉*r{uYcߟ<K_WWy:KՂ\ M<*K֯GO5͔H= '~}$+nY2~fnH2&p"PmC6JrnQfZ@HE.yW BүGcj?.%Aj]|jdk֟tq)ۇjp|Ha_*.t}U.PҼ4ӾWа`05ǹFK԰C${Si߃;?:}ں5p!o~]ҥ${C,<\)/cQ^eZ/&**m9ɺ\**y:nT:Ȳͤ`e9+LHfKdKIz@<PyI|H=.)ځ.Ng*:^a>'v2Ί|Vht~o 2 (:v.:x*Eh_%ڝ4tQZw_UӰNtGNtRSa*tB:=]{S͞`'ry׵{J؎ ԕ1T$=~__}>şSyI"ts=(T: Q"tpeIfD>|O!LLDob"bgq@'tt wPgz!n\jy0^Oi$ۄE,ە"le]^!R*w6pU$@JaX2Mh5z,jMij::xBt֏tttxGӵ;Q{j*];WZvSH.Fk^1TpBԨ*C5z{9c?)ޟB8g=Ū $i߮˰ѻQq k,\3GCҋK#3)5Nwkbnn.K7M(]pРYS u 9eujd8M%5(M P XKRC#:[nK27Ra3>iI)srC*&GM5MhzbΌ baqJ7^xgG_SĿ*jC ЇM~:Qe=^m](^M<`G`t|Yװ&O hAd3ǶKj::GNt֟~Qӵ;ӵ;Q϶/ʯΝtUv˰uGGڟx j;ҎNh޿p՞/RBdI;jdy zCٽ{|?PM6[922`WATē$<!BdQ"!{D։Pv-@Q=||I&K&' %tj=ʕmLh+U.dܭ{V-qK+d0LrZ.B*;к3 W4be$ d@z:vuyQ+:ՃCҡ`D "0lEExӱz=(_Wbd떅LVYuy=kԺR 7T%gGQJ;dYj_ױ>b%ևy]+گD^]ScW<] Uк:}:::W.WzUMGj0ԾqҎ|]]{Tvwڿw϶5wQYM*|0rqSO1V(Rż+ (\)wڶ0m* lPw6qA+%X ma'X=mfUj, 8hRIUZ+*U|1"(fNFTSLTu{1S "\016 ū TW%#W,52TJ:WPA$:UؑCіF3kNZ:hY4 ^Tv=ڇ 5zyF5׶,Xte' 1P5z Cu`1֡~D~nvpBh\r˄to1|^A!>Q$Af""ܤ"Ƃ5^m Hئ-l|5Hm_4.voޡjNzҴy0,+AFz_0$U=ttk'4HgCyv!^lutth+ELU甄Ǹ\ aIE*L ET$ iS ΍E_?s^je=Gdt @V֠ؽX8hjAGN:2dU'J2a!2Cr@#JH Uͫ)欲SVYS t%/sfOjv?rah"Q=jܦ;X ڂ" 5@)ERȀhREā ykQG3Nv< 4eOWNz-ktԆtgáz>WG@AR$h{Q8MlX:cDh_=GO)ޟy]ӱb.]~|XGGӶ= {zsHwG}Z҆.( ño_ S*%rXpM$qR@$S,Mh8KRTp`]XiK`fiY:RIŇ*NǏd$Y5ӶVlWWl)mRì-Y+$+A oTR>=jjo.Aӱe;yRue4|E4ڼu x!  :2 <鮎рà`;QGFt` xGMj::vjvjv}>?C"ۃaޏ@5c}?ڎpOG|T?vW_+BY 'RY,^tgPQԯt2cy"-eǐtcT ȕ,^A.[uWL{N2;L-ZPvM;0 Gn=h5jQT`0 5Z֏ʎ=KJ:2`ڝڟ-e=(Fxwx@d=?o0}w?sGNԵhX*TH:7?ؽ5k&w#mi)mٍl͆8*;Х>]{v!K ӇjöG@Rjt5Մ*&/~=+@wM Rȵ&A*dYLӷw6 iEB:) %Z8Ơ ?*Ԃgjܝ{Wm>o>;S>BiFNuANkgGih5}/o/t_NQW.W7k*F֠mv%ۊ-6;B#Vg ssU[*)WhP^V2*e^ZT24@ç-L%9K|!40@=Jgtdt|YH,ƆPlbzĆ' KKEIa)5~bsZ)o_ԝ n3!wޮ,Д0(+ֽtj{h=(S/O2P*:0`;0:t:iqC ;QӰtGN}J@jI ڌїGWyў/A\,j` Gs؂SY*)o. ^͢=c5É Z?5IfͪTOHWF:PbU dsA!M%-.c iZԒ u@gziV̗J(*ku j:_)_ZըU el818=?T{> UL^yexxԨK`X={RխTEuiBdxdW|2Z*.dJx̨# 3(tQ4w$3JԽigVxV+jҮ_z`Bt7Lt׈^XtڌQAuGN*Ij=;z=u,:;U> ::y}/拫^ KJү˷_h?<=oE8 zBs_E [XC.x iH/Vjwj::vqޟ W$o ,]YKGQjRW8 5PP!Ng¸M~W/칩өG{R'Rt`׶kڽL 3GūQ˰id={cI~渚GSO",DRҔzemօdJJԱZbo-K^dK%[ԖܻEhxu/FH˭MjҦ*%b 5ʚSZ q.t+ڎҎގ~S$}]*ë׵4j'0C6ȌV{S^n=?Ųr|Ř^lԗtbc|JU1!&FԶiBTX2Z: &'Hѥ ښ=CdِPV &aBlT:IwLl!{5;MH7Ë6iXƊSV^O`:TRNhPçn/ZQүF^,$(Ez:0;=h;ӵ;SD2(~;ڏ͇F_J>Obf.eu NÃ`Ҷ4}ukͩܧ+T-? M4dQRwf/ElvnE L/ʮv. }/5b(>oN~ZkcV{`s$wZ}^J4>j1 x*g٥.^ƭOGG8J{a qN8* NC Miڏ;SIOOrj3`5<.U{? n jRR6N|yC'd~Nҙ)}}aH놢C2ԸM\VEd -+svBH7dDZ~R뫫/ʽ`W{&QIR`ZZuG , lh2~ZW'B\NCt|³&T|txM*5Ə] ש㦪tej*({=ގz}SRkC/˱tSA?tv=ڏO@Yگ˲%*fa܊Jh˦"4}hpK & >*PB/.s'~HӖPh5ڮRwn^J<~IM]@.DS/ҵz:ڗŔЇWPz0{U: v2K5!z 5|exptvƎ+BK1`P&c 0ޟv1W$_p];^/ʽ?pw<{Nꖁr${a2{/z-5O}c/ҋ E(휰ɩ킨_M*o:К6?]Y:PLDXթ(jİLTSFAQp¹%! !;mz%FWDƀyz(uwT::pteҮJүP1ttŤ04at#WAڝڝާȢE\2:];ҬՎUeyS $Ie*.HT~jՆn3Xb=^]d}ڱwEHM\Z$1vbF.~Akp:ۨAfSKZwKFOz5ZpGuүpNaj{$WR4%"4iHr\[iIP LvRp ŔiMR*M@tx;SF&q4GVuaՇ'a5$e'׶۴~}??5T׵Cy#;ϤVIըdU&#.#V}΂Ւ룫U:5EkR]YъZF/^d5 3^_UhAyU8%͐F%X۫ GAV@)tb}OO\vݯjvӵ;;Wy4>;hqw*.ojYejk1-2dzKQ{fSqk$*s JG-H! +oڹl*`UqBYI2tK)EUTb5>Z,GFz1Nl1D=XcNTuSJSM+VuƮ܆Cj=+GܧܧjSW$Eݧb.}?CTEU^V_lm呬OOtj'y>S{*(ȍijBmmV7!pDr?qZ. gvDhqx؞SJ*ͣݳRpI v4OllȺUSPC= 4IS}>潪eT%iih--'CW^ykoGܧj?/&E;ՇWǹ=ˣ3>] 5,w\vt 3|~]{}?jyZPҧySuh\F Q T7kjH&,ޠj\S.Edዹ@d9NOZT_I}Ibr$2JӶSըױ W_ G$m V S*R_{L;5j1>{ՏWWveIqNv!xo=_˃QdӶO*W]GzTBMBOjiABФ< b٠_֝"C/Sҵz}ʺu <*h$K[|2J+hbEjF^=y$d1uܣtױV{ՇB\`YsprOc;k]Z jʺeSwiTQGGJYKa:,P2xHJ<;Պ/PGbkV ъ::J@YCR4Pz^WBM]_a]KɅdu6?Cp@(/`{ 2R2uZ:::Nկzݧl{S\75^wSȽ;WVkVePT \L)wvҭ+P uuӶAKqjSSMh*!UZ_-/%t~@P>IeBy2TSTԚTh¨*…BiVƶ8n?zSkzx?,$" ,{PvWzk͗Gjvjkz% W=hy׾kJ_k_O@k=DTw.GNyvv$F4D!) CfTd'eMj{qeYi/#L]Zh!֌^D),:Pدz,ʙ[u~c87QAj:/q Z^P:k g˯z}.c'3JМ^IuhDKRQIrUKRRo~6yRrǏs_rp׵Y^ nƽ(E]4%*vݧ_W֝u_U׷W_WV5ֵutC/iXIXM@$ $}:0x]jդ/Яzuue]{Wi)'Zu]Aa$e޽vbў!BVOZy#5!#"I"$D)Ls{W<%:=Q ,vjgpuz<9z#WWbkj9~o׶Gvsʽ={URtV$8TUtcFrX| |BYKUB䳆GyȕFIuu TFC5YJd_J)(вҢ20cPjI|] &R*^aZR93Xlj& [{v]Z1q$(!! r0S?W$MBޡAQZQ\A[_}{-t46zy:~juӉdm\t4SRT^Wq,J}!R8(}䁔nJP)Ut:Зʑ喼{TPOCbOT֌[$0jkX0uc"(Nd+(,?-KzUgRBJcٖD>J(ErT`K$w.}:wm;5ҽAop{׺#Ƕ@o.}yοzL7WVY,1T 'FU+Kk֙]NADƅ%UuyC:U7D(P\EX֙fFT5VQʕRj~uu*a0LJQ[! KJYtSԥPJOcC"{ӵ];^ñ󦝼s f]׷bWԥ5߉Ʈ~gGNAtQ_;\F5rCH{1\+ j:RR!0KwT.Bed=7&Ӷ=zZB;hiZ=;W JJԨڗSز8Վ=)+˵{#6emƖ0eU:NO-Y,pv]sgj[ .<$嵚׋z:|~U׵Xy}ʗC1%4~lP&ZjaR]^VXGjCJ;; '0AyiՄ::>bac/cE\˭{i;yQFiKPgەN:b{hcð~_s;jh] 5dkBbd;SV m^P{X&pE]藊_,3TdvWisjLK%)/ʺ,_.J෌ІeSD /ݐ^YC!JM_ vтmHa)jtS( :\1tҖ~۬t/He3ybeR?Y $Lwu,5.ǸuzZ콾cӷW}]t#K|{z}_^pZPMeΣWj&TW}DoG^X \{eF$ -hSq%w*/*M-P kڝtNAK檀QZU/"&J!JLĵ,T4qؗo( XUHZDȲ-ܒDV+ޖE&kJQ+4|5ZkEn$Uu/6=]J{׷ǃg˃u.~oϵYf5=Ɲkص!jMtu75yGkm@Ԫe"ө) UN{+ NJR8JG( S*Qy{dYR,1]bs* OP)JQ5a;Ph^o?R)sK@T(%Riż`.b ie0E 9##~f,}~ ~~N3WAWP|n=:?>}=c/J\OaZ\ijPUxw" f0.8̡xN^ZU4+"R:СZb 9hK=WSqѪ퉤Gם-9q*S9@'R\2)ڌN1!v{?K8=W]+ڢӫ^M;Z^/Χjd *];ɠ8%*Ώj_B;!d: Si]^kqOnοso*&>ppuPµT]udX:=iZh;J ;Jafm*|XRNo/~a)ɨ}2~phGmm{y~pv=>V{SFK95U2=K΃Ljt} u<ّKe{ڋ%z tӏbd]]uκyDFSںx qa dĥl4eUl)SՎMhe EZFAHWO1к2 B51n4vʡz>/˷ۃ;ڿtáz=;N[]OG80ÉԧFiUI90]]{U?|Yu/J{&6؁CB aˢut%b$Ա"ĵN/VB 0njaSLF("5B6uCV@8HJrs-*.9'Hqm Weh_|E$LtueuG_Gi,>SӖ@xK4ƌȫ;´ӾBެ׵ ї:C$vʮj"d=IgJdU)73hRSL<Ґ!Zy C䠾B_%Ke,d)1&1-OJcyRuSM׶j]&Į0ZSļ̲39ls_ha#?WLC\MhJ>,^xiѨ3U #O';[5;,;Rb:'@G];VB9'%={lEKS}q$vZ%H=fD $?0K_5L)E:V;)ܯԍK}^t:Nd'z.W=R)?=ZU޽іhte2 "]ZPUГVMCEb Rܣo6d::—ܑOj.Şн]]_Ekر^ԮۮDױ=:[DUeT”GHWoi,2^465PBkNiAy3}kgpcO6?E]{b;k^ wqT?*wۀ嫠4sZy /SSP4/Zч zM6G5{@(I-50ڡJ(wfX5uMY:|,:~aUըSc+KxR]53K5ZC\PqÑd]p ,1}~{y1i+'kǗ(P{S^o*>g^ptbUtf={QveMYթ->զdXX ̜(!ֽ*`0If^uuz0u`㈨թe jQhF;XRL{IMM9- 4 %rmi%ttttt~a2>o˽~PWO_B{m{ךffo.:3ǵ{q5=v8;ug,TgW4/ʝG5#HȫB6p)<5C֟RYkZX=/;p~NQWjo)LBjŠFɭzI'x P#H [S\IF<@2Lq*\C?yLoJՕ}z];~=;ChǶw.m;vі3mY^:нC>m)P_S.uG}UR,w.GFxaSj.V9!*zH)/&1"uTHƄfjy2?1"! r)Fط| M .Ƒ>> >3 ڽ=5|;_~aκߟص3о(Zk{Sfc <0u/Z#QR+ڧ_څw;T=;PRF]{*LJVkw1Gj5h‹ rG2|ǐz::2?tV{Ta_iĞvӷہbiϱν{ZLC5eښ== ;"Nt-^\v΄1ޮї^ĺ{UW~ ]0WE"7z۲SIt ǨKeMSeS/B2!ihmQwv7i/>õ{oxю~}zvǞ >ХUZ٨'E3^ʫCF͢${Ճ޽4Dνђc]]{y/Gg,>5j"ں޺UY)WwjT'];I(KRԧ@ƒ**B9 -Gs_r=~ԕ|UP15OcS?WNm{y}jA_<4uZ(5 ΌC<ԺJ;#U*Ў_z׸tw%TU=>]ܺXj#GFAu ҚWPI r=8=`LgGGNˈZJd):ҧAkAk 1z9z}?~K4!vkhGj`֟sχ+^>?pzF4f#MY/Guv׵Z(yUM޺NƮmXNX2v]]Go j^u,vJ qF<^HjR=^%L[@p )'ǶP4,CxFGѨ3s@jkcOCTy|>y;ՅyZ3޿{y(`!Φs%*e]T8GGQVzdvɚvю,%ڽ1P|>Z-";ZlSȓG}大 `08!()k jI!(*QWb8QDv.E> d3؆{y/_5׶_~ΞrsDO|vӱ5ױᣣ,xdcMiSڡ#~AVbөGBK%Ղ;~s{|"Cцjo2o#FJX!Z3*GJWVYSyi|>zA|(.8;{l;R>^LdNzf˰o7}<ugQIObw}Vn#uM>k5˽;ӵCZrhusLIt, )NI흨f6P^ЁX?H~^O.CӶ3jkܺװ,Q{p`ku.vK$K+oX`-NO'WW_VU:i#ҿ.?N}_W?z3^Sk..C߹杴cO{w*j 'O1ҝ_<  w?|{2~,Uvϵ_m*Igm|vt5E5q NÈRάևSi{Qzx2|;kђ{WSZc/0̳G^Ƭu~"44˸"1.4.rb|;{WVKJGewRy?CBjw_o?QޟF+Ͼ_aOg@uШULSB햕 t<6;IJɣW}{v,=Pvi$ ֭/Ȳv{%T0 tR-Imh=t.4SϘ;kW_i]?w˶k {_Qo`zm_{_tyi{Ԧ*^4u5gVK={y)ԺzQRWKT%T]]KVs<{yՕkWWW˜Վù VKd@jC N%rL٨[ +t~~DK&RIg'^FpjҊjRл9qq̒ r{ $YE&;+0̼SRJ/ӵ_z;te e^%,BXUERR4zڌRo qۅtۥ*%&;yEDP ;Uʳm>o׶{9W_RW_k~3aڿ޿yMZ'Z-Tf/o4PeRY8\ʣ"7I2a,3ܮ9Y*UA'HSSځ~N1>A|>S%мk܁=CGP rs*J /ZS,YSȼ/..EJ R܀PSHG(,tc?~OJ?jsCKCRA=_t˵~ݫz4{_sN8g>~OiTj%U2uKd˩~JkR)AJVKOl/ϷWeNw],{viY Nqd(nKu ; g/'OxUN~~οO/޽Əh׽>þw_tf'^"=Cz:VY,՟kx]~{A!sýӵ]tu v_m*0KUױ!׶VY?r eT_V3o?+{_>|Gz>k{׸]?W_4z=GSöaFӿj}F;y}Z{+g~kJ5./5Ƕю=Mugg]_uVa.kPUo-= 2^Gbt5,گ/Z-U"ޯ'O'uu^k{޿t7B}{׸F~~~O^_]]{W_߇ޯz{~OO5gA8WO<Oi>_sFj ,4z0CZxH}ҬKǽ@~dua4aǵ_kL{yWV ,[>byWWWWW[<{y/󃷟z#S?w{p]z.ڽXz~~{W˽{W_b?/WC]^pN?!W:1V>>}_<( k@Ώr1j*4iW竫Y:)Eo"^N={ĺt.֬p,::^0ãOYIeӸM8m̆${"Y"ڎк:={QO;Wj?g~]kOPc^/_^_G.݋W;>SiSJAxR@;<{ FM=:v,/X,MuuʥaDZ 1Z:GBSť !юWqe%M!fզܖaSOM&|:j=U~}Kja3_ WO>8WV?_͟xv׵;O{k8v׶wOOi,RYj:>,2ў:=aJG4]YeՐ^.мK`<];ҏVhZ(f7x)Deڌ:vj,}{y׹њNiA޽u?WuԖK/Վy'W@^T"]9aEO^p]_z?*?zv/^M~οiڿw^?|;>WdN]}}ޏOrzrPV|UGܺ^};y:wV>я,v+ڮVܫmYӶbW 'M;уbZц*q װpzm9?/.̏>̞=ڝgо quzV?&~Oъ:ޯo?>Ÿw?]<ueNk?CNkʁXgFYYaRK&Ց^hkLY,iگ̖{Վ,5eWWð4aNښuZʱcd3:{Uu`Wޚk Uޚy}ub5Oާܣ./G_h?Gܩ~N~϶~~Oug?=Uۏa^ܴqtaS˸z5vYг] ])N({ Kd2 Œ ,]{Լj0ev ӶNʍcזeT_(SD%_döD)_.=;S}(G//N}]?gN1ˏ< P疿v>=}":uu>cE^W^5^NC=|n:2kK j:J!Jp=qe5e4t/WedA.M+˽ooxw׵;kށ.]X|5.zĸk@kڡzS'rj+}=Uz?p՗o?tutO_׸u4ZWW^_{ ܯmij+e?{QVYZU+ڕ)F+ۏl^31xXӷGPcN]{Վ]dkޮʝ;?5{_u%:z6|;;yLvtao^Zvyytzݯ0=*v<~{i3{0ܧz9~d?1gEOm tt .߭Y~oZkїzںhu:CfJPL*.D7O|էǑgG{?G:;>T|Y N^Gj]_?>/U_??O :G0 Q{/5?ӱ{>"N ^!^-th.w,ͧrpY{Ojg:Uvz u&H28ȦOSyhӵ;j?k8Jk4w^WZ]z^+Ο|0ތt_aM;#T]&*>KkWv'O?.㷑ujhpjeyuӹ`Z Y :љqȦW ˴u`??>zyiw==~Tu~zxoe 0]GjjꗫzU~uՎ.w}>ߢ;;8ӰgOmYkkv}p??v׹TBj+M 5~t/ykjYeT::^z;ypj>l~=eSƀp-bCڏ4p!ԗ!н_ ,J-Oz.WOGGGxi"ՀT>{%.L֯NU׶T+`%P$q*iD{?άT:>go?/sښ~oW֣F*mYNJS]kWMGaOܯ͎ ׷kZr^]m>穯>5 ի@)PBzaSxFZXOzz{p$ŝ]uEbVF׵zKjZ2j:*;Y㣫 ю:>u׵_WjjijZfFu=yR•M^m>M+Y/ϸ:Jyr Ҧ=Փ/ϾfƟp{P|;dK:=k_O?*z/j~>_?/'Nvy{⮎]t~tήcWZ4Y>.p5z^fzޤ:Fx1z:}ںy>~r ?2Yd]Oa¯F;Yg=)ZhOQH&S]^}]{ױc׽G׵{T:.{W~ݯuR?kϰG)^ǾsJӋ:{j.kx=Së,= p{yptugN֪zw}pOGOOO)eU+cF^3Giӵ^N^Nm{yh h_^tqǵ^_r~o*v*.#Rd{P}.}N;aVCOm^GF1.JZQ22v*)z3GOriΉZ¯͆؍cFjiteYge,Ֆ{CӶCZ)zwӽOm;p~U']u/N :hj%]޽u(ǃvaJXbbGPV_?rC6if,Ѩ҅!4tOb=ҍOJvIjЎDzxg]Fz3_W壯ï_%_'WWW?sοvVro?׿ݣ=^jӷ5~]UCmkvҠb8vuNʊzڮKu:>=/F ~f3&c mq?Ѱ[ĖgOObz2(8z?> =~=޺w}^͒}uu^ڲt^uїŗQb8wOi}HO漿Yg^LJzSN^g5֌'B~oucN^~`w}Mj;ARtz:]4ʓ^,%?㾟̖ˣ!}]ZЀjGw:1S_]]^yv׿`{yëb{Vj~]uv0m;k?~}{Sہ:=YO,j}@={Q;St,=+#L,׶ƮjC׿=ڏ?iޚ+#WW)ЁؽkOGbOɊ-{^;W5]vC'jj]5zvx2zv뫫n\>k~|~h/WkCjT0馌'Z]_qփaz2C./J,Kǫ\tuӁ<{S )@J/KS,5=Av.yKqڿwZ4uu{6 ՒWVKڿpޮyWWW]{yӵ{Wܯܭ;v}P~Tǿ>T]JvMzu>,:vv/FtʡҦGGjQ_~~^ay?gZPj%^OcNqgjvђ=گ^ӽ]{W]tuuc_яk-A~~TRCz }>挽]Gz~aܺ˱^~U~]{GQOitvS+Oõ{Rf]{jm;kP:>=z>$QO:]u$2]U|IgV{Ȉ*z2ƚҡ\?wܩCz:׶|Q׾{Vj~=Wܧj? j%)!}}z}vkٯqGJ:}ۇ}{pMHu~zv~z> j=z,OG `ƌT=+՗M^:5eڴMi/{uz_zm]g'OrO';ixtt~@={tttՀB`::k'Ե'B?pP ޅ:UGZ1ߋpaM MM<{ >.^\+V?P-mUdkF^uvm;5j `0Mvo_.]ĺva.SZ:0tN:?:2GJ_jb Ma:B1o6}(t jښ:}7Mqѐ].GG(ڂ::0 Z0GGN~L]GNtG:k%?WοwNvB*iMz{qz?#aJq|tYkk4eRMSOGGBãYӵjFCѐtttGGGM(]@5_'CWsZ?-;y>?:5?6Sz;jNftf=cJ~^~Otƚu|vcZBYҮO:wNtzj:GzGAގgON~T;iWN/Zʲ/ߞ_ƯOWF};ӽ5mGx׃teQuu~H#WmXF^_%) pӹzvj}^Gǿ~׵YXk*peWG_vӵ;k 4eƔ$hހvuҔGՐп]G*_.ZHס/JUS8H,o'^]5ʎ;T:PKy<2| 5_5_5_9~vgӞϚȪM>?/y=Og:vf=׃#іx0qe3:3ZSO5|mMmn3WO'0X~]=;}{vvv|S|,^e䧞y.]KȺ*#ؿ/Ӱ~ttCO>| ތ^ v,Y=^WsO>THGev4/Ӳ0X[yO71kh|9ϛ<Ӟ>y|Ӝ_:_8a|/=syiOWW|OjQYpw=a֏g?P=TSS4Miܯ~sӷGрdQXX@a- b Կ>/R=OU-3|,̆/2S̼ȺRX~G׹,kvk|Eu ӷȝN{gq~^]_vZy2 AK=^,C؅}/KS{kCZ\~_~]cV{k5/?pqǷ?{jXc_ܡz~1k˿{Vx˧co*XbΚjQ []zw4g.aR*t~^}8?:ҵgkW'y1ўNi԰hE"?osسޝvz=?ҔoN3~Y/=^$P:>r#kK[[5uY7O׽{h~ں08#~]Y.G]~sӰmGc_OA~z3Z3|]=;iZtȖZHUsOW<{{W)޿sWNv ^<5(x>Y|o_)/~_cQjŢZ{hfM>~??=>rGzF;k^uzM5,j;T2tzԍ5 fOI]{^??Ⱥv՞xMqxxYaoET*~u?v~Zv|>@|BXW(>J_.*"1|M0ˣ^ % $1#_FYgi:jvwgi U{y^];+,!v!2քhPrtttttx<^Q|[",B%) uWg1n!/p/C"o|xbGp2Mq:Q1GG)/<:q!^%/%BptxxS_AU?xӲƆGG'<{bt/ZQ=]ҔtЎ% o>&j:?*=*Ao.ԣҔԽ4}iGB SL]4x!:Q4?{vr>Nuҏ~TvӶ_&{SQ >0{$=@=ۋt~ZQӰ¥PUd=+RS.o?0cjvPe,zPj?U;bڝtttttttttGŀڝڎrSXVijڱ?Fj::::::vjwzvj:::wܣz:}:vjw ?ԔS:w֌~Dvz::::vj=;UՂs_Ag?=D^Lv}gyȃON=>4wW>yjw??<t"*G?SO?5W_attt`<]KZ?o.}?.AGϷ?<QOGFݨ~_h?pz}?zșO漿8{}ڱ}?y-՞y}{i ?0i|ߗm~z}.^XHOg? ?/8?f`w)=q#WN/3Uqc{~c\ AǷ.vdv=L3"o1÷~{0{y~MZ0{y/|c|4x}<~L.~_wϷ`8,w/ϵcÿ3=< <ؿ},{!u$} Tyx?%%в\_2ѤӮS<GнNr~/o@ޛ^[m! ][i+#$ mI]1N#K-z ?-‘dxg.i! 짞[9Mup>i:^+R:g4_V_Bc>N<$=9;,['L=`w^M&[LBttN <~ѵv-$2KpFlӬ?sCG_)qFΘGB(GRT_DG-vVcM֎<'JNS&o +)%?%&)|a|s)d &u@\${y0؀;(Jl[CBH2#^4i# Gm~LÓt'\vJqz17['&hICRI$^dI0+5֖ޔMF,Ivw#մ?`ΰM54͗23/ <<|$I6hOZ?T<9rnʇO<5(i2%mi?P7OѿM;]$3gL%.ɖr9zp;ۤhOG%gd kYm-4iH~mHww;lM5If} ܿRzh}}Q&q_ic-/4,l8lMhkhRzDp#z4:v/]'yO'H,)׭/ש9ÄX܃t}$݋n\Giz"U*bl1cf\Ҳ;t NZ A嶝h@cȄIo _)u?cDra>4W42ҙKq c]<5eMހt~DdԑsN8qv姖CZGBm}9]Bsm o^ av q&EY.sˊ&rz\Uƕ}AHiPMqkZom빶o[ogH㻏Ʒ>C%ЧOILܒ)Lp3=ҟ$Obn#@kԧZ!CQ( 5O'p:_ Fku.<!oN-OȻ2}]I/_eǞB/rOFoŌN2<[Xyz~'e /b쿭O:mwHZ]0hq)N֚i]~_ Fi)Kg\zv`? %_"F<V$9 F(LzdLw<.c@t.lD:#}.?i/)2 -[ 0=DF#Թ1D"re~/0 -~;';3H~o#Vl9zk`u +JyhCõJ[즂qS [} >Aϔbd\)'w/ǛaZK_G#}P۾W,qA:]=~Ow<'$yLx㲘a0( z_ M9Hè-syz.3~ZCzk]m4&hDwOPGqQ[ބS'K}&:}&_;)k p/}?J@L%Y.\yv0`jU!0ԏpʲ,T_o<;25/M}OQ%l>&)QM#t㶻h5s8Idl)~ O!KI'N_M !plGG<r9$,Sq6H2Sxk%?w9@Gg,JE8CXL>k%t& }rGBQ.Hϗ>Yc#q0p?i0NOsa㇣(̹p6'õ4EtpG,O,p ,Gq 2Gd9bS&,{oOqkC7Ye䜿IG.H/#(`5Ǒǚ~=_i__Fp,/,2 sDF!@'__L}I>\ü ]̀y_ˤ̝Ŝ's7)#$?:IC$ܬqF/$mHw6/XȇOO^Q-G #[6a |$ -O|2^7hA$4UλI,#uL%EF@x_i-i:nK2ݥrz\D2iLk^Ҵn{,0%#i/IoP/RÚ3?O//6j%˟rI :U2g1_Jo oI˖P-K-ރ@\}FH>LH}2FB ޔ?`=HqY9 ݎ2pB|'I~%##ϫKO#r%z[ QDzbxcRNqOcA)):oB?c?F ێG ḩ̌RIe&T=&>\n\M)yaykBŐbKm S's2,YnNs`8~6ރd6 |͌!@k!?`=H|M1[)K>KU^qt/Tr1aa< /JJ$eh<GOQ2%~Z$ a.8?@1HO:$vWѮp;ø;ý3e?OcS>\X˂4qRuώ124ARm-wrXd4ize)Md~ksmlZWimqS?zCEmOһ.lDAq0g-¼,l1RAjG5mІkZ-4ZSM}VC40>qP|IioCMM?f8zN\C[yj̢@#XLĽ_l[}#m؈ֵi̍@79̦76-8cfT<(dZ)m3IwsPҴF#%2=Eg.Lf?A6ՌdV8F@bF e-l6n霿×OS2@*qDm2q}+g;:K^Д2:SH4qh>0|uY >-xz.bBA-)1 /Q1Yyi7y Z%|#AWoAJ2"V4ZVGgI-2q~&,^{L62cѥ;ZF|GdcꔲQ:/C#&1-mBc~WX;ٖdlw`D_ʓο9ǴS/ͽy@Gp24`nj};"ȧ[HIFem EVe?jN˗o,cLr ,2Nїzn71):4Ahяc2,/):'Υ>MsGg ny% X/G&͎c t ok\r0$d豁c D%9D Z"7huf}kt5vk[w&imC=fӲ_Aw?4{ !lxr~:x{,i#LdH!gnN2Y|v c`Q>?1Si},14}4ӷ$4R8Hy#vi [/JF2]cDqsg_|}5֤xIB JB˸J!(r hܹBfǡq3}#4c'C^t z<і i֔BbŤژvOM$ǡ''GlrtM ĢsK#KorduP݈S: ,#c?'m +O\i#/,Ao .OEOAG,)__螏7a?Sf|?ȧ"rۗ_lO/+//;}k>>n_1KV=6S,z?w0?~)m }`ǍO@:$qyh'Hmmml6xh;#; p}~O>?qOO}.>cgx'd?&mޘ}2;/[ЏLbC=دғOl~8bgm~Go[mvmm_վ9%aJЏ'^V?-;] ~?w}i(wsR˓5:[oKoѽ>j-wHzspW/kcI$dތ߉x@}c̓?z؟xv%.JAg' m[}m GP~O!z|أq]7O#AlYcp#~ #P6 #ՄL"2.N37Iro0,}\Xg< 9:Cym-V쇶F/Mo[e! -͢=_%?ǰ:M]dN+7&|2i iCLPz^c@-iQAGҤ9t"S~:GӮ}XpN~hI2gyeO?00ь#;ii~*M74_W6OWi/g_H̀exGc◪2^uXqDo?޽fӣ2AS_"dR{Kev?~_2>W .vvy$㐲y. (~O$orc1眿Q"$ErbSM4ӵkM4ޅ #mo[z3~q?۳L ܽG_#9zl?'1ɉH# '2nK h&#EE=$r'|2W%t}0(89 %?3Wh?̚!@SVaammmii9 Lڳb)>IGFkVax?~/QMYdoϫ)\eEMv=6p|&]TqdqG? 2ASJ]=Lb8ݲn!XQ(Ϣe N9,a/"1r>V}\c6CXtHdG,+L[-]m}mm}֔M4M}5nOcp[:f-xw$ MkMi_BYkr5 bu}1i?5,MH-ga$b8I sfߒOGӒˊ"Hv4բ IN1i.CLd/OOo/MFHyZkJikcAA/0nx1Cg:1AGl=NPW.I^K&_4?CPLPH9G6xNX&R>8@bH<1$e䌱ԁ}Dϥ&eJ) w1ǐe0}8}zYb 5?iky,H:[}w +Z_&53I@8d^1#~vK/e(FPx~O?$?ɲLA(2.}n.^;byecхA!-ِ,qG?-L/V8))Z2M4]N!gG]f!CqˤomG2!vOs˵ZHHgUN"b) ~lI]/W=ou4M54_̂wqJ ċB~_G?o<{L~*f=n+l/:Qi)Q(h1L?4)/!߇SYfle!2'TeHn|NG qXT燠g2\M4]aD}39L/Q1z?f;pGoQlY3=oOG>bìa2c"Dz"!#;b M1cH iLXb$%];9R limZM4M4MA=q9A!,?5?tdᘞ86'DqrϨ@&hp)fΏŒH#ƊB"JC@@LS)XQ1f),zР$@ LϤO@wreR|M4M4ԦX=r(k<1_Oq~BzOȞ^geCODgCpb1s<͊$)Fms'[DYD1P?ed~iu.>Yd|X2?hYINiMkZi樂 h=i S& ΰ a*,j^ŮL XSIi;rr,l1<>'hK/dd;A}KsVoEdzO6p ~G+G~ ӹ~\X#O-2D@ki!ۡ(֚i!7c#!h,J1cr^&|gU$ЦQ1A}Qe_+?_dُz_Mt}oYшԢi2#m"՞A|~lgEOe;oP߇3tOI e\47Gl!.ߠ?üc;ֻeyxs!/ȟ^G~$/^͂@ ɉ!plQ6'Ѥ>292%</bSȜx2(I#&9e$t|%?1Q%1 %)vG{x#B'Be|SCN} ,rv``YH?qMI}o%]DA7 q?ADqd|XL=+rdf~C4ڑGivnHh bbH YCm9"O 8HrgA?ͻF0ɶ%[#, !򩿻?͏վl!]I^M (R}kMp"08"/" *xr8c"X3J2W%`eE ҏB9|~?cFt32E @Ky?uqoFO=.0äS?zH.nQ9#r (0~iχL&y$$?'3y˘5dO(H`se&g̻z.ofxf@q Rof1A3rb38C>Z?_;B*Xc8!WzVOWS,b?&iZH!1eR5!8d1_Ex3Clt3mnO_n7.Y啔?_aY"S^} /O.3GϪ2xNHr$Eӵڐ9DJ".Bb`ע,C.tMB[zaS#Z?a!!DDc[G%x~>_o_'EY,,2#,_r Y"zyM~a&,t#u01qEQ/HR&eVVOSd{,7e#nsOlX[N*G@evS/f|~?<~ ??TAD3L^TAƛQ&-;\~c1 a2Yş&M0HJWQhF8<Y l;mc=k4E ~ߖ;!S g ŤA C}eD1"vqgɌx_Q.?d[?a_E Ηa$F sl,B?Id>}S3sKE1vFrg3&=B% 3?4}'2䏃_!}QˍQLJL01m5N[16j";C4>?L:v}Pxw6a$`Iz~hːz>gGL}[Lbb)be z'E q29[xU~&S=%IҐco2WJҴ!}Ix~J5OY<1Q! 49Fkh $4րpbL<ӈ\ H5tm% tg? ozc'Hчj#?$J/B(p4y I_ƴ%E3_'މb"Xõa.-]y.Tʘ &)\1BWw^䣴{W$ d7Nю?2L!%*_Xi+_>O~uh^;,? I1òD/ ĘFo͎x>$s~Lu#Oe/'Q/V1<2ğF32=NH8'$b5śn@zYqmEۡgY@}5 ? Y _XϠB")i BC €44e  {d}pD,2({kb(>{ _6_zp?O KѤEe!# Z"LSo<,ZLSҺex?X1:b|YGqf/QCsZg!ǓFh83??~2긢ZĆ1i1v1&9" ?e>)L5hyEG?tϩzJgr~Wǫ5>=X\.soH~&s@/9\W+vŏA?dIROo@DǍ@@DR81ÖY|Yn1Ld9E'Û>Ojt9qJYxzy? :l|hRoʓ!ejBXk 2 < J[",Ç~'7c^`Iwbv`vL g 5)~3e4?%2ua>;$ 9QkژX @iŐ CŎ.Կaj>l9cOM8B=Q;rFYNgQK//wJ3>C|ч俩"a|@NohFܙg9|r$B39e L]mO䞠׆ybr2.A#cyHOv͛Cw>˧pur o)5_]J_?a<yW@չgϛc&c<6b)t1HE@#^M Fd~e =,~N7IEXDRH( p :Uh]əQ7r|'צKWpgd yнx2Ɛ9a>S2BXQEژ2,LITP AB h'cgFO/Co}\~pִ/^\e4cZs- #,4u%,)$O:Z%/͹24>t[ ;zK vH}/|/r$M}KWNg?h?B9x![І1i>u xҐe!1h p;YECħxy'}:uA@aȹX|/ޣR`S={?i1LY 1]% b,-%4LW.Ka'Jy:s`=H<>4>_%?_3Q:AS A$2!Ls>9ӗ9$Im$tz@CM4.;MÛ%ӟYvubn#5_RfQ#BX+:BGhI!#@@AbŤET\F.\62{|[yz,O FkWٙ 4,\R`!@iIbP"BkK?4;]bΙL7 YJ#՞hޒ_/!.!xd3Y7#e@k,/s e?:|;ŎN$zYL6(B3Ex'4f,2od!L')$IL^DD9%/R:F2tPG\HVKNs BqctXw<FL&wiHG)p֕]ME5B㋘QKO@@OgQ_4v//*1FH?2~O>8O7O&GI$æD~?t/P" /]v3fOO4 GǗPIKA?'ۇv?'hi!dPlb馚UIп%c ~Lq>'`vMiiyCH w ҴEPF΅)~@,!iAB5)i 4I֐@vi@2qnЃ-HK?ҐiZR)4?)E"џ:ziꠞ?Oe*:~O?#e}ܥgՎ .,o9$ % = sR?_s'W;&Y]6~n쿛///h~OOnv;cmD11hL$PN4}}}v>mݎv`vcvZv((KdHiiv]c@}}}}}}}}>}AڈwW<oB]ccq[#v;cvZvM4Z-4M4v]kv]vZii֚i4ZҚkJk]liM5wVM5fvӝ2"ܜw_Rel^KrcOli`#Jhq-5? Mp۸2?? ??AZ'ҴGa4k}-OԮm_Bd_=}JSz% Rpc:IԿ邍OE ͣi4imz_Ѷ۹mѦ#}c}1F~mAxi}mƘ_MGpk/'0h>YPKziH_!xk/E(kIJegSel[Ju m_SY~-Da ,{movW]]m =);?elQ"Qb=KҞ[m[Ӵ}"jZk@߭mZkHGo:\hR> !$o 9"t:m]JiڈӶl;ü;͗,G }spw&e5'i)YMB[aVySACcZ= G:'GLm6жH[wSH4?1sq5eőᑳ]'Ax%?LkF"OH<<տ/KljuCQRe5GיԣKIm: m )i݁M4֑A{%EvihiO Ɯ4_m+_Tv'Qc#?͉Q<%?kzI(^"ii nHF{xxm/[Ǽv@vGmjx #Ęcq4AA m<%N?4+QEAZc<4(qKP~ &ZjZLxhih(?i--} @ҍ@|5~(?u% qbvɉ}Y='ᗞdZh&ieù!PԧQpye?Til4;m$Gk\V48AIA=ᗄuS w NֵpC)@R v΃@#N52Jر\ÊTPλAe چr$ҾM/}q݇?"'hm)M!KЧ6pN֚kC?nqOgԮpygfݓ΃S3|\x}[ SP ))<7?e v/@pLøhcbS0~H?Z HvZklz[z[RE:f4|M1w쏛Yc!#Jh:[m#LqQ'7)G}(P-~_ Bwˉ3h<膐vl^jm#"pi)@>yH& Đ~m/Ay=–؇ԔE3B~iVM}{C[ԣ }%|;bɛ/:/;n忣((}[F$hv;C5ZګZִ7C&eo5u,ǍI2DϪ9O3Ƒok^p;Enh$VbزcHmr죾ֻik2[o@\՛~VM~Y mm֦ӧŽhGLJcF@~͓CoQ\?@5:ɤ#A ;lZ_Ja xFRuGէp ?\` ?`m5 +QM5<x $!QoمmgKO=ia܂B$++{j/ݠ<eAI6wg_ZvC\#@FGA!aH? ΁((C1q>dd/Ai_xBh JJn?npþ( z[^ٓh4 d4%rb Cpw.z^mIrIQ2$FhY;P5X2bR[.(pwl;;~nnscl~m>N_2)!1{jB@f }G;m %1[deiM59a\~|?h2z~m"$R%a,.鯦E):vazo~O E쓶M]8wGn/ ;ȗr$m>Zn_ )EwSZS_FmxxB^@>%|3e !KmZyAfJ-G7Z2R'ܙ ֚i(ZkJikZi^e}!h'N7/M;ӿ/™ ;H&^.h(mR Eɗ 1xt!q˾ii`kZk?RyZа!p~>cH>gg 3l<62wywzʹZ[_{oimQO8OtC̿UpPU\w l m۹0w"@c?Wp}ŶoKMh_`c΃E-1]ѿ?ɑ>%Di"ӈn5/$c(_˰] ֖n88Ah-m}J?~3?: ?'6ew;m3qwy}LNFm܉i$͓ڥH=w6mOv|ux^mA}mۍ-<6Im!-Gwwk/koC(M}w[hyp~/KavvvF91F _jO'M AN8_n(QZIkOHe!ce$a?&}&h8J emsIsmL[msleOxc}/U$2~ M|<Ő$:(F(;$SA˃LJ'I-mlm8Gm!~ MiNִvKq'xr~7puqfQiZZe?G|%>O?$L)o뇉9? m]Q- msgm'sl KM[Im#鑥5rzvI9 y.aᏀ`Flq>*拓7Yx`&yN8D[a1(kџKe=;-8*,' I KZRfӺHDp4%&N?OIoH\6+tDpE[HT϶qcՌG? P2/[>|9!s/7?Wو@L!;`싶L[gsi҇ѿ5 HОq'HA!VyzYW˓pL3Khl\;ms&m&>'15!5~hCM55,~z1ADё3!w;PyqƇ.HZA F2,ɌAZ?1ȱKh?r#Q5}q'P} 8WCcF6O#gЦA3wGsݦ/_VxN&)+#DvIQ(C/['ms6m\m󥶔ycy#_ҴvIO-ːsVm'I@mxϫÓ<2M+M[|ͷ{{ "mSLR; ~<2!iaF/7q!"8&2JwGsw6ww"L%i&D} v |Ɯdx ۽rmHnS%m HVGS簱qS,m_|~o~ n1Ò7m$72| z(LR>,<8~{ɒ1K~b""^=dQX?k|2c0br#ڟSFc[Qb1c0oS&8&5ɾ>EZ:xoԐ~+,^?j=L߈?,pT=|%>s yFx~,$w"m܉:JnmIϖmr$'A )x{HߵQ z88!oQ0.O<GXt/ŏz[l|. mllÖimce1iXiSn{p3\'џO=7Q*:nOԸqmD8am4'R,`BhԟflpROp}~_f?1A".NH֖z!U}:Hn{wgfh& pؒ08pw;w"Z;ͻH)w;Rot+Xa{1![msl mm,IImq`J|F{0Bv)}{Cm2,#",Ey Da'ni?fXX+H/K5}JL{N?a1-dDcvw;ރ SD ?eB=??f?N4(S"2w6۹܉i#m۹bmhKn) ܤ$YKmރOv6N_N?YmceH-m1qQ#B[yq{1H(Ґ>oaf:yO.qCS?qeSR}>OE14?&&# ѠDŶ8ڏ||:mNsmt2m-ZJIm[[u$oKm.LOc_PbiN-dm 1ns][8ċe =ڊ{J4>ƻzVi'ij_gю1@)/$t俧1O@GaG?5‡E=!)1zMl$ns=Lɓn򌅾-hQPk=n/C'snsbYͻ,$m$'lJjHG8}[CGc'[AaSz[mO S|&EZA羿?Ɛ/15kDM@I'dF!?V8"D &0j A6ҊH#{yNKԗsm.w"h唩2Im63 ~ҖEc~$[Imm ]ͶDIw6۹qri:b M ;ZiF}?h?J%md--:xc H}P)!8E3}2Im_RR]}(ƈ @/iE5ml7LSvuc'W Hm/Rmmms}Kmmby$v;l?{mm!? ms$mD9<$۹IxrFW,E6w$z2m5>l|6$izi(G^Z,q@'}>fLp~lb)47؀v|#/>m!|{8OaRA h4-ޤKH,#GC+'퇿օ:[m[mmIsmȓpȶe,|5CLG'tDxO~Km1ƖmLP䎖m<'l&Dd}a4Hm3G?__{OpH)K˶L1LZpR}1ӵ8_ӇQE;8vvCvCvEG|KwHH޷߇aN\/d]k_mm-M~EYCmmmmmi)-KoQ>Oֿix?Ammm;|u5K':7_M Զޗzޖmmz?Emik aOmemޖmzmm_kJ{?%'-{B;qG1?SM4EZS5ptMM4v]kv;]cv]ki M~?t<4֚v]kv]kv]kv;]kvQ1Pv]kv;]`vhvM4M4?O/_݋? u #On?(l6r/݋|?Pϼ_tݓI]]ŲmmާgH][?eǾ{l?gS}\Q(KM4v; ]kkvZ7{iA@iAkKm-o?]о?J:)ZM4Zk{EtZu54֔H֚ii)֚SM4M5iM4A}?m;K_tW} DM^i{DF S>rkܷ=¥1?|Xvw:?&X֟s{/ۇӰ 6~LvWǷeM_oɨDc~Ov4`޵{p4?Ƿ=?8vн=?qn~;y3/׽Ycix: q?8_C|?ھkWu_Ś /|)`3oU4{qg׷}?޿e>׿=q?ߞr-}Gsqy}.m_{y1;e>q~on=@ P;qӵ~?cT;`q?SǷǿq3q|}c"0{ !}:8^k ~_}aߋϷ~]ү?~ |>.6oN/lv߇Z>_x}Y?ۣNڇC}.?՚gLvӇ?z<&}Gpiڟp|iۃ:v>N thk`H~?e0}|?O.M?ꄖ8yvŇ>>pڝc^gAx?R1Q4?|^i;Cv4it(1{qߏÇc5`Qo}~_j4o>ǿ~G>?+z v4=ч޽?;ølA>ul=|n}av=;pQ>?{kۏӶߏ?W34{~/ۇn=Ƿaڌ_ i:kOOt?tc?w>Zo~^}>;{?f'µ,yӷNtQ^}Wuh./>|X ZS38=7cޏ_pkϹzw=w4NjgWA0>L:/v=/O={cz3h/ۋ?sϹÿ?[X1u>sOYgN}"/{}??`h`_߳>hߗ?s/+ڬߏnpOtс>e[GZΏe >/_ɏ>?k~_oh_c޿(fz=^=^z?_\gpG=0=ST?ߋ;}~ngk%sc_1~/YaǰocϱC߇=oA:y|c~yTяWreO8:?7^p>>_ޞ÷z>sh5g"3^O,'Wn/Zv׷׸glG߇tpsҏX' =S ?J>OM(4l:y<}_/F;?t>õ?ռ;?q|ޟwNoϰ =_3 ~>  ~Ŋv/O>Ӱ|R=]>FG}_|YT;`WJ3økp{|>>5|<juϾX;~'8>zs~?}~ v_~ϸ>ݧg'{zvߏۏ`?Ou{-?Wڟ}c//}1R_n>ڴ5|Go|]Cl}xW?pe]/Ƿÿߗ|X]Ǔd}| t&{}qz>~tt=:͏6Ngxz|Ώ_p㧗͓jUtcX?oGZ}|7_w^hZ}G}GvP=o˷϶t=)y?NL>|~nl~0˨o,k߇}?ή}<Gz|}8w4g~oqxϓ>S8v=Jw@;O/zY>~}``4tϷZ>Ͽx,ş]od?Ο{p~_u_s5v?nN}o=>|vʬQ}/ ӷ,t|}z;OW ,?sѯnx:> :>|?ឿGOFx]/϶ܳhP@&<;pgȺqz[1>߇yܧ|Noph,v,}uŎOfڴtk;q׶kؖ==CiSV8qҟ~1__џ~v?oaڽ޿sl24gۣڿ'ۃ 5ߗ?w5||~X,v~,w?>Sۇ:n=-'^/?}ϵ|_cg.Ӹ~cӶ͏gQ,QC w4dS˿,~G{|?g?^;WeWo*w<5sO߮mkWǿz=FGc=Q?_o0>>O<_+?/~ܯojΏ_2,wt/];QbfzG>zzv|{PWpf.yޅ?]*p:jr?/(~p{U#}s;|>:>!_]w?t?t:v5}wƴ:>?.o=^z={y1֎_G,/oNF~׶_˷8/rϿ3ۋп'N>_x|1ø__O!ﯗ}߱}kz?[/?^y|>׏jz:kW_c׷{kߏn/V;5ߟ"σ׏n<< ~LWR;pO}F'uoɞ?wQaR8?޿@Z7?zqw;Wva&jOuc߇?W:_3y YɎ>kԍ;tk>>GW÷ˏjS}/L{pu?u|{}_x>LTop~;9>Gn=Ϻ>/n?rqCǷ;=5?{?sأO;D;|[y_Otp|'ZVxVߕ2џ>>L?|~L~,x?,]|;=:~G׷gz6?d{q~w'E5xs;a^qun߇n>^~zkOGR>OhB}w?Xj}\~eGc]|N>OϾ] 2ЧnO.ÿ4|;i,h͗gzfϰ{o~wQ^/_<^ܿϷi3>s~_*{_uOV8]a:zvi|?_qCj>0<AW髧tlR~ǮE?x|?~q4QY|#>) 4toF|J>Où|]OҿuxeWx:^GÿvsvoͥV+o/CƺsG>?ɟ,O ц?.Wō?Wcތ?g ;5|;yc/-% d[8C4q3cOoz/x?t/~>%\X?{p^oS~v?~_>td ?]]? w=ڕtߓ5QԴ Ҟ}σ t`ю>=pV u|;寧qڏEۇ}{Ƿ?|?ՃD/ {_7P~icɞ֟ǕxQp^GSOut k|8?c1vN?ku/J}qey1߇|dlC߇~X^1$}<@Sx]~oZu>/>?ua_nVߞ׉*W¼O?e>t~aG|/Co]_pO}?׿#я=_ܡ~L}Ƕ_c?&={+^y1~o.ǯ v?_ՏŇ_?u̟PgnQmYk:|*W^CWt۫>>%}]Ë_ǹߗo?[_͏JS>6+GFx?/_ڟr|0O1,5/~ |__t}/Njt}?N}_=7=tOoe|5|{V}Yu_5W]?[÷}>=ÿ p6~?߷xU|z|0+ڝ}wӾ=v?gWW6_ߓA=tn/Վ>:1gڣӃϕ~=./_R|~?Z2h˯_Ʈk4~ G_|}uXaFu|>1:q~o; >k7>'/_?7>>>?=?sZ/cv*ilkޟcǰՏ< ¯5::?Ҝ'ޯO_2~Oee_ӷkm?[oau{z>'nv =jϵ^}ާT^O{F_"ӷo^oQ=x<{ ?J>/M4zzf_*?n:Q_~Ξ´֏Bk5 >ў?Q50۫?'õ~`<~u/GgQ_?~s~qz7O_?~???_6u7ZyԜ~,hǟ:yzO/O1ǷՇɝ8J]]8|OŞ)OV)ۮ>5&t?Q^>}PҎnq5~Z > .~ocG^ɧm_dk?t=o'~~:\S>ϹO?|%Wz>=x'Պ?B5oɎ u>]uZ3ZouJG|}<ǣ?ۯj3|{|Olvvi[Oqv=oݣom>߃>^?ϟW?w¬>X}|w?.>cgz|z~}]>>ʿqhi˅KN?+ۇ/74?ۣy%onkoҔ_ƟwqϻG;q?80?1ARøk%g՟Ư^>oJ~}} . ܳ|5LzΕ<^`R5>p[c{|>4]_| z3=.Ŏauzj;8c_aؾ=w?A4o<.ON}ڿ5.3Go=˫ƺ?>O5F4:v,|8? 8 ׷b5|?cv,~\ѝ~B>lz |>{B1nks_~CMW>}"iq)oq>]>//Ş~]x0qaϧ5>ϗa֯y:2iv$qr~|׽>=?a)*}YzWcQ}n;ŧg˸c ۋyݯae8[юQׁtIYѩ1~M?uq>׿_3Ro4k?#ҕz?/:|3ێ4G[ô/|ܯ{Y4SRD,wOn=z3ta_x9"ο?#1nX?cuK'N,zz:]=~ϓ_aV>_s;>Oݡk:>]A}ONqk{~/QhO?):8ȡ[ۣ:C/Ϸ^cv=?/,|_ţ#?0: ??g;ЏǷ{|SW^/?s{qx}Ag÷:?gj<~KËSa>Nyǁ6?_׏}i6;+?x?q/P~ld|NoquT>cs~?|>/?zc_͟2÷?b OZWzw,Ojށ05'ɫۃ/O/NǪ<*>/SrˢXu?Oc;}gG7߆4~p:=Gۏ#>>o__,??hJ {r O,= ])&gL?6~Ot6u?O>w:3j~k^ n=_νeYa|LmX]8?Au_>}'%VU*]+ϗ TU֚v,Aaz?W^|_n;mCF*{9Ҝ~cȝt7hCF}o?Y;^>~mCOŧO6>=>oWXV?1_p?o`d5b)6>|Yz{q,x%u_G |_>o?s>6"too|;|(Zۋs;l5G}r5g-gџzy(G,|_2x1C|<_cՏ>>6~gF{? GoG=:wȿ|Xp'νb?Տ~; ?7GevcGQKg͝C>1Ogo}j5Noe{Oxk֔y:ç|_i?YO[^;Oqۏ{U~oo/A㯓5g=j5z֞4goWuj߫l5ziӶvK5=f`]>nx=<hM>l:_J~5@??º:|>_r;jnw'g1h oG=}uiGicN.3~~X5z3O_WV_^-tz't~Le}Ko z3:e~]Vuɗk¼_=(|ӋfOƯ7?lh_§G÷:g~?|?:;}(#Oev:Sʯmtgo˽?|AǷŎ㱡t8=?Wߗ{Ŋ֝}σ>%3_ں1_/J~/| 4 ~P!ϋ͟BW1,ۇ= ?O7G=~=_zv#zMOo0ǫ7ytai::|5`@h5׿GϷS^+.z=Au~>Oƚ?Zv\_ںpՍi#4g?o|~*y?k?>}l?_ ʌNn?wJ}%qG"ϗo{p<_JWO׋ 9O*|qe>_|?,G~,ul4?:=8S~Tt|4.ÿ>g4/Ւ_|zWqP?Gƺ| ?><O;paoos /3?%W U_a z?Z|맓|X4o'^N =dz^x|]~L]_S:gP tqjՏjoXOΕNnA=;?sO+=?klhtvn?oa^ϛ~e,kG׷/ڟoN:>>}a?Qyϛ֯"}udS|j>'ƌV ~\o[Lz<8Uoޝ::qY??|Xnq{!XՇGW?^,C>ulw?/\Y>?.ߋo{Ҿ_z:ÿ'c|~ёO.ޮ>.SzOS^DZ|}x=h8|GդߓүBi<gW ʌVu~t>٨q4a|O_?|oFxw?O~ |Z>,U_`>8bbz?G|tnF5,.kJ3yG5]5;|x B>8|{|9=Ct5?fMxp^I>_cnɟtto;[:~ƝwK0Y|t7::S>z>v7__Z~_t(OwWȣGjQZS^,k_X73?Nj_w= Wy21U^tX~]?SGOƿ6=]4ǐ?ϛ4=>O~M{z?gcɍ~x/:GGߛtZ 5/OFjCv]`ȑ_wџ/&M+?>TXҬ2zz4U+</i_^P+,>_'|xpuԾ?еy=tbz3?'Z>O`¿o~~lfogWj3>T_f?uޏ Y(q~^>ơi}-X={jU:_~S;WG:L|X^y^{?_Ƿ?i*zz?nӰ+-?4cW_#Wĺ}=_П=ZivOc.__RQc~.ߎy1u0*X֌yhΚ>loy?ŚiSFuz.'M{S>l:?db~iCۈzU4c~Ӷgo:?c=զ?k˰GB?= ]FW~}Xײ}?`zy2}_~NŀNOo5[<wߧcXo?C#ڔfO> }>/:>%Wz=[:a4G|]+}i4zн<غŇ>>/__uW:|Xu$Wެ֏__[zv*˧a_3׷- @St~'ZWR< Szi~_N>ǯ˃~^_RUJ^k?PC'?k++73|?t`_֜x>=1ƿ>v{qA?x/:?OtH%|_4fRWOƎ5ndӃΞo>y3>< _0uv.~O=_n?.?垫ɒ/OGl>/v5 g]^ Z$|'{O&|8?JvG?/S-A~'r/Mx)F}{{/@??|__=|{ ~jvlu?f_05/}>?L:.,|A}Go{Qϙ~oG.˵N}_ڟt}w/J~;?~L}<¯MY׸1N/^ :/gv׀c{|;q~N<y>~k|ӯoG^?e|?hciN{g^EpZqgu~oe]>OQS?W7,~6_/5dgקoGy|=]><?Txd*~C?޼fe.6r~\ͦ;( >-?!\/:va|~ ;SM~5Jz??1./<5 ctR~?|z:?^JKo4ua^zuڵ|<+'>:<4jOŎ}OZ/:vKq=}֏gk?~?sߏ痫}_~|dý=~O?OL_XkVt~~}0]k5YeV3_W /qhOۯj|ˋ믟3j>ƟkO;+t_cg|c}ͫWZsҌk u>li_ϟ}a|+x:c|8|I_~cWj~/3qz0Ɵy?pDL|yzhz,_?SH'nƞz;}|}/Վū~ϋKFŽS_^!~o8Wf?t=~_qO~Gޏ{zS](tϓ^z|4M4~ΝS?ǃ{~}|_OGqutgs}hȃGCt}/WBY>,|]+ŗԾ l5~cc>ekVuc^o?n*H==3ҧt=4њiOGV~/V{% ֏ڔ4/ _tp?@#OA|}_|~t?uf^_JV;>'=|YRϋ>OʾO?/Խ=5?͝_߭wnægin3cVtz3U>/4twΞL|]?8կoFY)gJSvSKqWdu=~Opa/ۇş|՝?^Oj.;{S4?t׶~h¼nU&jwx=>>Lzj:h6t? I|_G`pz^=t:2Xtџ^k {|ߕ}j,}X/O???z_ǽ;ۇJ)k:nh꾟?Gю_?Zfht}{yN#ӿǿp~t4#M):><{pg~,=C#y?Gko͚y^z?,:SG|˾^ޜ;j;?>o;|Gcc?%:>ey3O~=O<_jΏ˷]x"Z4σ{ӹe~ױomom;q=Lv>}h|k?SN{WP}Jo?od|?Wo>/A_?WnN?7c^Y:4p<4.P_,wۏ?jg\/~|8멫,}a%׵8W?~0~g՟{}.p<>}p=0hz~M_z7`c÷oic/ϰWvGG~8v_v?W¯_~;is?e\5OQx^W|{WΏZ?~?GuuRKYWGN1Aڬj3on?Οtw..ɧŚ U140XǛۏc~|;zw~ofzozyӷ5z|_/?.8^~W}cYOWV(:_W]2?͑_.V zş='uӇ:QzV~',5'g}zU;֏|8WJ/;a|=ǧŇPφoN!?g?c}ߛ?5zwᅬxo>!/cN<ׇ|~N5c 5nTz:b> ōx17Y~qNX|x?O/S }>/iug]4ze+ۃ~͞ooG>/_^c?|~ƇɝX?7c׵͏o :>^2o]QUtI Tz ^o՗c~tYl}o'J ~?;q/_h=u}OXn=Ǔ|5gq~ϓ'?Ő>>ovYvz:1'7Z=M;|ߖ|_vaeWOO=,j~2[?>TCO7vO=|;}e_e}i~Z|_͓?閿*+>|5gzð|_:J4umxvg~L HJ1Of|å{pFt:RQt󦽴 _ю՝;Ƿ;g}>/~?~lҏ 8|yآk~_zW/ǰGCJQ_˹ LUu_5ҾTukۇðgO/x|i^>}KGajnX؏ߏoǶt.w~_s<_/~O3QS|ۃuoևSsM5~c?/?g̊_/5~|h^'@onŗ>~>Yӷ~'Jpuъ ?gԣXȁ?>*oW?ktZ_utƞ~lWf3ߧqOugtc_>?;p@=?kߏ^/:w?t׏~?퇫/iXc?wӷ|?e|_Ŋάiu|`}=+s, ON83==Z~|8~/_Gak /Wk-^]ۣͣ|?4]&^yh8)?c_z~?:|5uƏ?Gh?7¯cOv?|zۏN4Vn$zv>p/=| 4~|~~~/ǹ|X }ѝxC?aoC_ ~TSJ>8[:i(Oo/ig̽ScJyփ| ~/cO|o^n^Vδ?|=/Yҝ~]*tM$Mv?s1߇΍~|僟> ?F/O㯭;j+=}xC__ ).n,|{:qZx~z՗J;zq|gS?s:i|S|X>cN|wu/Ŏ?3Lk?q|_?wۇKU=}!O*lzi<:}>|_|ӱӹ'^,^:4v~ y1ΞZSvo;o3|yv7v:|=Cz/q>:U;ql|L0O;Sۏϵ} hΟgoG7BY~Oxkz:Wuy?Z./Ś>W^]?q<=}4xO1O~?)'u>v*Z:1fA,y_nё_/ǟ~n7_5U?p?o:j}|{*~^:?z3=\_ۃS8c^޿z0c|{xW|./tox1Bσ}> }>GWBt`s͎.'C=^J'#޴1_W?ǦOƏgoVI]oco>Ov|X1~]|;|.#>_v&+WƬW~^Ձýq~on ƌ ?GNj>^>n_׷?~l}S1{qz?t|{q|(ޟCߏ?EΔ|$~3/_+~b]8=<+y=51tK'b:~-5횞]~N8Կ~_ݧ6}_ǃW>e՞Ošޝcşb=LjfacFk}?[o?gǿ/+3_Vt~_~O{||8||_?VE_or=4bOz>'pt_/Ս{hq׷Jg}}r8RJEK"[ia1I|'aTP^.,'ɑ >Q֟k$4S2EhjS0xQ??}=8>_7J1%5z>O?W ^˧/~N׃i4ҟ0_)o6?wۋ:pZ,w Q/¿2om?J׏qƯTyW4>"q_Z0VO?7z?ŗڨE_}A^>??iizt!#O+Y5>Eۇ4*[[E3WyUgW:eGz֏Ott5|Q/_δ5igϷ4O<?&M_Ë/ ޚ|~kC~c>?ĞҏXx?5G;3ˋ|~}oG\/{y|/jCƯn_/=yȮ?8'G]Yguij^I:|WIVf_՞:%ޤ4gէ]ΟtwЍ<Ǜ"WЃJul>GOM?>OZ.B_?*?Bc~|׋Btѣ] z?(ǩ,:/Ǝ>Ο&KW>:_8O'x=]iV Ʈ><ۋx_zz3Ňڮ|yO3>gN>~|C.c?Wz?3IqwY+ Ҁ4j5_S~/GC8~_WȮ]PcÍYl4cVϭ_1}QxWF?7WA8ƮCRy(N?{Q>7_6+޼u?|*t/gק zZUڃ|W_͖zoWFkŧ)z?ş1iW !:>OOy>ckjƵҬaiNz?ۏ|Ŋ :=||p_ɏ&)89÷ߏ/USu`>'V+ۃ~R?$?)ɏopӏґ-ʯTUҕէOtcO3GVw>/͍|?=G/V? >|X/*u]˧Ϸ;qA҅8>/g`[^zgGFz~]j<ʭ">Oc_>_|'Vӷ1QŎ?j4e|;gtcʾ}οMuo_;~,yW|;iڿ'_z>agş>??|_y5s*Q?Q c.IpA<[ XDSR*u$ ƓƲgO&Y]zyjc?MxYzޮM}X}n_o{y>4`gGe!?>])l>wy|niXoWPOMW~}ȧage0ۏa_z0ꟳ}ߋ??w~vOAsϯd"/W՝< XZ]G18y+UV헑 ~,N ='ktѡ/S#ٯ-I}XM+ZqtԺuή֟W5gͪi1쯃#g_7J}_5<f^o_8ş{[uav:zh[o<_F~Zi^ ?zyqO_&}y6_~Oz> k xxtc|oG ,jpAAvά w 2|ppO|~|?Pߏۋ}  e@>oHdr~O ?l: >Uz'J+3~ޟG^^y'~fjN/П7>?uh]klj_~tuf>/z]). ĎZ}8֜?jU(ң맫$WJ|4~zW5>Ux&֭)&x,izпgO ޟg4cõ%g.G,.=81g>,?||l:Gp4'[|NM_/Wo;,iɇ||(^?_˶Av3?qO+@ÏVES@?c:5 bV,? *^#N5j^|&%D_cP?*O?Ft`?zҴt׃:N.gߓ<a֚8@C׽]jlt<t:?ŗ̾5Ӄb7ؿGtwAۏ!ҟ2|Xu>ð_?ퟹlJ>n >>گ)|t-GӃQ<>_|}@ñhQgJNxGaD?|CzGgSM5d|_|t|ˏ]<ϫOi8jKۃc3;pb4FZ)Qat:I*AL>RΘ}~*$tiٌS 3N4ҟ(uieNQjᖆpڄ|?.߭V~ga1>]kOch8=;k_?]t|B_xdzi^?}4Εn>>]4ǯn5ƞdƢ<83WNOYܿ.ԯycO>oQ>_̃?Wr=>jxycOүҟcAu})ľ_JJe!#դF=?_gO uϝ;(8|>;qƬM{i:[Ed}^ǰo.X_iWE2v*"[$r$9Z#WZ}pj~ӧHN%WAՊp|u}ϵgO&G0Y|_4p|t~oW L?ҧ3ÏO>~7_X]Izhӷe/Z>>|k?ߏ~_~Z=ο:>Ǹ7E>?~?8}4c_/P]XcujU|*`&k_e^n&B@ZP.|*L z|X&D~1|gR0Mi Aw*R"׫Ϗͫ^~iѝXoGw/M7 飫j<ք3Pؓ`po]8y1Z<5zpWۣۏ=σ/:|_N;jQ|K O>?3k!kjiT=\Jšze@V>h=i1d/I٢ү_TxUSԱ׃igϱ74`zۏ.OC'}o<}x^gbc{үo7F5J:|Xo|>/vl/ɟb*_S??[|_WOڿt>?isiVwEks qId|`~D5B_4zuI]k:~tpgT$Ժ_Dpl}H oF/X>te֞^O>>5/u5ucJNj&cΌiO7_¼_a1gV5o|t/ }^oz}u&,CZ ?UF֥4e* *ɠ'SҒuҥR}r|=|3<.я|__/Sσ=z?WqǞ϶ _ tj:y6+/2Oz>?7?֟cQ |?H~QJ҃_-0YNZGEP}{--YyN1O2"GF:_Mg>=xPhr 'GXVU?WZ_GoV+GZcҺ?ɝ4^?h,QIgǯ?c4uJJ|zi.>7e71Y3gJ3|81><>,4gMҾZ?7(]8|8iWlp*=|>Ogo˷ϏULT:V:QPY >iу O{j|q~Cܾy?<>}]_UW9-G?2TJSF^!OMx*i4l8y84vð{NuGnz1駫OӹtZ|4+A_&to8Ë/V>E=}YOGšߓG>N:ю/'|~|2|+~I4]>?sG?<G_]|`hƦW͚= >q4+%q=~֏m_Jv?{;I,|OzF5~o`]Or:q=ZFC:?SG_WcV2vǟƯ_C<osF]>_,*4Ƿ>voþҞoO_v"/.o|~]{qOFֿ}~'_/~ҟ,u>ˇ(kPYF(LJ:7=R=TU4 <N53coF_~vx3V?7~>=vNsOVƐ #ȭz(ʐ*..= |OT%:iC4'pAh_:=8ރ_Vx[?_u>O՝{W/*?y~ >?z׷ؿv:qAu1ƌ|O_ѝ=?WjσVt8U?aD,Q\K|;џ|5ynk5lHOI(,O~YxO٬yJ?(<<5*em?;`R/] Sb|gO8><ɍ>WՍ<)N '?|(5*== G~-,_<$_LIdH_'OH>LWJ ie~a~O;qz=<ÃHO'4f_?ƚq|˿ty֌>z2N8@8?_?v|L6on6G{ y8(LCR>'b :q?햂8z8N-BW]|Viu8U41>Mk-RLy3_WG㎯?GO7J4'Kҽ=G xv v#z]'OT?%@ROM)BAW.o2s|zWNjRSZ O Vt#=.˃޿OF_b؟?Ƶ:Ǐǵh_?˷}~..ttᮾv??jNGC"yVGt"EC Ξ}g`?xqM:ujl8|]ya)_/7i?>Lpϧ={}R?i͎{ 5\~5tϧ?R\௷N}%)AƘ֏Wou'ҾZF) bojyzw?_}__~?^<~oM0K/gۃTWƺvy:cOgOWjw_[^hȏp<>Ooէ-/1Qg_tŏ#n=Ok߃v_rՍ|ۯap~{>,v:vp,׃Ħ|P Z:pc.2A Ő?j/_>.]5ƮGu~S?7WJ}p_eߋ7W$ǹ|iǛ>]>l4:8]CZ~ '[=K{O0s|zŎ{}sw{NqOogJ/SUt^ޮ:kԻ1.uV4d3Ս=_|>Lyqte/` |ө|@]y|~uP߫!OZJUҮBB|R3~,kZ+4:G˃?՟h={g?' qvph|>c磯o.;.L|AWu=(^_/^/=u÷< t*?ò]:8*>'<_?~SWBtM:5}S,3CziCta@˯mEx7_ttGɏ?~u_Qu|>=_cȟ_z4.4gO>|Gi@5u觭V~l"Xuzkf?CC/|5ucU>=;}ppq΀֥tզvWǰz^.|ñDZGG7G~~^uoNYzv?|,2~V} xh|{]YH?_I<5qR|4||_OoSFr~+tn{ð|>2Δh4( 8BRTz3|]uF]1K USg3?gƏ~o odc# wG_7lׇui|?fhײOϱGt:W_8ҝC<4t+:U|t~|E|)SW|>?.,>=Uǵ~O~}~LUp:;yiܐ;z2*5y2+¯ ?eQ1$ƕ~^o?gV(>/W]*:vG]_?c?P濅ߋ:}l|MTO(tz~NEkO$nvnhƏBXNCZ~:},z>G|;pðwvߏaJjuVܡ-Tz utFGbkYGN=ۣ:Ruѝokү4־o?cWa}:=)SۇEߋǗkA2~)OߓWƼ;|}ð|F ?oN~]u)iO_7Zyãe?T*?-=,q}~l?GZqXj__U} vz><lhDqb_L_?cQ|;zׁtz)ZC{qkC,|8u>^mzCzv?k?챧o_YU?(6><5|_ο@}^>z4~_>uOWm;}q>,D: eDԿdcFz_ }%4yyOӰn1B^7^~|ތ}O[ΏqcXF3x3=vbz45BxyǓ?sP(]*ۋ?g_rرJpNƝ/|8> ^#E#S VRqcLcO:ZHzqc^|?'??4O͇^N?Ώ3JqFyz?>¾8}cO?\>oR)=>'zyŠqDZo?Y'7Ç~l ~ic|?˷tc˯qh+_Pni1Cz4FO- ǿC=tm4fUu~?G^/?=X~oG1^:?~MG_M\FaOnvL-TFhTz=RE8j)_M7?߷4~c=<~?ӏb)4jl:|M*t~OȰo3:c_gGxwQ?B_te/>/.?|{5ÿc3 ip>O͚ZyL9 2d_jϵTSX4?g/J8|-:v_ߋwf__٣ x?qzvvˣVuۇW_ 2|Akk3{B5O?cg s|Gm{jZqj~vFaq_S_3tӷ=?;?_FYDZŖ4t |?|=)fڟ>/=Fz!#^}fy|X`vO`tִa_ō?l4>^wcn*==z}=|F|{p|~j]OPj4ŧ2k=GZֺtWiZMaRTk_Nk?N>=gpߗag}z>ԺS:=u PUy>:w 5ց}=(mGtz}dWϷ|02kTrǑ?z~t~]x91Q=n:SW`S”L>u{!)U/៣?Wџg>xxJ-FN߻^ھ=A8y>v]t=z1_P?kOq hO $83ܱ^)?,Cu?c/ر?Ӌ{jہK _oVG~|_N=? ~>?Δթ?ùۏ~Oڏ_c#.ÇӶo#JcOGE+Q5,%]J|;x43i߇-OtjvV|{S:3#{tai^<>~Co~^,^4{j}J1TU䒐k]>lʔ2?^C z1#}Zch};Sc~l>:0z38>tuӱk:y ?cڟꊺ+p5{q|,jY|80y>cc~Og)O}_'3OBџxlizE_R;kVӷŚ_|{yv;quz]]oGpgMhn:~A|_*,_,|w_sc_Ŋ}2>?,kۇ͇>/yUU>zRȗǏִ~iz>ZGO8Kjo~=Y|__ w;ayvv_dpuj]5^?|4ÿ{|iGW1?>oGzzv=S ic:Gx ǹc?z{pw?t|)?w$tSOJ]~џ  :?XQicF+ =|5guw|p/S^1ugs|͏ۏa'?>ѫ4wο q{I~T^G~u:g_wkv~O|~)G_Fy3XG}ڟ|~/׷~w?׵]=;Z_zVu8yk4_gϋW͇ Y?kzyޝ3G|J=tzuş5j?Pχ~Otg{}#G4t֏}=*μ_i|?׷Oe?o?cֿk`q=|i3װaڰn%O~o`S_z>l|OiF{|x'i;VLWgh|;R;ӵC$Ӆ^1_;h;JdփV8iۏm_r]a!<5|D_-TxP~>/({~qPykz՗q#4'|v::yvAWWj/Ϸ?̃މM^_]M_Xױe0{y};ӿ7d Oş>'^Eі=>OK~GG_hu?x|cʕ_Woo~Ӱ{pz=v?zh ׃y+ѓvǰ{O*Sښiłf~Y԰| G^a߇͍o>?w~/_M_v~=zcwSi?~O+~E}߽òW 1{yW]5?p|>XooG: Ϸ=}ƿ>V{|>ð/gV44_~ďцypc@EfojzS>XxZ:{y |ހy}Phz?d=?̫OG÷ ^ߏVn\?~o^?j|;pG};V5ɓܱ_> y5=K?o| {~?gi.F޿*QaۇmKA>qWR;5~}8=kR<<ΌFx=> =Ti}A|(m;Rh?ՃGޏ] gY_sj|/._¿G`EnsW?ccit>Jw;/AV?>Ͻw@_~_^e8peo=u?|ۧsoe8|jOÃzїZuɝ|4s>]X1v g h*+=*z)zGp*]]O?p?w|iWb~_~}>÷wv#΃Wƽ3O?|;W?|>aMXodX>~\;=yk˷,dS_u ۏpZ'?s+8*~矛o6~}{~o;qE{'Z?"Ɇ?ŇWڏ-G|>n~?0/NՍ|=׷<k_c2y:=t|CNAi<^ۇӆ|/Ë}_Glv/>G|?k?W?oNƿAV`ee[{Gv:xyv|>GG>Oˏz||;Yooǖ{.OG@4,x?g^>Yo# ƾ\_*h<~;pi;1~Ϲo'euwcnJ4tcZqWj?5bp1kbu,5ÿ__qOɗۏoe{qP;Uv:=|{yڱ篗~o_coe~taO (.jd}$CgC3O?{ޝ;W`u׷ vhm~v=>ߗqO_#},PpoϿ ~pv<;?&xF_~lm^p:;Jyv [{~{1OcoMY^A__=|.P=ڏۨ]ZO׵_/gc|͏Oߣ~_ñ?/Jyo__6 ]_룣@Y4?'cۧ?WȵvXcYzӶ)bN>,vÿa'ZPJZɍ_ZSZ~,GO?|??3޽z Ykۃ=_Ƿۯ{ӷھz/e}?y|__k|>>.ūV>=>`3v}j$'W7ZOZY=xD;z1=gvC|џ/v/F~Ot?6~?-~ #G?N|>Xӱ5cȯsO}~ƿsߟo.;ҪVH/_;ϸ5t?A^?Q޼|}c>zÿ1ۇ͍?7]x.헩ּ; N]z*>}m]~.q׸߱_~]aǷ=oo?_5vCէN 3/?G=x~l׵~/?o/3S?gOe_kc~m WSڬ,Xur'SnO8o>{ϨW:S,Ϲ~ǖ/}ڔӿc?ۇb<~}X7Obe?tgq`VOǷ{|3|>B_NՎ]> 3_'_ͦ5czww:kd/D#ߓ}k86_ϧm;SO֎g=yv<]_ Y*Ӱv|p}:~;?m?[j4|~_zǿ_͓Oz|U`|>t|5nN?Qэ~ kGo'c^ޟpv7sy`׋8#G>>O~qc=}x>Ӈo|4֟xviO?^wCtolh=_i4# p4~_ZjOV_-}jEt/'V>_pFOO߫vo>oaQqu_x_Ƽ~=~ktΏC^cCo>p:ތ>=;p~ۇcO'_gõ(~U}>Zo/C8ig50?/ ~<Dw}=?go/?|wg;ypu||я 0hWWǃ:}Əa[ϯ_W|#~g={ێ#qǿRǸϗn>pW|[Վ]xvv}БťZf\t7F~|Q>?sO؟! ~g!}h_z1_cG?g_*vO?^T|νa?:yޯ|]{gڃ(k=kȐ՜?A?;28?/SO;2}G j˯xN_)Gx}^O:=x~}r},|8>4~s;߃}_/QGOn?wo~s>t¬?>??>:?zwM>}X,p_t{fg>M_'2}Ǹ׹.h&u?oߟwA}sn ͚g~?wΗp|{>U~pF~L|hǖ:az|]k5tzǰgN|~ޯn?[>ñ|]v1ƕ}:84ߐ~߃?;Ƿ͟|XGڌ?ю{q~goaN7;sh;~>60Ygϻs~]ޯ=~-~/RϻۇΞ>>oؾ#@?|'_ :/?N6_՟/ӿXt~>{p~LvoOذ}|~=\xiN̏~;?>|~t}wt5Ǹ_z:v{|ί6;( z׷ϸo~s̞>LJ}_cۇn={ۏoF?~4??|ۣ*O^c.ߏO>z}>8Q~?;q|;|{Š?OQ׵S~ߗ/?OPoܣp|>O;/?6OŁ>vf_?g_cߏۇon/װeϹۋ|)_Pkxw~>>g_t1|!O|.'Zgt|H?.zU=G=~Lw}5>>s;4h\{էYҿ~}/.<>z~?x=;wۇ:^_,6{p`F"N/JWvS˷cN^ۃ=on/z3_}v&=h?W?cmOU_<>{~/^Gn?w|t~ }?y>t<G:Jw=Ïpx|Q~ù~{QWQSG3np>Pg~/g>=W÷vG?~o>~ aCqaWcWo/j1˃Xп&x Wo__xw|qkCR>>сcv'~oZiVN?꯷ }=ۇqn?sǰuWo:?=1q|>c0?~=zg__ʌvx|Xe~y1ϫscok_s3o/ɟXGcBl1R{_~pi}.??>G?F>?pvF?kgE[c/Y׷No?}~_znWӿ1,5~aO&5z>OޏRiZ{W~濹?~_|kz}>.ݨ_NvӹwOߗ{]83тCYTOnn?hcߏ/v~_'ߛџ]X_ύ_ϣGƿ?=w5#_ՇvC)aWN޿c=]{;Wߟj3}߷Pp{&ow?5@ Q?'?;td iچ1μ>>>߻?wtgo׾ӵ_W`ocUњ U_z+>{ ?5?={{Wn?x}{~?{1ۅ;|{{N>F;pkۏ?g}̎ ׿G~}_q|<Yҽz::?޾]>vr;|]>p?aAtz͟uJ~uw:O+5S_/Ÿ?|;}{Ox>]w՝{}{~m_Ϸ<{ogti5gՆ>'yy?tq~gǛY|?{}/}.CG﷋oӷ ƍ?_=ZOpq~v>|Xz߃y>}BtŊW?1kcΟ~B~>o~=p_;.zv^|Gj|?=;GZ;OX3>7:}>i~=cZv`zv:?9|>pF{?^?̜V4 8WX4Ӹۀ:M8T=Y~~?_I章I}]}})J1(p`~Kߟp_ڞ<o/qz?½FjƯۃ:.?_v[~[E~>߳?5?L_Ł?e>>gΏ~ޏZޞ=><8®_cUOw>Z}ھ )&t?=](ZQpb\bǷqNǾ'À憐ӷXo#_ðoWfY^̰|(ίkiQ>/|/}w w7v~|/>6_~oZ'?^ίc~q0izvvcWɏ/gJ R>?*?WDž|^ח~au׶ӹee=pqn/;qi÷v?7~VGpaWaC;iO*S|y?Gɫ׎~Ew>?t}w_}?{sľ/>{&ɓG^Ol;}t7OC<~o>=Mxh~A=߸~/|Χ / >:CG_NׅX̱ߗ=|^e=?.OmLcq|K>>am{/WŎÿz!|(+?'cn,CuϝL4=5C{?G+>go|q_.N/Ocz?s/cE;vQO|EGÃ5fW뫧_~No]+zh>.'֯ueo/c<_Wy>,g |~_ȩ1zz1z>#>2gq:<_v?O'^;Gs^?Ewcۏa|e|{Y;[GOެh޵|(n>SWZ:SOcWf4WaNھ?k}WM8o_V;|? ϷoN|÷W><_Gb?_  w, }_}={WǿO5Wc|oV;>hƌƜ_z=hXl~lǷ֔ҺװZvg1Ӱ׷/X~v}(WFFy͏,??_G%N?׿>z޿3/=jNQ{}s~;kۋOjvGs|>t0?C~| ڣ?@Z;zOoNdžt_|X?3 Ο7|K/?Oc ?J_Kƿ|8iz:S_7;\|:y:Sl>>oj{j;}wW찥?롫0m>|3޾,janx7o_u ۏorx^:}2w{}/w;_a~C_ztgG&~5diYtѣCcz: Ώ־3O/Ee|~]=;y|5~3/ҡg_§ށ=?¬gr||_4<߆?.c }k>{;q?c./4|x1st]?g4~к[::| &>/5_??7c ?Ӄ<;|_{q+˷N'ev־O_N_wϷ|;pa~Rq6=?G>LjǶk~~^S_W5| {S4}qnQޏab8:O ӏ ZȌ;?lLiW?gq<|{=CE~l}=>ۈt3t_N:W>O[Ӊ~g=_*z_.^ie_S|Ycaa])?=<i~/P/:|O^~p ׵>GDZ^M>Li؏o~}c^_QۋGߏ_4O֏x_4gn?&u|Ǎ_>1N>Z?P?S|?QlM}Oş_y>uc:/_WO;q~cWjՇޯ^÷?QsOޯ]^:>?Wjc˾7(ceW^g toW?z=ɏǛ x?&tc;qnп2<6_͏OݫD>|=;f/|>~O|?ҝ?|}v=|~ߏ+qYtnXe:gVk6x|dqEOǯcm`W?v:_4 {p^z?_|Xc|>OϷ<>'/5O|_@;}' p3ԟos?An??c֬/F~{ ?NNգtg׷5?|O[?&>]; Sѐ׃GD/>L: Ս׏V{pe>Ŏn73v|~rcuя~{cE?ǣ?Wg>?~=;W~Տ5|?iCۀAо_F}WC_|>OGƬzdӁ>/u҅ZȗǷ;}7O>/>n~O}s/я&ti]?|go7o]C??lՇ/ںȗ?_oҬP¬]x|~A}q*ܾ,}suñ|xsscG?a{yWH/O'SW|o۫_&2`[:^U~ixۇnz_rC~ÿ4|>?,=/Ӹ)ۃ]?|jۣU_~ߗcQUqz0?7髯cy}(uoo|?߇~}{ϗާ<8zc&_4|;5eFu`_uׇ__p~^1~oJ72ƺ֡z|)_=??7ZSگ8=~|x|ËcOξ~g_2=/cc׷Gn?p'>=oO@Ԝ?,1ev?sO{.A?G*z6teƏ=xк>O_?Tq_~Uć׵>,:zv}͟x}_w?w;k?xif=<>}?c>?,;|}X~~XgtՖ<ɦp?7="G=p|_foN?/ckOw?wF?W\?xvΝ{pG>wtt<n:Œ}Su]_|({v{}үZq2=CXŏ'>5ziܽ>,}|NsO?.c~=?r ;h|zSkxvo]Wo|]X1Z|uu~c<}?oG4zΝ{~{|q>>Y_{|_oacGo'=;q|;~whE׆c/cϛ?t~_\?h7ñ~lh^wWn?s~:w8w4~|>>>Vo#q`0Yj?v4?ۇ?.oj5ŏjk?@_;s/n,yqëžQ~C7o禾_ Oi?ۇ~/8w;}t:aۣ<޵aWׅiگӷ"i3^:U6?COP;?Z?|;q:4ѧQ?*zzuцO;0<~Twow?1O"haۇ1ؿ]_cՏO5|Y~ppğ4=:Sc1RS}5vg̽ҽ~ZjYӏ"w^|5b\;TzP| >Ɲ{pz5ƣvۃ7vefz}5.ƌ|]> ՗~ah^`~|;q|>{{U>a`~,jZy/_7ў?=?Z_VҌ?2q|4o?e/ۃ=|_a{{_p@0~}/h>}3|{VZpKt'`K|^>[:;qov4zӱ |kO-Y"~?.>Ëԩ~Z)g|G*ǣa~}ΟM? ?> aľ,V/¿gyv þ}t6>,?N jƁ?|;Szzp?5gʜ_пO?C>=1ۍ/џzG|~/i!zSYҝ1g{yp׷?Gg:`|_W_V>|x0ۏybџrjv= biWJ;y[_|?X5÷6?~lϨ~>W~]ON>3P>!]_|o >OWcqze?ӿؿaN?/ؽ?Xz=~Ly|G,xtĽu?ÃW/_ŏ:W _'Z*ƌ|,?(_a#cF41Ϸ /c}ﳇ>׷+n4J>>vX?'4j]}=Xf3O>,u_t~XF;y1{{v=?;i5vk>">v~u#jz>.?q{~|;U|5/c?oh~+}}?i?v?w_/~`8wZXwuRp1?9|?חq8?|4~ϱ?g'?pDә=?>o^~?|Ȧ媟t3h?{_ӄ)h}ߟxӫ4w_sa>/Nj߽;?M?'z5?p4}o}Go>?|??t ?͎(?Hտo_gc=ho3 !1AQaq 0@P`p?!@~ɓ|c&9b0^X@%"yy/.NǪPHsG渇E<85r8?UxQM)V?5h\gkԝ~k狢م]Mξ쳏#/MopSe})C3=pVcD^/ 6a}TϜa$4W"x}])f1r)Y|U:VvxR~,<;Wϊ?9y1}Rx$oݐg+yyj<1>F=~}96}C|3"FsN;\]0HzN'_|=s~9!U~6;}GFIA{N({|)/>q,=R\ci|P)_Cx+)ug<Ň J=&5HJ\}Gc[+2<D(r.t'NT9h"yb'7t;Ͽ_DN#O<+ Κ|Xin_D5O=LvLE査vO^qNЗݬuIW,(͂NsHXԷT-QKXBR|Xr'X:c}k~jLkǫ sYg?LXOG;h;Ɵ5xy9=oL حw[՗d7)X"9i / ȯKL+le#hWx27zlpG}ތɟ7 n*2͓('}qX|g^_uCLG} }W=|~OQ}θ;eq0>*cs%%;g}ds]t}z 7}8g\_~jP|isgٲO\XS~k4FL@M#?4ߒPG.&>"(ΉԧǛW]{0~hMﭨg<9MMX˺D,o;bZݐ%`8nՏ'(X$ΨEZKRwsQ.>1sZwd qSMMR]!)o 89۪J|qNy"z<1Avu =qݖP[6@cXWMdc!!-¤_F\ c/eWUNxv͞6^_7g=Eϻꊇ Xו5;ֈ*s1 #$v目(c;uo/7_ߪlqr9wEa=q>ls>{127ޠGNS@h.j?$7׫$X=/;3z3[Ha{,|E}]IOetowu`gzW|ay÷xN</Hx^+|p~luBA3YȪ>;ρc4,>y){G3zvoOŁ R0{i>uüGFI<^| )!=L^3ǿz?t}RX6?`u9>{iI>_ &wWGHz;D^ c&$_N'~AJ,4-?cIqC<+dx$-Y$hrBA!;9x:pG%}ߗC#ccOG_׺s׉J|psݓ׌撤x Z >8&^<}RFzf,Oh37F痎l>*d6Y7x7<^Q)$Ӊ'*8w>,)n SNj!=?m#ȁ).O~k ^+*ӳ_Ł_0ؾtz?DBЦ?tw1wHlmA˚^'fAY) (&bhs޲BtyD_fOV9pz'苁&򧋑R]mE˜A?$h{ OWuvu/px04y*qm_N˦Ss-X$c~3a\dϩF`! =ЪADDc e_X/b4_cJQ\s.&^M?M#3݅Bc`rsdGyAf\u#Ee4.Vj׫Y4_v ׺oGJ*U sC*dg]_ߊw?<3ŒwY5~&O)80K^4R]stu?Ay_ŚHCfG͂У<|R.j [e,6-{3+sH2"(΋esi)g3UY'#/S^yGHQ K;Pu7 j<.Eƹ`A✤ؿIzWq?WGTB Y Xzsb&oW^:n?w$odpt:\XR?+PsgŞyϩ "N4ӕ(B<^&x&#y"!7C)Ŝ!6 KӉCuHHl<Ϻ3eٌ>ǃ o7x,G@9&^n d281p˳=ǻ 1Dg(.O\ޟw?Ó攃 ~sO=לX'練gV<|wy C㙺:c8#1"7e6[X/n/nPx1Xs|psICtd3?4H_:K?f?l})ߨ8<"2pҋȍ`t2hYM"$xn?XI~/D^'OQϹȱU峷>*^6xG_˿r^xU9'^wy=W#LEQsF.LScs`S#Ӊefs y.nq5S竘?4ʐư8RllM<($:d|ݎ}sFcEx⯉I8O}^#E jx(C&7s}ϛ6{IEc,dϊQ^~3PwLϊ;_uʅy$G([^/;,Yas6.]>0gx@{MV\RVY[!IMX>ʼnreGdXhfVl$AdwUxnVwck7{{]:,Y{>(I^k~eҏ*3e8 ͊򨊐/ge{dM9CX0p~,Qgk/w}s1vھD_˔yp=qa885Ռ3_Ǭ_C0?9`yMlk'n xg#p\0}Yp:lC݃J?^Eqߓg,<~?Ս։ﺚ&I`w+P y؂B~wVDwR".No pV;GDL n^i߁G)WϥQUZ,vbq,G>_Nݞc 6hȬǐIwy3>)˧yD~i$&DwwIQ#_np~/cG5s.x8yK?ߎc_R1;g4  :$(c~,3=^˜>oo)=53|qXgS-v9TOwď'oɽݽWO'wt*uwsA:gGt8C)#ybE~(?ow gYPi.D.ԃⱣ#%#r8Dm#bQn"yˆ9&8݀k8{獨H'9q_Doa89f>+.Ӌ#H#Ϫ)yXxFuf+/Kl&|N/>"euBt|ީpg5',IH{d`{fuE{9]Qh缪LL˼r+P&v`y`x|KSV,ؿ+%Yb KJx|6Jg䣶Gߎ5`7: CՆ|ugyEmFs>33ǟUz)fICBXlE`LdĨHV4 w>`T}U=_O}bDXn aI(I;RǸV1}_5${2Xr6nXb6ߛ3+N83Ǩ&2Ks35_TgKHQwڜu$hL{x!eF%z)X0x;3K{Wߑx>GTl' _!z'D|_T~^ϋʞo~/\ig1Y~ /VyOXaْGYCwǻ/sL"X(ϘŃK?Mr 2w.[y s/ *tscF/]fЧㇽ:5qEnECOJ7 WG\t(p7sf2Xşx~lw}qPceqXʟK?MI_}ߜRs{X_ϛɋ'xgH֎_"$IciW'c;'y$}8בN1獛1Nx(U]usx)Ɇ`$=K~ř,'?`^??lE3z?\w{"zp6)W3k87݅grb@QkJ6gf(_$p?I$xBc$癛zc#s =^ ađ"aĔ  "|> df:qFt[2;x{~h'价7/wp|R'?$O|Xn~deqǩ3r#b rS)Hg h?5u>Gf"? #žQpwH#}:Yך?D9и|&Hjd>/n 9;DSw?~gXǫ9^z>&#׻H??#~Wg^:e?t^iAQ7wW 5("o.玪}1d%Tņ\xxwi3N_h(xeκ)M/?_^/ő%8x:e6hهV+c*U@, p˃;:rwӱ`dls ^"{aI:ewt|%Ğu>ϲ'.gne~K/,t@v6zڰ6sl" p&q3W?5z sTQuQ'ۆCH0}1pw]n<9x,QAuOYa tEM0:D `1!,pj|4e`9A$ )/ _yt/8ԙy|Ќx~ 'X^J{m'N\e vg>,qooț1XWLaW17/~lDO~orŗ=3\cg#L6b)Քr> ;{p=V1dI7(v'壧9D_xx~쑡eS˒1g Ɨ繣7eQB x]Ń׾+ۮ_sƶwSE/PWByjYqМ],?XՎyV?gCty s4\R t 1cǿMb]sO=}\IsEQ\B5%4 bw?43g~*F6X*Q?+9xWVϚc!W,uI#.yFUyS}sB&vC|wꏔSOC̥@Gu݈vd3} Q\1E*?ݐ),G U9 hb u11S,?$M.?Ȭi"^'| }P;9>Ir\w0cN^~sc^FcD_<=sWR^/aA"k\}㻖0'ϻ(|{*yLωƽ>. |Y珊aW-"Z tD)AcoI>0ɑ(Eǐn&v~k4D'Rb_8c1?}P~>k`(1챬Ps֜7.oc+h9ʘk(~Mw0Y6ٖNJCH|o,|>8ξ? DoǟtsF7jG| b?\Cd?Oc/'(>XY?8|t;|$r||Ǜxz>j߿?C)Wg80`}@m`N}Y,U}mh(b `)47|yj[MA+!F)(cO9f32R޴3M1a)#ՙfw[,k9lR"sd<نT>}S㭙ΩAv>_7i'㻑3{X^#ǝ3%{׏ ӏ3X[Eo@US'oWtZb=P'K/AՈGhD<^>)zö!Y<gOfobD9f?>=YaN>1S?W`m-ď|yyP>9HsEx1gv{<43sK8e&e"nʏ);Ꞅ9[yvn(—>K tKf&Bg/,:}^H {cp1NpKWr&&qwNk3Ն_-p/A=pNX X\,F!":b_|9'q=T9$y|]Fß:8^1]}n3SbJ0UpUWLqfC\Oz6/.ɔows6X}6?UAf WGgi9a\}\wtNtxՋLN7ysX=h7yկ0ߢ;#Q!7yz^LOre=՞3oAuי]l'ϫ?Qf8+*?3HG Q䞺ˆ-xLɨ4!, ~*5r?.~+END5) jy:fY&|?\RZrzET76c.ː2\CW |pIlDDW6i6f2˧a{R7 C@Z UdNWϫ@uٗ<٥>)D1G6ey y M'ﻖcl)O~l2\1E ʄ؞*P7 yPUM?Ywo<'x\(Tdʬ&uy8Gr,gndunV| wC3q 9K",sL>?fb=aY*P=a+(m>V~kʒx4 +<?gO>/f)q{WGq'1yUjpqu*ux,3}ϖ~y0y,tw%lPqT?CAULXsɳdiˌ>^uNA=|~.γ?d*dm1ח`a3)ê]x͙ eyܼo{͗jp= / "g`Y{tv>(L?&_Mi;1$h2映rjN^4|KYx)*qNH6uL;5y][ ~:J_%k怎_W avّgl=ؼszU <.}Vxĩ"&549:kO]2C ˹c #V|~i]%f(jGUG|z옟7Yંk'av) ő=OKcᓾk1?l/z}C0ëńxlgsvf_\qxr>Ǹ̨O/W$@G5"E6"lw,DQHMT>azxo##.e=N\L:ˇUjXHVY輸_,怓P>yN~nsS$ VcM'`'@~oU>ixx[&ŏy!j9oD?1,^J=v93<^-χڜ1,c2뚿6~~=e?7ӻ(yy&ke$|^zϚ:AWzW $yĎy!E?%z懾d:yr=X%Gd^W~//]/5džA9Lݗ(ApN`xsl?o3s[3˹2T9SE ~7pU$cL7vDX|ylz^'7r7B|dEQΒzh?яvT wIg:^%0$'6~(t#K#s{̹Loc1on[>1E1EvpS>aiXV8|Eg G ]c8a?KR5blYdn+epbCMz#DŽ5qL?_u'8rFK;ǯu 8i2ypo6I;^nf}xz|0q'(&+lIx(Aa`E.~(pg_Y`G?"7_#xsu~,L?E|y/PW쩔]v|N=y3d gw2O[?M226H/*(팣Y:SϪؙ͊a_pW_ 5˲BhX[f@8)pgd$|$w ?݅$桞X8'<3S'I s-ulj݄|{du{|Hڼ\< uꌇϸχ6T~j$?ߟO3 T1tanDmj&y?f\y@yY$ IxT`q9dx;d"=ݜdw>JSNdIDa wךM;s/5pQPq={V2б[هP\x:/$c;pmH*Ĉ^&F\.<~~lxoW8Qq0dԭ>}X͌}YVD_ 's&X_+*!"(t(IMq̬LǏhTG6+#Z@Bg1aUD+!RAK+}kJ>j1."3Oa2PcgYc`y|?RcN"n#7]ϋwCW6`>7cK6Dx |Ŝg#*~ltK7q'T}P aSs␋=_3sߏ~#UU^=BX?Q_7]OL|ϫ["?Ow9fq=9?CdF|$cI JcL?wkaUg<~('SgЎxnI+Q&9>+ jc`=-7tLLStqvYꂽ5LD|ғvITACs@Xu?%-p/Y1ߔ~?W/_?6{yrw=6)߯vN˘hn=N! U4ⷚ'+8} jd{_B׊Bͬ,Shꍝn€=ɩƾÔPR_d5r'(B$<N2ً D19cryjn7<k_z /x7f V?͖}Hl^B3;?'"#fyLwQ#ztKQI+|q_F70Y@|f9p[:g嵚$ɝ}t݊mi/"lTF|(`tݹ&{K.7'gL&4C2dꢶYQ '3ez{̈́kM3 U7fwD\`9s9PYz/1Śޯl)POټo;}8*ENe恒w83ՕTk)o9B]:z6]߲׊9Oe,Dz:&S1X;;ghrWȱOCĻw,ٺy~//ύv8&I憎Yl>s?s,q<Tuytqci>Q0lC&6^N3҉L_9>+8ެ3Ӂ~ggzmX~nk2~JaCzhJa2gUqv,tSwH9MdijOYǼ x#^?9k=ŔwםGEG~N_/F/8fI>]VS$'tһ=$g ~)wg?|;a'ŻY;4h![ Cb#O=O !@_k>XB_4ܝG?篚b, 3&6lg] ? |#lt헏$Dy0M{F>fil]cYjgU ^u$Krbxi"ᱟ9ZҪ٨Ne%,^,RrX4LL^"R46+ ~~*ОfK_ORn(7e?^? Gͼ^ީr5p&Ƹlx?O\L漷>n{༱6.~'3{aK{9>s~+ TL'{םe6g͝?o]D݉wlx >l¿e`|*(nEdy=@Gy/uT`Uf.{3~#܆'y }"NCסՁ ifOU1|~dDzCS?sd y$qM!d!".lE9A97nrfpQ<'ӓR7Sp('5ȼMIP MfiSzF[?rMwypq'r3xaCehoxA]ףyƩ_O~:FGEc8,*ݑL{^lKt3yۍOKՄW?,\,M7hev,/qhtR;^>G/ExtCQ绌A7XwTGٟqmޣe̜I|OxYc&Goą;dg?^Rq {n=u/;왝+כ\k͇ME.P}1$~Ր7¢<{یw^D9huc/E\ɼ?7YK͏V?_ѯ7(KW;ϙgF70shbUBu2^q}x#@#9˙ՙ'SI~*]~V4 T|Kbx KL0NS⻠'7 E2!X2p_Pc8a^$Dq<3N$wY=K/dF۹}W'#_3ߙίy/x *0IoHsb:%o*#"}sso^,,z. hMj ءZ]4tT*lG.Q/Չy=Ԇg_G6@1s~,.ɢ,yu)E(v^{YF*pWI/q&GwwI#1x皼g70ld v-쪬jrf rgC't;柖pHT?w$b`=S~S[S>sun|PD M?CLx #R _v őrqY7t?SRĈy8bc g2;Ş<ؐwn gx1yqy.Xj p(sk+'*At!cX'nysQ#<#i6 ͘s/_~* <_a.ׇp(yx? hŌ~3xXz$'׫-/,p""sjI<|V}ﺤC%߳vd_> .U]ώ)?PhR9 A*keqC0x$O8&@Xi{ s'09fDZn4/#lwJ5fuM;ܙl\#lkI]zuȖ˻'&fwǭ;~+''5V Nȏw}`9$p=R!hxI?NbPNbk##lvQdo"'j8݁ey,ެvs#q+31x+ 9M*ڍS}y$ LS/eDn;$#r^Ȧxe1{=~|V'>l?O B@s'+Ņk?gea?1ꜛ3GϦ{o0IG$ީG_Dw@epuO^78&ϱ>y%!1FwqzAs|XN'C`B^3 ,IM7)zEqI<](ߘ7ι'?.\ʺ똍?]e^yx_/I#̤wr>,k@&sTOD.*AY;WaAJp=S(lR;2F\a,MVNO©c7%Ox}ɰ?)﹭|E=cwoLڦ cC7hImI9'P?TOmLa~V!;w,ɜ1}VcL<׼wPsBq, Sl/qX8TVY./ JU?1u.M2^k“7\aB8UR:x5 <]Yxrϓe2 \1d9vDPSUSM Ǟ%>ȔEYH8y>a#;Du "ZYwEeC#rLwTc`q39.!1=hq>e1GcN7 y c 3!wf\nÜhM=?fCD{4TSL?Uz'-}PLP93( z]x:A8SO _:~rbLX.|Zba$6I9baG{rr1=pqe!'y[?$㣛`&Sv.Zu֯:{ 196"qG|xln??=W]o38sr:>;:=U`|O5Zd42`t9:OoϺ2~+A}6!s?f0L[PiLLc9D"N_(k"\xyn/.Ϫ4J}`s89~eA+ۨ>7=^>~9$O揾,~jzk!UgB̈'l.k'>ݍ&@CO`#ǨgWlg )~j`'udq?Uy1/Xfo?{;8?ܟX1M*ʼn2FeRLrGq|R%G6Rϋ+uwX.#y̰3$DsMO~,,G#Ĺ K1۟{p|UaǪb <(O8~o'u ⁍*?2sNWdA<%;]?kbQ6i}ڻ؅i/ttTYz֠o TM0WPo .Vzݛ YTX|~UC2^V<. ^*R_ 282P]|mHs#=t[s sx69沔WňF^\챕Nk.y~In3C</dV@Ȓ>9C^@?Y,geeǖÏŒ9:2ґ2F=_RquW2ow݉DX~s-9gk#Kww*s6AFhI˃V<3dM%/ܟ̳`g7I<|{3yb4{?M}Mqs&.gEB%78 1~yO-H_1Y8uci^x_ }Ӱ*f< r5ax?v{'<5L#zlu;I#iw*04iaT =xM^>bͅI>&Aa/z>Zz⣴^7Ȉ?Vmg~lK WiI`.h\J[ܟActpzaM|A?ڟV+ X <ў4Ho㨯7>qG?ݑ՚>vkL~?$/Ŏ3?|眩3kIP:r02{xVYieCݓex>.aY& Tgnlw|u[ʨ81<;_ 7bV3v?ᢶZ9|,\Zc!ɹfn2c;>jP d#9`2zUi; y]1sS̓DEc#S?wu9. q1?1ԯnWq]#DHndy"숇SzFIf_vIl̝2j"@Sw'ѷG#U1Ć)fg>|PN|} 8ͱFFVZʨ8Iy|XίvX~&5>=هfN{Lh?ݐ8d=%z{>5#z89o qP Y7"zzˬ>xp${B;=NQ1#C$T>bN'Ug~gȞ_g%;Ft>' b2ԜF;&$86pNJ:+pxl%9|Q2b:.ˍ: EHeM'~*޿3廯(ο½0gŞ/"Ŗ2OʛITs|uHLF\)V:󕉂2ߍ<>+&Lwog1$Dl͞?&zbyLf'7{(q/.~)З|%"[D.=ӹeLWsV|&oMZsxM<58x>Oy:dy6/XHs%wT:~߫6E~^@ן'>ˣg当{ 3EX4? %xOt3GǮ*3Y|gTG˜=;IY3?^A;%yala  0o <NCV?upLje޾vL/,$,s\79̤'P0#\Hx~d DA09|s*? / Gf4xb ft^$/eo0:B y뾬 'w{:e5Ih-'K!3"9}zgW$EJ"\l ŗ'N^IN|6U%X` JYQ.~^jzj2'8岿mHTȣ33gՍ<ٌї"C|v|{``; )OQ:~><#<xݮْ!m֤P/;1oɃn凯͙N32l՝¥?جb R=.Eɣ2+%{@I=VG3|T&QePAgAq@{.#GXqx3h9cRňC1ͰŜyЪGV??Wnj(XɭV*{[LU*"r5W~n1E Y>,Gl9EMrOU"T8/MKċg6 MTbt0<7q fO? ;׆)\7w'yqS'Q˄~՞%Wu;>?&Ixgv}}Pw/=;cϡ4qϷՉrF2f&Yґ_Q/D˖J9߫aXÔx΃?[OB^^>na^~R#t^hzៜEGY~eшan0M곱 l<)ͼŏN':cc3qR":?=ϻ">i\.~Y7X\'Kjϗgsge1/W'hn 8v|뻀%fcڭ2|\Os.^> d?_w18c"g,`1{L4gl ux~UKY%9'g-_Ww4LxHI~8Ð8wWX|M $#UE<n_Y俗6z8P9?Te`uX~ 0 NYnc>&y숕~тC"⣒(k|F:,l1^7S4.7Ǜg_(O^TwRt_[sD*c|>G=ЪF_䱆YS!T”NBaaJ1b&/*ٳf̔?ei}w3y> #ٞ>w7A=""tŒYݞXx3<kHyឨ|n \H2P0!39>J p|s@"ɜ=I1A-C;~JsLo| w,C!X9ؽ9*gQѰ=9JB_rRrIksd ;7x!ρw"6Du/cY ˠ͝y?Y!aãlO#: D'?tDq'݆O_xAsWtp .ă'u[a?IN9ShR9~B}lo(3s"Ȝf8u.rAՉ4O~l'͌?x=e aea5Ն{U\MX~jV@M?R~I;:c9GӶI'h !YspXxaCF?]DK `yyub1X.xѕy b 1>;=\!W#ȐNo2~y:}yV[;l&W"H:x IHso =OsfNu#\Ri'8 pY5uԳR<8g#N뿫 6Ȏz7rHyK%)ϏqI! 8l` "'9^ Ma޻9o>(?0<=V~|T3 dt݇T> Cܜyxnjߘˁ*'۔"i_>i܃?ȡ|1ֲ태0*Yk( S.OPOGqxZtYqF$!O_ÚxXK1&g⣚uh)}_#eg݃e1>O;o7n6>:E3*y%/tG%`uPY&?ґj7|Pz]"O4eVRlۃ6aş)ṟxX'M?Y^UF~M0gL1LnVhq^%jNB9gI1 c_=Sӱ1ܮX͵ 7}ӓJ08~|UeP %2T>·4 /dVF`w\D{j>g11T9! Z!~|gIH `ǏIoD%{g)#&Kx$+X)&y Dzp=A0x'wAIxVS>>crЩzYɜ^&|`||Ս/I>/"|?ƝXz=W߫79T>=YOYv=dO,MBdUU7=fsH>m<㟙־q;{?X?wwP6!,I$Oc#yLiąyswL89CvuTixWNʝ~ߚj!H'Mߣ\s>Z|HK?-,sKyYD7\g*\/Jlw:ECKCx9G$Rw+;Iq2(M{1LُlS"ņ%*>[Y{&g(9$eˠ@#>fI>J%#fu9`,3|ν ^0Thcp{d?7K='b?w1:u`cM8CqG&dsdȚG|dž_?(;HP^|N^&+͇m |0P 'ɓv ]z|YO|X]L~D0Xv3`4k׮͑,#x‘iS#B} D^>.&:^0n>+}Wk{7c^owo՟lq^=W~iX4dc:TOH?URp :iI>'9w?Ğw)]s"xܢzJ6>vV>ǙV0|k8dci睨'_Vp(ʌEmS#a̒yOXHoO/Z8LCw!# Fr393u\pe$ ɜ>\d>tHFN8Tvv*Iu+;\;GIr# ?>y9yyFϐXoTp*r~*̖dL:SLF{Q^eϐoqaŜv֔=ykp%9|M?>bf']W( H,qX+ÊC,m{#,%MRnUᯌ>,FRt (dY j"Kk[}zFwO '§CIxk=b_SX Y?g=H#9YÂ'/= 0D(`H{rǙ?gT'x>#O<ޢc{y} !3? `AՅ?9tYyxuθO)y`yVb21<`3ӿWO\ `wo#Rܱg/t?q|.%ۛ'W?GyoG>^͞{~^.9w'~?ީ u^0O^V=??`'g&gW,Dz" 6HdiqO'1MjLEc?Gl嗚S'tz Yu1%8yHɼx<$>2!}QB1cpFN\ulX]q׻O} 2qT0ᮏw^ 3(3}s⨙:}q4&Z@̏'.<n=x4Y.<&c{0qU34jw=^`sb~8zA\d9X:FʂD3)0p> _'∽C(!G(?T ꍽxȩ,O?V@9vczp?̢>ѨF̀K<#yrC{=b|HaIy;; 2AfQE{3%Vg'&>ߺܣjtQo񾬣hZJ8w_/?V 3>? pIxT5o9Eчb^_A ڇ/yt#'Χ?+|X ?qzѠW~,P/`e5$lx?<<9(^l#O9,#L'xloI:=PGFI)2ǯ>״<_添,77^x:i>BTPye߻///w=r IWn8v<͌Iy8/*>8)ɴ{wpY3wemx ucO/hs#zu,,9䴎 dpB3!B52B[ЃwŪ@l &'.w8swƹ~fB1 HTH=:~|k1#βʓ2'@=c"_F'^tHB/ }Mk:~Fr'ŒN?/v&cY}ԗo# sEDzŗ՜]I245 6`2i/d6MȰǞy=Tw/ Co`G S8WN,=6^yI?NNϫɦY.Uχ͉"<\b(QU|~ҏTKc+a\)%8q)eeG 6`}y?4EaNtkK?Œ6,6(4˓N(CZ?Hݞk9{Ǻ|s/}u. gt1TzC͉-⌼|R4:}݋W^/sJurscK%qoNߋ{:?w՘ؔ&Hfa{%\9ʈF>09F}2t%duI&~Cœy{="_`xIg/S_}}yV <7_=|\spxi~O?̭7 9.e1 <~˦@6.]so# w+×xsC"L8-dDLx)˿vLDa/3u 7OA늅8LW\(y4ᑾ,6>MqqߋӣnBaLv#31ݛ];U Ab\I0ӟM:wr8kvc[vԗ\=Y@OT0_%$+S"^3)4E\{\m%d sϊy=_8wr_ݷē[Ζg"uyn 3u׫;ݟ6w=dsP߈$w0k=x4 :I:5!$ ЎC\h)!l=?lUz=Uw#:ؗU8dڄ!#t3 {zz¼_P}Sd$q9V?Nsx*}wgtgTyh"g+端_ӏlWSqcɋiQ%{ucyM9T,PLo44`x4xe"|~D%wTSǼ#{k;Ymk8OѳEky;>t1SLrv<'~2Cexc3C~ k>{?9)5_>;7^>QViN"fn5l(&''BwG^ C12 `gFg1l"q>\~_?4kN?. 7 ӿy???}_V{h #\_Hʜa>CDK ?Ô@]G 8VO/~t<xbi LgE9 ⶸ6<#*cƹv G戀ߟ⃑ܽ < LJ[t6 wsB g$Z3"|]uId M|3[z&,ď&Ō uo7(| xQv~O~[zo#CsE#\d_Ytd1 G 9j$roC'=檂8'<xg6#~NýF8|y*cLwo"@R"5r=C9>(Y1 IX|$l)<C\Uw9ӟݚhEՋ4W(~~8ux0?7o?\fCk58r`bFS~uP`5gMO_찜Qc0Ş"~.ǞwN$S?T`]TNpS~/a搞dO;Q:wŌ%yh?iX ?g.'3w778ϯQlrs}5/WX~T|{ߢYB~?[?tqOWx,erk_C^1͋Fo$BxyVp;'N;NsVtOsPv|<5gcewROS6 =чΟk㟗*#_c,+}'ϊ( {سzo]iNT3䝇,O$>NcJxOiJQewؔzFyU7#`{~?QɟWH~&xh' QCA/U?%>{UEer< pJNן[JrPs.3ydL9<]~8߮KcMx$L~a;,x8z彀DqH"#GfNJhN;')?^#MYc/7\!Xoag3SJ~QYq$62gWK8$=u޿|-]/e!R{7+>hXs^w/?D~b'voǻzԾ-(B9WHw]0wŝ&^~7>osZ; {4vQu>CD&x);;ÔϔCļ01C?~x1Ӟog |P(N`DQϷ?9I ͩyy=:gg.BÌOoxpa?Qgp8|hG3?Vv ) A戂8Gއ{O!s\YNOϺ,G%w`peDy:ϲβ:o a$F1M5tb3h;X;`B>iy13͎q0m+]t~ć?NHNҟvA>j"_ O(Q#'/v{,|H1,Պsؤ@7@)4Ě|w~.>cベ`IyX׋׃_wF_lsPL{o>YSe,?_*_eg7_yLYF&l̩7FYXdy[nʯ/w^wez]#c{Ͼi e ~fvDO̓ p?e 79Go~J`ìzUFƤ>\;@;Ol?u|SI>M5?L{G'x Yo}Xyq{lk)|sCF|3 bWU" 0=bm$$x$E/8h:,tB|OwI9/>?Rw_r |x?_0}4SwH>?3+TQهE1ߪwxok,ΛI΂zy̝M(ao tM)w's4G@ZpK‘;oJBc43 rϏtBp$~( *zy$1>}^ՀdTd`?(aXz?+t|LJl^\sg?`sВtxs_'_fgujtSlɚ~zQLnϛŀy*cqŐce%?V!EӚC{.u+_>|o9(GB8'(<4Yc]Q:y~D7M>uǿ5ߛܦP9,BCx9q^_b|oh=9_`K~USK$ >=SAEN<47$;BwM(7dYO6q"w)hZ}RP :V1397pî{amJ&{Dzl"O~7&Ve۹O+Iqa w,朚ǼsX_/$,``}w~2?5zǏ $fag##g_vN#ő\{382V#!0zΪqC9)!ș9}eG˹g(q0zqgOw(|7/^Z/D#eq% ,M b!xtMF]$uWO 3Hcùu3=kß78Ϊh9 y|F@MCWt\,\`Kag8qoߗ'8O" &Iaɧ ~gy'kO̳|PoNpsk`txNUWC*%N9QM3a>9~r(>7\#f{Fs%-"b8e/A7vIGޯrY~o|_?wI_ł{õbϫ??ǻ|Z }S"Fo:bS\{T˧5#a~D؉<>F(멚ϊ xcI37h`~Ze('=O(HJCt$4;Z?TRe] }V%N w3?G~Nn=gx?4Υ>nqY911/ͯFpLnzO{tY8rX$_.78~ouSݘXzA߿9jvcߎK$~k~[l|z߽c-YaH_ Rl?K(*brSVwd'j>vcG? ck ߏ}osR|ZOmҍ8'^s} Cc!W[2dü,s93dՏl9JrCfp:|LAϚ4RsT Lq)y5)ԠOPDݸ#M:s|{GYm0/І08>ߗ:~/MvoB*1q ,M"r\{_$C4ӽzǒX~hw|qFMySⳀOt=Xnjo`|,mg+ ':Yg͑oyx| *%qv^V7?^ $Z⎎S~)w~g䎶{hM=L"5z8 vguT,?uW˜Dw1QKVR+F^ ʌ<դ'Ϛ`jP|eӒcqSٯ#{,~_8Q:< x;x"~MH^g?<9|_vNEꜾ ~M?]Fȱbzw['x.VykGTG?|6 6"~)K y`yرE|Rg݋a[";jɂM8đ;1?1=ޤ~.l' a?'9RW%I{6Ywx+毯M^hꏖ#6zzVO0׷m7>={|g\sS`#9I_)s8/ӿoݏf&_r/{_},y?z\c>T!MI3o6"_ddB\/ٞdF xrcud=Q=PVRO);aDP͙t)\6!BCG\zlZcR>ec,yri(iIf2[e ׌41/?pqX-f󳧉Mň2e!p_Ux)N~.XwL".õ7G/6I"#s%'۟^"_`IxCÀ؆GLc\f߰s걃@@>oT=׆^ɹX ȱbWO,L6._Of1u{vP\?Hg,)<$S_!lhr!Y=uyyhzpwM嬌ByE>%r=\WW*6A Ht#Egϫ`uVqkB=S}tq[quϋszizcG is7.G[Z[X˷%棌LtGw&5eYdT_Wc/V*ĨL}Ш;Clv5aꇊKG|6@k?~,ǻVS~k|)Oy^%%||dP;9%kg->QPWw6nUE%1[?TbWv*Q]P\~kuOjӯi,c Vlg6)Wʘs~F w\s'S#}|8ϊP<,?Ep`>N|Y|\zł&T1Nowa9|~6_?O߻|5. vϗȧޯGOן?z^/+wuXՊ/3Th毅,K1Lz>Xgf ȝ'dda66$"}Xқ3g0xq !xxF">\TuDK@ɱM;^?5ut\1 nuL܏&twǺ%핱<\+d|qcq{nT$,"ׯaO|%~sG!bL>0,.Γ{I;%ȥ|maH>X|y#T y3lQtM}qe.xwGK*|@MN(#?5箪3WVx6̟KpTGz;NX9 ϹUX}uq3B;@ ;樯f|w,)y"du1ݑF@ͮxĜ4,1yػ|縳)ޯcy/SxՅm6jGF5+[:X,WCblUVCZ*;7?Ϫߪy݊:t'k7MvBKts&ٍ#,_M~olş/%뭳7 |w3pE+5!_\}ӽ7ewǜCDyd>s#'`ck^ӛ YɿW?uzeg76=7wXT tFsFi疉N% isbV8<ˣx{bMaϴ?=x҈$ִ̀4U'!gv{n;;KFpr1Mߋ'>!qY$Wf+pחt/x>?9x<Ju G ,9R'W}Wi"r;z;yOI9Hgɉ+?<¾p'ŏԦ5TLDoϋ`oPo~jy~?YƓsSO Hw|+zR\c{<53acSGhYUb{#ې'-8!-Ixt))2w,}>o5ǷU*#{wU4<7sj__N^GbbsuVl4"מ,LO;yczt2ÞXgMgx qRbVe?͉ntHtI}ذpϻc;D`dXܱ&'gN/ ^h>yg|>hddMǚ1,05T+{~QP1{=_)̓;͚:#X~n ܣ˞rDP1 8e_O|T"qQ#P/!Yy7XS.LqXywGV0⳻]_5aTߎV}y*Q?fwB3݋0o'͏XWD? gǿt1YA诙b;Qs6slH,4C~*ԇ:c&z|aŔ}yϫ'aSw}0'9GۘiTQ_y(69P՟^lo5"_o sՄG͗%kyXK;<;^r|нS}#/!\(z9wxhnyʡѝF}T#`9Hb+ _E#6&NQ qe?ToG4HZYTp9 $5̠ǰˏ]q|y47Gyo:#~_^O}S?+16%ù6>Ŀ5Xg7Tv{]7˞ly-7o}^ETsyϭxv>hv7eRw3~';Xߖ?Ors{vhI3:=sw5e6!오Ð1ↈ{! Cs dCklS]_+b# ,Wɯ,qq:|$:TVx'LcXd;s52_[~|y^L`g3,56:.uROs|EPro]<\lw;;Lk;'TB< ]xÖ(1O_&{)}Ys>8Q?Lu_1NifLh',A3tEiwaV??Fyȿf^Os=y.w饞l/Xx:68v=wOnH]`kv ˯?4jy.{؋9 >&0τ_ɔ99?w0?u#nN93%iy $̀闋)({+ӈ6P~">V\oDq͈6@+Նs?LS WhZG&XX*LODY"ȼØuFtˊW65k?8?瞪#a9w :R_O~(Ԏ]we'q!I]0]㟦9%7_p}ݧ?7_9.̥Ļx/6H:__W>͎ksz]+)|~l c9tz,\cqu,Jo\✁'(xI |]z"w uHQx/A?EGeDDqK3^;tD>,s,rG:z>C+E䫿59xxz2+뭺y7o&=N'=yߩ*瓖LeHGӬ˨2ap?J>$'>RrltsÖfňu)TGc!#, pO?{YfV9)/M/M{Վl>om82;g?S9xS ͑=91U.0>lə9I]I/?w O媇Ro^TO6USYXH~R'́dxq&Ǔ=:9P`~Ϻqu؜O˙X{>G /G^y 'Ō+ܘӪ1K+J"xuwbuLtFdc5z?!?c{~l(Um9?WM{6QB;~(yu j\:ՌM(f.͋<]sD8הU~𿭿tf̗Jwd/x__r"pjFW{"yU8<9l%e>:?yy=sbfŏ|L?o_WVoWP/}rRM|]5Wd6,z{eo~c_M/w<~?onVWeb@ꅎMwŝ"?ܴ|$&8~]}AdDŽя7=wWK0a|ӐDHD%do򨞢4Жl[E'QP'vO|3W$}cg=,~2'9>C8t؎#Q I{q=g &'<l_4X?S,ڤ]q]G@rh:|FQOb=GJQ VÞs613}+(aKNzݚNFq^q! {tN9FT"fLro{;CyT27&|xG4v{/νYW2sz>\Gw>4p퓎'=Sa͞7Ў78zt.؜GRH}n؇}D~ɕӓgF >/sz_4 |M|N?Jirbk940c?݇ۏv|3 ;99>*qCۈzvo!y:!ܬ̈́OD4LODuRxf/?"?bMx姧_wzr;Xc"|~VReOf/(IaKM,XQRM( 嗗xb)f*,m辊޿hP9a槃=$ѯH/4`E}zG3`=4_L]Q,IW77u?5TC)̣(>s~*f`SuZyYD龷k |ua\+gZCDHsV>WU!hrUO4 ޢ/s2qmwni^'cs{^k/|5g~ڲA?k^5,|)}؞"O7<ņy}ur~zx*vǛC.X6ؔz#'1x8՛x}HP4K{΋<bX"Yp4uR]Q7(upߟzG#bNKߋ4I?ϋ/eLT9䖮L{Tq^.tB36~l^~/!_tw6j%E3[g8&j;^gjśяEl/;|ik%=Pg6Lds#g?蕤KMIib[X͞k?̚ qA3ח͚^]_yp/kxlq~>/O|?5S=✸CN8O3X]Fsx|X"ǚvoWX|׿%y2?fM|ȯ6>#WWݏt_sNlW???*g?g݊?Qww%{[H/w8BUb< 23<xy><],NI>s?O)i쟯?4y^PnN?v:JQ?7M/!"9xY:"yj \rEubQ;?l۝t$ ︆i'kʩ3Vx734sNJꩆ#qi% >Ll2̤OKl.oWA-F#|~(7?ܾkݚ᩶7M62}O+{X;c{vdֶ.X`kcEOWl{ {v}{:i4`Ìs>)6I|X;H$ߘIW2GYCcUX>fxb#[}]N$_k1 x;OSg7~_͐$OFd߃a= ^EL6}ч=I# l:< H2SukbexUN31%Qs* @c;7(cdcb@|xP"zypϞl3nejx>O_y>w:d^l^2ñ/V:bΞkg4c,O_t".N^)?v<&4X5Ys(LGKՑ2pٍq#Os`Ő9Sw>Gb< r;we}?Ej \Qq=g_bV",ʛ3p<86;jenwy~I x׿|^8(Ӝgr?R䚬ANFY~h\~wt^)Jz>s~lOOs-OӯJN|ҿ99H%)cOɑbo,=ӷג3i&{'=6g__Mq㝰N>L;f:~5ˇil,\ğ7-cC叓?%?n{?qcM'x?>}a0SZ'RfŁఝEty,6jJXCaH傲rf|?Q[G:&:yi5ϏЍt{{?k,uoꝡ_u?Ə{t'`c,]5X2V珊G4?Wi{)X~n_7כswn'E"͋׋睱ӯq#c{Wo*^1Ȭv5Val

k.gz]eVxls欸S+87߈^?՚&vc\=%f*B!8io$c j JI?ݜ|J|S>{F :y-c[NY٦oMߓLu0iSϜL|ݒ1I/ A4$'@:;rWuX $@xR`8{$fth~8b'MxM^݇|OKpw$e|1QBz^{'Ws_4w|3@/nfYlY٧ O7ظТM?WxOy?ة5+)s[?Y41~d\M=&]Ɏ'Y'!zӈDDl$Lx瞩*ylK /G!Xo7,qA~x8X<ߛzO~.XǛHw+;=ϼʼn?66>oX~i|ey?˟zEUخKIQ'|XDw ϫ)F_C9>b^:.3<_C\Qf{Xcg Uo઄KM! py_Ś DoUl^_m"zlB5'W985_G"($H1ǫ ?3ϻ"f|_S4ӿ7v7gX=Uϕcxc@^8iqdrwՙ4$DrOltcweEjS'0J;;͞)'VG2GNsf8꣥ulv\ULwYe;~*wݎ<ϛbPY%TuWqx?X?,VeqEbֱ5MO-??S{s%3xɇzhjc2瞫us?)]?>M>)~o %ˊp^K]?6 uN{R=~oXWQŊ{x\z_ݯ͏V?͐c՚;>jYO&y}Y2Iكy:.yqv7NxM`_=qsÖ́~J͕^,0qQ 7o8~ng;wY]ͅ4ˆ)'[']V1ϛ,1wYruS ;̛#ͺK<QhJ;VNB7gsĴLy|TA<?(/ʭ%;μ|P' "rs $Xy6*IްDGiVuq҉wᅚs2W7wxs@]N㨻',?]`>2q;;}~/>Ӝ.j*XNi x g/76"we$蟕1ԑ < ?|t<FYqT N0%qyB+Q)>GOAe2CqRHL#g;9=YS5Rb9>ǘYJ 㽋l0:w»;?"G8|Ɂ<x2#[__c{G ?~JL,.b|w`/xqcw:,B2$)ߺ]y q^a}Fe&=#nh緺tcX=WII|\EO=W9:LEVz|6獵d^|zByݟ r^;7+,񕇞ʙ6^JA?SORǒٿ+;fn^rwOtX:z,\wY8O) aY,gՂvOTn>iAzau{zWgfւbǫ ͉ȱ._/_:t<^;b{͋y|6?t)ݟdӋ(?Yϯ^ߪ8z8W"gA{2S?{/NvȠG͓6Ⳇjk#D[ 1j䓠XvN又̡6:"#!4*@^Q>iK}5ϛ y_˸cCzԓγ2ɑ9u:ɹ7! DeVNu_0`F/C\_悤w*<]흱*49˝_{y/4J&C&tX9YKɱS50ݔ]Gw⼄q .czx6};.{Dēx#39`Zi`V>WɄ?g<_;/2_Op#'lh2SxC0=dx+T YɎQϺ}rX잧^S"!6( yo]yҀ #Xcs&# gDbd=Tpe?Nw\192b<8%ś0zD-狲Q*t^ʣ"TȌ*<5ھ#1϶;~,M|DN>byga(l׿0b|.$tD?ݛƼ~noI%t=??'4^ldN_~Hc\W/Yy=W/ߛ3$E'sݦb#93-'(Iw;Ycyٛ6^ SQT48Wg3~rɛv?,lJحyV c)3b(ޔ͇' 9~"Iˑ?O?x=ؗ)D3M~OV7 s˛1_S>|y{e7czcxάqv.ucoXX?,R v(v"iuƆ1>:'4z25<hs_#Hy}}zsH{;r?h$g/DGSI&a/&3r 8 &(юD'I86%?4Rtˋչl͟s|{;߿Ϯ?;rެ\G;fx>{b$~,]hw9{TrOi?q6V:fe {8$5xHn$tG/7\U_c@306dg8s}lq~ju$E?{ BGËC?u%)!Ga'B@'纤|S3 xPF;^DzCwsB$@}|9洞?Mc73btCȞĎ;};8()HGsLؽwÎqyQ,w=NO;|V$,>{.O1כ'oA?+~,e|~~'4FsF׿Jwg|Ԙڌr=M_21P 璺!럊@G6?ډ3Xpxx2?4rO7栻OsLz|{bN(F6cu7";ņi|TxSg8YD03ُ|sLiF[}nx~? "Hzwxw{#w,m݋ع|ؼ{|/Tn_?ŋw uO#q{>(O#}ka.|XAH{B ظ߫2zcޮ=ʄGXt˹׷MY@X0qzuDIy y;_b\pbcEHriǢuI䟎nłL(w q9ǫ1N:<ƙq =?̦ oyFj=Mv|`#o|u{qߟ>3U'wM_~=\xc%2}q5#۷MbR=xc$ݎq}.ajx_&~Nj2}T9Kx.,3;hrDbX}7Ƞ!6%c-Qr>+,loXI'7߹p$H!sB  鐛;u =\3oG9 |#d"~fI'&|7~LTfd OqPL|G5 p;PZcAJCSG_~"E.ud)TZo7Ey8]P6R)wp#SOdHXӹT ID7IdDeff;ڌ9͙ۋOtsiez8ܟ[Pxb{,DYL=$`WYW"ynq=>9=fUy EDQcˁ'?rNφnRs݀2,ex4c?6/=WXW<ު36?GeŏWg{owYv,/>k݄XicU2"  ,O>q$"K) ち;GКMHrG)xKaHG TNs_4:027T8?ŠNtoL# Py4&2L|n<^ 5ӽ\\pܝ}]8 <1=z}X{g̗՟řMPEaɋv"ɛGFc?{v1@3o nOejgUcp|NS31.BOcDr,IT5~".0G >odFkv {b&$%%$"08&cO=:QӭĈW,|P=ENj޹Y㳸ojkđD/DŽ_]kDXOO)k/,@byOaYK8ZޘĿSt|2P%\ro p' јNBk|qxNc rp٢zOiwp=rD@^L4m3z|]yQ5A^LRN2~{8N@P&'e__ylʼÿ΋!}qQ+t?Ȧ,|]v\q%VGюחlQy鯎(D"_v$?Neϗc+RD 5fxety=d5'r?wJvi!b^3<CN}׍:ݐnO9h"X3>&G"KC^ 0J k\|v'/$|.$1W]r1ϊe}y؍9j<Dbw]VȆCK o G ,}Ȟb&Y]7竲_ l/^*D,.b+ Npzj2X1XB91 <8kr:}yqӗ$ ?%ȘR~Gd sQjsb&2zyeXg?ϩiyb:A Ya?Y\&@Ϟ7,$15*(O$epq;Y)y}Y NDDz#:kCsYt>FXsq71`s}ңqnKؓ 8loqYt:p@ &(,bw9(^X3?o&O9 H<3<{*#uV!T:ݙ={_Yx$9b;k+A z3c{Н3 Hj<gmBӡ)>^bg'3.,O\?w׺@yt>*2E =Œ\/|;Vws0ɫ^:j:d::q`N~[N?J8?=_SՏ,YVw cGG U;f 7l\"٣oyOg?؋#yc&zMPw|߿k{b^sG`7۵*z7hX^MNJl`z/>ʦx_OO>/^h㒾צ|gtgsYN\|U8L7Ye&r)ηS?&xlr"㱿 FS` $X?l/y2rq2B?n<ӧ9RxzOGʠ<)GHO5#c#/i]!L^*jy8D=Ra/<}sOQL0%98/lI5"o\ 2O$^ruN%{pA/=9z";1v،:5tO\.$#$Q52% |~2oD!:4̂pRK5f/-ר1ߊ{MҞf\v87d|Qr=2Jﮏ}rAdXYn%"`rbV􇟫èzqҩbQpWpp@Y=&9}&:@gnza('3}XUr~YwL'^z?<{q6l~zc,f&vGDܞ/yg¾xܟy׿U!b*x86[&y< čࣟLaǪq,x'.c%YG9'D"/c:fŎJs>N:1'W]%%|p}RS`Q8(r `x'Mu!3Mq qWqv]M#/1ܢ7T>m3'j 6]B?v$z3PI6QϚILue)uy>'1NuQUH8L=Ud1q\d}9?1^i3W@A8T0Ua3:5ޟAMg) "&FC&IMG̓ڲ/q"zyT l IrB,,MپLJg1,ߞ=Ԅa/Y׈V,q5J>??-{2黱1R9+v 凃FzDŽwhe$ΏǺJN~?m>uB#=Y__1gq}OkJIZ8OsUYn!f%A/ i=cW`}O5oug/_Y#?HFSC=:Gܢzd<-pJzz(I/94uy^}@yʻL9zHo4/>*bVYy}qU$9a=6LxzI18'dAy!~d<D&ƼCd!ϩ)&{!fk$SX_E={Nwο5Ԑcׂ4⪓RV ˸qVMuG#s`I﫿?`b>/xu'~x>$MgʬSǪj? _~h6t"|r<qEP=Rbb:{)o"w\L?aG biߋ$hҊhN9XN HTG eyc:9ϫ*Tz^Xz7|^Q8޹O71;gd\~݀Y24UuϚ|}^hMݤyi<ͧwW͟xϻv/w7.\;|7):w:Y:fbj6r^!.>ckEňl# C@A$><_@)dVgLI̜JNSߪ?iÄQ/'ɳ .y5u稰fCc6fGcg ^e>s޻R! }S#_͋Q O$-ש;G?7K7xy"}%ӝdQ@{~>wcAx'fPu yg/y<WoX2'EDr``cKمEȉI5䄽WIz殃Ƕ6:&=Ո)/W.~a5|8ۢQ#^=eCpVOmCu:/gAHY1YD/NOƽu}XV ;&F!9䋀|x<8EJX2Hd)𚐂vx obv,*s{G#lN?~hr=M8c}G` Nqˏc~@rq-#(lU\؆e&qv.UjQ>v8_o U0O 7ZXn#zDlYwg}BwS9{ꜲwG4w~M>6Y<pKGO+9(^Z}ɢX(?رcmuJ1^I?/’>(3⃙L^Oou~{츗^f|>xz:e;ON85,xgscw{uN8{J^O9[Pۿl,?)Վ2Rϻ7z|]i~_oe?woIIz85"xv&Tqx&%Yg$=}ÔJ=@x)dts? 77<+,yn$}y;$:K|WZ8:^撐B cCF%N솇S51ܞM:34)6Pr dh/b8;oM%!9, s?4p:? q5@d\ụ0 xVI;O{$G=0^E1"g5=u@]X!53M^|9'8l 7˽A%Gk>8Sg6A uq$HYGIޫփ>о9U*OY5\\ G@MId+{bz.2b kNfY>*걘竑W#|V%eqS׺XQOՏc[ =sF6gjC:/bb2c2>?UɿtlOU#*[g)J6+ÖUUe~lTT>";ʱ3,g}=~.B2yb?o1ϟ+OGf>fS<_/ezȭ{m:"#iNTc7qOc1态=`}9t~s`IrG?Q'?&?c:,Plc3'IB cHNj94lx唐d] K^POTn8&lG5`h2$ɋ?s͒/+?Hﺣ`SY&3;sGaAi6I`/ Hgwa<&̬0}1BHM}^Pt$T^{3H c1X L3RXݗ9 H'SHO{sY?͂dutI9t3&Ig9/U';u~TꚐP3g7;)3+|?Ta(yWEf~=Yʯ?>AL=K'\ ~QM㪓͒\<\+M "(U'c/X^;7G9Q-4=ѼDK%7_^`L2Q3tc9W1NQ56PO}QW+x01{N?G)'݋#?zO\V2K-/y]lOoW޿EW?=X}x'qdg J hwcN}c_]qf?qb %׿!>7$)H{<.;3Q91x>L:"}yuX$ɲ>#4FbNNR1ޱ`W3+39v(@s OߖBe3S{f¡,0b+2tkgQe&kq#{+n>AoSL^&~"!6jG[LD<M?I${QHVC/\z?5nIu1* '5A|Hu@(2kFa92!'b 3qbG sJ}|SǏ'fv919/oi.`B>yqG[| 滀>dL0<7渂t#ݎzꞯv|Q,o^6?r>h҉G8ŏ'_Z/: O7a݊gk>}_)Ǩ29A"u"xoK9>.X)yyT/w|zz;3xIƓcr H8}Ԟ?v*X ;_^71ݔpYbpξ )ǰ3ߛ!x8e5,KT!pYï-+A"G ۹. MF# R!Uo^U4 /Oξ8 ;A""b&ekz C"Mӄ`)tÃ;z^?Ap=^Q8 3ȏLϖ^]^g*,sN,{&uƝŗ9T{~u^T Q唙S?QCW:koS*x8,|^.W)+-6o7xWԱt) P :s_ڼeՋ+I&,˗E(ty{/FT_;CO/I3O?7M6#U?Klj/x+g=LU ׻1hl=xGMw,x:OwP(p9tÆwif*aB%D8V'ȼrϛ<`!qЊq r@~wX3?wzaz2K#sPVy%k$@ZzNQПq|Ck>gfǶ 9=LX$'?>Xl)pN>]qɸz&6$N^~y I 9ע\FN'S:LRC*!c^. ΐӁ;ɾ O>I%Wcq/H&[qJ9<͇65%vG6%O~|R7> \;"6| q>Otf)$=Yd* cDcۚ`g`;< DyEgn hh1ꊸ<K]y  R%9N\PVT7y&VH5z@&9gsȠƵӻ =ŁLktue2p3ZFÄ^XΧ 919D=0r#}d ȄzsZß>N=VC30ϰG^xlP,||P9/z׊}Tsr_6f9/\uN|L{_RYӑw?5>]ӫy*>rs:ܯ.?4l}Ty'Hܚ',eU$^6y(翿ꍏvI榇8\OVH>75F4 ?6ŝg,ԩZSB/TTœgl^Ef^N{=)/8K?ɱs];ɫ_|ί:?޿r~wٻ 7?wf #Ұ)2H_O ȩQIdꇁe?6y/fYPP8cOǼY=pY2'7£V2_LlhT,h16wf|-AxYllt~U!L3E|X=3GGp>hFD#2{pp\]&$P$BLt!3>Q㈳gE̛eHl5=r^,i?HUz;,047/v ;y:c8HwzSE k?W|}\TE8K1YqI٢13Վw*߻}?o>=ӿ˺i: |9!&`xڣc99V/EC1s2h$}{ܢ|_`S/6vUs7~/G?yzsYlKyuwBMRQOW.+rAOK{5oMg6Ѭ_[n޿%٣9,߯7?z_W_?SxG3ӟCIU"K((yKfx3VL,1D{|pG#< < AA;IL$G*G1IcF`XJaMj eO@CƐv`s]:EuEq6A{ʡ)rɏO<c/!џrTV =˷3#a<-C|hyl(#4F1ˇLS#!|uUC}|^qK1L:dÈM4pQL<~&p58(~^ɟ񰌐Huc $s_GuՅ+g}^hg\Q-r_sd&$ewvX/__Ox͈^|^gDi<,$0%M45͛Sbx,;8{3>dftX39拽]ՑF_\N'c_ ,T.qߋM?wa45OP>y= ΪW팁XT,EPy9GňW&~=jOMRT7^ QՇVI՟G#QEFlq3/f<Ԛ8O8bGThDM*}Xإ>/ '??}7]˱,S<߫~/t;r!]./sgO/$qՆ`")9gqg~^8xxqrԒIb4tI^ps؂'lP'fot' dٍd6E:|pOUٔW3ý#2>g8& `sˤrXw[=2#~Ӂ?Rl}m@9@;g1/dw]ff:GAb=w;cR~h_͔qtfbPN\ؒ8=~p1 ~Q˅zhCÏ4x롡m2TמA,cN>>n&B~^>/~G^jQ* &#ۛA~PNz?§!>C~? (T&K%|S`@2$Obsz3g&Y{TS<"Bw8U"=QΎP4(L]|`>IHDx`Ϥ!X' {ή.Q8 G &N,Hw@}VI͒Hd먚c ̓Nlbso2fo#E 9wM3\Tgꘒvuy2_6#2͟=Ihl!\M8?yG\+LjV h.#@gtIGUnKQg̀osI50-z"Hq0Q̿^]o,gjc9"pQdzrGlsIh̗dG]H|Բ̆os !ɟg)OO⬉z.3,5D)Yv2&F<+'_„y4^kJ7\t4a>:b;g&oMt$g_|{8}I.tXid:9P~,/g6y$$UP.]G_"cIeq7tlٶ%謉TǯtsX,ϒsn~,3 ?X1ԝEi"9M(Gm~scݲK+Glg΁<'(|U(Ng5"߇lfwexǝ^~)I|Q2k5o@]M(,^?lBK pXoUtgߕn_G6K^?ݒtf.{^N[wsw~`6wd7W;8왏vN!N2c#=bt1=BtgFH< OV,P@8Ggf~MX(xF.1uK\[B`qL<\gJ˹璤1':K"c^APXSlYw@BsGP^۳1S$|dXL:3rh c,pE!ɍH>)|z+f|ө?{ĠX^1WϬ99\4 dG4Q`1H!U盒5CʈۑywqML/'ņv3Yީr~,c:>ze_M&(ҋJSlճMkTr$XuVU+ޯm휲z^{Od͙:?RnMrϫo~??׿{ί W"1='r;"%ǚ@Ȝ:/ 'vF;5 q^` q݇ '&/(9rsٟU. !%x/x)b2g`yAMps9N^87٣=qG;׼*@jgtOs{2>'b׋r9eu ᲈ>3MԞ}E^xOy{58g;ڝ?Uk';\q)Դ?7C_,A9S2%R{j,y?F}ER `<րOVd_tP~Eo%8~v|~h%.~zaݙ,Qf_<8sWCo^ϪQg9_b8yǺYM?{(I=e ͖2x:VqEkhPSѢ??J>?^JÚlqkR{uߚ^uV?^R,7s7~?O/W6|Yoɿ~<>s?.پ/w?_?U1i[^qGAl9xN^'r _jP$ܷ%u]X<=ő0>'$̞~tv%i*Dz>o'w0g##1eZߪ_n96gA< =#ɍ <6[d$ |y<E'=G*c'g> )NHY_aKڬ{6}(AЎh=H`yY7ob'n=E l$>,9U LxSgl2dv;3ɯ(YNGi>& ),Is;Q9IX1hpN0#&&L8)=ad٣'&8BoQxs1YbZ~>+ yqOwL "? gh2 I&}@@(z?Gqc#үz(ɨ߻8>^6: ^y|Ɍ١/dBIGݍ)IaIVu]\'̜$IVCvH篵TrXq6,'~hA#ezN޻}B%I"2ZT ~(3;/d{p^,vY}T^T?{S?y=Yd|hG~"o/978Qߗ>1ѹ>YT\ ߆,PL=UGџge+͎mH_OjYa~/HC+0'Rņ<ʴu >; ?VLMMU,oo}EZԮ.꬟UdW'_vw?7'{n21f#~OQt?w_&8g?'՞=ع~.望vr>Dw?]dV_WW\ی'r]' #<~6x%x&xO?5IE⁨ݺȄ$g߫:;yCMٲV-b{ub}:p﫮#J2ħgJp>{}ӽ=<,Qu=x8ľ z>jՍ"scR)͓qf:.ezCFq<c "SG",{@KœX~]gyxxd6~HOw4}yy؏ݟzԟ>h?>( B1/.YP81WHX8YL>!κPvxw*d1u0lp~=qTc 1L!MAb ;8Ý$s7/%xFe#RI 3/6<8'?E#~lȤIeCb>Dlg1={͌\rON_'(I+~9No_+Nvp2j}ĿE8w#T _nfM%\{!S24ZBXss+!1,!LLTG3ʗpg&zyq ꯒY0e&HzJ+Dyp#?'f&EÇ ^a2s^Q>\T&c'*y|_׋,7Ql]#Ⱅj'Y.wC_sd0cu<e"㍌k/>>*ʶ{sp?4vݙL rIPNQ}hECnwk^q͙>7䱫7fP] G8V,PXP_VwQ^+{SoWw׫#ȹe?."_Yz)?Ussxx~?]Y_))C{/o}S$O9 A/7Og?zc1Pۄ$GI(MN7'ƮwzwAޣ^o||wxYA]'tY1d^%]}Xy^H0D,~? *w:@ 3^Vx]c͈1&難wG]uTI{ 8;E / 1tzy8ӃLD4:3f#ꘉ\6HG_G&c)of惿{|o-$xf=Xciՙhܢ\I? !hɆr~H7gV6BpR5lC`fX!y_?5 G~ؽYłI\&c{7[S^WpdO LLi=6kY:; o|푃L7duyx$ΊB'Gŗ8N?R4H_kyH&cafLݍ^dcω9{6fc~៯VHo~#O2?8C#၎[c=ϊ\~^x깑}+ Y+O?ed_G |*x9qoLhi,=DeuAU?VDW_7j??N7P̟tȃ0x;䤑g?hqa<sAp͎|ؙn㺰Gla h}xyy5siӫ vP}ŋ_Px)#+IP?՝WRwJ͜h%gie&)&X&ӊ7/ V^? ;Og,oV_;Sl|m'o?yE?:iv"ݓ"c?757?uW $7 B&5F9~GpN^aުrf@95dBgAw?pTZv.^ckb'Ȉ wyۮ/, ف>7ۧZŗi>'D'/"Gz|I<%> ߛU 0 3b=?Ǧ?ꁗ ?zܽci\]z9Ǻ&񷏷4A,k G {̧y]J<ABs)cyLwO.9@y6켍z@}y33{.C4_)e$U}"T@?ƌ~Vi?9@)>, 8_;]y <}Ϗt?$)#d3,||]GpIg ka}"gXB{%WV `o|QN#OY]/9U^}D̓=ǒs~ |pjyqx>;>}O4Y;Fy)3(&(cl8&&y}殷͒s?VY^ wf;EO=e1G>#v=͙F5<*Ro,./n(JrPuT]ڜ{,]ՏLx~ݟv[soKѦ9{(i{W+}ϻ\߮l~ows6=ݹ??x?.oyz?y޿bVb1#!1{ ,o6s$"K%etn {N#// e{\w1{r^O=uVg '2x6|,/ xΧ}; +ӷ1D7tc 7[ UlqF"@8T2$f$Lg9cr菏yam}FY)wQ#ˣϗV;#( D^DG*UQŏAg!|Xib::6~8)Ǥ8js6˨<,8Dlp>1#$sAx,=~l,91%P1;sxS j1W>s/ey(uLF{XeQ$Oclj)0g>W=2A@>X/)>xs9}u߿WfkUw^JdP yExNR{?jg~WV8:9`mVoV3m|/Wu\; 4O8o5P~N4axw6v|,Ms#yxnYس|&,7pe"ϦύܾW1, ^dV޻'^z?|O9~?=׫V/?nܻ|^/o_oz",W;u$~J#B`ug4)39.2}2wg>llf=t~j =x2DV,KTFN'~* N R%$ '1匋acL# 1`X75;߄C$u.,F^8Tch#章W #rlO ':K 9rU'f'X^~>LVYoxNDS*sYO1]9IΓHTHc"?4L$9VL&#UXq?/'v':?W(T?'c{dߪ`:b==HCU e9>>8^k:)3Pe'zS>S?U憲k'D_/_SvL41__}_,V\;fj% ںuUa7ξfwXq>fQ.,Y>VJ=\̿w7~riY_?9W~uz.Y?Vl_7?u{s޿?)Vt(XǠ&~!YtO'RҒ?&|q6G|9sDC`BCyh3]WtLP׼ryןïaea㼍 kSJ/,d!l|"hIϿ7 88ϻ3.'hXL#<5V|b"ff;4Ǎy~&OڻՋ6F?K uC=sU2'<|pޣb7%黿4R%>>I"}~FN'Wy(rDpUJs5|PܖeƔ4']z$qeKӺrрN'*C^7ڧ~hK,Q`Owy^8똛x->9*{I<ҧ͘/@*D"dSez﨏Bad?3v%0<%jp$V3˿eGΜG_<|X) L܎qU¯u /jB &'^HٮX눘v5<򊝟/h Y62G[!1~8ىNx`<5)xl{ET; rGM$dRӾ 0b|=2tR:Trj|x(wQYynb98 2Hww^ϲ.*@,/xo#y~g'{<޸s~][?귿|wlWs6,ܥr/i{|ܿ_ȱ`7??~oqGU̙O݄? ߯tT}_JB{}Psc|ؐ<oW 99꧑!`L1hg7q}N pc(WsN'':NU z/;:L?ʺO^';x#`9)PެQ(pB>+0Ilg ͖X?{Q4pR!~b?Td)oNqfbC౤+}X:?h0^}y8>'Gbhx0{.s:9laͼ,po,wUM|QNB瞳P=sDd%2<?~y'̌9qwÓ~(1f`oΗ??-O 2MCOee'; )8IJuS;q<7>M7gXÛn'8%_"|\ :mf>#hAPN}T;ߊ6r8;? )jNde2@5:yÏ|Xr9yO?up#$s~"`?9OYc~zXLvAY  ײ\ǽ&3ņ~Tþ4`=M7<ɨ}M,e$4A_Ua?#~f1ŃxϺôп l혖?v?|\v^lwzsjo֟Sd|#J|)|t"#,aqQ?ÊSEW~μ^d\\z.&w`,z^&?UKߊ7Wl˾Lٽp.Ͳ)'9_&zE|u?(=Ja;|6{ϫãWTh:F!sKQUXLA4JHFuQ3ÿ>回f=ˈ3~KT#I.d&g3ݗT^GR<ۊ]BOƐ&^,7[3Yx!ylNu*/'9;>!c]dH {QFG^ 0@zY\M;ǵ/'M`be1tb?wY/VN^r{bF6a2eԛN0*PUw3.T>o)>+e$>p9fJGTB^V}=6"<Ɇ/vT0Nep#Q$c:ÒRR'OWyKsvRp_XOck!-;pOAR<|;+%'%!z+aѬ:KwТHOZ2;ʞO%"'5_z>q,Laz1r s]?L*~*]q>/y))o۾ȰNM?xߪ=OŘ%A0?5C1#?Xu݈/AO{ZwU~FyꞅoqsC-!}WuN }:PUKx9rxIKOjELy*f3?Ʊ,?ƙ?h,:zL3C=GU{A4ħG_| SX7~i!k:VXv \O'Ϻ+}xMi2 ~wH c?#/G>S$4_pTg*3VWo 辿!uAW'}Rv<2;b\ f))a$7{,g>n΃R|9hr/5Oޜ't0S&\xb) ͈=ԅ<"r_lFB{uf<ˑAwy&`Ѕ1:}޹yyMXĄup& ^2$~$~[Q;X LHn qq7Xgt8}5x,P7WV_F ,:złp_^qS78}%|Ƽ,럋/)D܏}zC 9T7~k#S=^=SOT>eDGʔ ;^^h$gv}oM q|RXa")}sx9ɣӛ+z7}"N?&Mw͋"?Ƚ5?n^}???/V,#7nM њ;DJCJwYo 8pԝ5ǣ6R;CX*9b5s)'b겤x5D#/ʑ#=6P;<>>dbo xKʼnV}~jfGTAT/=Wyꭈ%'i?y59# ɘ^ gaV%Gm ʊQU1yz|:kG8q{G͗X#[ݑȊzǣ|筳O?(u|2@ْ?,9L0)ü.ivAdUNPno1"r}wdkEؙtG6ޏ ̢C ȿT9HYBG#>ʉgsTBxu JO|x{8sy0A| !ݨ=gWí|2s=$$\8:Ll/dv'ceteYרMzP0gb_LGTf˟g2?YCWM<ݎ\~:JCÎ*Lf" `/{ >lYnS=^U }o?5ߛT֖zwN{}ѓgD_&d<=|фdF 'r}gdw>x<']$Ψ,Eɾ,ށ~r}ed,x<$)׫D2_5}#eaLV&g?ݏ}'}#nj&_Gvz|x?w'?6;<{YR9:5Xp'/$|E|Ex^jj0_B sќI)kxx\'ẍ́D|}Wvćc7[m~o͗l%tKG@_ͦׯώ؉)0(G sMY!Y;CG]=b2ߏz3;凧T88j|}򏗶3E#_Fj,醒3Ea(nY,ik ɘ~Hx{d"dc{>?9D՗6uI묰O*xz?o.GF>IW _sLy\ł}eoϲc쏓缾ۀGG\yEQf+f|o9|E`/x/g^ #CυH׿\W̿|_;djߩhqϼ6^9IQg]tfϋ=Vs?՟㛗N2lOҜe>/1sE\|^';Vϻ6le?VNzy5v=;kKہ{ٽ|> W 5:D/ =P̳py"X!ilaÏNlILw嗎.Q34q$7؃8nvA*GXh'Jrp}W8zR&c͔3.|sy&K)+6}řزYy,&4_ O"TKz[|W,Ggu1g?_~IpYVQQx⽿U2)~Sǐ|iy^IHzu̅D_8͜r>x՞=3]I(:8OŐߞ&y.<R>lL|xTyP6D9c~9O/rt|׮,O9`6C?̲q`[8x=YXL䠈ׇ|~F5U|x%r㚺x74|Tm8<|Ӟ{8yldaOqL&><㗿IN>H,R*|K9vq78́!~jqk?vo4o}S'7->oV?➼߻vK3)oG??x6rϻ֧͚?y7wh߻?<|G\#لOdC3f}z]b_I'%dI>GLFe'N!Ǘw? Y'G7IO#G1lN{xwI55?Rc=wQ02b LJ1i!0Sê9=V$Ş+z`[wz֥띡gisuKy\V5ޙxy^b9 ͗Lr{2#b?0JX?y.#Yw͏}{x8R v'ϟ[`ՇΖ_a5'x), ݓ Qy,?ɏO)3? Z#˼ܛ+E(]~oďq9PNBWO8B7y;yp5yޱ#60@ 3SO>M`dADP'X^Os\+얲v(qo sKdȏeOX!!#< |q5exHsH'ǮlX<Q$O?,k>+g<UI~#gzC rz ͒L;~S2ymdyry!<v:Ὰg&Xc${BsĖ3Ӗ9rV8 G=@d8n&}Ͽsԇ殏dCTH!eb㽢;syLq(!&Y홿t1=^ݏ?a?.̟]E;~l6vưDCF!-}|CWs|֎?5K_{S͓Tx'7%wŗi.qѓ`nO#oQ5M&q5=^J&v$cn/_Yu|SɎvO6}s=W,ǻϟTt_qӏt?3]?4)[|{˝;_?H9lί_՟^o3/i?ldV͛<͛|.޿lAU,BhB{<((1'ivNX+HV59'^@s<OInYە=X3 /d=ywrL#TvcB 39M(EՒ_w"bg҄l1Ęs1s"I Z<4z׺0R=b1H7)oRkGA33.}Ց9*<<}+w5_љg"}GO[yM}O NylSa%2wv@~>{TE1׷~y=Y(PO^I_g?k^33/ _D8>|~lqEn ^oVbkLAOO(ee&r+ςg&]eqIHt"r>rbv0+">lIa&^l Ut#aO+/ +PO*0k<7n|zCGl;leOhs9YN?t|#0Չr TDωk6#NdsאxpD<(y>=YH@SNq|dŖQL]ďv ?9㒮N琝>/b;[c3 ۸M.NS4FFwcp+Ͻ+68X*񕋩NYՈO;d-OD=XQ {Rb?m bv&SgLw]sI⻧&oDpGy=ϻȁ1;Q9H<##?-=x|^gr4{z ?\9_0Y?1_V8DlљM|udޣ'l{}]GL?|rw^ċ*}>; >tG5EE2sWPw~_t\sc⼇o~'zx<5GnC(ԩ$>/g_;,S91g-#A?6=W8?_ z߫?W_Tz?&%6_ln<ëz z:?G˟.fAN3?l0 ÁRef:H>FYt3:s?ǫ4CV5F7`QBƳǴi-ݤ痿u2~,Hj}e#ZuqY yj63C9ƺ'vdN8sdG |~)'gl>zc)2 ;Q>\c9J Y8-u4}~ꑢ#3Q3If8z\cx:Jl_K>L'5,}^REsWkD`ύ{OX)s;q}r|/.؟r珱#gAYS`Ӯ6|P&HKYY>yՐH!YJ9ov&Ag_@ȟذwG9GЄyěx; R~9;Ǒ=S ``&*&D<v9N; ;jCwaNG]w,GœqI'3Opl:؏|URr .9u ϏǂM>_CΧy'}vN,`iuwǹ.sV8+VSo6r=?/?:XZa/gDӜ>'By?)8x_S$oĽ;?U܎f?>" &ńϻ9Mgo^y_l^7<59;K>iߏ9='Z)8և^퟊uŗ֗9ߊGyd&|g.3r9^_ݏTr69ܱ_g~<^7{ydvl6o,iuc1?`I̓DA]?[/n=}ELdx|@ݺRx, r*Go}Y0$˘J)08YHDL1#J {bO8s氐#~CYW{n?STfO;ڜ"?{a.mR"#wOQO!Gè8O嗏q2x>ne==W@ͅǛǜߪٌ&gfIt{ц5|q7˗;=WߧL',wlЛ>^gX&ެSNő9qCW窤qMRw7F#SJ$b!}\Jsfb 0aUďHτup".&Zy7B ϯFMVtu대Xx4rS}?7/;pA3^^3?1Y|vs5xG϶j6D #N~VGBPra's/dLa+=|uWǬ 1̟=R/]{D w;1˓e$RD}Ke1 4IU lLnr8y) ϗEXUؿ6gݑkLrK𛗦Fyٌ,Icxޫ?6'׮e0TL8>#ϚJ&u819b2ԥ3yoGS4LYkX7I"W0gM|YqYX^~"qr6v%;  b}ya1\K%#e$\z\264w]?N&j.|Y3QVzxh떍wlYtՅ1hs9#x07!{a;>=+'89^8Wob 8^ghpTHƹg#G"1*|]A>Uj$= “;ϖG)3]9L&$&\786LԜ_w·> ,tvӃ:Uxg$0+7<<0# |Y>`JE?}\!ӴbOy{V8Y y,Bw?|z=_5&Q1rb>Bg%x0p=}E3DY~{\:a9{*uGCWr|Xyy&D8&L7HprgDpbRWA{TsP@N>,9y몬GNpu㗯GH.GlHpavɑs'Iec$xRf盓A>)\M_VhcOVl]/n'8Ş?d|YgbYI Nk17vر̜T˂"/6ԱRċEb~o\Oÿ|dهKrT=4 DNdY9xegsK BrfC:/>l 0~@,҅@=:{if#㏒{/i;gؗ,q.cF|H'<|.J{: '? MmWy_ 89%j;8r]6c4:e}8FfV7'IFxwj ϖY`mTڄ.ul93~*A+gI(s)xr9'q)QĈҍpO,]!j.bWS/{>۸/MfLoyrA$ 'RMDW9cLIJwH"_]o}s7U.# ST1% r1H: yn}׬<>G0|Yo]ws$rOT:@F>I7iHK7`)1׋:GyҘQ2}XȂ<(']ļ˂34\:36}Gh<%!:lpq/!,`KSZ:ypR~sVp/T:?伤'iɝwլa8gl.Y]yF-pOyrstwPCHK@g ?r)暲~O95;X\^λHl"$?Ws,~( s2s2;O#qʸ{ot<]#l!< OoEbNwЏt!z>wyTfVG >hݜG W㍦X>^_TưwHuV tH~jG,r>,ί ӗV}s}=;?s,37ѯjO;>xL7XO 7||Y<=Wu~܃xU7گ13o:$;&q_YO_T\nܝSGGwz/${~וݏOG/,;jճ6xlO}[%Yl<_Ej͟PYk[7y9"/x (guȃh4pZ$#1&2sb/_;k'y>?YGc,+0{\S".k/Ѓ'v8\~8g .'lS8w <1ZS&VIG#ﱟ"@AER}ðK냪Y@TtqIhD9za?`zxGn`gYz;"I.>EÛHc)#7nG\zyNЮ멱ݐI?m䃞?yFh}H&`z~P6A^+qz2{S HD/M!p`b:< KB|U8dH:"\R9IIT8#$kCRՖ2s" C†cLoɡ%Y;p9>a Dvc]#6k^]>" W1l \{WH?چ`dvd!~^y~|Qȓfc3u7R'_2$xǏSpp:\3jB9A"~ꡍrqpe?6AlG)_͏d>og#e\g.(ǎAWgK=Ew<׏uCbzyFw`$g._8M懏9 ⎇o4<tfv<]^*ڸz_Ŏ18g,yߌp%,:_qX?9lPTIؤپ\jǘ zCyxo~,h/X2YWI!$$~ls~.}^3}ty,>hqZo>/19emꏻ|?<e,<YYκ?YļF_q|޻??,{xN,? fYY? h}W~olrQŰ 4֧.$)r#Ϛc3)8O^%Kv|e$j4P5:Y?`GA $b}\臱6;GT=TD⏑O? !ƴ >b-QBi $dsy#Qu;JPdl^ 7_DvUFf_1 >/"t)Te, 9Q'2H_"u'&JG9m}7PXgchq?U) ρqbIR6=#P=}R*D 2ÓaLaTxxLT˲g@}O˾tT#Wk>39b]xYIXx!2Ge?Ń@F@eX=QO`>Y6+Ift2芋?`PJDɉ$$fĞ,ixXkNG損<)$Gx0 y*b!xӪ,12 |\`̿4xzZs#'6ı#>poOݞ0Us  *[O\pG<|<&82LG xg~Z1e^~G霨aN;YWIa VN8߸Φpg7gϨ93dVSP~le0a@7Jbz$㞾ja#q6=H^gHE0.cI;N]QG߇,1< OE 3+>;kO.}(|tQXp>,<]XD.X|sr|jϻOx?zX\%S.늧Wc.9G'c"w{ngdl>]Ms6Z7Rc*U.~,1y2&5]ONm/^=u|Ͼo7gY r8XVaXbx2qmu~}/t(<׼ >Om>>r[N~41k0R̃+G[VŝO7],dgNi{W%Wc9;o/ՑSϋ~z7V|Y<eols:IH}^s'~`7,y)x?R E b5".exYIO__n_?>VY ~/FAO4}IfaA2L4=ws^d՝3>r|+֕HԣRpT`L{νO\^hSyd <xorքL:=vjؓ^bR_'x#a#!RX*{OLsDF&y-scAy#0fs&z,.1='e7봡:ߩЉ+W!q׺,%xT36 ^FR,qgz ㏇Sd2a|myI0ϯ^ OjֿmG\"&x|Y~;UþtE(`6ŐRM?WaS͊|G I1aς㽰=-c(8kbNDu8>_yRYaAbIYqB~Z,,'9.iU#Gh6; xO.,3}Jxq 2 dq#gŌFb6'@/8C`!z'OI/#˕0㟑IGUE溺(GX 4a˦}V#z߂N~?&#_% E>WXvS&00i24~i_ߊdR6R';U/9W5'Y>8O'M,Wzś<啳dlOUI TsAXAޜ0)E$=Ja#C5=P 9Q $KqL]3lqlv)e$z(9DǺ.n~ 5$c쳨3?٢#d>`PNDVrN7XX qI ɝr؃M,q!쪝8{v($.~bIDnu)L42^W[U Ӎ᫦BrfOSMs^jƸ0|MGz3}ޢTWy3#χsVHppX!烺!2~L:Hbux_1|QQu7zv85rbȂ1&=x:A\1fAķ^jdq\?tȌ%}ua<mzSD 0q A2@ꨉYbǚC<~NkP-G! pCހ^")T:#& a#)OCT>g⟸(]€gOW7%?Y>Q10)Wv7l>? ؿ ߏݝlxU6Q7I11Vl@묚Ƹݽ_~PXŌxyizRq:$"`\hL&Rs,IG]sqf>g}&ydK48ܲ&ἏIP~;bf9/}Wn;yv=WexGv@Ll|>%8K>M c Dlc{I=8aL~)0MPpt~>6‚Q/GGSޜ?h_:qqS*;~9ve2˂j'ǎY(l;||Y!|y̤YK9WU| ;&}Q px9篫XH\]و5$8rxɥN5f2?l3U'guܿpx sTaDp~OO5牾\~6O/]xuϻoiqWՁțR UA9p?wQ?&*!<d3T6&v>YLB9LLq/V_>}>l?J>A& D(I0O"939܄X{"1tzz@pgDwÛ1⇉~3(p믣g}SrbV `8EhTxٻ}rWzؙO?Tϟ/MD{jTwϛ:z }/qYΊ*gr}yvo E7? Jcٓݏs||qy'ݏ<9gz#f#'~lif);8cǛzlfb7 rR3l;o!撆=]yu3W|Y94 |ؽjVv}6;ʸdE8~)ۆYY/7QM8ѼU:&|M#}4+o}y&[n= 6]=MËڲޚ{~.oUx]`IǿŌ )ՏRw#&hoP{D6#ݞkV5uMo'8,o_쾹¢5$]Ty|R;!5\HnGk>I2~v9R4dTQ2vN|ٓgAH9[3${zd;=/=RbL O޲M$+ǎ:#P00u'0WuF" 3'~ gQ蕌2θ'Hqk?݈g!hAlz^=w1;9qr]懃<~GaaW^fISΩx|n<3˒S^rjǗX*C^c^C/*e6ɜCYp5܋Ly~j~6\ <̦пY #5>(q]sÞ{+?Q?ӪD' p@+A#8zǟg c"tOf6D%TxD3x2G^fAݢGN jFBbyǪrƽeQs͆ 쭒qPՇSRlΞ.ޗ<ƹƒ}P9懹XB_ PT#ԷgYrt+ǟ*u_+2:UǏ6jOϊ>+.;oPnOt*ICGi>h\۱C{ұ6eا/ g]eD`YغL}<4C'1Q.6*c=^lR00D0b͈CKrÝ}GC?e˨y^1*_2+Gˁx͏?Yfx;4{ s#S9ǃ47{.7n8}}WTi H)4wz/;K_:H_~6hz?ri?bhz#??oWGė4#u"tUpk<\B{"&z^\Y? 36K$dzXsX{C_l3xq/SX){&?z~^+Ь9'Z}^qrJ3꠶V:r "G1_[j`WO&ڹ'f9KG73_ylVMa8&Ɇd2Oga@>oUI$tj)Xb?46Vq.UFxNh%6p7=}T_w,X89sa!'3<5>{ r 6C^iiK`F緖`/G4H|S-qw@Կ^'OieG!}e[ϗn;D/ ܁e-(baɘ:GA!%dc^:҆&xb䚬r愆<,qt^?T|y]KAnk"}Fq;!xxyN}XQ5l8O7@wlFWהz ,̓9oT)m͇^ʇ,>O8%朝%9xjGd'0'h#5uz[vAUO>) o1GE963>fx|"9hO]ϮN7 /j`y(#fw9EdJ?͐A$}PucڷfO9'l&uX! #4ڏlS3N oa݂~?1H' $|1H&mqTCq_p`~G9Pu鑦'?8WםͿ{f?/Z e0lו1W>zyqDտؽ^n޹.ٿӂiAc/?_?[8yL r$ȍ̻d&uvCr9H7) "0%%f W F&.B$|OL^hP(g'Ǜo@p&Sy =xp:T;_OQxcy^\nMGWGlbOVN/3Й٤w"Axz˱ఆ9b+ =<0P׺$;%`o uY$?67H|xYq݂nXՓ?yB⹇5ucOr:b%'{ Ϙ^lNcy*85"OjOAMV&W11瞸w!bv1㾲r$of|Xn79ЗyNٜy׋-;BC=߂|T쇀<;HkMXKfs^ Q\7"'|#r#`qĈG&P7~>v׎o뫎##vla'<ٟ>"|(`x`WOdDs2o{={v@~l0T^ l?%0 Fso2_@ɟM!NL/ ?FϮkكٳ{>aV\﬚CL[eTQgGc/"3$ǻ +PLC/zL"9/flk˞˅‡"N3I{Nsa<2]iljSCڜ|溢by::UrSO~_'<=hx{(u gȃꃢIp’}V6~^۳˞Kwiq; 㛹G[ o^˄MI_ŀyS1W'~V>)ظ&x{}#EbD~ 3o͒rW|ӛq.^c&<̾'{5XN.7??vr_wJ^6f:8.s[ў10D$X؋#J@r7}fqHL ?1CA!MA<׉W ~wu|yg'6 {?Q ϲxpG>lH,<Co:kb !G8n3z!Ͼx%AK=%8| -f8wPw|F 9#8=m~6#VfxsݔG[=~o<9>ِL| 49Nz2Be"no?͖J|_7&#~{LS>_Fy80;%0 spzO{yeyZ8l7zzR? tH5ړy=Ғ9϶ʃtu6ٙ,`jj>,V*)``Zˣ+qZpK$`2w$?1#LDyy?sr:怑_9`tp_ǘfpw<$<wwV\#Yv!#qy sPVC`@>ώ8ؑ.! $܀]?t#{(!>9J|7nQwP&|'}W7"l:L:H@=G>`PM#Xh0S/oE?Qs0'X"&稊0D'u'AAaRcr|PP=] !tg^R#0uLpACS:24ezcՌŏxq>//_7s'(qamQ?b)B'TsMΗI6}x1]"l+@Go {hXJR:tCy[}MyVvpq.q^hgyP_7~7oBkNz@*rADK )bՓ/ξi\ŊSTD=G`Ӭ=Pp~TI~xޢ&w]Dlz^k yY9g<sY,p~*f~' Wpjsqs⓽bTTbw>~ק55+}͡@-vOG)Nj!eèOz>,#!iLϫЇ+ :uvϥ]<<\' >+Hg˛'h#n_D #c}dښ̞;h+|;6xH?aR9}&O?GFs!x4@qw#Q171~"ha_ՐN㽱Nǹy͕D_2<˧)xI;v{R M8$Ag~*K=gf O/}_[f#>TEN k܈~،笋:diORx:Og,^mJ:G2d3\\gY!T<Ɏ\SS|O q-JguITM:FnGIĘD˄}vx's!pv=BߗpI }x?DN#:z}=pT5#~mNϟ1w'G03ۣXwp;j%qݎYH@9xwhr xPs#!>,&>Ph/2}sY5bO/w\̟KK~5#,J8a GGw|>eD+~ o ђ0:Ï"r^sfΜs7ѧ/{,?Y@yo4NLn>2 KЇaxg9"'!7z <'<,ﳭFI"|<}xy)_&O%9#iT! "4WogO256r`1M}9"ýfWzߔ]7z̷,u;ׂLX]!_ގP=hx|٧(3>x٠=oO5'/6yc@V7}݋PPc8"j^j)nv=|c߫y櫇+qoOʼn߯ssX^ɚqv?ȸDwC9;) 06wi19g~KW|ܷ7:RO'&g&\&{TՇTǍz^_g6\znxS͜/L,#\6i:ai8w:vG]7DoT'N|'K]#lb#$|O>/Q3t3?'B}|՜Nˢ]܎k^?4gtu|璜_9 l3C1gIuHno9q6#?ug/.̱w/|hJ3̳_8P~a(syֳ{nNpΫ{ <2u3̞Ϛ6OX,`ٟ1S 84P3@:7XIl׉ݏ ӃTOI:8A9b~^͟zK l$8y4/%>,>]bRz.\'/>bYO?6Ղyw7 BdcU ]XJ($q7g= <>lAV}H_cKxqSȰ:1Ձ?TbO$5J/3=׷?goug|/q|^Yg:;gǽYgMF"Uwc\^>'. RIZM2y9Vs|ď/G92Շ;csdx+7nng<^ۻ]hx61}8)C4J,? ]|ٽR?Nsf\Q Ɲř,>ߋ(I8AGKL;CNּnǺנsw幅Ќd* o{bx NO2pdbb#1ZgwPr@3I1zJ3bnez;n%>w=ߚp9B8V1v8x9&ʙ~:h!NxVO~v;͘Ǹ qV!<{T,^֛zr}*7 b)< _%k8ځ~id/qYgY4qS;xg܄Nv~ݻ27nh~)>ִq1tH_&u>Lb?|mf1R>7jtDK9D&1^s(A'$ÇHy̫,1՗r}3N,SDՉ~r<=\'0hL(=V%Ɲ>]09g漏x&2DX70M& Y&=Ir׋!sp&x}tx |2)Md'Sz5#Ng~r:;' ;␓C7Bqh'j 1fD9*Hˏ7N($6KtbRgv} ;!qgܐ?\uOoLǖ W2xJD3\x~H3SȔ5))ٚ"KAXN5?{ <\=^ƾOLDǃG-w@_O{gp4A|Cvڎ'^pf9ȏ ̩^v_Yg,;+?/_-dSiꃠ,BŎm,ϋ?t3=6O:fpk/~hy$)%yt6Fl݈?œ:ϿUgRyI>;lu|^/{|yc~ŐC3R ./YSb\ [ٗ*䷞}o3e*{r=V[7g:yW|3c<ݗlO87pG|}8>_~W "HJP#B<&? 1^9ϋ5'ֿ4OdOO ş劼UT/X9?78vi)v_7xɤS8=ؗ/^Y?0ѧ4”w`s1y&ӸqJaLtoru1L勚r7nk7Y 9ADє0﩮qɑ^9+8ptǽїPwW$aՊ1N|O_W93N"9z*S7ϯ<_0fGÈBj_*1%lFri嚙tGF04KeD3[$hfn 핰l(f"Y#šN/{^'竣]Q~=VL6zNܲ؝FcU$V$hbbR?zیze&L:y>WYFHYg ]pb9 (,g;ǰRrg㪡0'#*|}ԅL=XNrΰ։#厷'|}!Ğ\B0Us?|yLpJ:,}d&ܝÞǞO~~ƹW2ecQǃ]ei<_%?GYd3r$gY(3'oq˞l҇wI 8̟^.Y~aa3/%qNyqj8?h^`'#4P&fftO2JsXpOw~r_4H.7k> q4jx ݏC3+0Q#.xkFNc|qpc?՜|pϛl]#}^=XӞ>h XMDeUdz}Tx 'O5V .yR~/ۓnXℤ l˲8> jӺԎa`3 h嫓0<В?D!}q7wDY#{~2,쟢iA/q[$]G4auwH4k#Д|'^Y:,Gq"OPdX)!dӋ D5'(*)Q$fDߊ^cI|x|:t߫)z?s!0詿)|=NoՉL")1i?I5>rBxr ıR0WX߂&?/^ξ㷯3z>l=~BwP?4H1OO=gwd'? ~~z/QړҐEĜR?)/#>xJ`IZwXow9q1w{?UL"B;~gSzo;Ͱ'?T߁̞9oڦa"f}eIR}T0vW˖#?o׽uX=ѷX|cڐg~8q~"\)<'3'O\gb![.[/Wvx8ev8c |?iošC87vϻ|ӟolgqL4]獲g"K! OB/AxI n 4zf(;}Dsge&g$zy ѠF#vP'IlJ~iGO91KA/oWCݐ7׺,agYCsVWwpg'ʹ6gRzMf>w8cx|>94($),eNö꾮} p $ZI/:xߛ0?6\?`?˺.0>v|?.r>7y!g7c,}DRA4/,\&H|H1ͪYa8031w'< [}9[xpPYM`ae$s?U=% odBls4p dfwK UF̟=#p CICwHDYK Zqb],>:R~ۙ,pGNH5$E,O^1x)<`ʘS>?39ukx?E 9 x>(zN;aN͂c͏\;mci:oTۑdc佽1=O+3Iϸ,Jd~ǽGFTEɪ^ͽ>}qsU=|X,MN5GT ls]u~r/sHa'J?AǨ.l*9U&s??wXWdRgs8A͂x9\$^p vsU<;q` רh c's B?(溟Ȍe@6i9%ʅ$XE|3bg9}YP{uqr: W^7߻ODdÐG`p |y|6:.g∏ÌVOQtɜ 2| M'깉gf{d|=Wݒ]<6e|{L՘~ƍg`?''ɞ[Oy8Hto ^'C*:3DOp"6MuL Kjlz3fa?`e plJ8;cghϏ7`wT?/"!}NA#.,Ny[X2v<j ͎|T;o9 (VӐgߏXp uA)eG~8vHA,%s筲g~嘣btW`b#byi%՜ϖ|vC <6K$AI<M9,k09ߕՌEҐ},ŏ26 6?\b˟r_?/˗,7se/3e }xuYPSh{qo!euݑ/m,ǫO/3~1t?5z&|=u~,'9s(sߛ9,0f#{?9y|\>-5gXU#=zlϺ79stL|7C$Z|Wqbr;~C}\]pxس:*+ۃk:|ֻ?;wxD~YL_s^ZLqzc.^y_>3\չS)W? =h}1ꄜ]kB.㞽؄y#8. yzTn>Qe541A#2'3-HS}ʺ' O6rPIpν;eyx59,TL|w`Y݋8 &0&Go3YAİ0>nwɍ,0i\OqӖ-w댰:fS 8r&=]}{Rn)>lpԪPѐ㿯[3r<άl)Xhb KAySa=&z?- ]}A3GFIeHXOV=K<|Kˀ,Qo32R^LʢP AGeb iO3̩0z^6(,MpM3:b6qcsѧu^0<36$<^%/=|XO.͞?etyv=?fx򏯊"y+ac0yE0@OG`Wq*:`~LjlzIaٜA`'Fw/$@x>G/g{ GdOS`)G3 6gyï/DBi\r׹kBG#$$C'Nsp9POu OO 怓:|FBhbt$xf}VQ3ߒf~u1LG˵>| BUQ.'b1:)#g,r)N<~/#<^6;H9.i㭽 (Sk'xv|Ia?UwY gdˏᮨymу͂,_xX4ņF[(Xvͱ,ۿ,Byr4 ^y%]|qssgG.>'_OaONT*{ܝ*=&)d;6]>?㘬z?νC6=~i^$/U̟K ㇺV$ qTv>lG{NlBe␰#;uA?oāޞ^k |מ6s#j !^_T3%bl,lGW=Ԗ#ol }Tkz:?ᵕ T7jrucݏ\Mc)'?dn o'ɎU!~j%hꩁ{]0'zl?u{snηw-pD5f cCl8F|DwI|Fj|}b{Y v'Udz>l8'dAJqQ|` tD3' ubw Mʨ'Hu]F]_9z!OalV2:GUDʁ,>ya?^?~|O˛"XtP;?O,~|dqydRC]191WC|"|,zo$71G̜q>kg|4[7QށkTA~9'?Ό]Doݞ^&5e>+0㿚lUϜo}b49)Mc5YSȂ%빡K} ?xlhO˧R<"#jCǮ9M)zwvNDcZ0|wa u( ̬|\|MxX'9rb>l]o!"BK?nJGޯnew݄],=jxFqQXRDXPx1)^7n|d_'_V ؘ`ܞ9'.|߻<'A܏yKbo^x7Q/|"zE㉙g_j\Giƴ 4?^HCxGD'lO=υr'|*)87S1>#ȏه#ՆҿKN)t")-yu7}\A{4cM>)4/F)9)9^o_Y#汙V@x㫒;I<l$Dg83FXT Kh(da+,%>p82ͳXC!Co3d3sș$.x;FR`Hע=0UjpfXpFqdtj*^AB%ic!G73Ry%\3 tʳH 7ǿ`|9D;:"y/7!=?~ng1htC1+lpQer]G? d ="<9&lp\q^x#z ./(?T2<1#4/$HT$IawNxa>lBz3`=i?iJs9B!C Ljv20Nn<u;_Xg)%s(v O$byuˈq9,8<`GF\cHxD܏{1[F7nz '(O)yD84=?’9>#v/fsAJ:,pyxyNb P2ņbGy8wE1S5osgըC{E,7%_|]8oyWN~/n5A~/s(td w(maW?W|xL{cIx>?]]];]'i}X);ÛR{oʬ0o/xl'8oW8ŇnA1g^;v@#XvQqU2×~.ո3( 竘W3|uIȦ-I{7]lܳsq|L6w)<{I.K7sw4]vUϪY6nur#5 C5Gl,]"PoDW2Ax~8̡)Lo^X$ʉlg_%=o>^޳bg8P`$u(/J%0<.got7G汁şKt8In1 bYqU;{<| _?78'2h B=O2c!<^f/_uy Ϻ kѱzw#ϱ3>,p/MhR VL']YNq3U:Sl( ]Ln(7PfGD9xV~iG.?@:u Cd򱡼lO'?YC^(2B9՞7jOO_`ř,oJB;{7%6{2g)g wN)|^>slm:}] _/tP7L$;QnxQ|Ry͍Bɼ^fƳ~/|X0G6,_ŏBΩ1cG?x.#d߯ņ~c;o3ڱ={\4?m}/O=q{ߣw+i?z|cGrkM,DIGfjlHlx/wqLSl~n#aq0^ ~Kuꐅ؏V ò9"&"I?m~g?Dujpғߩy:klcfGwIzc>~m=y[^\~lyE՟wor~cӚwI |0?Ւz9Ιߚ<]t3,OZrk`++W^UUQgwyy=Uɬ I0rl1 w)-?f/=G͌/#?rŌ;z?,l]}ܢEyUs?j)Xx Ȭ ?Yy m0l9v+-f~)Շ_ܦ}}Tϫ#7>i (gѷ''7}9o9Ǭ]S_}myNO ~gAb wr68+=6 .l>>cl׏UO<{.~~~W?BoQ#]o7q~lxɳA%y9=vxxskUg͊Ϫn?ӎ.YɲI|~sC4%&<6WS?D|<BspLB9%}|X$gsÿ"q>^8O#B?W~Ϩ<XL/4t0rW[,˜nzNzV~Q?ý@)ӤPj|lab$mo=GwLndQ>QKu"5l=twV. -k2?RLYJB)O_,^&6U40QTy&ur\Nr#W2uYC&?řitG 9뚾cS >CMƃ<ᑴ0pA>) Oϵy%s䆳%$y<7 7k2mkʐ koGx!BH.;8ϊIϩvlfpa=1؃Y'?q.AB8疏f0>#S(1魆Xvts`Ď{+/Ȁм'`ɇ: sO ɟӖGtHXz%9U fep6̸ٚFQ:};xt|>l1ʝe|,waA;PI@V!7ac_?/݋"v(uǻ:E?Kd"e{ϫӟ֗/ řKVfpUxKQ2PgHNa~Z^~cO8ǾIŔ|S?ߟg\Hgt}܃l͉Őۯ}g,{ϫ޺>9Gv"xYV'ńcN<!7$lY6:ݟURW z᎗< /4ޅ'wdC^ӍB?X:s;ÍL0׼k?|zCݝ友/"pƷWȬY??ߋr`_oo_-8wQ17V B||449|BՄG^^&*8^>!Ԓ ⾐o7YX]it%="A,@BoG&:OD儁ŔDɿuOӷxr+YDeEVL^yt?=lҸĔϞ~-:A'w!e݂՜kf3*'.PqDj'?㪜'^'L|"P?uǜrg%Q<  XR%׫GߛgOk+gǛ31@M\dY1?x n~*%b8g' kШ,[x:@dƿ1Ǻzx}]ab=iUැ<,x ͐j$Jv3v#DE)'~Q ؊B/w$dv?|E1!`C#Iu;?Py|`;CƢ#,*$cA0>ř;T#%:gh,1lpX9l#jdM1@ẍ́ӗ3>MuclEt?yرE sc":؛)C>?˿^_~l^u͎hGuoo}N>)d/|ӫqd8XV_@>bNWx{ݫ(~/qtSyX.?+nv}*~_S.OUS^D;e !׾/=7p1q^ಹE>Ui) M:wdrlIg_N?>|OOMOs|Y<^͍werś>nś> ݛ?a͜وmgCd~LO$̧'ꬍ`]gF/o672ГDe +.Oe}_> 4 lY?v}L{~j]ȋ1??EDXçꁆ۠ 1gcbB6pc{q760w9t3%j91s'AL9IV7?&[rIBcMv$!߫Zo̾k.ǃF\ΐ3tFE>/G @GLR(iwN0)νo(f\Qw< ],LjJ9Q?}٤ d17*=\D'N}hr<ϊc!.q]auWz(X{h(x/T8N4XkŌlOAV,{=O Cz6oWp?l|߻٢+X.B|&6N]?>Gtߚe|ܸd7O}9ӛO㻒1ggnsM x탏,͓)?OE8j[M#N[{O.᛿¹\e_)$~'0fz_v9Q%#'җJ9;w5 _ʼn>qu6 BC7,3bGvg}M7NjZW͟EN}ݽ5,,g~F{:/GzE.EܿMeWWoχM,Tj{ |25zǯ95"9?VI(2*,:8c7F>@I0:LwC426 &6[{*73^߫&\ryo3$,\TvhejL1)g惑 pnc,nu_ue1BfEew=v2`{y4=v^i<`^ȶ/SߟuAsXKÙszGKPk2nL < &G/3|{ƒ}' ؘgZ?b N> JDgA~dzKc'dK&3"SXG)]B|C ?ޑȟǁvQsCC͗?|#5_W}Љ+1`XȠ᰺a/c.Y,zŇŃ?ece%|sÿ8n?fRG 4<9ά՗pQ{9z辜ŔbC ޻Y㎨uߛ'~[ӹz:V?_M?dQpW|EGQ]i*4dNGIALz.I){IWKϨ#~_O'\*}:E{dzK3qH>4UK§//3̳'/λ+p/{f{Txuc!ȩ1>~(?]x~˔fl..^MYYz=F!9p `?b^eh?#}3p"Qapb!g7fC k'R53x"99` ) -c .M&Q\#AW꣠$?w~˿؎p_}X`}M@x/e'XacK8?_1U._nGKC˗ueډόܤH4\s?gs?UDR da/&C9.jq=׾ßP;N#e|Q|YKr:YnGO/>TE,t&9_ lDsXJϔ6:#)⼇3f;x`/UPLsZ?5!}V kDZ ,>`&_,;R)X;v z~+̞]>49vo59:ߟ ULO}V}=ܕޯvvEq<_rsrkW(_;GvcOoW#4Au0'>ʘhO>P '6'n!`.&I sѿL?OC0C@H\_B:\fS7#7K!z}@罳!,6C#r:} =ug~97áCyV(l._15웗71\%\e>.gcygat9OO$ _do3V?X6|PK>o6VYwZd&̙T %/;σIRl]?ῪxqQlo09~Oq1 E w"&W9e:C+h:x6)S_5# c*=xWGV guIpLXH&<s#qa''AlaNcBw2b{/_#vNCD>LC'As.אvgxU q1eǃN,FA"v'NsB ɳݓR,LSUOު xu3dcc,9ʉ,yhs7wIci4IGɿ)X|ءB,,\zgße'f8,3)O/oYLU}queτCeS2.{;,G_V"\bheC;AC7OD=}\ާ4~o x&z̓g8kn<ǎomgóIU~级e0L&_6!.s;?_F3:>OŪ0یVJ37K\ݓ<&TDW!tprBdducdFj OìVI՜GKeG15Ful/rZgG*W䏼POO+2`u}UÙJ9K!]d,x7OXn$Ӵ:O nGG9Y\צ$v/#zrqfUL 6OQ .GSJSp=S vt3KM 2_LogpnЄGuGfN ;;gՎp';_T&QoՈރ\ C3׽s&7@k,-WY$=_'ۭyj!!b ?`c<ftw6+G.Ao5Ly|PSN{$y7r8T2w 0ago8G b>SbyH_VR!>Ms> ݈' SS2>(swxzcf;6&<нu\bq`E=cV,Xc\?_?1OՋ3C|XqaHcD=X0YϘp^>눱nXxgmA׮R&svqk>"D흄o5jq/cbWf+w1<IqGϊ^X<7Nq G=8?Nl1 v9UI;|PNYV_]g Cy騉 X^<Nolc{duԹO=^v7i3OX6u~n(u!q^W߯|^+ws78/q{ݏ.ieϏ3>o3&͊UndyH~J<qiψf3ﭽ0mk R @`gf=XFwx&uc݀c4_<{N &dcҐf\ugUt@~,#犁'Qx"2o_ň̯,QBd}d8w}\f#xr1뚾g)3〧(⢠3Hpqe7貊=ek 23qAɏlODNGo,%LuF9CՁ0?MF"27o-1' &qC&tAF=}X"1aw}}&B6]*G̀*T]"~s@yyŪǶbS ?t$Y-#$,|ܧGs_xyĽqHz8˒N#))y%?1e` C?Es$~qǏ:eql6=×6caǯTo_}'xROM3rcv\ŀ{ӺCXqx< ݎ޽l>,O_P9~,擻7dxRN5#]ÞlLel]a͍lIfy_;<͘a?s;?C9sIW̵uq|CO&ޯlse0AQY>&#uyT6#絓ly8#cZ%yuqqwW{> =yyI<*%?T!G7Dfo `?pgn=,1X%u͕u/~o%әrE&:H%x&9yF`33!v=qE8Y9v( 9e&{\ :>{+(n}{A}P(!y>%&ּr0;^ }rx9o'o?.#'NJwf n_u3"=J7뛤o9ArOeHx{O̟&;?4aXtqf\вj NvL=UϏVOHsŐW@m(,y_e) pT0yMCӑ=Dg_pc,&H#!cgCɻ4 !|$֓u!?@>3ri{O<|X 6!lMiP.PϾ?s^XX߻,^zc/w6?lyo3uOlRάҿY9&]90̘(׌~&2*yQ微;v}q;HP0cix?W'_pxlaOZmHxnWyP'~j˒R!4I;qY> 2o'WL|vS&1BXv ֓~̈́ P=M1;ڨ/7e'ЖyBRW,q ChGc/v/nxo_lwtc1??ǛiJ>SN*No?vQ6Wo'uc>-NO (6b(q&燊lՓE'oRwgo1S_%]ܱ=7yO~D{_̰<z̼g;@(Ӟ).o7,<<~,}]>oMqL&se<;}>l1y#))?ew0\tS.݄7oߩ% <l;^U>#'Hî=Lu'$uRSO攲x'({8拂da%0)(F}Nl֡Ƿ8`}Q?sk/ńx℈'5oU@YK[D5z;G >>&^ˀ^7>,YGIE ̜x-a(ds>o=(NK̈́yF͙9=>)>ZPb:ŇC~nc)ߋF~Ǫ+_7$RcJXMW'3:wlX#e?䕚_? ϊ>1*QI#,w<\'bh՘c6'[Yz3?x>O*4}HͳnqzşifK97^':כOsy%q XDW|2!'l|M8x4e>P;n51ЧR~J:|e;oQ|Sv79G> כ2G|X'wϻ7?v1<ߕD+/xgo^)y<ȯ~?7'}zoa<'GKE w{ hƈF{p S^A)rʳo~>K6b%'E1_m@L7Nό汱6.8Lu4'#D67_ooFtÏr:tq6d翆/tuSu#rQv|!x<:l̃Dǁ4}$@r&#_\͂3Lf~٘DM/6& ^{ Iwf~okXHI:?BR< <jDĀ7PII9/J14+MQgA!˰OW1Sw|e?E?=k4i8e'TH8wӏU ϓ8`ncJ*Gq$>:XF|HDzC.|tD5{d'(2t1/hoA3߯A4wN"bsysC.~@bǿ3wN.?r|էw4'ǔ2/_.Sv>?+uG_^k~>g,Xߊ{ƸLWQ-;V7EغuKec9c1zM>oo7w|UXQa+~zg3`?;O9 a>/~e0l=OVq=+ +qOw;S 53.B3x{_bJg)ק)]}}O5q|M]Ql6c5,6f'i}ٙw#9͟%ϛ{2zB_quNzv9W'vDd}X}S#}xީ(c#3$/0Le/XZ!::> !fAlH3ۚLydU' AO3&> ޻wBS\pu1H}P?TH/>(pP&y66w?7) SO<ϻοꥃ3O6}?̽?ݯݟ }̻J"ceL%.؝7G*Veňgξ2_.=^8c<}T|Eo˛`.x(*?de>VB&]Yod{`>,|Qل2 w4fQ+<~a4S씰BnQ!_;FSASG>NW/W?_?/l6Osňv>ۧw??|i?S"o_IQ]I$BJk>9OvgUWo8M^j0 Y>)9fq+%@d:3ϢM;֓={)E|>H*z(2'g#Y >)_qQ|Ƀs׽9˅q%ayG֋bcXg9d?Cįlw/ir{(I0y7pӓ91f ϸTL}dg(^7jBw^$ǫcŏy=M "c/v2;D`#P5}v'_axl7_9:7?~x_4,Y~&UZW=~<ϛ:DtC:)Շnh Yߔk!Ј~EgQw'_Ywr tGv'Ś_Ϧ-~/o?Tr$<]N'(E8=TdQү?#㛳ONegbY^^q~uwQ5ɱE?IOşYUnOߋ||qI'( %lWçLj$I;')vz 1v6#,qi(0yjc"|>+&,ⴞÍt1<8Ɉ"]9}L>&g$@ O'$A> xZ,7P!OڙBa;7K B"JAm3y?tHNJ$?.1'͐]w`=Tg. Y;?6K7Nj=1eVf惣yt|yNo,ǣbzBNe6V|i5_g߃1ŘggBt|Ճ+2uy> {< nS}20l邀9]G \{bpsc Sxs}M/X1Ez?E3c3'w3.<;οs~;f8?=\7gȊW,Y@b*44{j?ݕ}ywkT ;n0pTo?Tq}K<%óU&}f8nX>W$?{ag/,  ':lE&`O7FϷst&d90w⸽X1W8Ɋbxi;Y;o[1s7V2a_lYIy=XgCN~b?t>(4,x⟂擟{/a38WoA7𢡄~Ƙ۹mp{mY)̔(:Ov8 #~l>ꓞC |4@G#cxd+0gj*c_^I8<$!G &y)"8|;pO Y3l/] HL=r}I}ʚ, DzLaÊF ,ûBLfNI#sq4+\LӄڄߺX7Yc3[ݏIKzcocy;] 8=w?'yۻ ?s?SxO'MO_s͆ ݒUxV{P_G/˿ƶ'(rX|wY?my؏͏q3/Ꞅ8 I`,3D"_,#?h{w_f?>o^WkVb/W/wsgsc7VNT}W~sYپ1~u5׻wmvb=}y|لv%Y]_PL̲^_Q<|L`($ 7"4"::?Qs0g\]Ly~UswO`d|E#,\9} TcH?}AGt# Q3 $r/좆+ ZϚ@I6]Ne. l.9*<,䡅~lR%ӓ*tf;&|PD}G,gϚm9s_?|~VY(ᰜ>?¿K<|O|\ި<|YT}"#Ú~;8w{.2ϛ4;3p=uXRDvEK^/"!:0P=}4Uc嗢,I??1fxS7C'q #+εHM9,v,z枾i1՘;V,m‘_;e_>Ob|sOtzv,?;{Lz~/wKM;Ͽ^zdοzeOV.MK /ev?YH)JV8﫾xw)1s5SJ ~nMPz7/oՆ\Sn{t ˗ǫˑ9s⣈'^\W6Tfbd_y|؉qM| ٱ\/]}VRFJEZk9w9YLiKrXpŏ]>iX,d;O*;?_͹zېw?G?}O{O?^cwY?_uc~?G~xa9e.v;^f6o=WyzY_x/qˆGIdŘ ~hiaȐG.L?Y,(yxL~;˙</3ǃ9s_PXŎwu65<|Qd9}~k9kp#гI~,<^X~',|gxo9毷RxwSxk9o6a$bR|٘/x:rOC_i#XONjEx{ݞU7+?ލo f{g,q=6`3RK0M2@s;^ O$߲̏I(D④ظߎL>%g$@a9ʆI'pG?z3u`81ݓ?v\h; \DqS6g\I,u>ξq#ƿҙ >I\0ݗ&m&` dAu49 |vag1?V>^u죞fq=_DA4 "tCQWƋq#'0;4A3.s,韋&Nx<<g'ODÌ%z u ㋜F&J3U'G;o/wߎ9Hʟ$(RqP v3;3=ʟ*?Z ,$nGtiU'_ozǪ&tx}c:\^r?e7O6I%03,>vY#SU qYCkB>3osd0Ɵ~zgFY,ۉn}yw<^$Ր|V(@m!v?Z?GO?q|Ǟ23漽p7Tͅ87UgqCze=?ɑu zPCO /VbTx'<׏v^疸w', `>(Ij|P.^a8嚼؀FxO͈#u}ů-h0|yrϡgֽDpRKrl8q?ߋG0kUg^"%AsDg|Cq6ߛ1g<5ʐL3rzleޏ挠>o3CN6k# uϻ# p s?lŏ}Angˬ9{`1睬rx.O՜|{vU=Zwb5{Op}8H=y.xOW7jWB6^=5:ڛ8~/dՓG|>.?ǫ3a&OM/tc[ɏ,>iìl Y oI<`'ߚqb<U!A1Y`<|#T!2&y0͂d^n2˰DC.~*"L$3l!wMGٙ'nD1oT׫HėM t㪑GQKZqs@/\tSN7v#xl]srL.7栲 f]ٗeAROr$|w>t`?׋Iezʟ/V\@sh;X̞=Ϻg\?' tȥH֝w`<o(d\аZCX4'vW]/.x)^^z|\l?>x/v]o"7{}_b޿]_Oy̥/wlwMB0o/:? ,k:qwSG݃K7<|`OH_uvAO㚡(f~~/]s;FO:{\o:x4>);}sY.45Cx;r>gtq3ߏ7x12%7gH7Ͼ ?CA>Bh~7/\NT}wv2s!{/9dꩿ?'Y4\8xB|r7gIvda s7IoJ8'X!@|hJ1`D󉬉*yyUg(n,胠#vB}I %\rssɳ,-+^ >igIc?|}?ss?q /ex{6>a͟g!=<='^I;f$^sUa]H&ȿ}6}s%0 0,_? ㎮漑/7}$S. ;d$s͙q*xgŞaϞ\O$j28f&yV0A1F^;|ufEg$_; Ǿ܈5}X{QNS$n^NΈA2xsH=?+TF"sH菉PTFxF8 fW9ȌGqT ;&:h׉sr!"ɏ=>:FEx`$>OV}E>V}eA?z :^C]U}\uU?"C'Xs6CBƽM`)1tGHyng ×z=a"#gt{)8껍z5 3އ,9X.OquX}G7yUX ebXv|g?I)wX8g!>{DC98xEQcdIC r\ Y'Xzd(ycPC8n{?7#\߫qVyYJn3K:?-c#/${ppO㛤xĻqTv=r{#yy (8dϿ9݂ h ?+)\4]lٓ+wwz|XG/>F_s>cWyxf^qc&d>@pI,T w.f4G`ݭ,={(A-5M׻8kf]%&v%xl> fur8Ow!.?N cbw|C~߿dN8pwה7q/|~mޜuF ~0؞yt1)d*#SM|G^IwA>>ƥe]DnPt7i'o(g}~:Mwd{tio^lbb>^2ǫ;[9W{Togoowݞ/W?Y|Xs{?,˷\w_.c޿MTy9'¹tIeëʞs,'#ϚUUN MaQfz2޽Ue8^R=חO4B9'iy\JP&>9s*;=\Yi~lw᏾蘎}W '+sh~,C#ÐɉGy2?ӟdŗ#ψy^,/+~b5WvƄOWL;6b{ՊnۯUe/SWq۟3:ͣ A4|s^^)NF&s ͛0a{;]S"gg#^QsqqhS]a/;WzR8|:&#P~tMRؖnH]?m7a׹p_'ctc?q=^6NjbonG0CLmlDS<q_H3R v{{ʥDQ}\~/-&%{2L$|\ =نʔϽ.z?7{s;̩#@s,g(#OGo泑?O]}zooPvvW±㋹fϨ3pg泬J;>o&JHY/h{qq!1w`)90xOxNM!ݲ&>K=6w|49\R3g;YKKg]ٱWy|̛Q7>?7pgwU]%pCb>r;w\J^XJJ@݇(V1 "fA6\φ2;qR NG8<<ٸ;ד&%|2>\;=Þp䡝F> 4evq'\] VyXqSr]?ӫ3;Yİ'ht+uSJ|8pRz Qeq3 apxgW)1׻<{1]Gx&a=_?vMr,|_ؽٿW.G/_=u~zܳ{)\߻.ot/?M|sr(T͢{P> ~ll/d8},y6?X\@.'D>3RT;^x݌,!]1$A]j&k? s8N[j<fK/:q՞B#uR,DU|ٌ݄?}i\9ӿT=#9kgCt.UYUz5 P{/3Ͼa: $pۘ :{yV:"\X݁;ɋ$tꑽnm|87??ݽY?;vYuf-#|_M]%n#)ȏ*dϛڛ<\[Q{'4o^=Y9H>h<X>j/(ȍc: <"p 2,I=hػs̀q <~'|wi?z7c?6%73,XN+0Wg]c;6#P|^Xׇ,Mx{ϊ'1X@z09ɟ?"p&԰u57l΄{2C˒w_0gy"Y p&8f y>!8Lj2;3=teրNZ=W#L(8B!O'_!c-m}͗J}&|OWilnD'=WV&Č}EP C?3lDrcs&&&3/fg5I짓>n,LKYu8?6$Zd{C'ş'?-Rg0\^1}qL>I A,I=O]՚߫]|ow t;NJV7y?>/x,,̽ޫgɗ;?{?W.'>83h"d[~UK[*(F{/漷/՘%yVcGQ/NZ@*?qϋMʜGy @w=4,-#?W'>lw3)jOy9D?#Iג"#&!Ղ?篲}c6HyXxJGo:"3<| x<=!Ϫ0{aTDCa~?~j׽?<O6;gYg'Oޡ3Sw'y獤} 5^#q;ypȦZC)O'.| CRa|{sN858{b!Ǯ+H(t殊yq7r|'Ed 9Im٢s՗rr-ݏyQذ ח?Ae% F3cjTAGl Pb9t ")?Ӄwϯv#Cf.\izO3zHߋɽIO͙Mo?=W/w;]k&gc+Ոoy?'ܟoo)wd=_*2_ygH,Fq{3XMg>2/ {j'+?Nj ,4槓=_6~IHxq9{psx '+&3HkN')`a,'džl~l'f8.Q%udG< =rzϖOSY?GysĜqyK#e Y?1Ӓ0t_ I$͗qPA*vog=ꮙ)Jg\릎<Ǯ[>o*:O b(7lpUš%ϩ4Ȉ-1x׀?$/xۥxԘ Գ휬>}EOļ~7'vCUqIu,;39`]y*^h,}X U1KDO[JFY*C5Y5\kE2^Qp2?Wҡ8Fu(2|CB%NzDz + g/GYVdjs:?pJw`3 &`4y6gg qKUfȡ/Eϖc~qb>yV8<|Rh?^D2_^T{2}"]ovdЗ"`ei'<~O  9cbek |o? asu~nCx8)|2_TW!kkǫSC?l倾a뛡8DwԪM|$.'^*KG5̑-9+wμүu>R`gomHv?;zrדI8_7OuVf{k?{uM ՝sAz:s?]Y326A>ٞv?[{ vy̚Y+ ͖9Yyϫx'Lg|eb<9"'ݚ^x2'#Gc\v?= KvU\7?ň\~7aO!kڞ{^XfF/xsډ oQ'?ȸ'>\< ><;E['Q8|՗ߚD?~:̈́s9?dGBf);]~.Y',5鮟b&\qxAǚר ovC><꟮dy꠲9OCzb>}lL d=g{$˞&F!>f0J|w`0ESSqc깁qwŒn|Dy9JJ!Bxvz[ĩ4- `AߋϪzR&/$s.J7B S͖gX:suY\?3{Kt>hxR#2O}8S'q ߮hA~h]^1s/DyՎo7Oԑx:u`tbSY>M<y9Nu}3.ՔS~V0cǚ{%>fK͉g.Wg'_@=yqg~"T<@\K$,^>1.OI'?F!'qDq 9pAS0xcT s9~.<1Sxl4Xx b'CSuY}Oz@gvsy..Bqxs4ꎜo3W9p`z}v9,"|șۺ tsI\$X_ͧ/#RqC ֑KѻLǪD~8Ds)Yg}ТYw>{(E3?qsyD5\L#Y҈}D#_ ΞNijbX%My&T\Dߏ>]Y]Ƀ1Մ 9ȄOܐDNCHX0x/7N8wy'|47Qj0guӜ\:+jy,O.:?"wtYnvr$?/U}\Ge>"3٣Tv ńG\̌Q ;&qw{?CC戬Cwy:ԆY}MϿf,߾6i62w;:/WoT/>sWcO/1y:O: 닟Eٳ;7?׉gzo_O8 ݞkz|^^?[6Z(JMYU>~:7+/c}=?c\|Y|Wq~j \ŗyFu~z/ovtlgc8J, `!72?1 L-\ӎ) {'o$ O8~%l͡or_(}ec54D#NY%^GCGdư>128ުG?n%;?DQ3C%1Jc_]87~7G96|r!Pgtwwoo/C?}eyG՞NX@eRp8'1xl ]D/Л !b|M>.  6ۣ/E牲:i,3?Sz:cwמXzBR/W:aҲؖ#g-O7<}|Rfg3c_)x:⬘K6slNb8<P4%xbfIwd,NJgXro.@I XϫJON+%~+}DŽI)ya~@UrSqQ &aa?҈gE>kW?6]4gow﫼!sOrzgL\7ПW5wY-VYv=ٯ8Ye?rqz??ōWϋ5gsۖxqzzti^,=y{<_z%?|>:_ *8=P㮫,$L5y3Fq Fó׉>ko̅2 (Ē2 I|GHՎXL8 E!=sg];gt@Zqv>v6?^GʜSx\edwI8bXqR2gY>:C՞mXՎ'N,;'_sqc}MFSVOxeYV3닌&XfHBzO Dl f11/H xO43|ЄG)${DlĥS XU˭YXȞ3$',g]c gA_=uc`—A- Ex"/W?y?ή͋K>_U)QnݑOw7%"ݞ/W+{X~o{#M'Kgϛ-w~o7[_e8q;)SݟY͛5s?4{w?ؖ^} Ǟ*w~Yݐspx{ 9ޟ⤟Y?<^\!o唆;x⇷^j>j|sws y'@}AFwO(u$I*=xvkdTD>ۛ3(`*|yOc|zqCǤyn:=^}7L3א5gՁ9 't-)?CfwcOxvFJ^\q@90?)G}#N\dg"GsB~xs?O&g?w;2leC݆*؋&<r:/a=qt&9\;Gi ]zU yԼx(0w`qcځxJħ~dY/MC^^L0 ׂX>Dsq3fr/5Vgu "dcԉ3 qd8WY saMVb]AOGQ<4y?4OqھTq:rzϊʘV|>K,'Po9\g1t"saMmyW^|wC1 ^O}YJ=XTϟWⓈ9∖^ih]|Dwv"WG7:<cGL4՚%'#} O 6p,#_~y'WCA:?lgO#?D[2eXpu.J.,3w{>nqnO71~ϣA$Wy1z/\{ٽatg^st|+7,7'Mo m^/wxd?l OS79f͝.M;e $G;Cy<389~_w8|Vzk5i6wpjMAt^f_WF>*\~ !OZ)>(91TOz~K'(>5|=_Ty传y~x&s38'#*2㇗{z/'1D{3gH;']cMH$ %5H-G!.xgo`4O[9!@{O>{yn0f\8~h'|]`^@=1GT.>Ie(ug'gwqg;)Ct3c$?dMi)&`?,ٲ+&?}G{wz4KpW@Yd;"=d|AghjHyKd8wvYXG<4?G}?qv DL]}T8ǚX;c 2Œ{z,dž&W՟xkqx€Fދ~.\O><\$j@L^K̒Id*PڈtwVzY&ퟩz?&lYr?1:7cwu'JVlWUٞ}ݿ YlvXkvx~Vvvg,/_[<L?7?gjs⋔LE¤GX;\s,o䮡XQؒg14M (fԗ4m^;b^}FSb YxW+3wVRLS9 x]RhBv7&*6"_ ٱӀ^_W'^8?s$zHުiq?$K3^V`݇/#v&oN9_{_ٿS?_lVya5jiSVkw>W>8EV EO𚬌?<>l^q>'ݐo~Bϧ>v25W6xx"dr:/fY=,\D>8CvhXfOTa |VSI4b1 GK G=SG0RX;`~=< i K,=tlW2h \ `Cac8uC&z'jg>3ow|saKՓp&>O͖,x[\NﰞgL` ;v!GZ]7?~)v.\t$~!TJߋ amS c^|QϺ}E/LY>Nor]doC=zjʥWG^n5gl=3e֞Aip#YV}-GA~7Y߻ן{/>Y=^VR]v|׿{r"&.&ϻxIfyy۷׆_Ve<٣g9WZ_^|J]k|ؿVo_lr1}6uPHF=T<_"\[ucxy椳YV@#3!O#k:9e݇_W9R=DsC\uR0gď}1ee9Q c̘Jw$g0h LjJe>KPY.xdġqq!H} sgWN `q/D3YJD,ODđyCX}ysww׫h63(щƽ_Ǜbnɑ1X@puK/~ȋ9?#|ZMy=TLn1=043\T~_n9d&9/0D8Ano3&&&x=\LǗdq0X"f' /#{؋COV_ɾeȲ j],=W7ع~fg/ F6O_|?ً޿Ӟo8XKz*ǀal GYps`:ܼx˻>؟7U<]DGK@ҐA<)#~kQ|tẃ)&\JVHˑ܏VE㐎}bf" X_U@ ܘy >ӷ{#wՎ ){60#?vVrU/_-ݽVc|R&!d<G͗$q℮2! 썊ANyx/Sf'X8ԯ ='5^D8ŕ$;y\Y),? ?(]nb&A`ݕA3HlP6gTs~S8ڞ_ G,BwZՙqwi<גG2|MxTw4LWg>~v[]:ӁWޝ?]w/ݝٿnut6O_B}WwY#?U?:_Ù|K{S ՜U,jᄎ+x2q6\?]pYxL{PD7x <'}F?fsC5x/#~.%,IIgVS:3a˃|S^|Kx+>fWrt>Ӗq/SsHȑwWǦ*|p BHgc:7D~FI7HKϿ橪OGJHrq0'hSPĞ}mv?Cglps:9ysb!'zu{g"oS=XCꃀTq |=w.\?4 G2ɜyE',!o2=E<_h?y^_G?&$X'a;W̶j'#16F">y͙U`6Nw' "8TqsWD7A{w|L{Dz `GSy=q/987qAډ |&KcѾCtgd!Qb?#@t~8GlD;HP͉s4擔K|k5ϊp_(겯s|ׯՓ>&wl.=]/b̗$py̝Y'|܎d7xi?9z[lӀ⯮7|:~yߖu~KWyŒ:'<ϫf{;g+_jsdy/YDq5l֏ܿrٗ?x,Wd߮?v0x?^nkRx")}\y1걞Y~,,^oXGf@9x/C|^.> f2q !'1U6~Wqx}|a-f,qՓL.{Lr>#O\q@{rq9dOMAxt~"5%ud!3AW ⃮'QƱL.IxUzM^>p̾>)> lB b>4($;kW:&{݋0njvT8}wPkKwoNsNǍp 1ߪp=ņ>y^)Gg,9$^ҏ>?8ԮP*>y$o?f25?p3wB'@c󻩎Igoғ G/sʔ#>/1A6]]>St^|^|XS7f+;&?׭ILp/dT2fyX'3VǫyI>/t3"%-w.jxcߟU>7Z=G`2w5G8c|Ր3ęrc6xY_B/lK97=٘JD^T,g1(,.Ychuc,q7<Ԟ/(r{roQr\"cdםw{cϊ1_/b)HscO5?jZszM}?ϗ폯g+3iS?TO~f7l {$şuKzzvkF2]ɽ6JWuzDLӫS[9[9͟ٹgszٯzߦ7.N?]\w*p؇/^8A8Oav|y)YOUp#OXAя,bEOdTn]8Y?/Xk 0a}mbs:Og;u=Xw{L!wO}1z#|P8ZG1RBHO>ˠkc1{"pb&' ˼+wZM׮~n@oLmA9mX:O <>GR!&os>@3=y,rg.wI= qqccT9!lRs#3HqlLyvRbDxY#<Q$%Hwax@~5ІbN~f]ge`f1Hx{沚JyѓM{Y֯j㚽sYТ<~XD ª`\W`]ܑ7&x9f}٧;]qt,&rBflo6u?LNf zxsc`ѽ^z]-{y;c?~2fgrIؗBE7c~|/g4x8nD7Hv5υW͝6׊|~?T}ϒ͉#~9gg _;/}_9fo]4ȱM/W7w1^oؾ2/to_gofq՜;ٲ??=\rYoŖ_ݏ?zoVg8<͚g^?Eoy?y|?+a~#߻.M}}^UYŎ ?򻟚G6I:=WG1I~o~ ~,HaFczxKo%c 9WD2? I<68Fx}\@x]w+ԤGfl(v%ߏDuђax!;L~)M={f:{1,~Z:fkS G&:z `gujr,,] _碃9~ag$k7&jK;uQ菺7 3#?1>®{gRugGbgy_@VtIEGcpHjl6~|QzN$~އjXeG2Lx&BQE{83 ȍ5;zb3l%WLP~\rF?ڌ٩l l, hp!'>lC["rkLY@`DaPGA`.*' Ոnz29,ZxjA[<^X5`?_W\&r,3_~o=eXo͟E9?RMy>wgV2lYى/_v'i{?盾YeYjW{hgswr)HluPxran9:`lMhmeg! 狳ޣ~O<|RHqNmuEf-'Yyd~,?*M酞+4R@Awg ?oȫrN^&_659/)8F7.Y4'O ;@ ?XeO9dqkxe8,a&cs+IjXc\B5<ބnjbƬ>ₐ4|].}PFZd,G{f9Չӫ S M~: VQ${t=łWvDP ` ?!15r3Yxݤq,yJ鏈rvDsp*!Efw:(_;0uB˭&)G?\FNnpGXgݑA;Oʹx}WCɤ^,?v&^e&S~_7qWݛd{gXYDg/ͳ߯%?}*xuZw)z|%ߪvc;*ua>oyq^"t?t iaJ { ywO5U u>j@wDY#2tI? 98/}h؛I3|6>" 5m?gOm(lj\kd>9DEO~8Øc[̿^}S:[1Wv?R&f.S/\V~sW:MQ=46 _{(6?|YЏ?Fi˫G1;b942+9)/!nf{~/ayφ]OPXuv8d ♅S6q7/Y'ht'#?k6]q^ϪFwSSNwkks{6 Ue]?rɞߋ>NOy;4y}b+,M Waѳ~|oudG?\uNɎ?4Z~h Lkv}:L I]w^M;ň l]҈8M,;ǂ):8׃ ?z}5K᧧w!beSbyȎXCh9:Pda Ia=Qm8D|?:o[1.wg-A]|7sVG?=,H>QXuC]/33#5sH9V{q|Tϩ wa.#̱~*A 2~TzGRG:`ɧ/.y"vM∁;=VDGl /%~6"H; S dI$g$<ݕ'7u4y՞'ɼR`,-؟}ņdoDwTI?gIXG'.Hcq]Lɟ@Lɇcsd3)gFK ߚ,?u~渀`xwX:LqOcF;Ƽߡdk4g),$q_GǮ]È79Yt-OG`!p`iBL( ؓH՘AgXs`t%y0?4(Lp_waP2Bɱ"< ͂I;?U>w7?!]8?u52ce0yti~c dLgᇼA.y'cV: qR#NNpIQē{9l =xcYbfUN/\/tsoᱜuyAAg9KEF yqWO402O2y]VVqyӏ=9P$G^׶ԫ=+p&}nw`5?&mӨ\:{ čȓ1:z_ٽٙd(17I^>/#v9 N+''uۛp<}ޙǻu~MHzlcv^lĐIO/ć(7T~"*!}L! OK%VN<' Ua:$Gn xttBT<}}\<}<.[|3F,O5(QP2Y{^"5?;#zb OcJ  8;r|RmHo\Ëݞ,,>oeؖ}~/ M8=uxNy犯|=Vs?绑>//|>oW6~?7熳^{vOƔ87,U?Vw\޹}œ#wݚM>{߻+>g7|gݒ{5۱+{0W;?ww#|Y 6j~,kl#<vtsscvMӪ8|tzfXTYzj8|o_w+ wj߫?}bvv<߲#nf@ybxx&~]?`:qzO&9>syCf|AG? Qf'das8,g ٸ_,w`<3Y;DLppHsή~y(џ^$ߏ$q5R'_˗__鱑G#z/+뎢|o+WdfT,xog_57=%=+몭olǚyV-!zwz/+3CIɻ<(٧=WVgk<Flˮ|yM\<^=j '=b]AⳎTcX*GϏJ~.^{Y~ipH ;w.u?@G2O~+Ϟmw"ި̼˜6eBhxsU<ܘV<3۾\]qu(Ǘ9ݓ'?y7<vg/4.>q~+şwl"^>o|RE#>oO4UuxS7w͞'JrIz>fw]eKW^YL՜rVɧ͝bW/k_]j_'96s/V ?[?+|4db˱gO.^ѿwc[͒^}V. _?ϊ;ٳ{ۑŘ[OH215~dg XقccX&c4ǂ6Y~}'i먯c)G*n=ǜNsu<j9Ԏh432lzcVu =ɽxߌ?f^\i|׏y=Q񆤛0Г|(LzecXSά,܊81_Xp('bݙ 94ev oDr}XIy7xB8U닑vQ?TiagEdr䵅?DA, T#~곉g,E=Ie8_zTAzGlf*O>\fP'2Ljg8.08SOc.>er~*s/XX3d|}n|e Wq=A<8ߋ+Ss늦dHS=/cklǟwp9NgVoL:!D|v&hNx;\KryLn Eē>ۄ~V`|6C\e[qJG!띏F}71R#I,Lm^+gv;=1O~iv%?şc..]9\Gsw'w.w[pWf'3ksOf>60Iˇwo˜qFc.M]ge͚5Gٳ߅_wŞo"i'ϛ=<=5R@|é8oY>N<߫rg y=Y: "|U,ɒLt`Ոpbqc"?6qjMSeCx7ˈXϯ~'_CiɎ_{tts+KOjAcqB8|ߤJHnw=RS4K$;42b~kqeqx9ʈ߯;|s̈́2b#8Ez}ti3r ITAԀAת<c>la9T > w !ѓW⾮eBS(698|4/wt>&C8${ ؞yœt<> ELr_Wlw1b'͏S_lj^|/Cˏ=PȪ<}EӼzV(b l"D(x c;͐*OyhbOg4:_{{}0O|.|H?şs8s{rYᓧTyJ=I+y|W|7G͙?=i㻷Xd!Sـ9ZL~Џفdǂ0v< _l0jo5xD~/O}QcN(S(["3ly8?%?M9L&\Gv8i\RU␯A._7+/ `_(n~)s7\o31Gck U;8χOwF87[?>.7o^~wl|=ar]o9sMϛg&5yS6Yy+XJvO>,,o6u?wǚɩl~Հx4NG~ǯWb^޽ڻ|]gg$ӭfy#n6c|VIT:_U׏wZ&YΘoy,$Oȩ S ytD}?1sguc1:GrxY?to<9\}@ Ծ .\ftSAQ,"D:x H~qf#\|\2o-yd'E^\͠z5=7_u'|%{Qd$j=$yH<'ur?|~x8N5?ݕX%9Hf2REYq%#`Dgy_fːܲ}|P ;TGst-Pgܣ736$rkт_x\˷/8c3?O]v6<Uw͗$M~h3@who);lyb!<>=k$4$ /vxq!B uysa ;ʠ 4AfC98)y".$<ǣk9s6?ˎoFY:Vm){ 1v=Sce_T|mbgow6e7z㬼uǝ_~(7~yq닞?ϫ߿/]go/v7<ӫ2q|>tM}C,H\>߳,.i=Y/ou'vV}gL zj*Ys~n!,N"{Lw3HN??~oT IWϘ<^rPӘιy;z_ubS>S{sgGlgf\INj\ϋ`DG}Hpaݑzx6 y>I:c(y*=3v23Խ8oW:&= F&p~l8E!P<A|?dj*8/릻E ˷4?`x]h`o_rެOř\;gd[=R,G~. r5X??{|Vx8ѼG>/vv׺sGW O}Y_ \,,K?7Kh~)Losϫ<7{{lߕo+s8fS͙{GboSx8Oo݆9$+ÆgW֜GxŎs޿6NȧyӜ5B`x|v G/ ǖxh83d<{%wo1y~3vg9ħՄxH *z}xq?1>?ANefdxt)ݟғ9"o$>/E/:|_Sw|>kO"gAX);^4ܞ}cNodΛ? 5,3 %F^b?yNOg8|f߹|uRLr/`g.+5M>ozsL1$ 7FAN>cI(Ng6|\~S#'&)}:݂ l]!4}{1+W#=??1ç{~.O4q,^2y,K̈́3su=60g<Ŝ?cH/U&wQN'}7M|O,FD8⊒UDK^{S:ɑ {nw%,vQƙV'*ďYcfrG$I ~̆G"/Fug?N/-n~VN>(g3f şl.ؙv}gœ9<ݞ(uK_ߚ9 w(g>l\}ݻI+y6=_ Տ]fw~,r;wr:@/ίuwn^~),z?A2%:͜o旜\o<,Sݐ##}u&˔\Y?^v^vB 8YTuQza;w74˩߿?9=ފuGlgq%B 'Y}6z'l#zVy=;tr]^|͂bt~b#tTxO_T?ߋw$7Ӈ >nƽC?>NJrxdߺ8&W{'i6<`>aJs|VyyD*ƚq?"13&sg)]Xu,G<EH:1Z3.u`c=B oQI|CGġXkt!y6N O}qd;O]LPb`Ijc)6O==U^/6ϊ~+⽷<YGFPI{ܾg4k dO H6 ;ygf<_;z|je'<y)D~Q~3,Ƞ&(r& /Q''a>_ xLYDV,s\]͝L\oE>3gŞ=9gR3?7|S:_6o:W-:ewƜTHdY~++ɼ/gH:o1;sX$,DžE1#zd9''WϿW#z⣫=\31) S3t?vty2Oek?]81V}'uz~:gSS` ]牼%ɹd&H̿1d!"Ļ9?$3&yw Ձ?ؒᛩĤe>!?I1GOY x"!=YԶ >bR ;PЃƨ4|p?!jzh`x|g ",Rjx҆Fx O=Kv }SNT>8sݔLuхg$V{ۇ6h=)4llfW7n6₌?xza)c\.GﻋvX|_=݂+luenzk˵?%GɣޟsP SQ#{MeW]8J|_g9}܆%;9|}G|nXlA^ P&q_l쎮޴||>Zѫ7þ׫?'@^|Şw{' w7, ߚ(ss&"՝Ǹ4RgglO V"p]<_q6wH We;O?>~T}*o$_^?_9ǻfVIe'Lb{/_ndsxwXnGF?j7gMx${缧+7gx;W a?v29Gg桭c1e9p]}vy|sqx2ɯG3$pxr!3G:3<xQ~Y=7.7n*KAtvϟ3"NJ$"|>cŇa_kl.M1%~j7Z*=2z"r~9lDLi3߫1I?2^$ /qսostu`3Ø>.͢I>bkHsu\U3_S>dt1HD.½?;o 蝼<琩)Fa+s U~t,.>I1Ӽdxi UG㨏sbYYDHlO%g/X戬/CRS†^ ۳`?pyԂMJ/C`cqIOホw}w{F(i<|ӏݞeݟ=X?%e&=\FSךW W߷W&jssw7O/WYz;go?>0=S_wגּCeW^o?vuœ3%L/]ރe!^2Y7czܓ.|ud)L6Nnrɳ51s߫/u/w}U랿W'ۙWx4{zP??vy6LoǪ9q?^O2B.^9{ ljgȄG쟓)1-?;sg.=gWݖ:%ώI`؈E)ߟjwfrb rw?џ^ȹ~&ck1ׂ,\߿w#N>=׵86|"'ƍ#s+2WP: G,ʼn"R q)땱,!e!~QTg"OpwSd_Bwΰxϑt8(1a,c2}_G=?u&||щ?<,d濺?ɾF|oDusHdy '^_ d{ϊC9eL 5c~)Oo0~VEOewg) 4Yym`+UstbOS~̓"gG=e=zWuuyTPsn]wu~a2dVxT)y&yjCp_l7K'yf[Ii՟w5ģoiҶ|m]Ӯ)r̹~?5aO:DYb/l0OLY_GB}y,&۳14M׊ȼ:lM~x9i Fuv͟Ce\獽3iD?,`7Ϛ|8)Qsp:"K`/mp^,xrGݿNxwl3sHƑS(lFK|X0l~8%,!Օ8s!~6~@~VuZ@l'd.9`1's72`&yɨ.uIx?j$apxWsp!$}X$8?ɧ'y&ߌwDX9(u P!㏺<}9`r~;o1}w=UO1r8%beHq"yT>sE?TGךr) DՂp|g<Μg|> }<7?ƙyB-rZaR~:|wq=^6hn=~6Ϛ͐8/v2g,#jşu}O{k3_u_A 61Hk0'~\!`wOӊ,e4A{iUϫ$ۛGŇf4q]b>l3sgb}ݓ,oMN{o૿OY<ԅ#zb39zx㋑ve}uI7f Ve1wdIfK>Vpcos?z9?<svpqsVy_f=<1"~%8Y,loR'S&Qy/weǫYnt^gyt#Y>,,]ǿUk)c>Ib~L~ҜIwQswC͜W>ɤ|q!?7Zx6sb#5qǭ{c9ر?G%\O}W?b3^m=w7rf8Xw^r8W#qdypm6+OIS+NU](JGDnvO7 Y ^D=XB\#ܾv"P i ߓXńy~jzg=/dAz@gNYZƎj>|QPLElTC+z3o'x#?VXgd~槇w$Yx,?N2!Qdz=/Ԥ"rs($œoϏD$p@pՔD9Q;Gǫ]v0E3 L"J8)|_'3@Nj(&0Z?~T;g,|=T:7xd!p'2P9YdTNjw\o'AR |T27v.qIn>w5I;_|R˿uNQ_,so"^|?&:ews4sf$,V^vE\|YVt\_ht|MCs#Ő_9&\W?yO?E[=ܛt~?A3 u]I=~3lMbJ>.cqѓlP1?1Tr"BCyeԟcc-'a= cv?G>ۼQ܃_09zqՁlOwc#}cy.Տ_?͗n,ezwW=sR.Yu\:JstrOt 'Nƶ&%8=ו 9܊G?3hd6c9mhn$bxGro}W zOZQ,aL'pz"L z9gݦLV"~J$?(/V$iUyvgbI)&^l4S?~^4|xx?QT|߾/\6wo'v~^|uŔ]kT1Ys\:n~ @?W%ެ}C#l'?` e:gwgލ7|#o=oN;7G9y?wewgloݑK_X_,^{O:H/F>U#Pqf|ES^y_şE_OꋐY_U睯-ig5uG,bvOTW.\ݛ63c8YOw>omxPwv͖ E?GS qBz7GߚC|ݾz=aq3f#oR~ok5_O_|SԣǕ ^6ooޟW`XQPtpꑿB9W=~JA⽲L\t~gYwqq<^^svy+?+>"jS94yelB~=Ł1Hc=s\O,>no[=coxn@|Їi"|W>|$l~ʰ?v"dnfο7 i(gz#y?I jyRy{!Yܮԙm>9WF]W+ ?zks 7v7'߻?wg_՟Qs^s6"|qb_6ygerix3XVI9,u{gOU:~`相\7r&{?k/?Q>?3Vo3ۛ'~s7|Yrf<|^>6qaq.X'y3[4xϏaoj,ldL'V,rq9b_6}[e)Ƨ;XM~yř *3~ˁ_HK^yF<?T|}:#Yco A߆[_ |ag.v'sힷ\"\,Rfgz"HAɯn 9R3)uoQH3`7 eA4MBo~a'/C]Q.ȉag?od{R$콼ʗ"u_1";_wnIϛ(#F Ly1`\&xT4]G7g)fyI66i֓=ߊ8ךΟEo\Y_7μƹzzJeςbx.Oj>s.eww͎O/ϚU?,'0>3V_r_}Q;*B⑇K"|Qh'jGoWԽIE7d7h+˺n!?/&1bF7nFX>>iVR$W|9)#|]~>,N.̿1>w=c}NWO^gqg) 6g˽onWszgO>^/.]+*aL5άʼn"yˤo>c$?; oƔdrfŃOv3W%8'H?OH5݄;Uه柏˘ÌwG6e#WG|C>T 狭bxE8_񲏊ڵqwMײ'X*gǫeDǟT1,=GYFFsb9y;ךA 2k!^|埍v(vccg^J8s?ǫ$Ƞ|ss^CIq}X&'RQJk/{\ݏM}fX,?|URd$o_|L^`4x(+=T#v\}WLez~A9SQ<~xts52w7/qd$y|k$'>=LyNK6dI,C6H46nΕ5$I^ܬ~>~/="sc.ztVH?{<Nj`?WW~_S~6yR=6?w{g\g^zwϫo|뙛Ebw|MCy|WsȲ7I72}yz3#|'~vOx4> cֳX 2}`H|g#[R8#z;84m<Y9嘣} ?Vw]ӯ/6fUc,ϫ?<,7qyo͗:Y[?wW8g7(}0wڂ|Lğ(faM_~yt#pq`bco?vw;(FdW׍Փd?L-'( B^z8y̯;c||';:1"'lΌOt?H%"l{:gXǚtxz??Ϝ%>/y{ .^, OōNz >ʼnyse:&ywScUpMy`/I37՞tkm͞~a >ş0s)WS~~kYe,xu{?jsv;(q9\7?TO9G?GsuIosytxgy?Veݯmn1p26닌9>*smJ9ۛ3d~lt,wcjŒ?kJosɗ4/ϖg/eO_|%aq_YgjB>쳋izٌHCzˠϏh^ߊ{R=^7h:Ն$xԾfxPwgo.|?/łd>k/}٧N77WzwLi:?D Ɠco=w7w>|DGE#y? }}.!%ywЈg_HRAc1QaInp9#y3?qTH$u6I*ϖvjE¦\?L!1 =XsV`G|\^qqW#}YLq:DTj˝_#vB9g?ڝ<=3o|'c88i.!ꊈOqޱ\OLJiZ3T4_(|xW&~ld|莼k$cp\Xiy?A_؋)jˤ'|܏p<03W'"|/0Lp{d(|P=>)<~%Քʻ8ilpw%'_qE_ew69I͎N%,),1ߟ7{Ōc4L4=9vs#?>e>)I8CyM˳M|^W|%sdxL^ϔNTON~;2QOE/W?x>b<_s$e|6aHFGE/*v=D_cCfݖFwL͒X s8޹yAcd 8f8y2Cfÿy!9"kN,uec/ܙ r7drl3}xɵr㶊<~(7 |xœvG|?>Zq<\ϻ;՞|vEa<|Uϫ'/wzߎnYogkO770uJ3}mO3Y)țY /)sN9D?λ{;qd|؈l34IƝ4F}^&=\!5 sk<'y#u|O:Fb;s}}79{띢R՝8>J|JKPd&A8WYX\m q,>abC<sϻ). ݎ{'>}v!y_,7?o qWO0"^Yx q7ǀ[d|If]?ᗣc8H I=CM {̑o5_#<t~kM*TCUP|ܱ٧C1bœ1qIӋjk|/Ixzh oJ)wur4J&G7|z(qTNOŇ@Sټ?tτ(7*Ϫ&kOqx 0f㮛t5Tzy9k|܈vSA;[!Þ<늛WZQͧV񛗸nz|4dX62gw^#o=sg/=W6gvIIK_XGٞGd1/<>I\73㽯ߟkp'B:޿/I?]޿4Wg~vCk/lg.f=~CsdxTL>^ws*ktyǾ-d$6vDl\bw2Il~o2N[?>|;9x>=^S3V|-{+YsciY{x) 9g4?z'8uOݎbwopsF&:qxo@_׳?.G ?H|t'ŋDzVxs8 lVvbz4!T|Dc1{)='K?UK>kVx3qS.Pfv^y_/[&>57FD,G/K_[>x(3]]Av%;xwS?g̟>;~,yIA1=Htk5ze ܧ 63|Q`CI F^I5 _ /퇗/r7ŕQ~o.Kjn }$w&Wڰ˘P%Jܐ]!Ȝ{00P"Sb{xz+*Q?}<$c $L>xrk_WcHuOg-,g_{b_ŏR']ɨg͓>*_o9'qx.y^_c]0?W|{ϏǿBM8f?w󗲪,xxLV}$C>ݞ /x%{8I#js>?4x⽟%c&8)מw#OuIz ~kϟe8,Y垶ϙ9*DAяq <l;wgϛj5}3F(ß~yے)Ea=^+ϻ/\g7fd_Rgc9dǎ~.|g;͖?^yN:WכyGïO68$oiΨE|_n?r_r&E?Ui*oKao/ys^KˊyK$Xx?xqd^y)ߛ_C-tXl8yO.xļvX\Ryȡg_{L'o(n vM S=iLxaeq=Ov#@Ǘ2lYp&ļsXs|t~8lR:[~8DnгrVpOÏhc#8n!?yS>3}ᡄYL {;w.wO$Ci Py|dpODqvu~PO7;aA= ǖ<&<7wsPCc7 yب$.1|X%E25=#DtF Ozu<=?W z3BXo*|:(O+Yqby95pGVS{u< W&\wc՜OU;38>=q7 'E~)2oT3T8jXnѹr zO|xψ.l==T&WM]k_/|Ev7 y&yWlo};̅_sw{ |ɘH&l >/fD7V ͔}1sw;w鋜=ݝzwV6_3VcT'VW;{ROZ?ap,ݖ};lg#zK6xK '^w?f?}o{Wqy sjg{"/N<oILK8IܮOUM~_3 o 4qȒ?6Q|VenN/62`prry6Ov_󷟦X^<^yc~.#\0=Mx~3 ݬ?>⢟ˀA$o}]y~@xd`p;襁R|sr`< sSg}U5OR/ /3yڲ+IV ~h>/X򜽒sYcN`x"(e|H뻂>蒃gpۨ|NOLrEE3;m' ^_P=\y3y!N?h/r}Y sȓH}e&=a3V!/et |~׼&.EɅrneCoysg{|Nsg)^sS_4Y~屟gP|S|̤;Ռg~ őqWRTs_Rl߯^<]멿W:_u!~,O'W}x˿W͙>ىux7ﳹ{'we'߿b3;8W/Oo6{϶lv݋ޜ^`XXxfT=AwN<6^9.;]6l׊>?nN:۔9z9}o O?G3?\f].{]C}M>luu?>>b&dqg'7zǪussך~7{]Y Sռϻ=͏l&q}=#IG͞lՃ?WҹK?3o.;!Nj\sߟp>"erĢ",p'qwXo|~w{8IGLœck^z]}븆+<9/˃e.ńaF]yY"Xqb^x/ߊT8a5e.5Y׶u2,::xF8H>~r搟sqk]|;F.yO_OvI0MϦ'єmil9!ys#i=u#~>]G5Dd5w-;eˇ몦6Hjy#4:{luXO?o{}mʘ1]݅xXoe|wq~(Lg߲_&5Oػe9kٹLox꡴)wXv?96:)۸N'16Scucg5Se <?Sc,LWj`]ŝn)/3(q5>g6a?o;ߡǛ/ՙCW>lk,9.c7 4s{#k9w$,}Q,`rp92ǜ|^ct;f gLgݞag[W((x|yD?td"r̆y~f'0ZBr(XIߛnGU{XUο̹uDu?7ԯ{LYg)̪{Y|iֹ `].2~/{=q|k㙟^,DL'U9"˞'.̽Fc]|#7.X|^~f?vyqd,+/Ŝ͟,g="E柯R$S㫜zLt2?eo7Y%ǔWhLLOb;L@ W`9唃 5?&ש,Y\^Ygɐ?T4 `h rpxTb`)#f@aw#`|_X3Te3ugO ] ٩,$M6p~(͙|~/|~,>:{# .?+a7ctG8,!ߟWy.+<\gWyR~o{a4 W9{|{9Cݜf^gGokT/;Z{7K BEyt{O4D|YI^s>)^o4|\f>)9?'?DdGx/3unnY'/v!zW}OwUUY P_^<u.>OQ_?݀h}o=~.G]A;wI9Ō<]GEW?1^?SO SQc5' 'U͹?g\˘==Mv̼>9I=3stIx)ߊgঢ়~//16fW#\x'c/l{Ͻ9s6gfF=Q{-P՗'xw̟^+2w';<8,]õyDǺq+=uGT?Y~sg9,Yǫ:xF#$ 13ܞzf! W9nY?d?>5_V5Ǐy_7|o~/SK N,~:s ~LoSrW>W;yk/evn}Va?#CUY8q5uN|P9hFf̸&Y}V ?$8E} pG0NTu(B{ xaGSpho潟9'~l;9/PuAɎ뼿?vI#f*#^服>l>&F{?;~B6 }^k:ܢGv{R!!=Sf0r}U9ĜSrO]*Ef_6.Ӝʼn"WwygvrXcw"t{o,f}Ӭ|ٍns+S`Kp1f`>Ődz#͗~A %x7_zqGMV|FztNArA"I8/'2jX+I\oz`G2Mc,A?~nł7w͟TJ\yˎO|q{PJFxhQ=&z^W xsfMv3ߛp~i;)1 1QdSL_r~(η'=~͗sqߛsIegwy3͜OL_܏> JV"+Ǔk,"s=m{dHbx"Tvzw.G(t=)~2zI~?vvly1GW_sdx6w7Y:\f~ix\/|W|s{w#=o__5$~&˘cG?a&&*l?{d='窱?9L<.'uYN"91!󊘘@fSG0V>t"朿r3-̹A/_~k|y/IC9?vV[[{#?7OwÛ`x筼w>E&rxnsS||s;E3o8t)OvH|?5Y`d' C͜ɟ t3$KHOqֳa2ryG8Z` -0·? ȓ 'ZB؁\ʦG<}םp~)!\_Ew??dOR~j]9zV~ixs4VB7h6:|͙'K>~h<UɽGeP.OXՙݜK$|6y %'M=OC1g3se+G׺LB #Y׻y1d,o}~%&.0<YWA=ps6y/$b7'xO QՄK?8C*Q}0ka$׸)E)MNDY'~&cn}Y_>懴o|^G]67yc*PX{saޮ͎6:_͝Wc^֦:S|duޥz u@9;w<#/1?RW?6"s'Xυczx/nxvxɟ݂?>lom{xv'ެ!V|TBd~;vM|Q}lq8#$=^9{ٍ?:^*uG}x#d{D}(,ģ<Yc??4G_v|KOW7;&sT.j6_BK>,7~ՄA=(ggߛ?$1O^[gכś9,|Eğ?O_7qꟙkw?[YXrbO^{>!άꞯ>3xE1b?'|^{e%gcVmU]ا~,+;\\X\p[1A{UD:{E@GAO#kuuC,/˪??9>ow~߾a9NNE'šPyŏcQEuN.77?7S<??5D5v]`o\s\O{_u\2WNN@ʼ.wk@Z_y`#n;~fŘ 8ͅ>yo|~pg| *cT~Fׯ|3FLkP1UMC߯y}=S I͊3Pdcr#!yuCC~=c{|xos` Q|sbc=.E?^#3w,q!x'[_']):|OsМ+Wc\be,gz_^lXx;Y:{?fe}LwPt?Ń%>lk.Hb]o2R?3€C|M(>AE569؄xG՘7-i1g=wfǶἳw&3cy~?}?V:a;-N>*_mx)_q=sz<;|Vsg,NO|ԏR ׻>"Չn,`72>`/y5{=kA{D<95? >۸wW{;צ 5_ϋ3qUt~/!?ǨK˜s},8>%Vw3/"1ؽÏ,T8ꎙ6;b7`y;e,e{#)r/z⏃?ǫ/<voϩ?g^X/ݗ@oW})-1Ǿ7nH#a?vy>btvdxv5z*N{'\SY\\w?UOqfq4=G4%C~|wc.Kv7O{>"s/Kme'?Q\=yXÈ/]C)̨ܜޯ?6dW8e;$~+)笧D;P6&9=w()~,  {˯!) =Myn(-9x|qr/-^/3osNI~,x.揄\R|vF~/n<u/?ARg4%|Qd!ua,a՝z5L #ݑfUfO- n.|{:G?daybe:C8?"ehCV\z|X'?Y&"UTfS>ibN9aO,kT/.NC#]wa:qՓi/g7sVsᎯquo- ~2__yv*X^Xjq<4qO5 )50{#sQ79ާskUw3`|g~b2 C*(2H_||H35oy}">xv{?=?Ֆ\Y{U{F0oߛVُ͝ 77W ..L̻{6'||YCb==Y>vfx,ww<u=VCx?Ƽi\s8a<Qg\FoWdcL{sB&s;_sמjDT2 >v%"y)H!;1C9/uzbU/:G\N6I%Nzۗs益|l~ڦx$gyxwwY$< ȞK/zqNv{ދ$u/Ր+ە*Q<l"F±s>Y>MS2ߟUFT!;Ø..O/-I1bg8P柊d|&V |˷LcyQ@R{L~\?7nqt疼綟^&zǿ|Ս;n65/#WexL^ݍWW{=%̚<0s ,I{=o.ɖOs^o60NlG|kHϚY*s_6K?BTt6!p=z]zcr'C=)c<4={e9"t779Gg`ܤ9=U?Œ 6Y]5xƒ\ 1< >W{b}dzV=D?.$ICa:80|TВ 뇿Ņ#H=zyw.]&q%|9E{,sчlQ`b/5]c{綏D<>)1fǚU]?rH~ __=]uN}Eqc_>7㢟5Hq?͕&&ǪN}܎CuvS1g?w|Wb&gve>}RT\YS^=o^9|\",5xv½u|^gHG1_e7yw?ϣH|\S???fn=R;橹~zE߬N9^|8#,"ڗ/ `=b?\5@c<Hu81bnAYlNJWFNDĜWu>}YalS;Şwy\'|5\)wVe;\{<cefUU{bbk>&=mx1$< ?|Nud&Yjc[׏v8,y]W׻Ńb1^:^,U{56X6sg ~71[ 0s`/~ޙWe93?ˉ..L救y"y/ ?`M٦[s\Q\gn4@FEg{gՆ7s8>~hr}]gu>'ȘV:0VW'*hӲe_a:,F .y *Xx;!=g<6I7,{L{,.X0厙wai<˫<5'~AEAԁI`ٍtLGp>_*t#/Mc ' XcuQM:A+sj2^x'Ɍz}s{uNu/Ǜ-כwby_3]5H~<|w/^=?4~ZTf'^i<\480sz.'z:A?E[~b~?UP~sٳ|mI獣~]R!__c|e޾9nN \ϻMb&r;2":=Eu.;d`bƤ<UdN&N _Nqg>\7>jO^`tWX{&>8hUSvkE&LLr{oNSot{^ezHuDz:O~, JCO/OY<~6}ނ9❂? <>?fB0}m'"w( c=wdx}^S 欟-du\qzv+,<͔w:lO{{9*`cVg~f{Ȗ#>{7 "ˬa%(?6 |\ĹK}t` #O ǝ^&yr'Gx<59Ɔk[T$.N]|BchV: UO/G|]^l7f|_XJzkr+ǻbc"7/Rz?=]g;~~?ɲ=u?煮O;SObR>oG"e顩':U,34s&e:ϻ,$x2>SSqՔ=~c#("Q10xhqQ6+1Q&@Կv$OCIdu9{bQ{ډ,Ir2cb X6Dp y%&X裭oǘw/?w~o7 >l8O(t]?so&'>?7 8vAY'4=7\bf~e朗Ac(?9z+(6eW?Oݏg|穧^6owg՟7UPӜzK2H6=qF>IfCُQb#],穡<+M1>=M k;b`c\y2_X/\T!ИG:uQс&O>96zCe&Yóh(~e~vY'r34:s2Ch"Or4}f=d/qDLtTB%rcuγɷ=m_,(?7Q}z:y|G?l4;ŋsF#j{weGsM1i'+Ӣd}|3m 8Ed<fB3'laI;׻'|QChi؋sz'jIžX>^)ϗ?x*g,|I:<| ~3W<$-L%'6$;>8,,uNxK/ 3Ź ~[QJE/aV s=\\gfr9yp,T¾.m,{42zP޿CN?+C Ō6~?狕Q H+/ݟ}6>T]_1}Ub"2&ffj'O;uy޴H9>/t.X3iì-N;/O'?Ē2\@~=C=Mד)Ûٞ^i:ۘC > xoL/ꦼ?W~,G=IcS7Jq{Ȯ~F!cZãO+y>_6A0׹]xr ?C<ƩtqTv穊)&q1*a^r">kDN[D}W\_,xO@X#<1dOIJ)uG<^G1|g;DL82ȪMyӛ2X>Iqc|7O/LjN#?K{}?wIݾ&SyE?Ef,J1oCwLec7f"Ia;dՏIU5^H㙼p_u_,<47n͏S%M}̾?s;YD ?5ׂ9Tr ɻ=]yꬼqq|sNhsw)[x^͒!t=mP"GN?/5n'f|ňܛ7TeD O^R|DWObN#;}DLʊ L>}S^?N<3'kAjṵ>/3μG7sOp??!y%tyIT?6*L#̭-#RBeB7o0S'6 l./!F$C#NY^Pxp^xvE(pcpjai~/2>s |qÈ^6+XGj bع@LJ30' `"43Y )q:Ә#Ħs99fg< O䝺@;`KNFpcl$a+5׎zNԞx[-hOs{ܯhǮ^rgqoE%9LyYD=Gq2Ȑc #>*>|3vr6f''eؖysV^~pȏ`;E-\q~> C"+ö?W%nGk?{%; W͕yNr+l8"#Qs'vvL>{<luyj~}).=sϖӧsHS"9z~|b7?7 B+YDܽEkߟ4W~Ǜy\o)T2?߫oT^6nIp>/uK_7w|yo5D׭_U*A0x,98j"#_Gxb#"<6Cf,~ߧ,{3 Pӳq&MՐh/'VPFs:yb?ՎRGQ*Wi?hھ1,._.q{}yie븣⣿Qu%Tٴ^Ņ&1Л$8<^ $KaPUWq(*y|N"[@њ'd(&>H7̿T|?k<~^acFqc/b޻? i7vwXoܼ~~l4뎫k0T/O_Oy|s݀kQ|^|PoSŏɱ77uyzˉX?q7<8`gN>7a?/X=YV@Cq]\u]{~&2N$eOPN<QV!뷏0/?`Yhoneƽ.$Xb}pe%'n@FkGϖE܃BǪj2'<͜/u 1xI21x;OTS'0a'1>a%=F,9W=TAgQa =pG>c 'xGqH#ݹ]1F8F{u>p먙j&g; y'5' gc,quSo'̑~nn~sr*g_no??ws]zovW'*8V^?F|ć_SJ rDvLc^x3ϊyeדLU! s?Ӈὤ<Yf 3aת >rSQӛI?;L<8?v >5OO_Wwg]#//dAV9`b8G׫0,݌ U 2=xAy?t,Q |,~QOj74)Il緩M8jGdN6w?y|kZ?챊W3w,}).?%RbD 85 Հp'ď5 jP%2{Nu-|3/8zĚ}'e*, FG_xzq%|Y!x͡+:?9Cy3M2!~i0@@O r{u{/8#;ql|e8,g_76g-5b(>U:W/ߟTy9w.X\)M?/׻a\.+:xrs<*mu??bN{c{vS3œ[|Y HLi40c(X'(?>;8%vg8 g]r1Q b&gՒS@'Ci/!<\lC0Qƙw8 b>l5g۰,2"I{(!vHJ|5D #'s=dz ùl$g<}GX_'ww!vt7A#G͙PN5bN0>&fyY>2FXn_6/0?qb> =v=}X_ODz9Ay;_?z,|{9rr`O;- y; DN:竄&:?Չ<hʢ|Sy猙f9<Z?cO.^,X;Crb'j}MA.;glyGg^3n7cˋd>NP3vC':.Δ`߻d>TWڟ\ɡ͟_*z~.^*sX=Xs93^X^xcO>i~7q/m7ι뻻,_ 뻫?F3yjx_O=b{Sۙ{}4& >K)1ۛ~T'zO߯t;`8T|{5sS's'3`g+ȿ>ŏ1~gz1Bttt\k|Ӟ$2(8+A 8O6@bo,G<6M.TBd2~o(4l2cwY7}uN$I4=O<29r"erBq9șl;~ )0wmuPAxEsva$}ᧈ]=G9׺0؍ scz#wLÎ^xTDdEOG8fa1/7Vs+;͙>_ BȎs>'|5=|Y3=uf? >'z稕qNL>g$!##+|Gw:yAy˒\D`㫄%.C6NaxJ:nU W=\sMTsSS|Mijxk?~^ywb }TؿSO{ň~v9=Ro~<wіE^fb,Sxife},Iz<eȰtS垢 5S>xfffN3HtoI{omj[Bf3 lD%4!zW{cϸޫ),g_ϻ(S<'41/O9~<]__7dUwYWvu<*O\wjerTg=sx7?E縻 H_TNv'*I"9':8tW+ٞ77D911d+3VHߪp3VG~!M#/<zڍz=cty3a{r~?g#h;b{s?7oǧW8^lf0?4O>"wyb]8?DR|E8X[p;7_݋vw^\oww˹Y$篊x_Wgݍ̱M #>/w#p<.G-X"%H'yĽ7{Q];y9whiؘow0Ƈ_ɍ,~OI׶P7ߟ~`Y=FǸlG]e(Y2ݝDvcW$<H̝߃8r&*3=Os{ZG5g<?2n7 lsH,ϋ ?aI  ~, >,1;Wypnm]?~f 㾮38{C0t~leHw|Xlzz^x$򦜗PD)8D^879?o2cT=kN2>IډIVF&}cg,YD0çTD0Q/xЏ1xHYPJ/3C?i16_:wYbɔYz8CMPM0O~4o:95^#5d̵5dES_3H>G}7y>݊UNfz$gzP}Q }>hƒ]89ed1‚BeA띲y("Qɉ3vS7(.j8bK1xu=?2E˸潫AǺ8ܛjfd쓟23G?p,ߩ4ayڽ1e=~r2civ?:O;͝ݑy=ǺD9zdp~4nqew^Tlo>d8"UŒ mp}&|ю8({l|Y"z<9뛓㯛u/DqItp|/ã׫>!YȏW 9cЏߓyؘ7Fł?{9scxvoŋشϻu|<||~o xKc x 78'WU=_O1XFNOw^[=yF_!w# u8~d7fU_M_绞#fq/O=+c8}P|zGy?Wϙvxq{aa/P|#s㍞,d!4PHX˜WHL|It$`i~WHIΊ{w H 19ibzV3̏V\]uLqp?Vr;=s;'4$;U)f,/IɌ ⸖%xpMGPat#Ӕ u'SHasF<T(TburQ1C[!a98z^k8HC>R ɑW˛#wvKxlL.Vt5lň܇cK璴#S$;瓊rAFso@Yת(DZvw32\^P2xWA>(sxl|eKɎ9Ռ w0f˝ziX}X|ǼoA ێ\0MՂ|q b1ȗ*mD4)sYga1{wv{ ̨jθg_WjcpS>h)݄;FێOE6{s> 'bwWS~/|pYKLINş#_cs?VsW/ϕd~n~\0tX,b (w.`^y'?:r{|ϊJ}_|o?|"b[}]XՂx+~=ι1)ܛJ 7e1sZp>s{m~=g /~/ 0~KT'|"LrҒSf ^o9-bwʤ~:Ďo_\͚(1oW0ܮ!y1N^ߖ4y9͌J>_.N4v@Q|ߖoE:TxP0:1; (&z0cSxryf|UB0r/TT8#ėį׎'<m#3ڱ;V﫯G3jpЪy ߎ1 ykW 9KQ?!w;zwWQU^Jyo>A:~nyDl w11Y I!|Q,6I)~#7HP? %"zqU?Ėyf!99't 4v8iqchx_8"x7{bV{v?՛ /?~r^<]\_r(1\G_U<$C '朙Nk? ,aOa| z$"qD?{qUnf>!xFO=&aK:}ukYՒc qb[]S`VL٥?4|Y6{xw?~KzYulۘ<wǺQN>d}T7p~;~h {|Aɸ]"&\V;^Jg׻/$7y"9319wXMWSfxK&&PO/{H2pI#zIׯw.exDf6Q22'\2̫i9Qٟ#.s7agó7w9ڗ WȮj̢G?RO3͏͓mr}R_ X,}^oݜm iŞ9k|ez? <^~i{_z/>-WOowsuwxX7fggc~}_/WgM\vsd:NWg?'""?78 6"2,?9.tlW8c7b7ݍ㬙8vc(;1u0/wa>?(-=d/ yGL͐'тU(;"a7zLLeHB&CyW8~L59lXFEР8)D_M]%=8;2qY~I(OTzD zx2APO,%0BoԀq7> N Ô?GO )(犴^1_0_Z\ 2w#i Ꮟ,PaLQ G\9a>$噋׋7}7<5a$꤀wG41䆏pTG2tݏ{y?8 Rɰٞ;zu d7=9߫O{q5x` (޳?uiʦNo'p|s]jWf|yS8YYMdSrI;6ETN{T筡?2/,M t?AqrxWۺOp̦xk/7i8e["}x]w;GpvcG}@@ߋ$GޜU<7HGj9{3{ʼ3*{~#wUxk/ Ҥ<nَb]46HO4+$|ٗ٨y%nmlD7~Qd yM=_F\o:og!sv=Rd//T?/e@z9fAY<Mgh?ˢ=6>'Qc;)~c~_Xn6?ɿM_eow`;__do|Ҽ~1x7yrlOw?{??>:A{ o/%O_w|m*<}y. <~%g9S#@+^l>(fL$O8|O^1`8Ntj3d _/^g,qF#WO6FdڟR77E|b<ysw=^LroS:>"+dT_}Ig'jLNqsߖǞ潳Uy{cx-ά#ys7W|\aӻׯד/+Dzcqtw6z{rv?z͖^ Dp9#_3DW1>%0?ȃ|PssʨGX3yޡ6L32}F+a"?\3˹pkw4.՗GluHG9DЏ#ؾ.cQfZK?a=>(y|:r\x${dF6FsthɑJ9ԤD>g;d,.2pTmN/&x'9ygG]Mᘨe ww |e^XςGqȱ_L$s=R#M䇱(7] ;COdeDy3J؃}bDvY0x4yz1B0G=᫮z^RXA0VufRDq7A< \~+"zl~/!U?3`8^Xse: x*acFf"N<\lq_0kg@y{Os-8.S7߮?qK:ݼ|_cj3g&g<8P/o=j #o||^w#ň|}u6\8O4?? PO}g',Idw>~:;C٠Pz9WT ew8MfxlE:|4@/$cy98'b)~!Cg≘g1z<,?^/Wvx_{ ^n_{!9stV};o?ɯw.ǗX(<k;vOb~z#r.8V0<݌"̎jf>K,~(0~&d?l@(oxrs]d ;PlՉs^P%\g xRe'繳9^&8~Ksu_ox>EgxQ\Ӆ&8{6Ou`qDï'&?+|K/(],|~y<<\ :SϘ޶'io,ɓ{g wɞ.=PLx?1N:@eHk"HPqω*{d.[ˎFowX}QSV?ckW5Plc?^|Շ^=YOtmz"+,F?7gN/G59fo'Q7'QN7:MwNjOo[90^|ϊ~Ϫd;y:/ŔFRP#/k11T _y.X|A?$}>ke9̓*&A/nlDINR@?6eO3@}F>=`gTחLP9Lg E&;;zł&FE2zD%T`Nss3՞wc<8y7NJq:,<̀%/Ŏ" ˺X6g&`{筯Y#^#%ggT1ωr>>9˲^<Јzw/{=K>o$7S&9✙v߫N~?̓~krW~jcX]b,Ytz^6>=ԟ~lӈ*ssl/}b ;.A5|gc#lQ9 N9%Hz{m09 >ǚK\뽼̻Ly3,_}˽_㪾C^ۢSsBq~I7#WO?ͪcb'yluLpd9cnA pU<>lb?u| ?Bx’\ǯ/,a&_}٘D+gWtF:u`I9duϻ(+0<ő׺$āQs,\?b$9B~VIcs|V7w.$?Y<~]j9w8hO)Ù2~;T0tH>rR6|I]?7o5#_0LӭO?lG!,g*XϤί}~oO]71>\۷|M|S6>컶'σLV/E7?r32+ϝ՘Oϻ1'|ϮB3XG='[>NmNō΢13L?U49׿Ax<_6q6Oe8_C*+>3@$ |S F?ZfX>b|vd@Cf7I᠍. vXiǙj7<.#gby)]wRx=G`Nz,g}sQs9Gc]ٙ[D?޾jXުZM#< GQ#U"Q ;*/y`q÷}mh<}|Pϻ<7ō6<,$Tg|,~ugޖ~`Ɵo7_<$s^?ά6M}NWH,؋||ǚ/9VlK_?5$N&9 \|ުނas>z~D7%3X\ N74"?qՀ=䞵r8}ctyfw~?v}eܺ⳿<_I׉˿+}U S[r;#+<=/xɲj}/ŗ~Qfߋ>~}QY㋉v\sGgᚏ/ w3$a7RcG:y ֿY9sOL5w:Ju/M=ř 8߁QB {W,|w_c#J9;>k|`|o Xt?:?W6yG7+ŏ>?gXWWz /]|\˿co'癲^_۩ԍ_d|T{O{͎Nx|ǯT%X_D]ۿ5Rٳ'Idv9{oݎ /bO1!Վ];a>#xřĦ:|װLۄa‡lִ'EV"2O=|VďbVqCl>\,FNg;~?!(KN/ld?eO?MÖ7xHvOmku`E_l(~RjJ:rfYbdO%tHp1rl34#]k'7*=X#ܰHǖ'#*quxp3w pAKadDk:i᏷N,8D~R Փ! o$}2Sԙ?7{h wzpÍYF}'t/ٟz|^?}MzʗnⷿQtcoww}sqK=y׈?<ع|y7}yMW޹5$-ֺ߈;*Lh:#t$ owѸ^vw6VCov}#&->A+ɞ_;1'>.g/eB ڏwdyx>x$%V'WʸGV8#*+1u?=g;ݺ=2^?'puWBAKߝq^TNxv^_Ib}=S;'|O +9f<9}t /6/]woeE8Ŀ{{//?jM̛cxgyK>VήV26 Vqo~.×zU'NLRs5oQ_kۭM?9;d|o]5ϋ}?V2&"coFy~}u/ u3,CXB6efH;>/c(fx g%R88M:P;Ga37Qϻ˾Sz<=T#y%^fQw>Mdq<+d037N#9>t|z↜z3ߢ=4 T;_6 xwLlag]I3}Qr"O :ClP3GAqxGYgt!'÷:—_VGt,>/^,! !WQ{{i޽*Lvw!wc绰ǫ2Q ؟&Y<|T ؜ﭼb$z/2>p>'fSn͎x}C/u9Cs3ÃsK͓C? 8pW6c.?;bcV'ŗ7yro|] d˓?B>t?3dUy;~ >x.WY8ؼu6}{qL˱:.HD1H6q*,V6csa_GnFp8*lzz%eGf;uN fַ[H7?we=Xcd^ZXG g495jVX2x/w~k?ȱ0v]> OXT'Nwwaoӷ}\y> 2 ~y OHs ș<)+v&rybƵ{|ҧ9ܾOv ڐ'W#qLW 瞧,l=s#{wI4ȅ'__/ILvc]u.c|><$Xy>菢Gg ̈́;1ÀN1?%w[Cvd,8%(<E(ז@,j>g׬Y8ќ>Ts8);yNl铇,3~*R V}DxcLO<]^%7yeL]GRYWMj2Os$dަ5u/sHxg1{k/}MGd`O7f8] XU?RIs9Q 8Dq|<%Q$gǾ<͈lP}ؠ#1|O笿C@L9|OlGo_^fSyhzlxοO7ݓz}*z@7oM6$߻P8;=$yq͓ n/^Z9#R9y>ow;sכv/s<yvrv̱ϫ}޷>?ugw$]ؾ/n˟9|ܽh^&u͏?Wc_w4 :Աx盛{vKv33_5"~=We1eo0N>v'Mi ?yk>hL<|y9_yI̐|e3`pLbN*|dLl>/5sTg8}h}8 'd9~oI?<ٿ=ch|6{ o$Pv9y:ǫ^gH=I$8hl&&Vy>y9疧adyp\}@uTGPC=.1b0tP!|~=>, g3`c2x6/c'&6qp=32uX c`|D&9>Ba^ϋ~ ;uV#u͈K KOsdw6}cQ̏r\s`6 ls~皖9.Gir8Ϣ ] ٻx)9z<?g~u~~8fu?PfEz>^^O9l^ a.S. CNOGJa 5A٦u@7ʼng6~i+5Kc?r9޿?^+3SLppŐXLqc'fJ״uUG)E5+<>?4.O!t~8z/t,Rgsxݎ3~otcxWO޿F_75~ۿuyOY|ߨz-iڄzxqgNίey~#)wGgcK>#{w}{/˫/5l8$߶7z1?EՆP8'1Ղr5sLcޗFUǞ2r =?~ /iϔ 8eT|\"0D{bqgT6wsՖYця< `ge =iQ9$69#/4ék0}dI\}6 <@D~TN] ;t+Y_fŏ/5T:TXot>+å><dzy'{Ck"y!xϓ͞ 'ofHͰ|Ms(; CATv%q=ODwz:?:sk0~}YM EuԠ(dqa'q~ Ղ>{XO↉4>iGcnz#ۚdf#nO? y(YC_6Z~_{GIo;2xA|YkMRk9纯{J'V#kV"8u7V$OH_9tAa?Rc88ED~Izy=E3ۋNT|J/r}5$:Cg|;y{cO)'%!$b'g8/q$|+>:.瞯$n,7!v`')ݔr~T|+2yC_*E*NAw^{x{/^f/>'v/bc|Ϩ7]ع/1~+|zswwd|_71~l͟^+rMt/\5ړXȼ=Q'?1CQ3 ݈ߜy#;"Atb4,"K';a"Y'f:OG]=^~c~ a$ӊA]{\Ie$? ѻ{^ǚ ζ/C绞?uȽ< Bs=SV7i9x~<v1~, uo~&ȗc3ŏd{sLOE߽cyt1|XNG7>޿{9\e::N+.";潆.$f7,$>&zNEe-ր<'幔ߝ>%B*%bba/,7<}Yoݎ`s(X{/'1yfGX7z;0_xmY '"fLOߌٶ{qsFO7!}xXs.ysR3_]=H?7gqS$ɞ(Jѽ#`ò2#y@G(? '5uC'lN ظ%7?ދl7sz>ݾ'suM,7{~ Y?)sy|v?|/3݆ƵD5\vy񞚉ov ̧zc$1eʐG.=l(I?kσrig>t,3ؾuR<߂+#{cGQ~5#<"pt^quԜWG;$#/!uĤ1ǺS?W c2 ̩ =e2 "/RxN<V悞8Nz6 ыg7;QxdO]KfQ~) 8k;RWF~nP>xO^IrL;f|4݌l+ ś YO}e؃y9'iûǻgה@`}?Hy; 1H^'8q8$_-ss*dÓgut|s` .r3)1XyQ' 6}"PaN5m>>韔}ԝqr__7Wbfl?^ٽ7AݳC/RN_Ez,X߂{cxqwczl>Z 9D^'by?ά[xݔ V?1D/@$w⣧kt!T͇m<s XL7fk#<;އ=SG.\f@|^>b1+Gϵewɇܕ_gcc|_>61gR?:o~S?LzJ8Exqd12|tys3ϊTr$ysכ*w#Bxϒ(w?TGw ܆ȝӑՄQ#W̾x17 _6iS.X#nݎ//~+owwl9' :/|xÞŋxN)?0V'߄|oj/|+ሆkجj8CfW>;uÎrۜ+lMaˊh|A4LX^w8󇨘8L3|yqu9`'C(38sI WɏA>Sx73ԏM!$pG4|wIO86\q 5 ~b^8X?"3g Exxckx#z$5@ͽ8rVq~A6:9"?!_7FA=:o2?؉C@osaNN|F}_f7}YA5c5z43_co;v|6?@_9:X.3̀|Pmł> ~y׺2eAu#h`Vat1z[%و %T̖jĹ# +:x>u;` 3,>"p0͓>nu~#Տݕ螦ij?Վ'''O <_|E嬇~h?}URc|,|duD}rb8WyVN^O{T=SF?Ɵ>gK齘1orÉAϊkg>lʚv6v" os<}5ĵ`}\1}mx$K#/]}ߋyO9ݙG[DNG-#>O1>O5;Dz׻}mw&_^eg W??|^kK#7us~w|~ov_ 9cՌaSi)yU+o3닛W^^VW_0˹E圼|gReagU`wȾ+c!myrԔsW7{M?z~H z/7NT7ߊ?'뎬I9)(Gv8rO)}@OLpg"59z?kYx?yWX/W/!5% G<Ǯ*d_l͌ y}E:~zϫXrp~?vGXsi'(w{wꎏK,G˧;zJ9yZ|N qSdϋ gNg:!S7B3-O%uk$ٲojνl |~nq?wK3eps͜'3;ϕSfsUb4e#^y}#7<WRaO ʼn'XK /(1׈9# .8גּjƭ eꯐz/g|^['~ ;h"c't@7A3*$?94'>3^/{9|G3!f$.G '6&`I}~l^9׏f';͘.7j z6TsS^#E^\2r^o)ؾ)+6,e_7 ?6/r|X;kOňSbckX|U[̨AAnMUߋ.\=X.YX݂yl~ے{_S?v'_XyeC?97 y|[|Aqk3?ycT|7J"y_tpGG✌C{@߿,OQTT3Ѯ`y?7;o\qH|PUwW3CǻFyꓱOZYg2qxӆ͜gw3y=y؎zN|x|o??,_ޢ[?x 9(h6?cՄq?5zN=YvMfca/Kci߷4gD^3Dʰyt?:P$c.v8(HbFE;ߟ3crK}Qz50_1]Ğ#!DuN~Y9#iuci{㩯= ;Dq頻2W/PCq;tzf~O4:%IV _ucGPg;S^Gu %IJ=<=ӿ+I(Jݒ'4zx,vAcVҟ$dc 7Hȹn}\7͗}_f?/}k~|_sOE|^g=ׯW{˗|>_/^>I^ꂬCoOHhDPBb[>t$T79ߛPiU*a?ĺWbsf=wri͋?Tq!2,CytϻDܑRN甝ze;69O_a7>ڻ8_@C9*!<||D{vx߫ eׂ_#y]}sōӫ$}#O|s' *0?uni2i~qō oW7o`?x^[)0coO|xSax3䝫xnVDf`N?!Q?~9,Vg|Բ3?*f}N =V:Ǜy>[xxݏqsx'Mq?7{?׫ yvLnr & <sV0O""=?c~m?+ܿ7ŜO\Oj̾y?'s8ǫ UXa1!Hw/8 O4O65DuS^?5>}^p_2q;eT$牃b;TK/lWwS{DK'L\^@9crwȇy&#ߏ}?@/5& HNwӽ=ׇ ?^r~>jVf}_c>.KŃv?=?Gw Ř1sMs˟saF|z i[Yb~4wNՆ7?VY?wC;u‰kGYXGc.^~,Q"c7W'?ݗcǂ= _VgG?.zGo T39/_>}v Icub|?ذ_$S{4z>;~;n8c8Y˓6 {Okٰ{s=]2Sm)?ucV\eD>XC>_?Vky2g׊j9j0̜f];C~( dl41%h伄~z VA{tO'b7Y91 : sdd88S^W(@Ct 9PNO(U-O;{?N|YevO/?g~+zk?N_ݻ8o,y7V,pE?b{Y_̼;)OrSf?g]+-=DMd{41I<}\gTG9co?}{z,wkyMC{@ȫʿ+X]_,x/\YP3 uOIx,Y=Y8㛾<وWvzfϫf͘P"/7aj_n_xY9Xcߏ_Nǚ/1Y{*z,8(!X}wPޫ3?FrW^x=|4,d>ڎ] +㏞"Yvq=6$ou|=6{EP= Nj/oȎ<&gQ2d,w,(뒡 L><53G{a7W&]& tLmua6=}i̽{d{^Ch#I 6I?4ā}>$>/xy9$|(8zY7=__ww"爮|?w_JG{)`/(ǺLqxǚ'5M'. T鲉K_7 Ҍ=<>ϗ|8;fSl'97dӈ Ȝ{x1`zKqlՎ??xVzjϋˎ]?tDqd *Wg4|@B7o|vew_W*q7vŃds c&;gW^b~(2z<y犳wvrO9}aYc 3?7R?WI'\l#k'8wW[}v&xfy#}.yxŎS!X><_٨zucxEqx?73,L>,|cUlc%(O<'I{>o[*g>nzo60/ ۧ/ݍ}od"3{8w9g ȳ)=4<ϦekcrxOqOe?dG?ө>G>fM?XFS 榐j %3>\XYJg'qe/9/ؐw>Bb&#N0&!?SޭkmO'%y?R|X㓳932jOlxx;OFbRX=g`U' 菀 <}R?VMb);̚|߿|?Ծeབྷ*Ǘlca_ֳvoc<~+ok؉޹ZsbZe}X98i~Ӟ_0+0s:Yr1Փ/ٞyਣEu|)>yd1pgSO<㌮眰y#]9=2>'ݎc ݄g{>)7/ʎύ.:?_Qa98k8LWyD@>"W%8c(Fݚ.x@7߫,qv3qz#=v-zyLlQbhvӴcp>>9nK(3|ŜX<;|My<7z}_Ts_l^'8e{7v7y94yߺgwn&?W|?zy v`lc^AVI"{Od2y݀)N#vyʔGX>AYL;ʦD a|^SyAw8_׎֕y<EiY!杦|iYqD'o  LŖ$xd4sxz<1nGDvB#ѱ;9m3&G0FesdDŽ|S*2L׿{%۞,3ȹOǻ:ϻٞi%+{X+&'ŏPݼwesnzXň?"??y)<}Ebz~i͆8L%O\_yg>}ݗ/^3?xF_?;WyRxTzkڣ+ˡŃǶW:/]r&9MO/<=ޟtW@X6?@sgwdÈ?xyNÏŎ7n?qdg_T RcEϬՌǣt.MI~o1KVk|^3O//r0lQ@ _=Pı;@'ML9|W"I!98ce6ǂgaY.9Ag<جc7bc[6O|WX:bS rϘr9f?W9~}Q4pO.foiO[Oظ~޿tF|zu^~AYGqlA.9Yr{9Y{s#kxz8gPtG ѐt þ،if닌)7cl?b:;_&G,Ϣt8;_797z8=^q`[]~*ux5{(]~i}wwg<7z~yLp|V\0Ǜ\ g5'ݏ}]x׫"~k<ɒ^~CD$>e aa"9^xqM%{>迬s#WUpsU|KĶy~-=wd~R7~]L&z3UMx¦%NYb)ɈnzgϩKH15$S@ e>5eQΜ|lSx !/k"(I0d''5JA뿣|);Pd<.O[.U}8``CM럻绣~N;>{/W9s_>.Օ}f~ow|^/z3.wӒfٟbCD,_F>.8՘\>*:y=RIC?߯>j2uD qkCe nM ?ͼcv:qLavsN99#V,d q!nN> { "lLyS O]rƭi)뺹I9%Qp:w\xݔ:^<ic|]#;&#rp.,t: u5XRB>ICVF,_omyҭ & 3õ%RDdşAIvG:yɠk{u;])=_zG/oV'N|$W]^,W_v&7l?uοWo=Wc}`nSoNJDbՋ?||XJ~[ǻNߣ˳7l_y}5z:lB_q->_;椧to?|׍?gaXq?6a >U+/g?K63|MgvGGKy=C'7~O=* GL3x;?Sd#ƯwCہa^ H?$TOw漼?U{$m'xe9qIig鯼AϖƫɯO\F~"Duy̹';:돛ԥ*2T8HAV ^,,ف3yKTDgl,[|Y _.h i>nC%)O߫q0rC&P{`'#Y(C>Y1:2QN;H,"=bvOB<%h1?g6l/Wޯ<ލ~_Ycn_a;^f_q|^bݾ/3%?1w3rkƗ |6̿+X|]}_=X^29OwxO]]wsqg]&t7cS\2貟)$O?ݙ|]4m7ǚG7sWw;zF{Q3昧>͑xX5 ;88糪NIŁ>tQYؽ' q1si+nG0@#A|\g'7g?^y߫9{;6w'W I,e7 ^xw(lzs|{ow{_5&;:{jeLN԰ky1\x&!j$@=8,<|uu;}b~(r9F; }>ج?u4&qDMȹ*=sq!y yz޹`p쪟y9@uh91qnA8yK;^9"DqĄo~?4MX=s? BfǓIz xՁ28?8㼣)2:GW >/DF9?WTKr|t_Tr??ʲCrňbg.m7 6K̈́;׿t.|gv 6}q-Paeh78`cO~,ۛ|oVl g Hq/=4NV|gS@oc]ƙ?[ؐ>!Fw"5g,^ݘŁ0DgQ8}e$z'@c_sda"/6>Iqp~)mK>3|\T͟{qo#cf߫mg/|_?wfi?CrE~,_~|Eԟ[)gu*mx׍zOU,Oʼnx\,AAPs,+SU8sEɟtaH"i&&yْr~?tNE?jQ.|qپbx9VdOne J9E }HF<Չ0x^wPg'4w;=1(|!(|G+"8O`?~ۧ ;}(vlf9't]/21,uyGi%c[K݆~//{_.6`! D )k>?{[|'*^99GyGG,lTc]k$_3V"z~Rdiؙͽ/r|X 8GetD ` z|6>XI"=%~fǂתj\~5&L͓2!:oxzzp_w~o<=B8}^mg_Xm?iOxSw.Jw"2wǛϋ-&^[U#v"~hV0~Ci+$x+Dm~p?ɸާSݔ55!G_w]G3;9k'Kpq Q#?ov^W';r&_ߗi9Mwϊ|=Xs=aoj@O^Z/~v̓cgczcx0Z4ԥY{gՍX5el=?zn%wX7??4''?)/ݞol+S?澖=XRlm?4=u~#WǛ jc~&iK=^1{wɺ>ŏtFϻj^W68]|:{f_L'/Տwr*q4K3x~^NT<~XIX?=Q뿟6z:Ƈn^X],fN<X&_7['xr_-[v|$r4p__df3u]pqǬΦk̈́W W'/h<h_+6 Sʟ~67n88͸^i X/Oo&}4|r{)cެ_.x]Oi %' Ll}C>,XE}/V5bÉՎP _i/,رM wyNoܠRXV"yrCY̸ߗzڞrAa "?X"7wzP8SxXyr08㏺nEKWolm7DK޹a!;Xx_~l',vb,X?/,>/ilbP9V,X^\Xle6Vx^͊yy+OqO?߫3z#gj|x͍{cx {K?.+cww틿 \_nOaSo/w/?7GuyݗoW`@z;TI-|{v:ƙ͉y|wEG'nsXY?vsc8[ɥw9{V"?ɻ`7X68E]$q~W4lן~o~+͏/{Xc[,e,yYX54qŋ8 lc,P&rOm_/W6?9~M,Ibc6Xcz_9,qCݍn?t8r]e?E칗O^l/?co.͞X?9_]ՋixuZ~Nj|TϻWWkM=v.x~ZӦlf0?{x|RQ ~Os>3m8ώno]6)_?2?ͨwo"z6,scQ'OviXNJǾnpvTYU;׏wnI2N_58AAspscLJ7e|96=uπ#>,^ZD;]Lod}&/7Ϫ^n?7bCۇZ>.s}xxco/ՙv/un%bo|d_fnqg/i͜Yݿ?.ފ~ŗ~n?sK+v5A ybٽ_Y_>iK?eOLqzՋ1v:7.g'o? ?__;~?(XGg]ggw|Wx)9˟=V'5m5ov+˚^S/=y I ɱ%]#WF8%C6#’|d3gV_|]Ŏb1?TϞgD1^sx!ψ$N\# |΋?+E>l.DȽ^co\=QӪpR<Û/W?V#?K; |_7~ݟ~?u3ge? f^(^{?ttkWG/t͊{T)yOg^d1Xr?+ZwGe< /,&ǍNlϛzgoz`y͋l\,XWzJ4R;W9ooE;^&߯3l/v?T;~_y^配?t^zR?o~VfSawV&H"+3H~.?X̎?WgxSE|_zo2sA͆xnr{w#o~?bϛo&Xϋlz¿nucQC|mi~׋w,_ˋѧYw/w5c[ NjN/WnWGnfS~?ɾx W ߪco|Xs97svܽ7Kvb?~|z׊ߏ^?2q~/GΚǚ48O͇TW_mN̰+RdXwP+1}#WGXx>^x#ŇXys}M:M;wvK]}#8! ŏ'{3>),0?#ϪO,>7/_ݟn^6><|ӎ?`wōެw_e"qOp?{w'>/bom{͜&=ޮOz`v}XrX~z{7wg{o?G,ݼx9}^[E?ݾZNjRNf/,ayov.?~:a|Y437gR8]b}_yՠ^!$O>|4D9zꁛNc49bv.ͽݮM.]ugo+}M}_ׯv{z6{.^o7=s"w#9|_|,~K՟?y._l^?Wo7/{Ww3utcz/tubۗnOw?_yxKP?]ȿ^o/g3wP^Lws>pňfc"~+6ݛO77O9wW]1rc^)8Q;?>|?sVcY؜3*sW9zvqg9.q@,oo՞X|v)^/Ǜοφ7ٿ?r^WcbY`nO4~.}O?w{Zsg7??c?狷zvwo68}ܾ.F_ӵwg )c8U+繾oQ6 Cǻs݋vKE]}}V~\?(q׋x.^?rg߫ۤUxWjC(GQ}ǽ{%y|{ޏt_浆EeR!Sts 8)jO?V+'ݞo_2}NJUoOw*k_7^/T'/_v4z^7*^_Ӓӛ:>(楗?t6J?ZVݕ@^ԭz,WtUf?~^b?Y> 8./_ ּ'J|XVN_M4.E.mBqf>i?eһ,{_o0^FaS޸\~oV^iFO(o//MhGYxzz} ٙc]!Ъb-=%oPIe_W4 uw84q%D2Gڏ$E#"+̪q.&$>F!Y^,0_mzHQ`s ұJPui1?ce>w-Uȵ"G#)dQl"l B=!>%0 20+R;RZ#ZGdZcw1 JC|C:M|& OU$B"pq`BWpj_<$ͻR~[ (P-*&7rTAO sB&6憵1`+] pLӏyp"0\5$YMdJe3Pfzf]WPWQ\PTzİp%|ae%K@^ TN8u p,[ƨ*`yvpX.WA 0K()=#9Pc.""n_!$4T9,sG$ :Q-/gǁW)%`d 6‹N !whhĢ񃳇HO|L x $d_=)WV8{Ʈ*uh^nOa`*b)(w0}F*<<;k5@<]!p\2 An$WiEdڕ6dډi:X`Lg .Fpό #ǚR6 96[!2B먇pI 볓ѓo򚊷&JE;Y;=LE_S]0Lp>3>!i*H-AmʕsM%Lb dX8R {}(HYѢ"`>d#N-?V1pr0E8%D@p>qR ȏP3ǚNA(,j1_m D)7t'(%R '0L` HhWL4Bq zIN>mBp9/+(<cE<>Y$Rl,zTӺ7(J$!@>t㙁6Z 0S|@L(Bx}>n%74Mn~oc&;ќQ~Iò`SSs_s-/ueR.Zz!"Tlu`V,Oso2HnLLX1Q̋J{= $ȼ](3Fcz88q49KR]q* ;\QbIZ4C n= Ai,]Vx0/`S[lj;66Ԉ$%dZ- SD2k?=]WB s0Up lo_򳘀(%oXaMΡ|:~bvo`,v xHf@qgi:J <\=o|㐚g\¨Jx)8R85@a ^ԗut=&Z H02ְS"wA\iӟ!oM" Te `"M8Cs RF)b[>pO8֭.O97p 6!5Rqf{ “ Ƃ@Ԏg]wt(BM :E+Jktzvs s7o! m@":ć624C8֋Rcp0I!8H:ZS;ߏD#("eqI}] CvO,¬CQx.X"@d)73TbD(Ct3YIp6Fu2(4"F 4McM  TBpUm04$X_5^ҫT*_@0]Q FQҾdz۷о7x$-T%d(@A2:퀌т@3 0aB4"(#'˓iL0@LHE:(-e zī5 -t)&nFӵtVs׍]02`liMF4uڈ(,҄Qg(cŜc $[ iJBI4$O.ܘDX,!cJ]u: K+f4hK.?(m;ÿP|7;bp"T  ٍj M$b6b kJP 0,P"OX!j1cmҿ't[Hok(6LXP$ C0B$cePOHB G8CЂ:FR,[hquIAr_F GB X 3QQI<D%T1LOeG,K c[@E9CIuSEx]z,h*|ui`;>.#SqԈ]P\es}&"A$a\x,`M(sw~1GaeB<AZmJ8rh6(D%?=`$"-Q~E/㣾ȃ[0Y^kإ*yLDܫEu4DZV|Li-Ag~8%KeZ)\c^80AS202( Ks c(4S<:)|CH(v_=a.WC:70ݿZ,Q[P$ )ubUѩ5RوˡYXT# 5pHPNJ G4C,# 0ԨmYlTrzcYQesC"S1C7|)$ँ,X4f88wH$C #P."JvAs(TIjRI< YC@T$F"s,q h>2Hd,s*3šdE歰XfD%agጵ S~gk^[xO|3?F,|5?0!ʶ4y"P+h<S]4 6xc g 4Hm;'hW8`>#tZ<9QxRó]Ff%s7#2m0 #}0 ?M,U07􄦒RֽVWx{A0@#:[.!C ت+ Z=S Q $($ qÏ2M,^`"HUM\aW#R^*(!qCGQ7xbXD*Kʨ,<x=%DlziD!Ӕ@% 6f@EBX]((!MX<*nuu? 83x"E8,)R4t;qUN%.CZBMg-VojgfB2`GpMH]i(3p0Jq (~;N<ٮ WJA401R w A-,i]xE]یRp9V4NjAVCrU1Y4fLupFLB4!j5nOWp88F=OA $F$s?R. ;,lM I dOG;;1ۋc퉲| V5RZ,jS| r*!x9wѨ5D<HXÍ cM)A>6̕z _\d*4 itE!CPW,G` ǰ(| Nh6o5>+)nc+o<`RL*w]P<0M,(CUbGA[o\xj!p-A(k90r$I$D daO,`b\gpr^6!#u-^M* >Ƿ[czp]%d,/,XMBN@`u e DyZy9  b] 'w^ )qU(BxL̛*< {SBblA5-Tkڌ`Dlt)d7oq!:8!d02LKAWtC #b .L8T8L߶\]@Y6qylQb鞩Q@"6Dά<dKts$m͘(Xig-/jh"cvVjx.4t ɇ(8uMuX~B W.W\_Y+]a:{Yr`#+ѬgB "rAyE,pRJpՕ]iaCɉ.pQGKR57ACA(bM-IǚW:$ߔZR a굻qk{BȚuhN˩Fo|l]<,C  <3L<%xnOፒo2DV@ Qu<J1!d־ ([8+cPd ! 6 S33 ʮ*W3uVXiMOj ^(TgPO<e AEqC]a u  #1VQ R t} fh7p{%qV\cmHvTYmU.=jRk@?}Bǯ1}Qmz>AsLTip8,QIM> վ2xd@HuȖEacTпXq|'0`G" QiU+/uqn`aV]Lf01زh 9ԒqbÝB16Q +&Oa(A~߽Γn[+~UhTtiPz $HKSP aO$G9O2 I0I k I2TѠLIY&XU[ؗm{f6 5b@絹8`9 %Wy4ę 'wz _k,tKad=CJB"QDDIp 1&տP$;H"3mIeF1KJ?̑nu-e3xk(E++d-GEn̝ӐheN*ă<2>+Ħ  (B4CE4#(E4@,"AiT N`I/Fy1QN0nyT˄9@0͸穾睈jnb&ђ@X(U21BJ h2Y#aKe9*4P (wIJ*jUB~4d}ū"Ghˆ8A]l;h5뒰&M 4X8Z 9H&*){-:Cpdb(Q<9u3+|!]Laхs+ $ d3Ht=SlxquAЫ"`E ̯S\2j !)V a뀅D6$L&CMLC]LKlC4!L `SP] w[|s-*4!ۀSPQJY#$N8:J sGwbL?j'tbӘ\_Ath&80#`0!f \d4 J< Qe!^cP6Cz6'p_i<P]D(BԊ(9ք7ÕZԙA=fugmxqRYn`};J$cpb8O ڭL j(с0$qb!H0 T'L(Fj8אplXN|牘 :IFMm[r4V ޤ4tūVÓA2m5GτS !Tl؃` AEW( b$ )06@0كJ!d |{_e'|qTDEFUAǗ|rRK!W0mp&*BIh=i~Di&PR߲0`!m#b8᧤ GAB P,1‡6E4,, LSM*瓸1~Ss%,MUXZkĈ u]b)E $Hƃ830 K #2 (*kA%}@TN[^ė@NB|aFS ,dWY`낈N D$7h0ی,M<`-iC>0h]COa`?X* HPHpA/+*M5c/IJ { AV@0Q}M<J]E!èT@M8Nг.>ȪBDA0M``7S|&&ǜ!EthphmjL,11)VYEjWhy+ FD`ġxF<H 0F cUt 80hrӳ,K6RJs!Tf :i0a$H1 b±0Hّ>(KYz}7?ՉMQ1n/ (NS@ c`%ثx[1'K82-d%ɐZLID$rRO98j x1֝HyRf:j3KT>Q&0IGN"EU((P,1lTI`2H VFY %N0-E8E/T-{c4FH-s_]SNd8WG]6z >Xq ϑ@*U`ܡVuX at X L icgrz T@Ќ< aOh;%2ֺ= (YwV^ %BGBS#uTٕ+_Fn[^+giMm3Q1F<HL,4,K+-"8̤O(qvB,҆@ P0Ԡs tY4QN8jy#s@f􇱎oCHsIDž'K (\p@**^`P!pT#  3 CX] 2V*Z ՘498d8N|gQ߼~LF9ؽTg|'ct4!PA@8r0O,lN(DSz C pX&En=lj=lQQXCĒf6=80LY$C4K w4%sx82Ps|L4C޽" ,N$C%|V$Jd[D9 &hВAB/lXǾKm"\f{ДjAQ3'0!jfL,ן (Nt9R Wꦏbd9y)N OTe|y^U 1)MO[yZz?L)2P,!@ $y$N@#-\ /4 A,@2Ɏ9Gp<˽5T&1m[KkM;}CG^*B2tDbtC G1E& : D!NY~Y|B++38kNMA<#/O#DmKMk 4coC)h-H~C)1)1HU"]w n7%dX;BA@ؓ 9 L< dCL,3Z89IFe⑩ .^0gp7In߷0%M`q A-@J$3 }64B.c uʑ ʠ,Ɗ3 $ᯗy,I)9Ҏ$E`2$S Im$m3%C`SLGھb;ǘ 'BYݙ`6æQ< [1'1H4Dil DA# /F jd pX*ؤ |;>= _(̼xKR3vN/bKm#}yїT`сp@S҈ GZKaD,3D<184({&I(;F%^ F1O bCEC ;<5p@d|܈N \d"E7mR(wm BO% $KXt~%A@6ܣG|@vo% P#$YD5 !܀7b" )j~yF}!XG~QgU&h Q8qPpn TFe%RĶ4%3eK̬Wi%QLPgfmZ`kHiNE`QD\P)XN)O)xPXBUa/܀n.#nOo`Nnw J8v9@@RDE&MU6qX 1g4lECB=ZIŨk#)VuYE /'tY9'f8oW ϽkKSr b$c:a pQ5)!|<4,%*8C+q.omifc% k5yЩ>ƽT "A0d@iTL]T-A8\8F 32|H -\IK +p m+ =)#TLy*}8 P$ 3MmcE,t-C\-6D@H@Qa] 8 $≏yǔ0ځ"p,@L(JC 0=J|A?A/h`Lrڷ^V-aTa9`  ⢯Oa8THC8Є!6X%(KnuroidcG$b=|rA B~,l42U;noͣų#&ь4zӂt$DllGFL N85qHjODr\·C8B[J J0I416ue\8J@s8 ɗ( d65~*:7sݳYaLӐ@a$t% S W0 ް֏,4cxr q Kr"YH5 ?38Z  pr\PRTTD״9逗;_j4Pժbf PaM9B( i^Ġu٨WI9hjyB]]a DlpŠp PA(PSX XSi9NdO7@JHobS1G "^Djܪ<1XA,R"hC e #Xg&Oҕ/a$\dVO,lR1C* CUp 0 bm ]a^oOG+䈕DY![]0B5y(,@HKś\O MfsiP27#"Dc8fӎw[9 uvtWN71Y`R9[mLXƞ|uV mXdO @&uT4`BxFx Ys<`čBBݲH(QB6mccqO\d.M{b HtPmٲs@CƐx\*%]DK!tۊۗƥ'D@41` cQ#FcW54V8s8(m"09cFdBt@l MuSN@' 4YEE*#M|H8IPU">O7-_TUYNus fdc :3oEQ[\Wxg8m()o!t($q\)ѣ$s 2D3_l&!,AS4IeiSGg48$$b VR^( 40.P !?6!>!H @уGS3 !1AQa q𑁡0@P`p?;Z!HN'Ǿe=Ǚ';ǿ{苽="-~?}q'c&mBvxS,ow>ٿAg1Gfr쁟HK$`ߙŇY߭,p^0!߻k&˙9$Ošlx2י_>o>He> eom-[ci3x~ 76аl Lĩec08: xK~-^}ZYK~9FXz[0t$/i(<-RD{!s?+'xLM/e\,,{ўy ϛ;D$!;mI훌=<;%;C6ɳ{'/yuh+Cgs})ORvmH/2/&[ϊ|gG Ͱ>aaeߪǙAbcϛ\"{|$*>o͸}.GQcL|݉#7/dF 91ĸXXds>lD&XOl~?VG.+ #oϏ;s>g<{~>W&pw dU*BS̈r?=(m>'O9o1o~<%rl"EKbAċ$=<}-㛆so2-\ :m#hų̻r|:{/6KZ.>60uw̄Ngn%ע<;a!.#Ϙ !m#ϟ:x<3jTi}:b~èRKNzb|J86xDzymYapbY>||gHQۉ ٹܡlNlo>̟ =|XQ;;G Kټ K9ibGU6z"|?W{ûmf#w=f7ex4:}iᶓіk@m$,z>~crs!bZ9>FeH{'>!`Ȑ?Kk-=z>Ǚȥ˟2/ȳ~x#3Mv&[S6-yqFS3_>>˒[CE[O wa| |`W,'/vgI a\@>n]zcFOߕ%e clo߽񥥿Txb^]½H^%Ikv1O = y\{Ǚ'y6aAaGܫ Yqd{O~ocx0vdKco:\:I7/m>}VD6r|_b?L TAZH xɏ}C$^bήa,=m?s=ݶa)waaaYdy珻i[%>֗[[[Ϲ}~zF.s>Gs1?7"T4$}f< X㫘CSM)7,$|B08=ORUn|(G֎w>Igrݤ|Dx2qu1Πl|=a;6_%rYs`~K;՛/9F%Oo$oCk/cBY_b;~fߞnǝx/y KeVμ>s7e vN?iܾ`>g@>6->+(7XM$s83q!'\|Gx:~^}9ݢJcryI dŜxg=@M~#Kͅ[.\>v~ʵ> ,݅B"BՎwMK &Yq}_/σ>|{norYo)s=|qoy<s|lK9XӶ/>,]c竽 ciq|HGOA?v͠#~v / Y[8Y#7cim{,KG,=SpG1:ϪB{ ρg2'(Ӹq)+v1|ۇcӣcNr>v8~SӀ } "'n@ |}_t>P>?8GqkZr9r\zp݂]fbǜXxIoZ~ ^gm_9|K\Ź~%=li{'Ɩz?|Џ?cP.K}w+Z>.8s һL>؜s7C/aK>~֌&} 0aχ(O8_ż6_^~2Wb9;9.mtmdf<1o9`i׉)RXw]M~d|{ZۧzտX?Y6>}z*vn6]א/FnC8sqGG_g8Β)H\2ڌ::HKDL?F9r>F^VGXO i w=؅#\7?c9d,\=°;ns>>ڗae.x;6`7dM  |ʌ-^\ uygv Ċnc#I~y*O=j,u D8?_ aH~׋/H?d,`#-G^,XQHqh}K 6mbzp(vH@CMȸxc=|j,,4ñ|yZ$>S2w /H[{:Oʆ>܍m#߷=svq;%N:mH|WZCDrlsdΒz9fСHHm!myo{Ԅx<;lq2o'r_=O^t!Gþ:!`2G0k`sqN=d2YK6>g>3eeݨ09aK?86xx>Hw.Cǟ{,Hs-3O@rNx>W ^VC{^\ex%mVs|:[M$vG;KB(]E Zfd?x|6luus3-,\xom}mZZlLă8lˈ5}ؼYcnό}%Y?|2v$/GNX ߘb_d}pS%`J'6<:?G05Oqup>~ h/|_-qk},nݸQ{;IոsՏ2 yN3s.d2[Cݛky^ǿ7Vp۲.^ZZ~d`Xl6utqCcw c>n"8;dQ;=v0rU>b"C{y_Raf! kkB谈% Z)0hxg"c~-VL'V]"n\L;O>pۛ<|XdEA ͏V<>E%~ a|\l!H=|/ %Kp獟I?OI޲\H?kk(Glw+(\{\߉79Dt%;Rwp};ݧFld~%f70rWFL}u /EbsroY@uuXs{~`ũ anHa~:F>2w=,`XÅ˷z!u9z1nGXVoW̼s,N:b$Sd/p6g.ܜ/Ny :ږe,k=j{_'9yƙ&~v_Xn9yn+;79̠G }.:|q~Itu?eG^ڿ_Bqx7&Cl}1A퓂m˿3{ 30mm_0:'.~K|cϏ?SNopEk2s}?>q1lt+9|KavGGC aro829tOv.qFfZ>$./7 %v_lu +IxpaN^|_G#6.{σ(~|fϡ|_'#͞}.,K> yώ|sG?{?;=$t^t~9nG̓kh7pmͼZYW`cΝ#2?G#^>~n3l :f/skuo̎t̐N/ |ȕԃƭ6>cΟ=dY忋|b{m{rN? o=xL!t_7^pk+ܠ"?,\}>G:_NLvwͭN 2BZ۬۞6|g'pӾ̴s>?/̏wՐo$oh[1`: DA7̖D[Xo{}}A$)|z;m6O~mk涾'eŞ|K&=`OНlE1_uu>b )(tq<1}A[禼h_Wrf}~|FY4_;}ߎE9'W^2Kme|kK%XɁK>iYᘧǦG:)"O~|lwXeͶg,pߟUB C{ ;nN' ! ?Yq~ɋ~< a K$x 0j\w񖷻WsW{>gI:v{3>-N-& Cp|_3-mWݷ qG+1ex9.G1XazLrNr~'wlfR<'Ė?_6m8{?\_zF^֭}pN?9i 8>K>V"Ußqi#+^;såeyJܻsw nrc9'|}DӨr0X=p;|%ɇβ.);a~|c/o6x/^s@H؃ nṇmnSûj;`_Wqomͼm1~&kYȽMp?d ubxkxc>.K;ǝ.;C0NۺI~ ?]:߉_;ߧ\ox%]3\w~E'&?\wyX&Xט wiks{el#{-S?i9x0|-wyWo{d?ߙlY>|"}<~/?mmLw/&;u|Y78r;H=F0&ٺ7?~>$wx涓e矙G3NS8m9g3X9~'H`}Qc"|JSn0OH;ng>g$;X9sONqiXr}-?},Xv]w< %ł4HĤ ue8:,xc@|IΏ"} x/.Dl9%"}!_7} =,?m~m3_ü?}!}܂! q'l< 8p#&ua9.-xع'cKOPJdVߩ>l 9Y|fs㰀)hs32ߞEBYάV=:&(_r GN~a.> ;<m7'6azr=sߏ{̾sk6gi~%ͼW7c-;Kbso]Y|@#6Z/d㿭~!ldm>G3ndw;gd]I~}#O8չ3iAc8HN;|Npݎdam-ha>}ds> :Oѹ^yğm~}cOpxO gXl#"|"br?霞Xa<j[m-}g}>I)D}kk?6k:F~5Y|k.Al9Mcč# Cm?ngOöNV||,6[[_2?ϏWtp͔gBxH~1M?#,ZJYuk3Rl7K~81Ro66E|S-$~ }`Ovyde]ߌ?f6gmwMD'Zc~n2<|}!xf6 *\lFHf=[i~e)G߿[ m[kssk=1dm0{pyqh G9 t.lf =H&CfRGcO/-|6_߀߽o6~g66Xgdޯf{&O~av}C. o=OKmŅ Du:3<@bnV{dѐ EvNLI3c? ~PZK5_ m}nom-<[_5elwb؈7m-<{ekkkmŅ2qm]J|Fx)e\+Ͻ=r]'ĜZˏq"L4r}nHEO &˦B3>_̕8\>+w7|wm߇^χ_<|[mmmf^1mmammvn#̱NIz-snu 2;mYZOF"g+{Xw99R)}d~:~S{orُh#Λ-tDO>#F-&'A0 [[[[n=ǟϏ>lz|ϛ$/Y3͛~IIQ>Ox0?l(cU=Oy>1!޻(ŷy[kK5E/%>~Xg8#Lzȓ8O_لxYNڜ~ oq-@';R s@?FcUؿ6"קkQć0A> M n2Ǐ<|s{~yxضm--.-O}\,ߛqBh>$d9[?-^XDzo @} ttSo|Yk^㻉cQ>,Ϝ}n=k"獖x|)c9VR#3& o8\sũh5|9rO`@M wb<󳯶 e6"gۢԐ< h0&do Ϝŋ7ܾ,8w/v鶓mmx1`j #K0m~6!mnq_i շ\c7?|v|<|7h&+laF CEB.3`Cw VI0ΐ;\nl0p@럴{>pqk3eG!k"h?v&[X&}\x!Gaə߷p7-/9#e\qc aXQ\Yp79+;&}^oaggYd ۅZL #l,ccDM!_6X}y,l|v:hîۓwNq.~xdhӸ{)a\-v6' O()_oIC{%YM0; A㻱'3L Ł'?yLkn>}so!4.ϗ9Ɂ]2XkG8l={;yo, ,Y!&YYe,,P0ܛ'~;נbIŞ=-+GD."sïtt?[;on9s?O-@[7*a7/uu+ a[?\{`|Y^*a[Oll,,} -,xee,lca泳Ck6{dHnjjWXDž~V%3#1Yn?-|O4>/VWy^zd?F;t}`B2}N ]sCΈfu ZZ!0!;ʻC[6/6 &@, ={Ycce-HWf}'/C O/>XR(>2+ ndBjYg,+Ϲd~{76o P4~~ g>L69w6:~l>[[?|{H<1XE_-vCLW"6)ۉIkX>a>q?s}s>~샠3I?1<9&8o1R \I?6 s6wn?GՑe~/sccd@y9<Bag,Yd,6x!߯~mniiǤXO~xk䖰itL߽A~X n1&bHe<mm嶖k |-LtW̶sɳ|'q A ĶuqNF., x>CjOGHi~!:XfwG6G#}nN@YǜHhψU[1X 6|ܷɫ~K" )}{YB–\~.n`/?Zǟ30=\ϛk k CBs2/3Oꇞdlؿ[_åi4a"c |5º%EZ[фW^%uasq8=KwQ~w\qhs{G~ynOH{A 5:'!a{~Om5&AŐAńY~ ?=.7Ӷ>g7?6CG^~ȸp AòLj0ձ1?m-Ʉ`qtu2бź?,:LYq~\أp klJa/^!/˻tzA({?[>ٟy8ur,q=Ohq:Hv2wYL,Yō͖{>nw>vs'|:}_/~"n>c:n3nN~a<|lѐ\ e^.'_'ȫxo67 qgѓX$v@{< hx7c-6TfU9ے~8!f~pqwB́~$n.]\DB~g? 9ecxlj?~X C҇6s/ۛn̹?x~[O[W~/6G~IC#nM.Jʖv r:~Az7.nzp>?m9sƦX}n} ^\|iÇOscbN{>%(w8.fs |4؟^ -sG?Og/{YgOJ;b mmmRX9{#Rs ܇vÿؘȸ΋g~c\}2|9r^{bA9g??3Ô3G! YXWl8Ĝ=۟x>oIdݵw9 klw/Z[oĶ6~/Ķm 3\B~/`>04A+:5s?$Xi~ď? j>dN /AwH4GnxXPxts8@6sxgp4v6Qۀyu- l~Ԉ~Ͻ=}O˕$D){@O-otn?E7?9cM5} YfA2>02ֶے<ak~{VCIFdg?ͷaǞ8zÌ_sO4.%~_,WTsnOA ZMa`SAvh>YAǜ~zh01c$Co_|DBq Rx}}f=-|[by|mk>01;a7>F|.%|7sUx9 }Zj:sO؍~Vk?;dcd{\_Uc>^csB8sl%@ӎ~ѐ9rc3)caԘ8? 66{^_,ǎ9KfKs}$t:\p~#vm9~a9HʿD-mml}--yϟ 9"ϤPO, x}>_(?Gn1/Axb2Vl|; (:z N/ ɇV6PeQ7u&LI.p&dȄ1?)=X kk>y= f2Y̮[/v"r 09[?Kv 'Οf>O h|Yr19eR|^\Ep~jlq}w'N poBs!9>^f~VgYiA;_isćWgR+? !02w˷#p{?=mw'vbOwD'07CGTgñ^ /f>a[6U|OE|Hܜ^:2 ,b}nz^nNLzY^OV0Fn?i9D}pɬ=+̿ \>o/7\|O'\p@7uj7~,8 _[[u@';xw| g9{:{17)͓Jg.pే'.mi M 'oڵja|Z,D>v0m-@෋.D|eq-zK7IDn_(eχb{weP9.}8_N:U ~?t|_>l?߷,?{,'#j㏭0b̀r<,E!}av~o>;{@>267߱0n}"pˏ>"ďrkvݼ0:Ohw>Di9޹Lψg9^% on0mkkk=x͹(e`CWK=P|Ɲ@Fjq)tjw޻ȅHguG5A:-vss~kw`{u->02PQz{!8wӻNvݱ߬,6{{Ϗ~d_?yژ?VՎ 6cլ}'0m/'9d|\9 yvlw vϙ`mgemGpiBk޼k/o?M8>]zl3ɏ盓+|a'~Wx|OG@9r}fd~\_$u:$8Gͯ ys;୯վ6F_>g\O=_89')s`_~ Kŷ̾=$9L!|YZik&at8jo8c!"Ap9ͷ2W\':,3_x?ϓ]珪.LJ/CX]ʜ t g--]Yps16?g}K,| <'?\퍑==Cj..-@o7'W\$75כl1՞lwz=5OpPl?ZԒstuiVyO赇|g۾3,t?8K A,yݰpo64Qsm@?("$8ރ`0|]?||a}dn&vslr %'>1uoǜYcc~d-_?'p]> }#cd ˓KEcqݵvL'(9xql<@o'6A\509x?۱~s;Y1w/ N~Ͻ` :J~p9|9܉gW]N~u_ SϡI㿀ߟŭ{?>;%r%I;g|3qo@rq'dd2>~/6Ĺ>pGrL":g,$[~H~>/Շ} Ƽ0G ߗ9Ow:5x҆9䛘|gr:9}b GqItN_Iv|ak,Psx%YߞCl;a/?_?c+ǜ#r -O#uǯ^=x=X{d'}p9?۲>$_qͶsb'yZf$ef+d=_~&Dw:\|Ny~b }佷/.:IT8s#]?~W'Kѐ3uK-Im|;ۘO0 ǿÿ}'9*ߟG$ϒ/P/ l~"KO8\gpLe}֗"LtFy[r'Xsv6gHys+L,_?>㷸KXZo7~r~Ո~SZf?&m:&6f8]-q7Nm:ϻ;;#7@xx=|.Iϟůx8$2q+~ ueG93Hc&Bj&8x$|h;[sd/3=.ӈ8OpcH:d: |ϗsH75 h4zn ~a8ن_k@ϔvy<| ,wߏmwzo;N8'e4ޮF?$~|=Zr?1 za0;-|\Zsy>\8r(đt (|m ]˓яRn?Uճ9y49$'G PN,~,4} rfjҬg:O~=߻~.'z़H_F:|ϐb|?{e3sP1.6>e/ 8k:N/}8qCL$ބq}>d?afp?sIke0ns"^J// ħe tZйio>|u xwa{߿Ǻw;ޮOS8_1eE.Kmߙ&3CNI۹<c"J[me*ן??Ys{,>lo[O=~,q} ;:ow!6޼|û'mY6~ݘpv~# b!( ś]_~3p"|8'fX elyREf~>7 Wq/3_A! ㋱T sp 0bc?~{`@s;ߟ?w6G=w2[?{~'3sn?;s!3񟌗luL+"!A]Կ*mGΟ]+"jx#'ߎ^K~PůGX|}lE:U? s7uwžpo6\f Io7omCŋ1ׇ^Aǿw،x{q>WYuo?#8XH /x~%89`"o~_7~7`dl޾㓏zIqssz'>;Ye%|:}wøWG>^>԰,(lP\ Z@0ҢKL]o;_O!ͱX;Y~{Ѹ9bb>"'^O~O|{0s/Wo<9r}ŏS.|C3{OHa,rOqK@$n~?{ߜy~_DbOјĮuh+s;]O@|G}aNz̯}09qd،˖v~qޜ~70-y> d#? ,9ȂwgLӨ} ,{/16>k3KߥCz|Bt,8b댜~ywܱ˟1)u9[eOrLx6L oOlЂ<c.8} P'9Ǐ8ϯn^\~w"_?OYNQj Cl"n ; d6gñ1Ggb_p?{e|iivpyH󿼮wB>o^k%{p2v?M$wknNϟA||Im!x0"OO>seg=,?Gv6OyD>o ϏS`qs%kkC}gͮZ|˖Hcez92s(saԜh`Flrػr;?㿛́aw'?Gwv'~q f~-y9~N.Xwt}%dN W9]So.i'C̨y ˔ Q?\ ,d yAd@Gcqq6 n~d[,?Mu?pK7I0W"b,q%ya3=hr;C÷%ޮ7+vF8RGOCe./J_.FopD|XW4ߴtf^NrP E;J_v}qј a+ q󟕘w?sagvYccߧ3 ~Puu=7Æ72 ?w?Hk,8 $gijĄe94Ͻw0}2'0:o#݄N{A/b\6gyGebĤghv?vWdspl]&Wɝr\ܝPsM3rG~lpQOB:AyYa۷2i5?%s>g7b&es~Oo9u/̜q=L u{2ӡp6}dg?'ׅ(`w:K9O ;ᓨ9ۿ9þX}r];|/@ &I:k(ue} ~o(]Aoݗ\qu3iX'(uo\G-,~6qm~ak.{ -w{-?O~qgg 2,9-C};H  dY̜x91&am%WO O&sGM;'&?S6q'8N>!? g?{`7ߧ~c!IǏv^U  wclc@ŞoV6~>mLOw%K|k+ ,_cz7~ߡuŇJ0祏\X^7yX߯36Plo1>~/3g=ȃ,\_I{Ē[,|?}p%Ctc/w<;/!qt<9A8}` g1v9Eou|eӫ4=9^P|eg[o_ſ{[IqowϜlo6[?߀?seq,jc_A¼}`pX:$G5߯gN3]{ۛ+d&8-piqCq 9EvX X#x2O, AyO =ǿO2{~`4ޠswN7;y8V~3/nŞ^qKSOտ#|H^NzG'͏Öx=%~ {#6kavó~I~i=?ͬ_>'ǿMYx8=Ozpg7L0#'VU7!-4Ա(>!9^Iyÿ !: 3_o}~3w= 9|}chc?(wl:ft8?ϟa|K'w% ůIcߩ#z/N.ԷgMQs8v+|qrD~.n7yHa$#9K\>7l2 9_yspo\n \/sh1PQw- 8~?/2\\C3Şb{|qz~$_\O=7I{z@<I9GZncA?{G?0=6-cm6~_IAaྔ;GB%>>,DO.x}nt'}?FqNjm)ǨOk #x',O9 3{y@$7y6P8cKč$?ps}'#4?׀A2&s'}AѰ0Aɰ~Q9yK0@9>]zsssR_v(m8|Rtk?K?k-xc|' P uu 2]-PN>|Q .~v-O?OpǤK {},-mg79?+Ḟqtu.wvL|Ce6%g<8,>/v{˼ ;:z q9?mmcwO!cb={c߆XxyϘ4[KMrDS߉9ԙ\吝G|x/c:͏6_?H?H<}?KK~>~'>,wH,"l_Ō~}_ƶ~k[KI|l?}6=8|#vo$l?lO/:{տ<]Q}(ve??QAO >+yY9w7|; ϥ o2YͯX[88"-,{m>=ZO1sQfM}Xެsy-![C<qvYeg?ϋ{.=;?Yua<0' {gG~|OOR~o~g6X_ǜY%Idc,/* _Hl},E/󿥻v;YrcdzKYϫ>?r=6Ic~yߙqiq[.m}{<}ˏ7͎saagL|32>/hg>1ga-Yg,kY; .<}˯8;ߙ6>=,IOy1YlN5=ݼfOǏ_qͶݖ!7RJ Z99Oqݠ;?_rĶ?[mm_w|q &[Ͱ{lI[SaϜO~v ??~ a'?X~k<5͵=H,gc_/ öoE[gq𭿃oz~l/? <8h\wq;f%-6 ߛ̾OV666_@ޠJ06ŇŞ'.69hsk,bx/%XKy;xzmYm _wͮ-mcmZme?(m|;Xz 9b86NA{/[FVݞm~Wm۳ Z,mX%t-^=1@@\}---e _+kkϫ/|~#u ߧҍٌ!!beck0klda6hY~i˼ QqP9K]|ZFHA!s4NaKS~6Lmke+.xnOyͯE<xwXJAǘxyOXb'WwН9'^lo .<=g:ϡ~󵏤ӋaQk ]}{;}}Vn1 |^|Kǟ=Y [7|r߯X~ |dӷ+ovK@Վ{8')q.3CϺqk7g.$m}{ =Kx,|'|HbyńumDZՑ̋Nvmb[|Rgm^çw7KI6c_KXAϟ7oť3=ĿWŏ z: v:lSߍ;'{ 3ݟ]7~wxշ,>d9co`g0r6,w|\6fԅcŅŗX $3$/_HӏNs]#nKyǘ}&Ё.5]r;[#Y?]$ns>=Os|~߿?9J,gy;z?#x\ _vgmY5,N$rLbakkA|~$J%?^<{+џ 3%KᏋRrY?Iن vnJZ}<(`{ v˛;x<=Xy|3f\ amGORZ[B[ͼ}s=K8v\{Op|-6kk#/ǝ;@#ݶY};CǮr?[,Q @l>/c>=u߯v1&~o߃7dfA͍`?!bey@>ܳ(&ro9'{|?Yݵ[wn'_Bصy uX׋ ?ml=-=׿<[^8=wESk|6!X7v婌idya׫ϥ?2lܾe3<,[[[XxyJ͍< ܓ8=Xۿof]_jQ7D斖ϨǿżZZCq)i[)͋Iܷl?+O#,rL̾|e"t?3ls$-2q%Bn'=6Ys+atnv_X|^<`4.?Y1bV2w0sݯZN7؁|H-_CkZ$,X} @ͫ 2f,@dϴP?suwo,}Uw3{CʑmPnyKyd2u={ss!Ru&&b߄e]yd]n 3=;˛KVo鹲@K}c~TV߽~7uiխkc_2'=l8gEv36X)tDRd cy\fx]|܌z-ev|A#{L~Ht'7͵|l؏:Jv!{ E<\gol }n>sjO \]C;d:۵?oskz'ߝ<\ڐ5ZGPmmAdduD x-/7l}l<##ORao9{DsGwM}#&ɳo˜ Da6i9<w'ee|/2ݷOq#/7U$tySf#>q9w8q߀ۂ{[aϧ'HG6e<[m67?)ܞ:Rs㯄zhRsexY#~ e_klPsl99vxy>a}ki o=@qm!~`CψGvrO<"$7G36'vAeϿ>?a)tPr{ܻ YӒ@ ہsikp 0pIաX?~K,IY|_ymJ[%6,2sՇ͊9O-Wy,,=|^O~柄ǫ˰GwF?g\˧gͽ3=ͯu$N7>ɞ0}}<+SgaW1 BOw~eû\ߛo~dOP{$YťZt},.ϙVw!acH|Md{y<>!|z_vc@k y3/l.G~q?omݼl~ c$#tsȸs$]JLnK,qs>m_YݹAݑax%Dwb{[ϙr"vWd7TA{m 6Z_3<DŽt$E 8#GH/ɜ#xP+RexlĻ D.z?|_c= }bޙwGpq0[b0-3Y|lOq߹!Y>%>ong%<Y')?9x̶,>a|~'1?0o>&8#zOg[0 6=GqW̯K xw1zχpw%>e6NFHvX 6oX&ǻo mu13z!τ<[1 $?3wyH؈KO.">dh.wՍA'..<,%3XCYym#V^rz}zܥ~K, ۶xo?? =[^:' A7H?!~#LͰ?N,HZ<;%Cago>qzq~H߯>kqw;kmi?66I܌1. ޤ>,'B gH,,a=DYYêY\Inyt7dߋ;ks06sAck̑EK?חc+%9Lh޿ q돝Zw|G#[n$/ uG\bϟ?:'^|E~|/|F_{ Τzwߜas>qo KP-ͫ%\-~~_ 7 ϪH-ccc/9,lK9G?aDZJر? ?oÞǧ^c},.[|!?؋>=y͍?'u|ϫ>l묇[X`0H8y",-pKY}û'W>g#$Y6Mx| v H͞^m|#?Y;I2?HG6c:8e&v:y=m[=}O> ń-\\}'.."Gmmrˏ¶ccaיsznc\/~osIK|o~[F;c܎,7 Y="/q '}mccLj+|K{~wĘ? ;m;e"?Ot kpK|AsgA||׎<{'G,d=в%x ,oܯs?=w,skgˤkk!<>'uQwsgO |{vX=1`.Iɞ,l,HNea<{¶# O? ?7Is՜AbCN,Ֆ6H,Aa|/:,K$ 9-/ɳ{g~i Cϛo~?- -ѓ۞cKSM9w<u.XoO;$?{{ blxdž,6NZ[m avS:߇_>͟}:$vldn\aͯV7;o'?_2q7{ىU9d7:\f1~Ӝm7ǖVo @$c!t?I}.KޒߓqV lmg㾧?y뭭~f_O]1ᅅĞJox>L3%ocφXvy,||[X[Vm}e[}Ok &|2X?|sX|{bO Yc,ll|bŇ qGnm.} țetwυx,qq~<{;6$I|^<7=<~-~Y,Y,,>~ ׷r"NwH퍏Ycss^,ll| , q Pyg y|Kt[mOqy2rYcj`y >g|vܼFsg6߿!ݥ~~?LJqagijbŋ;}mSտem>qAǜϘ\@1t㶱qd~%ς?\2b~qσhoȬlF6;:-<2Yae\Ygɸo_BJNxNxEe q9/4:w|??2oy;8IOVќnw&2Qlx8G%k,w~] ' @lj,c՞, >2@/:?+?d6my,,<ǚZq=o߽i8ZpOŗo0}me?~)9g:$Ye?/u\WzZ7ވ\a&palq;fi+Hes$~ojaR8we|3ᘳ`XXX\{XXY#sgY ,Zm-u!2~$ `BC`5>q~B,S!KB?Qet+ۗL}П[KOߡ9<)6.W2.Ǣ͠w>C,ı,l̲ɳeAq߭BO~qO"~l`؄bYx2!9]!m'\#8maW'2<'t6ż;݀XK13~^r޶ywlšƱ[,B?$u6Z<yY0ՇmmKZZ~ m sg#35 MxCsu3/ɏlP-}v 9!6v \Csg8`{ߓ^KGYIy .?d6Jr A_6wkσpU~-Wg?rv >_$Y #+ dG0b5x8?hcr_d7ˎ0uLCwN=:"Cl..'öx.-m8%%ę_7 Ro[[T9O^=C#mm}s/̱3[597%>d59hyuon~'&|IYaE%Wl>, 9ڬ90k,d }-;+.lua 9ŏx2þ5(dM>=w.X必=?'q$36Xxw3}?Y˗+vG/[D_f96'p~6C:ϩ`yS-[mٳGc|Xxmm|׻}^!Ne,'}{؟Ʊ;Y=_W==?76ΉKs8$70,־ mqyk~/<[aa<|fIXqx||P~Z}-O5m?m/~v䇯~eC>h7$15idz'3ݏ?r>gB|}.?#; 6l! S`;;hd$ ({.ykѳ'rG"~W?>q/-/i[e  \Igd垯/.5bahn|\oRnAj WV<9<]~lLx?8n׿eVYDxHYECGfw Ͻ4u -l¶??{mJ3-YyğO|xnkx#^;|GG kk!) vN$h)@>[\ ~tweFZ2Z.wĄ+vwq?~~}-Ph}N%>LvGvgwe{om|{_Ķq|?%'@N?>Ys?FyvO_Y`Oyx6laĹωMÐ&p%ξlut>0؏ .Orjn|lH:6ω1|ݭj6odi-7mn='̅sg{ w$%=}.{_w{㹃scc v>R_͞{O29lzYS,ȝXk 'WoE~^a.s'͢}C+amm-ǿ+u#=OY"GHϋ,N~?HX},}$YO~03zzxNr}ł_F ̇8>˅Wk~OL\|{zͶb{Pm7e^>O2go їYyX~r\[Wc嗞[|܆u͛NrrUvnnG6K(ru .MpO_emd76XC3'z> [>_/|Βٷ͵H ;]0gs2[mrNljb2M3[gg|=q+P>3#Ө9aӆO={=y~I~?A|mx||0?SK _j=vx'PgI(?Oψ'NxuE$}s[Ad`G67?7ϯ^qmmͼͿKkg2yÄ;,~>~c_̞B/Ǽ~ߏ?Uwb9B^fc<6vٸ+;[@]}|N#kOuM뭑Cã7hq/vl;c^g|^m&~OP:\u Gsiil66|,dz'r'h>ˍ:mbqˆh+?7oӉ[gÌ̧#ŏų| EП7klx{}{-^wϯ~370!,Aϛm$qYu'` ggw$֟FqhF:2dBqdq^'-% yu?)ռ_y<.!B\r#]Lw1nOm-&sw?c>qc4[g7ωӻRKd@Pie9Ì|OQdڣJJ[>)sy I_85_DΧO_w ,zuݢvZ|?gBm~VIqo A̜d,~V},Ex{bBw'go@=]tWX^{`ql6u ,nx /33x}#$o=vׁllSYbo㽞:5_f$5K'83Py.N%?6[xDo3Q&>fD̎9;t>3ُ[b7?Ͷ K,=zfym'm|:76_myXze8ݣͣѶ/*3$<0K<.:|BaqD1w?[oo[86?NYcYԅg,xq~ַ>/#3;_0I;-1G1r G?IpC>nq?Q2%\+8˰e|BG6 o^=8Cυ&6:{ic?({:='{9ĘY5$X>lsSh=xp>'MCb#32^e,} /I/ϋgR6w0#{_Fۡ[m[-'?l2DձϏ~|['o>-~,l-s?3%'_G1n6>lsl9Nkv]zf~ f@&EnN^;#>FL Yi'2!Dua?wqq/{X~x?m[yl,:Ṟz<<7?;8BB`]O;57IW/Q N'~~&%Fx!CWhXq"Ͻ>g/xi-W C6G?=YjDoc``xlm|gF?~X<0FX9q0}̺#>Ax &/co[o7gko2͟r:_6I%yw.}Cu1Pߚ߿x76<9$pdI-59š {N\_?#V= X?deyx|1n<<&O(S胜ļM`ZWo' "=}R<oo_/sû}:_49a,merwnrq}g SW79ėd`Hr*w%?؊\? ךG=mv>}zY7{|Hڵ|NJA !%=D\3ȮjFY0lc ya؋Y|"o0?ܜk?%nlwo3Q{nd!sv)v(Mع)֧ȟFځ+c6 GG.f~70ߦg{~u <KesNdɥ+ڿ5x,ZZ9$/#'%v5ϥakIvߒzYg Prd_F-oÿ6gσmߏv~K$~?Ҷago>3@C-X4>6fy^,;-v;\dLA$ԛ&契Cy>}|3dE߷[mC=Ϗ܁osz~rOK@.⌺\c'1o lA#."LNI[{᙭1cs_͔{??E-oG}- \O~ MLJ{=PIprߙL/龵9qZP%}|7"䧩z @06Eߧ.'$}',.|{ >tY?x mp#ae_E0C 'nm|)fSg7[)'躒#;|[?H}#V;>=O*Øğ9Gx}mU\},}%NDLs8 ߛo $F~ڵ-Ziy^mG^s~W=~/ٱ8KAq9EIb}7.?m2j|0;el;CySo/?nx'͞-ӻyq=Ir|oV;x \K3av7Շ~Sߥ?^# '=Zv9'KJJ.L|YGG~;;ͤk,H?kƭ;=ztO}mg9şnhv5 ?[`pY/@> =]An?>A$#/|kH`ہ_ ^Ϗ_'iim =6mwͲ'2v,c6nxϔ@6bMͼͱ "'LvDqmil6m g_8W݇Hm8cz\Lߋ-ۿǿuK|7[]> WrRPoؤt>{Sh^!\!l!:.m?8y,̞=zHKM_ŧ{;C|?eb\k0ć-Om\\_n7bo?XXY_/o[H$ f|Y)ks.,W??0avNae/6I,,9'K_\ `,}:}f.'>kl[lMKmJ%16R&y.= c=mss, OIV|_7ϟ>尒%wäm>37Y/>eߏ^={8ؘ'O!%Yy[z-|N/3l.LbA 7oߛ1㷅r^,6lmg'dm|v=|8cYYet!k{w|~.~>c'pʗxWiea۷c12>8R?w>o%r;K7K?]>O D&c m1px+-Y}4-YaxV xVq/Yq~eYYɑG[[g~6~{\Ov~# u?3fllm22?H RB,Lxs?;|^8 k?x ߧO_vqay.kڵjTC^5>YY­L8u~H =N3ǩg`~M-Xz?>N~Ͳs<1gˋ_O/^,S|B\y;  Og9aqa'?{?w=<\_?[8V7YgYccb.,$<'Gp>O=eXdl'?kkpw7m=KoKNמng_~݌O,,}%m9>{|Y?>GǏ?w7_z~I?Yj䟭?V~޾m|gDGm} Ͱ^6[}?O/gݜgOOnϘ33ߛ+z77ss,S={y'6o!8K $lnn|'k,??͟EhmYf<ۛ#*Vߙ帅<>X@XFgVI+KNsYm]Iϛc}ߵK6?O8,Ʉڕ->v'I>6I_lױ K?K=45mq]~<ߧl_>m%@_~=m->K}6-aj͵km,}-?l`,}N?>o7/;cq$3aoϫkkm|K,͗3׫ O<ͳe#r@A?Y-nm?'},lmA а^?l>,lc'G=Eχvzx87_|dg޿;g~<~K_l$,,,|e7skx|8dmOŖx8شO;/ǿOnn~B^,wm"g_W7>|Oqc9?NdItzOPYϙ|]ɗ?H8Y͟ŖYaȇ,I?N&{ ,g?mukmxy"a1sgvXXYs$g=K ? cJ+ϩJϟ$x'Y۟o,8#fؗL,"Y.Scg6s.|aN?žimo yp[OÐO?N{Zzw=>?_3my'Ϗ(mXm=l'ǜZzroٓ=㟃,3׿6ۿN~Evs߇wͶ6k{7ž|{=<..?2ٶ=_q}|'o$4O?f6Nr9PLo]%8b3GL0_01KfC|E܌o',A4fN*Fy~+aaxؕިc9Gab"ze%ѬtNBd{i "%.dbCdLI5 q!vb"' 2㊔@,b{909Jșy^V &o^%DAG4!, tIH8r-CFY)2l AGR$Rf s-+ S'bU<3V 39"uE32&%-p6? &A\"89ibX$HTG D.a: G+Idv = A)C%>4C~:(lx>L<\G;y.1Yr)I7Qz̩brGO" b1L!!HHF4DlRKȨe $D5c,8`N|(vO(4!NèIP,)J6B&[ K3BdekdK<_DW%dH.~(9Gm6Όn9䨍5jtGHشDK)1@|d`b!),)v0ij& h @*qYu,8@D!ϖgI#)$HɆqZYa؍SIFo;4~D=͙08wᤉ%-D|UA0z  bRB !0) L0|Rx=9D :ueD0dN0Q2oSNj$ g$2g L3Vo,PAHy窹_'9{e ݀o92nى@LQq x H37u 1ߪH<&(B !1,D35b3q`iPG{`!A#&f5A84!˅+p9"dAte μ氀*@R) Hg9! 枔OuPI(Hnpf: =ݕ !4v'P jB:$aqQ؂V tu\!  8MC"U 纝MƼNPxN#I80'P.0HƞOYaʫCØ+{*a>+EP1!/?<zX,/UD" ÆVh1e N|pd ōzaӏ?=Q$$ZA('bce%u'~Pgt:Q'uا9ys bYw8qL"y(\@4b{[[|DT+=wZWG⶞>pOՏ Yy("G16 S"% 8P8 FeS˸oՕ1 Bi4/ 9ґ$<-LL A NϚX37@UG F0 D/txO䱪@i'Q"ayDmePg늡j\S qCeQ&aNC10$$,dԀ%iCQ|yt??j"c OGYN**',|AN($RPdQd0`! <H0}}YrglGa!9b'=3;>P8\9Nl$M`7Փ~UD2yh81O u;W so؎&DǫfCb~GdHcOs~}P\Ff5{d(GE|s |V/Hs<"b, lNDPG!QX9A3)'JQN9hBr&MY{Hxb"_!c Tc`Mr,÷L*#gźx/],o[!`/&PpE>( |6M !UFsw<`)͡x tz~jdQ`sЍpzK% _7 ) | pO yN1 zFu@Xw#)Gł@qKPL<8q䷘LfHŘɩ>iTv$;)$]М% v &I`<͐D9?XfR3D!2Yg@h"N-0JO2:XC,L!D P"Q3]b}ݓb 2t Y]މbD8YǓ%2S tAޕ3=9)tOC^$vV73\&5$ȐIp$jO]:D0x&@';@Dѻ2ǻ#7%"LpNyidXAQ(&+!*1Ig+P\o9L{€4:h$,ԞlgK;􉊒Dr ="8>S yb# ښ` ݢ(`Xi(@ )P)#axJY FB=XDAln&X%l(`,Ga{R 9sL A9&A6#9vX$pvԞ fk^~isrndu0w*#upz sA>)ڑ?d9P+ļ<@FH1T*<]KY,p V;1v|PCE9Bbc;Ͱh%NPcTZ% P FBD-tXyipGgJSαtJPAhX =BL"=PF<8=`I@1u2nK< BDl6*āw7Q EI"7fB5K@,R;"@{%oH8С`t Ym=fBDĈc9 ]`,$`W-&,l|В@A( r&B=OFT"O 0cɇYU|!DDg<$`$K"BC3願xfHB\:)L?t 9"z@b)))JtVW^ 4V! @9P&s~*V9.*7VP=U8LF)o.@_?v&-|e(OTӖLw<*Hw dTǐ`d}U"N#%TH-ɨȯ?4i*yG. Cy,(1%H9qo,.>8ݱZ50O9/BD :-$'tE {$"32ᄰLehiRK $hH9X!"DMٗG_#V^F~T3$ @v#=vuA݈2"pHjep~(0t48I@e"xO13$ItCg&*;፯ GNQ)x)&N{. [;%bʃ;)*(Uhf0HB))sN@f`E^`u&>*<:$̪SIaH*'q4N74a! ra0/kԜnquQd'e{IjAO?7-@ۈY$@6NZa)Q;*oPbdO !JAA|vxEP|P2v/cg<.sg@z6d͝B7So1i'F "uP d\+S ХD!s8$Xzx)e#N"(2 1ٰdNv"`Fy2r41Pa'P#9cDw&v#2o/7Gxl|]XOhEN~Ak |4A|Q8{Nqȋ! w $)jup>W . sa&A6tJR( ;ɶ Aʞ) @R(Rh=flF  iӐB> c%`A]Q A'M&Pdt4@̗$dњXF;ā %TQEEN'>4gyjLs:`alBtLvQ!܁qd$syHJ\b$0|.\ DK~2L.AJfbWԄV@C$c 򳅱D[9A2)rsz' aL 0GRA F'(`ItZ0f1f`Q !A@sԪƠ<٬HVs"K$ lc2~9h#ӿ+D̾:`RPC8,4ȎFCbc}Y fUXy]غ a $)1"6@',.GY&j )c?]ߏ{Qlq+T,(G@ pu̳]U~$>@>zdr~BqM$J* ~x,0X-x 0dL>=ԃ pHВ!CJЕ^DC\8`@Nuc^̰".tp .FR2>Tx'yi]{LRRt& F1#SBb}cOѽx'aLoPz߈x4l*d͔O4͑&H p`DrV|m$oA Gr4f|ub SBEq w?99?#:#X4G!tE9ذ3: Y:,O3̈́eK>%|g*H11/ [tLDudfI3NwVC>NOņ:g5|!3z;d&щ8dמ0;$QՊ,|-Nz2}6daDlU)NxPJ ē< LnVp!$> L35r hkaBFLUf )cy^By* M.`Y z]03=y ,1ĞjD<'L qS3$!%:NO CCY%dQ"` .Y@& i`Խ(.;3v!|< R@ӑ#G ʁXIa 49L\d$E{kDrK Y2JK ,3ue(@Ne/.J 7.@YH^!2u؊d$eD9זyrTM00)Th!: <<:Q,.P8 Px5%L`ff.E4&r'׺}"Qo@TkTĖ)@ywV\rr' p?H s}!K2-`) 1>|Dp!C[sjam1(4&dR$E,hA'"'SA+4E@9&Iհcݛ`B)C)TPjL'W6axa =KDc\G0de!Ih¸D, F1P"$~8~h 'DAE#b!';"CYRy? (K P@8%SgIUö89?1d^%8Dc~`@wYr @Jq?Ef#@/œ 9Re cbW.E>ua,G,o=QxiLw:rB.TbIWtP"MP1ВYNjp 6~i!( aC4-t"WC0_کly+DԆD 'X#'FC(sUK>VX j,7E@:t%'UuQ+&K!I'/2{Ih`Ac^CGfHy4$%!Qk%1;$="/$7d+?t!W%I "HB DYBA"}@@pcO.0V:9K.^{G C+Q!(d b#I<AFxs=QAl,O$0̑D]C7 A钌AR"SC %ᤀ@[d21#TO! !A,MB;$,E\ %<cbhjC榅A&NbMz​Ml]Ls<yҠOPO99b#d@0@(y=q 0 G's\DO)3ttKSWP0?va5:pRp2%0E)vA5hL @ۏt̐ ĐQ6xc^01^X") s6 HA%:O8H)2+x'C0XdxK y`@M<{!ō\#jN bK9>h!oLOuj=XH餈3?"gNQ,(ِ|uIچHl`+ 7ke8"Ů, N${ 3E@ pa7Pp{0f& _vܟ[1f\.7ZK"y0D2 ;zJO$zTGmF:Gd½03^2.~x`R!ubņguadL,j8 (`Hp~X@0tJqE v`- SO/?H19X=U-H0`$ N{&8_4!aڬ%HI_;f 硛6RP)@!s2ZbIb4U2h$&.;GTa e#@yB ÎTqCGAq^"&̍zYĺcO|Y>{T; ,#)y(.hS.JPR! QPQ'#"AE^8TR9A1 J8`&)LH(Œ52@/V~A* yM`Dx9<3鳦AB.L|ՀA;%!)C-hfI1Wb3& (dNHNbQRC2GL=xϥ:`a1 c<l-Gcl9MF06LjP?I瀄hRM_%X`,$!?QTDfzU2q-6 ϋ&_F(=ѠálAǔrPf鉂 33$@a Dk|)BT n=IQb3e[á4#67>h:bܟyF'.qXHl+%$ ONR 3'6}]2$!XT #9'O!QA`U*gGIeVGE{F'N'՛#EwdA.NF&%*C|z᠓sQI0"aP(\NKp*CBbgŘqlg Po3O!?f}$T?B#JTQ aLuTٟALNfµfMzK$?|QϯSX;iZDawՃ&zu9pc @B#Y|3}97)?H? Ai8H$,~%"Hze9+,"N FOhDG(ٸ.|i<+$u` D+`'W Ds45螬N z dvMhЁ*aiYY݆"<~hDO(U=|X7,LGvu"`!"Sc4EHD1͢y9v #^r0\l3߫pHl0pHRt~k#H4~TC&#þ("`aw8ٳRuN!;G\Ux:3zAO$ebg=Dr8jXPyY0P:$;s]yT">2LG\S1m <glzs 3^K2H` GUPrCVDa !r:D0v WX^{N EPLBz{f;<ޡIL1h9dscĄN,[,]8hD=;zͺW͏O\FsD9l9/M $'vU 2rṵ^1L@G߉:3ʑ.d&-N幒),F>6:1Eua5ͻ5a.T$YfeSf%$ cR < @DDMQo(Ddpd'X\16KQzv^ ꂦDDD&41b$cD4D3i&vLBXf() pIvpDJ¦5k8 B4LÄ #Py$N^C,#03&tHA 2x栀j5&WI ";}#E}~LQ! 1ef$\9We_2<{kgy`ABUʬm:7`ꀏǪJ6Jky ~'/`̤>$ՑpBp:gfegW4K3LAw' d g4Bg5U NDbZ8oT &)uⳘ r|ly "`g"#C0CNh6f?Ty.7ghpÁr#Gk%TA!`ӏt:(q+g\HFu|U!B"'bQ'kFbO[CyZAHI5gbfg櫑I ];ˣcjtH&O$ i6 +q;i4%dDVFT 6c3"+,T>Tbp.\!!J&<0FF{>xr9A,Ns.!F&F@%̾ 6<l$`k12vOfjQM8S4;!R"t8){%BxQWKȲ#.v { , H ϛkH"b(Ȅ6 P:N&IcRIHBAaQ$eqX/*5^FX+#2`0M!@w : &X ׉:,t $#] n) ٌB)ql4Ck(æդ'^RN*VÏt"̣A( t;'sY N䪞 Fav36E$ub1ב| WUzxRZ0{ .;_"*>$hK"Fvf_67BF8tHrL#IщDka&¤U1$s?̓zVk@϶eoD!=L_|*tdcl0 ·Ä*&a嚝R4}Apr FL= Ah02X:P g= d#>KoarKBG:YH$Ŗ846A%8Hz2F)ܤ&FH@ô*0BBa2K4F* >9DM=A%`Xg)8w4pHqV||',IX> 7 ̕ƽ%? 1co p9×l ! $&@<=!htO^XK‚yhFa^Br8]ِle+v33ES97 !a):l,9u(8Bzgf}D\6ˌ?a7"&hMCG˝&Lrx?+<x~I *K!TK~CAPb6h'8K3!L}5tfRc#ʴ97Lc4hNFgB77OĶL#Xd& Aos1c&# e_MPJ3Y`ϼqy< ԡ fܬs" 4A xe,H]ܟU'i džHyd8yI }*R_\#HwZy=Lp}ٳ!.H7Y3LC/5V%.w䨆;P#"5/'MEt4=esOr/SVeNiHiD0:؟0>e*T R"Nچn'D:{@аxF?R 981"]|L $ ƱӖڤAX!,&z,LƘ5 rk.AHD0&l.Ԫ>`WpԂ8;t=xdi5 $v9$)X([ bʈAC̀<s\axB왉C:](A\tU 90aa"@ 0FKx!_XhpdIzT+o ךgBfQ Bx ,l'CR;v@euz(P1AxH0ɞ=ITKqRGO[{- >? KG#Ղ!L/R.҄(qI ;wQ;L,08c&"b4F͑VЬYC)9CB 'Pb'$$$gVBp9.)Q`*鯮苓К,:#^P,CO #'&g$sY3'*F4a9Ia?\S BĽ"=FjG$'W;!>G\&%}Y^$X|P+a>l3 (O3ݟR4,jc*(~Zi*@Fx'e;s xg}x7K"R [2k ;ꡢ<#fS壉 iq689"ȕq.DgjLt8vquwL(>&aWIsI3DU;E/x 'xHt |n@gCH] N(xs$r#r ! =:h(d l&b. . HaJDH$PcfA!@뱍v@Jaa @`aDI#<'TbC+E qRa,=/22C0ņ %A#Jh~w <@D`C5Or }P9j>TaD)Mc<#Uyx؏"X) *Y*x@21Nvy" AP"}6F ͏@b!^[s"\+KX@@YOQ4S+YyGo{ X+W\pvs8DLII y.F).l(^ ]Μxam%L琽!L&GW oO pJag01cFa>4KQD{Tm5˹D1h2 >GgqyR¨Krj-O#iENJpДb(翺%)|@y@YЎvƕdE8$h E $DA?61!JJ1r->ň@q& q28"]bBA c #FwZ n  IՅCP@T%,!#8́RsLy\ ht2ʈO#4a$KfD,Ž@)]} $Z@/D5al~o8VM@c+c:, bVk  RdX~]TA~,2Z38O].e8 !daO'ѐnLLĺ` H} $:grLV@䓘OeP1D`9?uT#A>^_trHLp,+f$kBfS`G}?Ipi!A) 2̵s"LV1G I a \ĖXԔ$HA{I_nQDAl)@0S@r{0J9Kc 2`< aϛ%Hf$']qJd Cȫ$NA ď@4HOcs 4G!H18(\S+0? H*L 4(IdyLߚ9I}s(%'x/,V7 DD*aݑ Kfedg!O\_ڍBQ1H ؒġ%0(`ߒ 6 C1K0=sTEc$ Y%3 a n[5T.$Gp.d3Q@GNmZRNj $?, }}قMiH"sWIHH!fV&iA?'(#h0'js ;󥕻/d$Z\LI*:T%5#;3?$;)"H1$N'| 9ق/|̀;s5p;`R1>i&f8 *1`0auzJ`XH9&'t;sސ[d;D D '>;ʢh<㑱p9wΒRS @&Xg% p#1FhV|qTF:y=X a@ŕX Y,M U#p)l3l44ğ1`:PGX43^p nXW%@8# Leý/)#Ȝ)BSN)D&; 9fD|9@@Re3Y36\Ʀ"(QabvqFȜby|Qb6x"03.@EbyE sk6V HA,W/c.l~@GOI3cp|őYy{!:qlT@% $'@!0ALx JH» Kj`dE6DZ'BJ#εCĈO/{# J9,4Mt"#vܸ&q/oXP' e*8(9Ivj#T쾶XQ:J"cuG<^^c;*KlNu"ˎP\?`&pI9=8֩P]،1Ti,s%! "k, yﻈS {2@AbBd0H6@fD <P!ot @`Gޓ,$6JUA癬6D*<]mB#9ٞ*" G 3*e| , 'aۜ)IS# `j6u=GE6C _hw\eSbO&I=SeS ɕy)8 DɈSB@%r!<<"Wc>JğUrw45DM7~HVN`J8K9&R!IkDtD% dK2%ȟUsG*2Շ lЍHy"BZ 6~@a`4#i \FPz,Ϻ,3p`IĽA m<;5&]dlyz?<t,Ѣ;ŤI* ?uXxbyw97~bA4x+ "}#OaD]Ȝf0+)@.i! :h/Ac!݇g#7cn1eIإ0_*&w\@3:DH ]$qu8ńb2%d#Ff{9 (@!D^$&s$ _#f2pX"(pege9J`d6_fy({:?DDk͍!&fxg(/z*x5RCGtbgj̜m&(Ԭń_..elc'E{T DMQR߆ xyqDTg ]EHi9$yD)|9% $Bdd{D$%?t9Yoh0$%u LsG=м a+3!Rt# G9#T\)0R$Jy\OIfbx|'VsqS xՏz}RSIS,3өʊ, dHq?_=h^a5@ ':e sD.F @TŚDơT Gk="$Ib9.'D dIC3!3c JdI8FSÑhLyAۗkH!bOFOEcJdYwaRY ̆9FF2k$B=Q^TSc|"l19RNRye&3I`0`5I:x d1ΡsH ax/W$K|\y]pv6fDIϚ*0!:"PPG sg" '660 D6;%CF!νYh' a臢cPE4$HN؅"]fD+& %B59|#THF\ h@p6ʇ樉<!i Jg:H*&&` BkXI93{Y;O,ayi(LO'];f@J箩`pCٞ|kp r>S(.{MwUQWn$QcjX`vIpSff; aL%O(p@_={IWz2:g@wr绳cl43:¯Hu,g G<ԍ 8"B:敖j2gu ’Z:LxZ jJ }Ȁ:z)1DHEE2 a،YRP"rq1@CX뫸jI!HI H"`fc74xLFfUqH">@DLz1|TAcJ8RP$)Itqdz NP"d|HI㨙U627(`GtQKe JDfRIΣ&^ĒBs\'F3 e7d` !wlۥL]{{ Q5hO #k'EB HN a"JD \ fby, FĀ| <%1)y.""n!&",]I=fNRbaH49!%$9J1qBW^'f:W( Mw q >vLe#HxUX!5F2dvGՕLc!Du tN|6NT@ rńH;amJr{~:2FO^{Ĕ%*03$`vq5(i7@$|:I 4D r$ĺu`auOJkD|'@kUn\q8|QAgf;O.23BH fIO<<*:o>{6A?y %2H}50'$8.AvS#۱Qt*A xn T@%\s, Ac|.IS d^H^}J\8霫=ANR 8͈ sB01 R9vA)cWD/:v=PRqV*!SdT׮#Aܱ e iUO>((23&@>{'S3̈́G +9t$/=Ցᄁ#݄R.x$LIJJEZ<G1(1T8dgi.}qYǑ#zc4.s6A0b9YB`ñR/@:S(c>Gj̙l'~&d3 d`8K8p >,&PKxY PhGA%MLIu&MC؀@al@h h#ֳ̈́PIrwX@f'"'Z̝2$=mYpFLI* `.r&tr8l)O:eB"tBts-0Al1$?}1G!f91#[aPcv_@U rXy58Aa+&4!<5e$C0=>L,ĖS"J ʱ"9ő!ya F`'V"[v^fyk։̖ N=rx4 ̏\*r6"XL~o2¤k*2.ǣ&+fISG4gI`,@v YYq꩗hG?C}7 ʉLsU:^" |,d1W3NihfL9p858a?5s$a:5! iաk:;x_GG'AeǏ1ek5v5#ܝIcN[,<=ALMaId1d6D(Eb6; 5{$y}:((ĐI"A%:^gD9hP6c"Lpuc͉ &%6N5IljЙ%'swpTQFHnHCG7 : 1G8$b8A'6AM#CPR!,8^v4"u<͔ jA}_U h@B?P$<pW8ihֿ Q>bđ pHy@$~L<$#{%h>jh`RbIY J#EDA]M tG7 J (u4rxb h@@L"T|?9I]d,y\2DN; 0Bfd3KPe&$!6!H4,(=+U 1I'w-Oٹ{)Z(cgP.ʰU)3<ЖY\Lg#}AYp@=S#c3"1HHO6b;7gy\ 3%7E\ݮ[۟ݏ4L:Ȅ6h63ClK3L1 d4P"$X?$$f8s̳$A"Dty'JH!2ɑ͎y(~FM rK% c|4 F!IF|(JET1͆$ $ (0&bVf)@Y CB Gk 1(`cS c*V Oqpp&˽(PU9;6H(s+Hda: /DИNQ yypd5P`% ^y̸`LDOl]8$Yy~6L_q(fĜ~<5GBt":!Il\B.5"u4CHcٓC(1"$}=TxfP2.gL6Y"x >UB1' dDdUJ=}l  1MXQr<pM[̆GU&'irŞHT׉h.b"~X0Ķiz^ztFPp'TT L.gOGTҘ2=՚ $0p$ `T%/v/jP/ X(:LaD F~fHfJM":uj䉹,a1;e(FŗRhƲ8<٘r 2`s`ޞ^賞 69'm‡ G=J{$HCnrO%#V~p59Ď4ڔ)gw`rĞyd;L<'P% J9.&O>9dܖ߂IgSVSxˠu0,'ٲF9`BDxЖI0uZ79 D.]< LpXD!@tx ״ݜTɄ&'H ୚!9+!l6SWLX\RPǙ^>ST㝲 `܅l&5!%M"uFdGmg )SR|DBQtGhdʒ*@N1x?&g:f,1l+ v Ճy$Pk192cҜΫFEϦ=R :N̮ +H*)pyo)ݙ rXFwyn.$>ZՇfsѹ]*PJcbH0 0뚩^[B f&CJd52u1 C{9s , JJ`H{c5cP >%#'XT)_G|\0#dvexe^":KIaX3=f$ `3'OKA9R:rT2@O# ƻsp 8>"sL ']򎢋nadwPy=RM>M&?'愷i *Iiee JNLЗ?g#uX JJOv^gI+HG;Py̓}{u!ezPDsh0yz >K4;;_%Q&QxC9AS  Aiw0 :Fj 0lB=tKO<d9;@^c1CĘ5} 1=GlH=Rpvy,o`wTP8( AcagǪmE,D#:J=lP$|{ChsW!|PC D^|KNꃈĘ~1?U9@z%\y Gy2J;!S0wmaGgAS1\$ Y)Hg, ;f!}MH !w|ww(fCTaY T0&3DTr#kK8̢ e԰:+vHG2F`S$dZ.8i3%bAt"pwPgbJr*WpG4͇A_|PA;} j)T5 ;?PC< 0H`G,X~j 2RX<]c%Y0RG>8yX21`w;f]X6pC'*U= >hrm@R dĖqV QV8痶"6"PgC @ W$;=O/k1;P(IyD ;kge<ܪ0L*0ՀC* ] cg-WN$; $%8(k5|^DuE#yWE@i /` :h7OjP&;D#%3Ey³wRAY c`Hrz dAYy F]] &gkb>z0 Dʫ 0!2P J""$Oi3LؚldԎY:S'w*D i1"Gpɣ (ybp"<Lʼl*Dĉ24cU@3 O Qd2:cN_;X)%,~N8-Ŕ*ܟUP"s,!D]b!V.~j^ؐ!Ol9%q}^7w WZau 81ZKI.Dj1_CX2@QQ==Y bsC$Ƞ&f&JMXT ^8YI X )@h "s@49Y\M3}zA()hYqi&wY䭍L 3!8&RB  GipGs ^m cÉ*52b}B28lRE‚DBl8\l#mnkWE #1meXQg-9rs"Rl@NnC8Q>MAaAsF1T9!3 &E>Dc>&{v2&Vy4< 5 i;q@c>eTI0 jpHAFGIDOo6Q6EBQe D8qP:HfIPdlNI{HD@'joL1]a0-&q>'acLD A@p^bb q5(L٣DKO:8v]lb/כ#Մws0Hw'4~, Y`9X&Dd)9Kx zDNIԌy+'FD8q$ Jy\sDqHDiDQrh> 'ehǐTrbŔ 'M\`V>z0$6u`b?g`e&6Gtk9S$ d,w]eWVp p&Hs'ޒ4]$=hc͕>.?DH=dt3ǟ^F`Meg@|1 g0#pn='9,XY':"%)1w :p~dh"R^v%9ֲerOrDP^e#TĎ3 { U' Rb|ٞ }^81T#Be ưh0:y$JN DW0<kWŀ*!?ZU b=qM$GI{Of+噄0tQt~+K'k@v1ofdLi3矋$=9'Wob"h$dĖA 0lnI512$F 9g:]<$a0؀LoHI^ $ Ă+ s<ɀK&##|S"fvy>h1ѯζ2@؎Sد!H62LyQ8i$4@swVMXKFyw]#–fA4U 欔rἻ3/4K 3S1O$/ey.ZH=>.o*BMyPH|wgZ`Kq8^ Nx Iz&: @pccNȌ"[3O/E((rl#$F͖ Nl@2YP RIW,"CԓuIYNaI0Cs8AI<~"> 2SHAɜu z&eCP=Ř2'+FZv{'HX0ivp&Lō.r sALz3D0&,I($J~ʠKJw% yMx&r#iX/=}]#=*hy;ᨛ= 64MV!Vd˼]C|x/j!(ݍ''ՁFQ <9EĀrMW'!˿tFO%@`gh9"c|"'Ilc;<]"vnȨA͂FSS3p7)̝߅`a,ё9q"!(o"-TH|:G5DL(J@TN2I,fB~C!(%l\3,doJKw% #6D 6މ42X|ITDA¥dzFO<Ա M{ u&#ۖ< 6gD8geCA! o rL%)$SLR &&4s@NjVR favUΈ ]_wh0h 1TBR>`Lx)14$l8*g@uK?IG&Ȟl&|?KENDͰ d1K"7$~kT5ϒDH/5 w76x{ܸb$h=N7 Rz+& Blpbβd=($vSL ?m{0ɔDŽwx?)ꄢ }u+>L\6s! I#2`F(3+ĤF<@i !  㛉IP gR)!Jh!@FDeənxp\r0ȾkY^PԛPc f@D~\dDi5Ɂᐄ( x#(Q$+ 9`D*jMZO3F2@UijgJIus C2NÉ dp=N3 !Ay9/=w8BNa̫ȦO2*.Y#LbxUE'v>bq3<a1&$<*݆7VeS*I RKƶ !D9f o)Aƽx ֓oe'H3;^""(TfZL$ &sR!0'a+a#5w'hR!{c >&o젇s T wFC=:dzVNHD+|Th Xp$"vv;A CBj$睨@,sm(L$x=fl`|d@BCqdeՐhȚ)7zvS(@R>$e]I5"VH Df|N05C;?ΗՄDry(|<\ИuH,(2^סK?dHsxG-+VI&x&OYR9?3!/&%g~lH!:g_нse+@H @| Db9*Xwq x?Rg,P9/10'ǺQ!39~.BJ'Ýwg~(CxihG^iHlF'e !uT<5LE\y~pj09d1aZU?7#''oT];LX '#R9lHAΊSavT"A̭[X&aPI!Rv IJgPP$2œ΄/3fFD 9y @"^:ܘN|6 د 댳p:FQ7'3xZ7(蜛=ȃM>TCWTa,E/K(qaR%e9NJ +P ,zT3 X'Vu3F"3N,0 \n=όՠK]혎8A'@k4-b/6pRtQfQ<0#T)Fsڇq0{?5G$qT(!yü+$5XLON)qϺRkJxL;9$=y(A)ꘆbZR L>l>dmK:TnhpX |uT=UDSR q^}6@:x&럊!' e@41 VfYv%)A wXs]510+eb@Ӂ♤[^7+!t;O 9DaX>QDLa < p DܲF!.а$0b@@L8S .baWd]xo#s80 e088=Xdđ 2ň& S<Hd(DlDp1-kJùh)1c>"R=pNe <=Y.$Ը㢭DV17'0Y41* GJWtB;`qeg4>,,#|(28$t@q lDc{ 7[Sq2ccI{` lIW!3Eѕx؎*&r:'I';=Ta ,SąL/EF9un!]by*_TFLwǚZH`d/9E9>+*xՀıIs:;Yx#ʹQd} ]3$!O>Ns \gܱ-'Gt.`z^<<՝BIw읮]/",|x/TSX@ ',K3z'@̊p,yT=TdGVl'2FoQC2qک(!쮮Ll #"rWW${|\vq-FC..2ǛmN4݌srڈDl+@x,{lT<` 8f%D,|>sŝM ,de?Bzl L8)$\F$I&pt=Y0D yOـ/)ꩉJ6]ዱ" f9h& 'c j(L~`(TjqÔ'$g5M9g̈́ Yh}5y(,CT,\P`Hk4C!A1纹/&a A$ 4q\J c)'ލ>.lk34^y⋐#g9P0KwV`$(PU5.,SGl@ &\GBeǧ&q<rU,(<;+$d7C$4˓3-j875gO;TB!L59Li*LT Nk5}"I rfRS<%E>>wTP˶ # %w&$?FN!Y(D,uP@?1tɠi%āf+| I78 XPd4; 2 rCD5s !ܡ8vȁUWEk cl(b z?dhP0t&B%ˊ$`g#P7 X7NݡRRI?⾈;^(:dLh€CbhCBD<p! {f2pr}4tP* acDBf'>+vo`!SXI0B(Ф$I#h{*gWaf 0gYTBhp;aE bӂ9`ł`RcQA* %Wǚ5dD`  y7PqMpD瞨S1r͟)?E%syrK+'jh:e)N]wZ}!#p@pyQ@?6q#g*a*`@1FJe4an2"x#Ew;&i"R ' Hb&vl+a|wADO?6g1 qC>6>cu-:Ģ&|hRk0ƍ?l@@WMN% 5d4B0@PD` Y.#&u" 6F0F HD˧jDeRY7iD ls%BT"b'' OE%G"ʣSvvMXFu5jlgHRbA9i?ap掞bL@S*}N`Nke&`&H_NLT0r'{rMSk;/@^^g}UbNFK"ɑ*oߋ Ǘ`PD①<+C$%Y($q Ϗ!p!=> aI^f|z'+@GA{ē?+GzT,sAB0 ߅`#RE-9,2ey_L’!UbP~6 gP|J (K+ ;h*$Hζ#}Ljw$=Dİ`=x~(bpX5<ў|0f0X@I1M &"3# >.rl'S',1r b+;,3 tN~_0|3w4ɇzZhrl$y?)HQD3?{/($o1TDA$2z#R*p1 7Ptc,J)8IG~npqYˀ\qRzVGX&`0V`:,MyKs!<4ȒȞKs)<aYdO5M4]quP;J!YNCm-]vY,NՀ,@h5.T`L D0$RU8փVǞZ<N1$H&I S/d4C<Y%&e:R (RSP:{?_udF)狑X45C7j #clns1[@`CA2a9noHs2ŢU3 $6|H j(0RřY<;/,d .GlDRe f7 %&%Ϗn1,qØ&,O;\$"!]/O,Y6̇<~+94CE4 9D 9ϪDggS? "\zW%Sb!.Ǚ|Q;}y'ϵ K"&MM{8zFwC!U 3 r\盱01&a F563ݔ('C1=ѐ"IfIɏd_1A?$<Łƥ".>7Y}K+ d&csd~F ?4H|CyB|e%ϪԜؓJ r%u?\6LįIj2OhA79W9㉏4x"'zШ~r ]MxFD_6wRg!&; Љ` !΅/ꚉvwfH\ȹؼNb|6pe@2:Y|v!PP8dzi't%?O-;)jX>Zû:M0? ڎb(~7lNZDt!@ p]I43AH;7d^h;tL1T&d(>cABǪYQ\#,e$k $G8$U@Nfj(v(|2,ڨ䤍dUbA >N YRNz>"d3Ywq4ؑ'\>(_2!t}9X^ 8e߃H hdbTBCTrT"$Ixn!Uab@3a~hYBOI)C( 1G{C%r3(i]A|XB&LKav z p tYM"_u/1bI I/ b#2:%$J+1Nk$ )ŨhY؛^.&\Bs-y w 41d'|EF5('42Mx ?r1Za|Fc0&F8e $,0<}e,ds Mp@px!hӽ2;as#G; gMf,,' BaDyMNLɄbh L^(V +L&hOP+( a$Ǟ8C?fɁ`y˥(NhY'-GGWD3yf< x  5Cid .3q1J @K",<84@|T) IV(GpC~ks l1T֎4LT=wI"6Tr;kusL0*!gQ``Zɍ b5H@IфLKfX#" di38cM4H 3ꄐ6V\'K#8bE ))xJp9w\؄ AE(9PMEaf q*<J#D,P3GDj!>6Au1ph0d0wBV " pd#&Ôx\d$B`Tf:p $:'g)P, OdsVh] {wPx sc @G nJrY:+,DS舟2 dl4FyOJS;8y b$:T@tt4 2'J1IDrHI 6@^n{;Ϫ ^C (|r00x2fpA@I% 2r )5{璱 K Bg9 71& ' 8Yvt-x fc揄9$IR&q* ϻf;d1t(<%IJGC< J}u`ND@<Ƚ4bsfiTiMa M&HJ"KZ( ?6EzNmL/{f a hm$dNP͙Aؗ@2c<3g :a?3$`)C'&@ϙ d ʜ+xvba%Q)3S$,t~@˴/h8,;TXs$t@|mBYXI5p+G9xomSٲWHlTǸ#0Ktq jٕM'GT^^AˆK!sH2xtV"CWU4 ?iI^>(l}NC3F&dq0E@Gb^b#K  a{$r;!1Du2"nr*Bs7GB~h+qE;LxQ 8IŰoǚB{\dV>@Sk*&V'>)VH`M潄kQUC,ı 4 *Jznty Q9 JDQ V\'@T WW~=" @IYXj,Ĉw17Ed*"}zyUqCQ.bUi>D{R@2x<2;]P˄.gݓL#ԛY8e0.zR[ў.9*s>"HTVPF0uH@5&>0Y((iL&zp7 :>%7E͠gBS<I e6`l %QYCˢ;(q?&#I r}sw  V}*$Sm&&~hPHēw!$aDp`X#^Ix6)(WG Hq$< <! Wr/ -R5@ +!w *%L$b&OX'x ƶ^Aq3ѰqI}XpOɲH\ a6H7T\SF$a`# 2Œý$ qx&͊Ў@De)S.#z 8LPzs;^01PIS)Mٕ ̄"S0'0d :yCCIXYF%8NN{,.Vfy{TヸڼqeHiMLIP.Ͽܟ5 ܀rLiܢaJW@r!7@EU02>6iÔ'u}$;ec+Q )80wyH$`q1QcbM³1[*Pp0$?@lؠ(p%G,2F D|"," ڠD0g88a)v\p=t`%Q$`,^!ykw$! CTs. 1(|I @LIіsY1,$HG̐!"LpGduyOPe雤;5釉ɺ1!ь /=mE|$R v7bpcYPOalD $Dсؙe%` xMrK)}0*&F @Pyo'v}e2x,eq~sXY/X5GHW#q~'-y AK!h2)LUV RQe40=xڠ/A"H+4N k\K˺19;Xi懢{r,qn u=boo~O|(9?_ܘB;6gdN|fupFGERZPdQՅwv:KG(XLʨ(!ʱgeXhKe@p]FDB81$/nRq B L#t&e"(VF<#^  02 8 3H$') `$0Bc*D L'l4uG-H³ D ##$`tHb<@TZ=A) XP\bL@#Ŋ$B$4jӉJgo}E~Y 0@C-Cϫ":j$̤P?9dHyx&(m=ـ"b7:F8;R"+}X8z1ITB^*:*DQ3l㉬V#ώf^iAx"Pb."OPXHƕRQCoU(M@3\*! \ă$1(w%PȰuwa5+'Soc|z"N9 1I'bE{r;R%וw())8*`&%gT]Y/\'S3J"B!t5bwڞjȨ2f V$HxBd/hjwwJp͕La`D$'c Y @ED6yuS10h\d |RM12yšX`@zt#GlJCh3=H;e Otd*@% d*AR @Ԅ"',J.1I/a<Ȩg9Cp|""_$8VpDCIPWv <9O_q6xgB9 a!$~#ށyߝRqœw@ iQHP1RJ ۸8e?URLNLE߆ɻ,9=$U*:NAt 1 gij\&xd ''|Y'rG%z  qR3"*nNj:xȒ(k҄hL:'pYfBC]RQ#^%Yc&Hp2jYXTX@XV2qK4͉D"A "&_|)d9·St2!\<&1qs&Ӈ #DhdBag@qydy,DHPqtDAcɸVcðp#YHu ;0౴]A %"-I3]F8syG<52'O(dD5|!`9tkz91;Sl>kєVpg 'eCq$u\vH*U8O5T_)baubT(ʫw@G9b'=~( -9l5Cq`Jwq)Ye-Rzk/S/̗a&Yut$fF%8a&u7nEsmt&~&+)MPA!|s`MQDv4'AXa犍y RG2d x7Q<9ݓ$ Cj mC!1eH$"1H pLTrN0LE! =7RxHfODvg4#BspV*Y Aw b%8|5 Ј^`䨦K9 qX I!zQI<#yi0ȃTPc% 2HJ *"|Y РIN3?uaI[L]gOH*^wҾo))9y?ta K!MX虡/>a #QRp>^y)LG|قQu^2_zGy`PHuT819a\#W )Hٛ< 2&?_AHDHNϔu1@$"?t (Nd^^dJj zb;cEB#Q2G?ƕI&D*:*xb+@r^jJ<ӂ6^kQD}59r&^OW ^{sNk@XrE>G>Ɖuy{?! (|WbLǾqLpdl4ދHx}XPm5a$|s`3^=E!{6l|>){#^Y4 VeR3:rWF9XgR!.ґQk +`O)" '1DPF /Q^P&aFRX$b:B$D ."fzG2FQ`顋b`$ %Ÿ0C'B` )ƥB`ƑGkmiBnsǪP2 @&yV c9p&Tl3d@1kDLPew)?@d@`cdHA<ݺ !/'Gw[ fr$Ig%;ȳ 9s'!.* "C}|j/c(k$aN19|ŀDG@y&Gq9U"ANcIPbT0>LDʰ?px 015$%B>8Al`\ %gJI=+?$,Jw8"pD( #z4=|P($`1}zaҥ#9$38"9XR}MJB'Hfvx*e'Y"`*=fLy#[&qO\⦡"Sbc;IP a;vrxN"5~[2aN#8bBׂ'X}C 'Q @+XH"eLtgEWh!'v8ηd̜P!|y,NN!U@ QfPXXG^g!Nא <UʎeB0@q bA3Tb"'etjХINjL 1e w;걐=` +ؔ ldO/1"9SfhL:&x P*>e" (0ArAg*eHdDGVexyp9 2<XX#˗%p!0t$׮@{D4T0DX2xJd/$@ewI"#_LaUQaQ8"dF ˳m[{̉ʤ:L#(” LBaSnQ 'JH|Y#C*L(AP$& $y8d@*Ie. _ Œ6AAHA8J Ca$,r&|V(q*x쨜Vm ^.k:xQ&0!8LJ rAa7 lyjfYD9()cc&LΠ"ts׊3+ -h@X h"^Ma8RwGPK̾JeT0IBG4PZ D9IgÑ(x_/?w;cJq4ēǘDd_te}A$f&L|͙`SiAL^NT1E" T0Nы%qDʓsUĂscO$|Y0ELTpx%i`S:4OgiH4$ECg_2%2aSU6w|>7 ;A>T6F?T婡}V&?j PG .)/ ;>צy2|4 ql$JNTDGf13dV8cǿu%3H_-,(vuV.Y&Ǫyi6A_zw~..sACЙ?1HL Z?؎K>p` Av:&"]r")12 3h oQȍ»%N(`qߋSǎ\'ZLsh \"8ǒ2GRb`:CLXX^Q03NEPA8FQMMU$S  JFi.JE" !Swg64yE0 .*PqF`H.A47z"FDD!)Ɏkꊍz;Ǣ%YA"ZQ8&r`*@n]!.*qNbxŖˑ&.PCPX 0 n5} S?Ua͙DRBa'? gu .|% y5b'hu$1†Bsb%0# U'Kf@WB4/8OXDA4rLc&q6fΪAIV28+(Bw16bIC"U, 2 +vLȢ!%SdG !K;=J1#"I2D`2,%@\ 1 B ]hcd PD@y(Brq g0EgI,T$%RTȅO8 4/,a9eX؟DyOϯ$lyO"`#% (BYBe1zlKCC!]ˤli'$e4Ph P"&;JHAhwCF\¼IILnhDMA"4F# Ѓ(ȁ`U&pDP:iB]J\O@ A}PNT3sp) 6%ʱ1q>j #I㍪(;{BRfN/"SL^H@ϣYP3+ `b61>3k5! g'[.0XO4 ZVufA0)ȑ-<quDGP@󬓆Gl$Qɲa& U  }zULGZ"1CXDJ\|"gy2(&EiuŒ9|P5(`!(J% ~kC $X B  xwLguX.*IJQÜ! yrs_1 f~lMPXT3RjIr+?UfC`\t"8" N{PiH07@uĘӭ~D0CC~#~&uqa"C8D4$l`NK3֠#U3g7?eA@#k6#Ш7"II J9 dq#jOȰ C݅P"*Mݑ "#P0iJ@&SH>pIO R̹2 gIö̩@T̰⠄PG[+  3DVQ&*ㄒ,(ˍë-(Q(wX8>#8 y沀I @N>(B9dļDՉGćvM!o+` O*T +t܁8=P&&XT<""8ÖJeHH#"pH Pa3ݖH10Ot`a;*NH[ p N/ag'` i &;`H")!>DΝdbϩA!gByG??/ AD%0ˣ&#@ ؝ȩzlEH9 DUF;# |dNO !`CBt'|#qAN@*{$Mi q{eG$8#10OqX 󰞏=HHRpV'$Z-X"Z_~l̳! wN ӂx>) 9L%^X`4OǨ#V&>.$@'"@sV#M=uV D=GYYFK6N,AQ #zGZ.Sb;%b$1ATP”4,DgaAO$) c"(I$JF8gd7ʑCexɌXI䀟8`&ӡ r~R!e"% NlF$(:ڴND4D)` )S)2 RK0r"F>,L>!eP+"˄RXH_&Ja!`qE:VLL0r8+J 46 Oqc^dDf L!_/LuDK#2_09V}1iN\IA>?u4?uq p ?+N }_a &]ͳ)>FTLrÖD' N `vD\DHK2OjXؤ$O \hp< J][hQ)Ԝc7 eAD81$ 8MI8]d#Fvp~ndd .uʼnhfaau@|)(0 t<ûA|) V"pZHFG8!o Q%Jo $AW|A; @$Ćek6%9Ղ$BBD9ݨ %J9@8RfA@'LݰxȪ(I3/2ELE+ )A^D,"ZpI͂yU&WRS@&pѓ#@Z׋(px9H؅ dLPyvU~i<)7 kXHfzDL ;)NL90v6*%?S6a0<#@%?zQCٲh ``BlssŌI0e/NdpNߛ6e<8BDB@!TRG>0]q260X.IЗ.0'bv^2<-VGNU!UȞj) yyvŅ3>s'&lC9UbDŞCsA c@3@|e =E}?J&H@/^>8kf( )3E2A!;̎'D;Jpx!ݝ 6C;ay3NRk,6LW c@@Ph ij\gg%͘"e_"v08Iavyw ާrE:y@QPz*IT', >>p!K{[0[ L˲: = Il n`?- |T !!#2$ IPXX^|؂) hX NQ*ϊ FLLrbJ|BcS ('KMRdd;P#L=_[,&qϊE@e:&Iz5pYd gj "`*\wtEHnA4^"])KL.3pf[0"IB>:lX:&2q*XA( aXN c("i*bl1A*b;L! u L`5@PD.DX"%8#@{CȘndi =;L]4Ie^|M _Bc>Y3PC4'1P=:WuFA< Dv lב,檰U1&3 ! Zb$aʕ .QŐS*TQI.)\K>$OgO9,hD낯0bY.~ Ѐ:lvJ0*˦+$:BY)#Ae790lЙr1`8 C5 )$OU\gr$]P2oM@i"22}֊ FFQЂ'$Hk'8~lZM# YC;1POD?X % s-aonΪnX"$rH/$:^hЖHB'榸VO$x^x8LB~YByEMi~+L惃g挐b|/eAhv{q`:}|YX 0p9o,*2>Ȣ" =fWBQKRj$F|,Z("i8> x 73d cܬf^z9!1kS#a^GqA))y#B!<%a ).<%puE[KdG4,JvHGZH$Ě!yǃlL d }6ZbA2XBw68 |~h!7P>@!##IS\ 6Rx}G3+G'2Zu䂊_Dȁ '݉ F ˢ"Sҥ$5`N}|ќUZ.]$<(:(P\@)1]2~ ed!!apG<|ݲы;x,vJ+ZNgYhɲKcdrM'9S¦S8rq<*`fB>8(%sP pXkQ^˙YԾF)Nܟ(' =a =S(1Rq7Gx&S>1ELH;Q:+ /sZH1(WJBI(bK xe !ф]Y8D!Њ3Ea$'3dY?xNŏ@ p_'CfP.ĩܵ6N`* apB[hGdo=$VC(3UIT`` ĹYC}v87T;T) P! oҀ2Sp<Z{68Ș Y5^B]٘g;Ea@3R>J2JvH$|$ K ?,U;PC3HF&@8h*\t@F9Ɇ\GOY%QL,yj$W'#)/" a L@ǙщH2A;?4(7 p,ubsCAQI`)vTK H00nPAeS4( ,Ke0LG,Q#Ɏؒ,Ipj*0` B.53ő0 ZBg;1`)I]\W$Sr2sa͜^(Z@T0?>#*I$'H"11 VD:O]C@0rpAv:ySafw [[($dj9IGtڂ.pFXeM;s8=g/V@%`X$Dmrz':IMl[D'YP'(P") "ܵVXw*70Q6@wGTL'H7͐ bC>}94{-dW(#rf&0cQXHPv 5ʅgXjkʊz>ZOD'Y %H" \$},~tnPi@l} "G]fΌH5>i"8IH!Ӻ^ .#+;bQ\T 2`Jg:FY뚜pp6'0~/C\QgƎ#5&TbA2$$ HHLqM"&0yS5q`9!H`k R0FBKCHtHOLI=n8c DD{X^>Ta v1E3e#*Q"~+PQ71bijtbOL>:qhlkiǨ}bƐ'00at~k"H;:8QܱUvxCZu+ t4𞈹9l=[G鐅'_$檠5SP',BS93R$%5q!ꄉ޿t8A8́"%,ƛ>WԮ$$N  cA5 BAT$FЩ]|P\`Nf~"DRdb#[&Ġ\T'+MGApnVq0T2U$ģܤHẂ'ߺLAH b:2}H"GV8]ɫQ,7vIYj!(Y#"+D`C-( +:XB3Ʉx$(͒k!r#bib@ ȁR ALK"K 5(1`2Ua  aƓR(3;f$=qQee0|a3NkJN}07p'RǓ{iYB#".B'D 5D&sT@r82 C`$pY#ve41$U$oUɐmrI1a(̡] 8N!.($ xۉQx$JqQHP ! Jj!Ha'hb(L843$T`(OYSAu=wJqy8y.rIl].DD צVzJ@+"$b̉)kt$PLwpffxק7jwE3w?# y&G+T`Y|=NNJֈO9H}2S) a"45s;gyf2"wqNQ9$&V-5RѰ*G)C8Fd#娑c|%HgtRgITvsDw^' d!c6C@ܐaMS^C=M'~if )-|U 6fn Yy7>*w:!U`QC!тuH/*c+b; Waꋓ`ڥFzB:R@"I촂#D0P?"AGd6USlb/|Pq@cMz8. 3*ä8꽽 06B=E!5%ೋDi4GBt(N9ǏA8D7lBŀ!9Դ#귝]ީ%HX`oI\CFPg-]R'!IȄFڴ,@&#!upB0f8@rt/P" kBH"݃8*01,(ae@ q3D" Bsgfpe4ͤ`A("$\Dd$sX)!&C%tY1` 1 yY$(OJCeXtf ֚N}Y )4<&B8HK&$C- *=4D%1>y9Qx`%;N!=]c$Z7E`ʓ |3HSpP'3<}{^=f`y?sW `/+sH&UrH{5v,C!H!oFހ%D8a;1C/G,TMBd>h0rD)H@_W2y3#$'4cɏӘ8< ٌs2iLj {YE d :83,,xsCP\Asx u݇`4w-ɘ庛u.ƴAbluWd1M`<6 X^0xSՔ8Ϛ(c/<& T='YBiz_TL!B6@Y$e2Pȉ6$糗*BPLyEؚ c! N耜Ý"u&`fAڡ,P';̊Jzz  aB%;DbRAu&\S"E}rMINc`9uU mM"NX/V|0IlBR22P+LܵރN!L u:2_C+\&re؞(9h3!YA:Ipkh'7'~@"= A ʀEBxwbIG'hT11,Q$)hTDblb¸e1( C t2,# )CN@1F%"&L)aS0HsIi dY>BDxR`Rixe? `x= {MG>*J @$*) 0Ï d@1ANfBGO.eJHEC5 '<ȌI0rr­A`R&pxԴ+e0ofS|e0% * ˞jn2D=g3uQRdzA1O]l""눸N*oOb%Jem "0| gW\L Ur0 I,UrWwe\p2+ ob6hάDr%ň%L(oM"H* Y ""U Oͅ*Nap$ztLrM SxOmhRb 3OoOhX/1.R ku@~J(>7$CI?7ߚ†=l|H ,5eJ/#!HyIOērt@IYNB3.#L 0D L䈓̏X؃0!`ȜYIx.$qɝ3vJ(#NH?G ^8y2.ͅi c*gӸD2J}VV~Bm'gH>.dqGh[ns h(-Fr{}RD5~CT o`66g̀~f>HlsI2sDX}cR'sHy`5"j<fbC/"&LFR: ;?)0 i'zcWC O5&GȬsWE_Fw-v dϺFag/6K&Vx5z;&_N+Vu.:'yVG͌a vsflŕ0fXܡ'ƧGY!*{晪@H'*0 X0;ם@ >OoWT#+ gɴvX2LDJIP&!B!%Ub~i $L,E!Jk>".2 @bM*$02V]3p.8KN !"FO<zf(Pa" )  L6p,I-?TC1- F:9 * =G5HCeZW3G8a2c:vGRa/RĂ|W89J'| Ղ9i #/S#478 Nǘ#f9ơ(ʜvHlTJ9?3xg ]p 0H gwz QsCg;l FCՐ_vf}eproN zTDyy@)S6eȗ?cNNs=L@Nda?9Їq#4F8YrPL"rbG3VWNN1fu&7"HS8w[8@,>c> /`#H,S3+,;g77/IǮWCz9| pN R8uz)TQXcfX00HF? ? /#PrꁈPblQ@xpG4Ab H z9)8HRG3A.C- ~1.>}\,f_05d9{؉I .4 9 0GS6Z ]8qPV B!"Ou$XZ?0`r1C,IJ0HNXd h '&øw@(:DIAT|%Qxb>iHBbaETO&``] 42K%cTCh+VLh@9$ 2*OQHHD PߒDCeV6GD9}/ }Y%A=1̓APɁ( 6$`nŖP½0_d^}1dCMIgѵD[P!=ϥ9 YԒo!q̖4@$ &eR2TZ8 OhDDL2 /0^qsQ 9 <ٌG (&BYRZv!em5]I|rFag$0tL|4o5/6A2. Id!uP #d `{`"AB@'bp%P܏fr"᪣̥9lk4 $idF.vXE1lISR~M;gI`Aq=M!,+ 60ri0w"+$EDTiYX⋑3E@8 ˷a!3(v2$$\,@`X@?uUa]@@d"T aRrv0+Y1ݛͧd8W@B b4X}^eC]}q`S8@gWHf=B<@ɉSQ1U11޴TC\1(0*!,nGʙTTcT&Dd 5(@9o3\TSpw?t` bQ14?o9ֽ>' ϫ,vXK 62k띤|\|&,442G~lG( $04 TeZCԾ|Lz'CV,,$f`&c|#,$apD236!,$x3J "CC݂xLBaK*6&}@|K*e`(Lnp3̄#43="F!g^ Guk ! $'4!:>-6 T !ӆ>r Bfq1eBp(gNpi1@XĂF( @ fI1D2#߱"L]pBG9yPc 2 %3ADp`/y  6V6@t3% &@L%G9(yHӶ8Q(s4~f038S%f j*DD68IOA`a6""yH";1X89+x"rgu]AR%KC䓨7]?(4xos`-Mbo&DKϻ'CbImuI&xR,gp gnlŔdc8k&G&}YjOlx;*$LN|%xD~ ,lf2p;*J 'gȄ  JID]'_@|Rq1F?2I@g$;8~" ;潒0 ︤QT",pߊK(8v%u8 :ebX9ܘX!DG5Wϻ}G5~]EJI8z(HD5pN D=UC 6Qf@!g2˓A VP(p6$WK! 9fJ$GVI B9&Yli0G&tXH m2RQ9T(l`ϖhㅚsePRN@^~Dg~k6yP+ ttsi݄`~蓥JBu`tlf 63Ј婧#tR!dw+,3la*y e9 >2?I+1MYHFFE3t{L- ΐz=g B$hx#jɑs5 [) l`{m>E8L@Ďs^\&.bDq|ELL$Dǵ"~bLDou`se&w~*ÀHQ2o9KS~hąeX j@egSx(x!%H*"} B=ij⸢Nsws&7~ܰL15F|ͅ0F uUTDLEǑFiH1U<|FWIȤ8!'DKIhqaȒǨ"pEP NAviHb K$1)ܜo^*`xA3.`B000#t%Q\}4=PJ\s/)_so{9A2 :78'DJX3$3҂UcEGL a:%%8P9 ]FD+ C,DfU`5NI.@GFK݆J2TȰ" qQ")XMH#J(&dI-pɞMI^ IA:`df&Fg=ynZĄLDH$; .Ը!ʁ91XFY dfXL!+LȪjfN@!I`O06I2mOݗxhnLY'NF.~2s+O c3b y%&3@r4c8!ψ99yhk&eG˫ 0'v7$ \i, ^Ex`8fMY YthE0<љ ̮1ā6?[ $'ΟEc l㪰W;4X/g$"3׊N?$,NA;E%,ȨgLpt'zHw3Q^ꀄ{d*ICDK!a S 8xTBA=Y.3DF") 2w1^Ɉs3 EwUqt D9hIGY&+DtDfQ03ϙӸ"S5vk[R&rC>ZRHdI|pJGpXd!$Q" hDń5pffLPDfT2c('HK&X@YdPk@H+rhř',@f.23A,a3P`]0e#J 5h(l`#RVQ̜d!stY;̈݌raA0 ⱄX a6 )fH+"NFDn`GH" A@3pd(`P2H'tr/xՀ@s4*vV aX$B'-0>"$KFjİ[KRdbB9,\0Q#f<8A~|XzfPEa=&IX88EWr9?17Fn.>"ؠP|yd\f,rgOOo1X$ }©oU 9}܉!f:GIVBƻc<FSJbCb$s^fD#O'W&zϊ9iNGly Ra;2vb9x/{-g)@$7Q 9PMO} 8r yP>Fd4>Q1iC ,}`?U吐b>d?!";㭣A踣%].>j'8JL3 ĄߠcT;X=D`Apr k؀X><96bLj ;ñ W1Ѵ>zq|@ݜ'ah q$.ac*lLRRj,Lz3g(0""K ȉgQGI<T1b3ETpx ^O1>jV"P9$Ӿ|P`alQC݀cf ̸=De^G,vG<>X@ԟeJ@~Ks0.ut aiX3`3~N2  @PT@:;Z+0MTĩ% d@nĊ-LI@@ ē>*N`83DPLJ/,e13 q^Sgd8L 37.T98 v#<$ifNhPty/  ]:C !!'g u~X;j95y@]8XPP?uB.Pk|2{6#I æE 4k(-pN⅓Jt u3  &% PQ3!Rc @@$?+FS'߻p WrPPlEI!:@a֊8B tyKɎϩTOUb# 䆥b43՟ذόُZI:t88{\d(͉ D@3F yŌx :d,Ev<{ $@vGk%'DDduVBut,G.ـAzȧ6jaw//ˆT1[>0'H6Y@Ic#U21J D'ZiU"a\Y5e⩓1Q31ՇNXF3%0DX`TnA`6Dci} IԀP=5{mJm8z 9*C 1:$BOkd"xene@FQSI( %&6ć`XG͇H$q+ʂOg (p?S@J{Gv cc]If X)#&A~lL0@@gbB0q6$<$ $q!b8Ijyj@9cx ,%a14Obx`d_g4ؔUa~`=ªءf 3<3*˜2P.ߊ0jbuϺ&tSDYN <].D ؑQD($~l^X柬O4I &L)ك.ekve괂7PGCk1@#Pl$2|/T\@5'4˨"g+άHJeƴonAE2&1ٞ6 #b2 3&P4jwX͑ X 1ߒ(4]Vr5>Z.6XnR1tKEBQ|J| E<Չl=k)ueDSz+/V=YCO6'g4B@GCǧQ$A4D{gNnÐyhA0%Y2pɆX g2eɣH;x$1!bV1iBLtNQ>l `)p@!|<*3.X"aPᤢV;P/F%"H1@'" Ax`X NDDO~° 7(>rgiS˔b(dJ筯Й5b0AJuB2l|S x'k#ζlcM'NJ2i>Ȋ4Rg>'!~lc+e!,DA\=' i.K̲!ڏRO#_ K?F)3=r&PHsw p׷`&cE<1<]f}zN,I=EyL _5r2C6A~v"> 6J a=]>~;A'y(9q-@@;@A01:>cA d<1t43Y``xdq Pt>TS~y`^%Ւ+!5!##%9@KY΃2 @dRFsDLad p-W BdCV(/(b;|U^sZLI)Ó>,0 S 4u"-1y/7#jh=%Q\}|$c e1Ց;#tr"4쎧$Ϧ6  $PhL? 2@I#.Lc`\ݐFutW#%PF2f2>N9h*I*@ @A~^M+4՟5s2#"|XLAbiİBu~( w0r 6*C+g݊ ,*gl m,hi^K9!#6# apA10m!! b F@14afO% b!/Ԑq8DW pMaa" s-P5̕pFE7+"K/Qi\rx'H2X1yԕP!LIDEqXcR#%.^Hy!"gj fD7lJ ,ܼ,KA'd_$BQ1r\ /3!ڲ6<,H/1WV|7`0 %$vx0 CcSG§2=0 0eزFs8x62fC$gi A˿0`q=I^H( `uONQ)IQ{^8jR6\6LwN(ˀ(c!,hF>,,2&dD,H$IrQ+G.g"eU6aǃ]ʼnCG)b @O{G 'oL˨'*̙<0p3_ D4QqD㑐` MCwIwI%@4I HB0F# "/x{dg\} 0^{:l|LK9&|R\4q$È9SϜhfD唬vNuQ#)T#$Iq !"Ce$dF>*0cDLU?IJ/Xv74 gl埨C'X+$&"Pu'&AԌg(('&GI=o>櫷$ nDqJOJO2O/sIk#1j# 9RRߪϊFu樜Y]dޟS5'݀$Pk!CY{H$O>jP:rH>Hf*`掂#%kr,*K?BH5C̑0cؖQ%:;scAޥSx &#~f"rN!cĈuҌdx,;L:\,9T{ JOE% ]eזH•@ LF@KrY !a!Gq +EPeG!(d LP/4HKA#:8 q@F/@\y G~K@00ELvJbP)"4|QPR>f݉ ~h"T'O͒2U3qB$@tT(TZĈO'q D yަ"I"- EB1*E~krFk"a.I1t0<~laRH9jBNzV&'憀cp8aɯ3ǪLk<ِX&I>FVR%^{`yz0Aca?9uB%bW+0t@2x 5 >]Tr6{Rb!& s *xSD!\%I gCp HAJOrh#dBĊs$ ' yP@$>!l—SNO#N1* |IGH{HɁd'eiVL%R"KP,pV6J0>C^NG̬wscTO`($:)Ǫq ݌)%OBK!y `8*`1;"I];9,xQ N< 5@(* /@6)$}W":`जM@ʩޙyEjpi&E0 $ ]"<|)^r[^h$rShhxQH045 r:prA݁!Re2jl3=PaHp)i Y$Ig@gewiJ/ĵڄ1&{qTY>6ΐNLP/X*XVS. sNjdf8焳@f1AbĔ01)g3B2mg6AOaR$B?5E1DyGy_  x dL"G2a`(`R3έ@H.+xz{*ΰ]w~+Cؓ8pAēZ"P0h%LfKL؍` 3y将 uGA|LHªQ﫽NrĢyjW璑#48Dħ,i# zJ99 :E P%-gՆ Es rTYA#AqBGC[9d͐, `9)Q㣘 @nT$ V3b'jǵH>H3Dc\a1Ty/6T@BlxC$x?^zVe[諺K,({ Ѳ1P,,">Oxɤ|(kS% FKfLg?nc3Ł(hMaÙBt8,u6i/l4 %ugyc<;(+dSeĈy3Uz9cfftQ|\!pFI;809З RMc65Dl@`ik1 HYG8\5M\Ԉ׫J#.pM)2fys1?`v$֐`9>~i1#掴#( s @NцKyGrg Pt'=#@KC*,ɀ ǹa 0NuXdzg3k LC̒HD]m2^yt`tJ$N] *l-n '  2{*6zVD:r I3}TiNx+%+$%0B$rDHld3! wST% AFDx2$IU̝>F̉hGb{Hh!pA"Y"'̿la9cudLn7{C#Ytp&LD!څcۖ q'<22à @HdĚ6G3$7%-QPIR$MOm@{/9<| xJ̱ }Ԙɚ(,GPg 9ȓA~yMP.'!&!B* z ߚ#b#:v<py#9!v e!uj+^^!y5y+$9,NXA,r矋G2fL8{ 6!tb" ξh8Q5|Ld c&@Ḑ(4.G(*`%$TJ9aCAЇ|@G$,X<,~@C2s 2ɀ|34<-ODv|N f%{&ȣ 330JUbw B%xNCC;; bR@IXg)B(dpGHhF"M)ś0/er!䇣 SJd  p,' '',Bdߐj:"!ub0fZ@2L @ KADXda:G b|sMrBzR:=Y蔠d ? Q;OSBI9$ȊrsLODY\ư1CM0DL@;fB:%=iB :>C:ptAh$F Ԕd"FRX7%P#U(JA8 EI ؇fV 30U#,9t݈6iDϐ,sbH0c Q3yJ fdU"s#^C2V |V-N zLw>Б!|OBČJHș&\!fHEBCë3We5 22L!k`^TzbPᲐQD'V% d9wٌPAlr̈́d9bAS(Uw#hWHDx⫲ LXJ(:%9A+3֦KQ`<1CAdHaT(Ab]5Za#Aߪ*}@98RDHx*cG3èaGK0(քCBΐ\I@cjSc#0!XY%pTN@¾j q3$^(fG; mv X4Ҟ138ΈA)T >.h /"O.T/+myA y"W̼/=NYS5ږoXB',< 2\H 2ؕ`WYa8#0m`ߏ^xByLpPH8 Xy8"cqtȰ㚜]y"V7 ٯwd|XnB%&⨆$"r}TtF{$xH#b&iA|44EV z)dȽPm8vf #qyβ,  F\̈́b$ d RA3(1`^0/9I"e×;P$/5_7|&Tkx|SB{4VCn% L"n Qvh2S%$?8 H` DwyS)>@lrؖh8DG9=Պ0$,ЀhL,ovX ?Xڮ2FQb 8eBvy%bd{b 'h*8ﳛ4.g+JCcAe'J$aSOEq m !$"FߺKrYBX_UIJBkU I=⤐If&`zsK KN c c %$$C`\r"Ew4ML$Ǚ`.2v::v8 }IHaetIyw8.0 5I>*Y Hv؄ِ^P$Yt\c=4ĉa\h/Yl%9G~28U2ra&|` "})9\ H`,8,iNz}㿞kT"0MRzfEQD6X`0~nG*+dƗTxs27%XVE #1A5@NDIyp0(+$"{ +5C6HxjH*R 51ADqqzQyfa;∊ $Nya0 X1cP@tQ,L Y*%GVd1L6A/$Tp&2!!c"(D`{x bb4X10Mۧ)2]!@4G| {"0pl%;K1=G3U)/<FT0gTs$a 8xZX sSE'aŠ6ury :%3Y(@ LGWs^` :2p Ξh6Ltt; O03fAy`BC(pOGvGS!@DfТ3y9Ñ#؆D&UCd|IqCxIĎz 9BD RiĤuELM9.==\0^Ԩ@@0HP kS)tOI  I-+k"3H&r$TT ɜp6!ÌMc",V.&eF8@%g֊yYAL81HEQ |q%pjy/G QDIB}@HR`'K(t 㤳gQ('00kB/Viap]Tw}CP`U4l]X#ϪBGT&D^ȷs}pۺ;F{T3`d!y%4te`y&!XQ\d_faʸĭAA{VT@ Kc3 r1ȴ8ryD Ja D|x,?o!a#qaxnv;Ğ8 ,8!짠dLH^xů]T"f"Íɼ&@eQa%cO q6 Uq>lLB$85lrt@6$!u'GdG488UƤDoG5^x 1 S0تrI~Y@ x$݊ C dsȅ,>b(|9D%G;K#"'Yje7|8u $n(Adi0  [,sEceB:g_0K6#`S|Xg㈰rR3!2ØNLhM%xI OG@G7J8(xNCI3yO4u14:{K2,4z#"8(3Z3mp_QXHP ay> 3nRtH_f͕ h/ _&Q#:`0iX`:Bc: 0:A%ȂjyJD;\EfDǘ1|T )KckU2g!HRރ(RfBX}6E?E0HyD;]Xzw>;af  qX0 X3+)0PP9C1 TWU%!3ebS%%{ XBBSG?Ro5,$R<Ir=`eXFH~$:(Ssrs`q 'E!1HQ"cQ$Lp8A(D{ i"$!<7X>V`\DwʌPVD`(AHD,Lc5 }2GN×)AtpJeD ` ˱IFUkZdOyJ3&<1ƄDw ⠥0Lχ}ze(.U=ȑa)1鬈N8'Q2a˄26N76+Ԛ4`@ATHCdLCϨQA"A{ȃySSϚg Cr#ek7RUQ&,qך>Bn.X"!'t>(3/sZQ& ɉ Y$Y`C9L:T D]ҏ!#kGDyLY(zRis >a&r֥.ڟv܀Jт7M(#f}\1ՅHa`;C!#gpNhQDv%#hTBIÑ$N$ OTKJ/$'~"vziL6"P &@8r;@"nWRԶx<(@yJ~HA>{9{aOg\:(I Y#ߺic}$"FFL$ƔqzF^{݄d:ueɀ O]4I$^eU|NKy(H(6"3s*JNDsQN@D9uH@b 㩫5&_&ēzJ|XpP,d~) p 21ȟLgzL%"F'Z Y?ˊ7T2kzHK>Dj\D= ˒|(v8R8j.K$G-&N]A^ t]fHNk><p+%A  __4Iɉgg|Y>E2Aw@YA}>&E^D3.=+(FG]ǂ9I$AG!00;mf6@NbS`qH(#³PbT";f^>6 :XV>f8OdǓ~2iX1o|kT21c~Q Cb;ERZ xC h|Do_VFcbv?t;AL~i*wd׆s!3H˯HFYIyQEh"Nw j 1<,q8#Ǐfk;.aܕJ8RP7x)Icy15 ꆜ9GDpNF b7r |GX']^W'}&D)1KbA U||n/ `9F8ϫۯs EOu *.5@1tʙ$`#yl)" MYyd+;08(uRN$Ns6gA8:,L(4=0Bp兗̈aaŀ(G×g=̞`2)ϑWL)0SHrTS]Ri81BTHIRD,HeoLQyЄ+G5/vܱ}Fj;3Թ䏉#Jo"³Jn82bbE"`Dby;,_&}`r6bQVY}9XJFO Ni4TB*HfGUDט0OP R\02U%%[1׋'H.bBG Aw,FM'Ui 4pAF EAav#:z)q"4'@YW(SXj#<)q[12a>vPǚC:9ج8ʄH$JHDd"!i@@by#ȱ % N|Pq0%䍪c"J{橘 X!F {ŊZMjY!dt8DQkao (,G!ٞk4 "9#j,5 ls qXP9x0,931B&LN9*A E|wU`x=LZ#Ϙ~*RI#ejXPϚH2(ѐ͒)AC5I`YT;h@0?Б% ,̬ NbKIL6c3dPڅp66gcG.Ĉ0KSMeJyp0@4W#X&} 8ʲY Îׂ( /4By % RY;3,A" I$BOE@'}Tu|P!t`†^bD9# "a 4F66H#羯'1g9Xy0$? ’xg&ZRt$!rpd,'#tx*ɍG.XTR qw"ЪϚW"5*w3cj&@׫>=x$,˩N&,zT,E8:&ACd d%SѽTFTcy D1ydE} Ʒdci2)^K@ >wgo&H; ^#vRM 72~}Yf`#NHw4py8@#u]9fّ_Aq38B]vJm%vẎXvHoixl_d IJaws"*#3ShҔ Uwoi{+R}SܯG#̬$PsDNS/Jp`IlY#cAJ2It<7MR`oA W"Ny^%'&p +S>Lf#(J#TnqTKTpk|#h 4(/&'4H?GVWb`f}^:W=M=9ɦ\#"J &'zĒg/2D>l"G;b$ eɞ!< )?j&o ry:do!Bw rX g ('F\O+?cX͠my⩐=Gs2 I(KM!|_WS4Ƭj p'HN)N> 3xL+# ;h%78=EoqTYO AkUjǑ*ȔEyfxxv`Oʑ=|6 G~{0,2r;0t اDK1F$OTPIxRs`aaaACяu9.5Y,$5$1!1' 3$Z9j1Ny]poz5c UWt X  (bIb(e%Jƹ,-[!P6)* 2 ;va2;6cPqiRtKJAAc^]e4q_vpׄvyNTFo4ZJX9@ !'uD(N(\ s Ɔg&E0ir)8rO yC( ,!:s&R{!!( L!\GݑB60&0x G3 +G8A&w; DCr9CO #h/ Ar dt0X!I9d.q@@|V(TI3:kDWHEKCvi_u@I<>(L@;)52<(|2bfSVVNBlL)h=98a Boڱ ?$Iu='H Fuc:Rb.5d/iTxG/XQ`ws'jAN=5 &b pgB$gH]hQ 1?t"\I*IݢCS i pXtL$ՔLLn+Հ7p|tM"ec 17c3NP /(h;/!#9nK,ǖf-!j\7'ۺ0A"rǵx7 wC>sx$LQ2b|]=GDwaƏ+ơ)tI&׈$ ˈӟSc=}||yovB?&yDB!.j'2:./>*FTQ?&:GdqϚ0g:, yD߁)BŊ:MIAGHڍ/YcŁ%p*cɣr oIy*kXs#Go+WXNG V*#G)lC r?m9gR @9TUY NqxШ$2I !N_<0GѐLp CUR,0rUJ#ҝ8@@Ą= I d{@2E>TEw} @hvD4XU*2 \6V 0,Oq#gvNrcf`j5RP$摃Be$@dK p /'L!1I g]B`Bb;1&yG>)d9X%44j3`:: 'F `alj~*PīPL@ȩΑH K4&`RY2&ylT3Џh) D9kЃ89cdX!f8(=Q?'},@`N')¨$"PtGtH又iHʘv ބdQLDy<.(hj2lj?d0 r9Ec{uQ=TD&'>I33B8ۀil‚)"z,78aAtc^2c殦;36$CˮJAvd\b:VXv(aOzA .ObNU#Gxḍ gkK~ &u]$SHu( K}rQq| 烩㪜RO4D& ,6GIԉ&XS "X%1z4@Y+P"p xjsD&aI2ވiD{yХjix@.@r TB=_$v=W0X Ͼ*b<Zcq&@Gr"E0#7}v`$uK 쟻)2L@VPi'2FA!G2`˜ʩehIr=ŢA9͐TpG xs:F1_!l#13|m5VL%f"ceJ@0J& ^Rx92G&$ÆͲt"~i Po1G(Y"L|FQ@!G9Bc%" cXs|&h<-{|q(!* ,'Q)2wf2uIGji,S .QgAEDYJ/%aO&}#pYDL%bs' {x?=SI],q0P4DGg#u`L uO2@q,?A(~䳎f%HiKU ec$ı3<cT":;I@狳>Izo|G%\GOBϒnSR~r? Eqv[M'$Lq1W.02yRDOV50D^$QC˿<{BX{Q&H:uSҰT ;fxWgJ, fZnG%&K# #s?T 1ē!;/BHTd2{ggDu{80 zID;*I\ C q%0s rRsx e'b0B222Ms ?&c"Dz(9 c}'Mz`J`(L0n;`' =uH@Cb#9`2g'I'v\DD&P|~.l@37/~E*acUTOH yeI" r;9{6!&!|4=l\Q}Ҫ0D# ]8kg&)Bce\T*6g:r@ jV̞eH3 EÕ ! xڰs& HIGA<{>+s- o )"&3b&/nWcNf I#>.Ad8]1m?xD &qĂ2 ǟb!'N zƌp؟JHPF a!`d˪prj/`>ؙ0~Y%;ۀ 0`yFj3=Pa1.zFC4#^7HM`C8E z}` &a;>^TFNXE Q#/r`*tOo=UV(tP(';{ B0!\t^&oJo|Ep}U8$#e;bXq%jjS&QHx[ z.ic <79~.AFL2b`Oubt< :nUXBQq墝-2 'Ղ&0E{恓 =Qx -L4OӠJ l(aUl6CR]A' UbOM")a: SX0Ş$ J:ʬ.lw$JnTF:}HARWC`93~jeXgXcO/YFP!Q̱x0qk2 1D)H4=~JD:sRJCzc(ƽX$cN`(|{ȱ1w{@Wx|]O)<<7Y Ӂq׳X&976QRM #@q \Lj?yY qxO+'7ZL5nLw+^þ (ʓhAf#g!УxDq꽬М 1ANNW"P$cT Fqac, 3$Ħa4ByCi!K|z |'}TI;6A ]Q( 1H\)P pJY~ALtU%CiE27VMU"6h D@*I[ Y"%Q-Vyx׊!>$'12fœ$N.C~1e?v= ӭ bf^4, < cIE6P*v8h)>,u;ш>fą &k]4:9>(d'۩ q0uHMLhb0N~ T1Ft<,y'y =\JAp?/ @$Av(SDq.St.pwvEYN|&>j2'Lt?1N\ԁ[R,ڑx3t $,D$D0Q FuF5=~.s!x`dZa0#i$7k9ׄݑ38?*'D~~;K&z<5CF>f(;<\ӈmdt])̓rDaHë&ט &>{*) yxX)Ę!LKұ88I)r{gtւ@LXpI`ꏢ",{)8@sPN?BA^8&g^ G7#)z-ej7 H}XCo(!Thcg^z9 H@u;>)tK><٪:qC]&A>k-ltP}J.awŘN~H MxBR%`;c9HP;ʰpP94 a8%d>$*EĒ3XL8 g?Ƈ#`T:^Gu^wy/Lg@\ / |gw'Ra^&X8޻NJ"8vv?u f@e8;j!l<`Ģb,G0*I"hUgYY1*Rp Hg<4bPKʆ@/$,NA:9 Bz&6o p ISXc vFF s)iT|fQH=$`. % K/ϻ'@@DfV!8!! #2<1d'IYTv#^A0?T{ YG rZ ӟ"BJgUquwq|I ~lLȆdx z~nC$z( }pDyc(8'3$C\`qΞ=|S$O( U̹͐c7z@c̩E!}Vfcty~oZO=M<ɧQ6XwB!ԇ^^ ᙼؕ=r`=xAф'4D 4!+̾3w>׊Cc}X'OxgM )/^~i"a(l ;@cL}QIĪGo7a6gX=nT!lt3PR9i0uM`<*79_ 1v xRC 3 ņ 4|S* FqMFdL!6zˊ4)Ԩ 22jeY!I=؏E5u@d bM$P`jOMZ''%(x pLlj#I&_4C !#〼d!TˆvW-K I_E 14 ]2$ G.S\&`P(t\3r;YɅC@+0;*UDBOHJebM4X#X Q;Nj;s^"9/GFXg$L4!R( tBC0%s 8I\{N7(Q`_' l0Nϳ "Dqt6 9 1Vc3CnFPTfyʀ40' S;hAu* xȊ˘49D()8< P=H)G982~),;Hhbe E&^a (c)OMxĝ;(3 q;K`LD^>`29]wbѸ+`NRÄt!&YxCyf"CDȉb8`4Bo'=y &{==eh2.㙳ɈOf.!艞#͋0%:N@$a#9jxwz(3D ͉aJ$ 9>U:NϮ+>hylHayԉsJU5;m9wL,M. "@A֐ r(58dNKppAGe{#wz!t6Gfe<yzu3⍁x `udX6e aaxDx'띤 " HX:(1yH K4cY ewytB&=T?=،zOvArQe\'6rR;NlS Y(n@q/g8:#R|2&#ͬ ,nUdD /CWCڱYpa 8Ub =O tP:*!C CT$Ñ2vB\|zJ9gN|6r5@.SF3ܕP8CAα4ɑ& r&

GfKy,d'Iqdr :TIRs$V n?D"6!{l`kV6NF"e @֤"*9bB%35>*f:;IVT@;~r;u Ky!K&r"zS( .`*c(BqÉ gi i!ywϫ@0(>@T$숀=UU@Zy5g 5$ dS~502(9HtkLD$әj(/YN"ɰ&ɜ9$*WyXLQru'(f#RjN%,'tp;QiR^@83SCHP/". Б"G%"g/CEC: 0bpM@2DDqS!e"# @!Yu,k<3Od W9(CG48UwtCl5˱bLgVz@ct&.%N(!Ra*D;{)&A'MH6Y5B3z2xU2p1W0K(x?HAӆb窐:)섂t* "F:D<>⥙$5]L3%`p+<["'gZ@_ѥiraF0Pꯑq89f/ NA"H$# zUKGdf;Iϙi@U~#='PQ/|~C1d.mR#f6!ռu9uɊ 2k`Q(dENN$Oo7pa~Tx`و4Ś.%CFG+$,TXO04J2=mo,EKu3H4 RSiM#ΨIH4+$ٲL81,%B|Q01U 3mP Jl36\lMt5yx"͍Ԡ_@"}a&aP:NLﭳ:Tpie,x!rg2ASg!̺c3D~&`Lqdyx}x' v;xVPhK2L TȦ̅VKI<dDo2D?P%sHz99MyL1ÓTN3-gf@c筻Ryֳoog$\tq+#(! yx0̕acÆt^{€ҟ@1¿6R]tđN^Q?7#yb,)\"j0ώ|~1:1vX'3 Vr&T[3 \_$=Bg$sA8[uzp^(Qw 3Hed=%) A`L1gGՅȈ|҈e"f=;!uXO I@XJN{llI9&E!av;z|%s?#'q6YʄaDA8+:GydhrDz9$D3/ 2=ٙ },2@x+&_#`\#! JF֛H *+~'NyJ'[zjXDõxIS&p.AfxM lSDu,/\aO5a5uDl9a'1C wd 9~ U Y'! ώ1DTh0ϧȑVAING Y:=È DRD$$k qE@A LDPpؠJ|KW(~ PP= "XQ)1b))n2( rwNcIKvBIx!ȄY2z+I|B=$n|TN]ǎs #F7:H$62IuZ"4:qSQUfFr~BtgDOE}wcCuՐZq(F̐Kk p5݁L&oBw ! }z Q!P'SgjHK\XO2b^Q* sɞoJ *!(DM4i-&)u@ ?U*D&=GZr3%,$@H1ꩉg:{#D,U>eBށ'ϿU eG_'K\ 0 8TH>Xv#yD\;DOH(99%KP.eL”Ɏ#1 @to/YS;dyL))0? P?6\~i(k,I=p5yC9$9Ì͓&6$cR&%=( jv6%cbg?V%"M'Uc=6LlT8lhk;^ iC:Uۙ`~GT(HD<"drx$!=DB"^&f`8lfDUTfY˜Ax0$0ߺ2b>:< :f ?u":Xw!ИxQ+<9I:~" DpRH3ިAҼYRnPU%^#e'TC%9nbzj=Ls긁(zl$8|ܨ( 2Pp,y+%90qTnw"vOGď&LU4/>"P zm>lBϒ"QZC6S_՜AՑa")q9~"=ﺩP38B99cJNf.;!cꉘO";ˌx|YJUBe؟"i "L/@1 9 kE_)M$( ʄs4N](b;nC&@9bc Sřʀ:Ec2#|t(d"%gc@n0kD'8A}sV$@!ɑAQI*hAҊ|CA u;0 P@DiW"An'ꤹ&dĊPDlW͘`2UբMlws|GŽ}Xg,jgRWPO2%@|yLؗfrY|4aچ77x&$8fy%E=$I<3v4D.$Efc.P %jxYS 9I\ӂ,WÜVځ/IU 뽨DDzDṖ@>,g,YV"D$2ӭMpEljU ;LfBjC|F01D *(KLfYQ3Jqߋ,sOwHH7Ɂ gGU@f QPiy!~&`l6PH!*^9@L CY)A /8Fā.G 'fR"lZYE*aBu8ȠA$!58ՁG:9fqx ~0 i##%yb N*17bMwP]1VMzcCOUtBK7ģT *VD1!|sH$xluVU@,H4 ,Čg p yw5B;rfL1b $<NJI75lHpn+L!eAgA PXD,u Oˢ%H訅p|a@{ % $>,@:THI;/)x󌾫TX`c5 $(dxo$ʑD) :J #<.*t(|2tpa)1g & 1{q(4rOh@l3) Kf?{tstaK" }o heǧ؎Q^sY޾lk`T|A2$:ur\9J|l"zB>"FP&5Q˳v N;T|N`Dq6cK؁&YO{~8cGr/RsDy"'`lXgJ2X .$S2\cHoܓ0n=T> i0/"*0Fg݄,G뉓Hi' j»{q?&.X#'i0B;&RNP ySj7?4U#ϻ61cmz(O,UJU n5@=BGk8%]&L59Ŕ\ pJXvz.)t͙1J(^CdvU F+rEȢYQY2 rGc8HD[0+(U4gS q؅\2!^e>A@,FDa"̫4s]Lv 8J2Q/*D}{Sjy3E@ddb%p'溚A&"8Ԛes= 1(hH4o'H{(3x̏A,Ju(yBG&V`0,'{^Fs}p vd g2JFA'9DBjGG^Sr,;|5PGDˍZD,Ob; ^VdC8`} "`KLp3̈́DNh⬱˟.Մa<9P]_o|xY%9b 0l ‚C')e ɮFB!{4(1y2P$1OR 0OT9P{y( J] x"KB`dl`Kכ&x1ڊ jHBIdÂ{_IJaqF{P@.E ˗}aNOY`PX'@19'z aL>*Nefb}TqaxWP6c!g?Ƣģ#^cBQtu$VB6! `G|~!D#Dys׻*s,# ^2B ݏ#ð褈]cX.Lb'c!A<|W&tjp~ˑ9UxD"MVr s0Yųc?VgAZk 's2afL؀<@<4lKPDx(EA(0S?UT/t=e#< ϗzh(2+1I> ļYBB@3dNΛ\b /l2IME`݆z+*4P|X:(NYß\`d,ѤI=<{j_DgrBOFj %4 C(aIwAqDR}e0 "!0jP0b^✘l{ϊbr0!p3%bXtv )%P23x4vlf'l C]'.. ;((K5R<=^bq 7~y2DpQ^4R%ӏ)fIY}!C8G#L5B νRq!}v gg,~{F#y;w>i E}LFre$!󺼩|_8+hYLB0<uOSg *($DjY=E#UA) AO9 zbtkP Lq+ȱ'~h!rIYX&HhP!HV%iϣҹܤdA\`! z[A?*L4A#W,FwNM;*N|i(Ds294pI%D/tnr\ x*BNvs7σhaug >2uBC+{ݛȞp^~%Dy⑉z$r`%2kc&"ǘL P"'G ^4y&~}{B+'~C޺p Y8ڱ13t%N$UK&ijKt !pĐJHz;Z0D.D g\A,X0 fByd |2Qwi,I>JL'D^ ǙN2̞pJ_P>AT|V*2HLyu`cPsQ/j) ވx vG|G(<(U/$8eʙFlkN0٘J1x8#ưW;RP$L$"$*!s6 D09L&#,Du$f,eC$L7b&B#h8=|7K:8&exqeq3XR4'Vg\#_%\1d]JsB 3'"Jr^J$ <]q6rH`ag:<*|&$D5eNsu;1h _ =f+TG4b^@nq5H1&c}I*@P$C95@Gnޞ`x 8s89༷:|Q"Í s'D>^W2xʭn')B3NTX Ýu39c l'͒?jόTcW9#ChfRC̒c=JTI>12'@H1Tx, KbM,!ynpEQ9QVIc?4Ļ,݂cZ$?9H@C'IOa'͓ӄs>ntcfC4`sp/uNJ?q.:TQeH2uSC?~)0 1eey&X\٦ BO fc"I;{K,@u6H@9omDgCARDau.4 ;<8G" !$ O@b`|wpa 6!ψ'p'EhL% sIH{W]&Lx-s{fpD~+$bǛ,d#?eꜞJ8a4wr3*]>R]O=P`iKYlxG{C7=K9DEM I{5dqՖ$8%%7KCO rO%%!&1XS^d{3ʜxHsŘFj$lc)FД̎p+R?U D1&TH,uq݁ EMwId3FCI('=עA fD.rYܛqtk5·(GQnTrʍRC% T7`;z7҅F"TB/#Vy5@fY,R;$5$'h Tpk8 =Ȱ&.<7U'';na# R xObrx2ı*1$wJ7=Ӗ DGt"@K0r$g&lAbP2e> O^:0脤o"`ut@E($}P<#Ϫ3i>+Iw6798UaI"yp_aܗUȠϺL$1<{z/Aר戝9:yNse#d]@D t `;^y5@8į11=wcdO,2̹ќ\>C?žO=G8߿50 fsu)"?{DsuiR:y:֦`׏0GrSq~KC~鄤q6eǢ}]!zvZao⡛RY]TtC64OaԙptGǝ)UXvN;zsLlqu ,`O-m A=s qDiG^8 >c'rN~h gQ?" ?w| t͚HàD!#Y|=1g+CR:'݅#,}#z "S$HL &T#vBە]x3y$,z0 dPy%IF!sf 0%P2H$d\x A:D?b#&qAK p4'@ s5le2hrʄB7}!<%D3+d)CTgghDe%p 82uf NmGB|!=u L/L` 8썋"Q(BV ( "g4e`Br dQ'@)AlQ8װAD޺@EV. hE$Gal; vd *9W6"kNG(c(H> J1lG1 ;/D52IK&0qYgz&Bxx>J_/lrL.cl:DwP%2`f]~o{'1ٔ? IQ(doNl:dSs21 9I$B6=Ԅ X s)!@I:ӉX$bガ9$L5(LRtR8()+LT̞綘 f2\F>N92̚#t A1#ft>ŒyâS Ds!b& OҐ@A0xM9ρ$$)NuF&>ir=3(iH pv4cBI!j#1'2T@US 2Ce*K9;b@;ʮ+_y1c`[<%NA J-!qZK++Jg{ŐtN.i,yө!"B"\`fn:뛀M Lo)rՒ g_dHBK8r,1 1 *A3#7;~&1!;'ypEel3hV $җdaF"qX.ʷb>@i>៫\Ԭ~͖:hϦJ "PT)Wl@8ɛ :"WHсٱf>od;9.3nH q<"M`3d.A.x8آ|u1(o4TǴe`L5]LCxC嚥`vfik/ '%*X 0w>\ϢHy+$'6bvmb;veSnp(4-Ev^X8A]g 쑅- XK1?2<ؘO\2ݍ&O Fq4-Gel)$gA'2/1RP@ҳlj0!]q2$=<9S납!0~C{QhT&mU,fgI0H5izvhL#ҁdjl F&XTHhL9(9Spp$q@ vHJ hr~cQ/1%(PH0v0pFP) =Hn2g缈#R¢J8F$€O;Te#4ӎi@A`w Ernl  e4*|aQG;PNc+0:4o'Ex,/PELl% &Îd<̌99+ )\8|81(d̾ *@eǙ0 +'Ka9~@8 AA#{%O`N?hK1'sW, 3+!#PK+0 $'R`#RSI?58R@tʤ"hA7QA%}T2x=u`"G/9HF$1a^݄⤄zE>yzH쳔yo,Hюy pyr<{:k* >Ñpaxȉ|zOob{?4J0t.Y`w8>jSĆ1ugGϻ<=C]<=|Wz\*ge:$q?.D\h1wF@5dq4.QJdxC˒PlBNbZf5hyjpoOsaaIǥ O<\<F#.GGGA*:q<Dx0q|$}=ex̷9ѼX_0wHl̹+C~۸.y33؉x*&D\t"7׺di`)!a=wǑ/sG !z;p "r)x pßw}3#-@h) f%?9VAt]† dըFVdĐL= *d#@ _#Nd6dΠ@ꐲμxX JpXd sd({/rBpBL CMμ<bdtdbHgN63M$j6x%_ 1 F2#.L$M ȈẌ g<ݕ$ddHT< U0&Teh{R2GBG M E0]6bZ&'DHa jmڢҒ\4,a)H`jce6>i DD !. ^7R@(0}V'D34,A Fr4Cf>8c,Fx` 1*z.𙈦G%\q]3h9 ߺrfV\bna>0h ( 2!)$;I!R8:6*CF/$䃷<&ϪOgQ,Ϝ%XO6Q02soF<|R   N^"R $Y@$y d<+B656vf>jgp2ѧAB1؏xg 96%JD G6;<dzP^ x'hME hD,QbQK2BB0t4ެ:`rnOYb"^^a;ĕ"e]=Xd >|тof *`¦jpWi3&!1ş1$F_5@R9?ĒH_AY#6.@CfP(гMSj ×M4Au LDˮVINCCI:✳z2ǿ)$l)_}QR,M1hw!>D/ȒdN<2jGL/STǔ&"۔Y ّyp|=P8zWb}5ES-^x$:2 3>#` A4vFbdd2)vV!,&O+|Uk%~jZC&UI'?l8EX*)Ɂ$K8NCgvEQ>{O?\t<SA!1!)`AUQSs _㪨U bN$]8ndWz0˷=6 "G$IbP /bb< i RX;hLAP ~T'kyA42~XC5PgDsaBgq:縯(T=FdQD ]D6.v+,.dױ,cW%b?eX'˱lv!1~h!Cq?;E㙎l*FA@{fG1H&bQNMpĖvXU㠓=ry8G@%dg4ӰaQ5j":6AJ3ˋ]9rGY9_5d> xbyͧ 44&y^QS`Dq <8Xl3xPBRAE-H#,2ȈO.f~[d4wfT3~h@0ÅFIt\E4^D0K > e 9&5FY `8TvO! )Hz0cOGSAL6\b؄AHy"l!8$ w.efxq!Tr^ox"zDG\f 8|qzݺ@vW+$IbD $1P(YK+01Y/S<W^)5A)% B`:W@SXk EMllکܹᜨBQ1b@`F:!{&>W3@7r<RXˈ.Y L1wrׁ ~+PBM%H|>hZ9cԹw90!鉰ʨ0亃Ԙf"6y,f1% QcA ;Oa a0tTxbD,G6PiL )CLڈNS`4I$(HflT2CI6DMA Pk=P3pILG,2JK&X`༶V$8 ^:%"Kـp^bI Dm'Kp=dH3<;Q B4I",RHW GA0[I#0cNj53,,Uľ&2A.<B"YԖ1 O9X`%&!̣(N`4u\J1y1`sJ;`ٲH`V rE $Xbd 2W@l2% |X%Ay+m_hbY1PȞ%:R1FtBFM`׫"XvgKЅ\.S, 3 w9ªH"a[=Cc3x}.a13@|zʱfDF+b F ) דbz^FOȶŁ=y6`@fחxDd w\dx'\d;gg'7RK%A&6n<5Hʠ7(Ja8a9 g2V̰ĈO5S'eL=9|¬L[Cg-<l!p㢐'7@8xͱ"A)ffhd˃dBft៚`M|K T$#bHF ~k VKxٞLG ;r*7D4`͈_hA$pߨ*jUιXGI>/)8}^.zDnXH<|6 ǚLj 'c+=XrJu݄;X $+ #b&g8|VWN/ )Waa`UHifl\T <($O:/t CTBT@Sݎ+6X9ذ$$2QiTD,j'ˉjѸ$%GM|Y$0'䥷+ ~1pzya⮥Y,Rμ R(OT2#'G)!&HXc $K\H"G/}>&h`F }piBpsqb`R E$ Kr3LmȀq@k1MqGkYx?,IE δgLvYa&IzR Q"2nb *m8s;iJ$&$c%*;:M2CxYySPLS4f@+='bp脁{Eq"4HA0ף&%IF J-``,X04~N@B5U*w0< :p6J1Mo'9(Bp!=HɲG)YC(Tws$]QR$QlL;Ά$"0FC5xHH3!Z)1M55'%HQr_p(pw9Cy0ENO,{%lfł a4G:IXkSQ@ELC!C*]f!Q , Hw4F͔` 'ʠD<]:#6T_@uC3dVKb:)GȖ 7|\IE擞cg{b@dCǪ.|8ʑ㝾4|zO]\t vhłhc,.N,Hؚ>hx,_'ۢGRϾ&Bcl&͑X,`ɨC=q@x`C0qeREQCxf;1% C$c h$@JŁb5@O,2:`J 7;ee&ֈ Uh`rAx'*,μ`@&zH~岷a sgfC}QZ!c9Rw Q qݐ%~:q׬<1)Nя ~RH;{>8+~ qU0qbgl@H0k$PF zyO-&XpOfЁ*/3k54x~k{ =\@@qY#M1#<8|0NC>jCLr,13$u\2xbMYh@O)d擇q k1 TbPËؔD-k+$v^h+l K5Ay6VxPe!Sg8! #rI0iA nE@̍_ĠyI+oSdp H'E" eUgR$ =g 0H9ʼdO"Y^4FΜH))#!sbe@5$ht/( uU() P L"oc| #Xr0Ϯ`5zRx^,vCBb5;ZtIZ$dde' N:$RHR"%yb` ıa8H˘H}81씸C' 7-GIa*& i A=`+e!>ڈ2x$֥9T2PI >y,ē@@'o(BfD /$rqJ4Pyg=AH Ye, X)#]!EFv(D 1!;y'DYH$ 3H*81RI:$*%x3&%%',`XsDÒgj &S4ht 3 >VS L#TYDH:3ϚA9U Q(;E"ɦ$vNcA }8/!!L!͠Q)nOD!a#~eI=G* HsH{ @A=PTHDkR^vjAf#K*$dl1'z K{ ?t$&3ܼ3Q> fbL12bO]*m$vDqΡG 򧺳#OysUVXNlf^O9$α<ߋM(`NB =vv4'/uhegh 0!:W3E 5$r0?A.j4L+=]̔Z wAl'qﺸaP=qIWBe!!;lF&8ch |%EƺTBU),ņ#{cYWLΞc'ϋ`lÉT/ hUu1 L0H`&Ju4?us!h RP!#u c |@u@G3=+ gԅ*O r^Q/3 ̏tΘ :Pɨ @9i2,!;Y0;\9g+!r;8Ža\NN(bc, {P S*3c͎X$*sp!I#e?hJ/06lZt(˞s Itg@*8tu43$ B<Q@li" ,x킃ώ憢`ytY̨w)gA@@ "='kt+`JDA&@KHX;Z@.C xLC%|H`Y6V"įNz瞩7Q;*Tć`}OɊ-,bc1<}R"̗8 > 8$S2IS34 Sem1Nw4Ud7_ F <^t0ʼn^w3h2 F fz=؅+6,$ A/53W:8Ք;<IFU@bN&VU8.?՚nx@(C[z h\ FHDQ,.52Dxȕ@0,ApCqJf}V )%AsQʧGY2,:"(2jnudug Ǔ? \&&3"Y#rR>YQ(X: LpA3qQd q P#'T%@xA;GFR npMap$6%{ Χ;$DZ d9VBi. 洒A" q5b4xm(t4q(ɲEhs5IJɏ9R C)"( J)` Y!KOA!B@O""/qdx(M+'"1K ;&D EPQX,d*"F̞l[H'x|gUb_'f%?7 0d 1Kň,x Or3W$vqۧhbk <ʒ숝iB\"<<@d<D :K' 6s^lv|Q3{\; }&Yg$F2LE^9v5 cmy$yf3)Cf;!n -ry`Ȓ$ $ =T*؄D|o}z,SńT>9ޙ"z,/X]A8;8R8vdaS@9S <\,(YI; 5긳@|tla½T} A]F'̡$C Ʀf6$Z]=qS(t~lkVuPS{{X3=U"d?/T TG;P%tǯ0㌧' H-N$2@Z]gl'Xw$a=ԑɈg5j&}3@TU+J||W/˨Ԕ' ,;!CЙ&pT 0X4a&G6\YfffbC1t4 nywfLy_bC +bVx#W*;2 f`Xlj<e}mayނOԄ'gb&p ;Cq SJywEXyrS/.A׺ `b%$iHg"^.F/q4ryI,ߎ0yH?|T3,cȁTŁXDbP묱(؇vh0G.YstCQyA^ԓl7ny.(I" x8݁<; %^ \01vu]/k\= :y46clc.n2f9@!Y# %4F 2وp3$@2@c9Kx3eP" ݂p懭'|R a!c8 bHr*H.14P!h Y6:@ !^༖X#D#5HrCH(!A73 1j ětXL>PO%N.PDo]䁙p2$9(ف0Q0>kKrqyPicCty `$.&"B9Y,ы3F34*"tA8S (O]Lhb>%#Gg3x &~lpO3FS:: B)S݅d/]ߪ5yㆀOTf'̓EPf>jS@%E6u{HerRf%~$bB79TM;Q4! @B y /3kaanIT@RmhFB dG5"Q%BX}|2@F&1ٳNS*!(H1O;2A2Oݍ)Hn4Hfl!UTA@>kO B!xo IPF9XXTM&DB#/,$VL )-"!O`.5:N88{8S#Dc^9FOł!xꄢ!e(͐^vWH1߸1'10}@;㬤sݔ̉Z|1H"QA8#ޣ)0Qct/v!8^'o,/ʜ7x$Y^ې۝b+Ua͍S30Ab ÿd"Nas}Ve8B;>>.dŒ,%^m19@ bf!X>wT@qF5aa8LpS9<}X@vcucB>:D#]u65c8v*'1^nw@MG3>+ MsRF.X-?5C l㾬<t{ bt89:' IBovbTX5xp`Y;t~.Jf58l9z7ZsȞ NZ0#ɀ x2?0&"h#afCz+ pG\wD"̰1>Re ]]G ) 3'#H縩D0tELB21 jNՁP1$Y(<5h%*' O+Q)v#P\]:;VO""Y'"e!^؈$/XAN74 \ dY`p<F dHp ͉ J"V(q@d&gJN! hqIk%feO<RPLq J &dPS(t0Bd).|І\ѼDaHB`꼍 !R$jT  kD)[@1!+,wF~fP`Ts5Uk9p3W*CJTo=JQH G'P' |T`Y0Uu#5܁XC(ìn ćE; Ry#9BCK -5D 0v=T3$d20ی KKHÿ.=0N,(vV2Py&TD!;; >H)mAP |)qbg|.8~l<<hL%}P@D K7 43IQl/PX'H:sH Dwfp,>:LDL$9X#XO8OHDMj.GGU (j$cCr"3+$$B2g~$$ef4`#'M+ctoh2מCOEѽnxH?4<`j+/VPrs>%*Ezt"38clɧk™ !/G 3{k#(8g3p A#:fB8 }^XZ.;GI7!ǘSx*}\B^.>qEL)z:A8dPIX372sDq#`I/J&qS7;!)rJ@~nQFLsڴrPv|M| {Ɖ$M$bt؝P,tc ; M'XFXH A?CGx>2suWOQz!\Ck]f>}PS"{?)zJI0tK3L s;Dj7-<7fXYD5 x~la ԇ8,U92%{O=R~8"]S T%#^3DwMI}?7;?t:ieNq3_b,/Ղ;$gWU"LxwFNg"%I~.<|I0&'lOw6qƽ.U_T"ENE4I^{}Dh):)vLy="C@ДL.{&Es `Brȓ@ 3݄ w@\ ,)Ph&4\9SMtPfG.R[R)I"=l!$dY5x M`,K,Z,:Ԉn[$. BPSc)=wB悜P.SL$᎞S'0%9CdGc9d%`DB$D93a//y3y$0pcB#r)08A>oRqkp)#LDv {PqI;, l:[6RA,HNG]x@@yS(:Hhp,DlDsRD0BG~?cc&@fDa^cXwj!Gt@!֖z$zDĩOT9ʑy)38|Q(BыGBT@ 'SݜCsFzLbH^P8#ꀑ/' H#⑱%&臗gÇ"אY$ O pp<)A##/O+dHrߚRb #l8$jߩtVH{f?.+wHdQdgR]FL>kGNqtOVb`uGЏ4NhQctJdhX?7g۟xudb^=|P_wF5H ~l|=Ny㬬V!q -g3WGxZ@G/U/D=tS ybxq43yY#'a9''] 3ga,1NIx1Nfp9E!Ih7 $ybQ?// X>' v8}Bb *K 绎Gơv`90g5 \OJS}I"gꡏ}Pu|Ph!lA#ip{kWWS_O~XY*“DƕUb;gQ&g 869<.[1뷮lɆ I ϚL DsO. N' @87}DV5 ǀ:|RsU>k H3k9#R<&{@$.jbgAKXi'<ّA3wRTO2vCכ1`HB xՒcǵ^;Ly"s8ڴ'GyK'F Hp锁.N,Lj4xD̈?$Y`#œ<N8uKe v b3uNɇ뢓%wh38g(Ij/[P/s0Jk fL!3R$ uau$("CDF6X8<`sv`4T=SW=?$!W#(S[+/?]Q !( 8qc"e;&gD8eNJˑfclA#囈הJǞꃉC 9>z؍uT)оt\sA6ϧ(L3Ə+Ǜ馝wGG|Q;,<9i=Ӈ^\gVU}3O0>˃69y q9$JI=A㋣Sө3R쓼d⦈ۮ89DIB|u4F2DYxN8DqgD0ϕJn ]xP'p]jB!쀔e! /oH)76 IDZ" ,or;D@0NAppC ‰*CUD L %" tpX.A2NLD0@Еh='S | N5mE$v2P&R"I.j H@*q a0(IP,t 3 Aвdt0^h#ds^ soYb990r&3eP< s60NNP$pgaُ3IFDA,9H*#Ai]rġ L=5YpHiAx b8Lx5]cәP=Y(FR!D8LHc)3&cVCꠓ &P595fabRgs5)Yb#*+"Y`̽dDd\H,qY&EHvqQ،7;@ఁ%uΨ-y qpۊ)x̓d]GIH#K@I;gc, 5̍@o.aPgW$XdnQ g#\08 8qԭdxpKE@HߪEE7bR"dHͩ1`wbSL1Vzi a&gb%0W*"t Sŋ 9ys(dN= ?8s]'0j[%uY@Ц 7HLLT], %aLjCa9K#̐Ef|N_ r bP %P(1R5| B H#|O7NENh~ H^TW1xp8A!YS%Bǹwd SC=Ő ̪UR٨B  c۲fm`ڲc*A`c^Č b@!=~(K)~i,tsUr56Qy| 'ᘳ/H˧FDB93#35LGL'U&{:LC/U&6<+:sauM=YcΥA =7FVK0NFn,Y+*C2x&>2X9%0SRuɨ8[ʌ9pG h9et.RyK 4_U•#[Qrr}b?K>B+F@y1kVC^-`1XON/o@L&yf)B4 $CÓaLy+c8[ULv'|;4L訂Nyٗݤ㋹ uo f|;_sCLJ͂! Dx$!ؖ:t#  7JuE?Cli`bG~h1jo>?e,VaSpᤓH"$1K"$s:)` jgT I;W˞Ϊ#תX%{L6d?9vN"BF(ψᲕ U@AHfC֒1\ g(fR<EIɔ##189@ 0NPCb&Y#lNG)u@4JF|QDDİ!( D AGhX|QِAUu3nȤ"Fg UJ2'9, 8NLl kp#"6$<6WP hSD8]e)s v%ǂaf (Hp!DxcIN 61 C;du9H32xuIkNW6ubiz$;!5",l:jU)bB?I;B@:bc ,KrVyΌ!b 8^DdVe͛B#H _*& @1êQH ,1F~|T-p*3!Ş)a`ٍzb Rt(3GFy3G6P8Ӧ$a0 ,{Y i!y*&G )cxΏTKL@7QBw4|ׁI$) ,2;D,a%J;j``Gd>$= +& fN(2M*@¦JD,r^ Lc%w%r# K)2? 1@X ʘ؇&"VbHNZw uBҝPbPqc MYf/t6lIw%pP-S D@˜ y,fL0G'"d J']DX4U$TI`~i@{Fs2CHcN1I@ZߪV (Y$/uCřa9=a$^{ 8pْ'b`|%BP$3s( sQF/KP2xI6J !TM$s5bPCveL Y^2;}"=I@"M HEe90CU "0dmgTex_ :;D:'?\̬? PwѳYRF`q y$*JOI-M'#q=g͚$xN0&$xjQ<~D4֐`&c3<8ϊd@+:(b'Pr9f \ J6\33N&^h B`+r爽?%|3Rb@mIM^Ӝ>!y{ BseN6r}LL+ȄTEP!h8Yx3`~ ND>"2잯4&+BOaLJ)K4G.8$`gK=y0zI<ȱ$8Lx38#3A'C#l䐑(׉3?ͅ!ZYeyT``'Jz 7@ 2!90PӃ4Ad2,q1`s+S1ĦHBv/-\9B${Ɓ3YlDu2^FBv99@PIA9՘ʐB&Oňrq)Ч4^ȞaɈR#n7 we`݁#>}YaSD@3LNâ5{Q=YX,'lH#hq6=;S%n L$Ѻ?vCK$4aB I{v8`\Nar>,Kns᧒D8wdx?>l#oRv; `߷r6e=^Ns{IS$7o<I s~{O9>*TŊ а@3C eyz'##&?qe|4 4e"x4N#N/8x$0 d?Y]収7~; ;H'ۦq LDIbSah棽RNt<eVFUȑ9%N,@ף9Oxvc(FrF sBWe%ʴCqr{xjL>}PRlHp/ T2(t)dk4]!\%%)&f4S 5  \ Nj ֤Hnq L! 'J{pyH1g$=qHj] 4*eT.K@USSc"\tKB&$O[0:H~"I|G!.g2:SHd! L"'^g;yѨW F6Eoe'ΌV4SӼxI<9 "YsX"$}F0 %fs2f%d iMqY#qQrg؞ %H "%reeRM$.2(etB@9i@{&RDaQ!#, x&1qeFى$1{x%3j& L $@x~0$QB>w=8$&0ǟ/w8Pt=@Ct$L#v *h{rLktˡ;HX13U &N`!$lf+~I4ĴA@ƒ=sAFATHq{eNLp >壖@D U y;cۊc.0AB|G>SH&+9xd ٔP#IB6+)\+fȩX0 v)$m" c( $Q3B #'9)f sT f6XH`LC }q&={("QDKOH@͜9)I+`( gH¦DbWARVЃzԤ<՜ 0"XK^t}!1e֓$;8(ldf -q 灲&NJr-  uJʀ+2p3+Br&IٱFxG'uCR$hW$i|7'tp@ԀD3PcO@džțNq!{ӧupOp*JnC(:`i XqW1XH |DrQEtji\oFsVG(.+2ldF'N+"`ay+㚤ɍbf΄Y%g(O=`MQe3'jOIīB"g$Cp" SDp/uQs&dJz'w#RD>wY#j2@ ؇ e|W1y^gń, cU QU%3 I ;E`4%DFUDE, ;FPA~) gՂQ| MR9H瞊p$^l2pa1%xS9GL!7*5{&/Q NiBx\gG "Q>Yh?z" x)>F=e]yd=L'x,ߪI Lbalӂ7$QL>,p3}p28~,'? XBlB%zqdGv#lAR&?54q6GO}z=~1yH>h2A;,&\aAMy ;I΢<(W3V'gn@x&Ⱦ%L1Hh8OfǑK]E wF#Lj#o Z0[枢=L^+&q0Qḓ$ {!( &\Sy`edE2z"U*uҟu9RTyd(2FtXrM5 8!A8o/!9q0f ċV>b!^TbY@Nl@0c7Ui )uDY9K* CN< $|f90cW `; i!d!pGx`9*)a%ID 4`V*"M!B-K<́Br?Ƹ,9G kf$؞6Pfl2i&N&;~* #ɜHNGe\F 39sюGc 2d&!Ө06.G3Xf!qi@"R -ZNQ :@%d L%kH,xRݼ bDRhr%\R4@)  yTLlI4E ?mp#g\X`I$ w9&@>lBӗ(DP$8@#H.P0 #Dq`Hẑfc 0 a C1$'0!$bK$Č,ي -b3ckrta<&$٪`@@#)): Nҭ%_z$:s Lv^(jG\ Lr8E<GG]aĪ`xB=?RsUqF*L뺵Ă(qPL |uI$p{26FCi'X$;CѴ H4! %fL2Ab,>l"&RA̼PB##dNJ^Ra] BV?F q\dIgѣu:D Y(L;!ETd^6Jy\0 5ʎ%9!;3BB<ԷI|T&sòiM XjH<˴9XW`3=@1C,,@_U\đK(r8`bS1P1!L"GI;2r8RX-̫&lJYNPNJa$(<#0`Dd`?RDXdK]`rq\~sg!{tF'~&螼)\=!01߿T+)W%9&xYk˅x(Ɓ48O9ya \Jc|S|5 q&avqX>*W6 1Hy.ġVPHɀBe^@dc[6F x,?66; e%Ͽt7#?'V#FMuOl`Ov<GZ (&I!l 9ʇoqCCA]Gǃ~kx~]^G"x+<V; ̼6 oIatah37SY8H<EHP\"yRcf]cŗ5GF3j}Ld_ 얌e t..*0ORu~ iH5( u 0Q3$PF r #͓,YA#AHY#} q eENm Y\.Q hC0ԳEz{r}&Xh`Ŕf )"I|MC9",#!R,vH T)i#B^ej,QJe˰R_CXI$Hyp%c.dD@vzqHSk0q&$)0x |LǺ8׺'\& !!&fXh &NĐ!Ɨ-&HDNqFC*@ @.s'ŐN̂"THe#q1┌ rJm$w B$r@Yc-"7I'FU=$cRb@'2n.P0 ,Bdg^B a_$(n8̨$g23 8:r9 a0&rձHH`N*^##kJ@ &STh'pX@_'{$:dA2|T`2g%9!"HUТ!km "i-@5LPA2a[ǫq@&PX.&|0 1]&|DnMi"=4<{QЉ'(vKdOG:c9#ŌdB:  E$I $L(Tu=xgΘQ% Th "S (IKL=]߇:Cpј l2;.G 2t\]bkH&8c<8 js*j6(zgLUlXy<T%B(Jaa}YQ#fLxJ&$yE890 V%8~nQ 3V)]\M 8p$$zvŒeL/nBLֵa|ATlB!4Tɪ1ؖ }@ϓ8*)@>}"($W +PCqq[= !DdB$ &5b0ǻ+y IB"y`%)ݨF&0l:ӣ#) JHׂ)ǟsR< f,B@ U,r)t#eJ$C#yNGBcfkx(e\1wg|P9Țy"':ڽG,:$ D$"$J̇((KNj8N+ \s^#>fnp*a4%'M0ՊJ 60O4 x?Ue^ʩfg@ x''EܤCƱcQE` TILNj+z_ug͆HsFeE`pp&GWG^=P=9YL|X5>)cW}Lߛ(G0ח1yɓv`Dɔy#zӬ>D'7ck8sXc9ˌ!?ODsF$s3L.Ir +DYgvuG)$r"O>zϦ`׫Sk^ThƜmcS};[:uSD.L@C&gQ ;+eh9W٭s ,L>rrLk* HP M0 >@s4 *>&]`$)8 S@GT>RH.)6X@ED>xիB~`8A8I)QI,)i3.e!; \԰ nA!AI> 'G2O^! IwrA3!$o$bD T%!*(ULהXhd(TRC &" (t␅"`^2IN F &$J.CådQe ͳPU!yhp1挢D,G ̽ q`38qNtLO,%Fb8#mHG'{L*8\8FHbQؚ r(  (G7H8saGݏA}JGD8%9 9:MȗA?4Ux` R %+v2`rYx @"Y@7$IhFa݀%7.n8Bz2.̙͐DR9:fL_ 1|?gX:?_s-O>c0kA8=F!}Ղsu9e"nHL0K;Hq=0qe"c&y :٨6:m }qG;g*\8}͆39,5DV8rk?u}=@|͖8Չ/)3HcM2KǝNĝgo"ygv8 _$S*DApq j]BX+% hLdei0<4G9fDy}^p@9CEIߪGzDŽ'90dFp鉼19#$jRL?'sDRĩ̓M$@6G ce]c6I&Q(Gb)M,ubB 1(Q3HT]]ppc>*y@8E %'Mx qt f #̯"lI I.h&E L Q%&q@S^ns#IG(t(n =D1>*E!t6 /.p g %%bm N-8$B$$A39BR 1.$ M2#A;H.3qGjN15JrA$ TF)=Ix$ƸBb0؁6 /$1j;y. X$S1\* Utyueٝ!!ףc @zVHFC;ؘ1l7(Af3"DE}As`va C-dT*D0I?HfhD Ksu0+C:/D@m.`}$_EB$%$0#]X=LY p|BR#݌ D#,D9T+ ?; &xGH( Is^<&;NfB Ǟ$ՐdvBo(0dH#uꌔ+ !8c˓W^X&`PfA^"bf/u)h fHYRFv$qVa:$ʔ傱W: -G" gH(BdJix@Ls3R&<'DYfPdGTDf%]N,9( ^^əg:-DTx:ݍPO97xf;|dLh*\q5epu͚gv9NaPc2|~,"x3惟m .4] t틢'G! ]2=H1H${CS0oTÑ.?w x~O>氮F H9/I=XHEavLl 12І~R)%bf1.y7q!g;> y#)f=י&V<ـ`:9yF4t_dw ;"HQaߛcqGD|ueL1yYE0FsWYψ{l$=1{ڐȓ͗yE3d*+Ee("MLd撗#@Rf^.~Sfyt?Wc  nuwR?Yc狈\eha;\m3bxyV3Q|PB8!^pBYI4D $(JIC)j8] 8BԔAG&l*$wF2& #T0J%8x8^Fɔ aHQ@3dB$Bqr Ov 4w(%a$$`>Fb9fvapNpba;R/2PFfef9:㘥W4@r;RzN@(N$,5՜Bdg&8"76&D8?ݍ `L s̕a<d"k[HO 䱅Zp"hYv臫 (*0os&Oo3PA(q]pˤAYX@̫Иy8e"uTu(F$'R$1bd4#+K*'-9\h* 2FΊpFd- dT'5|p+HIyD ;l`ؒ\EABJvf IH f1&HCh=bbhTWc8 ;KQ4r(i@$BB@A'\Rsf',X0ǝa (S(r̎sY%$j% N>.d :Es,-YBHEDu@B$ $O@y[P2& \f̎*g/q B2pqA3Ԯ~ $"$`A9bBx35YFTC jB`H$2g3.QHI׍,V,)&x}Xfa?dHšRC=5DW(R4H$UN YPCF(T= `!ꆬaYUuqg)>JupÍ;29V:N0|'AdP[fѨ([ꯈ Ĥϊ%D8?UpJq"~gN@N& PuFOKB$S68A( UÀCI"PQ"`h~lb/!P 1$@qW<15h&JRbe:G⢇L#y'N`$75t2+RH hq꧐aET3$x6]8qfB:ϚjdI%d`s/x!R!Ux=ٕ)*Y𕒨`sO7]$1RBC!S8PeH&vf?⡦c% d &OTf]eT'9͍)dSvC\}9_uF{H";1 Fr$aPe'$w0q?44ꠡO܍tS>Fp~/t$gKaP몣l@ l"iMګdLy yY2_[ r'R~y O3,7)D㳺<e  }أlAG?eH@dhHtPDrA4vHTnf'z%1LgsYMXP\, @ Kb]zA@zVOQZ>&GˆyRb KeEA ^BpLSj,qY22(W8`fC5UpBcoH d9$U4=O>lgG}_c~6)ES <'Fϻ+G;r+'64?ف7ꆈXw lW9Ua ozu(\{ Ș) Bv?N~($s.QL]ۃe]7,e'(yNgJܙ3`tG,>DEbNGb0!XFVw Vuo# Hr |0`qrq)XT 7dOtD-IB@T@r=C̳S'4h+%NS1H=Y,8 J̃INE5f=w\N+$'A@ Xq+ߊ1j < &)Ex0RNBr(#<$H"!3+ךR` q.Ab7dc)i :TW*⠞&Ġ@Ł2pLf bF8wlhϩ|Qw.ZbBi$`B$8fN0I~e,cHJ/DH!窳LydlF@@cI MaQk҆rD1Pr2"تZxj<47afdKr^(hP8 Dj1"ߧ\ʖ 6jsɛGng@> (Q(vM2`u;aaTT4R^,$ITs3QN$#.| y1@3Ja )NBĦt ̑@INj 'HpɪqEe:; srba#eT)q9t0Xa r8ę O9R x0T荲@%<FJE6bPcRZUlc#@I:AzR唅 M %e@̀L5[G6hCt&:G':z'2m r|e!fp>3?HdqQٞEJ,lJA 9zdd@w&Wz映!30;1u9򢔠"y3 c{Dc9\L; GDre g`Q < W2d^*B#K9ZP2 ϓ,R 05DN'< Obw2 yԀC;4s8˽թG FfThg8˙! "09ϺJ8],A!(C%ز̏Nܶpz!Y./Do!d^ <\Q/.ˆ}АvL6|=Ȓ3J.@5w uzp#OW'_꽎y*bVd*옾ݔcQc xGXR8E ĎHGhwf_Ǫ(DJP=7Y&* 9E'm"9.l4q3&HxV +Ŏd' n\RAV1$ɚ4dcm#2fxrg3D),Vm u y b GΪm>rf$xlx82֫82@H]s&i0 (id"<؅`B tLw1>Srttb`1هJBtbfi$$P""d_͜p  $; (P^1ҙRe e '`(ynⰈ͒с+ՈVk*=A;I1 H0,ƑxQ 4dH+fHPd!ȥ@RA $fo%DH>(r c|U ,!Sf$;b:W Aـ1yIuCYRQ`&xǔ2dA)01ϥalDt;gvz ~Qk 2d >lQ3͗!fR&8`B%0aMoTSs`h:4.&G!CRDψ`e$C GV@ ).a^#W8I/%qb&J ) ;c)# >"DO㛀˅Hvl5̃oqy,K2^9pH C J2A8: =y@Dl6Id4@NjH2`a1Mx$.tkHK VO2[ `g LnrI "}YD8%I~e:< t 0XI Am|ʸ">`fbX`,1I p,bScFyfeCjJ212CUu癟=#dPaWKn P +'?CH2a/43vs+;Z$B8$oKJo*ԓBs?pd,A㽰+1Y(!S'2yG9HB^1YappU9Ν|5G Yirq!$0Dzɼ>veOtogh/H1 ?N쟛$qXzf#D,Uc<ٸ%"@wqP#ɪ>, WcYI>i MÐy&&L={`Hf(Ǹ?$|,@1qP;ea0D9|,V !d$qDvx{P"b"# z݂8s(ޢ朐}mbW fHX1eGLjX%|Q,p> 9rYNI?'d﫨1Isxa&~t #́İMH⎉ exу㪤^.!SՈ8l)3$yDeD鼴d48 A֨xUwQ4Va)f\8=4ēכ, ڋ Kt)1F0n?ʠq2ՎjD9BLv: HKG;BIs:Dj"㉤O3IMf7 9T.^ìX\&GsYxA1.d0seISVoH 2E9ͰKʼ1dN娦;gRmh.! -5 e:ئ0HWՀ Z:Za,I`A*׺ p@4T$1W"ee#<&fGDɐa@pA3؈Ew 6+I˶D$i@$gl)Ɇq @p:v؅;F%@HB1 Лdo`LH FzȠhĠK cy1X(*$d~k Pf33xzh! Ib!d3[-&L#OK6Nx%8!(';QL]@:dHQ/GGb0()2C wG ΃@Kc,RP0 < "#HӋ-I3;̔ X OHMO2c$feF@$.1ƅI^sk?2Ay>Hg?)eN \Ǒr" r5eD0E, "<"="d^* n0!|ΟV+C=8q&~PdsXmY)"N$.I[JR0@8AVueÆ6:wp3R'ۤ^\#A>!"v^.jIՐ|k )d^8Q!(zqwyA?~?VGA :7=bi4x8exxTtG)Zl"|]M_e,!Չݨ"CwYb sAGLEsY纥=yG2m]"INrb3e¬'T ;tEf qH"7Th#S(|DY;Ss|F8IOwf::GSD⾒k (3xt fw͂ :D0UUȎ6l=q7ל.͙kDp(3.]Lt2v/V$Lv02'i>w͖]2ꈓ 9v [( "ʚ&wWKt"g0CAYeB{#(Ħ-K;T< \G)=WK1N{Cx&8O8=Vgc}LgL, z.isN'ՁL96PBsՖ FvN3=׏M& 0s4j $x! *yQ ALĖ#@o0g?)e P2E W,ZrHY@ Dref@ rs#^'s:5+ iXT;m\j yHđ1U ..Yq0'XNsyJLYLm΢)cQq8A8 &bCh$'H~hb7<˂-,6p i%waW?$#ؑ+xX@4)ЀGT<!@ 7e۠y,Ih@BH"Ij&Bу!1ňN,d,!E9cEy@3bePHsj3, wY:i7D'V8rB 擈W$%Scap6h9%A+W2@JJC7&$sIA2oD G)g-"Ar2`~($Ő@u.`SE=*důHl&v(BM&"!2q@ڐHB TbBT`'Yd1#%0@\"`S@ vX{D . kf`2$f!"Za K' 2SXex@NHU9H}ޙ$&;2%+wRH!c9\!$"OYr5FsMES \L+X0OlJpk."@"lO%V a³BP#@Ae՛!5 UIr B+. h0 Ɲ]DE>>jP"d\$(@&i4evBAHi#J$`N2 It"Fs#)C)!@qӾUp$qOs IOdC3QLH^ 8]|gUF: 8D $GK NVL>tzDщk9C|P ,Rz `d;pL/cp\ N{ $?]RJILT(IsL eXD,@IXa cfR ʄ"ap! 'XN> ),1̄t`k)q v)AEH`:u9\`+<'!8}E)I}{ڠ{yK1p6pwY66,#@S=mI>ʍ쭔B/j69tI0x/D@{?Հ ;<6c(:1>=S10(dKȀ 9Ժ;cۚ!׍ިߚ*>5nـP9$KCa`1 Sg8rnHy:a((2Ω}ӿy叚I{cl$q\ l>hoɑd_aw"8:!3z#v'~2l̉G ?-c$i3L/c%,D5" ;i(e@2#S\Y9<8#H(Yc۝99ٰנsr"~'}Yq1wBp֡ha<{wO.n=x5+T g&Hgg̈BgixUD{bAY"wx%aNc C bwD'!*6IvArfMAĠY";v!=VtO VA1YGD ei sG %漀0ȑH@^zRw,%` 3+jy'P\CD&$2Td%)*쓴;ϊAxiI=Ise:5q(,Gcx(3(鄑ȧB0ʿrO7= 'u~xxbR_N ޳n3|Z25beOw xՍ eAprAQ:&>+Gӂ~(dv9ǥtgN|ՂHԲ|tyk);- a`;餤y3+d'd !Lf5wjktE3t=91ՔrK$yjU*Dˏ$W0݆=̶>@Y\`Iי=UPbrHG f>^BN"|UL^|U&1cNuՒAxdݖx~X?{wq4]2OSrN Mb?睛"&s/Ea|PU^8jIt;(J{j/1׋9Vzf'SQNsv&5Uח@Br=G1DqHY9O'Wp F6Y̑>!31Rdb2[6,&"(GM"K0<6Pf31 l 4NUg 6a#^ubk2MxkR)8' ap)B=fĉv!"ꗒHdw EGyؒab<ȤȈ'Nksv H,܄ā*Y4(b5w%Pf2~D @V`H#%E]9*D SC=&SyS <3M2;0supN "|Ӓo,2Gp8qxy $_2ZI0,N^A qrrdHl Rĉx> dm@B#߂E"$H1/f8kELK0cB FpL""W-U1Kjxk$b;XXmzBf[dAa&Ce 7pEx9BREUdȑ0BFb؀rw8tGO (t\^T$H@Om @$ɫHO2~hOC2ŽF$Ĕx>j@Rts"nI9t(S$XKx׉& 9Ni" $3UJdIU>F:<{0scN8-, =tAMi [0|JϏaq3>=Ϟ58S|Ss5 2EHyjI^BqGQH;oa'(aVGL 1LXіOH,z3uKM\d㦃O u72.YS)<5a%'bM") :tϫՍOp;@D̄(y vg~8R5$Cy'E9iz>{":~v~.cF4V|U28'7\'ٙ$;&1ya)38M!>&䩊gV>29wc9M4ghpR ,eIh!vS﫦k U#W_,0 9ɟW,qsI0N`O e9Ϊ;cp'uwq)E ͼHY|%&vI2I{xdԽHeFfl-l(b<챲&FBZ"<-yDH}ݖtRf]yˆ$Q/,($ 5@q2lDeN=͊;#OOOQ-3IG^ jR4:}SLϚQ@ 3'09B cLՀ5f6̕O1$D#+7&DC|'6Ĉa3Őt &UN~"Jh\9M6!9VE 2hM}dQ*jI:'fdx&8]Pg*:$S)/fP  `(R Jq- ."&<Y^;zWB8!36a QZ~(y2m, %ʇr Oc2jBF*OiT kDT:,:2ǁ_,(!ccU#$='jT$%G%;binA dL݄Iل992 S1\Fq)s"pvu:-h <(`^b;u೴FIfa'_ʛ' )6|p"ev%(U<|2, Op(2DaU{9rBFu=4Lcb#x{b%. xHq3x2AjBqJ!{Vq_c Dv5AdbAF*S q4Bc\g`$ ̞1(1u8.d&D4:BD@yEGq DSqp#$RA˨gw2t#R¤9dwV@nvP`ߍ/q5F&9j 8y2B& AHKf(>hΗ= $ltﮨGu2{zePu\8ky&a(Id|oEx ,49UDy%!"y Yt˪= U`@l2/RS-ʓ3c&.p\r&tՍ,3d|`\ڕyE ,FadL,Ma%(.Nύ,mL8%2yoE1Gou0za)g${xq&HǏ9% oҤPw>f+1Q?{R%%9⠂T9.CD jȆf*Ko/t ]aL ?vQb2(4ᛮ|S/X{j~W=lFމfOI⢟޳6kyN"g|G0x#k6Y<Hw8 'gInk1-8$ڻF>rĀ]_Raj?-=!ɜ-XN('{5s'χĐis~+.t: UX6dI|ؖDBb@>+' q+9.N<6!?*{Y繛3ꆰǜ'ja#.\vsFE䌣99opl&z" 3ESSv0  }4"{¸R  )A@,ݙIyzdjq3}&7H`f&Gm]ɬ DIK(:LH%Q39zE R)ֽ0.Xh%e%%#./eS1@V d>k R6fѷ)3F $0UEHKB3l|(x K 4pdD=W!9*3HR*,U'gE\>|uUTZ\1h8̉,TwB@a_iPPLR* C)eB&2P$ZO22 0'ρNa8_ˁvRBNN`s\YH@zȉ $Yx a N'T hAp9'b{CzMRatw4S k[*QEDWUdnRGfDeH=IMcD`CNZ =mi》hn)JQ#Hd+MEcc/@؆ӀS4l3"Y'X'hfMȉ3ygjQ`uG|gW(Rxx𦁨:H\p. Rb{9u.<ʼntpꈦ}VY2lB3QHH<z=wYtt.oU YbO\B 8;(c2$Hq ޺#\Y 4kvfP,us_<{Hs8>|e޺Gl7)>`s+)b]ߋ,K,ɝY~j<n؅z>jr:ysϫ"Shz'"sd*vI:b]L \bDM< o?O DDOXF$R.6pC1d /yh?HOePHlGk D%v%Û~na75(@t/S>,!3 !9p?4f pxi!=6RAQ98jVC1Ȩ&PXha[#V6 F~l$=)0I_`V=“00٧eN ma@x`k1Ici9STQcJK(kjL&q*, A(LMrh^(((̻3(!,AR)!@pgɪfe 2"TU(zͳIG2Rvk*d NG]:=R%FA0 0 ?~A1uSҷ0I!Md}ax@2y Ij:%%!Q&Hc9,bD8GU6:o@(+,E6baUNj*#bdBNL; !}S!>9 uxK'\cl1Ń_j 'HD]CL9} x϶d$O5.铝Ӕ m̿ Oېv=# `$28a“*1HAx&g"+ ]6<b~h@135! ,J!q';h q"ZI`X4aۂt:G(eqI!^y('8g2I xHcR P |T#Ry5 0rbb&/639A&NɛR&HQ;y aY@ 'aYASYe4 $) 5y"@2R\ϚrB:%1d8 xT q0x"Xq""^I3c sS$q lFp wE -  e+KtQIE@""Ba$ovaD6&ɀΟuQL%1PBG+ P9ɉ yNE Nx'Pfy_c:]Hq1%c"#0ԌڀHFЁH 6eʠփ,qyP҈8l}Q XpaD,"$1 @R2a.Yg H ,E&`Dd)J!.c"H"T2BhApIɖS)bgsD%LB{[f8@@abϐD$]Hv 2~)1 3^L@I?v !82#rG(Dܰ噏IϚAR2QOn"R:b c)sH\$e'j$Lc>JDO0Ys;lj*I$ b%1f! V'O͉as„L,H%xA,b?Ad@vxbH*58?TBYxߚ 0EGp51lg?4$WD !<5̇J$ff/\Y2n?CdWscb= 47xF`c .cɑ*H'8BQg$2snѩϮQ5Cȍ"p4Q3XwBHZs zy#4@3wWegStz戚ACgX'zï4QM_TD#a& dZЬpU~>jhVo^Gx_1``ٳ2$fVwgzaNJ -ıuRœ}P{ˌOUSY53ITĵNCEƶ#9PiNW`]f[<ђ% |^fB_v={Iǚ\A'wR"9ߺg_TS ?y+:C>$K z ,199IkI "M/rv_d}睲9A}|̖bf&xw8x 4sXY>Jb:W>lB" XlBMGy,%"(dLp@#$J%:B$Go4&Hcc5I "` &z=x)0Dj9VtGN.h%UO2{q?T"LDssq@d8*+{̀<#Kd{GlҢ93(hJ:ĤSxۣ2ZĖ#Ra(b Nr7. #2Ug3LN$1$o㭩$4DLpҨU^@#.- Dgv 0a݊-?5v@G㽩쯟ANqN%N~3@fJfg2tYbc Fd!.7Ž$q$QO`,hg{ 2FL0>FH"">!W,}zE0I]A@ V$4^ lJHeI@29"0ha?ʰ2D$NAX9nG<\|͙izb9$#QI>.OA%yC#O}eNfhGV6r8G+8=SS`} *#\)&8I4D;bcV- u1V@40p8y^"Ђ_7؝67'*Y#v绑X:LYv,8Xrrz*&f,07"G a!73jd'.n LD7q5وvX!1e\ rtY93q~n ߻9/#* πՉ8U3#{_͂4,:2Ia~t8Nj&0L{#Dw#,pLa^jdF@WClVIb9&h2A64 edXW6pgB.D'uq% Y'26ʽBuXa\̕60ԅFZ&q+@y ,̚Qp:|U >}|݄|16 zDHVYK9n93̷W AI0TeC&x>x'l$MQӗ3Rp[;efPg:ӿb!`1,JǚHDr H+,ǀ0i1bS W8R$rX" x[d' gt43p盖9(dFdasϊ9NP(2%&rn84x2r 0bg9ષOןCQ&u`ϗ㙬g91ṉ1#QOd.'C80.`St/;I'<@3{㮬3c71G{ TNɼ8}q) @sM~sh`t3bN9Gwnb?TT̺.O{QF,s4U$ipϛƪ@QcWx3jlqa(NhM"|BXGĄ$5 FpLC$n@,"LCfX @U`( 5p$PSD*@8vTɓ?WG%uf 0 2a#h^ቫ j u* NXUNvA)0WҐ218ي2rړp`Pr_ 0 ;B8zWS@ ^^i^`Nc8Cq>|^Ah>.|򚄊GeH1aЖlڀx=@_gD [OQ}d* x $di4$[Œ 9fsR8dcwPDiFe#d"`N\R mY0J1ұ2<s0|EÐ >&IL@LyY{(ɰEG}u#;dE5 c)#PE83R JRk1](1ݕ eH8iHFDO, "PP6'QBH;.!`5;vYČ'7$ g9AL!YA#乮|yOxlY+ }#^ddD&y~hvxyQ6" gc͑Xi/x5&dIv`Y:^~.W $pMH##!#xi"w7d#\LĽ˄ο0N":{ʎʛYF/gfIp!(CG>tjuhTY9H!Wrc~l/Ͼz9=T=SqA GdDⓛ},wmv"aՀ),݃x~lJX=XW8psS%!CMh;E⣾r*)Ia 2D|^'^8&" 2N#?C\ O}Y3Q\Ɂt0J3O4dQvK͐ :dG.(%jCX !ԑ@K3>2#\&]KS{02tIxBdFQkd*AO DC(Lc$UaD~*) grD`AGR)$4| QB‚E(1>Zlɏ$}q'sXhxPaCO|i&Ё|Ed)z@21W )10EP0RLh L$|T1)l̇$NtGU4^P1Pt0,glD\B ;l%ʓ#Q9,<'N+=H88MYB34Dn Gg4INĚ1%=GU ^]gAń& 58!y &33%z,1c sdng8<?7[*oVO'@i0~n'#D"\y#ciPX`1əAcDH9~+ q9,p-@90uJ2n2)2# PFf $0T*r͑=4iTsQrGIH>耆Ӗ4Rۀ8kB@,H,D2|RegH=Mr@!R`䆡H(P!gTHaH-@_T3L(#4\KƠ@, î?hup;X*Ȭ$ND|Y!ƉGS G4diԞR 6<YHR&|2㲎v\\kÄԉqYuXQ,\(oYf:FGin-0gR ݘW@wQ!|X&c@pImÞJK nOXwvCl&|HxErX&/I( w5r&3h@  A3̈́ɰ#Tf*yXA0Ѕ{41+ywW`ϒoukz 6ʃQϊ+ x⪓TEE(NcL!8Ibx@\s#IYu+PDLA"yT!\S P`>.D:Lt pC5 *B`"SWAϭ9z*f &lׂ"h-c)#  MK^# `a"!X'>)u$ZfPs uA;Tl=^ WXs8S eq3Q3֞꣐0tcpOwFI r%@ga &eVPVd2a@xqU$0#,KDYP#^G+R]B!%H {Zj$#ŎGAx'!Z"&< gwstc|k LQd"?^jAObz M?D(N>9=rn# #o5udkȎm]&Bq0v9X'&8,KU U(By(KNDeI"IN[%h<$%y|a1D0!1H g닁s>@6G'G$?V=`F*=gL "y}'hM% ]ϊw'w%2 GЁHxٳ.g!X`lGRa^/d_S0mdxt*eX6&gTbX=VBfwQ `uW9^'vB9[8dgBesوDE],2CGI`\L2@y>A0홺2dʓETvwG!$a$܆\2`y W?U?Va*id󵙁9? lV%nA`Pq' $=W`?[|#G緎M1tT.1S;9)d uA#i8d:+j!@c㚨%5P$Q8u|!9FFq;^3w$}z;*"3XF7=/[HC?U%X&{c/dMeW o$ 8\SS@x: ȗ@-O+cNe矫:Ñ%|eVS ||R_i8yyU?ՄI>"d=tLjD|E-Cßz{x.19e2| OIv5Ƥ]k1Ls2|ꝙǝP'tSSg9Cj`}rHl9styoR8adW{efu| ӚcM%*`e>KgDב]fOLa(<HЉ4T, H7 ^| $hsꅅpoJqQ 1ĬN+!fvtL߆;\#rJ' ! R 7dvULaA*@CGNe"4ٯKA&xu"u,!Nl/TOLsfAMNbYCd v/~Q$=S@N5^INI&9[WLI褡P ̼o."7QXwV5ꚂqgcgZ;:UYe@S$&sfR ybo&?PЗ]KӊLs'c>l-nϘ"gL;Ew- ,ƹ@$"@Vf'Dã( HE) UdD؃ Qa9xa~{M|`БNN%8#!F< 1KicycVw**, ҇- $%0bHdWP999dO,Rd@Ђ/ jP* 1xyqiJ8qwP3JȘT" %;07,@49؜jR`d2Q-AIF8n]tbzzt033$o@p72YcRS]T ♉YU>,`e~y䅓eq]dxF㍁hL16ZK` `UȌ9XYFy}esg]ZI)ȋ$Swt-W<  tHЍ p̼;ӇC+"<)O& ) 13'C1_Wn$?p0HcI=DA'QS zx/ɑ*2Ot^c m ?BDg+/(]{|͝Ac|% ;aM(ǫ3GS%5q:W8~' 9=X>6@? qXBN,J RF3"! =Y<}\w7NuL^93ݔ|5aJP'AD"χ *>fX ) GX`f#i:eT"dGs#>epg*d9l(tdӢJ#'.{bE @Y(B'8E0":CE"T#4t҄)J3P !I3wH0`:ͧHF\DJu=HQ!Hdtl@G.E7õY *Kf"R$ ld=NAT;xA߽l0$/Aj\Ccʢ.Ba1#K2;vsvxNWIy+,LaA/gJqdRH9ՇN A/0U "G$"L|C@ LHd6QHjA1c^qyھtg84EzT|G(=ZX)97ye8P< 0oEA>f, ;#3|G 1a('8ad'Ga&X@<H*g'$ABuǺf1)8NK2DynG3eu6x1 9v$IWH$;G4^x2)=bseL";ÚL CAxEGj*)іeУ Ig⏂ ` @sl ?,dIY0H$29וZpY"s10"2E$0Qc$^1|tcaY8y83T!;2J.ńnA!2X0f洂(KPYP"x8%HdP 08e4b`QH00_^H\~j 9R$=W x I"YIpFܧhq\dBAx"PPd(=\-^d&\$<0 /t93 R`R6ag?wABo>Fy;Q%2B#x Pz.Բ`TU.p#ho3: Cg;x#bCQ23O8'"qV$*N4"p3BI$9&bL9A 3P B:(ԫ@ԒiRx^b94H 0bT0Lue*%<+&CcK½af;t1dHO$ CI0~kH3 g25H,c*(B2 ڒ3 t8ECT(d~~&aѣ0vdx8M DruΎ;љV ;rU` u`B 4ެ,2M¿r s`pD c,CvI<Id 6@IƸYNYPE~ x Dew&&gxz'dӒgL1牬{G?v%\.a⦝uWd3XE\Jy`S^_ :O^L?!(zOpFy^?'a Y,B'^_⤡=R7#{ȑ?>KD.郝Ǫ R`:hAgYFyO/V ]gD>kw5VgnG La"V )ۊayꁒfJaWP>2pBpgd6h ;Z d LORdWbG#!p ›R0y3P! hpҁ A'uxZfP"($jT<)n$,"|Y>0.1pA,\TNIxdҰ1U9UFsc؀dKF>&Ʌ8{t&5CT5&Ae)ʠaE1VU "<qJgu> `_8 K&yL 2A ƨ3q3XCp4&H0XCv=P,9m@x,%_^my8{Ͳ28yQ>`1Ag;W Ϟ=8CՃfx cHfM5X 5BE$O@ qձM :l9FJKOٖb1u <3ʅ\ \ DqPFS Ʌx~)2`Y:bDzw0( rD :)MbP2層#ExYKal3(B4!-&C=sTYg$KxĐHI%QM:hH|^YY z?ec%ŕG2= D:3IǙq0DS/)_>@goA ɒ@zs$B`Cͽ +ʙ(*nDuH)@_c_ZFpGSgN9$O8a3hrO8q0v=G6Mx)RK@FdLcP)@?̣=?C"5'uթ?,]0,}>hIINTљgϜ+ ,qG} Sy뺘tsajw|$Q}b;\#h¿.73SE7Mbs5ӗ=ݙŸY3=Յ JbrH@2װ(lI K&LD)/\cPFRK'"o`H EQaZ& %82 Dfq{˹&+q78F㈙XUMQ5Xy8i`s6V7'Ihsń\;Ip!f?4 $|$+wYv9˾7 I\"!Vd@GG2P$"=:OWU/  '&6Bx!YvyN8CDؔ B+Y`0D=81G + I*X@!j,vl3Ψib-SS|6f@T qnTMa*Wk$\yxRA=(e tA$14㎫ cAX;H1܌P4$$IrNYF \b$і @ȑ< Ey,1IH;ŒfEzZΦ& ' 0Lא^,W>vINsHh:g%'$X )؁~ \Y:* ''nqQ5Ϭj$ TJa;? %\iD/da ȁ0k:I =~,6H9/{+e%X͟=ԄÏDx '>ImjzNZNDf kA$m!"ɗ$c 12 oRg0.6"s{!W|>Y)%d9<62TPtn5&T炜d@ 2A"& ^%L`&Dy!aY@KܤQlB H b8#STpXO?Ld$dHC,!.{3⨓?`D'HfH0K7)$@ΓCF IHt rH5L$wgH@ 5t9Ijt ڒNF+\Q4. Az'3Y%!4Ee |8氬ɐNJzx(u ^ 'ƺsD嘋(kE.==\<{iF y`2V-Xo?#NC=\HY/tu?6HWl/UP^ JD(4R}CIϟ>,Q po+CT\ʤ5L9RO/qxx`Ϲ,1!yt1z'3QȃyK9ءp$ԄNHvyA z+ܝk0?Gu=H\K$~J  W{..O\2B5XR O7P*pFJ`pobUq0gz`͈n*A`骍PfvdM`J`>}Ю_s'*4q hn"2ohL8XPvAd* <TS0@HǘCuu9&Vldד`xPY1!]T% >i(5OQĹ@|lT) PfgX9ERC_,<3{磞X${P6'*dcX}6ɇ3ӿL $.Qy)- NVv'l x‡F?)!,t$Q&f}Aw*NA'_AVX]!Фby*16)ѦsF E# 'dteQOl >9t0A$aUD&]L3͂&];|hF}5 !;Cb^ǘxSl"' ,NU8,MQrHau&,\R0c2S (:0rrֈDX%\ܒ2x7kFH%c]Y=jW%#\nҁ )e πO6r2h{83p y! 'S,HQSgL2B>VE'F!äc6e0јyZ BH:AʋYIy (øH*Xt4àۻ҈@ </tE<'&d A2 !g)@I(_Q18I")~G%Hni"qBs#d=T%;bD)i`` ""_z?GZQ "QzD`m@Ht&0zTK;` AD]QЀ 08av2f.JrrG #`4H(ߛ"93DѧR#0ĸ9b >@!, #KudmCvF.bnl. Y;Q>P4J~'tb`Vj Fr(ϡ6 6ͩHRS'GG"TaYq<fQ"& Oc5"`'Ip;@{Ë=8BQ|aI13ADd"G $^bW!JB"BG 3hK!`%0!2)*FIB9 0K\&q9aT`cĂ^q ! )Ү\x'&&#Ii 0wFfto0]i<)bQ;yL FJCqEȎR$)avN$' VS}wP!3`f'% h\:þ,iUUCK.aD$1BaFf`r]ٰA Qx0B4h ,I !k0)5#ZLO䈮@ #YT ϫ2g?#Cg&F@xp)Gz $%(dA:e cTJNRgʓ M60ޡ>6d Ta,ڹ x"f}mL ybX s'jNSĽw͌&1/q殱 @naQ1Og60$!Y%|jCA U`̧@9LFr)ɸ l;T'!tfPdUpwq* yG̛qw@3't@!(NlYa&=ϗ]GqL7_W#}# Ιm@I ʒa[L't`j2<+t3&O+80.< /J Ls\7ל|,ce0ג]IGU!;) ( 㲄. 6 8]a ̰zCDM("4[S 3f* NPt @'T9##4Q"RuCk/gr)<6X<=Eל r}'& dlѕEcL0yL))1_`SGltIl"=*/hȄHbCQޥ %8[bGpLfYٔ2A@*JQ9X] i%XTqR;/eFrpV'-=1(pVfY*%:(dGx30to\ 8:\0n89( $|!)JICtBB&ug6\83$H:-#) QJ"p"bT$ SdwFY+`[fDs/bY Md64 K!jΤ= ;xx0,"T$uze6?t1ᨑ(k6rV!@$"RH'J,OSR\ i;PE&3˲n2Z5I̐QBxAD(eTBYK1d Bx=DC #a 38 JO_B0$pCI6 ="uGT, 1?XW: ^Hȥȫ8߈#IRPI1# .0'T$o c;[e  <Ael\1X%B2b:c9I1!_I&F^nd%щ%aE&D)q.CDIb#9`T/aH*0M!rHye@! K+ךȐ @GN*Ptb̘!Ӫ.&9/Y:-ab;>ז`FDrvwI$*31uG P} 1xsLr&Dl β9$!LrИ9l#y9࣬fDgvc5kcAKoTaH  t&,F@`]A&dc5SWVď%u1s`` abē?t1=͔DaD@`FKH`yea/' 5q=);/aD0GwaHsʄ,p+߆ u#/!+caۧED4U| )4n:k"z'~c*|v8l=ߋݔXz2 /ЍfX|:>8&R#d7槟3x^&*;.uGl&\\wUsjBjAÆ& `"<}&H*9B0F04P28iД3R:YT*9#I<&YA)VD!r=T#u CdP3  ɎkP*ۚq4s-8$%&}{;T۔A"mpJį5a(ԑʂA0w6ń$r=~iUgݘ,hWr 8D sc"'J=Y09ܜVJTBqNJMPJ!{9$:1,\,="d9VcMdPHC4tWpXL0=\3DY {qYL<)`rNlIJD bbpG#<Е@:zJsYp>g,+18:м$#i7#%qЍyr!>P V:AÎA @Mݖ EBT7hm:BI$212H|`^F#@`G=6yȤL48+򐋁f  1LLô%#yNX8:4W,_p^!wR`dXdڝ r'D$[f̮s Atx( rBe*g<Js,wΌ#`wbS1JM0ܗ,!&_ ̉1#$0c#$NRW$e@&0dÙ,o"c 9MӼ@ TxßYˢe2d${" >#צ@JF|[1>cl4ĔI;z)9OYG%T4!=;2#ɞr*vF /F &Va$qd!$yFvjE 9d,9o8HH# GF d|veW*8_Lh IK! %VXDzʈ$ 3J4Hζ^0>,HQ`ҎyNcO><2˃b?<,8كI* qeuL(NKXY(<7vTFܽN#gt8,GfϟYNN34 xߚ (q܎Izвx)a~D ,쒒e0vY@ٚY L]5+yaLX葃D>S AĊsfGpr+'~=stO6],R$}Xa뚈E ,,#0ގ宜'?M?}v\*b7`&J4? 8 s0d2|B~xbQc,`wyx0|_|lRcr 8IKgL|c^Nb|4 dQ1{zU\#exȆQ Y`B?t^87IςH$hHHddԱ"#&"F~l3BA7)=TxO4(XA 4 ($3RYs H̀"@ILKT:"*KHf4vd dI~,gQ0ϮJu &!3t*pK*|djO0P&=FH`$'GFa3pԄ=T`(BB)Rc,@$mh5` <-@%"&5( 5 f7BBčNi5Y$Lr9ޫq𺨇$ӫkOdn7}&5uDm5Xm]H͌*1XeYԩy o',OkWddyľ(1'LG>'$[ dLB!0y1$O.TP+H@*A`7.&D6$02fDD@£}U")&v5 "2 2O&ʭ<:pOLEHEA5fEiP9Lȉ2')$R$L-(!"/P%"%gs͒& R8"@dhʿ2p1∓4R1YrPl88Xff\) O R29n4 @^^ FxiO,@ƙM,f@ zg04 p# R$rULR2` ca%%$GAR9z%GhS# 95'f %SHNH16 Cg@paɁU3(dc RZI^Y mqD#JJf8h9V t`! ŗ$Bƾ|g )G!jf- d/|/hW/NdE vfaHw\{"2ãU9dQ("BYp88yI*ӑ@0 \5$!<B%I̦ā"*VT0 $vts}\=^<48gIcQ w !3hd+)P=ϫ"be}t|P&DtQK cۯ&3ND®iQ,"ѝ}yoƔE*eYYC2ԛ2uՆ!bY8OJOO=˦L8ؚI,TeVIFMV8cceNSL"xPə y;e0瞊١l;  {I";3KR,sRaAa ?ݐ,$y=i=VCRy"!Ϫ#xsDbrY?6R j@e%+?u{f/`'9ȇH$TwgVVqJ }VK8|3@Kٙ.xG^t(ѝO(K6Hs`RH$Gmw'+,rQ@2Gb?ݐ$'V@܁?gNsGn3!ŕ%O5P~NB/> ꢳ:nH x'9E| `IWI'G, /4wvdLLG0X͒L|Ӓg|Uy&_&t%ڞ10GOQd;b& L~(K-UcAb'޸_)95~2=!u3 >5{ W\;VMaAwr]TVe??] "~!0A.%^1whc_!\G=),ɖKrOL.X1cBC}Ǻ/lu!pPxgPyꌝ]/ŖªN*WyoԂPŠbrV'݋,4X~n8x"Xλl$J'#J`/rlو$Dv'%ƴ$D 鉵+E 3,"|!9d 3/I4B * G.&r#lRѡX<3Zx8 >&l@Oxd@$YVP+SR6g*D0ɍt9O3&j`"|2LtH@^S$EKdхP@cU!+iX䀞Ƞ )LƘ .ة4dVD&S'HLUC"LґAAv0HC1t 5Yry–RS/o(0xJsH)Cj14ȕ;F˨34@B@H($I.eHeK1G#0$ UVN_7zK($1#77JAH\ ^ He)ˆِA(qs9lb TJ{<0ЉLݵ Y˼xXA*ă<'d)`EDĂI*C;,"F!$@g1&ZL]"s!{F fdE_bc@8홫#$0DF"dg@0Yam H MMpX/@0370VB@vB7+RnK(݁B#ڪPAw'#iM0M9@$^rdHр5H`@E+:LQd%m^PH$"cV9WY7Z”VI^lCDB^ӑɜP>zlej#{U-8{Ay@2:/3<5pR " @11sS*S ao6,œs!i_--c p|.!A8"CT%x%U$`VP 0B ,M%H9" , )†R]a(Nf#{h| c+BY8b* <JL'ل&bfl@Hd#"v%T tBL@f $yv(AaXJUiA!!bʕ"$H؞\10Q3󘬽׀PXΡzECD݈(#p݅!LaQ|D;Pcdqve0 $,'STS1ϺV@w˨PHbO8z!5=kⰧb /jc'J1g N/)qr3efȜ(,HTaN駸jR]D$ʸU)9// ^F2-@$$k"Hu#k̈́"^y#k-I._B˨? ),4AAtI:ڢ5S;p=r r|@"I4R`rCDIwJDwܰVIs,:iG@)VDG >+d@THl x&PN5IDxTxѷngJ!*hs'#⤻b$w)wNqN$ 8gb\46U8=D8PO?ՔRtܝ⥒|p<^؜AO=Ü^;/:0}ѡb̋/S 1=XJH"vOg8>%2lJ"*9`xe(9WSNwx\Ep.?ՅQO%&AUPbDL>|3pC}^|o}Ig@v~h?v$xV#ɚ ie0CJ6tP3f\Fc O4IQ O ]FLx&ׯUIe Ґ˹,A݂k11r`y'bob39Ⰶ g'Y>lHbyl@duU3^]43Վ01gY>z79m>o?wE&c9]h`0rTCc&_ⓩ>[HHز+dcyC1uTzr,L73&T9;(6.MHla,TN>vf/<]pBJa'@ⰚO.3a 9qPBRdDԌW,iMcl4JE0ALRK WA^3ypR?,f.G=Vtxh@#tjDU":1Z*tv%gɁ$rdEOO4nM$G r%3Gs]4bC惦'DH @}SB]@@wv8h6bA9"#,(&%ej^G뚂 sLpy2=ՙ. @s̀)2'"^VԼ!$`(UD5yKR:gYp XRb FP)A^jra"SeP*@$"% sy0A8wxf aC^A"3d` Uv~0A#؆W($ 0%ćRtGpUbE#E|Q up 06N.V53Q%+#M2/9itEBOSB쑼EI1G:gDEc7 )&\\Xa',\M&&HI'&I-u&8;e)b&0i$xE ȊoӌdFyc !&#^Y, ł,gȆ"Cp3X" B|)eTR.Q%-IM@Ad 'DOPb1s`7ppi(>h"?(;pq,!+"ɡ IXwf"HPX J,,O $ :\(.AcB~%x *Pg5fA=^WϨЈ7+*_=RrklF:3iJo&2['Di0!fÅS"pfFL/R'Hb3:bFX<$򫁐@HD4L3exӉ`a((9$BBs8 8.Es]mn< 96 08HO)(1A77h0{|7GT$ 16^"IJg|/;c stV⏋)#juUB@ CFN)j^35a 0,d' I*yaDqx]bxu].Mb2b{}=QvM<,)r;U^; JBI\QS1~i RWÀyAwh0N,ɟ=O~lS|'!"ǟTdd͓f 2^_?XR9cLXIc ۡs9?׹]DUN,<{K͂ 3~9G8(I,G7Oq6CFg?cKz<"ySy߽I?xTv}p|Y qTS3zp?bOl8?Vc[z6yw(MNRyT 0|QWJ.DNݎ:< r漊DG3U恨FsE+c6{eˆ0#Y%5겈I#ND\3 H2v I Aub;{,e̴SiH}eQ!%p"SP QP<+>.荵Rf[Cb<]R[QBeϴϨHFrIV%d2e]9dSy^a DDI?`%drQڝhęC:EPtqԲ\qp>!),N mBJͱx$ BYiz#o- @Bbo$dyS*ɐ)\Nf2wJ,xC_ @8J`6c_LuKܫQ85%, !BòI5W/3ʽYPLJL@(Ȏa#&^8j1HDR26($ fyZyBqQdj3P3n%Ɛ}9Q|B>~8ط0Y{&JgLȉpFWs,QFJ(5ł@< O`A$ILKuי$LM&Gc̜\ L红`ZC1YB,%\E_(yOS)\>ܻIyR Hd',0fOF\`9HR#^|jFdP'Ӟ,&ƀ&L&u@@k.86> K\C|seb#Yd#z\;4ׄ(纭qlae##$m`gUϜGCwYHD@#>d{f @?Aw Gr@+04\f{V07d%2ffIG1e@P@<=oU #*0C&0m) Tq`>c9@G 虪3LBK0d܎sb< v3}a^0ɜ =W#jdFYC&xքpX}L1٤r79lʚC)" $x4pc(8& #8Ç.I02v/ٴrYXT`A9o6(d0VD|!Cmou6U U7݄DUU9!yj2k dfIXY30r2{g|"$lpy!wnNN9Q YyJBe!XzX 2,2 6g(H~# );u)2-и~,Ʌ b >1&D٦ G::gd5e^'w q1EDԚ#bd(sozƗI6zeL~s;ʢКGY's'\EKdA'V3cH0RŝVk+rΦ$7@{C0%Q\˩=9z2rXeA2,D,1dC} 'iў7w⑂oy#GE!12{N]ENfS\A?lC+zw#՞. cӇ`zH3:dAHDs`arYoB'T%B!Ji&@1??ϫvr|wyItIj =ٔqkG*ƐyO6Bu( z=]@2P0:ib.,L0%B ( s32m2p&G@(xy2d.*A:Q4pD;J*3(LnVyDb@*4zn9ԫ *^9)qG #sZv^ R&J@?(f`5t"}a=DN/ p2$).@ D~#2cez`B!b, 0 @L8,#aiDKȁ.ΌwR!*`LULyl\/UD0+hA! /rAAGc#!x@r[cH $L 6]veAډ?6H@2a0SpaI &<bd599D9D <6Sr!a1#h8a%lFAC"Lx+"yg1D H9-,xRT TEg2 ^PzPNM>'0LKfMS #&]A08.1"Gɓ{B*ibslD@yN1qh]%bgC@D9t`eX C(lIMOUg/yUr0s^eR5dԹerp 9wDog\՞r*fO^8:C;VM;aq;BbeG賨g*OE)eg.P?M8 (\Ð&"AɑU QTff- ɍ0r"<$X, %d L 2ŝ, yr&(']0|Lkk$o_L'gO/K2:&pLR;5CCg>)W+G ܆$MgH3^c C$9y0 vzl 1X)S,0Q7`K1iI/ƍ! N I3tpt="g_0t[:XM|wcC&(B74* fhӼURM ȎYN n8\$Vx2ed8;x;$ɠ>l1a+ 1l9Eh7O8Ê.cvYJE,r'9̃~lמ;jCݗ|W_;f=0cCeF?~b0pF"uăkYlBInU%cQJ8Nn7qas.;,US 򎃙*`YK9ntyچz &]g]Q%8?:=P잣sj$<=# $Vx*oLXRx.LI!%r._/(i V`E&VLC=Y'䞧`<=YD9BS\L%DKA炏x1bHI1kMl#g$q/`2'YDvO,y"g@}gv@1zXq0C۱sbGNMw e"XEn%DyqԚt\6FX^O|5R'ً ָb#0# @L}h+8x7 tMVA! <)b+vH By-"$DQIXJ> %xb) <$QZ(COjl3>, :$t*c3ՀgW BhTSA{JKbhrQoA Mq59/p#Ԛ)ygjc˴=X>0Φ[0ČqQ hc >.ay2fx);/ewH{„0q)T΄=ُLy:0OuC坽FA5 Dc"?LܸRY'fk$ij;́Xvp8:1EP()eeЬ bIɁCٟT@&IM 9DQw* 8qs#dB| %!;an˔!0b 9 uDp$R rO=|Ia91C0؄AkZs@J5) 4a,PTG, Gdj+]w&$@$AsI. )tWAbS ; #\TK1v| @Sm'w~iDC0b7>%c dsgl0ؔ! hNBY94x  NT. 6p+Mćk=aTL$DBSBP\@`p bL$0AɃjĊ"sY y!' fX+1@9fS#<2@DqC`IK E:!+ ?8T8$%# "~ I(OY)%T(98!<)9U)JАDH2Ļ>_QD$H@ȎlX#gzd/TkV aW K u줜rP UZOXV@\BȌǺp1yH%BJ#U!)2( x Y'Q!Q]YE TFE q)(@G-A.a7gW0A@V$$FɁ,wi 2HSn\LcDW,y <dYC9J8$L [&alAA`\a{LMpFs$ )<Rȣ٦@v<)B# e˰ PjbgJ(&B 0~6m`f&)$:74ű"rrAf75 %!0"#SZ )q4 ;1e8 X3ހpG_>)poV89Zu`BQl@<+#+99e K 6RZN$O|3"Vhat51}.:Bs 􉷑tAÁV}MvT$>8T wLb@מι$xgVT5ZP2'|M@/2a,0d'^Z$Q]`YWs!` v)@AJc;:i>5{,?ՅDUL `v+c]h@K(H =D#KZe 4LHNr3cLrbD&䒉?B蜧q9&sJTMf*D!,ըqKK?VCPNTN#U\ `B dlCL`x)hqJ0sR'-N$ʃ^0Hy0vZx"9f@ b<W W O݋( b2AY|tfA#WbGX{\uBbN IC撴qC20W0_Ѡ.\! I0 &f&LF%|ݐP}n 0{̳. H gW͐4agD:Vd)|U$F=#K<xIus&O8yPC<5IgFh!v}c,FߏȲ`N|͐\=w@dF/f4 9qlSmhN4M3L$ >9`t`.2 H~\ S faDh@tO W #8x9͎} `9Ka ]&Մ@\P"8xv J!"EFK=Ը Y Wт̞V45Y; %w.J#u R ל@Ls@sqHC!t'@e]@X >Ia=YB5U„LX1.I)ăckN+`ɠ@X9; 3Յ 1 ɕDNO9Ӑ9e$3H P#vYH !)%HLk2DlL,5^@KDY:XH`ѝ1x38=ňRG!JASȎ'&7$7>~"DIq윎}_3rMQk `B4ˈ9eS$/S<& <*Ay Ceh+%L c ,r0`GS0Q ,cY@>pDfRDBFBL$*"I9`9TNbP@}P4i5N}pGi.wQ.yξO b.(1uAXX2"s9ΓE^ a^2sRd:FH|eyVy*L^Ă:1;'"<}y(\gIx^6W#^S<%er3JVI[lP:ѣ QA'&w@gg _E(wX$*qXD|G$3H~~F7g N;uy1?D8  "W3:1Q[^x'l%|'"|GuTKb^y5K? # ~)s-$f&+<}] 8s;BAyobj8t׊q,ApN` x(2E@l6}=ߠXΩ>yvbgS~sHn$)Նh?͈r1`8' Tt:~*Q8aiHd+Hgr|m&o d 8Lϰ?` aW0Ljy#ؒOI}T#XaO3U$!L|6$Q#<<ٞ0h@MRJO :4|*2 BBI<pe" PO-T+RT\ 92zNHx) H 28&L &M,^T_Eb$dhSbi1@%;~f2THpաLe#$p\^kaJcr"^#BMdrKYrDIG$(C@'6X 1P% S1lL:=4xQx:²D;Vv] %2q͎hA#b'w"z B2Sy[ v: /|tb*&2$DHJ'X٦D8g74Ifk(=j} D:,HD*2L h*K×0:Ny9Ǹ@{Q'nki/51 1fʂàTCRbd` 1#"(!ϛ S!FB$i{>jIa5k|j3'W>F #uq!$ T!$5iy]0>;kP4V8Q !APS >ȏ$E8Cܙژc"/F G'MDBl.,fsL$XCSWD9IQ@A ILAAtU%LqfbH#)q& /0L᧻8>ma PC# HpS!6hIdtY4сV <g) .^JeJ3EM' @) D2>\!B ̔RTק#`$F(&3I\uF 2Bƀ@162.ѐ %CBO:tVo*JDl=SCiL7<0:oKQd%80rBȄsW@ sMF3R&@\$"~:?E&<,exSI Oy8&n>ndAr^;;<NxkU g*)f10p0$1r}QI@s3\L$DU'NN!|n~%1]CЛӡ.[Ľ~1&]s+2B}D0E`,^r##2!neR=:$r9{z #^ӽYds50Ayg 9ge3>a~"B IU,qU@,Pi#\LRABHKle_)'A!3/00 :> A /_1|XABK}I2wUOdS@8v;_vD1~ w!3eO| 6pQ 2]dE992`#ym <\'x|Ğ,!(3x=wVn_-$0yh%:!*Gl<l}P1%O>lnc>P!3%vIqkE'uepFx}S=,u@CǟaRAv$7^^yz!{=O/43&xH8#f~[-o>Bp0,l? ?$'blB'1t!P&8) FQbgϾ!1Y&||؄wi'|QRg5B O`)]߉ #?ٹuKG9<)x4d(Tἔ""6Eb",Dn%+$"2!b6Z!d] hď@5% X5~>q2 3h1 44 擃$X!2(c2D(ŀLd'FH H'jD9q f&3'` x,J`WH4 fDa0N#8ptpT++9* `i.@vw0H&Z;)'}P g(3!L9^bAxQщJp$12oSe0gB& !pC $J2_F Ʀ D s"e,L1DT#b#DHZ. ,Py3|% c Gc!#\HDA5ν `ީc&WE혍 KꂌH'#Dz &]ӽGԪ[*pD~Vb&8ALRd8T*17DF+3 pJck""]8a͈P -/` NCFF_,i\UrdV,hFݑ"B8Ou@$(c&We[$ AV$tqTyx0Iq%!9]ѽ|J1ɺ *$ƁOx^&1Ks cI/^8AAnsz8, @ԽfJ*(d31f|uZe.w`8LJN"WDFHD$X3^n3PCύٖP% xx2'lIFmd.qT"! o =(vAE0`o} XRf,! gY!3(I,k?*$` $7JEvl#,J<>g7ȭS2<Or7aXel\3=7Q=;̲)oJS,Ox5$c@O7J0f+|:؎~/7Y*Sce$T9T 9hO#Rj 8gNNݔ5QN9r#@3͂K,8q A<3^XMg&_% I܈ 0&+u @f"c`(嘘%k`IUDEK0%Ir d26T 4q9QWv$2< ˀvg8GFON]cx<]X2酉MrL#A4[j#%0DDotƄC9pLL rlm.AePrXT@ǀSE* pOCY(W8UÖl]Heo"9[D'Iݏ6b `K02J QL/&"D bU"89 d%H(Py8W RhaġK=8)&! a! .EGb:jHĄIL)0d04DM 5IdH׮hi5|qM # ̍% #ߏ"aS3!FE9Hwjzǚ(%c,Ў:K!()2AH!2#\}Y d7Pp-APJB^;`4"7IDjpHJ !%sGr1I1Ȳq gsHTaE@\H͂t1}Tg|e8vcz H.x +bE `b9 U"Ǐuc8t;j)zH9RYrL@c)c8:עHs`g00JD F( Ps=B uHq Hv:xBrOOD,, xY,^5!^fHx$\^,M(iSa6XqQ BljJOH@C5z )H'zr#:8JDZh9I-TĕA`vDVqJ5.Ģ!#7=s|[E !7ArAqFAUJמ"ʼ"JS"2UeX#{CF$O n%dBC)+!i+R]H#&* 2ds~) 7!QPn惀&øx,&013\rhcėo&&7@Abw$ ApX"n( 1 ptN%6 DblI Me8dCfI$h_׫ja(9|d>s,&xHRAå Xj 2H#e`!'cI>e λߚ)$I;G80gT"w/u &` `|:ʧ2g,l(9,{#  X01?:P j(dMSĔd5T8 <@`AIe<0fQ@FL8O] (}PT2eq I:cak1K JNH{d,~4F NC1䤜 >Sp$Ga .m%P!0C_!fc)(IB8_pN/?98yqcGx3&3'#<͙F;c9:XF3䎙'B KtOA")ϲ*Zi*(OVJ`ۓ͐4F9gt92yfIC RCzbx՚:&$\BI]l&CdA%(y1YX8SmQ!Ʋg6FAAJA( x֓)re%aEtuꁱVFp u,6PL`gʅ Q74v\ kIWg㺮kNTa(zVNǻL]FqX,DLaآ8xdv1BWՁL)gIRrGC[2RP#0rVC;yU&wKwTf\C 'QA̰shG2'?4D^v3?5DA]zl8*Gu(وD/R#dٲ0lYYcp(zt&).:<p,qH?t`НXLo8#9#2{2h"qI=4 *5$׮*J(90o""=Lf z)DianA> !Ey?bVzNX] I=v<1_C9'! wn7@3K u' xz!'uy}E|stb<ϻ xW `~'M "L<8^ qa蔄rc3q!$aS2R!oi39!EQx #̕5xՖ;=&7Xti ĥ^2Fb?Qp'ι2WL'r`~9`>XnNzw׻샲4Q??`*X'>ʰ,Oۭ82$aNN5 6#$29 )G?-*DC)q'Vg%8D6w p^ *G]@JGx܉w쩴 ^r0e_w > Gb : skQ ydzdeu⌣: %&0syhY"#RpM#C Iy9 H*S9$ @Tr1iw榬"9Ŵ56ai6!bB1G$>t9Pr)d9s2 /3MfIĖ*haQ2<@RA?FyTtIİՖPS$'x_gT ve 9.;^b0`$}qf 1r"t|$p<^%0S|҆w 2'c(@"=[sXYG-yL]BabiLY pd , @NH}BDS"ꒆXyxiT >+(Ȳg;u36Fi3`8*aIg@DQ.,E,!`.&R: zf΢B`x2 yrM%C@ D:F<\ bO&1 BewNPphxfIYREHdC$'IȀwYgruA,@AB9;܊7&ar@VAP,yvp>!)L; !12(4XI !D:3ghl D@L 8^e{,Dv&D2 Fdc,C3 g2XLa)aWI J'4;*B5^*28;2qYt bHeB@0;y\0,}PFQʁ+d]8DlW$7B_G24BLܱ2"P\8 ә:Ғ5 ˄24J( (H46p#C^@!|E' &gFX>DrnXH#Lj!. $8h 8ʅI\3|;D] 'H  AH<)e !FDg* Ԭix$3<1p(aĎ.J+{_g5%R8.I^8D*i>ɭyrY^F ԌX=wRA$"32> <ќYvK|)D_SixH-4y$ix&]1%xc*$GO &f$Hvy'x  SRD@!2 lRQȑ''TqgGPv>*,32vaf7*Gp y!u$'b0 ܮLDGJR}sK:9OBg#G lħ0E*˳,>pk(Qa~gj xz5T,8KDw R%NJdSaQN+LBjAGp~0vIRBRdN$g.VB%>Wf É|KT '⸘I_8c0<a !ͅblje |LUp>Ǻ'J%'W8Q2>/G6"8m^dJz, HzQdqSfP&pE #2oM`6tb_ C\P2@뵐ȉ.~K m2MǺ>ugD<ᆒp@G3`WdLbP$̤A}E=á/CA>*$DC1}!HhŽ5$^8Lj3 9R 9 ϻ΂G8|cPV9t/rWaA):pp|$hJz9=Yg,J"d@@NٞNMfZ8S|uU=ct幉U>mS9/d^Z"f jI("( bXgC ס&D>h!e'dũH3B Ncej!v+1RD#S6Dt x5"7\kRH8F|dXdAGbUa*]"G6=(4l6b9FZ6u/(c!ltGzrcXҳ0:d;FCZF` B8ɫ@DcFM&iͱZL: vUdc:M B„QD DLH YXEbalBEQd#\)i^  Ħ$ד͊f ɓdM"$׃%>i#"P,t$໅d&d~f92G 8$̄8QHYH κHcq\{̈́\J`MDŗGc[QE(\Npi9?4KVSI]G5$c'i͐'"` \ WU'9!;=tɊt"!IT@HD쏋 8(I"Hd!ցTLXLvpўKā$^(5DX2@۞(* E0O7(Dd3R-F0L`dcP(RCE$"t%Gj6LOI DŔ I"ID HĮf0fLJl'L>"@T b1@y$8"<ؘt'u"b7poމ+Vj #gF$DHH\IrxgHXѱvt lD,H0ԼuLt'04وp{cI׳~P`I dq^pNCd%5Ø9 4YDg-ЀbXR^^jZ@ q3$E $YAK'A #/UfA<A(,4(@:X1pԎbBˎ&JA" '~+} !AN UD }@qr4*`q4P f"+p<9\`P8!`RG61$1 xqD"|TJB';H1jb|RA"#*B 8#πρ2."~b Cㅠ>eWB((1QR+ p yI)z*pZL[=YWX,$(1ITP93fW :q ` f$$1L&!7!/``9=%Q #,2PG8O)S$P#X3$9%5TGab&Pۋ(})qLIXЬN 8O/%wt"e= ppi!_,Y^y;ċ !weIR$|AŖHKϝҁ&e48<)e(9Y+)ɱ`M$RAx5Y9Ĕΰp^6I'q̳X^F7]IT?$e]LC#``&!=abUbL 2 hS}w ',EB>J1q˖Np3@TI w=ؙt`WA @K0I'lDC8M82!lk'CNJ.33iB*I%!E%@4FdA8F#&G|T R` 1sF>iFYG@2/ b!sR/K0G(Shȡ(}<@## ۙ'W^N}\ʨr2Q&aIJH "=;<@B̥oR<<⨂Dq>nԀB]Ec1G/ *cyĚʽLs0+S"d OlV#\A.x6tVea)q `8hdN!ks%,:%})XOࡸY rE0(pklɡ(9uՈxMYx6 @=e&u@f3MBQ.Y:р 9 $F(!B=yv: d0z^T\R`Ç} Y8~K 9=sXu=`qg<. 3wݑ8 dTPxLϤ^3p(]Dꊜ`*] =ch1A TB8'+$I܆foYIn,#Fx;V؂"3H%e_V=NH{yF@ r+(kV#ϪD9أ̦̉);rATVnMK: AHD @^J@pe-iآI88Ph`A #<I )0t|l!hsF0{("n =ԟ!,Jd1'˪ naC$+E@$w "6ǢL(4$"V|EJ8y]D2O0 plNA<& rԩ&xݱ\zRg^bvb$C{9@IiF!N'] }]E\U F!l+,?BΑ!|jIpt˳T9!F|+9];{c$\:qHpG"],sc`ULrJABN9'0,?aO7PbLb@^lc1ŞjM]vW /Np2Jrk,)aFfPQэ$$C9](HԆ,B3݂R /}T PDgA`Ϭ*ȏbrN*+6FHL\Qlb5faB6yh̰x'9C|Yj9HnjyB',Pj%L/>l:N` p<4HH1S' J~_4P00 ldH$⊸}P '߁͒B$5yŃa DF'hD4:`ؙH2 y< qHp_E~ Άv 0"?ň_bDHÄlk6>М%6\4\?(4>B 5l pjsJ$~#}|CC(RAv~:i_HALHQ`qY xs9qIîR[ !WM2s͙ Ru3@U>,A !@| F˻tע)(CxqCCCaydI7DJij&rXusycNJ@!!LAC9e!r9ce8L'IrIhfk&p,Z1RPÜ@Yf&9" ٮpyPˀȬ9u/ 6P%ݖp$$ k^Kbt%*92RaHlU3Rչ4K !9$ $E:P hTtsLd0HT g0xxNT$oEtw ̒|M z1uW" FRe#Ƈ\8'z]d Q3"7d z0aH#ݐ ܤp 2J$##g2H0!H YsBH"(rXN)"I/VA.dbnC\(`ɳz #uX "9h5#XfYA0d\)€H`M[(X85"& ci;M X$,RKHD]O.0K+Ȅz3/2PS";t"bx=BZ뀌vJ pqjHMbcy.gS\)d}Y ۧ0)QвT%pw(Mb䄈^CiL8,9He&*"koY!` Xʁ&>fYHY 01Y|FS>9tyBIéHl'ŀ<$/.v=MAsS5P&8%`,*dJ O7^J[@Eh`I{A`5!|>8txͣ9y_q@Fx>yEl BeC <FXL$b#I sCο5'⠥PF~lg)H:b=`pGG^|E'6o8_(q~ruCU2[ȦΩ`uaϋ"]3 TM Aq۱Bz2%# D0X'U H0bnP=Le $AoIg^q )e43A<%xHYXg:D{(duzYTચu)Gta/'3+]y5 MJuU#=A8O C8^jR6Ē&;I0NS'!e?E`_%5H2R/Rw4 ?!ߝD`i;HӺA9-, 0ÒEC`)dϜSQKtD`Z{_ YU0@k’WpU!TJ?n! 9I`sHH'!]@%Y=euR\7(l9fv9PŐR`vG?;e8Jh' 7bf65@ L8gt&?7%6J5HSIz1&nj<=*bnW850~&xlA"YO[IYzqlLIߟ-u;}rB;)O%039 ]0"pHpb0xf9e5 0$^e!cZ|p NSRP℟BȤu^N$Ȃ*2tW"^zddXsbd]@!Sp)T164e&98tk014FCu=WM&^MeBf< &NnM0\ %@ " ,$D0rcGje$&$G' %~ `3ؠA'q+N pXC"p^$#9yvT "0@ "#$⌓I4;$JD%N ȹ5#0I^M`$>)D$:D@@p:#X 1<6J d;Fv!D@wVD#*4,Sc@Cŀ&O7WH@D"&-t$"H: '-T]"㜠Rj,3lKLtBd|r$@!G(x4!P4iW*awg9"^<Χ#A^0L4p-'+܉:bX$o9]p)!0PM a 4B9wYHRoifр`1 ԘزlPj] =ńs1C"2ȖC?4.Wq/%ghTVgCB4mS9d dDA ^Wj,p9'%tJ@FŒZU#̎yܖD62|UZg,PDUƟt69Dj$d$F%A K㖀!!ȪSV$}!95y3rB +fb5@Y$̝pA,̱#a1%?zR7 8BIAD\a`͆E`ܒ]\!O~vȁ!K.ʉ6RXXLE"ϊE $ % $7^ږEHM:8 6IyN9yuEZG9S䙇 "=6fy p89LMSUa݈=,|gZH)Jz銑JĐ9bhs@B<\ Je6^:c%BԔJHQYDƀ38FpN)cj=qKGs̏5$k`Do \gMIdtTcUNd@:`BZ:w,pϨ#@Hi 1ADe, G  hbHB7j锁2920o\WXReYDhPG9@, `F 0qa@MT >^>D @, ł'"N"z>$e$L'PزA.30aI8L H4Y=B`\Vx! \e*A5BS+K͚qI2,ϞjsMzo%2%6r;nRR$@ 7xYNJT;42V13^lJv9 =q6i= ["GɎ9&G5$$3 `z@^[&i88CoF9dK;@2p~ T`C3xU#ՉbXcZG6 #XщFRo⤑9w2x;xHrA^/00I S4H w:VbHw'wg@?XΒ,:2 I=mSJb%eNHT@Ǭ+SAcv8z&W1w!fU{H&@s>,cB7&R:" m㫂A <VfGObb##.4ԝTÑuܼYEZLQJ%/;Mp0@s )!I|ع~̄HIXM9+',lRS&Lo=y lLhQ H ǶrYEÄI٬b5/k̊o>[>שSH1õ*I!>N(PD t FXd⨐zL3732|b0tYCzMN0 'Ƹd,PʐOԋA?^ ᕞ{LHNPGt@10mW ,Ls\0?(pa'hY@O ebY;"'yS%JsX2Od^! ɓL$"=G0|iM@qEH"3 I'dO;GlBk4Ḑq4S0!DS&I  @#_& 0!2 8c&GȇǰF3ɽ 9p˙/ "cs͌ a7`C9aCp*2Z/c0&|%QCPX;ˈ P|gV ?Rȁi)q5}1=K&?]YՐ wf"~CD8!fj34%:G1Tp]9c*1V'3DlxD8f}R0;x '-Ə>*Tǿ6h*(#:n$OTBh%2#ϻxs,ɋꎃǗ=ɎHDD;Ǚbb)F,3+O$5! C\lTZMl x;ɇy9R G /ٓ|> )v%̉GЯv|yƘvVIA:Na4I&!<3EANT4I~dT2Y4 SĊv:t0m "1$ӌ8RRp@ Ws$JCs 9ň٬P(304(yN a2cj/P֘@*DI흼ЩwH\<dt!;WK$%є3kK"Д虙 ,e9 1`J MH48h%0 PlDO0K@tEw]  8OǒG >M 2 y@SP09l祀3|9rExB# 񨐩RxpRI5&Dޫ3b(@$fP`|UvPB02_Ġ ʏ!yZ&z ]H`D8ssa K?"JKRۧBW<;x $qM-" 8@ƣ 0nFe3dΜ5qtO\[[S 935bȽ! Tm)n ԝ@20 3^aW~Ơ @=AdcVNq#l#"AgylIH't v5Fw&|͓-%Z@0}l2 c1!8r víNpCS$$t58q@3;)XY U s, \V #$L9I' ,-2A@ 0p$WB|~x畐Є랣'JMUJYP1g+T`+2D K6SP1+-Nuy $5% @@PA GD䌸XPO|Ԉ*3\Fk%Y&lj^|4%bSDT[iHy/fi*J$Yxhm^ 6:@ą ֗@r쉒QX3g9d9LR.Ez2Hn&ÉCb'RKg3Ht,ACI55cf ȏ=ϯarvXyzy9^IM@"ʜL 9 a⡓XXKSfaO:gU ,neBDѭ$)2/yB3C:HdD-F/_*dď0 0JJJHr`4("$$: '+7@r\E2&PKΚ}WC3D;miftqcة0J%Tw*ń@}%ɗyP$2\؊$" |4`n(D+$ HI6pBiy,D`zu !jY $&}r]"2KvcOagL(2M%9YBPBVA /@!> @ >uvְOߚ34H!aߪ$<z!6Ecl(9RHB2q~ IH\ޟI^ K$p@МA䚑^ >j AC+aK͟2.8(_$&'4!"P !0sYk`K,{#!8:޺9Za/HhC*r)"̦q`Bd!,G$ڍ =<ЂLhH>'$K3=N*R26Q1JdJfwcnd0ĄIG C> sy2Da؟@IV5˽ЄLhA(A!|,PfN_qώ(,;ηIFTSy:e81>"׈-\!#h@ ~)tR܈#.,ݜU";Ń.0xEse;1hE~od)q}<L/De=y$2]e!@|ÿ&vkNwcKV^K1A!$`'"f H;7kuHAc<%Heby$Ϧέ`h埈" )B (#G ,,>K7pD5`[}U01H(X: 2tCImY W1`*e+1XߌٔF33dt}@ySSWI St"H Ϟ4R)%ӫ;A`8 *U@|6#j*X6r Fr0rD%=E * 0q)Upa'`84M 9Bt@ $obH fA52) 7N 9Dnq!(2̭UBAJt te+TL,Lcf<OT%ADP FǗ D2) ރ Pr>( .xB '`L$B(OUu怗P36{qL<T6 p#:%VFR*DA[@dJ8syeYf/LJ< nDŗ !vsP\ $O2Qm2I4pgV[) <% *SMPx0$89 M˨<%t"r_T3OxHb f`%)94O8Z4qB8Y@ c`sAMN$XQ-b<.CBpBYFanYZP)T0F 9CJc YLbby̚zq`@_3N #@H awzB4AC[C)T a E $lr9 \*\2AXQ!`N>,T Ho!ĄPˣ,&HmI}%#'@E&A.G)\ i ͻh4#!6pSG0$HNpBp*#)K N"WUىFF@{$$mNٚ  bBA$T&-0H <,%Ս4H:#)IE.X؊ ut,'>(*4(X9O'k&VP*!Gx~u9y(Bդ,R 'i`yyl$ b/{RsevC{#ps]8n$k=\1d,!xVJ^ ;?uW dcLNFKg:2%+ؙq5G##‡华!DKu'Xlyhs #F28ZIŒ',C)3Y%>`kJ=IB2HXvࡋ,]NRL8&dK ¡2l&<^Z,dK0ˀxa8R;4`=s>aK6rC+S]okE_FK+Hgኈ`F1Ʊcw<3 " ! ?{pA'P_GPbP2cd:~'Ӈ$tu`0Ux2V y{.#6 Ñi 2XQR3\Bzv0YX#SpH(eNe~"f<39MIw{z+x8 2{i lp<l8a Q $OĘFT2! v4W%r¥r(1" -b U*!"ACfß4 D;&ĚK{ 0#xIbt@p+}V^ f̐A@d! }g׊1y̐8nbd "ɬIdveOUn6֤ש鹂͉BR1,GVU<+VatLcQp`LuԢHxHci%tJt9!$? Nj4:Ȉw@ '3.I"H1Uf`5sCd.sX,@ġಠW+pı|̈́bn&^}!Gq"2Tuɯ}Rf$p^'*r'R xF nlU@2 SBsѐ &ƽ@Jd2Du*eߛ(E 8 n %b'LOrd`ئ Io"c Č=( |%W,HR@ 0)`1Ŕ.Gr}FBEwJ*Ot)N,́X;3͜e&Gyi;Ǻ|pbxɦI( x$b9y"v Y?0h<) GLg7Y%͇{P11'HbW5#xC$V1a !c\#PBRɟ\;LsDyĦTr"^+A< oWǷM\G͈<$r' .&ئ<*߿5C'$ErL yܬ&Ja(ɛRBL"g|i$(G ݠ1X.pe`Co.9 l0yC,+=bxucYۊl@S?c&z;}<ܝ ?%\CϪ $8w_tZXb8V{ʀ bGגRC/Otȑ x%\I'*Yef(*LKxʚ3nj+ 8D㓁##w B23=G+L؆4;=@0x;)1M"Ƨ&btQ368zxLNxne,+dOOv(!Ld0tI̒3(!Fe)0B@3>jMՈ$)]O%)00E#g #%2AdHNBH(r_4skA sEt.pFk4dF`>oWX%'JO#.E!1v N!^P#x RLƇL14̑)5P Xxȉy$fQ;@%e42 pq3x|D0*pC9 `(5{yfS:!PB ąIue@@̑:n-X@ x4111,TfxTȒe1Hle9 c~|{̬vVVK'*Y$#H F _;h#A \\ ;Kq;SȈD#1XK`*0 hDFb|j2#93b" Gw8)3`8c0nh&6<c2q!8*F #Ļ剣$Y6Rx+(0 hpwMѕ\c|HDJQA,%h͔A(R,Ba(t:r2L AD0 &5 N,a `VzA(emy7.IHIjHK /4b㭢' AW}^Q E"JpTS҇}{ЄwLreW?=Yɢ5# $M,&'R((c`9gO(x~lǜ8^~D: z( X"~"v6Py̠2$ʼ el爤8NOip_\vQ@"uHD֋yc⚔'{'Y hcq{ b~wǺczТI)ILT:`91Ϻ:$aTeUtDЗ48O%~fj%9h? in#! ^搑`IsՂ g[`WOřDNXTCIc2ǘL}Li)YY"΍@LK^ `/8PXªӛȥPgn>^l#D7(TIb8ċM^PF'T'2<؎M(TdN A0U($KtWR,OdByA5Fy6P8d ` $}k =w(`x1cr u:/]4"Repb_4@+ 53fz Q'SՎAu 8J$ Iksѯ Y"2cܴ0cErA˔MHؙ,CB)ˣtuP@v!VHQ&BPt5SHTL#w*ќ3 FEd40iWP> ND: /d!Z N@䊒]&% :$̂hsR$(29o,ȇ xLï!Y00R%bpI+ HǪ^x#50B]<<9o4<4GUDlGu&H9CDj320 Q$BH@ᅇ6q.\d)H1uidmLx<pwPQqg'ɏ 2!elg$4 >'H7)C*@LuP ¡ܑL)G"7 s'/"rL8@M%d(`d&}LD\2&$z_Vf{ V%Gxxʓ@ ~}wW큤"Y!y;7Խ=}$c%o$0x}QI&`Ͳ .1{&p>=VCXR$ȆI٤Ć*`8yceTIc8KRUy s+c 3}AxL2Evbq:r=kBAy6xbjyP[I(f='?,SUU)ꞗv!"<ɢ.,$$_ǏLG \^h %t(@%'vGF H6.C8` Af&;7YӔo8#(C 0V&5Gu=ݙeHKIe_0X6}, .5d}{ %.:c$#:5]96.YYM},Mg&a/z>ꅝvƴ?p Lg'MС=^Pؒ!sֹ+xQ~iֱu))6DL"Ygk,B ļ5h8TS5 yrƅ C@^B"qTL '93tTE#>hghbi(kB$ĎRD>q? 0 CSSC$3h{C'H$pbdp"s8$愈8bˢ eczwd Π[zx0 :2Xe% oU0B* 4eT5bG%S=CYGF#ppdaI0/  :Mc `;d|I E4FI9L=GI п^K02 %u`R+,Xxꘘ|>2?efU]cGT)DA#Xsd'^&c?W#$~9 xa N$FuasY u'ݑ gw]$n(Kest Bsy?IAV͘Lg ;}H8aLɏ ڌ#犉\5Ei92 r:TϚ<K,>Zu[+YaBxX )OI%v zϪ-tQxY%taprIhY%uuͅ'\2-U5{[aG1N>85أ+Ϋ8%;k ;i'V zTHN ɷQD'nA|ulHD'Q\ FGh9Sry +( ;"]pЂNvi 8bDUX7d}"&S(;#,NCH22҃Or 8^DbC#=Ebg'.~@b(O§!(y . 0u\9(KH }C0C Eӣ(D}\9#SblNi !A$gfc힪GR'͔Q; uꉄ 3**ɆgԊ ^BQ}Y܈ԌIȕfN|GtjD ]htt q/(2J @x Ue7c6 lIߊa`ZvE(uY6M |> $;zmJO\W;TLd\4ө, ]vxU%2eK ,2)ӑvc$l5vYfP$3DJߋID/G~j5.KfHD-7C%"rB0Dp)zA ,(dcr@BqiD8W0qPGsZ%5(`ec%JmBDwM9 3< _ Qi DB"!v$VDڡ 4f"'U=͙F*< ,%Omdȁ" 7e!!Zi!pvI.@I$3W+$,7|uDF=scb4lz%;g+:P*r#:IxK0dhKQ`;M=mVP)CC33^@%. "&IH3T414lE A)ù.Û @F^h >GGAv*QReZ@ZW GtH9$dh@,C&!)%% &[x' 'y0H0zr8 rdO3ҰtG2@H C^K*S4J)?$c͔fH \!$&v X'9uT!G 6r0LFJ&: lGdLIk~)DNe̬j ! Sq/G|;H"29@HfG׮>8lsȍHD1慒n]K,1 c1;ǰeꯑpyv/0xMe۬=3[I.}lBH ;wf]?7r6-54<3eC㏌qfE$DRfĤ|+ܚ8'Vכ>:.D lIT\T0,C d藖f,^LdPG?uÙ!$C|17 hMwv&&D I1x}4HU|v845 Fs{T,lb{'2@'9 ( pr+: N#x0$8psCI){PLxh"NJ$DK *3lQ/SH"N&3F:.=~恡X_U/'$`oAsH"gPGTcY!< W|!D@$Nnu='GlPFM3Ċ 5P$.HCf7x"UDK'zPW8''$Dٝ',5^+Z@]MI,0NCUYtBf;H3=6R3IJ" a',.渥8ȠIHe*pӜѾɰXyݙI,t" U92H0X)'⣃uYwȗ( TJsg $@ n9^aYD5{LߪqTHDy8ѸaDxC{/sxbH|~*HB,jg5TBh/QJB7!po,]C PpL0 t4"#Uޠ9~|jsYqe'Sc2(1,wyUO|Ts5PkNc;PcGI!$`vԍ提riQw(NLBBagh^DAM! FO O@0u8,B^ފފhɹǪwy W몥<aP4M;fP)]Ѯm)v'\`DCAt'G@ G!]H0=G4|&vHAvU9Zs3^ ZG!—#-C rHa $lY&%jBt-:fƁ(ua䜬7'U H_Tu9A%!ifE`b.xH,2[$ VJ87I2&Ç,Mbef_8&/MC9`K/@(v􍸼 $>QBFz\H@HK`.bPQL1]!!,pT8``TY&,"=(P8]vƨSwkFHU$)Q,FJHxhnvЩTs1Pے`I$ٱ )W+GU#GM!,O (9*oRq9@#/i$%0ϋx * "5Ah,0a?H P O%Dz),x1(3р[#<`)| Kb%Dg3y4$zh V= ; LH>* <6O4M:>̆ V ՗``@\sK D2LY$L30|0@5@vF} 49 d Y:Yt (6 H9u;+S54!ARSL 9r5͒qx^F5`&@ 7! V Wꄁ1cr *NAV!l"bZ.@aTX|Գ2$%C)>hL" 44VP+(jгR *4Q]$=%8>2ALpГ'^Mo 3B|g"v8r6t@CHBMt4"F3yze0.f$#*;jTDKT4[7 i#@r  /#L5hcY#Lx)%#&b BYs`2`O!FXRdFL@)zy$sf<*MP 9$tI|/]a]3G02@n߃TbFxsfzqҩ)|M38&'?@ @*pE8.r"kFHU$t('HxɣNsg _3xB,CtgYߋ^ndKB o"̈́GHC+@91ݕ XψizH_T`%QQ<4vӞq!U|C.'͇)3DJ.y -L>4SI8(7k%:{B.ň#T"½؅+!*bY`rFYhqp$S띥{)aY?+ HA9#R%&ge1Sv&!Qc:Ë Y4OZ#O15(BRXDFr)q_|ʾlTTQ=CsCN(0w4b  1,Uv?tK)CRa 3PC܎Z, ,ʆCF^x>.Ā3 $|XDL>X=/(gި3@ yќVLXa.u IjAGAD,$@K`T+9$ʹM=v^Eb:8H؍a!!(8DIݍJLxEQ (P 3A `z^O  GHX 0fTf8$s+D {͋Ќr@#']=SC*6((&5"qXHH 8s갈jaj `13- !F# t% LlqJd;yyc9*A3`M$D$u\&Mci+ʯQ$F@' 0uEd53tQ@~ $+bD^ 1^" A ݨR$x'8 Ds*wFLHH'XvbTGD! 6"%)Cw8bSt|("d $P4|՘!; ( D Fj5s'($K˿)/bMJ2̓D1B<.Ɛ9 }qJCܒ!(8 TZE k^vx∰8N9VJ c bd|+`la@0Apw4 82Cq4D2αIðbIi+R HcZe *Cr'(+)P0V`bbƧ6S@&&DDk``btPhݠV5 ArZNX¼x8b$݆NPBAP1G80xhIcZ7#\x6$R(d4-pĞ(*#Л"[9{ @ 椘$C~,5,TPNMaqNp* >3EQC:wSO#4$ߎ"|L͐3P!6}BH@PEG;yi?)9܃)~9}E 5cgG℧5b:3bXbϟsd1LPq=Tky$}*rL5 . JِSh6Yv l&ś I}^['s<%b"(l@r]2o?/v1\b^GKԤuANg4-qQCB;2<Ñp@YNp% (9e6v͍NLVP 鮴H<{ '_"ACZa˲|!}Dc] OEÌ(WB4Y: ظcf7I cHc&2PסŁ"YW"W`GAĻfbp=QQ9̈6rdDOdН'e$9ɳ5p$Is;tϻ{AA#Ls醒"I"Hg$DsRBuHDYadp_/ O,zdA^kC̀7&N"̗*aP`5—*W 2e| 온eI` d@4d) $4, (9.XI>2 HсUI*YD!br(TsrF @TOE `#^lL鐏 J|RQ1H9G1HHH3qPl Q0!D62+vE dI݊#B$(lM0W!GB8AaQb2g{Y!`Y6| h1ݑQ=>| .k I)2 ̆pv4DB]5D3hL0CF"pKYå$TDOD%c>%p _2(H:N}!::IUә>:}$[94u>9|Q,E: ?t)v^k jLX|#,TT)g F&(d_CYZဝ Qff)Ͱ43,TN @X;,&:I8H0Lș8v; eQ *PstOi00@`<3h)<3[,ѕayHuNb)/9[%2L$ \ vHWREF07dd^U2|EC0_^M&T1pi%A.j.P0D&=l,.q" Y=VEhF6C ~ %`6T195DfEBXf4h23ɮD$;FKy>Czl!Dˋ5쒉|  r`b{݀zaֱÊ"Ky 1d$ {&4 !B=N@Zs5/DKLvKTYYu'#G ?; X8l&QLPrD`38Igqޱ$' (ȇe!2Ia#d0fyr[)!Y&|6c$ rYBxHj: Ca@ ;A{˅y)h2pn#Pp;IK_ v'x MԽt<2!12Q 9:#V}Mg;$:̼ I)@(~ݖ%v`8ऺ`Ϊ飑Y }7 ¤K꓾5zHi>>x")0$H|X{e=}PR%<X9_,Lú :ݼ bxs?7$ϻ2G,F5\$Qh'uڐDREčLx 43<@8G&RN)*_ʞj㚺=s^ćU:hs$0jAYcX,7$#sV,aSpL―N>ic=Q-Ldw&HI$ /m85pH`56W?P2\L8f@0+Og`5=GtWp)ŀ` {^# !t'Td P"ALe;Kl#3LbwBe>]cYцr4cz,.NXx7_6RȡD<M"H# cN_+HǸ$b2j\<4#1llðB< #EY G[XANxÞ:a% 4Ya0%5 =&`IOAp=qY=16BaIkEf6(j;y!cgVQd`m #iUf^xm0?uLH0B; aJ FPB0qFk 'ٵ924ylfje;h(D:~0s/Ȑޕ'7C"xW .fh O/!jׯyKߏGT: :1Oʎ(#$7Mǖ)3H  NxIXpcE']Br/.T@xpx ‘,- Yb| ~]*X2C;==E\F4U"D@#C!ǒ3;D硘O~h%+0fE T4HhH]KL)F;ۖcO(y沐i1:P C#529R*)R9ƭ.DHN81(&xo@;&a>=!"5ImH9I%^lQ\[|X`9 ݘ>,~fȂI 2*쫬.o@{I~y Մfzˁ#gxzʂ$otIPr%3HsSu没>J 1.Ѐ2rb\XOSd9P9;E{CH]:"a9 A{:L>) brx8w*)w/+1EIYlJ)TSTs3㇛A'" 'PAq@FPCw 33Ϗ@Ogwy\t$aR%4ͬ2_e uYXErG2Y`B&BN+k$t8 MfBC&x ^ͤ#C!QǢhbǪ˙c$ O $#H19`ʲt@Wu!؉28 r&St[c %,Hp?|Pб:6a`A@WRdsfCe l5!bٙ>,2Nbx@,;iPOA&r½}e(o/SYr4$ ʯ @ ת,48gϺMLa>hIA}%F%xʄ#'#lQWg愯\$dj9EuX'. ulEnNO?̉WCɾ{eS*؟?ƒ LF=qs_t\$G^g^Y3ədGXmBG|)B^Cј$Ea]' 2/,Τsx$ 慃דOqdLD 1](KxH!8D#OHZJfDXbb3"{~]bJC`seJ}SYݟ,ʤK'i\%t b _(T093YqfQJ:4j6%İBvN P,a#'=Ł"q;w B@2:재W+20 0z搲$$)3H~w@A 0LΣN8PiH^NYԸ398'QݣsBXLф&|dt$dA 4"K: 1ͅ> 9_"dTR<3B~ig(X& ȞS=^P?aHDh;2) Q{ $y0%a/%d0(B RB;st'SEV ',ɇ:6OG'XL SN:\K%"=NGH/GwcpA3Fv>fu /eXwV`vH@)i 3pZ3#A NSĔ ]d#"#$ :D]($!E獸n" $dY ,DiJR:&8RX*dʨFh*fO*_'*Lrl błk #%bBHx9C ߒb@2!d}@.%++"32o5,Ɂ$U)Ñc4&H.;UBet"ielL!#4B9NRAuA s:ZA6` eg#@R׹.`%I@Df\ Bg\KC1G/ly v K^1 ~"\ @AL8 b0⨙؁a92uÁ'R(Ǎ(K d';&bN}b"9)P! d t԰2EO(4] BI#KHYQ!Ba8؀ċ;Csq<)yL q~ꓙYmD0s&;qo|߽,Te@uNϫ1&= d*vR&+$8w91,غ!UwG͞Y{YI ude7x'=vBr^+*Dv}=Ϗ13?4yA3Ks)gX$ɘQ85FFJ">~.G(&cXHU LI|{IgU'=yHVfDv!ϻÜxA#XPEcO`$.>h !"X0B %t9#nJGY栉2`[dc$4 /A,$wTpatpRv !ڀ%1t"dqD2~*qIO~9WKbatM;?ՖP4Fȗ] WA#K2Ps΁ .†Q73)$8 釼$C:65D4A@:ڄ ;OkA Kӎȯ,%("r$Lή2i'((p% b؈ȐP$ʌg BO8dBz I`G˳5.]`v*HO4sUp9#8`OW BH&}$)y_@ $ +0@1ΫP$Ye$ 0astjLs⩪n'U4#|]3WLDq,MM]92tTEnxoi"D1<␣vl̳eUN3&|c5^c8! 3>iO\(]rbxj#,f,Rrc;/GYHc'ey#xmG@%9LTI!7}0餡W i;aȡxaI|g/`1ZTȢeXpDw4'^tB'˔cI$p>I5I/#}UΘjxXՙN9Q3sˢ9!u#a1en)&Zy%0Bꌿn 4Vy E$WΌՀ8C~*RLDRy,uRP 橚sݙ`'rX(_G3$3 @Xfn|"$b@|\`;X@bD1 IJbZ`(I,dENM s6}IN$`&Q0uVo:O|R9C?1TǼ)ĐH&9,# DXIB#Thd NwG/p$UxKTϪCF[;$#^ ;< dzcM/ E pB| g@ HƳQ'"2=" H;5 {܃'rəCGM Ki(sdx0b.tꦎjb+JɅGDcVHf ߟlL;s/plp b3iGj8LAE>䳗`$!5+`0dIHH宪I&b$ ?sfca ,@/GÝGt2 DpRG,Xz,/Ud5#|qBޚ!Cba.1aNj h@;ӓ"ˌt ' hs` }f'*qPzd U\aapcXc|ڜ8ٙDq'''Br6ϕf~T2 aC91?"˞K2ie0 y>LIP'8%oMqQvz9.uCZi5O=\ 8&`6/>j˜02>(E\TdOQ #EӪǭFysYGAd+X]RNDD5,hɯbxbJK 5IA\d#5S"a|VB;X~>lBtCB$yh= <Q@ȒethCσY髤Ր0<,VlvM D1_^}xXl2בX1$AZr׺`|\7^}Rd ,ˉCq D}6d HHE@Ց1;81&xO"NRrO>S>3>Ho3v\K1  }`pQn)Ϋx,UE.EĈ>w+ɯ&^<ufD~5 W #l!2R%"$(Ud(YYfpOGaX7$Ԫu@_40jzar f;?v`nt 'F@`Yz2XFm6x\6TpqX' 1iqdQ89G|NzX)⒁ 'Q: t8ʊYq;'XT`$Det(nUY@'7ྫ@cS%,'fAC@gG7x8|iBtwzQ,K9̠:A&#݄=A-vM tTtwsuW?|U؊f I9&BO5g%~ihpzhA֐3W(Řc݅LL!:ݤ\kr`9Ŕ8/yI e'6@1&g~lQ.Dq`9ړG1d219A)8Y /O>QO0{/d8IDQO5B$FdWtN07?4LNa"A retB9'^Le{,Bf2 ,Og}d!T^\!=HK A$5<ܞ`H\T5'IkQ 9z 2G'P g;@0|C!ؽ B FxDW9u@>@tՕ@Jy4A a_racrp+@C4yL+#IВ!ND7Ni  : BR!G`@;=&nb6 c A9ց ̑$Cڙ`Y*eB37#B#BrpNʆ@)S/a`bkerg7jwCO/?QisW2=((gj!Nj)jvH u€qV##Q`Ô<]̀<(d9>ZcVFdVIE^N%gQΠN_)c_;:K,4@BA8vPX=۹cF06\!Fb|#GTXB#sF:?lbtL>.ĻӕG?!m`a;$\AVF8'!.a6Lbb_`$@8{y^^i@g0p树bCϴuP 9pxhVS$b@ H# A8!ꅂ 53)'}iCH,NWQ*P`|F!H΄ AG:Ĭ|ZQ<>fλꅰs'I) 9a;̓hՙ<ޣo5J5z'(tř8ݎؿHv}/Xv9xWO|ަ}mM_Mv/('T=q\T"#PW!6Ww5A}\@&5U cD`b?X<,U?2vtdN9*Φ,N0 .uy|h 83K ̃>j[4!c E9jL@x|ilc%ȩ\2 `X"jI!,wp r݊8 YȲG s &q@9T\lvIhxǶ:=_<bP,yn1f_y8_4#ݔK0/lHxǫ]wg 1otDLÇyi5S6C T6 5]5: P*',Rj< YTQѼD1`}M@P\2ĥ|Lh!jc;8` {&coKhJO^E&DkML aP`Ɍ<:DYV bL{("PJB͍qV4A<+ AjGTvI1&E*Lǚ` dl@Q;X2eVcKÄ_J)(3TA2!pnd4$|W9Mh(ǫ)p 㛇v H䔞] XD2@]2d#3T%r'5"'`ܧ'(E3L 㝨?1NJH# ~?^/r*DbH=NuŌ=ψ{߿tD ,X?B?M I('R#|X:\VoI9'#9HlOIPKI1)c>j9%JBHI_ρ˞h'p+,98  3>?vQY\Q5s3:qP8|菝lrRC⒏idW,s)6xj$C.NL4?WI&LEp1;sDE'&B3 y|>dNs&Bݬ"8 "O Go`|e2U 9XV7/'Q"u[@0?I?݄ppHdZdNp5;,$'&g CPx|\T%91fa PDY'No9L8g&yCN2}Ԑ@]=TDHX$8m` Tr7!ٌ#G>v4bc3ؘchGHčHWy̎f'xN:ʘNNOH17>lQJ \$%c`$19< ơ't-8%z D5"N;Y2]͊ЈbR a&zŚۈþ塚l.LCQĀyV4 0'P>\ A4qQ4ɘy @0q02 x7.=_:zء<}2B\waTrAf$B\C_7,ʼ wN؄>T`9f26w:a<7 O'|.q)^22XS3T"J1noYQ +0|aFD;j5$>g-#B}|=GF1co1e į.Eys7 t`qM؏v"Ex$f"L0ŅY&?X% Ç84x=']efc8XpM|TdidR);9`%|~iCgLԷ!7*ǜ̹3RPI!&'݌Xvc-#.a&sF'CNJɉpKL\hG1xI L;E|ƾ茎oAzc6 ۡōx9!H B$sABҀ?5p( 1W&'S* h^ YH.!ڈy0"e,MmFjGL]"<]$1eH'a@fUEń$q$"1X,% "͈rB0rQcBDq͛ y;"&{?xCȉ~ɨ3tը-${3_k%6tSkSXIQ/9P#.xA!؍Ecr%DwK )U<BOPHL"r@ApI!]bz;dJ=><5)Wr ]|J 1(>͈t`z$ )Y4.0_ !uKLq9?*.p5yL*lSj9u. /io.b83\(Ԑ㦷9`E, gl #m?'hL! `&NSN8QxI.^p,{$TIssIdB{=U6Z3"L$IuAROY&R FO)G!%,x*j٤&%3͂@Q'-uAnefj1,.]wIT"J+Cc .@¤ H&Rog0B"蘘iH&H%`ȃH#08r2'y!՚+#\R6%ԄhB[ N"'e XcVt)".0Ђlbz'RG9p>Sc*Fa#ZK,80nBQv y>)01o@^K;Od1C"8犎pJ\Yݡ*@ xlb^,9ޙODƐ 808@coQcdĞF Ԇm(^w9dd<ȲprX1=RCl|Vyń^5PvrM8Bc}dN;q8S+Ĝsc:SNT9CA l¡cvðn39Hz2xq0LquC?5"aXczry.y;IOv]x ̳׊4RyFDVH_BOTdF ϫ>tq΋%1 ǪI>)LFLgMYƂ'~lO,7?U%K}RX0$lPb+u`Y*:qx>6?HwP<՗4 #3U$cVBP y$AV=T.o]QSt_"GHzrLhpI̢g1 ʄϻGEc"=^ ɴ%L>2[*ĄRG.s ٫)3a"DAT4dœ$#X*1>j*s̈́f&24%'`'VQplH#—ǃ%achuM@ FS P.i`"F53qݯaq#$`O u<dD ʀ\DfsM0@־=[di0A<}՘CZ9OgĠNJD>,h %a%aNv'4 SZ: I# 9zl&%x+G|ȼDPeb%UA%d1TK3%}]dA.$02OSLl 2i& ^rsU$]DRHG(Q00b\eJj0CW*C@X\Ղ#Ɖ,JRG#Ub$ ~G>S#}זFdR'@d@49$wGF*` I"(&<иł bT¬CC.u${)= $.P!hX0Lլy̤WO$矪 g><]! ݱ2'N"$l~"#܃&b%byTs1k8N~laŐ=gGcV_4nčg__Wf4և4]VQ G 0=c@Ͼ%$婤gcDDG?GtӚ)&3(9cМ<.wU{lyrymzP KIGX|u貜?xwrE҃u\N1rEk#;'I2spf)3gg1i-<.aՀ{߮(r>}_!l$q"z7s KCQHWx`=">,IɌ⩹c,3/zf^ ']2s̓i.IA$G63d?C=~0lΓtwI~A/ "V] &gH seЁ2%ꡃ'$-yG*Ğ2>$dSȜdɒ{paHwS+2S8g^Hw$s`ֈsvǓŋ̪HsѝT4Jp7BLwR kU HAg7 Gو<IʂQۀO7oh|LϼCX>GVR2$ݕ fYM ̝;v'J$r𼦙98kG&=5Oyj~* (wTpF64LY |g=T=$Q * }tJ$ yGA$QI`ɤAw,qRA;.?uK3FBB;Ђ e @2s, #`؞@re熸L~j)#?5S(F>vPM`A栅QbRByaοY JC DĎ2K(M~bI`vaz!2KD1 3׻vD x`~$I䢂a=dpwd3"($)FGǟ(A7.<]8qdIRb7q|\DPhqG[np6 (T9S/VLI2ǰ䢌S#ÂNb_GLO3A2蔒 &"&9v],Dz$9J@ު˥ۅ&I?ux_5!): * $C)3 A-!#eHE$WV 6"=EH+4ܲ; eϊh`yr|}VA ȴN`H0.X r  2tbiLI1Ε{G2>*/ HZPw' 35uxDauQ&PTP$r|y5kd2C1"rXȆrգp>v&, %+pL嘔,("u_VF'HLg Q1DIaN,sx!I6lvbXbQgJpAYyB0f5@̠I̡ጜMtY d;=K6<yvrҚ8t0889hD`2`WHDìLDw\Be0c 9^QR:0)Wf!reB< mu ^1   85j3^ UcCZCLBTS2$^xXriDDG@,ʇ|$] z caF &yH:(ȣݞ 7dDŽR> 0%QD p㜨J3sH#bW8/O/H2\YHǺ !#SEDYx`w!OT ".TH{+bOr**),t9,ȬC33Q1:3=G Jy℉ؒ?!r]LO 6 bBE8"%ӎh;'9M)j$}{0cdu,I!{D6AXɉjBXêp~i+ 1@2@7 ¬T)üB!vhS\,!S>( wX(O9S$=ՖQȫ' q@\I nl7E{3SFSi~(X_3꼋NNȜv; zfQRL0 3GI8w!pg?H)\T(|K!Ó9eO rXǚp Pa18Dv(L  $ŒLM#lra3YW5*+uA='oH D<.}C|Pv 0&RתTbqXې8PT8^Hs6$!ee9IV>"ICC_ 1IZR&}LAkgP99.!.ŀ&]rwqq8s/;͚7 8 %yC2vR,TH3 .a k$<08ĉ))b JFm咢B XHxW)B%,z<yG#.Rv r'?Jz,' jh!)v:\Ҭ0Бϊ@D>nq'ba+k!1ڬDެnQQFeÄ^(h*PYXV< $/NŀB zIbHcote00r?)t^#y F$CSxs0$+!P (3lF!`I-ډyB\$<,аihhL)8ɇul 9N- t H@<&7tU}v#l4`NLOK:$Y"?M`pu-eb45״Jy",.ӮhRӉI,0 !)Hf͟ȑ e3&&ޫ)P@' ;(LF|JU8q2aʰgB/ p$GDZ 6yn0XG81VF=^-y"gZAsPL$se˂g-X<{$lBVBN8J&aC 2L J. I .MKS9U=sņCJ"u11Xc'}eH "Nz蘨3j'ꄺQS.4sP`B 9)%Q!apKwq<I!sYHtTC^ܱ@?2@_q_Ly }xPz>.KA#|E+ន@clw≄U'trPkVv[<ݨ4iXE% v_͙>T8V:ot&6arO}2H$*Ag9X*D̍ PY`:z)+9qu̕;9+/gSx"Kz" $L37N]V(P: *zCϸA"i6'_ˢ"9,f Y"9wv -lBzG2HuؒcYM'`! LU`TKQ(#h>!,ˁ1[ٱ2{:0O!8p\:: apOcĺq-QDbnyC5o u\KLG7]ĘfdJ`SۯqQrPdwe<4`/' V^* UtV+Hb~$Y֦3v;&8NK 2lBӶ+2HVgԯS";^C$ B0>v8p` 29D 0@ㅲp;cB/3<}X)="S_OQi3}0 4 c'f1Ed⠔KP 31 9P4̬q19ra+@O=5izΊ`])"p1z w H56c䍎~\G34HQKv. +,xpAR*aHycLltp*H!8^+$I`Tc@ taET(6!R];UP>蘔@VD Apq'LMJVVb^J YX?=23Fp8(vTy:xy/i'Tc21OՒr& 54é ew(D8'e!b#b@CGPj^L $ ZnYs{ aȺZ, 3 NȑEl2 Dqxr!6A# >A QĖ&" QBҨI5kHLV(LŚ%NMaљ"F#WjS$fhk}"FYAj SJ!ix3CĢ#{CEw58@]>&ZA! IIwVĀX.'ʔ@}6a !$0l0C( =D̤Q#=c;eVc8BBdev_ 8LN<>2 &&vN`8l9,' %ʀ'~f`l1%H$>)B=%J'>8a`;f7r~*JzL^%uG @*"C)IO^&吹qɱ=yUCޕfJZ6AAr7BIeT\4k´JE WO"Q JBoLY6 @ lʷy3 ,EJuYD $d3s@a." 4} c̽ /; kq)8'(xCyG_`j̽G:{dE'Fr& |}wK7 /JA<3!LB1ǽ2ayWqYaD p%W >㊇xY; j 8e bg<1' $DziǙ;1);x21ӖI䤅'/B@Y^5PNOH",c7@TAK]L0OG͙wse87 (Y9!.dq5J8Ȣ#&'zN~uU!$TV!L=XD);*98{w J7NOMd[UdYr-0YB`uL#)H=vB8~\QDʐ4 ,#t3jZ8Ğ#i@Ɔsfh Jq0l $36"O^Ae_Rbe%B1'@JS%l((!Lք$,NL%YӟS YI;GtM@'WA 32(!)uJY M@ov# fIR"Y#dJI"I̠W)"#8L#*$A/^l{}1WL% !ڍ컏rs.,Ng&L* ͈hEz9kq7E&EEDf7~yow'vFAxc|VQ璳ځHc7:DdAXSR)9Y rU&Yj|Xl=QR^O.-25PA5c>|؞ {5'?ƌ̈́)Gt#u,$PE7LE/BN,R: `쀿 HOaޙ4t,J OJ:AJ2$ 4 f.U @ DTnE9'=dFD@jyRt: d)r01|s!#gy)$$|Jsz ɯ뎩 YȖ9ݓps4Y97cCtBPl +/?\V`k jU%X@`$B}Q (ϜpIC+/h{$|Bd8yd&8N$3YC3IߖDz˜U8Dh3#̟L3DidicWTrccJOg?9; :"񾪡E禐I)v# KsDaxo}xCfp'H?6bg,)3$Dj$31F]Iԩ +d家@CconN̄%6l:AwB費zET55hi L)cg3(<!C>){Hv $cS)@b05١]ʈ \Є(!5&i %Y!e$d16&q !VeM#:ʀkeݐ8DŁ=0@I"2_fcV 6:f!^$d`Hl J50Řf=IGEB"&'I0gM "8QLBN@j2 ox"RA٬BKĶO(2ՈV!;ws}ň<4;mDAp6`OuM @?ݔ)/\qLx uGY?QD,tXĉ< OioD-Nj͉fOyﱲHrPi6!HS9(,h4YKAC-r's,;2GpeHZLf@rƇD0c1+l7!RJQb:M;U^Y_\W(f#Ȋn.W* DQO$ J;lYK)M.O7)2  =&FY W !!$#|'dشؠaO3ArDy(܊!>Oj&P|u4ax&:"248ccBA!.'y0xN$O=Y@#%IȂưDp  78րcL= !t ΜWQ,I褎se,⹑Wdaw q 2>o9=G}YKPR3&8y*zk0z8P4],𣷟fPP,C2Y""R7Wnx'lL͎B~['ZQ#8~]#g  Id[~qE k;5uA鎬xj(Efv/~(7 ]ue 2_e>{oLjDde2zYq͉&Jn`k| RJ/:GUgWaԳݑcM$㌊En:LN8G$"y0<@͘B(. uF߃+C&˓dꋞq79FZKręY  # zŸEd7Xd]X܌m$^ roV F 0K!&y*+zSwB™! sƿH| $Ȓ_px \Im.w$y q1a39qE8=4>M0 0L w3I@:FT##h@vԉR^3F'2dTH{qOL.`Ex"y|R'؏͇@IMU.ul1 p+QaCl?LP$~,8hy) $5&]Q/;l$rtE D++>ffi\xp,Do2Ԃ 1$!'UI$ *&/ +#409="D{g4( S}H"xA8wW-hnjq4VJEu ANxd QA<$S=$ŞO5ژ!2B8q}R*? xKp,4C!3>$yMg+,J5gd<]a)5በ@FABE~{$, ܙXED8lrk=475 v&7$d6ij#28@ Y7AzxqJ}T?I;|V\rs eR2g݅b#{ڲok9=UE'|N:n>?O~ԌTY#n#yO]ӖFUN7ߎ9>T9Od%)rn0qA#U&hYLu~)9*58=I>j(=iuu<|WVC?4\?3~i横v;2̛˽XO!*9U?$Ya'3mx}X;Lm'69|YN0qO1F6Sp.A٢N9WjGm#-ÐEQ%ϋ6')rC5(U Jy\JX&&2E:jWX$9e${ GE@:` '8 PydLHPe 3)$:Lh(.da`{'j=q꧉bCU9RT7CuA&~irp#>vDξ4;uNCǙ Q2 厌DDY@f%TD\Y"Dj:sq$ 97~ )$z<$>tf4w dZ3 $O3z2D edzA, 2PyĽϊ&_Y20HBsÔ 0kP߂0qhA M ck"ib0g6ax;Xr_ThY0h'(apBB1<67$&.?4q*gqɶCAAs74:NI32%8ɍ0AXsy@@a}B!*t"BC~3V zG$6j a986`fzI^Y蜤GB} i憦T=YIt~08@y PI nl-9㡩:X'r祣?e bMxYH"΅J`"|4#&,BpYA'(@Wȉ3*y"DVD|I gɂ㒙r`LŖ2a9x" Np7.ƒ1<,~*h1&4$RŜ#O= H8G\P8vrg3BAhhrwCqD[% H$G9$R9^UAe901ʙtÄ4$'/7`3ޒj2{b)aM H j&p rNwe^`JYD1 XDjgkeְH& 8HD2\b*[Y;pԮ<(U珋LǑ0"+* .wQ>B%#FHgw擘In9ə^EbPL"Iܰ I$s݂@g|$$sLu{7t[;_")0+N¢zda$#|L@).9(*LT Ȳ)Yd&1ёW4gI!k@vyp0(D8;VH g(7YfS;;T@2I6|ДL*#wU\~E:DI/?!.vD$Jy7pd."d|ƴCI Æe!'\140D{5Dhd #?4:4w%VR:gl 9b%nfx"dNJqq a(Do@;=~+Čyc^>,F>Iqd+RW8^9XX'Ń0sHfÎ$DY"do##`}.FLp-xsX!Յ`3ufDxXrt> 0h%>jbM)1ME1$a+Zl&%2tqdDˢ²XԊR 0tY8lL 3ey';p2@4ɜ dY`#$‚zCQ8/V Ppl`dcfg9`IGD0RIn9f= EE`DfYLΑ彃$Kɪ)D#C&yh e&"bxEC"BA&&*HrSjs X2 βA`D!N#ȒoΑ@c\U_=QT $i1/3e$ 0!Ykf"bHHK"&%ʪ:LAH[NB`IGF/JtV"`?qøg=\#Aya##HtDBDP\8di7s@Ă·i!DF/B6D$ )IG,HR8&rs -!3 40|3}lF}'⨲s$[YO$'*ʈVhB wR O%Qˆ*N($B^.!9Oc9U$k&e|PXe"L"B)t+VbC9Q4Q2!@h !Lb16?I!seDHpCUak"IY<ϊ"qUw͞' 2eb"cSA&4Oo)Гr  $&#S66"^w]FoPG\G?wu==h22LF`aj $zpOudHڈ8Cu<ǟ̓ҼHC͗}1<5"=T`cNrg>:&~b:g ˅~zaa摆0n?s{dO ?T,aÏovy S ;ER_S擪N$朸g$HF~BPM3g6e7B"|ygqg5M  HLȤI]lf D|T:IP "^Ӌ&fbg B{OuF$s`WCl\3<IBi}I}ׇ-kxO'l%: q.?Rg:e(Z6~DN~ t@u=V,I'yw (']GJN5L8k 1:9CȘj!0d^6 Y|^Hc;b6 u V'1 8 EԜ<$E#&:1RQy>Za(LuxNs\50(ւDTt; BebsȊu2/@N+a>dX l ŋ9j&cq&8wziFE)Ȅ,YgN^HR8t]o_ ODJH5y.$AdY+E: kI*b"B{ !z$aJ'1!`Aŝ]aT'țLj c]R$q#*>СpzQDOl2I^r,̆1T z " g_Tfa9(EOMgO1K<%HPHY1IG$0IJO"LE C0CF @ߛagA3z7!$'4odJA:n:D}RP4rsj1</>X~,I?!@Wl&1LgyHS`8b1/Ȑ%SxWn"!r4'njRP};`vO?o7G8/͜:I2j&E'<5L1.q?ra"?wb&NwzIHC8''vtl<_wNm{o1kAT+ `HU#;,y HgxlpD.=yj]8T<l6a+7VP<%d}Qa^l~.ALf#e(E7fHu`$`.D0 TIz8 Lv)fRr(>74ID&!vC~,[z`k~l"3rA"yu!Hv#&`'.l!;Ͼhba^9͛AbQN|2$)% ,H?q,FHvwYYbYq"YIyd33VJ1Տy$BLzxJ;R9N6H{BK3ėtd.b"]qRh3a,ROF1a{&q |*71~ WL|PA@ߢrA\)A'HV`;{E3lG@ $Q(ϗ  K壉 Y1B8L|`YaBJYHI+!:{3!*L<$yJA&#GcIס.$!d.,gj c>& $9LU@x<"By>y BO>y$D" 0 0LPҸ@SBD, eli"xIGjx/ax82AKAIp\Db|VHBS<` qPab*Z0s?NT?QT &g"B_y?%a;O5l1 pHRF_Vo)U`$^l $ltP!*Hn*P 9>Gt"c/)̑ $s}@/+(ZD~*]!\fC|R$7c, t^/#49o ͆1v OcMNlk]"6~hsȟC3S|ߏ<\G$q=G<ϼzdzYcp&3E+&czk C:ka_6*3;eLtwWǫ/]StZyh,l3@P#LLL.lR8̻g|Ot`³iĺ6IR Ub%w݄awdp&vgn'߫=o͓%:\l ef̈́7|BHG7wR^iAYCT{GIdI>b w#꧇(68LkG7:Ɖ/4u)Wxi'NY$*Il4eWg1l/*895?V_ bI8ar 09q6c%2$Ri @|%`f^̲"hEx2^Z$KϳQl.%s4g@Q Ƃ!!"a^"epbrf\y3BD%ruL'3YR3 $PLǚ,! !%5#4Y&"M$d0+ Ρp  \JL<R]$_RD(#Q P8Ct 'z80%Oe=cHa@䏣4L@xO-BC h5 eHA$Ξ%G,l{Ҏ2H(%.AăF@ ,B0R _*Іzp"F%T(8 F$cXAef>"fu$ƚ*B<0N/>l+0f;4B̢]7P ?4wJHD)> (oc"x@ !M8 zׯJI>l@"~n"y銠"ۭE"\|T"AlTAYe$Pr1߹x1D%jjs4u3b.!G)䋧v3Fa0CnܪC3"2tIWXK9`5g8՘PN6<2AIY Rbx`@c  ))IX%XD<bY $Kl)! CR~|pkVr\: db\I'UMtEՃY0&XAߚ5`A vv;]Kps9s%;׌@ $ 4 DIY|THXRי%D39&8,p#L@Jٚ''H YT3)Awx. xlD 5G ]JtI -`1CKm #9<V \&{چYf#!'̛tAPP$1ۺ0@{ &) !0¸(Il?Eo%8J;C6ccfz&C)RO~  hǿaN$$ Ĭ A ,͎]Q]K("7jgGXT8Ǔ[Tf!*HY⼒Vxל-ٜ;4<&$ |T"5z a LwHQ2vk RS꧄sqe8T5k3]#?|ޗux'WQu$@OQ :xagf?q{ ˑO$3dq˖ywT1^\mF.XɍQ'8{O: t7Iꋙǒ'b,UDoi??nK bx懜vvk/O|5 }}=`%7vxj)?r/ۼ˯R GbR7#+ ,7>,7 <ׁՐc50R>I~ab 5 ^|o@"1 sa2>iJa8>(CóD!tY={X" >CXxTC+>y(琇{I!_P}Vn Î- )r!;# a1Կ)+S101VY%"KF )Θ# 03y@gőHX봮  Lu I} c'M$q{7jSvSu{ OP,X~а'#NukJ`a6yR"pD5%>!FYG>H>%j&>s^Dl.I؁nx 洊 [S x@ޓl,@fJBNBF_S I1&B`H6b ?uAYX/z€9RzchrFАvF 0 H$.P8'G|*S1):M{TD>p⩠rH2iUC6?*Ɵ:{Cϰݰyb%Ǟq$|JKlܬ I Tx Ո ;OtDB颁 `|f ˅P#ߚXc{C/ ér5("Q "!dKUS4i $-G(pc&9=+0&C#~8 X`||ݐ Iqs,@ G5=Yd:GY6\Ō<ߜ=( }dbb0;'pAx 3`6s$PIG1 a5a.J;>`A}U0]:lL"I s",:#lӴo d9|I(L$Q5pA嘕S&N #Bb)\$IХ!'))˘';xHIf0sR+28Pwla ftL@5,z Htg(IuM@DpO'LR\%`ci(g daJc(@&|{bqyꄄF~f_/>_wJ#X26y'.cy/$?fFdbJ;ḏqdrV5,1%N9`y9E G_YI;eZtMSdߏtA1rDܒC,1#יuʑ1YEI=޸{$5B&{WLl:lx7,acN{+VT$z;?Ŏ1̳!gL1>.Tx];gCxʠPu$3-ȯ#8ߪAݟd%FKsYK+O,|<|`qD1HxaW28+g/4g` l+-#y⠄egn<ܔOzUxes<0% efAXy,6!e3!ǂȤ xh# e;3#(+p 䅔5A/C1E2Ye Hv2Aw@dȜXyBKM@H!X J);ؿh}$#yDf^(c.YL1O7B^0݄<:>~ggb<]߁ш/>w1> GlHP~ NOCrrg"cߛ!3͏lO}!|Ea!EKjtڛՑLdC2Ŕ.5nn IxEF+ԥes)su!g^e9㵳1 3MIAw`)WrIP%&PA;9~hq0⛿7%ɉ|U>۳%NG sCM ^re&~%K;=oRd?Dyg y#|udTQH h< 3PN',#:셝PV\$y!Wl cB>k#Vv,AceLOhK)Ppa*SYȗv 7vHaN l2v9M2#Q NQ DHs=\g˧ѓ} ̰%@S d'QQ!H9\]y9r9wIπ\ @8;Ց /\$ d:,5wd@ђb|W`C KHd +uI X!'d]28DّY c&#ddfhK&/|;h"&#YS1>(VH+?2$"f fB^8%cݓg,2SFe"@].9O TA(&Ie$1.nmpn xvpE@Ā2zF|O33 NR.7,a5%TS`tDQ!BG9|ЦIХ53Dz8'J$߿#;I`'ëlYJI1\J]VIF|#?dJ(Nq' 'kx,x eG+#1R H */@< uAA&9/ &wѴ#C={ a\8qPI1,l0:`&T36 RHo S( B8 ed=J(P38@!&HDi8 <&̀ eϒa ISо@[)!.}"^ &2HQ~ PPS7 bJZ(@eVhD*7+ D*UB2:t6HglSD$=4$%ccyw>4i@HC&{\P(iIa%х/6 GS&q^}ܒG9IFeՙ~o#>: 3yR/_RU,tqgYX\]}MI'34]dNJĜ=XApg(}^I# ἱ o;;(ę4a h`$DOV_LaV>Z^to>j;$D̜U}݇wVe%랛Ҫ3s?\vx ,{OD0=G'9<Y͌⋿w9I݆Yfa,dEe2/ = Y`TYq -[xM1/uϗ=wy]8c]6Ggw9>s =QRI8z8P@B{A9Ę1@'4 u{EMHn I!LpO禈'%cMꁃ1ĥAǢAf#A>X⮄<9jHQQ<\@cwǚp2QDj,j 9hrg@˾UIPaD?v/;BHGM^hh`o5D o1 tB1S!,H@B{/ob'̣2g1gyq͕ VqYɰސSR%0`Uz T <8FR~'J|ّ +BÓAt@n}Ket++=g0;TĔ4 IP q #yzXb"\dJ@x9LQ 3I&yb`O *!Hcll! `fk%%F#aל{5ӢhPH'AZo<l?K 'B_PPBGeQMVv1]@@ 'TI'^U b `Nx\ *"|8?4R#0 ,#ɚH.Q|b(&j3S$LAA$Z! t1I LTYG Fo;ziSHA "Bb8&;ӈB &ȧ'GNNbaC8yH5\^d^+Bnf(j̑D AeHjJ&D:Dsfx& 0H2ײL@@uc! x,(`g5(jp{g8k1L1H~A;fHR%eVt.erEy43?!Hs͍l1۳OBp* BG^Cx7;X5. V2 ߯KOT Wyc G@i15xĻ æ9IinA|ߺ QsP=2wC~+V_(S;9/Qye^X ̚08 8q3Y根3 ; 4EdX%#.u& :1Xle?0!1ͧ6!f.q 뙲۱f5B '4,oFvB r&%i0<7U:dO^9xȌ$ cM$OxZәyWo8ɸx*xYH&O O5lDIa!qP[ Irp3!>[x;R޿+-0Ya?82=ٛ08,`d}`@܏/L"#YєYXyz4А Y64B20=;fsOr@&!,H͓G4NH )LHV^Uq2@k!s G4MaRG,_Vh- OLqie4 &;Ntt^}[BID&zf}g3Bxo;Ut(,L(c̏duZ$4[FGMX)T0DH!lT8|TIB~9>c7oT$:vɔd`BD|  AK@k՚(Ix"9N1ʈ'Q؛7aka+J @6J,Yt|@iC尤 `Oc'=a@s i/5`&IB$'S3 @[ GIgX!TI@uXaD]VU"}>WFDܲ8DC]fc/ C_ _~Wh 9 R_4q=WxYO?tHG\ 'X008,ǣA[8T:0& x_rQ`u榺cf20APa(}}z~X d|QU"_ϋ)؆\Y<= 'yJw숼?~lBp%ю9wˍs`@H !h(SIݒ&OqI KŔ)3/O0Kh1db"s.^'Ex'xz_REA>lЙ|m3^\,L_Xcs;jeGzrv>n'di6:'V}UsI?:aQ>hC~Z8vT6FNy U+0~,$LCůݜMp;Yvݙ2[ƶ3$mP2AEPy0{E;hNުchĶMtɬz'#Dsq#AEe9U'u+ov f⠑Gfȑe>fŐ>h?yXEA<@$>>3`8DXr7NM\Wwe G$Iw(c"&B|!X"$.[Y;1)\I6S52p=:LSYrĦJ9ǫ0 K'a:l!ͭySqḛ滔yurF_,dN?*3 >8 f>),?Ӌ9y1y0J NYz&B T}[DYgClW7(fd/2P 0WR& FC8s+WadY# " U`=sp uuVH $'wH2rBJ15y:Fxp0"iO9LG@$IRPc-oGpzh ycy'' #MNi<Q\0rAK$Yl'k$g{>hT@t'ٴWFKٽ-37(w $ 1{~/ID⇭ٻ=Bڼ,e֏g4&1la%Tp&$ew}ٲgv%Bp'Q齍S}ԎA;dCHD7 N|\<1&nij8.}R^=';R6cbW*!: 1VDGWA9,PQjF00ʬe bL4sM**c:G"@@yܛ 2p褵H`B!r|V9\OJOew( vDfaƒU&(%85 .2ȉ,AQ3~ "f3|g iQP G*w4Dl: D39Ml<<}YDSxY0@D}P8E%]KA %q=vF߃ N)A|լS?HMic!kqtd9dc*DB~w+ y {DDCɹrjXI>(SgRq tsFSg͖ G²=#MҿXT; P8@8;˾'P10=$}<@z@HyN>j2Hu{i)d6&d;LK;()/'xzVi'aqĎ@A9b J%g͓0M:0Y2  Ê+q%H2j!i6 ArUK0$ 0Hx0: =5"(@;DyNU0HNSDӏ&=2GT " e PP$C 5cfv$<<m0+ @% G2 LS#=T`tHcvDbI ,B@c'X)#dNt$%IV12qbTЌOu1DO_V PԆ""uwj;tG͗QL(Ƅ ݘzʝQ!<󾫠+A3@!.S!DɯőyHXc '"46txrzQ LepM rcN"N_0SM0HC?,\M \( \ ZO#"V&j!fqDH H0B,`A<1Ѹ $; Z 3?̰gfV; )j v}Yc?>jFK4ϊ1d߀/c F)I#$5؁|P1$Ɠ2ŒzIs|Հ"pFA&!N\!"b ++z! 4 yPt<Uͅ3ol 2j"s"tθx2'y9?&M|z&@p^NA)A.BG 0dY#挈ݡweh$Nu 8͈+%9Ip2P:p 5 D! A$9Q)D Z3d#@=$FO`BF& řnv^@npiL@ӽBd }!}"$Q=]5Rg1Y]k)&L)$Lk1ZafD?Fk$Bt5K|؞@XH9i;7YNn% 08?v=X E^Fd<"8ߚ99~ǻ ׍$%Q1yd½w"Gos\:&H*q ;LC \DF9x4 $l/ Ȝy/R\g\DL,u7$_kg)ΡgXu>Fx# % wU 1wx>d ,U&Xq{#͞4)h;#C33pS͐ +DeM'.k~*R;l~&^[Lȗrd`=*2O4_tف0N؃^]# (︘Q32o(-Vtu,x{+Oy92NSzV5悧QykUa22./1TFGN^PϪI{(}MpQ)D@; ^):O鳇SUNN"c*'E!Yl}]7ݗd2fQf? >%YFʓ[%Ўf>}6;QƙiO FMy|E I= L< 7`$3"xҘK 9@(A=sd6"pDGT1-~YaC#y>h%8?B&\q#HWmbgy!Q3vA8y>[МE x| U `X9ڐ87lCi"#|%KYW:IO[4Pe-FcG0?afRx3LI'v0T8>k4^*!@$h9'˘`\ k,4 @z!)59 2ؐ`μ(EIxf0Ց HQDaGJB˳YbBMh$V @x *Q'6A&LԸgTDL&E"˨k2*Dj$X#dĮBA={9f“'<;,~6' :ВB`{=ٴP9ng d!?|qZ&#ID]˚Sa6)2%Ⱊ$)s3'>`h|M8ǐ%'cY8HՌPc F#$Dd- ezȩj@GۀQa4f'W}DC+&Bz Ot媰HGMR .w#XՌPCrɠ|<8I[,thyB&96!1B/1>rEE`*Uг НD$2 e9VR1)L)- 2B1>X!dN8'СT ME(.ȿvxŸU#@U(QG+6|pygCY$,:Lcq s  @)ZD$rB ϏtBu yAlpMkV`2=GDB`|Dݷ$Bx~k"TJqcg(5W2 <azT9K8LD E/$2B賾L, VJ0L! >ݞoBFh@J幑\C+ oVp92>`5"t3z@b8! NxTķ3a2b>5vyV#+t,d eA6?,Ϯ?TY>ʨ՞!'xs^Rא!;H콄L I=}]'m< 6,l 4n\1!Qt^I.}s`wܣ=<}6I˼y5wzﺁ1{>8?7BS v'dwIxOݒlxaϯubQC/lLs}9d;s!'LWcXxb`3eOH'(v'D:n !H\vLNTa{O4ӥ!0=i3T|~T3lH0gyy-/G|2  LO~ޢSI#=TLlЇ^Wc^Br^|4P9D L1CUR6T0~~D!bN;5S9DN$VAOєI=W呖6gˋ] ! $O;F>"O[a;% %"5TFTdurx}Քa@ɈVt,88>RP q|`buf !ϊZI k<-)y$6b4TsdKꀥGQ7pW{\@ǣ/'B(pG2OI`{""O(!QnH J28#j94@YXxS7ORL+(`H>8`K\0&"srSQ'F&=V `Pr?GS1gjxNY}ҟ("K"V$xָຽYTCݙy(y$1Ԯ 0ę'GzĴdʣ>8tO3Y!y! 'Ш3ϊAcL '&C$x&̤ /UEILk#&$J" ^lcHQ?TzX`8#pq@@@&V`\ClDKGX)PzXD.!jbz8VDs U[@!&6ZH$90TdO YR8&u1HΘAJ xO6pИs(r@3Dk & rF=US`/<4dFT/.XaXkx`2㘬  L%C lO Nsp),3ED'BO=V3\hS@W{_.\ 8DiGqF{7P&X HW y%D7ѼqY+=~nŏǶ2c+ be֢e1eeK 8"Vv]7rH)aO]J$T(3Qj P,R%A%4Wd:b1"B|tkYSY H'9JAdaլDrLʴ3Üi$'äf-bf%Ae% #LK; X&F9! $480 $#K2rXy) F/ jC+d+fX$ $w>Z'$H|W ,,DH9?T%8p~<d]fx"E4>"?TɫW?w^2SI hl~,$z֣$fR)e 9R\$apBv;'eG3# `fgyCSL4bL ʅP$NؠP&Y%2f_4 Xy9P=Xj0O5#JOp*T0vGPH/Y)X-!:2iH$DƠsI0BYdvPQr?tA !?5ɒHdfgHhP{"FIQ}x#9^_S8&|PJpY#wT2FdTyNC(D@W 96g$FK43AL{X`ߪ5 e0}V0*lVW*4$/$@賄LeL',Cp:'wH %@AH,zC` DGrTyTI3[G[fi!Մ2Iс4D $D|Jp!DN] $q "|hG2rbq,RAIWa$79D`,Ab!WR!6rS ՝N J $;HHA12X3@dK2:XI*$I8*bl!S&ZI.0nِ^Ж`HlH}\\ H7M4p}Y(yunyO9TY=ZI">m5A ̤v$>(K_#NO$ySy#,GD:0pBxR(4ălBr2yGCc1&OmF0qjZ<9B2\u/v*y'&%T쎎, B q;L=D Āan0fn͚⁃'bӹa}B69 6fo2B' <=RIC7=Pd^3D1iI9(8Rj0Qkɝ}e>njb9.y?wou\YF#\^u y:{GˬxtH!#=x99R !bg]uq=cW,888_>iNS4c6evc٘W|+ą3|F$`" 3b7݌|rih ^TK))3?Xg2ZLi;ߊ#Y/1E7ՉeD13#œn@>vD6}x'*DG^tFϋ85fFB ꜄zk UdP0T.f(*G:J߯4䁃Te/! mB `$\eE\۟\V'`3hc504"e\8DIbXGg% GV:#`%J9%+LxDģ8nH!]ǒ#,WS/ 9'D[ă%ջ*4ĖM: "į$RG!s$9N=J &5\$35~<ϊ! & (Č?97isŗb,d0 `NNBfd`Rʱ(Dɇ#⩔*jc%aVE8ǖ~,%0{V3&$D=T@SeLA YZ>n.^&##z%~a<0I(:%FB:UI Dg,0ƀ] HEXY'60H$JKŽx +M(0x,A],FY9 tZJG7 ;$'@"J"$` N@PDIȧ[#sDlȚBj2J RGԇVÌrXq^ 8@ :2nБC)PLJAÍQ4NPr$xґr)`90")NAiݧ]D w̘r8Q2HG)]|Q(3x>JWv*hbMz>7lLLy2RN2;2IR e;8xBȰ6$8ݏp!^Q ('|iDzjT!5Ǫ($52aq`'!P wem 8 Ǹp&yr Q;YH#H.dmXr@p)hxBp^Cq) pj!Aa39{Ha:7t>k5~ E0$4ު\\}3"AgQ4osM4˭7VM#XLnJ@X=JFTNrO&/,+}_XB ,`Otb1HqZb&_=d.K+X`',X1k0G$ǿ>IFG#, o݁DRA%!Iɺ"Gͦ,#gUf'Euw2q At Vs7#P͑ ޣ]R#lM9q>c ${ HqgD LJ |=盱=O꼠z'ABxgTz"h56_4!A)s\P.|Sw}>(Ճ30s/\k~/_$/Lfw #YS:3,qTSyf<LmKyϺb!(`I.L& 6I)wMǙjR6w|YԄH"71IAYN$D<g˒9u1N_)*I0#Pp&$rXD:%_dXDF'uy *DLw˞H+(LD˕=S\݄&y|X3fE% q3H 49A9ВB zp]$pOK\A/e|6@%#T A0 C|-#5!4Tl@%cCAJ'! w]>ۤ$99H}QHł#EkK`( `;)$'c)܎n[ C.z  a WƧI5%9 HeR4<4ۃ@[)y^I%t,̒4fS3"q^J\ h s9!2;X pd좈*d^ډy=`O0Dr)%H$dM ) Q,mr^B298 #r{tv'p AP\d rBfEɅ@ԃMpGI`C?`dN&@Hc,#$j\4D5guPl^$6<,FseR^F DTyCaVNRDu^T '| Cf9LI&;3'g IO[ÒDCdw2ڗ8氧!#8`fϷ݀eU7߂ 쮉'0E_3]o>lg+scwHFBy9?sL0dCO'~jtJs ?C_%P%yH9эBE4Pg\Pg$kph81a1L"( h2"l B!ltIՀkY8v!Z 'Hg$H,cT Q!HJzd$U݄&5G5y[.Cr펂! c,ϚBdɟOi焘~*I918&I@J`=P C^p&1Q(%*) (%"axdCdx ӯ}Q,/,@v`E7I5D Qn؈~0: <i ۬ɂa l؜X8Ab1uSR3"nu Cq?5 &Xy``ٮ؃2 BvQ"*S'g 8?5҃UbR8:I'BI 6zl^^>/xĂJ]5 SГ4M$2U$^Oy*`L94Ig`.-^6+3D@9Дz3UdΨ $t 8dD.`JF |~+`,`pwa%8HA G2Gg3D罠HH.&GJ!p`B(x ")K?5F"d)11OOݔssYIDsGNHy8˰z檉bYg :Sad@bL}و7ŖwE:œ}qT 3G4(;㯍=DZr8sYqYv"2؜df596%]O`_':*pS$q;Hf;~H5E3|V!$1ˍ}T#ՉJXq,@"$8ά!% XHq#bDܓŀ#8k͑!EDmESX!$+g5e$C5XI,# '1IV<\o<<n9\IN\hf<1ULG2fe vLߞ~j{ mHOwP0qx|T`RF{͞9瑱߻~(Y!)2Hqwt98$39pݞO6wl8NN?58=0Y%,(433E1fq\Xߤ묱P}RJG`kϟ4Sq t/$9_BFG3#㏖$(ӪaMK&IJd "e&wP3) ʌ.<̺J` ʓ!7d;Hv;<2Il44&7A'|2g|٦k =O 5&duqa {D2gS+8ЉEx(4aAyH G}0'X! ڟlHyqFDP3z* H rBdFPpoŐpVРd#f𲣆Kۉ(2 $,a4X*,5<5 g`7S > B< ҭ'f`/=F*0F}Y # 9*Bj1 "xOtgh!s;?"N ,R0OP<Ҥ%^)X$6,#dvS#|ʼn~l-F՗LM@ fw$&y<،_uyM$ŒW>_&T:7hi1OT`%t' ݹs9e&7뫭yFvN$F&c7<z%c5`"sRIP9F'_U}Q'.<LhH@W~*I.9<8ۑ{$]~&xx㝒fT~lxC%T}sAPIa&/]?akq\ppXy(z2C^6C z#nX<1g 5]ɹ9EǪGaSd8ڵ'o`$2M3y&f|3"sfQ⠄6Y*{ 7C# Fvo[k DJ1 f80ㇻVFY~&(> F43 =q}2N$ee0a?)! 9C 2GEG)Dshd:Pc7|>S2h~|Y( X5vb%U}PCƠrˀ(:dG`Md/=\t}نQdϊK⍨V?-$IT6Ӫqeg"P&e"vRIGh H1qaܠ$(мcݐ H0&dIYO\Bc ^ݏB7<%8=k!rǑ $yde h зDL^؞찉̋,n ,<>aHԁ[%xl E!+)&c ``>( "'G~h $b?* @C)Y,Dg7L&:4/4&g9CAaݝ !92I\Q bY45G33x5L @ Bces̲Y̼FjP6V|ge DA97 ɘ.yG'B90dڋ!$d=lj͂1deUErER )s+5@q"IS0;N:pR*"Sk"H8$6T* 1 &b1 P)TXÖh@HAR-b60Pi +O0D}& ZQ%&bdlTxR2k9w)4af E E2 pM}N=>"rعDM1ߋ/(6,$cb "'R,ƤfPFm ϝH,wIS[kW k8 s4K@%2( ܟ){ p F8DrQt9E\}Y>ąH^/-}\SFpg ?W~bL~F>9Նbu&}ŀgu #EbY;-HsDq %q$UNy*ᇊ+ɦ!ϋ)/I.c2X8{+0 oP&ϫ +ܚ#!=Re>=Qq`|T@FzQ1I1xA<,3W⠢F 幐8$.5I8}؉ '4z7p@x$҄+9T8C"xp8G:DNufP|y4"`ǘ3 Π*{,CVI=VOÈX:w%>JJ2{VW#TK~"NUd-f2.<] 4~)?/RY LFX!G,:{i~(ϯ7}Doi޼R}\wTz.Y&CPw|eG?р#gP6H9Ûb$( N]ut(.PI,3.Y3d 5 (*$9_X] v$gvy d3d%'L4yֈłQd͐䰯3G#0="%Φd>DpK>(ぱ8{ sx"nJK.* ㅞ1x,4J'xBv41쌲aex洋QDҴ2풉Ehx܀]I.$af[AfPx{ʶ z%Ɍh4a tEGsX"*t1sH%$W@!`$.c@J{gLY$s4C $! lVW,WS d%uUN3AiӨj`C(I 3&"M$AՄd1<"nE{ƒDAkCLƉ dB" Ds0 AEYD(KԎT$O#fY$D,ļ!@2<&N"Z$eze"ɲIB;yPKe Xȭ,Cv~.0#.: ZF/$b@"^$x낦A:R>8sy>J3]P^i[qsDdfOTh?-LjY2 O^ؔՄ̸4R>Ӿ˦ վ"|&EϚ"L⼸qnRO`٦GzI滳O<oO^tuPOZ?4H~/+ K ij2h& [u $<B>"Ȟ⻓/HXpEYs}ёT9*?rT:k*GyBQEdM .Gb%Z@.|$rzy) ,lc({@A.pXJxD |*vH1T 2G keH#=Ne.)fHȘqT!01dN+3Ge'5eVB Mk'K1Gp7Dh|ԄtOl3׺9$$%?B `٘4"a$@Qsu$d&h8*HH*H : F9GFIt @ d321T9B"Dv=+R@H\hI, g嗊̴&"Q)R@2B:SfX3Wx1b6o Ha+e@=y@or "&)\>kDqDB F5Fe]s/W'L>㙻 nl N\}.f fs  S^LZC" T$bϔ4 s1?k8H|.plgN " IȠ-2Xrv a9[(삤*NNqĔG¼ldniNQ% }V dY/QQ)T@$bHȒe⒉/PXza#Fa8R59;X#@L0iKPFdI/>"\&,C%́_ )!+$),'Tr/`{Qg(sQ` dr8/,4]d#?Kb#Ql%N,zFo# fvn@ u(H|݅!aA&X FG^·'9"y'X l 3 4"5hϞz4dX2g! TtN>Ԟt"{&!cD\XrA5[?cvzY>ɉSln}o#cBu|5>(I#z9'dGig\݀NBx79z<0]1&8ba9ў'X?ә/ 4IFN&Yߚ2=uy(v?Ω`bѐH&qiB8\rv9:L3X^_6BF O'3Ջ wDHn 9f4=W%0gT9|>k5Ugh#@.JaN2 &n"a:yL' rD3:@'XIe  2jm 3 9 l%U!|%&c&!&$Y$Hs'DɕǭDt,A  +-3:Ë20҉(ݛBH#8)yo \s,ф-0#8KRSņxIG+I+$w+&MĐOAu@ QUǧU30" a\ԡj&œ#YF$^P0$ΠǬ'!yܫ:t !'Lrd:   `c4K2cQtUgs*"cLFC&]ûR$F9`arrlˆfdz2L%\sSDg1,2cɶz0d#tpM+@%{>c)x<` We<=Pć'NN\(9Jp)sF3p..Se*g0qpQ Bc_$2 x|dIU =5"uDayp$D/5-FJd#d6^D'6 Ge2}ǖN|*g[DCkۖ^R!9~(Xz3+RNsS͂XW[<g+G*D ]uNq8&MȞ0O|T`cI-S Ȓ}R q4 AO!)tvqĻϻDwYyxɑ.>8 %,*㈈"A=Rg cXGcHPiH1/rǛ30tLgopǏTeDGI89#^a 5ns&fmaaD8z׉v;pȉyӰ~,<;`#Ggd=Y`$Y Z G<G__O.lIBss(MleLPA c~fƺ<;Cepe&ax]ϣei>wWyk}O(~1YXp? dMɘU3>i9* p&C;;f *Gl#łuZd #5dϺ8>,Uu~ZoTz7x,I#B{;^44̈́PwڟfNxω{!͖@fw"ȄF ;Lrddϲ'h]:M2sX=ϺFWtq_\5Ɉڼw͉>k##OD OG_:g~vMr|EtezA<HcS<]!UUr@L JA/0~32%<6 k$ ԒFD ̲&x+ (% d0$ 2H#p;F")2;B`4ϿU))'@1?䘘(Sĸ }ф\=jGSH95a ү bHDz6U8,0a朚"gJLa @'$lE ʈddNF(!vp7@OdjC,u^#%2Ph$hȏ,u .(WR llUI7Rf[v!OlT*v"Ƒ`O=f  O`y!䱴 ) +eʂ^4MZrG'|T5#9OtQ!АE"6N["/TFNY.#쁈`S/(ɐ#dgJHy@e4))/`42"f$h.akgf"MAZL:ZS'L3eOha,Le3?%Yv&`d^$g7MνQ&b',W'T#usa3f)<-l?nLj.G\v.܈$ gY{a!$(Y̘}8lڢv3ge4`gNJOiefPjUJk;9eAI1x\ủDBL`rq/(|b1x^<>#:CLG(AGe $';˞c&'$]d ͑b쥐GC! 2dg͐DMNɯTNcb]r ~&xڑe66#(K {Y.&gTF +熋<9 uN fADK2| 0+?E$`do@X&,9 ܢYD)4 aB<^) 2'N\E&Ng|a7N8%D9DHX%> JP;I 6!Yi'9ՙ Hc11q? {`Jr0&b.`o1"I='MplAK G`k=폙*!͍69e(V|XGSqHP0`*!0?25br g3@L2rS6 b>wIAK>N2>tj /% 8rF rF:Y,ϕ"$8$7HI$؀4^*) CcANH ̠ؐg Y=<y$Ĭ8z`d%IGx"c\B.87bCnQ/qI5>"+q(;dwP͈U5ɬb:$1x)1Д"SUPɓÞQG]E8LmYXuDaA3PmX)( @y4"X{|8-Hv#bNpXe&O)C"q6<ӃɄ'8y<">`8:8SB^|OYQWRg|3Cz~,ÝIz1$;{<͏3r=P4pg?qY BD:y&=#H~ias'WĄ|S0AyULX!J,T|i6LB^&9SۂW=OVE8unɯw^Fwbr,^|'g}x.Od#$=e"InO輄rDlqq%zrY '#&=5:4) gWxrvBAagH"WTb!!2UF',x9',#b"]88h˘41'Dڂg05υys0bidCS{q!ǽ1<-q@S͂dj<Aэyf2έ6OUH%k 5#՘(#'ϛ2:,*tl  B>f84"1$3RV '%ߪ02?\Rby1$ytV@P+͙U'~^2;s1g1J/g&IQNtT&S^cx {5$Q$ =W!2! VpS&c^ 3nɎDƎcqS+ y?vFTe C8 e &'*aRpO!i` ݌p8 !՚,hI6$'/WJ,B XBTb%7$ G&wĝA@\]+ >%p890TBvx%(8CC ]>BNR80D< ;$X! &cVu^5dž#:_Hi g5dĀHJDq)>,DQ8X $2*HD6%c3;J, 8WN1 M`-HΤW H92S!ͺBO$$8%Z(`@G9d$ p`>h WĈqdv!YS45SfC"U^@0dD0SUI{p}124&yv^@1GdPnD-l:j zˣ'.Q9=}r'"|JHt,NUqt&zHdEa]M `vrT8GϫhN#I)q4hD@Nh(=8p 5e A豔@)3yȑE CB)B٢ZBxl!#JAJ(Q%4z`NIgRUXti<(.G!Uy+>O ltzEu!AwA9x͌qcfS=|YdG9Ebf t $nV?gł796__h cת`gՄbK(# n>Vu(٘Dpr5jp^j |Qsg9,"(;:^b8 !*,Oy@V D+*'HT tpXxXpadtT#HP!Lf*v%+IFiG:줇Ȭg%8juS$$ CqX(@Ξ͓ %b%ZapO3i!.Te_C.Ѯ-CC(T<0Si(7 /#g8G$  FGR| c$Vi3|jtq Qw$Gs(@{#gpA@G@=сeQ30 )2<5& b ;4!O @ #,'@A7Ȍ<>@rt' ^0֓ bjSKuY9ǃJS]_1d D3ZDP@N{Y`'z`cŒr[q'ȇ7PБ9ߚ:szcEyy/}0$X^Kl}^ԅx5,AT(8rg ?*'qmB>l*yxFf{gXs<$QxPnApcL0aH2bg#O ]wV~*D}dY;uU\R PHFv|Sr 25Y\aBI3)=ET:|?ϊ9 UdC{wOqgyExX~/F~/OYe~9ɺ P͘XY<1䍳됳\yTĢE\&&=s)3e ˉx݁,YEb|^.>),/ƽU<ݸ{yIѝr'XpN.m\|'I1]<93>,K}.Ol1U'좺$Y%l{ zXQ%ǿEX,eLgt>Ta@NЎb.NJHI&DOO40N#"d(J._1B&jBHF|!I6:"$9q1" K?<>k,+Qv)Xp93$< ?v`;'V&䯈gd9]B $c0S0w2ED`+MU Hq2A 449 $Pÿ;g9r(r#pPbH<LI$>O6` IJ;IyʠfXQ(#2cc)+'R`I:uC ]$)8 S0>S2XO*2B0+UH1(ʲ݈jd ÆE®B320ˑ-9Cς` KjA cL&Ch*r 2A" (B$XQ@{=Ѡ kaDڨ@㜔yAL]p h/)4"NHꔞZ<:3HL`A\0epw90{bf4r4v+ ǣ:Cg՛p zWh|YE\[R < l!G3<$ptT#gsIXg3,z s|uYD \,Wݑ(@d^ũ u#ޯ $Bg Ryy10pO|EE4l(.k"uZz !X=869f]6 `<6x8橵#)g`ໜFjE,z9fd ⁩"DA/@PA$#y'ϫa#8(^b̢XHTDsf0w; É,IR R,ǩ`,N}ts2qXA?炣Na7Y$梅ȀDǶ#j2'S}6F&b&(K\3=\e9=l9皹@G$38|x.p ^ Ńc&ANϛ{yb,+@GY"ϒ=fRWڜs-dϭ%b@\8APO^hzd!G uaawX; ϛ"x?>{ϻNg-S XB%f06|:G:=u"RSdn.I+ JXsՂvȼL1Op9h0OTHc6$ #M|UT0O4d=4RAp~{T |dy, R5気T!%9Wzx !q.(6&%dן.OY1Vcϲ""-T=&+۹'\8+@A/v@eK.e7)9>33g3"X"`JEI `{œBm$dt 1IzT8Hy>{)ՕnuB8 y&"';t9 !ģN,dO)(@cdRT{C/7%,F  Xe HN`@ 2 di10`!#Z19ڧA b9LH@N1cJ؄M`";4: A'@Kɛ"Y/B$Ix X@^|ؕ]3-!/ O3 w*r*D>&JGqg!3yr$Y^14\I " ȑHC>xUc`,jP4$B`6k>4CmYWCRFs㪡dί$)A$fZ̈&PBBusG` Bqټ(8ɱ P&,U J4^fJy](ILi2'=#4:Nua4ݐ@gjp{8vq'j@ ͺq>v\"}5P)a>\A IVX4wֽOSX<&<`L͊!Ar`al{29 0 ʮ~>, O=EHLdFagq=άbXAB2I5ѽ'!1 q暒,(Bb9L~ FP'3I !@Ncj lj:{13DgNo7 ,Ba?験k=#"3y(n50,f`z?7+!)7?*6t+t{@ >‒l ,r >h ?`=vbas2ύ1T-AaBsVBhλvk`Tr }uPG[): @G 0ʘQ@5D$S|6 3)m 4 !޲T fxt0b@6xµ'`$#!.` рf/:`%K)&k:o8@P2F!PHYd22"0iݒ RC< Xs @$`&DY&5[fhB {LY 0v$h I%b 1IpGFE% $x© ]PvN) L͔4"vs#J1ܵe)?+ Nꄡ Kp@?51F\b*APN݅0\$#y|!'|m E*ag[xSˈ/~'18l5IBȪD,rx|thʄHJ~cH&*!#$OEqa#O OtP t\f@ e&v x*&#$N(ǑM:f'6$. |yJtxȫqJV:;19V_T:$ÐB DXي"e eINfe`&2R#BO,ؘgcT^$010!e,`ZAύ pЈ2<%|KIBÃ瓸A^͆DrL_4y! .kNycy)DŒr_D|߃j@@Y%=Tk;`csr |K1;O,hdpˣ&?3)2cS7`Kpȟ8!e bDAĠY4j@P@ת!BO퉈x=z?cM HNEт`"bsܮifyC98DaUG|N@Y >^b*rs%X&9O% N8y?)xw6T 9*DلU}\ϊJ⁉Ł,Q3Yd IQԐ~M.Mhyؙi2h2'F2SȡS3!":4&sazoT$qG̓XOG)G# PB'k82l̍%d N}{Jx^vjR8'*B`Zo_2tCPzxY$òN}$/݄aN|{<2Nzb4;\T,.]VFDR抄gfXOQuDc L!ǚkW2i d첉 ;md:V XAēuXBXEj։4"VI}a M&`3b3x*&Me Di;˃⊜O"oa%I^7MzvN8l%$'Da'iI Yٗ;)3cNT3%G+> `$NLA0jFʜɐʧ$W+!<ܳ$K(OaXS>Vjґ%%, II N$+&0~TIa01;*é Gi$HZ*ՙie2zN4H)."=j 3D0FC oD؃TVMWT$@#Jp8L*`I2x2tL7([䌓PYa dbHs9dr$ FX(D$ف(9MFD5L)QĄʣrɀ疐@9)0ͅ'OR,]c!'!=G"SȢhܮȺ 4ה3fȞDXLG gAD0;9ls$qtBGVO ( xPa " )@ xy8JHR=wDDl+,^He0<W̧td@`T"$z<㊅ <$,@f> ,`0P>Ň(%PXtIɛT'Yy.N "yû)%yplj^fpAֳN`,<)9A. ,"xeS #" K12$ˮ(9Cp%ΪHd5&1;e N)v G?T}?4+@$'8!L@oD$<*T}e4Q`HHIJw g ȔAX#g9 SP G;~D W %p#x}Y윯3PU'~"@Y|^%"F3 8͏Sdadjr(HB`BNZf̋M 'fDJÛx=0 HtD1 . a&4 e0bot@/1#3L T{%?dI2t޶iP38T"|F*̤~8`]<:zT3HNdIɴ 1q$l U3Jox!*C,g2I 2аA[%$f=R(p&t0M%\q2QqɦKc>aY6CB7g(Y^2$u*]oT0D6: pj 2/tGjgKǚ ,~ߚ)/Cϻ k6A&L<.DC @OdɌxR&&C tg<1Ͽ583vr\yC,bO ̎#`v6^0<>h$@9Uʄz6S9tCgI 0 K! O: 2:c=i$հ]yɚ': |eHI,^%<YutNGr*{xxB7ĞW1΢w,=Pcd12T]NL'V9!2" ,dyHO[@twa8T͓Ht G@l{=uX'N"w9Ga (>8nH v8YbG4,UYP,+Q^sbB #ywc+axЪC?7@|X/0Ojpc'cIcT2g>fq܌@WfpF26$=pYfǾ"5P꼳<3` yG'ĽQI3n~<>;hFxՑُ7@e#":݈;S#(\E6s)q#5HmONY,eחS*su,8#㶱.8K$udRA >",.UAPYDd@p";}!v:oP[B:'3ʏC:-rJN;cpt ~J>lҲ3F%$y\ ͙#gÎ x-՗*!6/({G5rx\pd∱eOՖ$ gp"9*,F,2K*#yX담H@:Pv" *ɧ5xgh 6 9<$7]t0vdD8Ii."OzPU$M?V?Sz$fVHS+E!2ȸ%=TfHB"D8KP&PpO݆H` ZdII<4 LFAŒ;s&M.3"c j ^PmL&% i/l孲Q`%.T`T4^t仢 $| Ad=̀!}WRK%)(,бOV #b8J,nmLeG6x ΐ||$F5h}"Wc؀!%#+%%v?"vzBPI"1/;D.;Ac$'(N`NXÃD3ܦB{_'h lC?Ddf3\6Y,N=5DY< c[ L z&vY8]~y/9 ׀@gKC1!-/M1#za?\;*l9152|Pɨ,#LNךr!rX^PUfL*1250AWl>pW`؄g9(h $<IUrtc&Y/7% t{w/bLyvI悘x뗯rx/+#%qv%laT`NOhHLH/Y椬>XEI>9jqɜӾXν{Dx?͝_c/;N7@_T8CS$ǯU$9$Yˤi_7 _Spt{"7$5 2D C_+Մɭ[ ςk N4WVe&0qG'dMAȝu<_pGCs(ru# L)V 2w4ɬNJ$wߊ營g猤v\||Ӕ|'2v]˜L]T9YCzt},A 1NIj,D~1Fj>W`0MfLRW=X/d' *P`TI s }$&]6 C Ő&PY9' J3ˠ $ xJG $Zqd9$F~J%F!^yAg f'DN4p,Ϫ1]Q'D!Q8ؔ`dn"*kp'C3EbPIqB$wn"B3]";B˫0d5 PLEO>dddGI_Pj1Nһ3DWA@,P0+̓%(]`![#I6+*JԎXI$"'? X\)(t„p B /% ^z $!+v 4!ݒ2؅aF ʰv+5iHV$DHvS)Z<3%r % `0},. RD #*$A<6w"EA(pԤV `h '<ՔBJI1 @uS@)2󌜐:g/$xfp“B5.D˫ QɃP vH{| (H+XNS^)fW2~0LDG%;`DDmB}g|EQ x&Y빬 &e6~dj!x狿8o-J.[pQ(HYbRJL6B @=,PG3L&Wu93yI$:T@X`CaW34K!#aFK,1IdrO}p&b(F-" ӁN.C]ASȺ"GXy "Zs[B6ea*HdJFUS5B wi2<mxVn2##箨d5:*C$# ]!̚RT3!u"H+n3(V C404'n^V9a#9BaqzfsNs GfAr;SVP߮œ0gVD0z4J;EDxM$œ08}~I:@FvIdGcILa2{GClN`+ =y) eAa`06@B̈$5#퐑 ^.ěOg2Cb怓?Ȫ'q݊-á㶃IbRԙg׸l:__\YfVPpT1Vt;udd̸OQ1 Y'Cu\T/E$ @d AP~l(1:z4G˭d\x׮G1\<˜9 3J!y&ꣽMK}] g0kbrzbgy+sIQ"%^\04OaV|\ˠR/)l1!4hwVYx!> c>(đG8U!JF2yAXy0%'[dIb9Df{H$c56d#XTgxP(2r2k3! "G"}u]:zT^p}awE|{sTD̒1^Ӳ81D`| qdsNY&8|R^O j$Ϗ"#3۷OqRX|]?uTbGl 9܊q`8gyj^xYs ;?`xIǜi@ńlo#Ֆ{8]ɏՆ$ye!^C#XI"'y Gl0`HYϫ)Q%Bf2n?)\%|''g2#<$8AICxq,sE̡,_[  |юԈ\PC$yc|s*G6Is0UdJ UɜΪLbʓ'TAp$9#]H %̑&8Ď5ȑFJwJW;9BȁX r!DJ6H8J*vL`91HJͩxp2 62R1a*< <*@~(0]PdJח `@ Ly4e~@ #u T$F:6U`: .%rO=&'`{T .,D@39OvHXyTn|QYl!f*e6sG"> b|DX`(0:Az*@ngI9q%=PXhp'JaMRX @6p"!\Dʇ* gTU)Haf?"HMӉ@pX_ ]8IɤCTM殌`9c06Ayg3N =xl!D7S4I^K3XHD#AQ2d5ġ$kߺtf:O/mQy"Pi GRp#ZELNr܎zЊBq {fPPM,(!@ _U<2i%`$GB]! *Lȩ94$Q; X#:zLg'5aH 8!hNSKy^:&3*wFyH1`C$,\$1$yB}!ِpL .SȔp1Χ̝Сcd RAoFqb+G"$q,&8 !=6tRQ!̿tJ!3 AXL#Ym= |̡N@BɪH"x8I9=(Nb"&D L%2YfypU $ae<Ә6#lQ'dx3hd=Hٗ 1%]1H4T{ (QAOt" İ@ӛ0F1X%X=8NW¯<'x~6̜ =KD N3 qQ#4NF@ 1Fr 0,!cADyXw1 SV!O1v.B$F G^>(*@58T®Jg2RR%ϧ)oגrhYgsceBDd^A\8l vML?'RR`r< ~ ߖtXGAW92|,mP(6Qv )ٚ:sQJJ# t^!AS#hJ9z7ݔ`3 ^ya'뜊, oǪ(̐14Ay"L/ UNݘ/>8lA`8<uBRY+wǛSƱd*>[T^c`@g~>vĕ02o$9̣ ךN}UTu i1g?=V݀5F{0˽`̞deI>)01DoT'9: %Bz5gxۤODcxy)oa0~&84=`@b`Xa yXN?4tY?UaO,}G٧&{Kg߈dQ!z ((xՉoU.b )rB=AgɣS`QJI1]~,Bbli'uCz5JnV@xr|T'OOLyQc@hH!∞ŏP!)g'0 SI ±$45"aI#V%FF@ KaFKq wHHKIBOR@Nl3h 2(椐ryHÆA9۩cp% d̓!<9:勳f(I9YP#oYhNj<3Q'q*QP& r}t)!Ig0GɑCa>MI/c%gEJTXz wDOdp0݈bGDG3HT3uQ2@H1c\&=<w1;5t܎(J8_*λ#Jz]c8ya1\C1 ׁRN7O ;ƱīU(e㘲C82QÆ\+*C$gy>,|%+3l )ϚKГ`QFA0>crXSJe] 0x^1H4;'w]ϓ{e!&iQ,A%yH9Qd@R|F;0N|C`S>zT \q/ 8"!~` 'xa)F`YgD#e>*0ʀ^JPNgVEx"2 ]5L tء%H4IRBm`Oh !-AO:AABHp7(v 9DpǙbcb7#&0o1A¸wՌ!X; s#$.Q(B^}16~l*"L$`)A36@JAq I#  A\2eHAd/'K$dI ٺyUz, bW8Q' UdIC> o5"NW0@qX1=85rL+P2gGdxX Q$!>0D0;$6cPJWzwO3 s`` ,9PȚ#ϠG#Ք,O`p(J0XM9Y(dg_tA8K8zEP{J0!362vzys0()<9(GOD5yBD&Ir4#BksFtY){y$#FR!7 b\SDe6F`(abPHG"p~"tp)x{#+0AHP{F rAŚH2)0y u+o_h#H @Y@?*pUL|UL0`1ٔjd.Rlga XLY |tVgQ퍪芰|Iŗ;Jl9!HvHĄ"_1:5FR@ pUutT2Fy,HE;<{x>"dq :hЌG}U&LO-yCfb5.@ř/WJh6d!9RzB c:# :;Pv`1^8 yic>rFLg`\i&Aͬuy' )Abv졞u9dV/49L{U zu_4b, L#%11CeՐlX1&>n2¡cǚWM&B,+%郂^<A,C~d`!?kq"Od&g%VY6w5D UO_t4v7`!3yU˒ %ٔHs6 3C?m"'xL^I=Xsՙِ;s=ȧJ Xl. YؖX_BD2`=svu} OC񾬠`΢̐s)1汯=B+a$HHS + ˉ$yt)V+G̈́S X0/YM$%@H"nc\%{+XXLa +"d e1x9u0턆}5ʹa5=^d|zlgnp<&I !U6Tfb\#Q&A<(,@ϛECd%!zhB1dueo$S$"baA,Lsۄ=5h(3wt?L7zqPƣR=3DK,L7<ǚC GYGO.!'HHI#kqC`dMP̴B ȳCNQ;$Q<.#EO!9=y oE%!YM(Ƴv|4B2pD(@{qve]xxW$'gT@J!>>':>wkˠPG9r)9 a{&'c)~?w JlHד]GXeĄ^A}B)'?V]^se$_L Ħg,(ĩ^T4863V@F:x\UDN@+G<lcs0,#POB:bIO0@@H Du "Bmrxk<2m LbulQ25R)T)T73$8ru(TD*fMU80:Mh\!AKD)aPsVb`2N >]3` Lt&0=Q^'NP^\&=O( ,Q1L89gFi5ȁTk3CK(I9f6G(X:y$CRj,$E-IN9''ݭLDJt,T2 ",It1I^R\p8 y2ODA2cǠf8ҡ"""#I-cM z MIφ$y0 zH4@0,P@S$ӽR@X= v\TN%=-QdLdHEόu5:NB2RydYD إ?fUY "X2\Q@L5(`%LLQŚ1Hl#3ξLH:懒gpJd!Ai'g%R$}Tk:ܖR|zQˉ)RBC`̨$EjtxKĻyhլXf,Cy|$@jpk*a1@CPIOPc8j,StD:{"Nd' NI#kJC T6gFG cC,a 53+sO>>{⊒h I,̚%>JwܑG'A2RsM se]?[HĎbv}yBy08E@O"JĢK/ڔp7M@VHh ~$rR\@fVGNȃ̾IɉC$I2 ]Dq9cR,B_"$9)%xw=PrgEŁBLR:jȐHG=_D.L8F׮cds "Xt8b(Y#;kOTXs@a^;$g<1@2x*3},'S#RC:I=Od|U >O(>cy'E;sP1;Q3<5hd)D,sFrSI>$2;,w`7*f_tbq*$MH1Fbtrt8$sVJqfRHd&vwP 0k'^o@7WYr\&uԧ;Lq[N[e4ux=1-t0s)[ Ni}W Xs͒0˿YBlDwqe8<~U(D~؞rD̹_4ϏȨvB!3K,<2y4s9U& =w$?Nf }M:G)ryvxNj:wy@#WR'}dȖφOtH>(rO E?,UXXW;$T!b'yGU5LK.;Lu1x#lNvS8c/e\eDRNu䚓yĒ2o6b4˨hH;q/$r<PZF$9^8>G&dzoDxx2!$E|hI,0>͓# GL}ԼX Gvcby<8a*c%q$>*@v'[32' *2چD$}nxgRS'J^gGTl P%\(O% Bq㾲:Qg\x1RapM޸bXv|Âw;9RpD["BHHD`9JI8'`odfhTB8;#i'O,ƶ^hG:!iℬ"f\ !#X ,!ι*N xؠ *9y$;DϺ%^L.# 䱁Bh2QALҌl<9*z4 8e82"yC*)&Sʼy >~&|c>n 4@7 $AvJ1Hp`) e(1[2tIBJx4T1u03hd'd;\C"hn!0dpy!K5@VE 1aHdK&eϊ D06Q"xI XBq:4p,zg c&W1Je4^\^xH&L 6pp` 7lb8>x t xKD5A "RqQS`Di]y{KP O:H ֜ DIYzѐyxb['"Q'wR'!!IE2-x`e"% +kdڦA06(r!sa; peN"̋h ceDAYrĉE`xț'rUe (01=c@YT+וPc(=MFd=wHbvc$5KDٺ6R$~Y^sщx:C-JAFH" 0>+(eק- 7&6#p0AN"H(JāHfV!%y8@bg!NCCT2|gf(D1 A\ 2voFU$Ө琚!1q@#™L@;'HK1͟a!\d{P2(2W$rZH@ę$"5)-0+=x*u$^`ziBO`G&t9lE wDü<`$44$m,k' $2ȉsN$@T+!4H)ϑThC+ h*1 A(,l 3j :'$̓/p3,3?7i9BǪ#"XIN.> qi Py@xXA=-I>nna $縠wTrD|~l<kpSU:BIJAx?yF&껝HN{DIgՙa?TB5:+'yVLk$]b)Ĥv}d:uchSOL=OT#&CDGU _$X%ը,%I`aj"r{l,,C7rz0Β(E9|u# 0眚*`xc0.p$U_;j7in~6+$ %|%a:s68i㇞;6%yڈUcDS L@?k!G6RC;RG#_,TxXBKIJƿ w^;&B}MP (aؑ޼TO(#_3;2xgӿ  K͔u %Ccp1f@D2uK4ԖI{MY z2}A1e|"bx+$@>Q̈QH;x`/ùYsTlLՑq4wj>AEXBdD$k$t4]!ZTDY%Ug. $NiEv0O<-G)RG9$U`HhQu:^j^H}V /Ĭٞdh%#2 l%!"ggBClC,@\ gQTDcbF!G'?Tj ^FV@~ O|u`Ngr ]M0 L59 cX$x ւC0i5d(@$9a ò%k !IAa@d}1$a8fIzarÓ&"E"w93e$"gij%''>=Յ2g}oVnfl8xpFg9#IHXCATRg6zg*98'X'g@6w`XJÿs>$IAK=e>>HQ!+ǖ^ 94@G4B$ PAJbdy"''D,xitvcXuQf|olA1ahL1;/W$(83'Ճ t|eϔrsQS{ř<08&{68d{4G7"9{ >/PpQ8ǠD  H城ι#= %dba#~ 'VC+BH1Wo`d'3>l!y)N$H.y]~+h19'Bp_mR<)4|6PAnr !(=d˞F)!*HǪ0g0djvFs4S KX=O@8\@@bang~(",H8E I(1+Ht;ap`2x*'9 f's]=$l^!C3Bvp㾻À <9`Xf@ șf#2f )H,8 GeߤS( <@@ ęg!2Z$x!"g%ʍ4(xIoXHB IN8;$YęvK,wd"\l\( xj.sLM%fzj08JcZSȦqAa 3\$Iz& 8l$@y`fb ꀈT@uEJG;YLڧB !h,ZЙt*@aDC熗D V @9CJuVW+ F@AV)d2w,[pjF$!C!{h&dq/MZt/#j g9}X4$p90tsPP!$,)ߪ8Q`Und &>xh!c@EDL̀KwD9 n}Y,bAn9$"ct}!md/0 bE8㈎Z0FO8jwpex$gj'\H_ћ`/3+W}!˖9A

gO42c`&\ߺAɁ$Dd3 ?5d= \oUd{3%ӑ$l1Q^0gP&9J(!YwxB٬.54H;7"x]d i$.y*3UG 0Q31(Քc9j٘狱)#Y9 Y%tx'|jgwPY(QcD̈sFѬ9P/' huP e~),'j.=r|ENAb`ԡ 9jfdeι^QAgXՕΦ'.Ębr2Kt ;.0C9@( ӣݔ`PQ\T0#G8zbZv̵WXUUA& +b,ʁǎݦ >Lw@ ĐgVf<ĉ 'X nL[B$iOs@@滌aN1bB@dRu'.z!#0+(0$p1#A 5N;4^lX@v@OlR 8û=5dlI 3Q&, (DBvƕ f,0jHXhTLfe=F(]"HdlC'l >ֺ,=!\0$Nz IJ &[-BD4B0S yB K1C 21 C"F%j#˯]Q2N)t >iq"yNN$*9|U:laV4]c∡:JklRvg|0' 3N,،qp|>QFϯTW ȆEu"G0Awk(gGlU+ :#9 )a1 ,qICȠUu3J]A?ʏ'$Z2s?w]>0)e2xe1`C BYLR8†tj0äEED*1'c )@b!$| 0Q $'t !*IX,v !{CDzgDLA}Jfx<6` b&8zPRA,> |Sb3Ps ;g5.d@5+(AB81g p2,eN-ě{ Aa<5@G< l\KT { I c2Jp~l턐c|J:$"ꘉ ;E9Lrxm"P!ca)b;\~ȞOb';@쒗~ xJ`Guf$dHbv|2,M88 U߼6 UI劣Å"ynd8DIҥI,O! :=S.|O+dUi.IA$!Vo51Ԧϛ4~\3RB6\#XDH3u$CA'\ l y't9) tFyM "tE#\GP `Ng!,.g멞 VI5s=5BQ > *`fY.mȲ:#ixz㛘Pa!ڔH瓃&|QqﺢFeG B27:J1dY||?GxL>* fQ?4xJ7Jf@!2xp`4o51Ǟ:&kZi" -U;ßVh/J'q#HRx$F̽-ÀIN+#V m0*s(s>Q&KRk9Y1H#̨J]oN1b"vC⠛-M8'F dZ!ȑO' ?:#M 8A o</)G'͙S2_:v"i܁՟4$kӞD;UG\؉'T@$,f 篊($29Wk,푀u#>Bc0KxूNcy<^=Jn2O͐Oxdl2O \`*8Ox}rHsYNL6Hd kƜl pγdfa^X6#` q Dd& 8 5  0Go`L5I5se!]L 0GHRe''9 , kS%\ZYξAtH`X݄i.h0,#U@x͡:X;(G.&Y/U\C{7@kDl(bh oD!@oG\^G!띱^|!$409uR[gS4D[0nF<{0Z!RebW{L) .tez$&=r|_5%dA^^(p ຆHaM¤WՉ'@keb3t`S)'-wEEbEyƢcSN5Ha4,L>zŌoRDxqyX09$4xHh.6> p0f.UG)0 *MeT͋C#W(NL|C視Ȕ(H8~u܋gb)pyϿvJ^͜0졔@fc&)!) (GQO5דPèfqY)ThU uCđC*8drgM7913W˩?(!&?=2TS6p.ra]ԏ1h HT GPs? v^Ny|TL6~(,sbd5ѧL "}XGX &h @(~hE7&QGOo 7={.ły殄J7X MJ0cǚ!Or)c (yd|˿YTA>FH̑9f>nDqfuy3(l1'ᑳ@DGgIJG4 G+05Qa U;C͎X}>DB|*b=N3HM{6g>o=:@?sH$Fr=Kѡ,";1PCE"`V8l8@{sXO)~м g.wA%BX,&1>QAIr#(P,DU*I#8LJ(9B2/D#tY %D܆.:oD8*H(6Rh>G5dd C",I=߽+SA2L w\ hS $(cbb}Uq:](rY\pǦh Qdƅs_BO}QI@)@uO }bL1X άG[ג=SH#^Z'>e *9)"5rMA`!Dq?C$1] BDK =nR5;ؒ꒡ީA:OtI`ȅٞ^2YqIFudy7"5=&"#wjbz# _F璅}Qc|#Ly޼Y -BJs'\ILP8Kt>y+<$6=UKV> 0hda\CHӯ3͂^5aH#@#J!fA F'"J!;,>XҜc Y8awf |_掓( aG^) =N 9Pd# rsVm^9Շacߨ|R1*9܋]yVB!R ?)O: DUub*b#d8:}dry3e`v> dlxu'6FgXGd\NJAOu"H uC6~e p=8ϋ01=W ~f@E9e|YIvfE!K^2q%#y POQAr.p`7Ի?5љW{ެJ2%rN^`vI' %sRpAB8`ky {]:A.BHy& @LA ϟ%b~Y 8c쟛 H酬bt%<2kbHN /%=mXjT~* #GA"QSߣ"pb:_yJ#"ɫ5I 情J(`'-_t̤ Ӊ0D /=WD@h2 a*4" 䲀Za(cM 'RBg{f 8A:ڐ8 O~: rS _N%QH(w& z栀@Hrv$̈9iɅp_{RPfV xO9ł=b(ذ3DbuT%!e'("O!DEI#"~`#ĉʆ b2Y:3FƓݔ#T7wid"yA6dWYԤ7ԼTjleG۴dG| 3C=lwD|X$ JrY[0<0(a₰rude'y,1k tTR$* 3χ͝!.DA!y#"! @'|Q<e%:G{h  ycǺ<׈,8ÀSG6sr:,e9 e3C<P"yetGCG}qtUؒ":5<]:8!6@ߖkp=Kb }M e<AX|ziAxu`٣a= H<3Yːh &{,f|g68%~|m\YS9@gH}e (SFƆ5}Q1T,IN:Xx; /1>+ #LLڠU0XjC1[$`mQq.5,eI9G_tjK,3m) +,q V`W0 1XD93'Q;4a9>,Zp^V(Puފ@vY dR_!}E]4D lYE|sd2XdUT19nΊ_JA$MA;&O?UTLANTKaV ^"SM,G,G6]3 TC.'GXP{}"K h^OCb8<9>]O 9F69Ś2َ9WH&m&Oˌ碄 b񝗂s-)Bq~Iar뫣_=X\s59q=j] 8|RLu.,d}&$Ȱ>9搁@DS'քsNbUğurO&"YT@UdC4SŗaÛK=scفϯx'6\)R9;&2;TW[_<ߪ$O[SdSWq1?ubosW1C \P&2+lv 5H;TKِV{+TdT<YaC!0#U n8唅?˾գ1)#~llH yʰ0V%/^Ay_!? "vy 4T0I8e!~ꂓnD #tGF:et\d$gdrf1|i;M`%(ƜupxgϺ2JBv'g7c*g'Pvz>j,vc4IDY( 5Hx`:1> `wƅ>h "`"ClD$5|Tz2%;u@&2?m]>Sdh0>b2U{9 Z2#RJI{yuC:k"$t$ɎQ 9 d@!N$L= v$5bbѸ{v#H8T" 2e~Al\<|]CҋRlsi!rC@%Uh =|I6`0d&BX9,͂=3ȄGϙ &'! |AB=rKE9P2UAi߭AŐ<F$44l`O0dhC|VQW"=SG~".2 ECyBY>,/S&3|P/1\|٥ 2̾8Q3fg|P=к{|Y;O"CgdDԒH ]22EX, ;HkXe̟50ZfICT$pٔyB# ?"H˕% WrIa_ 'Me7 "B}UB? FxdI*?Bd1$=DP!$ϚaŎ!YŘ0%֍E|zFCKLJz (bP=, gq`w'3@zON,#ZA9fbgxSzIs0JiXB04O( 8d~NvAsl&t]A\]4<1<"O/ 8̗M `awTx7mB(^ΤBH&&qhW'b?c持ϯ9^wa pTI}P0g6A` `WÖ]9=4+<),p;YOȭ@ @(1=S^ ~jTeGX#Ю(#!2|;AW#C!H#Q5H\913 ?1F|O43U9hTRqF (k*D4'=TA9V#e׃x oĵ ̲_(-!\H$jA9GP8곍~{TO3}ɘ;%14 _?6Y1ŀhq+*}SAqm(,KQ:XXSde9ebB73Lu9d:1/E$~WbݒE1h rs@>ǧh$'}tBP? B |e$a:b#tcuQ$ٝ{E V"|2CVFI)猲*atIs* jXԕ"(y:U@␂>7A >Ur:xQ8y4QO&`1"(~N=dyL!z9BL`" 3M9e#_3Y!m爎#bGGb&J Lp; LXYW(Fu/ NDrw`P ̅ TN q:$ 9VM0x* la=f"b| ء@CdLD,=XV%!jwWP D 6JDRɐOY*lPR/4DHyyg1It"L9 )/(% ț+ Dhx&0<) C<6a PBx )\lXhnC~5.N f}MuK,Rk!tR<&&@5V#!u$2ӓHDH f8@Y`OS<3bx `xYhG_&Us_AQ0Ç),ǚ D$`{j`]gfJl #!$8= }iF&a!:GeI"N0#TǶو̛ CUbX1XWoq0h2Aq"* l'6Q}gH = `@60HD']2ϚN7peV!ȡI ?RzF|CyB@4.FI%d$(I*!nn rH9) J śSzHr@)h 9A O'0OT} ~lC9RB=xdR º[P%eᓕP!ronX dR8ZBj%sNl@4{j*a0S`JAXq&ΘN, ::l&a 4ǦoSa' sDXF$h7=spW䞩)% 9ccLI .z aD0_v& y&2X:eB;WfQ؄,HaxA&Yc)&L0R" duRA E]#N`NHf@aP0+*J]gXc,"yAtFzIEHwf#xJ`vsW a 2`GgsAAgA9b~,tC##T+!xOjTO܋$Nq|5(#X(A- IG}}p("x:.''4x?8jA\Q3A6@baIᄨ10~l%X?4@A NgHgo7Ή-PPI#ve5\!<-G X;U"Kg(̡^2h,, pǚ$ z^X$ Ϫ BB9K"-zy ԋDɒxĐ(h yDsxPyG8 ~W( gxlC\fHF]QO|p#4P)1, ߥIs{`g{А\B35q2Ms>)v$ *,I$ !3x )08Ĭ@H&t'0(t3愈Au"iI+rݑ$.H]dpJ.?#āS+ϖ&("V 1`3(,@`! WSb8q\4i1}ƩI<ˇIH0K)PG1T( -dӊPB "G+aDxِJPFAǀ1M7VA # {^C9ľz:<WqZ$yL)#u=upĒ1B."G(vP$\']B "2p0Ćd;H*'f>*JN\H~jX(?14^= !NNINNhCXGceDixI<%0sz ID9$61|$yDNiûIe1AN."R^l̡zoj'Br Fa2 <|F[3$5tNd0JyT+WR#(0(y_~*N;zJU?6!!^f73OY.a:g$ЄR'< fQrgAH L CA,)ԑ<E'#X)e>8?3b:.K\'5Suo@M0oP/tJkB n"E3ǟ413>5:Lľb^P e!;Ye""Hw dMaY >$RDd[j27C>ͨB8|90<'%ͩ(`+? xaRGݕ Q}{ndʩ(㴏%-A!ԄI/q>w91POt6vy!\A'6 JK ~l^ڤI=!y `0p&''+Vx!UfaCqKԾa,%8 ;j\NX7|T<ɹegkVaXV_/{,/gjAcĞĞh"XStbF 8q#燔?eQ$^NmF<sPt3`<ꈖgG },G)ILKl pL,8`I$^< DPND_X؟d!db{D t&rL1L Jp eB/N.q=G"|K<~dga(4^ &qQ %{Ϩ ;zmry*<0"1rYtSZaP^'%9ZU23 W`5 $Do9"`Bx4FWBr@ OIeŤ!s<ӞD@֧NUPbcg &3 5V\kY:囜$8IEɉx(J~M$6p/;L&#ajbl()>rԡvct]= ೳcC&gSכ/$y(P&xGj@2"Ja XO D1ȄYXI %\L']8J<r,lpP)H\% $,"ibBQ"@Yv#:}͍퐱0dqKxHJD3MUS(FXF!wrY3;P'W$L>'L^{aVE"2&p)2q,G JDfTDKlV9&!p2L3XLU;-Cxwא $aHϡ(dxl<= H+g,AxgL#+"B! B KL ̦XA#};YOӾ03]SGΑz"~*U`¢fO6&~ʢIH=琒62a( Cy bJ ,`R%&J*:$`MLB ffvQ^ _hata0=l1Aί J ,|KG(Gψ #2rOV`&Gy:r& Cu +p:GH O"qwWP!8i%201,SрFКrLQI+-s UDjM HrD0 $$y*11ܭ<[wbg);YIḬ!DB3\ςp*(d4bdI!21 OZݤwØsGY?V8eùqdd7(2"7YL&OĚ|l!߷g25{dH z̄<($*;q6e}@h)O~/Vaчs9(A TGrES#ӻ$G2np|qG#8'6J#0yLIA,%%3fu4 % "F#;]Lc$c ʐ@G/r%"] (Hc{D5=='' jDTS,p r:,&\DpA%L 1>⊔*ÀOP=!s"!j2)3{ꯠJb@=F.沰g˾*.M6c#]B$I|R Iy6RqA%qc>j(@uG1t;T!i=) h0H5 NlDTfDbyIlВ6v^8iLP,1ɠ?4G?5H@᫥h @ƎdI >uPՔ{BqPyުJ3ls@NYՆəLqE$k:Ь tH\ }zr[#2,I ~,"3:3Ë( ƤMHN)yI1L̼V™=`hQ3H5L + 'g`U` aV|rhX6%aG5Q/XsxT7xdDY$CRH,< 8jC<Κv ) ^ k I^ÿ & 1Hxћ 0p148$T2Rp"5纃YQ[ IOAw_ԑș #J o.ehLD ꠐMN,d Lܶ@@qK`& 5HHBAs 3l v*(B'VdA$KQ2™]'lpT$ɿ~L&O($d4 cDߚ|G@H:KYHsJ] Fq-S.I&Qh2GrE6'l&0#(uAH@⾀qBz0("UGaౕppe'"ۊdˏ<9xһq~8w9s6LK3G8pxo#%$e4|o  G c" 'Bƾr;P$^qPr07"ӭIC,.qwQSda\9㙳SܺDw>i0C5ou'XIA}Y&6_hðʑwu@eSޮdc1JI=s䴅vVsC#q?.A y13g4ǒGRDA<ޚ9lq(cך$%`O$0pG5ͅQ5s ,eXWGrSq窐!(!=4A!\gK1ӝ+lbވp.9uƄGGCÒ'TI>fO-\ ;s%чHD00eϺh*n4V'ذ`Wv銹pFO{##_Ujt{@q>'$T `L9șY0ayI;+(gO=R)ؠTNL51p9goO}q\< OWJK1.g.,e O* i(%s׆pi( xVbI J,uq%H<|LP$/ 犋/RMؘtd8g8܇B zE9d$< BO+#R9(2AaB;Q^Y <bLLhNI*\D]!ĉ0p"bWy#(JXixqW(!'$ *w&!.b$u ,#ٜL %0R2 ̈f%Cy6EyrPp:vI$1k) G.9RG`,h"$kpHI0fcV> 9ˀ<0P 9DE(yYD(hH$F5HiʀyX1Af)A)Σ( )P IՌp@:>5ҲFia?F!#scB$@C&4I !LȁD"*<0X9 32;0up &$9Bn;D8BH'] "%EY*?b(GtG%2f#G *A$M@HO◐ǿuRx ltO:֤DlnBl $nR8>HaDbTGuq Mo#u,!%\PN!`3s{.g&GmtI².';&a$L皨Vq A%twP%!s>SAt.<̕=gG8(t ,L'6a&G% dXF18e9BvPdcf@,DH 'vAo+SQYd@^9;> Ht>!* )C P@ 2v~,x C3Y#L9Ȫa`FO!/)C'`B6'A&awrjeyK pG|'YSLr?fYd2NLDYbS ? yvznDDճ"&7JTTʐ1 #S5$R0$PQqfC"vD$)>`EvV ePC&?6@*`ps/ {`ˣ<ӘD gBr ԗb)5cP 33Ё5LP/Tἳ=MR8bDV=pT+$A W@a e2Ӂ쑩|`x鄞Ȑ$'"H " ͤ2 lO9T+ :JtqqibD0TC h$qpE&IQ9EHR97 CY q&L&Oa C#~hP*e!}nٌC.q&] :'guFt23SUaG:بqJMG.:* Lk p%LS&3 w}`;^ XS#^N?xAٜ+6YQ1)G(2C'_4ef2gNن$K ÛΪ53 `TP,'*( DŽIN1Ï:!wBQ]̠$O$G\!y$)y&&& @]$H 3Q y#:'~AQ` <Uq)Qv0D组 <ƣXdC%xex  \R 5Ru|'[D90>IG؍,Љ%ʏ'(؆DC/UD|qI~u9B'gPQ*;.&;>(1nKۉD, 3(ފG`vN?h "!2B; 3a[T!~.#.l)D,H&SL,D箯cT] <|Ģ qY/3fOc@!f? yX8D!I͂X"Bq$Ͳ3,Q=ܨ/ A9c$td{}e*eʈ95]xՄ $II3 [5@fQc7|3CT҄#!>9C0 s18XфtapCI=$GC9C%=(  B$?`@<54L),c49!$Rh!=>8BP#! K"oj@>s]C&|k6Dl7O& "^j$3CX=tӱ zG3~j6=DCF27ϪpA1l=w@ 8!r;K/5~SIcc,dfN$i400DGHP$X;I u<.IYa Hl46s,S{H%@,ܑ=BNNxA Ni R !3$H䭈n(l`pa/m!dܑ8~5T\E!+κ6B$BA$s*2=IBsKu& 1LH=`Le9<̄1npLY>8j&Dr=ύMa pke `0Yƒ6! ~a8Ֆuy4S  +"` KM!1.a$Re[B\ %!@q\Dwbt'`$Tr|jf't $w:l @:ΪC+8X4N?-#*9W<3 ]gYþb@J񰀏vT0X_ ±3⼚(Ж 8,H QaIyBAgVIa|a"!{OH# 1IӐl5qxRt$nLecFu)(؏1#f腌2@JA9@@fJ:vFC!O+c$ Ij)v_1gCSI2, ͣiPpy,"DDBiyf/!8a5Hi8QC 7tJ, D<|GÀ` )v%Iq;ʒXzs`#20=@8J)3QH*#&@O[#w3Q: I<ǭ8vM9aqKOj,xNBJB 9qf1d̈́(D@YD&\M zFDݑX%%B_tDNOUDDd`"׎~SxI@+B5|&G!# 0N熿tP蔾b%I娘I]JEg lL*I X .%]]n̓,$II4l }峽Q'Y Lxf 2F1:akQ* 0vv ?O]'P ^%kyO͇J2<"̍{Gcb=$&(' DqA0@IFDOd"X]u8D$ @Vx|s^uMV`Tj* Saft$E,-r;/>99p%9=j ԒI9JFj"Ɏ"0' @EG': $&BCʫ` l\ˇFF}!2׏q!-PO,,I%F84y]D 8rWC I`IP Ra c c@"6"n5X%4xSc*D*%QCB`;>*)d8pB!:"LrFńSFKĺ[1a |wWF)YYm0L DDP $Ԟ3lIdJ%{ȊiR Q'5R=tP&J!o$VFf1qjۓ=PUn;j#\g >9޶Ô%sx^Wbs @HH/)R,YLi+N$2dL K&Ė˂p99LX'*<:?p3spfH@# 9u$%FgL2<LqQ;PLIm[+'dB:K =0_A I/\ sy==ڃ183kK5s@(6"%Xqs:Śi"%CϝCEd @)|pGn$c5DOYp S 1Ę`d;$Iuf,r,H:;ݲ @c{1 c;ʒp$qD d$Xc*\>0DI&3 Cg^,`B0C,X% (#,p)IytZx@q Q'XIZ9꓂uPˏ~o8U' ѱA'K:>y wWˈ'Fd0e0ucDÁ?l;"",$;oCKz!$Ғ"Ę>bDrc'Pb1O@EI5> l&ēSN`xOŀp'^(M @myoMp;lWQb8޺ss` wd}aL7l z;Lr} ` 'OV{&b; ̟74@];뺒$_G% D 'ETL|xd<@ .@)tÜ,"|XӓjC31Q9χ^@,8pB٨]apʼn.522:`XЈ_Wac&$M9,ق7s/y})% >Tj$ !a *0B*$)Aѧ 굝2`9 e,GKy" 전1GbTI=sh3sYd 呧6c̉‰pLcWn fWb=~Xa4sj01T(VE!2oŇ57*QTh&OL[xi"$yq>|Q-HnA~wl33%90? Iʜ %ޫ`LB8Lf90%e'0tĀ'5H3X;3$9r^8*8v!b _q5`# siCOe&xsd0B]p$C RRC?-j:yE[:NI"e ꢰ(6PBd(k5RdqE t\QS$ė]qXfS$BoA,nRtJ)||(y'"nA(:8l9 3#],yXnD?qcbJuTHpW*jI9W'(P&N<LO^ⰭIx=ؠ 0!jAec G>/0B:8 $$ Lॐ✄$(tqRe62d$Y.x `!& 9KG 0pɈ#P$$9FeqȦx>o DÊ:x3S[bxr8phj"#kՇ풗qOGfP(nU'9eC@/45O4ZpL=XBI&3&;B858juГS-P@()2Ëel$Ss8FfK Ϟ,dU']( 2<$!2YL ʾJ z2U%@v. ! ! I)<AT$YTd;r"L,we RXnU  >DIXⰋ@dorJLyR8rRp,|!yO< $hFGH{h%(#1s妡 J`hB+>+ 1׿6@Qٖjj,(:BC;~D=N=wrN";A!}P9AsbD5+0]w@tqLJk!B'ٲAE@'*B@3UŚ"o_Aޙq )Uu3'Gପi`M 22ENHzXʁ tz AlB&Nuy By֌V8#4ZIMǜ,"0>n ~Fu.{5J& )OIDU yyX׀^#/"ʱyOV`RxIB$kFN N@Rc!NKaYq* <~+ QH$M9L4-,*Irfv:]V<" }dYæxRD< )JIw w51>$oC 1Ec9Z'|XXbB2` K fu%dǜ. i; e %M0qͅ8yR:⥌CAj\ !GV{l)Kq>zXLdjD,j`s*v*XecY"|]1?T Kg'\(DK >6N"% "&['l/MkHЄV7`U#|d p|@BIHdvc7rgX6'_qTǕ],1j@3:g4YSp@AK"zNK<3VNA%Çdԉ*XKX:g&Y|j{v`Cɳd(K "Pw/F1k*Og4_$C+1LsՕ M7,eO>& [#b3%RA5!FB("#crQ 1g [$0:C2<'$ Ӎ8G,<}uvU|;x `Q@l cTHwz#3.̅J|ـ %A&qB0]˯.}MNEqF*9! OtC{eXlB=sd4eDw (6TEBDRLh|,q'c"DA%MRʓ BUOuLwb20%@F{ z#j&WOM!Ί(LA7C |kÑBYQd(9֬B7FfbȰ8Ywif8R?= ,\|G 0 `ǴqE {@݂OEby>#~*S u<N":y<8l @Q&(* > -) ԔJ&@B1\ f!cJ$2>E9=Є BVBY88#A T%(UNj+CbrS̆EAN~l&"U#C~GgbYZ` rX{$尴:H!zt^C‰Pq{ PN#3#E!D:9&o[ڸH{K7%&v H= C+ x; :]ш*B3l;vk7P9j[SD&OHPx"|]|Hli&UB1\B&KĽ Ts2;Dc/(;2\Ń)/_1e!}VQOa;Y`VRU@q $< 83e=%>͓ !$=]EuEUĽ5` ԉfr!bTBbXARl;)&gs Jh cH$QË1 k( TIȓc AHjP#%ٟ ``2 jd%*F5F xqw "yRYُBY^@IՈeF3$Xc"+3\l J^`$HLt$L v~ndd+2 !9E&{<"q }#`!&Ǘ^JC" d#Mr<>I$$rЈ3 : HINbJ!/])gz^k9=H A3MkL1>(r&Ўy밡B&c?,LsU퐇nPq\A@i}A^Lr;z؃5FU x!EvSꢊo1< 8{q}=\0 Jd5$p48=}L1w03;*$Ù`P`we&rooC|у!؜j@EĎw. IExp< `C`:?09=Q4vZR {+ #vI4$\$h 7+a;'@UŌ!>j$sYK<0lG7|G|DM(uDf'j1.;52zV2t%`paFSXO1CGdH]A{ C"pp F@k6d;/:PriPc%Q2:8H7B`F l:y\!|eeB,2Af&R)1j;DA, $ 4erbH(EʽGG 2b^() n(GL$讔3g!'𘇯tIF.rWuķ:R$S5!0w7IC e$% Io:F&b 2^B#Gr '2&՜0,$0ɦ\h8gep`+_=; C'Dah@H,$ |E 6DJ"hB݋xI~ fPDbUX@2&|6:o hBYS3kAXo'` 0$1626 #А: G3$Fs,yB!;9uC$G9 G>/ N`FHvC & '!;H"6,6fCNe$9I#P7(12(ndb4 nר2)@8,I`8`MYN=}'< Xmi2Q< c@0A YF aJP(w=Q78i>t$0I)wXNUrftC}Sy^`418ײx(HdˋHͨ> O1Up')LguYI8|ΰs` I9`lp,C;^XY)<%0$@(ȗ?9Nu&9"j&4pֶD3Ly`.N%%P$*I#r \ ӥc@t0A,&D (4AHNf9"|͇Xxyi|OAq ne8bY4GaX>œ +qr # bAL|sQ4]"7y8Z 2t'3D1 F! XqFb'>)6|3$XHR8',"$W`HH8ǟt,sI_"T t6qž {h s@D9GAf G/su(G'A3̄߉I DyRq9 /\}D" O41(<|DUN"HzZ@PIA`!:6+]19!SX\):rUtD&$6# {ف9cMZq0Udh%I:r4_HAN1!NaS)vDst227Eft$0x4;bI P&Dh-> ꢅ;5@'aNLRÆg2?tyeLo)MNX&Q dhDIdw3F*7Fa8L$|4y⼑ !?#&bXH'^('Jr V$鍈(p)hPdDA{8̤$J5I``y QNyΓ5))݉,^zV#IrF A$.wUʜݜ, ah$  χ6 =8^yn? %q%6D$f30$3 (EtD8dXrlgӞLdCTRSCsQ$st$f%Q4A2c׎hNXQ c0^!bK$وNq :]z2DpIrLL̄;w}_u\ tI|T13⣟wMq":G?^PF1R<79V ߷|";U"GH7L'9p!udWuOuϼs:z!;!9I<((YOU v*4X*Ӑ-&'5‚O2U" 5DF/QJu-!=nV!V"1H~d'@x/rsq:~jD%WflA|B{ 4s v$;svrLw Fn2N")w^H,L0?X#V[8I99,3S8 &]**TFa1zvkP#'fLTpoub$JDBH/ȁF\u5NV}tR^ pz5*AC {Pn]8pNqPH8`oOWѶGThg(g(r'8FIU9Xsrc!s1ݷ̇씠%c  *k%Y (uxkˀDH>9S2!)0+"x:&$XfDH] h$Ab8֚GfMO>9b%92I:T] zķRu(6UD1J9 ήcsGH'|f]b%)K c|3FG 'M_KDGg D ?uiaRMB;NHcWs$;0UDe/A@x}z:=q!,͒2$xքNXN&&k5NQHkJ3v2s݌LP&(t^ 2lE Lm@C"VNd4ۮH.wra1( s \1(`J&cLfm^㗈㶁0&8fsLgSiDvD] Dp@Y ^PaLI/?. !9>V2hUBfrH0Msy!eCf^).3/}?_ R.#z(h&gE1CE 1a}@V̰Y@ MIǪbA>xf*qa[:3% #81<`&(\/2|wZ!*Ngk\@IbDHT #݈Lx+'=xi,/QVGg0 1KD '.n#$c)dkpl wD eŸS. 2Xȃh"jD0qE \F*㔁t,Ef 4)q(+@mCd 2hy+"#DX+`XəDD ee3_Qp&3#'P ] A41фɸlK! #dK$t$)# WJlSEs $D)*D`11:HQDXR9 ␇gkYLv&z>͛BUHiaT +j4@v|HT0 83ߛRR@A=^T>[DXK ;u'L:d$/ @s#JoT^;qXbM˜xPJJ%fXsJ F ZNI^ Ƒ{e`Xr6Id8I` {e@$q1BJ$ U.8+eD{31M`0' Ȝ 1PQx1zMQ@09a؆sTxbr!R10aRKш>˽ F*Qy&51dRgG}AU ;M4/猢 \ cj)U;?'Q%^d3d\Zs8 pOng'ACM!3nH6ё 1P{)dt"YW($ńgNT)8o呀IN=6'vvd\"Sy'<FnTbi c(ο ߩ.q&yF"1X3̻-&TeB)A1>& r e~ }hG#4(.oTN}EHAjn FD򥇎2<(e ͔2ݐ)ĽVh@xsbr'%H =A8BOW^ 8;1VR6 $@3;IDŀ&zx(N~3_qdAY ~PRp׶iL*Dq4=MN78kTL06e  zQ}d?mDTNB9aHHy"dw,P(&Ilyle&?"a>rG a >J ?J#52$w4`>*F||TCɰB<ov$GDo02:`{0^>+n"p$k&|=f0T`G%&`MH*@@5+mڦI)-ӋBBƌ;adXB W#cAe%Y|YD GiZz 3zpHA9CA H* tDJ&GCAJ< rB~dA oՓdQ!Vd$YghS+@J#fN L2{=UAl2 Q D %IbK>o#`ɐ,$;Qr8FN~,QP2=ǟ-HFzH 2I}Sr vD$q8J sI NuQ0{epPLQLXpo u؞ym2Dӡ"D%sUa!Iل\8 $1C3CTyI_ih fQC62^qϓ8fSR3I1ydAe͌5CВ1Զ3 qT&!6z$Y#X8A.و&lWxpÎc]A̾2ꋂqsU=3 TӡH"kIjPB(1W!$(JOSN[< T!'~vT C9ÚәϛqK\K9E;?.$r2][3YUI84c(p8!05rՕ0juT݁d6qB]sdY:Y$J g늂'baDdP&M>:$G}n{8_y N#ﺦ9($eP =eS (\GD:`CY$O()xNIQ ;p2$ƞ7lQ m10poD4_ PLGz㜰05IN7)!$C-OaAMY9>f]!Ɏ$*'x_2"8e# B<倁 `hMHI)w.6GIlJ5s4'\<єir@@BhD \s0Hy ޸X1@FcȂy$@h4d`0-$%"JBh‘D21|6a8,w1S\q'9d/& W"qi/4C$QYASufRpNp%e"駚/!AdᏞș1qT A!҅96`9adaDƒJC@_]dOB5ޢɣ166)AA^vkKF.]qPK2AЀI0sI ui Ę.L-I1C%\f!13"dDw=j !fzJ!LHF@Ǻ~+12<7 G-GM>nLFU{.$BdûHjA'=Llq(O[Y"{9ya/3q&c|HY 7io)81uFWu:'a`I"b6#6t1ٞ&0f c!`r ┌~{lPlwp$^WW= D<$i#58%]h97~] b@Hv33A's^GD 3T`=V[ԞJc1`LrDq*0&OMHH|q f~hKtO\QbW>*J*zt2l >jGK#7"2">^E!|U'g!t<uJYT@>=Y!J;,( b^_T# ,MTLzvGj8-Lx?f?F" DC^"]c"GO?’b'X"{KaDQH6zW1S8Ղ8]LתIu˵B3%Y`Ha%z4+$<$˗;FƠClag7&2UNlWapCI11 !4eKX+ 7Xͅ`Cr <͘0bbΑBI } X{IefG13fLFL!f!xρ,Z j12'\DR9@$䫷4vOt 1:z$Le4NEJNTᚳ!&'l?Q +~넬ƢsXsJx"\fNȢs !\8$ןExapPi;DƤ{$ y"qáR²B`3NN, #9Y$3*K8P:*eWIcEA;ȡ`qNe}>y%#.%5RHri5d$H=qQ<>L@9T)($cD7w(HG99pSo,IOnDpnjp!Yw`I3j@~lPPzgMHǬVQUF)TO<JH#YI>h0J Jw(‹`D?UĞYE1d{{FF 倢gt2I{* ~Ԑ))<'>Jb >h1H7wCsg#!"9\@aYF(6?h#c.A_dfJ@&Xq23C}YY#d*т p ͊ (:yjs&!YINHhmX)+s2PHL5"xd04Ӄ- sd?Y:Jpl4)f#fj!ٝ #pRHd^X|R ̧1OCXf0?v0Y*Z8& !!4 P1Aa֟N%Æ_~>4Q!2uA_PcȪ2JHL ԌMpt sgDgq/4H8g 95 ġ!, NFus`dZeq!6h wBCRbTB,熝4"w.,s=nU@XGIO|Ht!$I0p㸆T'Rؗ %NvDBusVC7]xLyPXdAQ8Aq3 xlґbC XhT FX TDńBf0 I*$BGf$&DX,WaĎ̉âHu@&7(?݈!6F4Cv[0TD y'Dw7ːXMz'y93Ǎc#bT |bx| pg͓ DC?w !z/1W2a,d`-&qJI0wtJdpGB\cTFWbD@OygG23,Ytt"~GXb2&F֙eL!=-$`(:X$D'@@!yӄO>Ԓ ֽ׵&Ն@0?lPIw^ KnyH]$& "?7D|z#*I몒6 |ȤBpK,3Z1D^VapzJR_KIJY3Qa*!I1<'u?@\IK!2gO4hZt:MJJ4W-&2Q4vKӔa1edy(`8S*Jp1ghH?,;ٝ#(ņtP4`DH@cǺ[Y hSB`a Ht7#1u8qCRDFUzxⲀ˓PʁՐ"}RE\UXqS^LP D@d6s'T%аPrE˺Yah`A "MHVkT isjL#Vr;:P N8!iC!vĬQz^g,edC>N8H3>Zac >k:2.8AYxB|tAPT)D:Ƃ,O$C ϜN ͌Idrq͊'E):ȳ\:kDTXV41aD3+(7H99~{Sƺ>('9̆^Yicj"cfOPʆ!'t\Y $+PD I+=pF%++s $z Bd]#6eN)#&N\;.. Ws(znL^(9pl 8fd1F?Ŭq ƣy 8&Pz9Q&3J1@h$1 :)Fr ꩮY8Ցbx n*1P.|YL<ԍuݚyϤIִ1 $VFy#&y&IAX{0rۦF:TUg$*U$cٟ8!A1 P 40@.L§ˍT0'4(rln]FPOP;0풝2$~6-:?Tx.k̜-$;/#dLVBN  gBF?H F3TOSEcUR\p>D~¢8 %Е\*k>i&X=d獣qaMBU';Ֆ7;=A"Dɨ Ke *LЀebTFX.t0e0<=aQ&Lي% Ȃ~F` J{b$q\YUJyC0=:)=+LT GQB7 %H,"]`/;PIhrPF$0x1',̟%fqy lLuTH ,5HQ4nG_,gI* @w3HW8F..&2t8%ޔ@G)HNaa`'ń&%lcjD,C" It"D#%6Jd5$Cy&a{x;MF`r>7%Š1 )Ş!Qp&^iOQ!0(Pe3a&Q"L5A BE,11X0 J8C]$x0 cy%##N%yEN;/3DbD9d$;ܓ2Hgj䒏9⁒"wC4ackBļHȺ,"cQ ii}r$a";N\,#.U"PC'6&LO^123Qa e Ȓ\ Gbg욂q% L}ن n̒}?#%Qex>$bsxfq9D  `,8ݫB|yT阱wMp"Xe+x#4HQ`²cz38188}W@pٺ"+\SׂEO$=:M2=CH+9Ǟ#ĉo@Q1+*&Kc3&U J{ Cwna8I$(5f<(X`=g/ԙT'Y?T:3(bL ;KbBLv.Zr!;fC#X"'hLGL$2$D%(&ꈔ08J{|@́{4edJpT y," tȉlKLDG+Ϥ|LwzRa'Xx!hgg@0lp;VĠC.g](=I 1\~+]RU߆qRTe>qȹnN?"<#^Ya&=[>VR530K9S#f:DB];Dg)x0K9"m(WB8EDnqQ%q$D Ȉt$2CSu`>ÉMt{ !w}0dzD;B3E\{%N)5& ߗ1zN0 51 " RSg*SY eI=؈fU|>iI!(`t(A/~Z iH؈L|THLc$ӕX@"R巡T{L $<1q^Hb>'`4vv`D|PXJccC2:u&f]y! C 3I DŔ z(GfWHT`L"qHl l(JycX)‘]ԉID@LL)zFHPD*˜AIpd k"М>QXHrjDQހ@lI%1R$8J|BSC9]Xe$h>6H0zl礤gS8ع{Zq2DDI\#_d Dh"Xc*($ sl@͞`k LGxw)?DC$7@#k?#$$4PŐHr ?=*􆙗{/\C+&v8I`? |&!J<=sAP% G#rdFL#P̙NVCɛe|oK#!]}ЬPFK'ՈOo]uq碵)=d_0SxU@Fu%{?j^3&3R]5yc0<23A0.`ξ ![Ȏ8 {Ⱥ)DCTc}"b zx]*E^ ׯyQf3(`C|$K\q6T 1{/1>}]bHcpI»C 2(rTņ'ş;n:dj'`$g@N0dtrfpDXSrT N;#H( 64@NufFU&DNBuXdH?S":;2VLsVtb5;tGjLfNdCcZL.9Xedٙc$pBD$ȥ@[ n&6ٗM$S(TL&84@xyG߻c7I`90* E DeeJ Ɲ yLO’C0XBO?bzT$JB"BRM bbp^$`rĽtIOzTiMS)գ!/jT#9>jl*gBl$hHvD;eMa>"6ea^5ЌKÜ IFLT$" ̊$*MbsjO{Pj$ O$`B#V .a֎lAU s8 `/l*9*:pH,Γ tP&Pu  ,T%fq슃ezpu}$$nk HDCBF% 6G`'~I@, E&~GlHGDuQ0Xʧ1@e " \ݣt*j&fè#+e 8Ϻ)ԑb'ݱYy/VʓA vypX`<@ʞIJ\C:&8 ]_q>) &dڞfb c9)/$yh"$z`aXDAb;W2b!Asэ;y|Ԁ $e(3_a`Hzq0EZbB&]>q!@T@!RI뮶18c%xr.okL.CCw! a cYtU<3&8]b b z#X*e|$;lf ȑy<9vW':ʠxB&Q$ u uX7d$`e*HG#6B c1);̸~+"8T"N$qP Z $ w@G1(ӕ#^ [{sT%d TD2({3oDQQ>=Ŗ~ őX.@R^ Dӥdۨ 1?`K{"e!&熆dtH3e$ У.4ϓł Dl#GvdΥ(GߚBL$  U0])3 C#h*K?4`A1Oك:E#_7br"U1fqf7ć0D=Ip&C71N^U ن:- D>,=#"Gy~n2d_pq3T FaHP\iURx"A  )j"aI N6) sH*gy&:."'c.>d KiijRhaTt5ʝ @sHz3 {=J2BV #^j&YaI)@QP-ߛXWf+ߔ ~( W^ &uꘀHcO|x.8cȒ%ʱ3'ej =aՍ ,Τ:HD+b0W鯾) G,'ScG$$GBTwq*r";&xkRICvm f!CP┋ɑ|T`xdءKM@SYH0IK$vH C^H3|.@ L^xd> kP:̉ȁӌLi< x2l=!hF: .s :s `"ud v"#TbD|%c $0dńFxJYD0"#XHuj$=3S!;NÉ;R3 I$&,¾N!@P8" (`e&A&%Ua@cȝ,;Ϻ lċ)5DX# )!]0A=fF\ (r'"NSa)HXr8x㕐*K29,$)4)I2SA'#$bb! |R̔) 42:@ՖЩ/)+$Sk釡##>+iÆ%H qQ2aQ@c`ZE$[RN;9X |˙BjG1\3($,Q$vshlt#rA#oNDAA'9z _v/djxB9|Y0 b36Frgs$}tt"x'B#"H1E?<ؖ$8 9T:a71s1`\vXbO{ Y<;`"y8uD6xR=8>$vE$TyRO\xZ/.U\Z #بy0DO PTBIP!~nqI{JtBE gyk,{{Xh%X&¶(28_ #1N1Ǐ4r.%h$,"LTA>朠\1.,AAؙ*1)ŘxyPa 끡$vy3!!qGsx$ RC3v 7XK+:ǝ]d2vL1Qi aTz> 2)2蓔Dv#*hN_TOh 2bx|Nx͉ԓ_eW]ggŀX(rEyס2kCf[@cx=㈊9DD*O_$<|pC`_RKve ?FC@*,!LtN|Ԣ 2y>ǹ"/%c{@yjΒɉ""Sp ,\ 8@A G'\00UHH,$dD(qD("c4'5_ YԵbI"@Ԋ!H#/v8$I 2a HؼeD'O3X 1\J".3, R42Ēu^(y&B>wQ* K&È:D*SϞ)H>2TCdaqD'g!x.!0a!gg[Pd!Q,bIqEdNs|MWyl*"( 9<8ә$rXE2I=l36D ̲8sp dz#c H089-80g̨*@fdi;R45Pxv`7QҸ`ƌ #t&HiVTx*>Úc@N֬ө8zH%%DԀDkc* 09pOK#Rip@`=\CE7s%+=DP1){?7iА`D` u &Ta':T%HV lg Hf`P 4!HA˚,\<>%" DYW@鎬.)LxH2|%ɤ #*_46@^%Y J =&<ސg0U =4)(2&w'$K ^qT) MXxW掑%C^#cQ1d;!r]r;`VarΛ(H, $Py`V$590ؗ*Lf^l Bl=HlVaB0v,2J":^&Hbm\!1:.ػ(#vR,$݈}QeD31I-sBd&%VbD?;p7wMɩ&sc`c0 PA[ƳJ<A5 p{"#\8{D/_׻<'=$7+P.HJ9'8Y@ǫ 2df1"B`A '„\cO+֛3pOq'@2"2Ƨu Y3͝sI̯P^ Hx;xH =N'&cF"8}A!D̸H&,)o`LN}U ((z8FsDIxI~PAp,0g+(I=nQ&Ik;ÐP' ҈)gj<$U!47Bw\̱'R X9c=x>lA-ϞI\KΏz5t8#(w\tw; 0J>2g'AB,H2:諭LrTcD3CȖy!@avJDb#ت ̑TBUؤ4.e@gK{RBAÃ=i,ܸ9тK'5P)Q P=5$M璢8f,h9ꬃfRԞ<Dp#uD yC$u@R Ia/2~9nK `=C;D?uQ D{A9K)ÄE>+'V25HÄ́ȝ_#?v p&&8j1@PDN,7 L'DZfCy=RL%,&V( C4udg]FaIIJ$ hCd8rK\BqGvĠKWY!+ m!j 12Ld;w)c1r%\"XX)JeDaPO$By)I(%˃d|QS(7ј!9B*Dmbz akz, "HSJ"&wzZTu s*0\gis@E BVA)0'Am"A '%SvH q!2N rq`nPOdAJ?4( u(,-c+.#>' 'nf;蹧k I'aVJ(1 ÅM X36C?pѓ6zÊ#̎ O4gYYUG8:D <1HF 7Z2%8(f9IߟuÀ1fRbR'}T1d<0ut2ØIfS`L$,+e@#$E\1GbS5F'u P!h*KƆ5|NHNie$@_K py"bB׺>'8=uS½ ]NUĐjǛ%%ǿIwwuK i :kA 9\!Y' 9nx(Hd<㫵#I{f+&>K:<Y)NJz >>G!>*}"r@ qTOL@L.RFĜBjp9b_I$#kbHD$, qebaHi$!@Ňfn`|q>襚.IYnU^GdIIdMA\rH\\LdA',īT c^8996 P(@4e@O# ÆRJ /) !,b:'A#}De%I1@~N y'1/~S8Q!3LfzÈj 5DE@ F;,P3AǶI&wb'`AC(d|{'j8SS Op<CNX%" fL}XCKQ1O8 DHFjFPkR '=D`'w%ְ}f8d*F'EN.ctUVB0oM"R29%%E$I1"$Dr=Ϯ#mx!< AvCk 4<V)Q#98QA2UdhI>l-@ MLjE<&awLD橩au"D#LcⓕG#&O%H:{uRc+~8x ͂aR1ߛRHD5 f%đure@hDP{h$Z"!ɎE& oFRaB**m$KXO2|y!a#e"GTʀ"0 qJ1Q$OfnWps.%(5v29$ H 8rU@cc̤h,wDJW .^#L*!@x4jIa6uG$Za׊rT%Ha  Gt$$L3M=g/0ɸ $hD |% K+́<gb1V0!dKd@w@5l6rDğ5'NYΔ(Iμ\CۼhhLn3*J*u_XJHO?iA;Q<dfIIײ˯)8'S! 9`@æXeN$13`s1a{ #&E# fjÜł",ld7 d9Qhٜ o%DnrB\Y욙`;t$ . -鲃 |NPk: IxvCz "v&R0̀2Ic9ʼaIpڤ]ipB$9 ']]'i7Z䇪+1Cڤwg!Xa_yB+s f Pyx8raO.IV  pEă"& h򠹲Ne=t$'D#1#,q=VSrJHP߼xN?6I ^8 caKL!PENe?7'IK?2aXG0`l"::!yIs9@^aR\fejdwLm0` U\YNB&N<|,v%Ǫ$J'J G"JC9FqhIPte T00B$X pN HJYxj Xsˬ؁"Kps 3; $࣠6t=]>Ĩ3#Yyϋ!ct]Ɂ~W r2+!.M0aqybH' yL04'w>) G>"\ļd""ec(c MBPa9BS9R&kS6aR&8uO^$ LՀQg$]vtP"6W :lwPD@I10&Q {Su#\B$0̘(˃KĒOU52(" & eD!p]ő H%b/Y 8}TNI"JScf;$ 9brzFO!Aq;q.W2%D̒x0Ү}`㖡h/ACL3XIHpPpHkL|p(p|V ?')E82 tI)1<&AvP) qF C&&T6$ ;*‡uu Hgh0bν(ĎC.hvB2%V4J45PD'ؘ,AyfE]y ?yfڄ)a 8"h<>cF$8!B8[$s(b^8tYvSDpYl '.!lϛ x袟,GIGQYu,$4Hyu*Cu|TfFy'Cv9&b%Y_9⛠9% :uDKT&9wkR1Õ^b^MY\Hxq^A.X nLHĎ԰@"gu?1Uyư peYCjtWHK,x,k.CPvgs)wQ 42!#{UA89ǾsLa3+?&P%s@WLRA H7 ,X\DQ1 BE) ɏ.YH-0!cY,`"{9Aϟ6$rE6(V?$}$NV$CIcs1"'F8y/4HYD9e<~?wuyd,cv@>azBx I)dt:* &u<6A"A1ƀ="Er:uD@c./tQR!#,(|yϪ! 8%$Hz+  !{Lˌ%'2-r#&c_4r|gpV`% 20(b^&cΤEK0 *H;CI̪;)B P%#cs & uMai,P=B`l4c6M $3|9 H0"&(^`KA€, &0flQ qZHMD9I7GD ƴ8hYI{SEЙ"C%eۄt<t:Nԑ#IBy4꺆I^S獺D?"u/I R f|rV" m2aRuw'Sh, QVEN #6g8xF1I@O~fv%D.G BY!p;&QL@ԉ ljuϮz xBȾ0Y/XB'<œ=&gݨ!v#9qP-X%q,Kޤ( 0邞碈h)8X.A; G %L;DgFo4ך!3R.NpD"!|Y84@ *c!TAc+IV06[%@}x}aԘҁYz)eS?tBzJ?a&;|xDCC3Xz:r JgWJ O߉͡yg7$.HP)6'>&2 16`10d4{ %P7 [R$fNRrb|3vaC||PZL1h;Ȗb籁=k͒63<2I3ޕB8 p@WN߻-fL KFLfl9]ZPX_Ϝ !be aA5Dz;fI5,9ⳈH 퉈Fn<xD 1Fz58rew >9" ˠO;GvY`:"菚 H!}U 2p:(`@ f' b Dːge@DS戜H` ( ?QgP?Y hY ^@ N*$ J@)ɦ@Ȱd;#\kHONd| {@)` e8"A^|0H. xOv%"P 牮B< {^,!&ⲠL(xzA3Zw@W?DBl=6O!<QFTi= 1fIIdLW+=b5g䱹+5+dHI a|0Ba$d91Dd IDԜ&8H FUG.a$,BH$`@LHD23!=ࡒA88֔\c6ƃBOeDIAB) 8=b0{ yMs8 OhĢ`ZTcQz UfS.C\S }/g# f#;ǘ㚌b3ف,U^9a ݙD_$%Nd+ {Y|Ts)Jc8st?@VP#&sӏR0| C#wxhϘ3tP $!z(g D80pu3Y$:eDPՂ2c.⨌ 〈r }x\'UJJ{I#\4q51"dft{UQ85S0hI{Y,GZ@~8%|=ԡgtB%Uz4#]d3u4 Ua<"u3u)q8r 2x pO]XDyX&&!6Y,RP锳:z`FI>K# cw 7qЉ.r?fD#Y2WQ"jB|2%# yg'bQ@"aI^c|.t] (AY.^l ;dhQ<\Ő)*% CasK;) "b h$C}>20pq1ԟ63ãy Fb7fZRRt 6M럻 [d`+0'FBBx@<Ϛī3 6gb& Ixtm ł0BEprDYG { $ tpXp@YsX)"W%<'6{f褦SF`˙ɶ}d橓`" Q$"F$2,89A#jR JĘtHc a903Td `T@(,È#DF4e ,sa4ifL}dD}Q0 5OhL4ix7`xeelV p/bú@YdFN (G݆ p'vQ@)#C#1<͖ $+,8AYB@! ;ϧ9̊8fA1ib0X ɔHLC)!9Z>RzϻR$S6! 4ld@%EȂ\ZD" "p4= y6BLF2pa%] H;TÆ,xJLB $ T3n1't1d#1L9s纠84glo 9Xu *3DR8xȠHơdaH9 ;'M'>$0::1?Uyxӎ7ETcqbC:>ڐMH$Aߌϔ |Rj0K"3% >! %E(96'̿=PNΟ`9uYYOTkXcyp1 樑lK x+&Jh; &ە4zDvA`H %49n %V5cR!J8n GX5$qBR" L0>O|].)? r IDK:a`2POfT Hu<7HOO,|3Ͱ,]o/Rn\MR}d'b݉)9VI`L|!0Q$2#e;)<|@f#ƛdȈxȈvƒ"`{چ&!$^KDOvL+QzNI\~&D!.l/9b͋RaȑΑgM~A?t sߊ0Ӫo`pY&Od0Sz$̄Ydڵ10$.Wf#w;n?̤&c 牢 ؉G}^!<' 7=C嫻`G?Sx%/L\Rcd0Tz.a#'^`x`U%|T Ng3FpU5`=chqNAG&gBp0 .'A#g~j+,B0gI3PSS(/(!gN"#CG2]ם@1#(Ӝzh@Tr)D D' BS/U JpY <|(8rXS,LgHуUa! ;8$H%4r IJ'W B*CtD0{ ܺ 2 x K"GPqRb%Pj8dRLjx|T9h"0!<бO@NΎ"j! 좐d/=i="T&< +`yjH(i(j$g$}QGq89*'A&0J#1y`S ˲DIEU\<4>a!AL<~J"-@2 Q xP!AVsD$8ݏ #8Q 2 &>(YN\08)(dJ0VWL{ Dه#r`{6e'ϚsKELGGv\!dS)`'aD= o0!d}r"G/+< ',ɱ*``0(0)yf vct*0v5'DT(K/EYCR?IY#Ӑ,#Ќ2y)N1;*3!B:~Tgd@)Rq'盪BeLu4&J*l/c >yAc?u{";Q"Ng~j(Bpf~(Fq,ؓe<c'n4*\D+!$wYӺS%s.Ҽe^|}'$& Je#[BKwd%P9PB%n(v5's"DHJ$mУQءspPG!|!X0d`N4dQ9y +(RL(HsI.bJf^׋*!vhĵ!Of:\ 2c 11RzHC)Lk DPv2 vQaL.EV(*&'+)`<DH?I@"bEgbCjZBȗH&d:%: w` Ȟ%HH$Ys#f$ ,h&?'vIK.Y{43g23HH,a+,KʧzMŁhGa]f " ~+SǫkO`&- `ra.N=t))_:Iݑ/c: aL2cg&#~dg>fAuaYA\Y큧%bN 6!_ _u%geC"LÒx&V1/"| YlU*w: JlgY:rcMqrR~lO=9$c>#9?ݖp\͢9p kv]ՙD Fj{ rz;Sl(#!+Rjy2&~;BD%#GU,QA#D|@ F.9EP')g16PR,P X fG)ІEۈ7+")r!G*vK|{g')!y DLp0t"SJUD%xddDDX:uFL I子JֈI/E.b+$  'TDRfy wCJ$v^6H>G(@ˑFUwh< `%O**(!<|_DI0B,>!$(P~h11:0#D+esjgIrV+)똈 XI'LBizpK3LuA"9.YӪL?Ѱ σ,ŀq174cȼe'sݑ0QeZ䒁 XĒX'  c+e0qqpH|9 !;`ss՜|);X G&d{Jz$>f֒C'hԇCȍd3z )xc?Oa.t&' OFg8Ɋ @ Bu<,X^:P'>n^`v1p#tɫ$L%ԎGH#a0 q#YB* <W`kބ>;#j ,9H[ '+0ĞfOFF皉A'p^W>T '|QPKnG8rϟT D3bEr 3!O#韊9qwfWX^A#x3II0D<_ <% )FB /8%ec  C+ʉ#An Fg7+ DRh8I jeљ@4#]1p@lĤ2L)YQ4% 'cQ$!L%xcvgrf*/l 3v8x_PXoK32pZqq&>l0`&rJaDDwL\ ,I6iis9"l.Ba=φQDo4dA 0Yk5B0)5GUS1T(,Iz1( (וK vOUV^BA&TW!y&@I"LhrXBđ1W/ w3 VAn^!ky7#EՂ\S} &"gPjN,%!$IF(90I*=ĤԥdaGD<, dL  IRʄ=X$bJd3[6MC8٨fPryLJDVaD@:=O[s>r3g=m2B(4P#pP;yZFS L#k!% a뜨O&0|YL%*$a!t(D `{kAܟuBD)#|@HG<"E}!>c#<% I,gYbADfG1_jGGsy,Ӭ!Ą 9.f+ 1H%1@DÖ2%949$P\wQu;^=9޹gpYIl/audl {\DA;͘cuT4 9tuB #?R!2fK)>h3B(<>,zaM,DИ 3q2GYcK0Ot!&rU8 <Ϛ0uBLЇ4c򰀘tx90Kc_\j (P7%VLS`5g; D)1v D!h" p=s͔*tq f2x:ɗtyx'{xAASaf_'Dg(BF fXp?cju,԰D3#ə8݉q2E1 GۙX"u8bv#.(eR CoabD{H&]JX$|ܤB@+` :Q#! O!RQ+N olLua锠 MH™&Hc@ }v888H11&SD^+.V=P2:CX_-@@FMy1/@h )|TrẌ́a@@B%zI ̈M:2S8i $8a'0\F;FDi`xS$݁(AؙjOJ|P $lv)ebD1>}X-ԭcMQҪhPL (ȣ,alo)#FLʈ0&H (G&~"B(Mf;ɚ-l6#J@xlxp4< <aD9#@+`BD4-p'\X&Kr`A/$ dJ('Pu@",9A+@9GzB4$Ae%#S:Grz$J"tyG;IFr@Bt#%jiAY'$t)` )^$9aLٴ$ 'dmIVsDD\ O0C8wā#7IJY :]VEH8aQsNLgtj"Ie0%ZYLeV&< _u:Q ch`$[qjYDq-` pd`($R_:'>cqБ?i_)pFzf;fN[K3<'F2yxwx:䓖>+$oVRxȝX1"dC r#y=  e_UiÓKGR͇R1NPI$qɤg՞fGsPzC p^^+ yr,|S|DIN9,rOt@OZR#yxnKfb td8y/pDq݉9`2^9%鄑 +2ϝ 7L݆MN40"%M8A`lqBdL]XBL%<.Hb6KR&"1b?Xa(c1_!=D8p8^4@:)Al'-ih8^'s #ʓpN*hV" 0jM%D&]a: CLGS\ {8vdRl ҠcQ1 {{rœ1%0I]1J:N8jY%$6AJ:8LQ[NP ~D'eTP#ۜ+ۑ!k @#9 AUڂB:KlHD)PY !!|X$ĥ;82T<3I2tcєd3+a32"I&`BD2CFV'w ;^@6Ĝgk$tA@.1c9ơ YOw3AD)qqGs-"?>D,03 !"ìbTakdB| -섲r3ϻ%ز('4q'hW0QQ766&I,,D\tB=9XT&Dzɼ^11)(4GT2).H $qs!~8q(*0j aV{[0C HpBP"T;m34iݐ/M$L;U* H(hA0j9jE;5*ɰ3vDp0#W2cUbY8vy«YoxPKNAy{.i&`sQ.d<*JH6scGkr$+-L(Ps*C:k U40@\a#lw )VxC Ϻ\$frNaD 1 6I <(gV2 ilk-ea5tH'h{Q$s GCuA%o>Hwi D'NdRKaK 80ca$ ~V0c" T9J(d , rјbpQyƎHBHkB>z/C-м>)316h TJFTPfCXXIa9d54vFa]l@0a*:CV'2R^x6`͂iG%8cKLq6f"Ly2 4j!,w)f<@#Sf4 ^bJdQM͑4AC͔#yTӞ5 "B3kQ:2P\SDFI@!FNcj':fyDYx&ρAv)B `=}U)LN 8g7t0• AW,wBlxcb8nrIĮ*G# r뿪&0VOB{2hPOL}BN cVc>l  <.9!E80u!p_U!?n#wd?|Y + ͐''! "D9 ecxH 3`yĕv&H8Qc3d$,&nBkRLplldOQ#* n Keo8o͒bLQa,qt KH.~K"g(BXce1'$hsCu#/udAHxrL?Ix3٤6HX>lHG>(";9@aBSC8M? +㱹Hdd >E 08*B~MN#`:}WAyJNHx꓌ HdNI29 2rHP3H&H ,@ jaˍYH!K@:1LGJZ94X9 zą5YL<>;+ z8E~ h #$%ii""$p Ԓ b",K{܏aHF" #%̔eI$+)g# 9 !9yA#dƜ5$ʒLA+scI)b.Gnz,@w'>#v#x=\DOvCI%"?9xh"9$kRf5d *PcG)IBc"9Gs$'+z[ aAT@N'/*UL' {;t"!aS;d@ThbK(q1!˲ay58dǏm@#1VtŐ5YɮwAqӂH2Z,r]y|K30i݋^D9?6Vi}P'JC2K)JcP™@I)ӛ#cHS)$A0gRB{k"_%C^}| E~1y21<( *`G uӃ!W@) TFRrRPȓ&X0^PŘ FDf+ ՙ5!`⢾9 FYLCew8)A;'LO_uχ<8/z)Sq]`s~+?(91vaD? | 覺g0c^P#Oӄ>_NN":ϾC{l" 佒y'" Gi m" LB,t .ud !يc1QÈ݊X ÞuF.s␝'jגL)=mX"f#=ؘ$$ALJt<*u4f(UH@30'BwdL?0#T4>l>`y9چQx2˜P3 a&|Ϻ &Rv|ԄaG@a.38zh?tJF H%YU˄Bf'C$Y>I Eԯ͙ )s>)$Kwt1ĐO8ȇ*y$a$an\c2=|uBZ$^C`P0  0PIy!Ap&i@8*p{R!)&2k#31'#G|U"39v]h wB%hA/@0DkN(&$X72wD2THr >@/R\fMb~RDhw, Prgr&<⥒W r>a 5I ʣM_-Xr*,/I;-B+ 9(`f)PBFd*Aedň&hep ԾJDI<*?YB #ʅ%g 9#H5 2!~FPM{PMya]܌M0•Ńf(4$C ֤cI%r,<:HJ\>Ƙe^%@;2g̓1'"$#,]JWAcauXVEY/&^9jgXMPY50NS#UIl16H"2"@"p+IHv Qpd\D~XhMaK NQ 2= #9 "`Y1[@5 +*8YeȨ JK9 ?JnaSXfB9A%2$vG;*f;/E޳gD^rlStɲ#G]p>_YJlA =:Ě2\'$es/ =Twbŏ~}3M f(`DqTm4 "HAXL)#6DKM̀JDd)|P$ONs+рuMl{0lb0!g@hquT)h^P9II , tsAO3F@7ۥXlĹϚ(R> $āۻH*JP 00׊JkLOR[30Ag Q}W>u+UFPb~5)8j L)3Ȓ~|- 8&'P AviSl*_?Ϗ.??9=ɻ!@003$*Ivf 1?Y^D3Єq3xCcQ+88)sP$g^dfHYD5es LG9%$]TCm a($C(&HnD/U @ѭ$PDx]X5PgQ2,eIÇeTh1+cĸe \%B$g^@€vRLT֠Gu 3ʁA8lS3JNgه(Aux C! iV"ahpS)3Ќ U8ʈcY'|:$ q^g*d FgK#dTv&a逍&3*Q.k6 e">wXwx3۲\'D|g9p3͜hjzh-p[Ĝ TTD1?rT$<)qʉW c b.a!bw ]T&C5FWX0g5%~,LE\NWIHDyk|\ѪK Hl4זy˸Lj=H%KF1 0`YIa&d ^PgsvQ>h&5Lz*X:s"M@쳜X ,&O&f֞RpV`JP"'n 0wI^Ͳ 90̒<Ԓ"Z>,1&CwD$a!&7!٧Vl?OHr;dل]f @7p @?5 \U EA<NJ$A, U L<9]8Mr<2HMA&c!k!Kf ȼ_f]gHPgk2T`Np31nU8$ՇU]3A14G'}` D/y9k(`4a#fFzw2qT.(8v9>!1! ?bXDŝĘ2K!2λ?o }D㝩 XeI kӅz/?_YT `|~*^ާ/DZʏf=m"xC @˶9s5I P1Ccd(#A#MB/ )ѤK N&R{|w%tx~!:,!!:,Ar8Yy"$G,]22|/cf|IJ@# 6H^i eW?FL䑌 %bO9ARdϬ1)/0ՉXU&zg+ja 5'1#(!1.m%fNC @8bfӥՔ$Hw&++OB&%:>rʋ0&e^u(E!d/ gJgeI]IN2k萧ϚI<) ?T, \Ngqf|Sx,"4x C=5y? :NhDB"ľXW &Lfx# # FX&E"SPB b lϹfȪ#Bl NNAZ20uJ(VT0x`}T@ TX:؏F%8ED^\s&FQ4/;!~DH$ϱSAFJHe1 ;LMpa)D_Zmz8iXѠ@O]ՌA8H2٥@&$$(Xp<gDLi>2rX"H( 939S$B4=긢I;VÏV&gY֒d ]lSTT#0+)G9,Q,+dL#t C}l5I* P@䰙3tts~*?r731.Ho*!&B٩Uz`#}7`I*Yɘp:w)NxH:89ŗ/<Ŏ<ιDpd̏q^q(d[{b@;<{HQq&qwt ±Q $z$Qpaw&T,&+^sq=\(8Fɣ֐.DǞj$(8ou4 0Ԕ0HxȎQ\:I.FMjF#;rz%BDu,@RK0 ><`?L PsRO!/] Afb7p9 *19K$LS鸠*+6@4B8ƒ Q1"F<71DO m:d2h7DIu=Aaa Vu;:|P2#9h )pq̜X2Ij3101c&^4lQ`GTr"|5cĥ@N2ܝWppX@VT'߫ᓟ$rl9 9*_61`w>ӹ`:9ځOH  %뻱sdP/iNs&C($E'Z`XAwp4&8?|wDc:ְu TXXhq$"xdVC߸zy>(%́ J&VyS(hV 1Hşe3E ps2bpwTzUR#(|˱Q9qd3Qy>b8`gvbx󚳕$P >G#)!0L!gB&E oe1Le"  ed'@\w%UqZdt|D`Z &v4R*.GALO4舐/jb4ȔE&h H0HYfIrz%CA4!:$#% $w&l9zXR J4;rdBFD N n2L1RxW1\?'-mB Nua4cH;,ɓxfe3vC5&5߆x0HlD\"%LFn}QygXb69P%0Va u)}ӠFxqP#>d0B}OEJ$%I|PU3Ugō>Yav D+ &_Yт(.Z<<<L՗1;w C`%2Gk4%ˤGV!'̮(l p d& "w tU,PMcwxQ`]ɟ<'} UDz؇(! :{kEDL˄b< 'AJSp)\%zI1u;)Ä$C3?u ˹=dMȤ4{HujbOJ"dP'#_)sRV_JJdw݁b?v'NO%Β;"*dRf!HuSS'CIp|G0" {!@t/q<$$ $x( }'. *c猫I'0NOrKEax<~&JI()ayI'h'3BD%j sΆ$I 졜2VQ?wґ#X[r@}Js"wg,摘C?63Vc# 9 3V@!x/޶,JwEzg<Px>?,1 ( D̝E $f@v"9?4q2 x`U'!((+Fgby,9p؎Ӑ NO +0 "XD6i@0aH,AJmJA8OtV% 5 D I>+3pфu~ rb  ]b@ 8TJ!#$$PFnVda&( &^,|9] f`]+`଒@xx!0ql0,7YYybiXn$įD.001Q0wPD0/SU/j"0blXٰ$$Nu J 9't5IK+3$0!Glx*kI&qWh2@ 7Dܼ~(; $ NT@aI *a%9<ٴX=FOU!\6MRaNýX9"LgyA䇀%LvтTDfa( G}ARHLNd 5;5|G,u&%$   X^Rd9椤͖yO^L! ^BBK'T;rJL$Z7 tYd;"B |g͌t6?h7` PXÆD&̢@&GC$hHdfqNȏ7:p'h y`Oݐl"I6i.؂<oe9 <VbE'53 320g=P>:"%p{trK0ĝHg3tA*8VI#/EDG/cO4" NI$O9zTH*{5?1a`RAˉ:5z5GfF1s?5a>5NɡꀒF~* Hvx aשzf\&]ΔϬA00?q'ۡ!sHR7n&Q0Fu3RE@l:tY8 aD|O Dpǣg!0;ن!!an="n9`<}\Q^<NKzf) 2:>dv!#JVrA8).Tka{Npdݍ>\b 1˱LL vC';ϺFLCglTJ UD W 3VLXRߊ! pO-M}!e K gpaWddU2=eVKN>>(EV8]&"Q>'W4d9/j"4cÒЖHIlȏd5ԣ,+IQaAVAp@ q!Los<)pDT%,VNP b9++i:)`0ܽ tET{ aD6(#A. 8b23/3+1y "B:+٣ @|H G5.C1W $#ܪ_X!X|Q#}6 /Q1d>ivdChs$L{ |- De\}MPQu)lƉ[:Dљa=T'\SAfwHX f:^BA`"ALy#WO QN2Z1q?QqyF=e@bCwt]r8V= UN>9??+(~,^4C#evH] wHL:lÎ@'?1*eefqyBy}zA @}WNI"0&a=ufDJǞjS"M=Y %k !.rCЏ-rฝ'%dM(o SVL4#? `y6U!41U= 6\DJ`MatsA"C 0&9v& %p0*T6h$zF9XdPX aS;Ex:@wtxe^p&Xa'3PǑ^@M^%s! u8, s%! $WiUT5d0> ł$p`;yG]L#ϛ3C'Hna3B !uS$+pɓXB:f VLIʰ *.ՍlYXO 8 s\ 2:t ՛X0idB\>YC! . =x<xkSudL H"/aS2$ۖ&CYp82=:M1GDBs> 2ca#2<SG[pے'ڑM<+GPǚT(8 :Myʤ"Hߺ<= i#90؈ᎏ^j ~(v qX(q;/*a"bǫ 8{))l DɃ&!? t ̒#wy(\fgtO^+k,& GL|q@,ɛ^dIx F~jDgV! $2 5&M B`LL\"G64x=M y0"zWf^|Ka=&w8଀DD ldIrv$?v Ȉ6|=T! 2rMj,{߾,' =m$gq?Y0jȠZ9]"~5ָHxJv f>pC<%N:jIÀq 5 LWDC,H8SP QDb> ",KU Xe6$x3.&#2%C?K$3i(O{L=VaAZ&P39"p(B\x@fwvp#"{*, `'.^D4&|QBLx@] c3@xECÿdŊGTA:fe$ptm (<{Q!Lp C9M'(g0zBe- vHg7FԐ€a}$%"("A]r8Ƞ5PN0cpEÊJZ`@XL*X$ yb;E dYD QD3ydBK\;:6 ۗ2'wU 0!rdQ17`%) *OfhsI-G1ꈁBJkY@I #0 ;uP| R d;vXM,0%ʤ:0f0В O(G/]> 5WwDdh\$4X!*Ȇ&ҙAt $2Iy)( /J2dJF 6.! Ƌۃ#&8.QC*@ U.=I0Vl#`rAPC. aMFi!a]yA嚪=DAk 2@;ag8n津d'u "%Nͬ8yte ̘F;fRyJ;0Hr|H䏛|A8QHAg#}^`/Ԋ2>S$_Ɯ펹HG2YDTax$tO |}аFb8̆>;^`H3.Gy{"#iȑک8~Q;lc1a JfGJ,b#A18PY2\HoOLAؑ `y{cL8' )Y{}R52S-fcVC ts䳐Xͥp0pKcB'`a; $#DfAy t3Y# 4tt0Ra~H.0"a%r  ,'`k' 1# qf8sd'I$E] 5F3b:Ȱ\sc1bQ2 !p!6Ɋ23pG:@31wꓜG@t #G7 @&=Q$4>A D5"&x<a τheX" &z*1oi6 bb4@t"<Lnlx.hNg[@@Y{s@{4DkAv;YV_tv`"ω~OT1s7$ x| #:t{(3搨{: hzrst+><2C]^Xi DD'"gnr6Ow Ĥ^nr4OSq]N}a!CsMsCc׻=%Qe2' R'+!0p7%gkRG;x*E'.q$*gǪcC*'6 PȰaeYg4]N9ux= RJydD G͒rWa"$;a+pBb0 J~^?4198:D0 gȃR$8#ORe(Bn9, chHE"UvGQ⏛<$V MԵb%ɹ6M+ Ic R̤pmtz`r ATDi aXpB8ԧ XO' &_4IL# 0B"1e %0&&`>M)DLG]➯ELW{j>:`gyak\?'3ǚ1 DՆLH{9XRx9zx\$}Dw~g d1dO\,$ifz~j@c" /&x~|ٕ '9>ď?9@c'7rgNG'3dȒ VRY X&89tb^D@zubtJp#t}Ak `w&=x>uіG~u0va`Xr(sYE7pɞ]lz??4x8BO0#A~DT *x %'Q``uA~$Ŀ6!H@[1;;UHfؘf Ix N*!(JIA?٘Lʄ+k2bdjPPɧաAT0|$S9'i cs 4#s \2 A1&zjh!&1!* "+<[9qpb#4 ><PYph-Y'r^u܌%#R Aq4dLwzJ8݅r0~> fJ!5IeمŎr&#<G$N3ʏR ^d3G/|Cĩd8,hMߛl%ٖ)NxgkXv<ʌ 8uu IއP ^#rL'Lh8sXOcG,@BtsǛ&H zfbf4_^<r"2"rysC)h2Nɟ$Y9BsAK)*x#SToK#HHcUPP=lPhy'Pj99 Ûľj`wPc\A̶QOCgK3sXd># J|VRS'P>ՈjȤ@=IT}MR`3NLHrL.ߍ xj# l+ofuVxE OW d݃q@^_U 5I c~ 6Ngs~##/T{ t};G?DhЇ)XaYIaX"E:wax;18%?:G.pQ&'BI;mo<@Ϙ{l,~%'$ 3Ȫ,@HhrO~cŀ3!)@,'%,:@Hhll.d5P17'A޽˞b_61 $ ƣfĪ,'8Yl D>j H6CU C>$J0qYGQ:G :r1,wLRa//xe~.ç]h뫐/_P?K% HjF*7Ù.f1CV[WQarPRP˹Hx% w1NJa|aMg3BDPpEa BL9;uP<p#o,54JBfKieQ1ˎ!vBA1)P6%,{8Nc ;4R )p8$\3ŜLaO!Qؙ͗;`|YLN] > Y=T 9(9 fXJw2 +ũpe⒀vkp "Q%"P.2c ׃8`c0NtR H!S8y#)4cX;2S8p)"DH@6Mj: J !Xd&aBfwxzFYH2k! ?2.YƼ"@\E1)O!ILDqQ- qQD }{D@c*:>/ *dhXO㪉2j1/'MAC8 +!RI&8Ap!N'$NB:$4hC'vI`8J`ȡ $"_6!A4HzΘXzBJ@lubeD(p!NN.`Dx`0ґbVx^ga(a%, lPHAIM;K%Du;`90B!RBfAA1qTZ ;](UH;<܀JCG'y|I'gdp%P7wꂣ"GVCRQ?7c~8.gY5u1I1QgMO2XڀP_C=f\yό~쎈* @J S3<`TLK0u R bQv9@0D 47brmB,(K>H x8"(@QöLX {jNRYDŽa#9BӓbU2"s!,ޠt#yI'|E$8rCe 49ʆ+hI85 $ħH wER30zF~l$Xf=T'2,dS |@Jyy H6j ff2 9jp!c2Y ΐY0K4Dy fbG$χl H'>0|IL :GBB4jrՇC3e$sC 6"eA5M6ʂ(0'y$x҉vH ~Ӷ(&;4#0=Ѹ0|ߒV *$C 9ZQ e߫a8OPBU<=*L-T#4SvOw= ̡/|GJqgbeQ&_#Sjuwu3+qsXE=U+,qɟO|g)=_)7r&faVb9r9`(NA.G=v++ ^5=G%%E$Ac@G݂3Gā6lUgTB"d20?AGT a将~t 1ٜl:0K  ˁ4rhMќkY:rƎ&I3dDg< 0p' =n32DdcYX NH9YD}gN8E+sVgՂQ|q=Q(?DLoG“I@; =$ a=G #=Ngod0]džs<#G”#LI&B@b\.rvQ2Dgl%@@'x 梢HBaa2!7vUYI&aNTC1oD¼#c0 C8q!Aq,et#ϫ Ȍb xe7*A21&9%&JrNR)9CCg@xE_MWdȡ#a . )ˑR=c*n# ͐daO̜G'̯T+QBX@a6rGM%1r!$&`L̕gdFb\fP,sS =  !+ xhHLz;$ɓm2HDe( "is1f@HA}5bEDR|xyp9 L'LE5Yc$ih&4@rLLI= BS iՎh^g(h+Dċ'⾤9uav%DHBD`2x4Db3ꀜPA-"& &:;ZDk9e4sgb`8l')N ɕ,4HtP'R> 3': L[ 9^̀^^Gv28S}eKrg͆3 G\ɾ|NfH$% ~nc=e{38sEAUt( ѭEy%-Rl/(T8j ptGIFuR(?HL݉dE&_9 |B>Qg/E$24$5ಘ(N#4بMKD\c: $-,1D:RHE8&0I猫HH]JxФ0od Sk ]HkYĄdl`lUij&}>OZ@~vr)U=OwܳLY!6#T"!*.8]ԑePcxy<>٠.!p>r>SeUIȘ|Twn t"F}z6rGD">vaYd_#T"y$f̎IRF1b']p'ș3KUB^) GI˂JpNTf|8պCp޳߹gUC1=?N3RN|1`q we:F~g}2:zHfǐ=<1ך &B$uT),\0Đ:' F` :1:q6f sde [y (u=5+g\O.b@DƩuVh/~jOuPxg*0K_ 7 DLzg"wkV1re,%|@!Cˇe,J&>#`HVzTf.iQT:"$(NX P/2q |R i]4y*NH"z)$ u0 O<3W& \ D'8'P漸pX`"XLDqIBd@y}]ԘpW5 .W6Q"L j7 @ YG$ke`D&'"yYs,HyB:4HY 8g1Wl!x"pɺ8d2Hzy3ffH D̼3hJ-OxPfmS@ŜA1EQ . 2BdE!$&Q (Q: %!ߠPE 0vwPgYk@(;1WB4yIfRbgՂA(eONS47<N"2ט9! ̎q)a4 ٛaCYDq2|MK9̼QfgfF4 C830uI@8ߪ!pgb3{3݄̎8'𮨠Tb! I'vp8d܇&gx B]l3l0H 㔘+W*I; gQdP" (,`r~DI *tqΈ3dݰ/dô$ ab#ǿ$P"2N tir #da XɎLռA?ŅCy%`Y{wq7潒(Agc 2ty(z4e?gat!2LǗglGc^&xqvNU Dm du*sR-> M#qi1Lbp C#T3φ1";B$ )!Dpey$+[f# p U}l9$3s.V{m ]LnG"ʇ(vH!}T䤅#(7)3Df!]&"c#ʰ9(8K+B>I03^'Ω ݉`F5qƔ8=IT1 pJXbCKKI"z&2&sD #2'|-šNSP22D>==TYd[D @C#g/ ~|Tp<9A9 CA.35y s(HT@=eP8; X3c" $YKNZ;3@cMDv'a(Px`3(o2( 6"?Ƒ_gHꠊ.k!c:sv^I\cT C81YNNNav& y1T dO줧, LAD|Ё%GdU9LuIYF]0o3)"BIyfySG% )#2JᲉQ!q$V+*H!UIP9%꤀ g Cyf$aw]z1L;%a[#$Ve 1'7qwMd7TffY}ԕQ A}&Bx,A$y1,= 꼱US ^۫&8F@H:v^)"(/TUb'@L1 0W|Bd~(hYQ*I', `ޠ RA1YDk3@clHN Na6`5DaBȆJ XyX"u3XbP$y!gs$%C f0Pv蜪A'NG !Rt;PT'J=ALA'~!.C7'fL+ԙ47좢y,:U Z°!DJE&$Qu겊,!fOTX,)i.f^|<ĸ. FI,QF!dAu湍6Sʙ @J 懸d8͚b0PI@H #9"Hr>wՖ60d&<=Xl*EHV4EIp)cx-O+M< 8N". wdJ$(^T(y T39 D9 =E8h3B$%Ma~#*@HY.*DHb$N$@)nHH6I!CWzzA,ry͉S 3Q2T0H fЉ9#"<"OMA/'0dKBsIl` lIw+wznۯ'a"Zs<\G;棁`) *=uC8ILWpT ,@ǟY=s-@2ă>$<3H{1YI5g{?f{ P :Yȼ;٩c ߮xYr!ْC^03~jA!DIu0Yce8A{"h#dE"Kx@)M1x?-‘Ͽ)ӋDЇ^r~$$*tF^lD8r9k&95,{6KϧɮD0tdd3G;4Lx5q$0JbA$KR@:Ya%ʹ1/~ *4PgY](s&,E(ƨX55R-&Ĝ&g̽0  ˭:H2g 4 3Ys)u.XJ Í y,Yb䢎X~<'ege2;.NbHSSi &O" W) 0HʈK0.3;#Q <=wY yTw3Ȉnj>w愐 1]ᒹ9͈h|LA1.Vr gW  @D Wu!O!(sDHDό`@ 'p LHaX`"<\ 73%f“`VtO|B<@`p` }A0g%fD$nafy$EoݰI"1Z)\ ,@*Ȱ,YMD0'!Xg̞>2cb?t' iޞ`rJFHb!ȆdXFzbȬ˘9yl" X]s,&7SЗd ,SƵ?T`@= L)$셄^u@;⺞@vN ;e @X!d?:PS\ts8댹dNpb5%D8DuyϭC*2_9I$緞6wn2哜9KvcXjfc͊ Ong6l$N=%ᆴ6I1&kBOp|%$p" {q(LyeDu/rAD L"M9lLHqq%>@fwyNڄr?ͪy`FeyxrFc6"SDptu𢎵ȁ3Dh @=r!0 V:Ia JFHH!fEdC\ɡH{٤bo,'h xQQw`ԇZ'^8i&ǟ\h:,DvXy |yP^ Ne9x9wAh"ca[ ݀lAsPATSu(b@%@{/!!J) %A:3V!]z+DYB$OU / +{9=͖e}eyzYOe P!kz2@# rx9 2a-, vOe%\@vx3,Fq I'3(hK0/ 8ӞY@k$jNW i2=,Yl0Nu.Fɞꍉen9X~*zl@#9csAבZdmy fX%3nGhSBe"O~>hQ$^89w.' Fmʎg3s  u„9X"BdHd) &]:3!$A{Bs%Cq?WN=Mdp9<잒<܈@cX!͍ lCeܩ82Flsp] .h!2gkʲ\U3 gI2+( q%Ts~lI|M)~w ? wn fk8?$f$g! ox&j$N6s͂d )xd& /8<갱x@ԂĄ#_tɔ^?THX@ˡ? 9Uz?MI-Oˉ%4&)t$HT<Ƴ;9e7(gR fH S BkAEXڐ<&w\#@N#4@{ZQ l,VpH<24 F+ANP<,)sLI3`;p0GjIIr) X:I$®  Rp GGidh!|yReU%㟪lYg"H0S2 ćY'^XDFF Pe!Q$A0\Ǜ#l81?q />,`F+1$ѩyo0Ϛ@J1,{7mKA8o9|eBafwxA',<`d>IF a6!qG)`HvUP2hćt 2RwfHIAuHwEkpB$)1g4F@ Bdo.h/TȐ-L qřb]rBA.( "B#\< .*LП&:TDp%v*D$h !q)߶TA3pJPn@صFDHP8Cx1yQ1jǣ^! SQ!U~D!ŃAhJt $l usԔ?g)L!HҏHǿFi/KTX)ġbas@ 3&r(GM#UǨ*61݊JR 'DC Ňq("n4LIQ, w{% e v$I bl:tBI2 FW,(,!)瀐~jMиuN! ( 'yhH(n3PLO%*F8$.D${ Pǁ˘h'EHqu @&ǸuHFqDp190⭠` )-#y4DDJsRT4?TbX tdȥNi`]|Y8̐#^9a Hr$Xc7< #z(k dA~jI%"y$@B#1Bgw")>&21R<:+{Z@d P40z!Qa:xFǒ PO|uAޙK8P<_Ja'nL+" q?v@`|ϫ:AdF gs0 : |6!.<(QC6DzGV3_- B_U$ @U離`xZ|;Si\!'|>! G>嚄SÉ'[deF}^ȘF^ʊRegcՄs %)& '0NdC13)1]=BD!V|-{)2aȳ=%%#ddfy<f%J >nD3_5߫LBR3@4º2z2^ϊ (,ߍ3=|ðzז" `vlkD* ̖40K9 NJg`5#9r㨜$ȡyQ,$;՚F0$>˅N3h%K䠢Pfڡ4ȍN!Rn0!0QFJ2!R!:a"Y E r0ING[UGM01sl 1tHhv >bXFA B'ax!!mdK,LNP Y^yˋ&Pv}sNlYv1?UF2O͗A$w$D)M$]* XHJv=;w%E H!/+ ab:lYDL)WA7`l)aŁ(̬epg+"k8r܆1 :g%/< rCbV3Ņf'/ܧ96> c~\:Fў 1 `xIǓXd'́" mMe׉k'w͕UDI3YN#XwTp툂eU4rgVdAX.l:U DF4 ',3*MΠØ{^3%rEgS"qvbbNIɒ O>f$zfppGɎI!a 0 `Mr`&<W@H(I('rdjJ ,2b'$D9cz.LJGݖK$}@ 2RN&7$aI7T@2QJ"%Nqѩ4i:5fJ mvm`@g!Id0gݔNS9+6`2>.죉Đȉ G:TrC1 ,fD+ϢHBBCRY#?%p١<'& ҈ԳeA(S,PARw* w>lbDG%q;IQI"wrf'=# y],j*#=)#a>&qͅt!?B3"l7 Lt$qp/Q ;}I)u^'qaȌ,YLGadyPȥ8fc8Ǯ(!a8Dd?4<2L1'^ TH\b|UaqиV x&RqI 80P cD뜦_,O2~!C M8G/I@Jכ@0*(sRF$ԆJȰN̈́#Ks`m)(O_z/:s&W5%>:rLI]ĞV$8B@|T\9j&ׇxyP"d$9hHb%1gX`Cp P:&Ex (-ZIB0`8'BpSx d2*b/x rIӒ& ( %$׀Q%2Ey6HO&OrERc (l3uGI&' RAc1JYL%@ ٖ^@$`s4) K!p ";!! n @&:{P`,r&sY{c'B#,DuY&'2L3o1x %ŐE1lʐH{OQ!)&,D ,Lf`鈅g%3,lScdIsȉ$a~lDD2tc6؀$k$-!`uw>> OK…) Hm<A"+<9P,$1EF7A P/J#, paْ:udIta~gT[:# lY c`gj$A0iڏʼнQ)WD>O )$,Q"L"}UĜ%WqP''IXr<-'3NyʥInP2wd1"Д\IL1,*Cdaz@pQ9i1;a):AH<9V:yt'$#R't"dR%af C/ђJruJ#gfA |vU:ds*y}HH`~Ϛg9.)q$T1&o Ԧ] l5Xn;UI}yQA(gEP֯[pP MK9TQ894,%Lg+$L A Rb@'QWyxGxqt&pWJ!%Y!&I}v!ƾ`Nt2'D|P$\""_|gVP|EDp^ylzjvVTg(Šq\/<=qY%#݈XdOɲ~|bQ$(*r,` C""?s- ak&?WT9z c,;=ql,b+dyĄ$LO;U d~v9*/ꀃǎR0[z#5 d)Lx(ќ5TGa,nL6*H6H?>B`F8~O N0Jd\ae#MR01Ҿ0@ĸ' "R<݀hy'~ :3O)$nb͔d$D;S9lgb"3I$*>+Õrp=XiDpzGh% d4jHr 0z& E' &&sՠ QMuQAEibg @C%=019AJ6@ c̀8pyH%4Mqĥuї0a ̘# ;Y0A Am ).1au ~ Xn&!(u"Q0 )`P^+ %3Fϝj=R r{Fv89bpQmiLʘsQAy$:j"NOT"J&N l|e v9c1 IHAp=FU ۻe(C"L,aDgF&IuP}u$4}EHdgjA#JqO36cw&"5xEUi[<1Gfxz株L3!dЅ|uc]C1?cCb=vC^6#fbf=Pg93JEJ>j=RvMѝ!"E,# xqy0<Sd!*eCtYXrՔ\ ʱB2R(c̾whOT tgBtd9X.]tISc{'LA$dflςNOV>'$t*Apda2y=զ h sQ@)2LLt.Ґ`WI$>(@)EHך`H? HOLHLA!_e,7`ƵL=7}$ Њ"/c?H<KŜbnR>Qg<Hԧ3WwEM@XIgJX4?M C,*Ex<Ꙡ~D٠%z8l}=JO`H|cx@ӎdQ<' ̐3J bAw)asv(HC 0Ol'Y!EHV!p:XJh@52Ρxьa>\R{X@d/:y&('ArHjd1ID`&L?`QX39H^fĢXeYk2(0Eba'gV (yf$N'͏x(14{W%!͚@#X 'h|I<V:`$2e!מZϮ+ۂszq5?S2D-a7(F=Ԗ8?V~,Yȉ3e|FV!$R~^(@N?0 |dBOsBbĂ\OTEu*g8=gC3|X T(,ђ8C#XJv!"q3BR4ꡈ$egB8' ㌸ zM|rɟ?Y +dsN(O)$CS}=4N>Yv`@8x'H!!&E gj"%H e݂9d *Ho)qb| *AAQё}tLyq@H2穚S A{Q,JS5 ;qāxeʳ͡ 2QqOYsAe*B : 2,@$ @.r3ga`=uNh :WHr2$,Y`AN]R[%  8VG$D$ /E+.:6O@!䪐'Μ9D<2D;ay$K%$bˡ2<H"D2@D@`I@C n `32S#e-q%!yK&8uʈ L0@ ;Ya#Ȥ4󨃰BcT)2AD"z!@xk@tc|T!oR{QXGbH\@ j13ͰJ[(h9 ŗ3 j.XG0lՇd2I$XT(AY+y\s&AD  k0fy)^IS;yڳhq1͘B*]ǑPJ)Vds !8(TF; ̌:`NT|6I"vH8Sc/VIrP$`Jl£CyC@oKn?Go, Fs؀X%ܚ(,|+)I>'vHNr52sz>XcGv4rdXw4EG5؈H9 "Еb zfwb@h M3>~nck1R=Ȟs;P12atHK50x<ʐO,]lgA9%xO3 fwUiRA$ΌXJCk+`y#$#lD|?4=u IR#aD/ $ g LG̝Wf^4MqT4v v&&)su0&&k<& f@rE,D5 cW_Ї46\d&xXB#0 P% iK vF 䟺c )#$y!?#lyA(yZG8H<&̄=@d!a%nԢZ;a5Ic"+ A9FΜ.a>*;010nM$>OwhaYD!ܗBEaz/HxR$3Aq5G"<̫S#fkX9Ë9Xzrb1\#LϊAy⭆Fe2@t `dz̀(X dM`2cQ%!}ݔXĖ AY,GsTӥqBz!OaK(wV1C$N 8k `O$'R^D'd"JY(ÝqD Y׈ $9/2|u`D q#=$*DzM]*U37, LTk]_CdŎO6b)jOeI?u <U0 ,3Y҄鰪&eݪ@XYi쀋Ot`sqJk"y\PAP9z?`pOݗAךd1˾l8 ςLg"͜G8~=S^CdbWp#)T 2iL(x*s,$KprAHT'1#s1pX&Bx {"=u*D`H PR3 =u` O@q$^ T`ƂU Bg9"4,O"yI$|"fq\$F,c˓՞deC#4dI $Jɉ hQĭ `~Cਂlp!6 jHJaML2ICz !cTjqf cJNTǢpLY7 D({R0E"%]0=#ɧ!"0q@IՏ.no@&4R]wdG\lI r >[>.=4rFKZdXs1(s7,p|V 'h7;"ܓt~+):>?y39B6?;Pmɏ#U%'X˩ef)tTaNܨub]ex@694a I;b|>x" 5#usG2 `Qyu:y gxB nqxtw;@Q>ZA$oUȂ@R@e&"Ob c(bIptLbd#]cA2_J(* M(7-y5b #.C]2%Ir'G D);/t%B9x<Qsh` TU8z$2^ NۀIcl<0"H ՂtΏ5P$7$y`Dxy@HydKLTŠYuVpB⠡ Ba!%:R!Rۙ0٠Iw14z#prO)BMI誦_0㬬 ';g'#O:<0~llX@5`[C|Q -dp Hk3纣0p7!vH4a(?~Ij $=ϊ IId˅$ ^c xΰ&!1+2IȘx p,K߫ cy#*ME5 gJ1xys`a:COIxEp*>*V (̿Y2J{JY~:Y9_5  aT6;5n$#eeȀx' Y6"ß1TG$XQ/Ɋ$,Gz`2U( u #A lRt|xa D6"Ͱ|mp封Iz(q ?ʊ ,:$d7<,Բ2 hLF@\<8nЄP'ާ}5 :hb!w͂*;@N;F#))HW > g,idf'܃c.H0'Ϊo'{^Ig7Ȓ+``4'$$o͑wתIzǛ {ު & BI%'g4=jsF7 ̠eNP j߉gR1T `:/*d ;P <ϫK ^'.JT8&t:W:D> Y≆{*u6s,tpv 26VSڔC\a D&rg!+0L fpYAb2]h6 @)GPI9 O-Q`# $%wd#$9Pa&dg1 Bs{wT9ɈbȤqIu$dĩ L ݐ^{ 2IIӴ;$)!a%7gJO):L@M'"RAbGId93nO+$o}|XCo3Sx;Yhٗ(UUdBRc $^dWWdy)$1}?ȹ$IuLyd<אc'yaAē]`ᓱПu\DqF{Q5z]O,Gp1̺R7wph0Omou'$V 3% "y gf^7#ȃbF bOm ņCNJxF$u/(tR@Ggx긱!Ĭ>zRy^AtrfNtrUW .wy'+gg#I@Q0W3߂ KH> I(y29Eb@Hf1Xq5e`t .h0g_'teJ$7Pnf#( OQ]cVem@3f,5%pF 05adiȜ:\_THxb42Agj@)X5{$ٵedA0%2;IY$͆`Cqÿz`bOŐ.G"»wfؘc 2B ? K1jH% 8q@q<990f" !^\Gt0+&1N`x7hv\3@)2n|IQ()Iދ.%9DFTTe3c!t:%24$ D'dzZ;綺pL\cPXFˎtf8૔r p"v cNb ;\zh7/$1R1}99^v>,FOIi 0='$m|N’&GY{ӹxR364o"{"q`s?7G9' &$h?)l xo';a74NYBLKq+9'Q"KŒ }TnC fݎKD1VT'( ]ETrʶe̅Ñf9(GL}wrww1/s1=}Dby;2$wAPx㕧3I^B~zFHp\t*&#Hdך-#w``& =kL_de9s`8ge9$Ù@  == T %%#>qɈcxZ F"y<\4u\A)ˇDDhX 8a=(Ac ӥj+kL?EGD2q;6nA s) |SH8%+>lSJ[=hYГF}bf(|I]FyA0Il3xA b9p2"P̲Aj%4hBC[Eq1$yDI n$bSwM)'B~ X` `\|i:s(ʠ0$[Pj2bZ)* (P,@D?T%*A(y0" 1'  L 1%'~)$hؑEES 2S6COd@ % (Re8nl8'aČBdÌ'giX<d$)r@y|P 88 >`{NPȮ2 ;'>6+d72{ʉ(N$.)z<4K&x0!X1 Et$r 3&¬5ցqԀf5UQ?cZ A8 jGXe@ icbGLDb! jrb(H$+U<}D {.$'|Vps$EGHbǐ'z #P"Qc rh]0+!)1+>Y,TrdHHN} )~Ayn , vH9(!5:9<,1HaDD )O]v!|OJϛ,(I%&Lp^h˄H5^@bQ5Δ8ep& 'sGfDd% K:l6 Npl:B!!@Mywx61$87XyɎT́ĥQ9Lw+B flEoL5,]'u#'#/lCsD|^]u> H9$v!d8K/IᚄHG}YYN>4#.<"eIB>Јe{.>[${0"D$$>FDp# vǀX 8νF7}#<J@ |<^[9x|F wNnLBޏ^`$flJ1\0݂QbY ٹLV~ Å_"{zδT09H pb8` xh!T=WH1 Sܖԃr=a5Sqoce%9D 3lpC\$=7`HNz`̑t܀R絡I#pB4xMRf52/| lI JU,p"$s0xnp,@Ԝv7y=We$!0?tEeWV )Kx0H@,; \zH8DIEdFI ɉ" C" )H*oS0WEA#h)$Ӛi(0׫ I1a<Ѓ؃("R N3 e S6K4p *2XuNU93n2pt*@OxJMs U l dfPΫl09fj'1VBjxx', a{0^Yj$B@]&XBu!2M?*X@ꐓ"2d !1F yt`VWvg 4@`7㍖$/$pKp !؆To  ȧd />jIKqǘpBFSIC Jrtfy2w$* y._'敊9Nm`uP!"Z!ξjޥt Ick8:Ddǘ6DG3,+<D0 P5yN8TLeO$$H%M2i' jBU w|e1 CI !'J49SA8ZppLf~GH$'2!`rhS@&t3AqD$/^$|p0T0 jRNɓ\a!%9EjB'1JRۻH$% 4.Ŕb@' !~D@'vMWb)5+؉D"OvAF{Iq׎fZ\bkLeH+d!`u-9d`IItP,3ϊ$QKyq)eqQ29f_ݖgϯ/f4j@o?%Y w!pUݕScVQ"JOqe_xpfgRpȎ?~y81k5$?TrC".%e_6G}|7gsՂSJ&IM$? }8޿szm}E]z]NwO vjIC97şf]d>*9Μ<8f\Gy!!'")fX1c_!:A?݉9X(#rgO "^SΓYedmNOQf3ö]QPx߃~XLaz! ʓ3sslCńMy]P=UR&SIrl$"Yd0g;?6 twϪ!9{' 1a2*F~o,t<Ĭ~'.(e2'',$F$I7 TO<`S^6rF6% WKGqD39#SIpc#Wd!s-CĿOd)Ye͑3sX wd)2!AjjL'N> vGg|uNyU$!Od&;zCk8&Q!&-!jaEggqG":/!1-LtNŜ pFǶfd0s.#<>vc_,?648WtDӎiN"on ĘCwD3. :3 r0-S#O e0W25Xr#X$)pld, DXw< 1 ə 4XO4 0R Uj'0@ B@TIfF#oCw 9>j 9B̍/dF,c,%>y1CE aϓS:hsE*T1قLVI4uq*jP{wvDm% c* #!UĈcl]zZpY˭w9)4pPCL,qqCd;?A'qI3#?UH}AdDdמc=B?`R=X_iVqS*oY%" .'TIFúL?i`yb1ڰ'C̔ƒpptXUX쓙Y@kWHeEs I 0@ßhRI~I3{ CgK F2 3)!,(pf]`@yWHP9/TQ @ ÑK6;&K- y` G:vh憬$L7&;gx_TIϮ/m" >(CUywOd\ "L |?zg!x@ӂ̳GhL=DR˪hLq x}ѐe⑰$u:ahd}Pcg9(b8ݗ=\$?OX0w`rf?7,Pf5CxHu$8`z}S9Q4^PaC{$

hNHge XL2bXM  >eq2,.KΟ# asH+8p&lJ D` JA32BRFx]<BpS'd`?31$/G<{fX 2 %#fOu@{]P \RF<O2f@9 0|>} 0I_*a՘,$7XJeLErMRgC5g)b0<:T&RX8".>_1EN3$r"/iи S@r^lǾE*g" .#r9NbV$ǰT:z`#yxĂ#q,!lEX( iHF51$C`{IfQ5@) UQRqX$d癹pH))KLDoD | Ǥ '&~쀩`[CNb1c+WSu@V E2A۬8'FD; "M QD@s giX:kAN"9'#(|bx\Drq@DNj*$#`;M)HLNx1CJD($uI2<F*: %Hc3F1RJH}TQpyx2T9ᣢ1 7S|y+j#ARH ݥ":HpRd&pm"j LjQuԁ2pCW 3:@oT%Bhu$(Ȧ` G0M$fa=ABA<e $LF{LDH⡸D8(chR`u>i!3)C ` 2,.,1?H#Nd@)L ?TRyh)2Ì,z$jP,wib:d"/ Ottͳvb8r2!X'p=CS*qsd6 tr zvj2LFsu]@1R`RL^xhF1/E,>: ^Q1X(I1"u"&T968<=c DC`?K'@Om2O;Nu*D4J/7]ɀ,' ~(H G nHySkNVyv3ł~^hQeyrHL=T%2nJ3>;q40r=bEx @ /LGN MD(,sc1ܦDt!I8O0TTO,J33a84ЌȔ`F7 -#r5*XWH3F ˿|dɁr#͊[ᬊ)# BrJ "Sj%0BCw {MHGvV@G2!i8BF27|sAYddÄyN^ -VJv05Lp2Nz|H>'5v#BU ՐqM=9`1`ŗy H"N '}:W<x$yڤa=e<=.LFq{tz&3`ާ bXScxc DjD% CCxnxV%:Ϫ2z?BXqE*9H$e,HDd=3x8lD?9c߾ XN/!މ '>ʤ@$_M2Y₇fKIyAhLB'RgL"d L'Pw{8#"#ĉ):yHg2z"F: 񔅘ēr`$NʼnbX H0ԋ(Lx2D(fSqdl978b8v/!ՉQWX@+<ݒK;W0B#2L3@$}Ǜ4 Ebe5mLCaeɯgA'Ug8j{O8 T:ꄎRc s$N'sh y#Ʊ!vrޠA")28T[9T ݐó$cMgde!G@u/B 9GtLpI.瘟B%9Clx߯##UAI^^z@g>M0gGpX& ÂQC@  <pΊ`K n (Nx@ )$"Â$I r'pu'esqSP>r^8rI$q\X!_6T(CI$h@aCwa>h$yrCD4q\&1at<T{cɝSvC1P)j(&"9a,'yTGa6H,̊5XeI@ {(t  ɸܖPW<0!{AMAN9xz C>㦈Y9P; N140F 9 T '/M"FĐs;5FͨgK‘ܴ'G,%:A#"4GAP%d'G`>?fB'poTbi,d?1EsvLl?M8c60 ||]D](gb82Xxyhwc>(0C#;%MwNj&JyQŘq\fՀiu9k3` yvS@W$;Y'0YAqP=H$]SD̞F-(yG9^= 8$qd gwYXd(>,es&nœK@FbI*{fxx5b |Ё%⬱O?4$gpld"b1=ДĨkVToh QRH3dQMIuށPXÿ@43S`UYD3 j$kRF02u'lCZM"| ǁg@đuT_l$iQA9xPP\ P!"PLL"2f|QIeˁϓd#Sǵ\I%b^'V;Kf O9.Q#! /՟K$x9eiRvg'L=9F8UWU'y&(IWOtޫ҈8Ƶ&a(EMqǿH#T$!"x7fQ=OEQ81=c@OA&6,>RT!R'97݈>l 9SFl<9@o8R[O]#]GugtRkdw0ə멍435\GOBɑqdda<5v9N@R=s4n>(&DTTdf@ǿ8@(PB(D* $òsICB0GK8|R% d2F ?Uc=RVpgS3ʄTNϏ#;騤 HZL'U:@`Q`, T9c#b`9]:'DŽy;Nɡ |re&:g`Ęa!rgbu:Ĺ4-'̔'{e. &f_?c=єHkYP[AفO2R 3o e':ΰ>Qa21a,|W2]!xPJ#)%)1N&e nkVOt6$U8|幻 HҘ g$L )c2^;D 7T3[dIDV]8ؠ88Fa4 !8+x#A,1݉frq9TbN?} AeBCNrMD0?F)D0 e13!C D&9d)s`$yLrJLc:~B&8!ČQ/dKrƠߓQLı #v((1(;|Ѣ `R,".Ih3NBaІ"IM 'EBp<IJFºY$(/qA4 tjb$O9Y?-2 g)\DAS @]OdU'l֥Đ b̑k1V"P "g:,NPP#$E 'qq f!S%ϙUg C |*e3{$8W!1>=а z|ꐪ#A-/6r{؏V&$b|=_$H+==&׫Ry܈eGlu1{Xy A\$sWjG N]iը') 0BJт x|U R7NHdHV ^TL)8ENI{lOʘaB%X| |2:͂7l0$NGc`Oo xy &sNPCqB*81YeBf(C0%2%1 ǎ8q2a%P^>`Oq*uBf#,aq4WkW=<Yb9PPyxʲ-'m犅(vP,{g #s&~t0SbN$<30g#L'R}+;D5uXFI 9t @, |U0(:=.aT|樗a*PDJhl4Hf@(":agz(J'!氃:D[8#8TSDO(B0f>*gFyDg@1HU,1O#;Y֣WF2I<!/mAa^G3׮;ydLg|Y)8lC݉~?5 xt;꠳X%qbo8dy@OfNϯU!O,ӷbZ@96gf kCuo"j^0$KîlvwQZ]w6e.^*9#`7;h0i䤼kAc 3l$Cy'at1*s|0 9yEF xHyRs "'{V1wAr3AFD3?X`(~p s K,F?I=qqNyCvL$'bR%6 G?m~r2># / =A(G'kuWj*:rP_3Y滛bJ$=Y7ӏLGtwFhY!+)8wv>("JuQbeRj"BRX5@P=uHatdj@tDmBBPS2p?'̢e29M*jEaGUGŒ ϭ'ȜHsIad"Nvi[<>fB%̞݃g(" )/xh!؅y{b383xswF3\lVbUA?RgC43(uFLrCѲAt׺w㕩"b 3fhrNmQDax'Dk5E;lj xWhAQ$׊h)T@0cm%{hHKNv&* ⤂ ^ 3E6gPFLdmEI3&odX r+ tL8=X׹ńNXv% V&!I8{͔xGUL^$8ݜa%cl$%0flF53 Sp|vu0,z?đN$8=T^hᘡC*@y#"fCC z^pF.^#@AVX HL%8g ] hNz~@!VOjZs _ ) $HFeCdC'' 92Gp #EI.E"z2c"ɂ}P!+Frj3BԌ^GhYg,pf9Ë DwbV9 `13HI"G;Y";)fbVOUNʑU (~>(3g>$F݁1eE29j`@V#q5O FϻʜIʔ#DHrp3,9B& ]K<%΢z Xy=RVP&=2hee1k$Bj",K$ć!־˃e&Lʨ 4.A0cy9Aɮ!ł,Q#jBMIHf LITȸo2T4BO$UIy]=K33lIfE0ܐaP]`V.$u6Hjc K2b!13`d# 5<;#!x:? )s`F1dib#Gc%(7 X ' `8@GBv2O9U%`a`qswO A^fΙa%Ɗtc␏Brj0d8I_`XdIɕ^-ud*Ȫ %&"\o`iN bV"uHFϚʇmL8!ఌ!< .cMA2 cTA$` lFDɜ&bVk[Pb(03%etP@R`g' @=Y',C0UaIi;s`ӝSxN8଀L_ <af_` ` l㉤B͒ޟ͜s/68~O?FRꔩOY~'"X"dA`Qx3ò1,68.l/Iǖ3 lN6tr qCs.K; φbD589۲a&_y>wU| U@)*CuH w4 w \o|R2H n9NSߚ=^A{tG姊I>]APξ篚 gP49#% O1 ̉>l'Ba5D&?1QeM =Th+W1R;oPtȈ&O*IZ!IJ3",nHh!\Lh'\IfFJȆy9hCXKы 9Q k=d ')r!L6#sN2%ǀsy"7Sȥ|<첐 ;.ԼQ zƩ0c"%,B62$ ybO?ꭀ '0^)<^h$jA@o&2f^smEtY$3."0vT=Xb3*WgT"_xFz 2ÝA&dDf>d̊1tsS9 rD.qAHzr*l eT?YT e# LS kj.BO6xYHH?ϲS&Q9 i?Qr" AAx^# (8*Z <ZSH˟)gTa@e43Y\odC pћ',$T,6!< "i1o ?ѳS 2'<Հ=Gjoǚ™voD2,G_|O"E"GU ޣ+CT&=|QbG|sU og~l"UqVV#;窑8GP>ZȑD1є @ߚ$;43|T5z'a{V)3RC%U v(*ALj>@PB 03vgP>@GB٤.mr!@w6säwYFIqu༳!'PU6i?U[2KD0^n,3b ϦhyҪ3qsX樬P { +.VUc!"&DJE1Y&tDfQY:zH?y 7/@6:i\H>TQ"1e: "O.R Qzf` (ztP$9|{Wx&ZcHIguC10N=ӦPG_4 Ŋp >~hxGFEBu=D&B]uQGXR%A0 X*Aܾk6%ֳ5fBNj9!z~yp0~. V-aG` A&"rG?2|@V*}]ɘÿtP"01e |Nɪ AĀ6&b"?2K;ҙ )&P}w YD1'l`z#& ӱ\:c Ojk*$2cB% JgyqO :o6A(^:2N~HƉ $sDVvXL&xG1a31XJS9EW@'g݉'DI},sg.K17bz If9xIr9OŁsmL`㇎>,!^=sJ=HpwʊuDb<Ԍqc`3I6O 3A3?)}qT$f\>+t謐\l ><~J1>lAl KĨ2e`c/A\Qb')3'ED_|f`eǺ;S>p C7yuՄ9Қ3{pBc!!3|$z؉OHBq ;xAĽsBLf| sLم JLtFϪ |^=Ku:J1فl&rB `(eDE%Ӥ8@ooq籪 C%$牰$dni0,wıw'6/!'9زHN32\TD?8YxyfOtAPxlB叇{eR$$>+$C=z P:Cg(^I㪎T(!D}`0 '9,G=`p$xC{<1,{8.{M8Al~*HFD::drrK3rBXgQbeDMg44$B+D`s j:p76vuO(瞾("`9}{#^9jU@10ާ%ϘQ"47cnA3萳&SPc1(g^%:BAEq ʈ09F @K@h3ѼxBa.,=рObGH{kAG`7:,Bv0cf_|MdbBKغhMCTp|wwK Ks8rpsa@ Dþ|]*q?gzę$?Ȍ9#9gd2?5m5,A(XD?wX4qn8ppohVSdO" to h$ r&XX}TɽxG1ꞎkZNo7ey63<9Qs_(,b/y.8&$Tv]_u'f+9\`:V!dUQv/@tNV =8&% l$qԄ:?(7+tfyÿ!䘼ck?v[xLఏK7vX3׺bg? uS'W5*3,J a *y9'EL־\)8>+*矋NaRRR:ܤr^Y1c9,8]ŀH<ŗ o!Ð#&]p|T2NU gFa#l/(MsM:Ȏ[5$")bK`o+!2 213d&C&9|e"|Y<,Q2/T1=8mm%1S^=&!`{L_)g>{Nˊ/?VQ`%øDWdrjJY(/}T3pYx :hHk-D?K e M0D@oN ='V$&':IXpcze8=qT~TsrŀJc }y_CF@#Xh;8S+d+@d}Q0GKF|Q{` ~x,FԽ "]A׻(/T'q$X$!$3V8E$Jy4mBV5䋆(ay"Pc I/\XGpZ!Hk rIH!vVbC8 ]I\^y 9qe4N0wbv yeȦ@ѪubXNq 2tCVVCB"yӻrA=eő)psǒ.@H2_w@2;A! }/ъ"P4{(ӈ,yOřL.6cc~hLB%ӤB_ЃԄI0so9澒q(z<&ȩG0dl3LShDJð^v=LM g%r cX=Q +ꎤ0w7:=O>9y7cEN~oH`;=}X@f.z<2?!Hެ#ebzT.HV.C1R8rCVI}}3dA달%U2d? ߖ.Bw?Lju_8NL?mBeu 99{9Y~#psd D8(Rg /.30GTh%dS4ۇO' dcA><>(?V#G T "rCb{KLpyMf=DLODtQ1({$xIU\l-`~F#H򱣼LXbgIHBlNC<΀+c![9-t1>9H4OÈNyol50F`ḻb#/Q;P!bR &E51ivcDP%S#|X(|EP4U$y&$yqMLcAe"YxY N8^L&t= I)@5W ƧeQTL;V2x|C O4PT *DbHRgEf1?]p$f:bCyqHlxK;AGz%bIPL;Tpl,הxU*#1πBO JDb~g T(g$xu2K@\K;Ifiʘ$]xhf4ssl̮*ļc}yXa3_9ǘi:N"ApGv!qFﺜIC8H?L/quC2Q܁,L˯1MXar@"!=XC;5ώvxt 0A3JgI*"8os`=ۚ(M&^H>lB!dܦ2N"7Tك"c`Q9ꉁP@>YpL1 1R5@s%9Pt9ŀrNPҼvI`$&).2yOF8{YD)k!9&fcBIm"DW $8ǒI,唠SjyG9M"("b @)D C(xd|.vrDWOV`A݄j いe;)I @zWM;XaI=%Q3 4G(@$|_˱)1T="A0)8 ߪѤpg&8}h'-BlLTC9 >&'Jg"*xVRvD4 2꧃ILTGx gzd8>P|`r6W>.M<r͔䕣/ pSQ8α/'/ 1 {G2萏Ő"B9 Jwa2Is3X%$18 ;9YC`8 9|$/`٩%Y0 AMpi=V4{P˕cˆCM/gFwVfsD$~h zC~Nktv:}YǮPK$XPnDw'L>t.݈I=~,K<ȼ60*r뺌|lY@0{L 8X< A~e((Xs9 `HyXt=^C+̀&HU/>:uJBL cJX:|y/|],J[uYd0adR$Gi$wfu,= LFM1 FN:vj FP17Pu3/3A&I l'.*( J$0#  (s /3|P~A=HGEX,&r2!%ёУ7! Ba x䗤~^|ԐR K$ JSI* f$ =щ&Q#8LY1ꮰ. ) ݂@0첂lIf2' :VPO'B5Nr'\=(̥a9D>B6(bN{D~f ᏊFCc^+c?FsfcclAIY*~ݔ4G ]#ǿG5?by3t|Ah$@CHv YL= gY1/2Nf!1+5oRILId(Q.i=XΛ+Ϛ Od"lryEļ6@6 80l6XG aݜ> =`Bsv~d)!4G mДҺDCJ8FL@9 =>dJ*'bMt9㝤 f0A2z ͘H8J"HLP#ۜ2nr0!rySS5u*#QX+ytDC!LFǺ_v o##-y%%OnϞ <}|ufE@و xXדfL]'B!_%Rs\&% "qsej$ & ,!qx}C\Brqdj@BtI9v"aDN3I d@9l\ڸx!"M8*+ ՛oD%u̓HIx%Hh p5Jxs@*^Xf~h#̊O4̭`ON1&/yP<|sLDIa@N,{$ HS׌dB rS)NÓWQE de |eD\\AN=)Ypw@{p0й +iLsA w;THg|Y!=!,t9R :Vw`i0>j &MRi:8tTc8C^ZIәx8_TfN^./͉V#H]2ku2ZGi.'ء&rY>/);}XVp#pxOR(eof?4pךl?*1Np'91MX&"nb^*D݆>(2k(mb"1O i'wGEeu>+bG.k,5y"}Y0#p(Osrhr#_+ 9Aŗ^xUHH_7}?ō ,rEF?U͑\apbIfarbOaM9 UWnKFsl¾U*W#(kOrq`hP?ZImpɜ" &v<#ɨgT,'Q͏-숞uXL,]H&d9 A8 G,̺2Hyߺ) 9a8*^LtY] 9D|XY20%n'IRd zWiW̞؃єAC9Ő@=N1qSj@VBB>h@clU( Dowd<1P=uGj+.x%dqS&C"dŘRdV%5 'a'2UbM1 rC`I.rtKUn>P@MJbBY$!P)u|,VL蒵rI$;i08ï +0^ dP‘@$H<1P fQ.bp`Y eń͠(th$Fdba0IFBLg֜ v2p!;Af+B̈)e G I0Tl%Rs>0X` (;) +e U'Nx[^xXgBkRO\2`gSȼ G(A'6;"Gc`D+P!_ZNRb%w^KHo4zr&;W0K_ȕCH;łJh#`܆g`F^5Blx;yݏTX0 BJ 9|KXaeߊ>N铷V8Xj~莢xc )(N"X }Vd _91xyyÙ9X0Nx,* 9>CGFv(ɸ<ED8r%:yzQpCO/fudBPenu >Zbx¡d28fv:Y&z!#y.Hqr~>la7Ͻ. #rz{gQYv \.^c'/A:c@]ecx[HGd. m4԰ w!$Ƙ*|agcO4eff; H(ad9/%U:`6#PO-,9LeV[ȍP1:PisP2VF,yӲ̑rK5)w :hBYhNNXzCH.RaBD!q +ӒP15SMC(K /pՇ1BAy02r{@L$Nv (ɘUx(idò G2}$!RȈS;ӣ=pIB$ŇBx3<XGݐpPDI*Hk˚%؊B)4B xe9n':CwyxaY9<O9:Ϩ"p7bDt\tMef\$$={N&G'ޢG\>\G=T FP0 %;e ©< 1<(\*Eu1A[Uhtpg5"-2jDw `&`E7Ɇ#p ((廑FhfTKUPp 0v/4I#CrI2$II= AΒԠ^6%Gni@d]R!1׺56p|>Id0G„DƂn dïT&<>~=Q,>:9q ђ x@1TY>E3\L) OuH(9c be  qC0P裷H$4#OI}L# Ǜ&@dz#>d8[ETNf|6$9?5APH84bѓ"xjD`}>,eSA,d& #` y! v^O%%nvSBgĦG]s?ydM:ؒy ^4c`WeLTqHT8eۤ#ދ-:Lw4^aTqhcw^ۛ HsR]u"xjw 8aaOI<2P`P5W욢8*!y /U`_~Reg6vDg(IˌϚK]QxϚ,a/ez|QD\s"qU2 2~jꡑh؄q 53: 2]7! $9ZfO (Wj0 Lw50h Œ1Հj, ~P˄`?-,2,cs)Џ +@v~bii!I4 :hB > (K&2Yky&^`1۲"6G,4r[;|M .}E0,y5W㯉5ct'ݙb;]]us.LA)}=@C̬a֤3Hc8H @D|2&II;a`wb &CsIWN=b!, "c0+L`JD̢dPYpp,R"YS1 ŊUfF)˺DҬ!Z'qF$B5'L f>R3:]ϗŌwTnS%_U8aLP `!K/dHt0CSjAG00&#C&6S.$hJd}f/#(IPqd@5<E#7s]#J?0͐AE ;)&\R"_uA NiT{jUBL@`ù s)ȇ 0zP&Q9&ő +$G8w"&\{hPcF"zBYt#8F냔Ư #Tyh$:eHG\Q9ތ#\,63Yd`Ϛ Ş!Y{A0ѩGE"Li+*xX|32R6J`= +棂EadzPdttd$`*(^ ,kS0ƬBMb^9u=>Tm; #,ȓWX뛅|A$qXA `q,rQ @u}۞01"<՜3k$r'((xnGa";Cg=0O 8GE3Y"y?ĐVԀM66Ixuy~i]şc7OXZtgBNUב(:aIf_ʓ=Wy8zt;fDc`e~((Ò~s-.<I'5R%w` 3`c`'b%φiq?Ml #:~c&NO "&f}X%g婃N \ďA2b͇U1;+St$(!߼WQ+|xQdM(3$| ,,TPXԜE0CDYDeG"=z(û<ʳ=T$<봐:`)Cw a>x(l?Vlŀ&h zd<σ=ؙ=wL8/^frId5I*ϟTA?baV?/#cU09v%?Xؗa9gu_u4^ &W H0*GN=5BI Q݈eݖ#ax>_QYi7>Rp1YOwc^=$c ˱Ds^3WŞ)}Xl<{ؾ ! U$` |HLɬM"/qPR 3@yՕ@HgF$`y oeA!?d!3D H9;Re$dg$(eh!|ef(8uBzjc9o=P{BixlCǧH? |BLѩ%,*byٱU*J<$e'%^/N8"32Y%5j$l{jBb=5y,JGϚG~RC3FdL8 yݰpq1Av3J[st\2DcQϺ@0ft$">*`A)xtCWOIˉC0̡\pj Ip(09mP"6H9{0Z#O)ޜB7|3=MO /x* '#1פs1MwdW&3`eggULO+ ̳pǝ(,t'}/i'%,ᢂR ǃpI7fW(q CφlX0P8߫RΞ.:>K9gtY$'G4Z($™^K%^.cgM>ikk,s':(`t@I>QL-F2e.T‚Pe9@ z=X`%k +Βr&zqP,<ix۬l9e(}(gy_?D.8g>Ht68lY䱾rlu9M>j$ 0sP':!<}qdc qx]z K=X9⊼G3@Ȑi3L_De+k ZH"`W2į N@m=V>8A$s`<*qjx#t`yHZ_}atz Jϐi$':+ <7j㢠B  Ǔ 㞬ȏFIƂrrTU#F8I,T 5A(GuDX'{"X٣Z'MSat ߾"w# كx2#Gʼ}XfeTXMI>g<efYx#,zQnǷR`cq&qGfqeTjݎZysWa'wU}]+ke䜤 N,,pـq*$YO_%De8ӷ@6H!Ǯ}VADqBVO zk|`(8,'s{X wYu~bCdJ MO|\zݞg#,wLeE;bŒϸ+7 bb<؂SS]8a? o&/2?EKÇh ,c$N#J{|DuP&"z1ӽsbDo.%C0疠1 rw=uggBK%j{a5Â& uYsK63>ʂ*1_`|0vO38P B ׊#Q DZ! ꁃ,|DuDwOY &Lq" $#G!q*>sdAOBtX1#NKD 0Y5B Vy!R)>$Jb6"$Y :3\)Ujsf3 {STD@︲ϕI^!(tqQHPzpy7)N+Q" "BW>zbul$Ӡ<ϩ831zNG-P<٨%d>IF#A9/L8٢}eSH~{'ZD&|uy ,wRd"\U#y6|b >:Qĝ)1iZ'px"Dǖ٤3s?4x9}*,x|SS">cC !tHIa<>PP y+T%7l(KYdۮD|udŇ^9AM$뛘C?4YbiT7:l;u4&0Pv$g'ӇrLSip7,@N$ו1W T{,U_uu7c>? ff;Dz.t'G%y#åe#Gs! .\w<+1w>irxνљSXAr!ds*9̓@:3P&5vkR%ʤxH8$rX;YY@bop7&31@N`l@,,6q& yc=*ď-)u03$:(3`ќE00 "v,Tɻg .X1.zYf{ WN,#dE X@ ba1raH !']N-k`..$!&ab@BNGn5Lz䄸;Q:hyX#>l3/G\bXf1z>*%iNTBرpa8YHE}X>}0̹isc.>/;fl ;{:fpc<=P`d%pyln:DC31'%Y<(KgPD>{y|"M 0Ԏ~t!A81X6&@x;gl*ఈTa!;;~h29GLV Ϙ 0fj—3X:@zuaQyQ`VQшW`^XEӚ y8FQYCei5T˳yO(Hr?ƨ/$63`D8Gt|r(x.8PO1YT"%9+D> Q )_OT'?ݐ1)4C9Ȧ(Zjef=e; 1aA*46")c3<9ܝ6~^cX'Q-huȏMq⺌qϹ("8xPAA?jQ9A-cx灭萙uQD%3>d!cz(2,XF3r3,a$w?zYlȲ5ĸ6G.g^,2ǘI{+h2/!'%'S]^wX^O]tأX)u4 s/ ̏bM_zΧ/9'$јb=6pSoZ>ٝ ,|G=Kt>QG?l;YA ;%^ǽꌰNV7p3P.^B߲ō?m:HO9cuWI`$j[O;b2rIA͟!َߨx.AIÞl!x3OMgXC<'V$aٕ8 ꛋ%kЧ8F:l" x>#͒8"M*(9`8 דld_vy2d~\nDw0M*Ĝ?vM&A>v8XrvRwawrRWdFl1g$fJ$v5$gH0VyA2C4Y~DφA?%Zo7ڄkk׫xze&aBǻ/rwx8\ ~,-jVSwȘJf&sHu |1S1^*QOi(b ,<ɜg A=Ra_惘fX, ˜zW^A4Dxެ$gY:ϓ} Y㰛8"8x 0Bh !;l0C8]D3Yde#GDDBJ$d'yDR@B4EdcfLyy\&'*GFW|47N$uL䘅ij&)-H:aO"C0>Y"lǚ%9ITbd8$߮.ca&HhfB$$ʴz+& &tēúw2x#v= 8$ uRa/R@]=g %tri=,: pռBPõqn|T'Kʑ.F+\MfX'Aلã)<6ʤ 0(?`P0r a/43>Xąڰ\3{^ԍ~}P34DyXdVR"W_őX3D}Ur$?%9{$?GN0i,#Llj ͼ@b=yJ&t{>(p WvR``P'SDT$I̙-dJ~$\ȏ`vFsG0}/(aϿVU$>}Q1qc5`%} xsϻ X>T"?;@x9=d&YW/3 $2[3<1l<0 uMQG0>T*0}R"PC@o%$bg7Z NwC'c>k氒&|d,٢!b3I3Ć>& C0ʃꗲ z40f4zЍtwd {@,lwd)TI(3֫p(N9?Ȳ N="H$P5Y ?6H'df9 >Ot9fu,P"2Nh,Y^7<6< OGK=Gp$1T!xq/Axvk G:IdXI^|I4ʘkX@e4%{>bΑN%9xwnزu/ŀ ఖE9FX>bم 2 F^U!<ENXIaCsw5NXab 2YȚdQÈtGqWXT2VVdLsecג鋞J0ި 9 B#OK}Y3AW3D+.y]y51_OV#gCuļ6p=ẍ́}$$ЉO?47'\.xV^f{G℁/5HuQ@(>( KVxϏWG't~|H0TEai0BɤGIM@AǦg*j?T։'9#fT2!l<ǖD0UqspKXB AG)\`ѰXe2^S'T:CL o3b_l0@*2H4i3oJo4oIGqwC44%"*3 q5JLGϺ%2Rfbx~ys㉠""oYlC(gP Iyb2 {YdKPG׏6"n*\r%(y.;{~900d? @U y~hY xpCR=ԓY"X0HS')+.w)-'M|ضr  d4БYLhA))<4%izxk'1HF}fVS "X(fc_R3U,@/NsbS L(k܄R @D&C<u|GA.g'q$yFL<.#vpܢ$X=%FHtX<g #FN#Q*9 #$Frj`>+ I'{LapI#d2,?`BXgXDqCz@}yZLO" "M7A X]oZ%aS|f'%+r"J,M]ȟHBg~9 RYJ}{N>&˙'>?4EL9p0zx5 R'!G9?4/>)Ȟ:}ӤǺ~ǿe/kb+|Ӏfg%I2W`0Tw'r. ̰DZ?fí S7x7E2E2/*w8)\i$:!+:Ac8hGA3&LqDKcpwSwf:>^(L=Е:WW 9/PPIXXJq͒3^a4x-_u}'G|&K<23x$NGR^Ax:'>b!IH XwLV*|e*K VJC_*ٗ{>_?cע#31ѤIF 60w뚏劰p/g^k7U^Ưh^a'5<Ug|Xz$/J_xTGW[4a38+TO.'6e}|lq Ϗ3]k >~,&I1%%%3OȌuAێ=jX<(b?w(Iƞ{ I7zDI'w 9[39}2j!#cWvgux&,pN^&Ǹ|y*=m;:W% p݁ B.99Tsן>/s? Gi)O71>Tň9<t5}6&,T^/PANk6|fww#͓HS6y(A<"wsXͪ 1`1sy3uHz#5N rcyVN>=\gdtFcD $$4u47X AM;wHc Ϛ(2|TPbCVR}$r\kS]`_5$}F9"Kg^`Iﺬ#N]z *aæ`,A,‘}YH>Pɞ:yb!II4?P E5yֆB<&Td/D^bzȫ~*H'Ƭ)ђI`3&aDa?@;!-g~H(rSsH'S>'!)狀=LH1G憬0tLêJ9WK#qd;;(kh&gxb!3fqIX9 8|tQ<tX\3p=e@X (ځS) LoTvLr@$EL{Rc`'X ,)'B|U =1>+̲w}K18[@uJ⤐ F@ M1尞m`B7ǿ% 9}(į>@H_0,Ws`J7X~Nd:  xsko/꧱CZ'a3+̇UGf?fy6"Ilڇ_UɄ?Sa:^Dp=4J${^>1 AR?n`3Y$6Sy&rOlYC6Ϛ" "wCГ!#až'7(Li@Ϻ@̫IMZO?t4h' ˩92/M$=X@ ż2?#c!1h>1Y0ѓK*R 8;uLDvQ'.2nVX"vIM|Q<byϫUA bx/$z6{C9>?. B~J!u'[R]ϪL &)%8r%EDHBKN]*Ċ   .b9N)yOdw+$P? Nڬ hDlqDŁuG.~a9F>䉒v,'fsP^=Tg|ՌEM]ߺ!QT*ttt){ag[<O&3"'s;MCX"'wU 7KcՀ&G 5p .Ka.:.1š0ĖIt3a]r/Y{72<3:6sf3HGΊe">'ꨩf/'.OξI cx/;x$Fc.)3rt2mL*e}6}YX1tIx1 2~, lȉl. o,2yL?& D|Ńv'F̀a ҜX|wpa{;_BՄ[Dʯ1͈BNg@ !?t#0 @H_U98GIwϗL9f^4G63.QH+縏~,S.h(9tbIB87~i0YD`纉.iEXs>(JOE&>s !,+it*xsH`'7xݚ0"8 NvGtc??KRL蜼 xFE>8Tgb93;dyX(0rgD׵1|@bgϪ06Әh2{|V9c'h0";?he3XA=UY}F<׈g8Wo'e)ߺr M 8'4a# ,r#7OK9pOv 4E?pϬF bv#(?;s0X7 oXL͍nk#T 9b۷F)/g 1 ĜeW@LM3'5䞒 \Ńuóq!^> s@w^롙:ȡC$QLgpU!$E:p'3LC& sLOF#Q SƓI{ؽ)@r2]&*<0W}u &*0YvX.{ɕbc3MW2y'|Qc;X)2=~i>7ŃYq7%%SJsF9L#3]=VN&|zA<}08 ;Xpx1P_7$Bh9,fCyQyڈDm:C݂GU2~iLӬ;Pj<S^b\w݀!'!ͩPrď`F=œ~r #g81;1Id7"%~zN '`x·U㹎>,HœHpqPrfQNþ@i(bbǓ_t@L;O"t`yʣc v9 L^O&2 `xg+0eGLPr H11=X4 z;x_9?QR\J}'bNhJM$%Q"iGjl+ĥ},0Mu5@mI#RHf^S5=XObUgL8$!ϻ$l3}#fLAA:PW3`G)bpA0`3yc< 2q=aXd80t'C AZD.1l'‘&Œ$j. d<Αc0F}X)p˾}TǶ?={a1 P# هgNߚ"t30(1)Nj3C?0q@K8j%bq?V'%֮Q 6*1ԎP䖍 9_y~8n;q]m:i=T,yNLr<5W9Yc*l%4p5ȇ'` TJA>5!~؇hy&Djc('O o2,džjX 6²G\ ɝ'T@s Y7."|wa 鰱r>n A"f|x3Մ@)4&x>+}=L,G~ 2djqQ#}Tj5$Bʉ' 8sSuDH8a)F0YS"I wqPj TAn"}>b!9jsRw[)gN1a^n:L#|Y Rce@D ]Hpo~iH2 =ϫ2&u~UϪȐ28=F|}P906Sq$$p[Ρw!' R3ٞ7!Mu D+'Ov$aNUL`ݏřR}LV'=_9C$p<ΥsV=Ù;29Vys=YO4RFQXc߆b Iߛ0:'Gkfy_aRx3'I``$;Re98DBE4c#\BH<:>Ydb߭eA n U I&H}%'A~O2wI=VRdL>覧=b}WN>?w #Q8^~?FG.>}@"}uI'c; G‘?m/ú77`2qɺ>1_^i͂«ߪAd_v|oefc!Yw۠c^ V3AOQ`<:̱>垺ͰO%2`<]벜65Xf~>/at4k,3KO_unxUn$tsH |'qFɰ~(0S wO;%iypv6X<8B`cQ(1~o-r#t^D&r|e LKg'q0Cl0B;kJ2:r!'sIߋ%fwWx^HN.lﯫh)BIH&6+LT$U0S3HxÐ> 1!ؒ(鰀#bODcEVH6ʈܤdXc=ro1G͒Fc\fURSXqjqt'8x2$W<)TY~ ߈O=kR5>`{c-Wgř;vtMJv<*5%l$TݠÍ <󕐁nzN"}?W8U"㏚W酩Tsuxv":NH rOj:u2NA`L>|w1vH9S;~/R/"`9b1ݎyT`]~(Y ID}g=.cbz0ui{G*G|=+/2;w5ЉeϗG  ɚ(c^d7/)F~()Ȅu4; 0熁؉_>:`\Lۄ̀cfЈh0(VoX8KKuS&(Lr:;SNr1"'(1GYLC{p3ӀcP̊oL7P eNjOk+),Đݒlf(>xP-$A)'2S5"#Np6v2Ԫ#)28.YDō݈BFI=]!R!H< Ls6HG zެ/`. ㌆Fuf]T*~9HbLttfP9œ'c8IrJ^)CZߊu q&jY7;JHWW(b2H3 ips@9ͲL%@27HU8=1Ru4 es8K3̓!L&3Qx뼲XX P: ma3.ǚ"0/sKJ1-,v؄Qf㟩B}ޒuќ߃ؙu8 ˫翋&H<$a8aOxGmX>xo3aLrwkư3?RX?Uu |UI}ۇn3_)ŃۈϪA3f~o.gufa1N9<4|~(B7LB'L}y8g#f3,2$^/-j589byrxC5Wu$qTí1pGӴ8(2FFRG1搏CUb$:6f7k NzBr>9[Āwwcbv<↚'0T!c}Q؟F26Y(c¾$NOea&ҘA&w%@w%ȑ ~:)1\NsŃ} l;P̞ _㞈ݽ+t?U1{j)M5cϛᎮ_>2=sIqődf*Ϩᯏj+ERcӌluWG?7^&s4s c'>Gɿ5ɤu|K V>8:͆Qgv, d|xoG!2<4{`'vʈ7걜7VQߛ`H}XqQ[#(ǎhx b8̩ãT!'}Edc߻ ``1YQdw0~0.R?VcNC2O<؁$H`&PL?X12͓ WgP SE421꤄q4;T%Zp'嗋26 `ҭ8NzNO*aܓ&H76+2:2T 8x$X8R8v}V c|T (JCPD# ! Ӛ@ykGA\ 8[ \Ǫ~iG|a=n{"=1IDiB u;Q08;jz^b$H`4KJPB%@8oӑ 9L3]=D!*S$ x"AH7 ֕MX@E dgF-lg_u\yJ-TjC dLXmA'!,Ei@$"4$N{:䏲GHprJ;hL3T;yݙZ̵w YȏQ }e}8Jw$^J+EກH xJxd&&Vhy@\'r0QPg~ua@Q(9/x`! ;@Bz!ӛܖ_%6+b LC>_݌OL'@~҈:,`gXL!4A\Z"HJڝv$D\X(<+h'ؓRYyZೃKr}&cQ(&-̏P3[U7sWMT<Ty=yi$lE$OvDzP?͒Γh 0+NCdceǢ3`fcDn tR\C^weBñu 0'npB6}7}QYwh%s7ԧ_5x(#$' ǰl >^gQ$*_>( s1x4U[MJ˕vXҸ75XuNQ@NNi  N_=8X!]LqPABl弨TrCJ@_QhO֦VS,kOH4x冼,TR_5⌭Q7u4U"~C9/)c^?X Hhj@DɌl꼟6j,J>I֪ #?T12s)l{If~P{Ohu%喀 20`uN1Z ˟4u7vN!zuxET<::hk;1ٙP "||q4 Z>X(xq@(DeEg|T^GUBUg#•V:ؑpɧ#^#?NC/SFF3x:$i1#nH_A|5={hHrb GEt{i$I!ƪt+DTI&-5<ޮP20vQw/xʻ`@竢vǫ(]t.bYp̮k0Gu?nP@觭[N'(l~H2'`N,GqN|UEO69٤ mgtypst-0.8.0.2/test/assets/files/monday.json0000644000000000000000000000007707346545000017004 0ustar0000000000000000{ "temperature": 18.5, "unit": "C", "weather": "sunny" } typst-0.8.0.2/test/assets/files/monkey.svg0000644000000000000000000001100707346545000016640 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/pattern.svg0000644000000000000000000000172707346545000017023 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/rhino.png0000644000000000000000000070546307346545000016462 0ustar0000000000000000PNG  IHDR[6SsRGBgAMA a pHYs  #uIDATx^uUމW9OtrŒ00`<3{pl̋~\o="ypG{~gKdU^Ynkw\pC +,,,,<#?0#,,,,,,,,,,,,,,s+d,SsNoX?:ؼmwぃͻ_'^YYY膙0 OIx1w2_`O-tK<1ޞݝvs\zM&7ַn?:={;z7G?S?y/~)YY(0 Я}p~kn;zvnu/GӧWg4_q}T8vÀ7cߞiNV!dsi>60`'˿~cS#w?;_q7|c^> vYr=3OaXvw VhztZT=+doH u5)2 32t;6 ~-kA94p;WWFq?p6 p{W͛_qj~^N۠WVOŕ~YY^T]-:Bp`u8'NaI)v$%q V]xgZ.>xy}ekwgn9|,<]tfws]gNB=ߐt e3֞ӽѼ?.@g6xϕNON6 .:]I)o y'n|Jmˢ4CvA\]ָxzlq"K~11ٸ̿Y %_peI@W,x)SH^zryG/]߸.7/}wUd㛅Yxڍfzn_*o]^umw{ Q?T7wIaKb$ .(޻mH+-Zt7Ly߷N&vأutXbP,uO 4Ml?sq:qowG'{_>w'}Bo o䭭o,͟9BY\ӫ0t%M i)l`BU4f3>^4 c|ٗݘ̗d<ם;,ۺ?q+',tX镲*=vgHֿ-T>M F5S`j| 匲]>:^ {v: } `OTż Oepe g'Qd;oLmhu3|?s o$[97ܝe%3+PՔzoF8|0 [g~lmݹO8|ﺸzmg_lwgˏ~d_u:G/¹ZN:Q3T>5fxAKԑ u()d璶2 n8[H;R3[ ƅ QAFlf#@;7Ɡ.E$Vsz|0uOd,<í}lFL7_B'zj %B)tF+;eOw=A We︳ 4+WnQA`8HH)י w 9: ת'ǻ$Off|MP06874׾p._Mډn7 Ξ`hü[BȝǗx#.|yc8 N /._Cל?,3&Wf) 'n+]nYdxc{G{wWH_t uniiQ좕TF{XΞ=UFDU*el_JE1:>f`/Ku**;k@FM^^yl ҵ}@i-B%`tQVv8bUWcsoK egS2?-șA7߉bs4rŸBp2ڍ@~$g['2IނȻJe׫xշ)@JI7j$Dp~%~o_]mū>Ue' ,<,Ã\w{ݹ?:[ٞˣ2X\稬,ngڡ׮nfHnA9{\Yl2a2拚?־fH!we*/F=ucF@k|6(K^Ks1?Ġ"X+#Ǎx/ JÊbl\'%7r+N! {2𔁑28i*ٝ78t(>C .ɛLS\yrcga'V:zwt;ӫa)77;=ٞӽzK|nʊPPxWYfZ9b~rO{34Ӵ&x]m"{.N[lO͙1o>ª덝Y n \Z`xO%s>u+^d mFqq\@Si)ʠ6/_\s__WkYxY_xLbqe8i4cʩ*/J{-|~<򠬮l'JtN#W+2+SኮsҰ輟\b'cur{l2~(pݢ,C | Sʂ L;rL0cx+mŵ8`nmln-VVqb/uy SI\tAdv8DeY ;ʯx'AY3Llm1K=ݝNxA`/t{nln: sw}{;_O:\zr񁇇W|I?!sv .Z-+rdA9Ӧt کCQuYi$gidzZZ;FqKNfD8דEicu}".Y:r:bѹ'~$3d3{ڞ )l+μqY:W}zY9җ|9ifi҆gwWvKY ^+[ipgի\Zղ4JP)NJLqM1b(1xUXduo(TuaVbMЎpk+x=0(gø if,yJ'J;W^V6gh'FhdSƲ[FeQ4pJAJ${ q 2d4 MnC?>Cћ'iTu /H^~3J/Q}UFE1~TvNWrbƓ6o~N'~Od;Ӄ4aãϜN_:ZZN7D> AY^^*K7!s[Fd-Z.%co7|(΂ҎopL;!#Z<̒ Y@U.\+ֶơkD}LeÝ2v(7)OG N3uO^@6|7n_(G n}§}-YxZ,•-OetYadlQVJ5(9Љη<}/ EES@|Lb(3sV'E/w6 ;(gߤ$96=cHH/ׯ(ri[`Pζ֟x I)c}FɷrMz2bAxP 8æ9Eq e/;ʸdho\cO5qwOڍ~"2Zy/ĞWWMcXVVObnXEN2D^-P*Wd]\Kq?kA7Wj}9_,49(4o\UhV0:pltL!F7xO8u#`ch#'FSooJt]cQ.!c \kݍj,=JewA48`ygD'8`Y#J)q`UqD{̎%mЈ\ci _C߆ :{$*M` dHooZ4)}]RFΊp\皟G: 2ħϬc =/ lB)^ZTQV95<$0mÓH%-8c'Sn'~G9Ox1Q'ԝc E~Ng Jٞ|lޔŅ74YA!|{cʙ?E/"J?QRX,뚌60( FhMdh(Abt^ŋR^,. ]Q`Ў(EQ<.%k>4!| Y7b8r"O!]g {R1}JgzxpTn\Qz3i#(L@ZЧ))aG/rj2" |oE6L-/咑KU+C3%98Vp;5̓b,ndp'etLd'j8Z@)s+wK7ܾ^BmQ&Ζࠉ#}Lq +efO9e^f2b&+i'.vlw+ 4h;׺\-|oNb_?/_Ⓚ,^Yχw-_}8_8H1huJJ0RjQGbP@QR'* eQQR0KJ'#8X[F ãp'ʌA0RN*ץ+mqd#= &=~4ٙ2Zz:8uQFa7lbi PW)8B ΀26~8}T:CPAt $҆K;7plC|L;EDVFTJ*'xlQLKӣT<k#A9MBȸD0Y 68u=y g; Ru/!(ettul4 (q1v"2q- "~T`?C<+wy=U)LЯJqExt0-xmW"?3 ghǀcj+" (E;ňW=SpJ Ǐ8/1m2_d)^ŻcR^]3B&*OgOڰ#Ë=8'2cf+SGmWTF2E{Bu# ~ '/e?c"#j\K8 2ΗT哾F=`d5O9xL#x \G7K=<GS6vŋtk__gof V; w_y<;2c{P"/ґQ vFR:EhG) _FpQ$(A+^Th[`kQ+{qie$:`+,PNN{y.M;D>AgwH)σ}(Q^! pA&)T q\:eeu! >m;!\.5pK7"@&c^#g ąEQqȫh04 q>,Y"{Gl_m( JSڑ/ ?#7ʁy34f>ā'ؤR'2x .w8~lNăC2: _ȇ G8]bF r: I[!Qv%pl]Lɽ9o!op/ђ 5%5VbqPvu;ǂw_^NyG~{o/),G-'wsa__6j%SU)h wrF (I :JijqQK 6Cem:pA(+#-4ArՍ#Jd^{ m?bmp ֣)nF^)7eyn?* 5D l24Mrms tSIH G g=LsLC vC^^, QGVā[q.^ƛ6沊IWx6vWi7t/Ձ. \^CiP]eEm{Ń( D/xt}"a]d=y<k[k7\^˾ ,|4,޷'jdƥ ++y|PP@y ;'0Yp)$:jE )nE J 3aZ%݊S` uYlmݽT~UqY!rVFBizM|ʨ!ό0n;p DõӋuje)xY`@G6/RqF*"|)GJwt*x'#)2F73RT.ە 4e6!KUe(g&dfM:SfdwT;[9\Zr&se2tC[lVfZrM\_%Ok@銢Mʇ{+vif#N4,8Mo~g-kt@FɠQ4L]f3 PAM٣y Y}s(W 6 9oU2;VxSbVCt*ZUQqc sO\3Qɗ8ba㸪 o[VzSeOJxhuL\2/(gX~!T\xp:+(j891M(7p#N06 u ,e(<{@' o hT%N=VGF@nPx*mcB8bT בQI#)cCk9mSv@|ǔ٧88>1̌F/\9YYT"ƕrcޜ{S ф7 ^d"й˳,5.0\5Η&-‚Q?< : ™O^ ___KYLՙ_Y޺=ÏsL(u`TVn냞ӍE!`tȯxFdReH)!ͣD tSZ윝 cz"4O3zΊ!`3Md(q"ڕe/8VVTRHaT)_{ ş/)|2BYr( (^mIy8)[ҹG*1t*żaf7*Pg1ԌJqdMRQۋRdlr$h>qȜOHwHg/J^T\LiR?3LsG䡌&)XsrI%A&6)&6!3,vk[K8Ѕ۵b8Ho4ՀpyRN(:Sq=;',OqTnp`_}m,SnպOgϝҠSm:ktg:t x# 8 Q?GQoB+,y󺡔G $D{ʊ (r8 e LUB6FQNa5kx_ȣ&w)7):>sKebYx:7@ycMH)zVJ i'ʨ}! lRCBӁN;ϲ!F&Ќ|MNU~}8sFmc ^pc99U- M8o@p)>͈aO{*Ѓ dVRc}%c~LK , OIm)h~噀Lm@u˵¹EjW& z4HȬ>kC!#9Nv݇[w;S$(0/3:~m9 {q9O7~x\7<- ;URYx CZs<ԙѐ zQ tf++:y:h.`0(px=JEC86G);4+#*(exLSU!x`'>ȧ`ZU)O;%b_ʍcqpOCՃUAsq01rFS6S#²BסHFb2r`>(|'e02ݯ225mlH#YFG&a2 t]O!62m m|.AjmƈhNPL;B^sMo䳼瑽9_r6dm_tj9egK?C2ҧ|vt <nHC' Ni&6-_'(r[ 5!ӹ_ GecO<_|ݿ,<9~߸4:[ʘG`/e OJ%JdL4hkQyLϡj)P,(G;ġl(5ymek4m\X d8D])4 ('@KHAP[2\~cS"8F9}ʌ2G~Q&Ƈ_ *|)\Y"~(@'Ֆ0$>?@rQƧs=2=.{'*:FRgeѭe aȴaZGwRW)ߑy""JXfJos}Xm:} sY}Y ЭR! _y . Kd)W pSn6>tv L,sp8!(}6 --gg|/ܞ3h( 9՞gLu~^Η{cϒl ť^ٺ>=1o}: 4 7v&[o. a 訵[5J)=y>2~]ahA#6'4ON\Q-eaDi`P6iCkEIz3!1#Ô5.Plʄ< .Jȥ|6_{ċ @*i]?*k7˩3e68#,b\%e` Jc` .ȂvcE㄂BCGNv~BzePYwdm#wi)E<ƥh-Y7+/V(KfŀJ#8 vyU_EvZೊU90)0V&\dѴ.4vי k'VȠ8MԖxUg"Sx"7[U0U(97ه6Qqg)H4]x n<,t5y,"L pBYt(*^-h'4tGtYR W"uLvǨZ '1ԇ Φ.09Yrtp7~g(xZq!ru4Slo"?Q0y49JJ7nXP֟쨧!Co*__?˒[Su~ {C+H=`F08]c3lP>5Z6!4ꁳ0NMO1$T^h 'HR0)8:7HF6 CeHoMVn8t-::# w<%@~A^PۇqǛrf"`X`} eO|,}mZ ~ͭ &ҽPr}{l`OjyCh_8)]u逅Xo//yO]U,uP|n_ٷon,~<+oiP~yΊRa)ioQ<Ҋ71GQsSF(r6QQ&'D(x=kmH}$ ֻѡ{v%W FB^hƸ/rgze[i)yL+ObcsȟєpdCqf#FX 'xp2[gipPg\vLSTԆR: P^S<:v7YɎm2BfWS~ژBuWx2@Oxn8/ R~ziCx/(O HAQ~6*N'f0@hpqkA]D=gS/J61e<P&F# ڔz"@ģ`0P`gWqcrs^ݟS},{pΝ9!ՑCgZcĿ}@I,.S(xl aSQbD+C#`e6aUaV0b}1d)q~W_C$ԉy2!BX9 KBJZ(n=llŕǔpO^ppdelГӽ۰l9U^dtx eL) lk^1<Zy\ptxlZ2ڎ:׊7d58œR%Ǭ‹qg3G:77AT>a#'` N`ۼPnx$Xq'qYl.=t:)Ɏ ./vj9{zǡBSV˟胏_x,Uz_ɟO̅S7WǣWSkwg0\mW|ZuQ)0yg0(zPJ1M+rx%;v=8 vY"UvdP< pfDݮ˾VN?d镱8< eyķ pHh/V/X[/0 Ӏ{;z辯t:|:ekO`gg /8$z e0rY}{*#(x΋bRUa(' a 5 XHTďG\ l>B)ƣ|}-F|#'Y@dTs,I)nYZZ2 & >Mb4kl/%g#m0ezRv(#5Y»ns3_ N5P[kG1VA$*ˮU᛬3Z~rPC'Wx!l[ACAޓ[WY/Ьm@=7Xޕs5#l,e:hv⸶&}p ^E&eLXh:ϴ988N^OcV! <2D PQVu'|ӵGzd%8Fytosw 59Zi aKcE#e40(',s!uH0K˕4sԭp*ِ8/udC=(Ib(߆t]s͓7«?`grs^=qj\}HAsm LI]G\\Zt' k8T[3ʭ"ǐZJu , ;׌COe|p.) 츧n-n/"pM :epgFfIԅL1<Ƨ|UKH288L8E{)i L8#" [2U9xAp~,/rWߞ6YA<|f/_Y*uFF(uBytyבR=?f7)y)dWʽ"ptr#?`<m DӊMtQVZRnM19~eSMǸX)[ 2)K#ִ0)1ݱN /f:Q5:UqK8<5x@/u1o)RvtX$?s>xq0A j0bc~ڎgE2 (g,r hF c%AL`yP}ڍ8R7ghR#Ļ _-~€uϳf.p41e!}ه9,;,o,Z*gQǖoJpqZ])+ v7>"0 P{γ7nL߽,Q(_]'o? 9ʈxdW FH$ Ƈ{6YUIR$[SqD~]uG<ŋqqxF[*:AE^0!p+4iinGx/_&=uk(ֶrr֝U6ȹa}V~~91\PL2XVى":e/ioo]V)}W6*1e,d ~^{=^k_fM~{fSë@r+/GpF\1°t<;5A 1DqG~~z,Ik:7}۹;VV 'O7~V: H;/A8:D3j@aq;H0oex N\ͭ%FMZߌTrVF0(UaL$03Ol<" '`G"3t%NAaJӆe4jEGYy)-53]x;OMvv0;ԿۄGis33'ܔ5-KˍkO<8_np[ᤠW' Q.Uדx~仾'3Ym46|x?qua(YG ŇLŨr&8[ձK&DK>#Cht HPyܩ1"+ehe`e(YF  `Qf9UeCDq/i/eTZ'+_h M5` [>)^tRTSъ?(+5?R?8T.ӁWoe52hlO7%U(1zF#7(*̀?.MyޕbZ>ȴ="; 6'{U-+E J^$98UJwusv0C9dTeeH)'Rv =+p 5z4RYq*/`+ײ Y 4SBF~#h9МBcB {p=:#en\884BYבQa#IIyWz>.BCn>=O(Y#`T|=3#z.?^Ltxa, i%!VW̨n)PЇδ7a)C7mA8YFʚ=$@r 2Oه_ǹ#1a9S?goy,BVϪ?gK;XjT<: )F)6Z!'LcD@bNC*;}=#wR$X| ( wXYPj‚CGiPh?EF^o h()o2FdҔq&JR$ₓTY)7 ˓Ply0EBE)x@0? !PU!s6(O5XK1Ӆa2ҎSb\A~?+`Ey 6n8-eW9y f 1i kE 9/#̍˭G"F9kॽ/}|+gJOhʦ<+lJO?AU_ۇ“.6>K<|<2 w\dl;MT2\AoG\J.XZ7;gK_ iϢp{tkG)%K: ǻy:vjTtXF. c|e; \tعHx N>th`Fp !hѱS(\Y!*c$()Jv&Θ"G oR4rOP|f!!\6DH: yzulPS;%=E %/H`:o#O<NM$jW*@$Z6@i(flO+s`!H_ƟWSC8 3N`YD1~ȥƁm>Y%]B^2vD(|bPim/ ԅFΤVtgG\y(;DTa̮lƝ2 G iWڍx8Edou#%KVZId*uN^20fg&Ϊ~ц# ‘)  v}|˃*tSbWbh ]YYYUe ePr,.Jwnz/o>SYh~eSslRPvw( u.Jä=F<;?4a9?O% >FxAet!ν/#{v ~N 9Ò `qɇƥVl Pje0(ZO5)I㚣Q(]2ͥHM-rRƔk*Fu_F8.Jo!q sM9Sr't) I |i'8T\1pIg196$Z6j) S M?W #L 'kU'2Ά8DF_^;ꃲ`B(<_ Mׂ33 Ч~L~>ea>Do哓j'FUM׼*u[&)9d.A?W?-.:'` e}xBv3}:H.A/^#\mJ( N2zNo,~SY^RPp07= [Cz o>g.`S)~~+3"M~1,<=J`1lAnmc?:>7)WSv"Ɵ$~  TH>D͛*5={Á(#^0GtmTO P2\2a=YNӞHM=&JhEԝcT,#;,2# )^Gc|mcaFq@*+ ,pqfhRy'.Ŋ_!:`g8`{Rд@2C8hKBMuPiq`ڵM̢YI]{;&Sِ˯G603#H ˪Fg:{uu|7C;N6)8)δ;ka`t:TI}zuL@'mB})]'K]/p6g8U׶14^f,rHxIQà<ij闞x[QY҃?k?Y'~ttՍǝY:tONO)(ӟ%:ؑ7>G~FE33rt3nbAPyb/yaT:npqI?(`(baMޚAGQĦXN J;Зށђ,oΐSDH;#|g7 8g)˕M9c?\WG}2-r _ҷ~Ypx|йv?)ae/Exם rAѸc`\^WpM?Lٰ m 1Uz8J@$0P׏qOG>`K^7]٠4`䏒HE&Eð0DՠLlR:gse[ ăG:gC#Ա`Rєa :XN:/#722RexplGgӂG܊JF )T ]^IalmuLVxL@ &: fTjhCu +x27GI|h"c~ 1 u|r,#MN" ȊC}⑑?%`XERDp ˢra&87FnS^ÁkL6\TdHyhop{:~3H1ȁ}*9PGg*ޝ,*pC#zLrpyF(ɺrVYO85/׎ΑmBgPx≲2ԠoGv ï\y}W;05 vrލoZY^BС6^M#M9t`u~1zclP1wO ?!_GAg2h:XCxc …-x2cM&"缦T$Hnn|;83J\\s03Sh`H! >Pd\2+bT"JيP`eM '#ҟq@a8峲v4quI ΃h4`(Uu(cEmAi\+?eU!\ʏGt<{D^~aIpΈM|smh>\VĈОx#'o#jS!e3۲ q\WܖI;>f%xT%QV#v0t9τr_5Xf\o!3&ZVfC bik~O/r9t,uS&` OD"rE⑝J tˍ#KS A񫟼~׼;EX_{vQ?w<-uָ( VÉ7+djKtiz o#^ $`C%n"\U31%U [(0>YlG%5f?p#ajP1L1+\vU\;^R 9Bx8,;k 6q/C6+Mh' oO瀌nwopN;1GI<0C&;,ͧ}=cuX/ .`e:8uzg ~  (+NAavwاtFVU)s\8f1"4 N bvb(T=b$`<`#xܤ `G>F,(/d`X@\Rd-+SA R'.@)bo||!}LoB(kVtNi\1x O.][ޓ Q2xp^ytB36Ь$Ud w[Qme; 6ӖԻD'5٥ʸa.mP3 ϲW &A,(."Oh9X(*^;} GAdsxיyOg烞+>5w6컝l[u 5޲r6l?YTpm)Ȱh܎7@߰SAB}Hrf9ӧJD~>xue=CC{~k}_yK;7n9|?Γnbt@ ;: #_dCS^ke([pu4Z[uS`F!.6ߙIS}_MvTXNɅ]PG9Wx.~)xfM^oDGǡ`/OYȬi: nKzҏ~,ٳڍM3[Vʙ3 ?r2 Ѡ _DnR`,( ɓǀw9 /xC2]ƚ>Ⅳ0#Ckףmy77as3ZSlőG'rN )8GI84FƹZ!!S{νhs5(!F ' 0ǙPQ k9)N rqy\?+ak~0P*TCfpƥ;` 0e&P&O0n#c>t RfXn̓(Q;) 7uNp7Q=Nƻ/d;xՙGɈA9qHcl8(|Q:}FaK>ZǼnWZ|ڇxT;K!/`ڬ}gYSQeEs>ƉD'`mhk+6,Hơq;M§){ʅ<ݞK몏eXҴIJ2?Ӂ^ڏ!o~<)o -8Zv3aGGX I\s~C>C7-#F$LoW$S0s=buϋ9ՙ>EGݼyzLx(+M: 0rt2Qg[FVYt'ӡ2MO KxuY; _0 [S[رA- K Y7 yLJT T%%#e7Dž⭐te3 ςC[i,yr l `@O4B{)%-ZguDd6LYc:%*(~K+NybgK<  dxU:S00C3ߵ= 5d; GrՎS֯Ż S}:CRmڠ"j;$Z v-9Q:m=ȇpT>88,#琥_F\i[pN & x6W>J۪ߓ6HEôaqm;d*5ʦe0u4u`nEkrs+CM{݅ݝ;SJFI ŔQ`P&tBۯ֕͊cHGc}U1ƘAeƀp  =1Sy+cxV-~uP{43:eZXQ'p`d:*(f\`"r9@YcA+REPN04F+>QNqU?8PB"Ѷ5צ͵P̥6M+J_=F[c,1:"F9n\/n$P*U/Q} &< Jv2ƀ?#{ WHcۋi ڡCfF1AZţfq4KXc.@N6R1rF?/9aHpyLم#F^a>^QV6)'q7 =@mSZmțulģ.0›B2>-xWuYէ ivCᑼ=h{dA۪۷xao퍺YWoO>~`/l:> TnbH<6]neTvW<%;&e1vqQcc%+5oo K$J#Lp>k31(Ҧ8Q'rL9[ʚ|#rB 2"  _()* %j%g%'i+mBR T89]+÷ϺQhx YʴrSc,p८q@?[k_}A =9? OygӆZ1nՀ1ߕgjqFjbAt 14|d6DuoC6B2,6PP+mF"s__3BDp] 1QHmqbbkXLAr}rO2axߥ0]QyN`N 9 T(^ 9zfO<;roO9X>#LW>%wZ\Yg?z,Ж m>!;w}~ЛFHy7|߾qMJ?RWfM%ZoS!>w0)uj5{tӡY畻PqBujcyWm_wʮFaCL6ƚd^:G X-kW([%W_lBGAy*Aj_h7o\{ 0D ňR?FPXel y9@ɢxh+6c X^p)_2Jr$g:ҊT‘3)~$M5Ƨ{`)? ;H(htʩs.ͨ*>e$p-d!( 0 ... .vxc꧌ꭠ0Nq/;0k`B{ȳf[Y@!44?`*a'\B[a)*Lz%%d4d)ZǸ#p,LXA)02BV<G45(iAN$<#(B;3ȂrˠeA7򑲤~0ƫuf:8pNLƴ%F=S'fz?z!`$).N ~ '06+gN{e'6a9c,f36,D]NpB|6"TGA>f7 !5p9tvBȑM/{j,^/oCd#g/tAIYɢ;- ˢ:>x$ ]<.*x&Q Z1pgID\3] O1Y8<&=k;)ig:8hq,.6tvնa(3ݛ=<އ%#g}HKyg~[??8zXj:yMTѩjnt(8Z;߸y0?TtNyXoDR3r_)e!Q@y8Ûw܂~ C2NfDǨ}{fFw c ӑ(fy['bcy~Ya֌?Ҩ; fiHғ r M{P7CўNiWlhF$C: 4hg~vpzP=+ˈt9~2ݕ?m=[Dkwk?&fYpw6^ȣk߻=: VC)ҶFgxWN/ ʗkO˴/ƌSi(=ŨN!F#ƌŴ;ӯ[2m%^ ~u2',;?Ji!_>sNLOP ywp#Ш2b(Q^0xQYd|aȨ#'~1 7&uQ0Pଔ%[ 'S{N-C$t1 T.5rAFc-̑S1IQneM|Q@IRjW.ޤܕ#Iѧ= y@3͓fQtFinSеBNdβ;t,sUDN!W-Hs=@'2O[u] kaBNi0!ͼQC4i#C<?Ҁ^3`4sМ;BQ}'_H]3Ґs_(+4Hwٕfmǎ2\Nf$~^'-#^2dF߰8%̈e4\); >hk2);Č?e8xW5<+g^s=32Vz:_N@P6C?:wZӃRެ3#)Q(QFdua!33Rth*)6)"]~ܼh1SV2ʀ{.ld9"SRV:{NϓM fV#@e6C)ZQqL[a+2B㷞Ya),#pU}wL[S> 6?=w)l^LKʇ[`aDuZyV@@:MXk@. iDdxFYٔՌ7AC@K#o3 O <zӟ?%9fgbT)|LgՆgGPÀ

t&DT,:u,~lo7cYg}k{ï~ꁼgpi{G~=mV0eC&a˻tpWyl uޅ{w/=q4?{=ָ9|(bF xRt(6=kVr2xx;W#}l3Sp1^.K q?#Md:1ΗUăӱ 5{F͑V(RVN-+<ύ1':;rD̦-xocD#dQGϟTY }FmUƸV8NFJF(9j/ʏ45 VF@YƎ@ 4 OK`舧|%e ^pGfMb| R #@' TX [x\tN3un3>QDv #fؔz2:<1L(m+R|Byh{6lzBOBKe̋0H]PdäѫσgBAg>g>$ q⇺Q U<=3Rˬ:~J_Ʃ Ў(!4(3iAGh ;}̯*Ɍ,AaŻigM0/Ĺ2,^xdHO W.'ꈡՑ:x֣P&Osʏ+J=Q7 fb(2 ˡ x86@~qJkxGQY^^v{:|SO~U02:fj|+1E+Cm*Y1폁H~f!xAf1O:2 LcP(W `)L7Uw87+޷5POg爱sh4|{nd#ĭ򹟑as]SBFr<"1O8d*8:gmO8 K2ifH(S~涯tח`ً8 N,W<q<[m=#IR?<%Qt)zռ w[7 i᧿{|Z?eM_9cP(8rblgg7^0}Lޯ{h[kvx4:_@eϘ#;;<~7T;{ksOQ:Jp{eqi&$uq۩dScVN?'^2ѳ1Z2 AgE{Ï@[Cgpjd)KjrӶ@>`f,n@Z頸$_iS+hޡ=`̙>~(T^JZ(R`phK1xZ4vc|1"*TOfg ~qP~QIN0SRƙ. n{rIxk@uH> .s(/kۛ$С,eOxFMƥ_mz'<˕­- "_9g)RG5?N#"6~`x-'O@$Mg(=?KۧVQ>ʓw|818 =:!nGz6״; i xq.zq5Nje q fTqDūڂoD2uG޿~~uYx6~xyߵ7ۓg7;# ) # (Ovqi eyp({>6n2ٙ\iZ:;pYaˣkF]v$q뱙(ٕ+Eu<)mGaz&˚?Ώ9¨5:/rUpkvrO * /Ӱ 8Jx^@Ğނex"fXS:# 4FM1cuvc8U.Ir}O4LU6[lS~LѱF=7h'!o3B|\ESѶ<CL'3[tðqg2cF8wۣLvu)v!=oӥ%x% x4.9,X0aa() *1\#ގ( X_/܁tLEnp1M{Gi/,K|2'}X z2 };ʋ#)}3lMef,Cf}x AºӾ#F3 hJ٦܎ qlܮDnpRK4iC?s=IQ69/Пׯ³+8/uRR*9lHaP<|;n<ժ=ewՈmvQt6F=v.A!,-(!wF5>fؽk?StM:Dwi+Ygdshc F'(yh) !Ï JSFe++ G1=I BEF(b,K0(Z Ji\`/EC~+Y4c<昴:h?Q+s *hB;]*?etXPv8$ϪOX1ިɽL'xC6Jm5-nInvTN?>WeBFNW>(۞cEJz"/ⴹ<cl =}1wYv+KyQ`ˮ)|RkGY^Q8n ħi.WH?@+c떯Rto E7j̎7Tnˑ7L8h>ÁOrd6cdc>ta1Ae$eh~amZ?Idv )( S`F$~,A<$](= |ox>YFdo(=2{C0Z\~l15C`krʻԣY7땁tϊ"4Hɴ8״[O6\j;r3}e^cM^ߗ܉CʍǒrRlXFy<]e?Z+1(õօgUH(ݏv/߸ݷ-n^[s'@ahn54ftFxwJ:1&:o;w4F>1&(x,%Xvgp3ʙ3ӢĞse_* Y: <^m 6<^RmDLj@y&hvI:(xO{zT8I.Ag<NW(21Q`V&P%RyڽP>8L0I R&ԛ7s<<܇pA9 3p$)Mi>7 2%wҙ2ĸ#s۟1 5U׿Fc u ^u*<6N*'|x0d9bą㏃k ic+%c(p8$p('p 9g6{t2"^)_ fC0Ѿ&L-hr:emㆺ D*LLj{Kmu7^LLF8S82 ‘YLwPsh8|\|YhrSMFZrg*:ݧ3/8hay%9tڈ_3!;8mI^gQ9э8 0@zه/[a h\TY,s, 5_{=_wKv Q + _8ϼɏU˟0]`plrOcGa:}ᣳ(X1MFUf w@dQ SN8 p݅'7/=.;o).V|:PAF[k[٨<(`Ik('#94LF`c!.*/ƙ;-VF}ljr*l%JK073WHlNU%/qYuv'r. &6Rd/R>>(&/%._Ԫ(X]> xi)qٮ#1vˋHFd4N *e qCIAQo8+,%(-wgȿyOsMp}#u_tBU@Lj?GFԽ*OӦh[;YO:Z^ԙKKpי*U7mmܜO`P׮cwT[΢GcCSycyYFOy'y,-ڠ7(קI7SÈ28(vG2J~X*ݿ+{.,Ya ™#˟ ?[׆oG­NuUg|[G\nHV\oAO?UFھAKr~hk":K+4A 5vWijK@+8e^5fӱ"WҩB ' 5k>m'XeC6&<|,-zp| R<;O+sc{ɧ,<+B?3ygΎ<~JP1SgΨ!pƔ2飥%5RRzves #L[1"c^sP33/P$Н+we77' [66+c澑tDT:c>eVxPҼZe>hfpZ~f^ѽώ~VF(kR mZ!Ĩ{?q"8\pM^ Q8cXe0Wq O3$g#ISɰAA[l 7p D8VePVd3ܷ|ap)3^)NY뵌8DvpGYuP qUdk>U'<6I.sqă[i8ہ6l*y|vIa!,*^E,CiIl^UypnܰpPrd~7@K/!YRga@[wf<=<7Al.)E]|ҋOf 0 u{~ [q8˙5/uR6!4?ʪ;^4V=ʴ{:}ЎԐYM Y#{5|?'tNO晴oop|?( <ݙQY^\.Kr,h.uƭ )h"N?)Gm+LIHRyP(n^!8S]COώ~8>gs2S^K0k{pf +_O 2@cAeZ91no:L*ˀAd%gSMΦ{(E(0a+UxLhb(NKFFa;ʨKJR6JIK9mKDt1~ }(9a_͌*mr2򧽑g 7C,9!K֪I0bHOd "P^Ho3qAS߁ ~n3dA5?_JxtvDę6n´!9y/g)/Ύ0zSD~`q{vtz^`k&6:\lBDY^reigm%zN<˩{R~UaݟYA!}\Z˫.Wd K+OK#Dal;)B: ѡ)0L(dFsƙ%w /rXYd$@g`N9_6܅Ӧ#7t whwʃSn\BFupJJSX_ca |hH c_(# ['`0^F P D?1$R{p,8XPFFȜg*Kt4kqK{{!e`4B*o3G=E Fv4e8vrg<#f5 j#1V٤9E>@ G8+vUf tXnL% G1 R3l~i+2bHhpA Q!(= reҁ`<"-GFQ#rm:5lt7w5|@ — 'C s7bh&N%4MzGEtGi+Y* omٷ[;TG!'+O>t2{32fեc;?y#G;GB2/DGevF =SK.eiqT\^/7g9 s?{;ohghjht <T#IxϵTۚy(u 7h Aeʞ'S)+ֱeK&Gt <&QttHթjm:r(7F>4>_̗ qVĨS&&I9Q)Dr iaPGk~ p&0qlll%%ʒ[SvrPn u =1T*G*AS~ޝ“+oŨ[754XhD>vx1 u?ag0/xo ~(?}ȋxBYlX2A [6 5``PRdRr]pbLT>8ͦB$ IfP`U4P Q0-5#]#kE+XLgU-+y\'oB&ȾMsn=cusXR? TOO#AP6AG-4mux?P6Olx2Ebij iOqo{k>'Y9zBaV]g˲tMet R|g#.Z/һ<n FHַuEh[HP4x: :;:,_:rS(@;e;6` ׊@pF(bW!ʷqZ_QK L6NSnhV8RBv6`(4\N~h8nlHǵ[qGf( {/J2N0PL! Z!/$vN'Y - 5D$P+֤mx.w8~(Lcro8Co~:.$>vdE4m)#Us7FTp.i&dm]$Oڎ 'L=ڀWib0lT}&S2qm)%bPueA' Yxܪv2ɄѢF\2bYzk}tt2Rȁ͈^) *Iп.߼-6h(c ^OGIZ.zI >@Qz1NL-Z%c88#BʪҢوXlW޸)I&Ct{hbxZ@Gf$LĜCeScE >P[Ɛ ,(:Gi%o !*qJN8s"ԓ﫢Ψ`FQ %eSMBg/<.Fk1  vBF=[|ivz3,=wmVSVuVo[`=< KԂA 'IZq" ːk,-t:N#^-b%3;"JY#s9΂!AM@rRY[W.]G/ (mKfpwQ'f.(q>K/fg1zFWu&t 7:gΣ|Ck%'G..-1 K厳}=տ;Yxf>uW~O|[︰tvZCb$p0GOe_zvǹrٲyӪ2~λjt2oc9;e4ʳpS>6 ~+vs"݃O?7gҲ_Ysȫ|h0\V|Jg5|y|l`a膙ա7#E9osc ʜ8 :!WbQiO2qma(8aE+^T#ڳɈ/-c(/K:Y1pXNrLx-5+BoƺxBi<>LY@׎ i#u#Av%O^-2?x#`z$@^U (Qx*|?Dm=ar' (ωgF*_Ɏ\ .j}&_;׺lT,p3n_3/,@m]j|;@1:q[e#w DvzhǢ nkd8 ѵܲ FB)+).m^t-;{ୗ7-˝߶2Z6,@a`F@02z * ԉ8'o /S?O)~;Bڲrw r+O:,J)!ڔyc,Դ_Ptx6/1Yh37-3+DpQFƷ"JE |5%C̈GS 02u)\Zm7\`\F3ݻuyvZi W i'|u}xt` GKvkCnS1ȩ;ƅD6&\V>d'Axi.H^^S mq.p*1|iHȠ)l<+vHp|78t'tdh)9Igg^r8߾\gROa؜lvՈ0!!گ}-jxQN(i<匼OpexO𐑁 >@ ҝ{Q6t[W!;jA-)ϝ!x?۫=9 |Fe^E9`NWБ냽9ϊb,atD ϝ>ۄ(y,V">PqR~ ꍽGvVL}g:ӷ eS:u:L4pvRCFNF8xoڪ'"?~+ hedf^ү;=K:;ϔn\\y7V=TԅW 'Y Fi0RuPC./30ZN {cĎ@>K:+ntcWtǣٲOCY]G뭛[e{tX!S' Y#);( aYYň) Mjȼ:WZQS`Gc 1!> ZzJSs .a(=<-@a Jp|їqFFqGdq.XhH^^dg9Ge%]#c(fHyb4U^#fGU~i>UbP AVNJ}*)s{,5%MYSQ>T -q^k?v̋gxq0 )~(}'r&~ύc(d"8,Qf^<ĵ%01 rV9U.,#M{6mx7t\8gj~}8X*@F6`u^i K) }O*1"NrE~!'ׇy|Ok~9S?xq%䣽q!)xQJTc|ѵ`*gʉ Hi: (jepYP.\Ƌg}̂Gp2+fȏpxQIAe~yGEڵ#{Êك^wd/]UIqH+~d<=*w3}D#wxHvɺv9tx4<sH}1 N%4j֌,3MKFKO ;Åkm^ Xd/t:=5svC9N@j;dFvlȇڈHrpOtvJ"Ѣc~kFd^2 pdGW:uwl,ys_dOB# zθ%A/NYS)q5Zӡ|j#DͧZ9 XpEZ+5rlJvcifkF5ēF06fGF*: u;=!<)1$*y=%Y/?cT vܢl̳:'cL*]P(}@F2edGMQp$ڔيWp( x_rE. #.`GDK%iA)ND? %vlXc8V _ÝPṳe%A>>R^fq~8zG#.FCG6ʈ 1C.Yvb0)V:v ஌4WQ|/{L=*ҘK-ĨGx ` 8>x 4<,m}#uv3^͡Q/>Mj?y 7oݸ~\~Ѳ~Sl^h3vs?x_X>h w]=OtZ{  wlhcK=So9‡Fh &o#})Zv/p:u^3S|WR^Y_V8Ql"^ux珪Q]_\SI>ڍ[oYxʧ(| {XWg'P8 /Ξ#yy.Q((i4T{JЈk'ˆ0x?|oyo4hDM:1#-pNT'LǞxG[77U*z G@w nݩрGxKgrv{ؚB`2O `l'24: J5g:90gYv ވ ,]mD˭Z !1 Ç k3|30j`@`v dk_]+}fD.3nfs{ι]޳^ =$iKB}! /=`y.[(xk«keMם?KSEV-}({?¹zBrӐ)hg7^>пZ=" H*z7\6&EKJ\Żc뉓ceSd[@S[䨅/)!3OĻwy0t2^:t>ݧԗj֡\ttȰh0:c 87-wm˧!Wڭ+@qoŶL !HKnloH/[zY=:蔞-]Vg:+~I-CgF ȧMI0~ o cLAFd/Qi:P\sD1\/uewRƤ{O ެЕoOS{[Gcih@u_mN Z#n2F @D A8;kmuܯso]PJ6e^FcS"  Cz)xZnX)&Ui^0=,mqlOr(2wIO3?] RYh_=t4F>\hݣ쟚z -q^FNVmTCxN"9+%76qqyOX>C^ή*iC;qb#wbĸՐUv)ҙƱӆʄm8xx*ii SӨ e[gzclO)u5۞rf@}-1= G\;2`۠בOOG^_p||Ng4Լ@<6c!;9{we[iwsRzemyeP[h<ɶpj[y}]y并67ȉuB~8KD¨KTs yӿH5vaxbp/`Zy 6_gl ie = ը6F2$b~ rBX ,>O ?h&۩Sq~݀h_|T}vo'& &Ÿso?F6ϡ:|#_P *d*Iaun;qjLpOSExF16/K Uek&NcceB(5JiX\< WۅKѨaH L9Љt@#7* UJq9Lp xH-!~MdJ.&p*Y]rc )oY9ֽXNPC>MQ`M yj=@8҃d띔k%v$ACE=K)k;-xzl~> nXtHU9JSg]G˜)@C9 F~% F-Dп|O0W\kP6_-[r\.qoCTp"_?.t{\q(\Ard)d6u OյvX@F~Jܲȉedu3+N-9s"qp' aL>.%ORXCH:6u|9?N8.wkkܑpp4D⬕joRJ{~ײ6P(yK`Ҩ|h4;oʰeߟ7F:U霤EVFV4OɏŐȤ:O^i׼g]=%5 '/GTxz9g+Iu;{\$.4l)l2`1'{Ay=7O +C^/!.$-}awѰ{=r?u,:l+3IwM{=&r:0 ǓE<^T}b*[h7:yiV\l{H׭:w9 Mqk^=gu1ձ)G(M=<%)y]^1?.\|mnm;yg|{摑nnWV+82?Hprh>UGک $Ͷ=_h7-~Ax^#:x0jM IdN`zlP:+ԓE=m?mOFąSjC?< =6Ll:Q<:=3юL?]?$%~ }юL.!գ<@(̸߲Yd[;8\{( 0M*x߽C "p1n\_l{Lre<'X`(fֹeop'|[ Faz_h5lY5|17q@kF$F| |ՐnKidb)eи|.rF8^!f D3PmG|s#Xæ"0@3/F2$_׽l܃Vi 0[54&,RI= U$)KdеI|I(ZQV=0YP s|/ޏ~yCV(՞=^$U F Il~.I]V_\lϝi>B\,/.+M'(O3/'m?L^s16Kv nlcCiyikG :cKOF7Vg}C:{7#A ~NL>[=Ru>ƒB|q)/#mt}=}6Rw{%*ض7Kй>!9<$hgϜD5R1(E2qVЄ2Ntu~_.]<ކ|-1F>Y> ˱xy)cT22*8"CAFЋA J;\551)bUQcLqr,$= ^ƪl\7(Μq4 +b9Fkpoi R}r>5/{ZF#Sbx ;GԐNřZGy_&`u e9Pf˱ nʳ>0R r-OrPUH/uřsl`6VX4\!So:?uUAkW9q=m=g72 kCZJwtVb唀{Mu{"sÕ/dxʲ}@` duyM̌͝S ׮s35*S'%fhIS+^ .= ^؋-v\Tdr3ֲo#}r=\Ac[&&Gii.0%> ng/x͆&8㵲m)L8#lpDEʒmۯQ4:n߼Fn| z,߸?wv7#՜,J Q$7ʂŨ<;57,cLj]+ thju˷"8)WB~ CcY% g˻w$'ɞS?GLMMķ`hcSգCn^wANk|tF^WF X!Ÿ *xG|'mRF?]:[TW\<6 Y_ɐ<|sx/0A%_^ї\K^3t׻{߽x\]`2Mmܲ4pYoaYhb=F@WćsS~{'W`>7 =䫸UJv; b5]ʕz?y^u ۲UgxO9gq2bSa %gr%I?Ϟyf;DHұSu;mT[[8R|yF;uT>Zg98$Va#٦^V*nlGu21N'繶76ݻmyy-,Ajmucq8[UrD2k8]2PQhG}O@Ƚ---E2;Dڔ6u:6kl'N rek;^ c^OYHKW~hmimo81l+k[mqc]@ ސ Sb({7.\WT"FICP%mCU<Cŵu3lr'z~V3OTcOD؍}iF)Mk(p+&l9Oduyptg]U(hA%FU3+i_TW?JoHCb3D\R 4gLcn2IN:ch'hgT_N`6 el8&pMQ0uXx嵎-L~24inax] u_b#o^ P>5i]N_O/Y{V]£J5t}#|ڂ4|xOKPL޿CZ]cѡݑ)*:<_0h> qeViz\SDUgJ8i@uݞAsWw﷛O'm;mrr}P=y +#|v廰]HueRz^<8}e6Gk2ea3M>:wt56>Nn._l.>_izR_%uc @݆&R^gAnKYםⶏqt ]N'Oxַ'>r= }YJ?7l}ѐ1*Ja5 ?8vkl1٦}Wʗ̔P?psO)gpX HuHm?g%Bi {̹[K+AAp>_=+ocqd̈́ɦ|DV%Q^n'FgͺҮu p<:ҕz1=A񷰲'($=RuFY~%Tf*Ig)nl02#N6 b+Y&C&W\Gv>INw)A9(߷6ۍڅ  d3W9;.@TڏLy*?*-n^z}O_ڮߺ\8@zu=_]rZz0Ln7'_xʫ6|\_ml[vLk kC碜a:GlmccՕU7j[xU)s>0 $ϧ|r`0wly lq;{Ϳ?^OI/ݺO/vorPǦ*Զ[ mn{ϻߕ^4ʵ8J:^ӰUu*\=TB3~su}0P筡w7Nk9P ~Dg Q<~VwX]g?G YM+cUsjm2^(Kv9軦@c%>&F,*.1@K<At.Pc/k{cgg]WO?Jq&3u(׫(h1 6W{S!n,xT q98?ŒY{Oa ao ͣ+ҋMlmQQ.ũk'˦Nnoah{!?e%CJ|N{;nׯ+n Er-3~?8={.nՋ<[EȫlC.9HW㽾7n/(Bcy)dsǹ÷2tu;لѳVW}ex\b=HV~ H~y!KPNnjLO \|/x_hTuΨz'S#`@P} |0܌b%>%NSt,D+ܬw>܋_iRAkO>q=إvv|v86'Nk3386>'Hl'ϵǏӧKoΞj?wnR:2QY飇f߾*v(64 Q:AG둜sp}IԗDh![lAڇs GYc(2486xݜ?Pz_gz?bqnrՓ :r|;Ć<W4dcF.h#zJ]^Y!D:矽FOogfSj}N_coPNDhYAwbi|_ow;sz޼#eSu=nU"ɫQ\ǩCf$;OKS`cuVԣcz=MM<is;b "N28`1ж7׳pKڵ} " 08}ӣ내`b ʱ2i$4"eP+@荊*Gm^RACJf HZ)&9qD0RAuX4Uh|TxSMHEjiy_ 8GqpR{GaYJ>2atի`'?N]p=2ڣ=fs,:`pu޿B{U9MNjgJ>G~EM$q͔JSFS0f=5iж6Wrۂ/NX|*A~'(od]O['2熖n/w-Ϳ+'^~?}wկyt-/0[vʹ!UʘڋRAۥ)0!D]*{{ ,ʠ0'*L;2 Ca3b7Rr Xr_Y /kB uWQ !xm|b οL4N~A[kht \UPhUaOQ1lݷ$MN "3_Ȓ6y\֐ ), zJE.Zc NZsO^7?HUu8.uF6Oq^iz^`R `&fwrt՗ڋ~t7_Co_#w֗tvw-n,͌W79:+8P[9{4@{>FD~cf8tmϴ7}CAb2 /؈չoS&H \+["%(kR(56u:蜟 ft*( uV04 G7&M*u|:L jgD/2I"պ|(T*&5o~V8z. Q}z@hH8 |Ef>iy0ٳP9z$v hfz/K}C\a߻_m+an{|hU:#*ԗS Nqɧβ KT"Km5ɓBaF^g" XAfYX@'<>e?6AT89EKY._ ĸ;$>*G l1NMkQ#RZid l(4S v*؆ oeVD-]b}.;8|{϶;5;>Fp6- @<ǧۭ[ ma}!xvԩ凲(O9c SR:UVWoA-(i]g؜!lm`[!/x]m @8G~:EQ&O~=ؑ/xHk'{}`Onhm7{#Goߘ/?=+?s?nC7^ٺqzݙգȚ 4'Ʊ9be}͜'2I}u%KQ+l: I/j{8iNs=N{]`*ESp?b>e/}BA&srP&V0U+.uZG%j+=z(.l:GF9QrʈKu`*5Fal}h3ddŨ7{;n R Mm:zrNѤKOy G^IĤmQu~u :J \y[wQPg:<_fr9N6s.gr_\)/HC9J\U;]U @}؋m,̓s-@F@HىSdQhܓ'4zM[aٛ5˙1ND&Xoi6F|'Q |$&0iv(%O4/#.-C~ʲwN>yzuiδmOc[yUH}ic |KЋLmvj݃Fcr,ۮ]h[~z+taf\[&@h;mku92臨vxmoiO=d{[l'?!<oyԍ?#L^4;6e˂ʭL[PW6((~{9)x(/<) iW@?<5ԠӖnpQPedNےO,umiG;S.;mx;~MO=/ omn WVo(NilLq#p<ʵtɱv?@_GVfQ8V矞ÑV` 4@Ex*t6~)fIDATS2$mySA8FzgN812T딤O[Xq$認Q={W;wξu/ dYEgUNW:̫AtAYtV4Q60 0Ës X  kT0_m£nqQ>{?-;0K|09OLK=qOu *5NҘH϶/^ʃDF*m3,6gs궼eϭ™>>s=SKԃqS^l=)-8g+'3괻z <Me\f)U?M,x1>ۮf'^>pB!d&iG2V€g Y`sC5< HkF]ES)W8\XeC~X]z[ٵYR43Ei3#GMyQQ;8Q╗_|1(.k΅K^k6z˗ol/]ngΞk'Na9w[FrvbI \+j'#{fR_r([Fv}Fȟ ; n<ȕ][I{F}e0+72c'뷴չ׮^+Ͽ "9~7wj6ZYh׮h/jugݞowڵ[w͹yt ȑv`rzdǟTkL78?,-wlD R ǯC[Ν9!F"kc$(s/y;[F;+ -yӸTQ))e~7"`Eun(a2H&;ZL>LʘPN C%pM^InD,K>D18$\t ~? ,.C4L_Rf/:a;^k&[ b:~{t^enq[ PE\<h /€6ySEht(`B0QezkZi$TJ8/^z`+m/;1 7.#MJPP1VpY{ .p3C_yN Sc蔽WBCY%\aTP`z+mD}W䇼L ޴r`~3mU'5`dL*rOQPlݏp!%vo[ﶽv܅B$p > =KW;3(87fd̏<ؘ T2Y{71t%d&h*KWAKLd\v;OE/w*= _ԧL#PW\h`o_ꆸjU.RJJMLí6wcGF~b@|˟|fw#]奻ag{/²:2ƽvwq1_j/R}v[\ZnJ[[o3u\MA '?jSIկ1)N['}l^OI95:Q֞'U8Qqރa FiuF^f B<{ rԁs+f{5tm‹Z>5P :g|*J NU!4ޥ3p(L~(N!(xz_E$R9Gl*YNM2X7{sGz+8|~MItǍr CzQD\ _!ON!o#r-C;r{G)~exTo|қ䅆VM,yz$a2H8G^d_X+&q鍯7|.e r?pFjS:)qHLSnf.-|9Wl MWo\bjB&[ t"+$ OlaCIx`IW9 HdiRSڢY_RS1 P{4rb[v\#{ z4W[eAA3± S'?5*i-b+ڝWӶطo;تH # +/1)W;Xy?U"\H7eGzu]XiQ϶ /9 v8A9|x)`Bקc6l(CR'ԗq4% slSqzY$Am-^$Cߑy%ߡmkm|GJ>O|t\?8;hp  #mss]z=̳#{}#k۫W|2>(…# rdtdc'jWg$Uטޙ[ȧ7։޾=66#+ʼn*YkQ(Ws#P0;l+;+m!Pid H՛S3RBK|e b(qtA,Z=ϬeS_ -Fc^H' UԼetu9e Rq&TX )-{')hbJ:)C4U9i50.ԑcKpq 7v 6[E=BM|6 $__[#,LqȹM5}K\WM#E})HHCۏ{=>IpQ.3uq?s dOkCP⣛2o`<fN_x2)Ö۠y;(Ixqosǽ+J`dhi67:c1e.d\uS8GuDFdΞ9CttÎtA1#P\<=,Gg~\K2Dه."N*2Mvi#o4MT7OHi ۴Yo4znP2tZ|3%4c\\_[g$ف<ed9 v+7^'g ԏ%[}-w[N歛%zW^ioݡwibmSt=wm._Sn>2M(~do2@o}١IQ_kMJeH` 퐚K'AWih-JfGa4 @OhL *6Oj/1F v6…X<3l _v+/Y`DOG3=)sG#bEC_7 o {F|j@Gkh4+U ٪MXq./K{-ojk[{8H!_uh!)QG.O45X]F&{cݧ'1k( e *Y붧{ k?S_ƭ?V_Z 6KZsd䫁MW_w9Ŵz`SiX`|*o8)NM'P>dx+>ɠ%<咽<A 7%RqHo{$̌YSN}K\YL vsd%cњcp2#y}- ߙ'\ka#̑e4zc.ͧKqщ: m{cm.S y pGzİpX::e8#O" .8z>g΁Kʐ/2)kp —WqYop+m/2c3UdƎÂv:+tĉ3eKdѹ q75=Ŀ_s#?|bvfzlW^z;Ү\y=J"^w4}ɪ~/|4[0pόXU~iiYzJK}J-} Px<gJ-prպc.Rit5, DᾸ wGCX'Jf\S D'j/]_[hG]pN [X 4b:SrM!ȼ$F`/d5e"|hkt>0T$ @N-* _4E=IG;WQ+O;/K^q,/݋s Oc#&:ObԀ)=|xIGlCHg5D:&N ,MWQFx쵚2 B֐g^Q2daqXuZ^mL"ðSp1lW5Ա<@OOM$pTfU=="p3U6&\mmAxe)1 {q)ڼ::^{(K0ܱ<;옸'. 롹|Q򻺾ɴAejAF7u#ȑ665ۆ ɀ \ vBoБXXZn3it@>jpl+ѱ?7_rHO hW6ʇָP:5 bEtY.ߵؾN7(hmm(/mOXy>_~?}'3c[]Jm _og E )yExɓ7G ]Gvl{ܿS_/S3Jikm1.gȊo9+{:2H@FX#$U_# G0~"PW~M*yt\mn9J'P!ăQ= ʞ{ath~yu%=  Yz$2 {*AiQ{*AD<76*l[t9 z3<b,u4:QGd:HJB(Ր| u̫դjlcyB;pWPW_Fo:\qpy*+mH$szګhu"/mb[9v)lLP. 68KQx<\|F[$;" m2r]mJ"eĭJa7r-YeqK{?e@Pk1(ʓ#!%yoϑcjC6ie34 K\jqzӯpGSǽ *Ě6q6gi`%0.o; Ws/C;q}X=!4|P;W[@۳|l?7gp{miyh_J_/ml>((HVzr &[ɃmޣӦvJ/xGIAJw]ԖkwNxO]wRmnP؞eil&{_wzgO`q#{vם_m:[ka[[_iϿbl2l;Xʊ2QLI|::i|"c 6mkw{g.|wx j̲Jc}DP!$T%BͯQWAA ءR9F| u a9g5@:iEwbwv} o(!2(Z^Xsg u []Sr!xwQd c=޷g( 3wO:x<6 Nq9 /\&X u"_)3D]ШdnaOO: +kS@hŪEr!|osGn; w1|˷ALO]Y2iswqP+1nYסjlh8EKiPXÖM+1:^؛J :5 __9 [ڱFjzh,! 5ef9w{코ww-@/{k}Buq; 6W#m)&ӑ (#X/xbn}}}Oڿ_smusMώgNDZ,Ox~_h Xǟi|vgn>e /E^Yϗ4As)oQijRxaZx IC!-~rZ}؃Q' g~Nnr vKGs2de)WЉ^uzuOڀcɺM\j4&r 3S6?NiU7h = m!)k%*}?iPΓ]b6K>}ayLO7ybʏ5Ё*;xlݷ H"9|a7sQ^~f& fxZWnqnkBWd'vk{ݸy3k}y9VTA{ s C'67=v2=KO}v|;yz}Wq ]}_%Wooi__0%`vspVs/W:I+Vͨ&e:mO+t6x#`zl{36 ׅ\]ZFh$ZXYg1{Cݺ~ݸWг?/zO|_\[gL?4=vQfk <سã >Dưݕ%߼u 9p5;A_ɝV' 5ڱQ2l\|_mɑ͹~ U_F$:gS})J̽?mpd+~+P0&$!Ud]sgx}u-ΰGiNQ0x2x$/! " k O_v3D4t߹ۮߺَN୭v̙'p|S7NDZ`wѤ D"<9oo"N_pHTj1_SME}`rFEEmaDY# Lҏ 0J}c04^(5">A5 oYWwS,_;BZ ظ#H'"Yש>UZƤ|[-Pi@Wל2*V0Lʒm b޾g) VxvY(Q& nʘ8gؙ:='}akՎ:՝|C@JG#_%NN[z}᨜A<]N{@ɳ/h{CmޑlW̵mp:6):5s8\]Gy83;GqRtXzkkGawyCQ`+k+7۳/؆F#e =x\Y@M ç ܫo>XOb-hFFW^+73Reiw[IYKgE ׁͅ>Aۑ{mmi=sneۧ:tE%TmN[}9co//m_13/T LО'$=Q3C^52$_A!4013XqXzQ#g} !3(h-R:K3LQ`1 a3oYt4)™p)PB {Ñi2Q8ax噼wsi](m$߈S_w#z((gX"Ko}zʘ wpoPhq2j]pM'?u g02YN$oD'43 $Gށ%{7d~3KzV@k`17߃#̇?ܙ'*by( x^7ɠ >e2}P:K)˚GI]h>Y/pK9~2B8CeMI/HzI8 T[&rHf@(~jtNt2n܏S_'iSƣWK:e`*tuvF2H_ ̳Ѯ]y%DeuX&ZXƭ/ϵh1+jss 嗮fᅗ_m3m`=Cjxǻt \+6 w3nLuNeyG}?a$ZxI]eSծGs8ewα8 RIۮ߸6}Wnn#sƵrةt={v6o^O[t^mRݬ_ %6v:^.}# wZu`7:䯳- .3t\t6 ND0⨰; ^񽞕 v7],K^C[)y "teĵ{j2qb8~|]ǹy#+X־6L>/Ɨa藾`RF-F.}hgϞi/\Ȱ|.(S]pzL8Yqi2ݸ=| b*RJjeuLiKapFa\AnQbtמj @ C $Mr:vAw{Fbz:=1Xs8l!7{Օ <ѱQՃQy:ʡ[w=`#Y)E\앓Q^?=q@CxOx%#0ͪz%CX:5ROOr3'SyG'߲#.i1pm*κ <3^)0)c!O\?#|`Is 8= OCF/:!rp'uA.%J˾; )şc{/m1 |]YpejyLsxEil^X:*~v@ \[:&>i7L׌;\J);nOwdT[ }p/\ (bs x_ezee^+w1.```LoRZE\fxsg{i1MK]~Kw~7|׷76s8`:YS eI)߲=uf?&x>dTPo. -#O+mQZ-Jd]q" lr^9Ҏ}q̱oh?H{;?Mϴ6wF>v[]X8|B;$Ns}mmz Ryٿmr{BN?(ѾɼU&ߨ*Տ9%3?DsW>wgZgZ* }/imԔ$DCD՛BA0Mcptd,FV&Ia_Es:.jn3 a;::|# ʔ@@ 5Z+7:X,-:_ &|qIO']c 4H K^q޽M%_#5FnŁGz,Oԫպ ȗj8kPACuN Ҷ|h=s10,ȑht?u^&^mbT)%Cµ|A- %'4Yg=+.ԓ^qXȀAJ/'TP-S2 lYk10 ՞dzVA󥥕mms9=퓧NeȰX8 m{m7VhrT1kPoph@d{g?c=z;~o¾QB|GGx;KbH#+mI}#㭍܅sYH"/o9v_eS)T^M+EqMQƌЂ &G`:b|)pmh94Ζ _LKI)eSyIRJfil#bK#' NL*I s&A8Be]5{5[ѹZn^W9 D"yE|n_ݡq"<_Ikcq?A]BpµZ8i~۳xV>6W+.賬AJHMH{y*{B#5 (S}p渧ٺ Y9UvtN8ȅ%GGL;Hys}Beft J:0-B4?'\SPګڊ8&O`p62Ob/Le8{S+^ "/Ss~D-t~zʔM(j|l$e.px@l[#…944@>Av/8 :ͶsZ[]k(3N}Q<Aę+` mGpW=Szgh>3k k;{#mk8&=莼PNЏ]cS鐞i޾to3m?~vFSA{4|O;ۈR:\rn[NMW{괋>i/mofuFFjvw]w'p㋯Ԯ]n߾KыMũeubb<>ʷShCdgd*Ф͞"=}zff/\z=H_EsՁ1=3%6ah$}|lh67|4&$-jWU`  C\C cy0]W+bU\QLG%L}VaY F(W}-y5Z8q =λz! ~pn ɷ`Yg 5=>~9>G劏9DҮ17akF҉|<^ʪc-Kf*Ga`sP1uKyOeAǂtVKSZ&L. ,ks+gArl 9s(RBMY&+E}Ug:Qzg] G'x/:Ts@HgE{]3 SHu.cE^][ՠIWV}bP 2)I[wu#}=ك,wHީq _e)-1)\Bqy0 Li=KWڊb]}D{~:c+»xEס1(0/TQΞ;ۦkW{R2%O#yʸ i7a?Kmmk=g8@{Xk`}_z`Vנ(A/8J0WaqhS=rqޢh3*kg G76:txYK<\lm[iEOr(#©6p5[Ωguh~>HB;`:"* d)aY[^lkmia-,/_$ki9 &o#Gڍw;\-~AFH( |s/gAkZWo]>j%uG)JmtvHkAQ1UD&`Kv,yp(ocؓIFAY㤐hT&{۹#1Q"0"AsaX8ȃ٩(uzܲҠ쉩\ Bo 5Qi.RCø^:9+#t=kT3OKyQN\%NMy yMc&OriN_h8 ̡dQDc#+7D=s,ꌏ޽4 ?"ff()Q8򠡮@wPJ|8:='#e0*}TCEk,(#$ۮ[@ion5Tq^cTO\j^QE``2q]Gp(- _ 358V`)DTUyU2cLPs)WFTuD#J48㊶QWNҚzAR2 d">w`SE dmp$ΡsGȯf )pG(hS8vOY{'?{~65DǠC9L1\q'/) 縸I;EA5q /9gYFQ {6u| [NK}+"s+CսhT!­通Dz2k[M*~R;CʳkZi /c -xVշeɎ4St<[A]/#-RҞ?<8S6Ki<ٔ1ҡV"EW}Qo~9SYAޓ7Uo7&H;1xOd/N;&<y3EoO9?nߚoϿRdRA}RGh˫m 'c Ush'Oocd9Rmv6??ɕ=ݞ~vmSک瞧络wXpyOٗڻ(T#v}qTFcC'mZr+aʎ2&Y WUjO+}2+ąLޖ2|ops-Ƚ ` /{VD}m3>JzP?bԄ_AG}|P_$UKHuD3mswG_.?UL,OҿtxoK&2b!FIQ Eh4{ǎ&|q b=g~G(~GOδJ(@ 5Vo]W:Ҹ亯Gœt>1eU`Hm^v=JyJyL 7>b@%Ј(4F崪/Q(p ő^HgA*NFȈ<- iTυBŀkd9/2<4KhT|ۓ b@⹭5V?N=u8eoB)`oS.2 T[=[4|U(oPr&$PpWfRGɜ_;r)]li6@$Fo/SVJf('{K f>xRm}\XA9}hgwZpoߺua=N8f>4<|A/UM6#ژZ3T멤W_=*By%VQ(bt~ 1p8[wd;{x+H1΋c{m QP0\AkTCeU7V*tAF9t"dpuB”z UzAJE~j\PJ /3@~9Tӷl8;D3co`RKi^avyCx]g1% 4$ѷ|^w@g۩Q񺪩b)W:#:A D5XNdAY11/`+ AQ >.dDxأ{,W-D؄i[G.Ib I~/oB/~qz]í)̢_S/^Nݸ.(Ox!kk뙓_yH pXYNT{ 3Hu!Yom;us&8RS.@6<<{N/?K?ŸN 1v]3r nKs鈝tr68'>vPltl"j7p@g)Y} h:cڊ6]=p{ƒa3'Pon6w(ޙ)Guvhm~V{Mp7_q=1yzKK03<;{q´|plL'nȸfrIQ?)2D/ɓm`{7|ۏρTVWϦ&i:ZeH깮@Lj)p2)A^c## A2hP1TV #hB9uX4"EHw<򿊦'>#r F-<DIର<JM7:ЙC%@k ?4-$;^q)oa>SgXͧ`W džvh2yW!cqS0Iȁ׳{O<{>K~:i<6 *Q+m'SŁb\{qWl/{q HSVWZ m³ s933" I0 E ]l~$ùw1dg>N}>K[^L}dNB't*ϩ{5m]>v@?AZ+[ %wak lNM9,u@yNx_re 鐵eG-D{8˺6|`+ ۷=胡`І6w̤|Zx_+H3~m\mUR| }ۜ^ǏjgϟngΝ)Jh_\ _}ML WR+R͍gꩋNI \!Ś^lo;12Q~>b}lOma&]80M wОzL[;׮^֮]^mͫ{b3RFx|ỦP[\I@ /d )`AB`45G|Fک3 (&;oQHAz:<#=q uЫq;L 7qt=᧶ IQ[^ =sC=ksCAP^L,щvر\* W>V9~Wlqe+#ל,M~ts6`pW^i/۳:z?䂺 PT:/ϱG1: ogرwΪs$V ҭ>_?pQ! ='i|d'כ\= ߝ^tB881 S#tUW|k-)p# dgΣ`. Q >o6s52r붼> kq no8RE(:Cr޽w:y&gf:uZ?-%hsÖ6,n߃t8DzHǙv130Ni{j0K܅OR/?e|YKx4.2VviUHNɣNp\qIuߠG ʾ[B%̩Sq^)pF▢/=(j5@|up{\%RC?.NŏN\N(#/ˁv8QR?@ .sp;io3Cǝ<}ſmuX:b{f@kɹvO;<5 A>=nrd#>-;&gڳ/=GtC #䟎'0@p|vV^To޿s֭o _/ SNC ĆҡxXmgo@0J} Vegg닭\)%ʓbPT+S AvP0vƺ\0ڋ/n\Cn^ўyY3#p ei;ci'ͶcؽSO鶺^J{葑 2 \[j [ڹSg[m }L8b%Rul>xq[Ys39bt~7O#G,Pٙ޾# OB‘A/zcY&O/mT]m~q`F(ec},>nNI$|ؖε0)T!ao I=}C4b*PO\Y^L4{o` k\6˔ lsWV!aEP~u-#92,ǦS8QfO1RcO8yU`{7RoY”C0'EqN=urr QA;\ӐDs{eQWM^yܒ}O,A :o0 ;]b$ OT aE2b (IfG6)xgKVy Rǧf^Q^9͵CK[gax8")sqɞsa hpN 'd; ΩD~18ymAi vrp <Ǧ[hePqkN D#yst{HFl/iL[uJ>ե78ڮE4 <cVSx 7ɵ8Gʉ8lllf}S>>L>p!\G\+9 91\,)7:<֮]-ZO`-]*uΥc'Er[XZk)'Ud3)bM]S}e 9[w@ݹ5nܸ3su7#J_Lq氺S2-]e7Ah/[KJfzU3 ۧ_x}j+wvvvܙ7='#_jz]| B{Gٳgqӱi7v5x~饫O8v&ɩɧ_l+sy-сm7o/ru4Y<:{w/.yp8&V֘I z >N̷ |".a2`8r}y_}[~}b⻿wvocYe`X!3B!ؚ9x5jݾsiY[߉zI] 8ia|mxu6* FQxU"x.ޥXrN3SC@llM5{pptEѤÇn`ѽ#8W ^Hoԩp%疷3'/]5{ yCtR¬wǰfg/S8K%_bތIضmǝ/y.>'> kB2 2{ | QNR{JɾF9'<'Y2b^;>"@ʥ:rekJpF8%wytOGg%֡\/ǾՃݽ'] Rر=ȑöEo`3*/hz쨢LVs-d= G^Ҟij4C7{ݙ|:v|&uH%lm@M\TCmGt+Ҽtw=s؎Cg$v 8Go].\?׎8HN:sP6iAj=ls wox2iѱӞY`уikmՎS3V$dwD]n;(A4:2EN! !65=w5ӴS'ۉDZ.W3$#mРygpGg˿jns8eM #ZFjdBRQ=*\'2&>cc49!v8U5W]ЗQD &5|PχڣPs녡k $Ô^44*CRCo1A,OQ39K)LL$oޑ MTBR_>OkZ'tili^oC34hOJ&|䳜$r_goJ>'N$N 㗕 ΰ-sVNaPˊH[JCFHfX񀓔g_WF<.H$NZ>h3X𣂛*W{ɩۧ\mgTG^G}ts 0–h]8pst~xAbʼS]­ zzR5/D\[ϭfaxU; n֩"|Gaƴ=?Ǧڍmc{͂v$ LQXo}h:ڇQx.* tƍmlK`oׯrx@Li{=\s!#8/ɟߍrޝ_hsw#ε /]} 4XO T_tR qBvɶ9ݞ~2k{56tq< m#"D_/B@븢lLK; 菂rı,~V_'eZ"S_ԃ4 # ?r!w!/P82FUQ nz7Р 8 :E 8T rJO(85P%VFzb=OfWs8ۤ^Ox( whP%Mo^Q9(|j88MzmTnDT;fS ThlIp>y{@TeRymQui8xlLk!#\d?C2h0q"MrBNg-p'ho %zyȟ:@E/^q/uv9uq-{`sNuT{;' _9GDzZ9 U`&хtAK7ICת>3' {u_d$2eHcY/Kojc|K/9|;n-N][wpNd6U=֩{l= Px'*8>>]ok[>N ~/mA$^C]\]3RiCS}+O0tS'jk}*5zmbĻၣ qs)LD~!iΟ<n.B);]rۧ PtR1t{.I:`p{oYo^}cڻ620.-H?P딇t.p}ec3+w 쎁7wϜZX^џؿw䇖6ɵwʷ?yΎ:s >?kwk>_u/l˾y%Vut9Phhdu 0mu{Ra8q|L&^YY#RRb#a')Յ:!Lĸb}z}t2§"k JqwAU&FHb%i KdsD$8j\7afP >rx_0Ac{ H幯PNW#bM>@9U/) UN-E*7n0УݬSyp8ټʇ 8Ͻ*xS8K{m@ZV)/mBǖ ^8}3m[C:pۨl#CI r!0َ_NmezdD?:9sl}Qvۭ; 0@G \{ O]DgPPm[rzNd7NLw{:D}N)6GrLKqϵ;Bpݹq=mo=k3M}4"c# mq;x y$&eE l>벝7Wv^;1s6'WCJ!¬ -IG;┊ve1N+ُ(H4bg r@ No !< В  I8蓸U)]r'nn5|FOċ$'W)Kj][y)d|f OG>s+.t @Flsu^vҞhSݿo~J]zңgۓ\&--o{8t"ٶ}E2evf--nեQ+ m J  ~ާ6~%E.kX5/Y˓A;[uo*NgnG #E_h8+םUY$x֑eU䖻),&Q6R[j3qwh[c|66]o7 OŸ&??$@6Y缟=B{.{Y;E89C΁Dw|zV+WnK%_a@QJ~{_ V"b&7~:Iz4ÊQg2U@SBc>G;?%G2Ć ;VM\2Oz {V%#VTG~ lX!Ԟs; bO;@#ꕾ;͏ E;8{SAA|a+'/u|f{l)^Y':X.{ Ď:$0Z"߅6Dok;/Rz8$jvo){U|;Mߡ} =3ΈeW In{jm/`(8'N ~k:]SwWmvSKmupC2L+:Ut$ JCET2*z/368sn.Х.z}dXʼ#xXJt&Od;5{MM[k[ȴz»zdk㨕>Ac/z365>^rdG$ł= yQWWb+ȑaP.C:2]&i7-i)|z\XKzk}-+yQLAv8&P? 'FhP6lOBu2D5_ ;ǏͶsζ_x,Y.霅eE9v v&Fֺ ɽx4S(btҶ6KJɵ"o/YnbZd]R'>=]Xֵ>hOȻ6 L 7?z>V76@ĵ^دzo[~ޯ>Ϊ_688%82qXyCQΕ(ؕQa`Smfbzvt6U^X,R7~z[\_f@+=|ߡ fN302l{r lzݴl3~:fӤ׆—.y2(o mO3ڹCmFv} qsSK6}~Mo#].>p{[Mv/}o~G}=ӧ n޽}6MTh4*s<-qW,06cmDj S9)Ax 6/XcMPF {qpNb <r<LqTF5 RF9V OH+tp4*8a|VW|`ީ]|~(cFPZ;U>(G]F]EI+PWv/cT/C1qy61J8S 6 ȿ1JܯJyaa I,Qq2: 4xV1}t 2(3f"r;ZfEO>e? :d@_f4d׏"&H=ʊ-|T3r-OXy?=^PE`pJ8|N4IdzJ pbmnAkOPVQ/_h+[ZwN]^,,]Ou:on9-Ul͝ep,H8Vts7< C/ى2aW}L}ЦR9r0xz 8"et֨Zg`\{ƽlm'ÝG7.#'GR>^ Fƭ{`SyekSdv*D^ˤ-;̾໕0ZHj]c0LO;rܳ xš{d,G#6бS2r<3j`<f$N y嘟2 <0Nv52ZdfeȀE&+BٷGe3}ŌTxxw˧m5u";{;g}=$rjO-h z)ҹ c}i_𵼾T >%vO@P!F>Glwq…z-}"-@G?DKQtOB?eG#g\h3ڰ#mff}f>yۨcʈÅe~MS6ʎG_)8i[mY9:ɹSmjv8}ˤOScS.(@6r /x#NAtN<*bF "(N-pQv_8>mx湜+:+!F+4AOT(z-^rhШKc=Cz`Wfd 2J">Z搰읣8̃a9(^ql:>x0bwWY$e8Sl;̵CƗ:mնHsmeCzRo?" &PjvؽQ-pm&uQ?v=RόlL?{N.\_n^|N^m\ vH{ 00$ E&'S0A$ -Syug-/sA>w_bK;?sNF޿=`S+* +eD[[\X&$b@o/ALpoz6&Nu*,OR p)x붑R>R2d]Ws>4j5Z2f yzYLDv_סSڍE,3z-J;yJ&})v\gwM==-t*[!o~AsJ0<(d_y=}ݠɡh;N %`"7G t;aei jT.rz34&?qO'ϴ!xO m>:ux]|=tvĉv3d=nB-}@^&:C}>!Ez} mI#.ԾmmVǡrQ=By N/@Ŷ5u?XDFmGYяĎpo1>vo]e^O6% JclBE*] ): /Sy| \FsYF{6L_r03yj e3S O۬p.$S9r%OH^6*Q[k{mim=D6 ԛLx_;P8Lr箷7h,_zuH,NG}hԮ]ͷUGJ#۹DzHm|d E z͸#? otV7b$afh B\䢿陙 vkˀ+[3t!)=/3NڣоCg?6: hic倿Ed\ߙ_4(P1/2\R~!mCDM-7C;m?#gvvonN>#oٟQ}=r#{Sm}^Yѱq5,h(KٍQ&X؀*w󵬥Yg@ᡁv,v^{B@ !ǹ:Y~7TVᐿ5 eC6iшX|(7} -xqFás6G ,v\M|zv)F Zm!)mBOG^4ɷ̓2͛JYض/I}ѱg){:DYqB}Verzf;}7?lGn_mwz'O̶  1mY0XC)yu^\|(9vwmF.Sۉ'U;$|WGk뜺&xNi1=t*laŀ"Q7p׆:B7SFX(u+'6y. o9zAP|ϼ(R|Kp|y*y-CREAC7 Q*Y#TkBҕ@Ȭ,9,(':O5Wx:0:lMf+x:{,g#{M~֥5ʄ:)`]2ɟ _ۂKx0^u{<ݞS9 6Izt@NKNBK)+&JE1"Z>yG9C\N'#CEִ<0+h~yp۵2жgkQCn:m _C.^4ӎi/b.5پcI\a5@9Put؀`徏!7cto3@ZVkMC ܹs;n' ڙXuvO?ۮ\nޚ|qsݼ=vۣ/{B[S'ux$k\Xr!]4ť< ׅŷMy;l<:d7'c{౺.?5ktyr 45 Ll?ʅ{ON`f벭n5]!#ڌnp\6*2 K[k\x᳗Fd~=}i~\H߆|]mrPX͛m^%2f6sDiiek++K]/{O2Zק0}^ d mPi*ػВ6>8+|-9_a] Amhh$'u+KժxuoLK6qL/sJ84h8inq V r6$qǑy`>S G<)Ŵ~noJp:Br2p9T^(qݛ ̶AYM v>v-: { \Rʱ:=­Ȝ%5tvG#_- AmGG.ZJ 8qNΑH<Я\#yp6ւ=Frsx_):5")mb{ȷYE fX~ {g8 xxMLG;d7+Qf']~8ȶrL|?jf>~w}LzFZy6x~g?y}G(o"'8-oz?} povꍶqĎ\\ymm M ظmO2eH!xOl]s;2j2'vdc_Gϒ_0~@W-sW{v 1^Yh3t9M.O=˝5m>;%d 9OkNƴg@&egso!Ėyԛ{PĦ+w0Hx;}+^O&!t:v0x8@U/6Rql$}(JF'3P, +PGm+ 8)]Cl:p v3?Vã:( (| Ѫ(2@P(TZ97 }y,R9G8L=FG;@kU:Vs Q i4 [e owO6h!)xT] d])9Zۄ|+:$MGb VW |<Ez+'%?S=ZTh<κ 52=ڪ*m^2q ?QO 72eS~5g]AW^4x7i[S0HБ|Et+GÉ,?:b&KvveX|4ȹN26fdcJt\Uyxc/˝uA곭B 9qR'7TP&ލkr)u+WfZmu SӔq,;V89&fTgue%/oOgzsSE؀ܼ<ܞo~ (cǎK]hOCF[]o|G[i/\A A-Dv!~9xߦ'X^E8vlF Gs~Qݶ|I첏Aǁ :եu? y^DNLP5uY0*HhwWAйCVd <]o77w"^%T ' o;'ק>Msn٘?A¹ YB35춶Bdy3)#GH~{Ez?L?ĉmgOWE d! uSVBb$/Lch{ۙƅ-SrY+FLcnׅ̓X 9N#:x2 . `j8G2yc; ;g+\.٣/%#RTmz tOckY3up$H{R _({姎5bfi 12od$u$ޞwtH[[jG&c zi3Z^\= VԐpӁ1?vb޼66W#D q(Kqf/ tN4dd%JyCf`ŀFAyMe]nbEHZm`38BWCSQ)Mqz7딵~{?..6U-M᷅duwCq7- (o`j GsSÔ!Olĭw@^VS7@4<; }'_r =]4$h׶W) ȊƥLV Ӷ:|G~emq9T~e)cK(H;}I0= wyN^e[d&MzUu'.x{?L|=ʎ2ձ Һz#yțu6*:ޘ#Y[^_&U >ݔ誰c@dހ@`Nhݑ^zgJVȀy5 ~ofsI25@ WۅlN݃wGFjO~w_gVhK|vtv+?ijF`;:z=S7^쵻wd{Soj'OU8]\n3NΝ[ƍ[O>&&p>(%xHzff} LCqGDzio/rҖˏg?b۾Ц'yB~<ՙ*3 t*E꛼ie34NGǎ?1Ο>%HY_:an7e(ѓA<L!lSm}^=yUG*B<{to,)C!$ʌ<j{v|[ZsyHl)+u>"?rmt92zF: u!BrN:% 6q)5O A. UqaӈxL;kҠOdCGFeBqq][dݳ۴$/TYϧ: 7@%&1Ov s (Apq\(3gG[5`,Gb$QCJoF11J<}2#2ߕ_7$Gb:;zE|uX8_^d}^w֝|^Ѭ ;j`+#cV9H`ZHp#Gao`>uLwS/5uP 4g069zVˑ. N+'m^IAMe'2豽MO/{hP.hy]&=E+K"Q8t_vlޡӒiw)m5P-a$o%IxWP27NrjUAđ:.|-@{푳{vʵ6CWt&ۭ;slc|OS oT-Ȧkh|3ɕmBURtQӫWvLw-,7+8:n~ 1#Qc& ,$"K|ĆF_Wb5;>Ӯ@bͶx{ewa[|+˯_g Kdlaۂ1`# B Nؤc9I Tz7eTRmRg(hz3#Ex{׌A\#ʪN )q':sO 鵤5NR\Yzi V4b?ǀ2ߒ?I[:5{mnŐF' 8FV{=k}VND{ttmlܜ&]8mKuhW~śkWvշڭkxЃk"+;sw= /vFXd_\7*ntu+=VZ3Ml:Jxgknv4RKHv x'O_K_?s}c?F@kh򯘉-=:ꞽKg5(ኑ<|μuK->&aV4m痦v'Z-ex it|V`SWOA.qTۈ~B 2mvef7d0q^ ^s'<t ?ݧH=_maqZ7adX=4#cἂtO{X~;\Giu~<:8 G LSPI=??O3gb__D`>R۵r,G,J9{E3Ͻ! Rw܈NzR9R0u*k2ՕӶH9Fx"q"ƒeXG}ڂ!Dݍ|4$ѳ:p!1٬PUSbC edr HK< '}&&>IٚqFg'mt|Feir Wo/^rn4-IS<v ][SsZwVTT4GUlo d d}jXnp铽:orG&.M/yΆ=:))k \`{ߒ i907lPRtoFYFK|LOϴr_x637^ys/? mvj]z=szc]N}nW՟Ӧb9hdt6 \Hw<]x3[St%_/́yna]_nƖ@ q"7kqVb67ֻ>#[5/Nuڿxo?(}+‹ < 3Plqk<0!r G1VkOK5!9ʇkca̓0(ש(ٱ|wm5ixEF mB,a0$sVO1i1Q 25]tteEi,{[[~W]A•šC:OUR@ @7oIPZe #c)*Bw]C)C#) Ty@ %G2zJqQsSNFVNQu i+~籎 )Qӄ8: < o,} -GDV082=`ǞgbWrl^_ù  1.)xτ496֧*hpϱ^_I ' |}.\ rm+'B)D:(@y3[?k/x#zaN$jO[9S[#%a!"Y 9O;y+z2uaI&kd?zdv OwfLA$Ys{nY4ɽ@TFq"(m.QHٛKsҐ~vq|c/h+/m?s k⠢]~-\Vҽ;Cն$>sfev<h2zx~qrQ•0DkȽ6ui[V|_CSGw[j+d_8v:Okwo+CfI=e|iwVpoZ[l;mJ9U2+kkmჶ:X-nhQ΍_k/޿& }g7_z,B$L](J> A ;(щKmfl=ZY-LkT{6Wjjn]6̻צ( бEtb&)WRnnP+?| 9a~Mw®||UzXgJ)ȡAuoPۆBg|8Ukݨni2S w0wRzD o Ir>F\ ,QJWZX*vm2Q 塽2v,bcjQ0 qg[}`hEl\u 8xXv8CjUn}h'Foxt'"ac|5xaaAU989i{~K`kY<؇H ʻCVxaGN\k=i+sڞM[;g-x@J>CÎy6`HzNURzKp޹^hxutډˀODmU }2Ms :n@n6ё ,J &t{n%G B\.K1p{mj{:rB?g`vnMNfbzM+s/mD+onlק|̷'qž (|n= />m>s]]Z,ga{-ktZNQɤi4~ҶM A~}geBG_}Z[[) ؊vzҦ aqG9Oְsxcw+c{E˳ m}u|)+y|/{ŸQ|{AI|R[^ˬ+ Su=;᫉0i' s]JH8.=ma+˵Dd]Fu3=Z@gr7VEsS6}2R;T6 A:.l)fB0-A.|ݔ ӰkCCCMؽr؏AyJ?CHpH sZҮ!=/ǥ~a<_"51Ӟ|)>߂уrhrNjWT+0Ȳ$Чc^Y|zrRPh ʑnl|Sw-[ |`PV=Qbʣ;W.}'gMīҷ FO۲DrCw<MBj2`a}JBh$8]>^,X>?rq 381%*Z, ~scڶ5g[N1h9{xܥ*lG Ƀ `© >x|Vy|Rlvv&:S *x`ݽpm>Ka_IzYO/=OϘ`z&2gelq)ƀퟶ􁏴D}Wg}s&Fwn{d^p1wޞǏۣ.͵[KAzth>y[5:E|621ҞI{ݬm %sҤ>QLwْ /mb1beeo7d6WlLnoo78|S*^9 S )VS *ПXʲo.B~樷eo_?>61xv%~#0)akrh(ƥ"<{v^ QϤZ\N5vܮ{yRmxqN/sNb)]x) c"0}W8}Js{ӿD(8y"SW \EչEkv07£S,@jrxN{-׵o1V0~g( Q(ñORRIYތ*= zR۹ם+Sqx1@<}NR.;[٣.9,c02Ҕ{Q(+[Qf&RpOk S?\HCab0 M pٔSQTߐ_],Ya<7і38Kx~/]J[+2%s OĆCrvdwzSϢZsi 0u !~r-7aCkm<8sHbh͘ _~eobdm /\Ђ56~]Y\lw=nssޜd? y0vnGSFnG.em,:Dq&ku>.Ȁ^nWlSvg󰝻p箵ͭ׽ڨ}=xk?y%ǐ(x1K~!WH[:Q ,3~Cj[~ݸ~3W;~meQ>Gа%]Y,ţ˖N{6cٳpm<ȳzu|O .9!x*x|խ׿?G8~0٪3V5\s:'ZG}|(5ƢL.%y~~v=xbzkX(Km5zi|ַRxYaV2Ҍ.V+AuPSg3IZٰÀFeH|9;9ԝD]:cPxX݅`E}l?˸`|W{QK)nh#E~KMXkg G+R;{_bҖzQȄ>lo|wpQ,"jQ`E}!u=F{"(|rH~FfϚ@P5ol_RٴGݐ5(R>0Vp3_l(p gwcJ"ti83?3 =8+ET5D)^뜆!qTeS)=FR?4txg:^Ui^y'~~ux?u ^jB W9~w>ѯɏ!Yc7FxԮ}8f|DJOӚaQ]eUEc}%hd6>^x -Ní<T^zҵ+m~~6moW߼ݞjh6]2v\|.ho7 JWM~+JG悫l}c+| T6Φť+WɥdrM:kÍWM Պ 6]-D>9>W?CO W~ ;1&/:XRr'Hcm\ Xۋw<5p=3 rceF„WPRFaɉK5u}eݻҧ=ɣXs<`R<|;6K7_2 =MdaŸ& xcH (Ff[eEbnDՔ ^K G1x"P>f&&ҷD|;'QT{ sNvh;rÕ^FBC<~Z]T}) uk3ݫqeF6Ƹ, ^C|g2َpO>S*ϥ-r|}d^"oYg8]]+ZC7vX!g Q*;M41a2RUC."NyXK9evgUV~"2V0Ņ0|"8 TF&zcoy/s/Ù0I2VWOvړã>| )< ޵tU3B1#NKPRvixͧaA zfM. Tr0v/N;S_E)R0#Ƣ1{~J3pO*BH]E2J5+feD>,A귔'8OyN[ EVupZ,0i?FpH5 «sNL~2)4 )@)rFa8DTTR%\um+ʄ_\K;'09xi+tBel xi[r2"i4n`y47D< KuN]qM`y4ǯNt[WYqtԯӽvtv( x}(VC*˰\s3 {N+܄U\eW̐\{xȓ QEyxtnH7ѕ8tvt-V Pr/$HQG4s7c~mt|ps4E4gW/Hi'IIʚ\qosFlي1H[m`}g]^cLMD?{z_{{Η;JC19pEzx&(׎1vڮm\i_޹Lto5qCurr?^n} g>CH=1fS6ĽtM6B=Lwils_JOCq${# ܍1>Eh3jP1KYiw'pwAxݫ&ъ(; M xa:}`YܘcwNW)Ra~)äKY^O~K7(1;:YLU`53]w^?!ןRyYyǶ&oWƒ,s'ʐ&cȘ\׿@O ~1u<~;lD>g ,'O;8T]Y UAҖv((<^X]c}|_ =-~ؘ˞6Fm _mnJ{ES`NѨ@fpPGqS5O) 6H32p`(՞Y.8 hY_uW=.uu˳PR]IxUkW>J;O4L^+8ҶL515/LƨpX_~1CC]ԅ8ͮPmGcdzɩ WcNԿq؏3b5)xۭkRn4 ܩ{\q8+צlגaEhw94KYs2 IN3W\0ٚ7lIkq.dKH^dQ n:ft;^ ?a57=SSpo'允/ȸ`zB_}MHY+t-/?(Ϟk{{b86QEW蘋 ScRaQ͠pE#0 P ip5~)e*2gJYHkʗX%Upw*Lu-rx9n+xsN9ܾCi%X3KS5;O.OύU60Z㶱.O&>99F'GʣvI9jˏՕKƼmj#3biF^Ol՜[<8:-vО6&j٤M";;[(_~.\_m#cM%oda#S/_ 0YQ^Pdɓ=rYSʢ2[{{/׺ `i?ԒiNGrNxo]0}7;oğ'{vw6dznj 0(%&BHS>=+4*}On(Kmzf1 xCE塇 1 XRM)+W05oe*[;噺KaEQ 6FnS0W[=H_*J>AEYcrbr">()i+%sLL|Պ<=9T~v/rK K[A;OUgNJ#A(^kl6+U鳞ɟRV {*(mrD^ۣ;}BO dnV9;RW >m$?T(z( RPW:N}|Tsk;^(?N̓ƻcྜtO]j9)S FaVB* L9z^;ګlie䊆 ;M : IN?m3k[})?"e'|n{+=?;5ޮ]F'jB_T9θ^w[|ȏ3~d0Q[uJjoݲyq0hdg9@cDɳ6>7Ү]moF' ؏Q.MVWjn+FFq-[[Hl]pnoݸUV8z V8u _wA.=iz&}I0e߁v.W!%[^z//2`Rъ! JT_4YB&N'*=L>D?t wnKW&Lerb+ڥnYzp-+|MOLݧm7M{[ WGݾ}ݽmvr7ӝ% ji?qsa}#k6Asm~a]bLQh8#>[n('3S/K[ wxpo\ R?\#;b^90Mc:wp|Xw"xM|r9hh$^_#|,~K/xg#&xXXHHLjն^cwB5gP=UƧ>x.\_ѐ\~绉;EgDGd8m,O(^ g, G*؂[vͦmB+JS _{LswNjI:kf2PXM?#!hO$羾ȈQwCsers"KQY0RU=~#e2D=]A-(bA#iػ^A3o,F2q>3!R7ǂ/rjO|dYz&\7w'>*'9#ƾEvf\K _2Zzn`.>16=ZN[G_w\0{8^]g\ic+TJt_0}fT'›[Auf`eiaQ7&g_^Yknh 07~6;;]{Zܸ^u=ƥãvj{me}ͭLb9#T00Iirh|j"?xQ716Ǣhfx`z[^[i!_G;?٪-U=5¥6ق⁔eőzӞ0Tp!j|xmnr( ?~&DXƃ2J)HN[Z\hs33y"m 3FPk<6*GTӕS7TŘc$X2- h Ezt \OU8p0Pm>?ߝ{Pdgà^8'<$ 1$YE8,])sH]/-mssiσýD)2}ahb?Uؕ0/GEQq|ASKW yg>)x<̗Ru/CAt*^ < ]ǙcT)ᤫr&'tw<@ kȃ>95R)G{SV{p\xL@,Sz/V˳s K5۶nze# eV֦{c(,#4J %UR D21 ё63vv8)kDoHΐR9 ++;7r]^mV6*;}5_j&Z>~rXCV@pNXr%N\tErZn:l+c2LhҝOr -"rjl줟y 瀑}Y C3BM |övk'u/zOǁ3(?8O8q҇!-]h~7UG>s!۾fB%ƶwGr1 :0O^'&z_ )f01"sOK)[XE? lY o( e`Liz׮g+Z%@Pd=M]RZVՕOQφ)$L\k#$xD5ƝReSgPW"`QrPu\?]:-%#ol?>m6H)S~5-ʰ껡6pT]9ioBoo g"Ni0hUś_*;z]uRE2| Okԁ&Z Rf}{׾Rk WSmԑyvA NEKq8q#dº3SEf+S0r@Po&ʏWV]x5kPr;9:vZq] U`~GvpSWwmWpxaw%?;W7g~n* ߑcDWhI71蓃0b:]vG2RѼ9!11vdm6Ci2q^ ڠ(YSګM[guܮȻͭ(Q_P{ X>yI!{"E; E䨻)O8Ќ#ʉ(voӊ|g)((3eއ~zq"2 w2No! (vlLwpL FUtbLwt,x\*wTNrRFv4]EhTOOVH]2V7sDo79 ߺsRȍѓMAq~iSP0͛yX:g`;QB%}Ox1еڶ>JXWXV?\nkk1n۵ٶgOdL΅a=S5;ֳ{8, IdFZh~F@yON]7hΪ .A#Q:+eI<v|$'xoYy>ssm,uxhuq[خ_&ۅ[/oăk|jo \MZ /f3oO ;n0P3.utr!xRpJ1O=&RDR_F2,-?7o% 7foŁXF$S8L1j#`|k^)|)8(}S0PlN#5Rni† \rꬥg^pmϼmr+އPSt_L@Tt;=js +[ I=G-'wCg1P7L:;z^SE8ҐOm69np8&G(rx,OTDI |w0_> ôٚ  QOr󗍽t ȭc>5.@$tSOKwWWKۺzL>KDmh,7 'T)m'^hӓc]#fkx#Yll춧X^t4vҳxq'է.j_ȗnѽõ`yoUto q;P4yNzP{R{ŗ6gkח/_>s|);0 {(CYo\Jj=nnXN e ܱxe.ROkN_`^olSKp2fOCy-?~T)4䜝+%GA6845 |Qүi ciP4<#ͻ<4Kxbn= ٳ4хP +\teyY 7^8kfSlS_4 pXһ^Se.}u7e1 ?_7!.!=\o MNǹBh7o%iť8dg=yms&zASwgn>s]^\J8ic{.q9yZFl0A)^-Hw8uzޖl`@+ s0O@~ML{P3V܅s ϫOT]isJ>NݥhgrRG_LѕG`7<[ SsBgrVwÍ= *!aVMZ)r>\^I9e9*;^0L͂rMwR:wW'v#)D!7Mv՝6* 3W(a+~p,Mmj9/ |P*85.>:V[́ 4u8 qBm ҐB/ٹ67;W׬*X /tX0;:~Y۸g/l9}xT7J űSl/N+uc6g3̠71pӑϽB{gPN1 y\6fPih9v)4bȡ:0opp16@AS9q9u$3 ݽrjPe}wCa^~{9Kxxa>.3fGȍRof~+f1?[ P1!>&'EJvX{>g`ƿ(NCa#0=ԯy}CRKWkLZ&x} ztTQL0\(Lk=g" m60(([Bꓑ$H1Ca.#B.3xs)Oh;ݨl@>FA" X s@j7d!C,>vŒ/9m/F;h^^ qjnp{fMϪO:zerQOQ9+" Fq>Xc؂cmߍ$etCW@ o@ |:HWt6L߹w a M<iHAJ=N8<|"G1 SMŷ){m Mml(+u9xlǨ&x?ˑW?Pxz3Sdq|¼X)fAh_GKη|1V6iݺq]<7k#EvVo"p73?[>N+CX}?'/eNbM:Xep Gg*2J`+Pޝ| g7oA-*S]Se_e҆ bV*gWu9c3|1M'3aZ#gnwzA]jO8m ẉ\JZWmԟÞR0m1hC,fHFݝ/zDۅJ?O7୍[*'~l/ W[AZ}r 6wl6(' |ZupZ}VS <}Z6 J .ge}I O35x5{$߇N)}yQT8c&w97/FDtʝ$BXyz"öadA:7vD{9Ol!܏1Pk2!zd\H }> f+Ф"LB1Vs `-PT}s p^y׻V{/Z[? ̆OP`ƎO"wJF@s$iV?8jt+7=#5^{a{x{xJ=O=+[0+,Tgѱ8>W,Y 1%N?#ۛCX퉍5ηkWs)3 B 鎉QQ؂T0rB`'x)2l$/+=gBk:]cN}{0jp͡ ["׆׍wgf lP)R$p~cz'a":\ p̔" &)q?LHAOÌR¹Ʀn|:pOú9l;n>StW`xRn4$byPgg$w6ڣ6j%/6&{T(Y+4}'*3-|wSP JNCѪ3i+(Ys>*S]ݵaB,\톏i_2ki偒i1SOF*C56{ )DX5]NW288sBV˪rY|~OD:p]ssmgk/u-8Q25 pnܼQGm#N`&c,,pj@hQV(}φ *lׄ "ҽ૆з6ka䂃(cFÐȰ8pg?e \}-e G)GPrOh>Çi(-b0r-$ϸOIPo$,'4y 7"ҕs}UOD8fA}G7s1#EЩ jށ6[\4r6TPahYK9<YΑ,M:,ˀnyF]26ɳ{4k8iFڡ}2t\s vͻ~u _ҸG/QCF;=./^)|񶺱Z vr9v问 ߹}N]lJ22OTᖓ/B _>C6V a gИPh?95f\~Kv=p.(N OUzI6 Kb%ck ^lm͞Z)DDBtzqkBtc99iûw$ŋ^zJ,:haȳm[ zǏ_}o[Ѱ_bqsu9Nʏ`rALP8bs#dvb[\J`K3b|90q8]e8 QN (7!Rc-(Y_O+E=Š¢U11k8ލhpC#ȩ¢J`S/]E"ڒK5akNeNd/Iˋ 5R~rC.KSã|AM}^u^N[}&&ҷ\O?n;oL֔n53 `;EL .%ԺpmWXa\x~[hKWUGq2ǣ*/[X̜ڡVVmqTt^ ?}-أ]b .,RSB f7 h(3JnroyQqbNAJå A95-N\>P Cџi+5Q(N~{Q?">P?W"\WmUoQpw4=:8iw?,f^7U2gq8lȁ޻a pWA]uZ$@9~3ϵn8]RNݨB#:r$q(yJߊv: L[%(s5CSz>]Lnνs l1i']&R^ʁ=<}dP=*8ifsEOt%qJ/Og` A>heI2,e'z9G(eO`qxsc+V{n\Ȅ~'@n*ކ5|Q)7ٰ㽧᎜VJO<a y+S[CKפ2q8?6n~9-M8x8cOZE >zBm459~]z8SUg+8 Ezmqx=;b8eă (3doO9~B:9wi?p{#}-JPbt˺kWчHDq)FE(0N,A<7;=WFȾÝuSw)>ZRz ड़1*W!'[;; dDƵ1>ANȴYxN>eF/N6jHzw6/TV8wT<6==O;x$#`+=}@D }3aGVe7εDh`_oa5l-zqLgjUQs*6KfGo>Gӎwe='^j<\86Xt¸s 2&`4V=K⿤m<D^$[:9K _?Yٸ=7^y `'RVatn#OcCX 1fQe œ5i(,ֱjm 0h .MbÜm:M@\ðf~??v޽v$bi~+DE( @֖WBXz r#Ľ3Re(ڋpո`)n R旽E)Yk[J21:"BM9@Ue3CĻW'Pet/ Dd"6p*纈[Nm EC8*5(v7gw.\8Ė愻p1.)~(5u2Ìyh+q SνMUxy.z_(clggB8m^HT' q IlM#% jyNΧ핯ɓg!8&Af n>L?wBInV铡\3UpzlFtgj89O03娔A>+Ӗ2v2h#&ξ3c6` ~dQ;ϜҩSKgxo~ddk_ƾ{B3B7aR詫2Y)9 y[AHYcgupv1d"ΐ$Ӂ<Cc( OVm XfhQQ,\Kq_NR<ڭesZf݈ux;~-wU$k`r*#y"w9 b7Lݸ(לcOEy6z2 N= )O=Nu2ކDWQUϴCۨR6 Gi3qk+\/.%܍9&u|(Z݂pM7@Kh؆YMU?8B8 '9KtˀNcds̊R^<9aL\MNTO=/ r"9J]vȻtI%<3(^FtrSh ~Ƒa7kW IDAT Y?N$>$#ێp7GƯӾrr~2e甥4BA˄br%ܠyPk t:7|ͧ,z?J &thk?r eh]1YN?KL̇orxc~ֿ`0G?,ýqӹκ~ ߹>}_q|ç'[o~ex K7D>975wecjnCН$2“RlaDP4㻔H-@c({<_T/53kem'Bl 7c":G݃AZ2~wxvs~C}{+˵A[(]G7HT3F !}OP˫\e \b(g)R0%VN;btIOU_ H+aaXIAxGHet OY ^l)ԉlՑrq})#YpĹWƴR9eOat3U!teiKQk=ݗ%<;kHZ꣌AD /)z3\gd!6G <"c1]ǣꂻpߍʤ:NvO+X'R4Ao8aѵ84C1'3%{uyH?m˹YwތaN}w+йNie+dຜ}nD5>x4݇zxWgP}]Y(*L1h)w]}q ]\\4t>(CeK; Gt~SD˂V9 p,xdBT}sBit # r2^vI]P*Jpɀ3\QyAEG?F@JwhRH[BYs()ZhsU7',[WPY SµGmw,S` g. ly\sI94Єr/G*)i~8~R!Rч{P  />ׁ1.\pV \"@7M*o˸=}kU2C9SGpQrз;F}9~ ɯ:97;<THH7{ξIW#!ې ǢrCznn heB^!{_GEg5&,Mhfj5"̈́'{[}-߸5z(8 tXY0t`8\2QF\L t, E4~=x|8P/I=4ճ踞[`NEVr.>>k铣?Lvxt3y/ȕcKL,})ٮ*d3C18 ^MN`]a\YZu$^ Ԏk4'\"`х/xjsYNAHOEi &5g /7MEyQAW_}N*vESGH]ш pJ \"{G9E[T=_/CggwR~v1\=ה~eI}CQBtc?:3Qõ1 b@{_~ܓd'_32rt\=o|¹'>w{ǧaӋb&P#wwoĔTy<^kʉ*8N}$\1&$"J5!SOD_B("6{0tG`J6"~Ɲ{fϻGN9ir54vЫ OYCWu5~,K g뵾& 7y`]ݻdhu2è~<]UpW~kӂGW٢Y4OO gƔLax3vćerwdzGڄ9_K|Z\=.s xϏy<|##OO&0Bt.<\vA?;?cڳϏ7#6k,  `1@񐟄ee (KeU%:V^zM6$ ;&TJ=CKHa|-B[wJQJ[[^ 7;Q\Q 0O GAbfk%mD&1Q sim|߾،WcE=Uka| #}m֬{L<#:r~ !f;L7 >|Fp&2 0W1|{OS/Dկ<ɳ Z^r/RvR=+,-~[,c۳*g>fH'@l:rES "0:0 !|+r b*\F&'|d+ 0`,j\xrM$RҮ693~wr0@4L6@wV9mUd#Ѿj ?;Sԑ8@xD2{x!05.zx{_:L+P/:O .ƪ&uÜ:)"nNk@4s#lR[2,2B{Nth ->s(Y bXF)0z֧r^)}PG34p«lc.e@/j"ԍf->j2_ s`Eӧ'q6$CZWĕOeJ7;JFy Bʥ=(m4BS}h/2~9LNمR",ۉiг+@- PY.rzp'C&azYݝ>˜cX/с_h>\}Kl35휍`Vsh1L~?6mv ]4ַlnrjZ"ox3YA ){~#\; k("Gs賾^QtNeˈK.c*f(tp:/}aefmn_M̓C*Z[]&{j 3.7T!s jз>rkށ'ᅷ4 \2M= A;yzخD훻?-\_[+TGWѷˊtQ9$M`w}L `EHV|v}vcMfkl~{c3մ3 @v'xt(t\(R006T{֧|f (X bd [m3LALLvДa cF80 Øc,EpX̩.,DqZO@ 70nonk5+C2?I&/6(EN}a(Hۧ2 OŒvO&ac% ѭa}ѱhT'u$G+xl6C r!FЧ0bPgKi<=->Z;HG#3pY~Z}{š?V1՚| c0Z{;X;Z<\ 8a3}ʭ2@y0J8t| sСU^t=\@0 \=1B3-i3 ddq1~2)u%}υu{x|(|Í͚lUG8h^m,MF-}ϲe\rv,e Sz p&!;emIqS@6D_1tmR#Ot}R<x|1Ff@C M XXr=+D0~\>˸j3B{ӑ֣ۧ8hUohP?0v+`uMyF@ñ))#3rʔ޼dgAIO r9F0܂ <mL|#,}793p]uiux_y`N:;ɩOi}Y~'  cmʭtէ(XȥD5k> 9H>EY;&%myq(=̊1e&#h2`$OS~SchCn/HνÕ rvF!I?;vGwQ7a xo<ҍgᨰ3/r1(fcT&ق.\K9Dp JU3>#ʗ#B:k䒶s|U4gQuLgKotD,W `'x"b99'G|d f{fJ9pQxsEfH/:cx,te槤7ȬLX~d;؆Nqֿ|1q {F>э#xYtt[Yފ=d1z ௶':_Ft~1'jQt0XLjaJ]ci'JiSyD=Jmt&H9 ̼A7 j)"zHK*=%%_"(#_)ynE`;[|]q(Q1S=R0U͕rALӯ* f"4u8JPE?zX'qjH>ݻ/.xJ5ߖl ƔeU7hN4(^F6ےd7m/]kٔ tLǃyxQ!sx .ʧo> YD92rSx R8rH\x|0sm}sA^*%H02I.-Ôƭ;чo)Asq _Ab]Wp@+ _0t [!,eKns<[X@8 FR} @;3dltXY𽜳+ ^~9ì dW=x(x^fsOF%TIߺYNZACM_q992dv2RxKPhGg\}r*)Nڀ++LJGULJ~ܺOXvC6x,'ODUYt]tA\@Ji&Js5Gc/E9~0-i `*EuhZ,Q |'PvVAq&Dq1oz1bbp-e\Is5[>E-{L] T!p3> |~y#ǀߙR#z"r#eG)+@7x,7}/9H21L2?W۹危D5fqXlIFe"y^z2G)kEb.+>]n@5{ehYHN;B7ހ;2,z,p\*\s}/m 6CHെZpXDh{#=PYŐ^=c|l=~2!N}W0*/8TpYk*"õ{t 1İYn\3p5$ܨG[ Or,#*6zgᘀqy2l⌸$ov|a lHWWfۋzrt駶Ocdy[Ql65Lj2XgDSŘQi"hZ JL8;5No DReqN'ri\13m(´NLS>!2h]SB-Y&t(Pv1'bqESJ" =ʎ c%m9e`*b(L jKY+\D)>ѨAd v+ юUƠ{;+.#hz8:^T94۩4vΝB-3TJ}%ch%Zq_4 l A"7dmRP(]3wF|W/p? %pܷ^env;ݻC'}D0/_߇9)g盼ΒS‘(.%Ctr1g(q@pwC$6 ,T{ljYoϽ\uZC7b$|Ρr0|ۻ{m-Ǹz m#4bLt x+77Y|F(Ie =?ڝJ{vCel#Z^q # \ N !#-h[pzw_!(#q d(uIyV&S[HT%" ':QFW8[p-Ľv( xЀcRFS["hkۘ Sv`!"ohYc vY{zGh oF_a\bGF&k-d}N%ٕDitL /]-f}5-%b³aRn㶞.xHqj,y:AfЎ{"6x gΑΔin}#)qO`.''f7oŹvei]^8ҼjWV̧@_F*XutoY6e<[:J dTMp>N?U.!aT5<'սtì+w$X ֮?J 6^<7?W׆A'X藇;9CTc` PHkiPcPa*s!cP &YC[Cioap0P6F$'{{Պ 8u MH)K~cpW NYHlʥ651ڞW"yuW傕ͭ[v`-P}F& F/Or\Mz_ϚX\1\Uzքޝ7xDEqX=:>Ak:x)߽{ᩇ3*YtE_B֕!.o?0#+`΢{TddgPg9x y%~`@N 9HvKW7׹#W-Ȕg˙ ?Bt/#npqT[<^ǻGvn.NS؄ɩ2Em}&p~ /8 )Ǻ>y*C8Td{"xӹԞڀȜ-ٍK!>6ǏGD:L:jɒt4A:l/FWz Ge'rD;6],#m[-So\3#4`(zO{c3P1s-Qa¢bpQ:+isث)+OMS]a5PV:rNQH߾J[Z^*xG9SX!~:XPsR~m-^(1f@I1pHc%kPV38ƘLJ#'ѱY'ׇY~,.N .@9sD]$= {%U~2HJJ_ڵkb;)g(0m ~4xhnlEit{OecD*8/]QtfЁ#_Mtah3C51*H#Wٝh-o|V P''9zjNB굇kJq5{%8'0b͓8xbtߑ u]E`+ex{ʁDtr^rgOr#(|8K=`Lrc(NXGf.2੉W?lM`|^*2qĜz/ O8~γG_0@?k:NOzMt?zcLn~^9=;V'xǿyw}k(fpˆ(cemjҜ=ލRR=r4Ký)ҖgKiᓊTO @82/:)rR0e+m$ Ǡ5 PP,>C<^Jpe-jY\ g0Ug`r\r*6B_@2gR;[m^6cxS1.ZF8Q;zme%lnk{ޝѣ7_mdϯmTYFdel>:^dFx_\Q9߻f|- $s5V{aq;W']Y8ӼO*OL"㮝smbRl91/GT"uHxSʡ-=8@X>>La y7\7lCGnޗ LSa2Fp.2P;@Nд`\InSa+Q)3秧x~{˥8 P[tqRgȤJmXeǍ3U7iy0^NRx+}vФd<<3a|Zj^J8ʿCҏ?tdbxY | `SG'/qĵBHRىi>ާ5xRkCdɁs}V^A\cQ:6O&vS 3rȹXP2Ī+iFTkQًp!͵0(,C֗ʄh;QM0˜~ N[Re5,kyzxag`8O؉`8S׻2Y|0vg@:tQ)|Ggە^'E+!]Q(_8H?lE 5TPV偄>{7$9| |<'zs(5)[J34w8pU MN+h_0 'GAWʘEӜ>͘2T+meazu7 ތCcm#)mv Vhˏ{1я|ڃŸ|7Ǜ;yf>{e<~zwl{YS53c'`DN qh-,Uό|OL~%k:kz| fZ=Ƃ OxM@0YC[FV3Nՠi$ +UTӰ,2|(9X膦2@ >T;$FGN#T7ہLhB/U0‘~[y͟J9z(|t^tpLY9<<=`&zph\lʚlrR/K;y# {)հI2&rTOaՕ8(yg#r ëG?ԍJ{wý/ycn#]P'aTt~;U=08I?ΏyMV+!`>~TT2 i1o}]!}\rŸal'ZH/#'|jP߸?ؽ`-bK(჻;zJ"hZ&N| Z{A{\ BO C|η8z,]5s6Iy 8 ޒwj˛GVc'L)=zZf{~z/?76\0Wh0Lq#@@D[]X$MVȅeF)НA4!2(3%K#è7%h^ |I}PWs ? p5N\OUй {3BQTZ/Jaflss"\z28}FF99p2x.gITV(rpg|tL~ \!SY9Q#ǥ7YSggu,X95vyp-svg|PS1ߐm:}|köqzksk~d5m^|~to<^D7It6KēLbn<^ip,u,߿SGs?Ǎg^:;:y[7VOcܥyG)yC4oU!H j_Gf #Ki.ndR1\N@Rgc\<<*$ʛKR[ǨA X>.qLPp|=}Řa| и5e:ErI>e`wzd 7;3SCzk-6ݿ{`{ގ#p; X=v@ 8&r_w_|tXGn_{pOo綣_D*!>Gȇ1 8B ]z 35NSC&mbE?A" lG!D 'ahg1_`(#KY W0">IMų?}ӭ?/C,jbPuzeIRg0h%.+GtDwDJѥ/RFWݲq)x{n=hjljėeV=jwNs&]^Ymk1JD;[+|H$r(8snDgr9\m2( U*w9$'gz*؊6=uk6sQr:4$U`q:pxr)LeΥl"䙽Q ,ysKPن+#CH[}XԭBݍxu&}hSo! ' tNU]8zC &ZG$p2;8nXw  |j*p""/ݡZXM}܉ns~/7~οv_?﫾7}g66/`&DL/}.B25jFM/mԅ yהs *Ra~!4+#>pxK2O]Jо)t 20[tΪKiEs0(7TX>/`Ԥ(eI*=H,{`6ؗzO7=2t٣=l,-ʹ^x1FgO50 H>QH~G6?2qRҪ D1kDfD!3ڗg*" pVӦ6dI͂?Qr,h:<^]ȟ6uӬ_ف#aUg8'G'ÇѻLqCd&ឝos }Jh™?,?m~ .mk_[Ώ\#G O_oy@N"3hfc\ a/l}V \>09ycv 90h֐cz K~Oxb;yzb>>3P1@ETW ! Lt_Ԯ\WP8+Wyp_?eqo>fu*89i¤IKq",K ]-#e2J94&f6;/g/c3a-y9Q~V4T Մͨj<<^ c\gXkԡC,cygގw|PϨ?_@\3uQ} r~E#w!c8iјhNBE99;arwE_aQ3u(J|$'J2:kJf"7*==w ȇw??ᕧ5aS2 &kL1Bᓱ8;cD.FgYZBإDe">;b,?zT{j؂APs^q`ɨa~t)@k3ЌG軂2Zt*Ng߅`r10Ed VqXkG'rc-:9t$L*`n1)* l/~i11t_t=3.aa*tm>ۺݳ Nq'ڒDV}F"* RV_k ažωޖ^90s:G+s.r:P\d@Mvr2C?ftgaGӳ%+B(񁧵5sR2O zt^s#QjONn[qIٓĴcr7]rn E|JZp[ A~E!,sLrMK@r&)tC5K0Sҕ((D:6!J{> {vҮOH5pg0zߕ 69?g+?q濽_;^|Yv[_}"5f;(ʚX],Cf)aP>w'HY YBn&cS^4"Fy$(qr8 xf)s9`}r-p0 &}c_`7(za]#5 hL)KQ¨q>j\-MaP PV`7?}}m?{oT [ \n |u~k}_o/Xj^^h\Yh7.k\oӵkh9΢(Q53l'E$19-eGSWc#yN8lV#{xjG_{nlT Z3fGvJ9产{6͐<م8!t a }T1.N*Z<&,CJSW pJ z0T1o] p(NLM1o~Q,_:6t(R@TOԞP=mݤ;; 2PȦBN@e%,G_q*?ɂIӦXa2ah2)wk&Dƻ1=dkEH+H;$QFkIpu2L޼p 7]BEa əQ':''1QY45Yh74Gn|P{DkcpZ1i:?Ӟow>{=?/DDZ.N_[*{eXFQvokװԞ(C6㿆I[ees2W_8+q^ft4aNQg>~\ #/O%b?zfg~ \WF19s\+è Ia"og9t߱z&Z ~ͰyXs.:WO?G#sjY`uol'{:9~OϾ{o}qNTh1_mtp!H+YQB+F"Gx4']PI!Oy> щBU@O{%e|R"4t=K/9 j_O)^js>|/ ~/<Ϳ#}4rZ"㟽w?^J? R`LJpix!Q)GM .]g }du[}w e=HNQz+3`R\ הqkxM]hܕ' |J՛7JY @ޅ#e)Z^!c(Krfѩߡ wyNjKSQ27+JG6osLcVvZhq~?ի}+o^]hWfەԟL[ks1Ӊfb*>ԍK\,`IP3'!{8iVL 4pI=}J R8E\W_a.V$h˷S㍆F{k?l9 }+޽D`{Cto>Ìg"A|Y-)_԰@4N/q>!ӱhG1>̵{䩂f=eӿ%І,3JN񼬘 G2Q)O{ej]n(!SVmV\O\A֏rOQKLJOe^g ?qʚ"WO$0W=8韺ACR6^bؿ@XpR?xN^jYyjD)K߃so9?.NloyolwԪݶiTѱ]w;+>7==9t|{[[|5|/\KW\Sw( ƤϘh'MBXYHo &'&o7%&E>L*VCRCàL E^ /||.s{K~oo}/ۧ曡ʶ"ʺ?|,e@pVe2v.~ᚢDH#|)z&N)^ wƘ%&aZ^أLm g/IKNN~p+!2}ץV./ܧG 0y[5yre } HJhS?)7 >,Ix~v}NEc@kkbV[DuOӧDݵxF}/=vkq=we]_&DiTqQYp3j(fJ s){F GNI.>.CSNB?Lw>N|Q!>G{Jk}{m!ʛ1wŷ2I뉸<\ySsZrn6O{C.,R pĈ7.}?~3h+[SDׁcm|v1<lOĘl S0ϒIAy Ht XƧy& HZtP8;Ρws$Z`{s9E"83/`69%l~sWkuI3ک3NHбS>j"A<'V°pIsO4{9msa[o/|{mffؑ陙 ^}ê[{`ݎ}"Mm!wzz';ֹ;{im[SaVmc4=u1Jc)%kG@J" .gÐ)wcx766jO[Yy,rm{$v6謯}Zztv%N)4QN;u==~lF8v=z\s/9{.6=>d"{ZLҝ38*̅[cJxGRbAu@8PL6"LURmbΉxW?K?)/oۿ|[F/GOdHi]R2Gx `G(3$m)(:У=cGs?2 i >/rRv]UA.~R/BUg(D)!ݺҕknm |~)P5/>jvڵJWư {)kym 3I8:GKGWWA__Cr[lvR=xm={mꎑ-nχgEb! ;Lxa Բmh pԇ#MNȧ?1gT|).rτ^50UF'Mߒ矽e,eGc` S>@kg`eL4aL{\& M9;os34ac n!_8K91`誾m]ngm=4@߳2K&z,O'S>]= O)>>Y֦M1ƽ xM%!`9S3i;xh mc"h ڦ窟CԳ!-X[oO8g?vB"E;1wݯ L{ϻѦb/Oݭm4mNO|􃮿zF~FSK7 zٓ?BMJqlq]o m<.؞?ywɯ3g_5__/O"dmb `b05+ HB\! :Ep6ro Mɘ>'aoeIWWK?'?Ƿ}_=;=?;~ozG g^I<;=YY hAxWͭC?sЀ"aDYRw7!}8)JQ'P?|Wv`e@,mJ2< ~t0,a(n)Xc[">E3 7][lQ CY Wo F:ݨh{!OtbGk{sm!Lo^iy݌`&cI'mSNaρO4[o Wmu~r1ӷ'G;1TJcO}L5|׏ ַ@!cd5Knh\o 7_qI$.,Y_i%PXgԍ?v|r,u:  [Mw,2궤5fF~ ,^wdp]ff'>S̢OL:utT'*u71p$G?+ qN};hźSW-y=lmj5cv}W%kQܜkg2ʹ^A&+Gڄ'q2ta)g)615Sګqxhf9;msmancttrS(9*^=|&'+/p`Y) |0L[=V?)ݗ\&M5)Q5ޕp]tgڑ;<ʼn l^99Vp@\h[̜9ݑȟڬiN>/qP1⶘zT;;3՞{zJԾ8#2u|ϒ y[3qD%WJ ~[oݩ$"k5,mNd[[Y}05 ?y ;6Vn7<9y|[0Y{t6;k/4h ϥ>G=O_sTV+0ץ!/Pzr"@f\l(];Qȵ 1|4N7\ga6FE3=5Uya 6F7R}0?w1mh@0瓘ԊorbHfVCYɦ[}ox50֖s"S<k崆W\!K{[< Iϓx9''E-|c9aw;fgu@\uM= ?)B[YvޜNJ'Dv7<%Gݩ;TkٷW<LZY}Ƚ˻+l|ub{K/=מ2/dfe.')=ANmbr}mofѨ~dIUv'e}7~_/X{iўɳq8z^++m{sl7Y_Z3/FNPg- bc0D ΋(BŨG^JbMc*m^O7ݨ$yړ.+AJ4>D= rLfG._~8??7K}ɹ"ϞnF\\{ߘn"RcEqia@0ѢkE!o;@UbxK[ Rڕ"ZOIWzR^<F%o{2?:@K;3x"窟 `+58  JYasOFj_/yJus=sJ{֕ ~ڵ2rn~ YdTFr~*vxB.9?Os^5? ڍJ?cjE@7"=jD/x?Qd'dqkuljpn^Fx {6'O[n߽_4*{wվ ϑ_(x Vr>wpE{83#c n*a`цap. +em}ѿ6!.R?u[D%*'?θ*[vx^v]wٗ5['I9EsHdSQ5.na]qݸ\2yur*yz; RvpR,le]V/3 d֞{V{*!QI\Z _jKjOߓomVۃ{Oh?ݸ{L54rxt/?`2` ;kϟ{8>g!.^Ǜ}05?{+O.'2Kp41 '()$_\엡IYIrb&GN2~Q!n4*+E-dX'9iWn}ۗ4?狿~µrv~sf\ge}?N}ﹽΝ`a&` AQc/^h~Ѩ11F,$&JT,Eua̽wniyw F ;Y~[w?zZe㿺5`BA/BȀ/]!|b!;!Tp~nu 2" ; ]bйv6dt4ɸB>1=u?{/"4$ɶ^in 41wE(x&snJw~œ N1i{zR..^"˸Cƒ(6{z3J.#lNBS:Iƒ cnP-/)=pѮJDFT/.8?0!o, y~> sAfݰR,%|eIpC{s{=?4&c6GwӦ0v:v:=ztxyDJSDeiӧ(_9cCyޕ)liӻϫ@k^$c{1H|B9?G"L3sͽ"ߙy%&Xw#Cu5e60e(bX3xR$޽waT8w y_ a m ANOooM=.6$T'1.ٓ+~:dߖFvZgʟ^!!L!}Ad #XVz$>3},;=-^B܄ãIb6k8Q Qb0 08FZZx57%!mo>9_ySPƭ ˢ! }  Hx"C૨A3;jcpa`X~=DXT]pU)ɋl_j:-,0`fozpxsijv֞LL NRgϏ{=~>yɔ;ʟ@s :Bi6oJ!EJBGKkGRFMt'$gC;U?t+ ظtEIC7gK+kVX/3Fb( F/=Ml`}f૾l0(Tc~ޡFSCc"<_WEuReMyi[NM˦a-y)_ǖxx $8=0F ' l1JQŪʽ([h1V(WsNNV]F*A4 *3׾l8OMGGXRa&/Fȝ?8pd¡g9d& D3S{l{Mr~!Y$Ҿ`,hSwmowomYi} 'Y5$4B $<wsٷ4~l}]G-rYوr4LCi&ebДS~7oI"ۘOxC9 fЃc!Q8#{G?;hUߺӿk|uOsc[{> Sȸ61>&@(cu1pfP(RrQBp`b2cCxf.AaŸl^'KnX\G?&fCM:\$A_y(38(^{3pstCtmeA!M=|≯.`Ѕ,s$XM:ESTQ8yNf50ݝ贗 s/(靂ځqdЃ?00q9xRnZ oR "Ø7Sx5 J[1#<]^'iSiq&+%]L/ŕ48P2"y#@+ǂOF͢ZN~aq_Hy7OJG*#| + `mMm1q0PZ ep@ue)&`㰶 tD%!JY>9'\K>ΖY2#F6$tR3D|vp ?\< 9{ nqC%Pp1(X?_,{VI[Yœ2 ^80ˋ)8(1P>ӗ^fO葇b/JV0{%#HA՝+ ^1Ar}f?OTyOoس"oIr do.:ץMڎ̪'20_rȱG>2\c @s;`ֺ",)"j[f4=nm=3Y=@ a>v 9pk!`/C`,t5']wOϵ|ϫk~o|3y~Owt~JOg!6 $1rdڰ@G``yKE 91;8~j$OhB :uj#B@Q,^A(ջ(2x'D[!y?K;Ս̡) 0(->A~! -S{$C/N0.)/Hk˄%;R}^L*|g+2yag%LGEbCIjǸ+QVXZzvh01%S  8Yok~M:XtCGxzoO77oL0,$A+!h.<͎t-}{ts||1hgIb^}Z `FS~zBfZDb*SX2 pCGTmMʨ0qy9fN$Q?#F?JƘ`N;e(5 |#\^v;4|3\.js{/m2/ @S  -y7"ro(q|zXL/J}=\8%0tW|~~1]rVATWh:tc'9G=b/񻹓dy]#1"Q439] mcFQ9;~,^!BapA^,:7,DS`IgͳAu(R*JVؼ=PݛiRXRg[<`ЁcZ6\9 tcnkf Pw[Y˽y`祠Y֛zAYR}f^zP,#GlSM;4/<l."̪'Mt #}"6Wg#'_2q\Ww":Zu)"avpMD ,1uY ~wj#F?!Us‹:*eppIrC%0v@$VD]arH9Po}0$S"$DD[#O{ax<;ىtaz.M5lx#VDdP4 o4~,a8BPn Yt pI":n3VvnC!E#Uv`LP(X} wGtah6Y@ Ss26MQ 2phKLPD0q& VW`ж=.: JhW/W LX3 Pf7>h]?tC OO"k/my?/QSZ[F:xJ{x8n9`")$ x9(Xɼ ԗ.}2xP\OF-gf[*IȐP(<+0𜡷^I03OksR wȐi826Z cAu2Do8P a@4]&/%REWY pwO@Gė$!Ԭ7MJj{/gQj~c '|'Զ0B{@<Tw{o_@;p\FzrR2V׆K&ā1m:zrA&~!fDb"w\4kqDkᎠ09G=ֻأe#'Ża|:utڷo@}FҎ8|Z]HoN9txZX7cޠGڠ6Sg1$1'pT@F}}˨!k0ž.CTM%$|(qF %@/0f~!!j:P5ݓIM9|E 8;Vǽ8F|39)K|VTo6A|0ӎYpY`>"g!Ώ(@+-O 3Sx )HXrX=td Y00(Ȝb.(aC˼q8sSeqt ȆGXkj+#{!/!Vw>]{>=8,~v{-Nj`VijNX7/ WG{Hm#\(L$Cx?bOH]`\NnB(g9BÂC8xe 5$ #,47V#K:'!,N+R(:BM7DW"+\g| :uA: Ol~V I^ٯ}z}/dm铧0pա x<ť] 82c 2BϞJ=z"<0E2su=Z-,C$ʳHx/IVMpIL[z藡+>''gU⸶ҬG0Cg<0rR:7;"7Ȇao}0've8c(FP5Q,ʀy9!.2ъX h=wOr6ɓgCHӽݓN:h)2ԡfՁL\}|]'JJm%4"_tK<9va~й^ 8~ QXZiۉ)i2觧g=dƆ`K+V+ãǦPru9"A{nԢ/N1'~#4_m .m'K0̌f28xqҴ\ cݒMݹk3,O^| 7 E8pNb qK $04J+!0. sG38`0:S*s^ 깯z[޹n㶼۾mу\W osUB C#ip' O T_a:ay9bE8m -G(8y1Bx!@Ac`~@OTGMׇC!;"{jtwko;A\ӝR![0^£uځ7f/Yv`| @atzo:'NS˩Oi 0^_ v?ڠCP##<%Q&~U{Y0J3OR.2#0.`zzF^t0|U'6r~6p >geT€ YgiF*Jgw*+qw@Ys-LyHAwrbNN]0ܖ-} K~mvB̰F ?{,K{/ ֧?7+Ϧws:e6j}Vtܔ.͂!FB:wi:xVgH^Ug 'Yz3'li8QP1A`ekvXP q:% Gw'z*`CFhqhƫ G?<Ш? h*PF]Ʊ- o$ ᄧgL:ZKwIJ !U PeӞ3Ͷ ] .,ԭ'0D.fGB᝴ Ϗ0 mߴqnswG = xj'^jØ?"` NbhB49<zt/ΩbF0䑝Bv^ĹsO(!#r*}BWMDZ0FRk X-0tTQ8'޼dH!!hY;'Ϝ~/lۧЙ4x(].'F"D88F+@\۠0`9ٝF]?}L#-=UW I]4>DzӃ=|tIl^`d|>YڧoB@ -#^Qїn!>s0=r<>tUڵ0уija>mҥ DD1ipBLB`'OuAv!Xs'/+O<һj2xyaFkaX'x69WvIh>mch,w.ě4Lʷŭfkệ-" -uY$TEdxd$b C@"⊔>qe[(& L$`lbԋ=?=/al 7=k=WB}D*/Ib@92l>t9a@-xAVI1[a蚫@o49>]\ .Xp[]Oy;Ȑ Sū;uϬ6VphG7ʝ;g@Md`{E<0vGDv2_bhJoj;~N$ 0ؔabv-'X 3Ҡ-^-Se}#>xcN[ \׉F=gnoC % 8I@ԓP94JbL@7<0=DxL`]B֌#2R Ci}!ӅSĥ49=+yYH\}Uipp0 ixx(usOY܍ ͙6]#Q\Y>A_蟽o@O`'af}Y8,H\wsshڕt/#ZnLÅZHCKb"l܇?zvJc:N{.BP~w‰?,xv>'t3'a+ S q'<(0nZ!$ S}@=S/w_rY2X^jcD"pDR!(m jTga2Iת5OA({ Mϛ !YZkŴծEtfC;kϹY?z<׾.^ze݉004먳7%Ad7[_ff|(W>Q'pۊT&K&f B~81,˵Hrt*N p|3]. oeF " wR3ݽ,(Ϻ?wOζG< C MC1Qcz3#߮Buoe[`< 3Ás3B}(r!`À" DX*戤>)dE,D3X1w}U̼ lg']`3wt(_Ih,o?(z;m6ujm㈶ {'7ɓgĄ4TP 9e'WB'Fwț%i182)]=[̓KtF\3NYd-^X[,RAI!@4BtP/ŗ욓gs/y/uP+w˪_Yc1ؠ.vBaDɅtFBcm)QP1k7X( x9)q[p0>B(f['/%'BLջ0\u9 35Q )Iɷ( }W`:@bfh%3DJQ"}8nbj04%p4[#`*hOp62h# o4uNutsV \`YLyX{0X=;Ad!K;xEH]Adm h0 0?+Yzgp0\HQs93 \p^ʊqjpze?53k/(Fül:RR,A[ZĐOAy+ͧq Sf !Wލg ~6j 746zM$'g^|}p k3'[ a޳ށK2^kBgf~@?0q3C!*R?.7#%XMcٳ鵿R+QO#CGҮzhХq*fm(x"L54m_cCSxx}+x2%cCiHeݻ; Raz`./-W@@*TX 0F0P83Zpx=`$'F_}3/8w*׷ZI"}$mVhl,IFo b GmƥKu3ւdQ+`}>D2 a<2ŊD@8Y!1BT)SX .csU ;| cp CICCG )| VECP A,\`dfE >k}_E2k,Na 70))݋0`%{gp7E6DlQDVfTRd;!g"}gx2l8xz]4WiݐE(ŗP8  0Kk%6={F%/4i/\W(`*B5b :wK"~z_GDG`@1GK:˻vn x5];(\˾SImDi_byQ#)Cz0 hbr&:{ޫzOX}z."ɰ!~0֤h*u[WR +b4ᅡL2 #ό$ՙBxcJxg n:JGމq:XpkXRNKHң> a`<;WO3 .?EŘ7<8𾞅)Ĩr,eb@-t"x ԇAYd(b 71!R %pg*)~CX0͝#>VWr a|&VV,c 1df( z%ɄGxO^pDtQa0QN 8' d v4F u8b@;кeH>?)t0HSGҳ4PL{Ç@pS{se57;&ǽ]nBDһԞ嘩RI%j[^PNh^B$Y̠>VS{9ΧB9uf-;i}[lv27m0qVӛ<[/KɀY^Z 9?Y9ݻWٻ_ijk+R[AfeC$b V! 0PO[;#to}oVViU`cs"|PHQʁŇƒ2aFbAbH  R0(uﳟ׽0Z{[{ Ep~# )XH$!ťס_=# ]tV<(jGbSXe3!C? }\Pdxԙ6{z#b^>@~;=$EZN{b$ڜCaR' [} XX/jg\vVE`Ȱ4eZl_+ʡwyW#YMwMxaE{pfaM*a#r.2$ ׌fn`& p0n<ð³Lqd~8pxtzQ3cFd@S»(e2de]dCAuxA"0/4YV0XM>+zѨsO>W:o PxgoIukI*1/X p{1u]~'ڱݕ&;Mg/GNtBcM}iz~29tȴlm9C2u]rLss3ianp`֖C=,w0c#d?5y+_aw$W/!(0M;m\P΃ڏWO}=wڵ6ef2 bXhsj<-1Qdaj~. ʀv!(z/M'&Cq7(uJ(~`H#ZkGΟ^LkRR{`IQ]k'tG,WZ!(3$;"Z<yaG58-5%6DC=ޕ.'542t{BB FA X=?pn2v^t*𐑡V682MDuxZ d'y$׿1k*^/Hh0~F qG㬭Tg33ٳi4;5%h15 /^_@O_5 Y=}a~_7:J`xHarFv{ҾMܚr^GSP+R}e-]OSM/4>3)Kl:sqBьWeŅG -םqr=]aFEؒ_Xs_ x  jUuog#'/`3DH-K 9~)eSzJYf)%-Jqxl!ۓ@> 8CG rB!4B%,^ 0^ae=KQ[@C@X1aL'BlŎFZMsb ݫ0ζ(vmw?wVܠkᑩ :~ UP'縖 }DŽX" 6p>B$0Q7!@v.Z vRc P%sS0ێ{=YQ>I!zy:_D(N{tOme ZچLmB)'{'8ӿnkD_s izrF0HC5a ] (F /yW#=Ns *K2x+%u`G(\Qذ1&7 ׎,`pNS -:sS_zu=YS%S Jۯ5?yaG`Rx6șqV"GӘ1 ib LNO ~!Oh<`Y\OKRz_DֈE)%aVO## wI{dC3`jO1bs,ibu[怿[;߻8??*Zz&~ٵCaoVʒ y޿Xv8FKkGeDIz ;x*-Szx`d˧tzB,eɁH[b6a/xAEЌYq(00Dr!Xp XT|ꋉF!~K mvu^ ?$2@qDEis0ҧ-JAF#txevUokk'g0H謱 3`dBŦ{Qv+uU#KpibE-LqG:}170YōQ@ /0.DR~ZJ yb8LKfv^y*mKY^L^-@ CYm|RP vխ IA wIJȂcٳw>ʼ_&G/C/0k>l\7-wg8  #R] (^ JR8W[\h7V)U'c(W.O?<8_bX 忤:H@$ kzM0 V={MAS#vf#q$8>3&| q,E1<"xgz:DD){%!eMhTڏ:ڴ-:U ti`NhkbHLϟuiR05!NJ|G)W*i?X !ACw9J~p-o(L{Йו+ŏbpp$\KǶ;_?G%'( 327̼ J2`f"SAՃ҅{<sNGN@Azׂz|fDI,t/}'DC0.EV {bIևwz7\ae`pގu` p o:ƿC+Oن[]H3 tM)^ 1GŅA$m;Q-O-˰jcEU[X2NͶ@G(zv9Rz=vw›_ Y vȋQDqh+}Èy5GBgF ]u!Oèa!n}#H$&'7s?wMoWt=g(#>nӢ/B;;m|?+<ηgO^pwi m]^LK icmY} FxL[_gcCtg7kx5t裧58!i'w--`=lf 1GeoQqbYo Ki0!хx 7BlP0.473Z1X[1J0R!@'qY#$›PfI 1N@=3Zgu4&gfӼ{9r W0;. 6PP ޠE C!mwc;AGXS/px[?bbXՁ23{{`ת.h X.I-0EC$y݃ϑլ %HqP<8Cpܷz7;F #39ʣ x>A?nsn !]-XdOrޞh>ࢾ҃| Fry7P#1^O>(&=V$TKB4 >k5ydT;?8Я)!ު#ov!mBp7 -tgo7}0#HQ% [k+V(vۑdSxXZ=w:Rs.C};*WIGCh=@uءA2A2NXx̂vQp߽yB=N`Z7҇?7{=q8H$Loz]w}(MNLٹxQәpш`kkTe]rぞ:dB~\HԔ__]mS2E$#nocF8} igZ,&sn'1PTK&>qyplhS0.?C+ۑ@pEIXȌ!6/Y4ZFHPڌi[F:b ,g P0j[;$%ts_;$T^-ߜ{2R2i !C,gB(9Gs@O{m$E cVW- Qp [z +BfZ5'-9%njuY=djmvhV}pd]t>ڃq@Ah{WۓgkkCV|llBvJ:wgoZ}kSȔx$b(({h#F3oRɠQQ u_m0k۰T|K|0q'xa;/+C\TeOxhA;AS(c ~Ӡc 5Mtg80oT(x]*߿q`7;z߻{|kskv~:XI9E{.v0T chDNr1`ʢ:GT ݡ%ߐW#FV:e_Dw`DNED8kr(^"]=6d;BcZW6zd= Q>x _˒dž7|# I6Y b8kKٴ;LͰyϊW4n J]@x1g^?u]x)=KN~d Cz}]z_RHvJQ4k=tפȋ[R!C`#3bـ$%]G 2,;Z2IFF z uz{ndXگ\Vl,47=2,@ o?z`XpaNۢv.R"9oA^q5vc)-I|+?=ď2?&BP\7pr=*mj tzot͋{~/o>s;t-]Z%VX,z/e%` uᏤw]3'fHL\lOm _-{Fdp=#hHcitfcx:8,?Rי"#p[FI_MwbXDPx+,$񗆫m SʠU`̴28aXP47ɠb*ZN^{V)uP8-QnyH#C= q?0nz\G9 :a [t a"S GF:Fr4>=Hy)Ѕմ<dH.nڂh0%%XN4:F_8Ьstt MזvzGҙӲ$򫆫j;zW%kЮ?^./;P_\;4"EV"t,YPa aC@ Cx#$U!fB>B[0n 2%خ[(}oܹ3*FAM*&N:q(1\;M"S갮!Xlz,{` 'phUg&IkнߵJF=6&E/n?y/|w~?v[~{ M{-mo[>Lvٻݹ顡޽{ֆG?o:tCCoSӾ?޸AxXl/zHbf#Uj &]0{J@2)~4w/s™f.!ei+eu%̀8g 1IN^H  g03d)>tf$(͸߁#kx?c/mo.KEI%JK `VSc<L#9}F&yd'80>1:<#HYDwto%Isbl9EN1B/~C_11 /JDCD0V(z3.4hpW$ !,?=D{$v;M0B`U0f oI_7V-i]TIKE No,4jZXIJ2" h#c<@(Hc>kimU M}Ŏj[8e<60G5O8Z5\E@2v )h12m2ILVR^'\o9z}C?>򡎹N!Y޾v>ww-6Vȕ_/ F;|j,Y#iOOx$!F+2CkIr~1<-+ƫ5  t@AP\!+0>&&Os:lϦ5sNŋM ȽZ--˙"Ծ. $gVw>?m؆;aUJsPŨiJÆs̴gnÍn:pH$2âލf]JH ސSMU>9OH_C3'@te&\HKk;OĽK#B/WX'=[*)Ot|Q\nuc1,o ,@E2gNsX ,DK\ (l (t@gcOli%f+LeRa$֫޳o/|Ӿ;&_?~[nB-X|Y/,raL!F⾼"( WY +ʒ{X { W5?|_?Jc$WVWbfz:_6̥9rB >9Z\ymm?_Ѧ/N?zwWG,՛ivj} s3D.a)x-gL܅as%ϝM J5[SM6E+gziPpfwݓʕ4(>2:GT8$ÓʧgR/V[曯J nYNi`;e^(1pO{۔*(9NԉQHKK2zۓӑ#?0J0@]D–dDsM ?h(`A,-èj#9z+rq@=E7L,! ٠.ۂyw352خ4I^dONǯ}W]wGܸ˦Lxc3 6XM.\rJ<ˆ/x}HvWc9[  #L@VVB2s*l C F'BF'}?_gO~;ηtv ], l6T06KX O9 AFqGi[ BP<|B2UΈp gϦ{D^kͭ\EJ2j!naskgqZ⎔y )VkcAߢT,fz"Zf j$ttt~_1ȋiIY| Of4*YaivrJ@+.V]|$/ؓDGFB`졡SV2~s y;:!ң.PTz ;ߛ^(ەR~`UMàЇhm100bSi WN(h@ 2jW9}a==VJ[֋ gUgwzlNT"bK *eߒFj^"IK~GȳF^x g#@@,,`IO6Th:e ,I 1( 4|-K;ys%_hvz>M_(ର-.CRp t,BL$`tCW`Ta^0~!/<4ف:xQ s8&0X(SJ]_J1]=u!]"raclt$]u􈇄d\b C_C0ud-E0x^o$AT5G6vccH"&;952c .F42p 8fFIP'`!JA]VP܂YCO's2r4x9כijf1}O]S8JUO:¢0qG]g?;?^V-?1ov׆\'J'm RVǿl<A)G6yYHs[Fc"V%JTO +޿>Af^0p_O>6vKS]7}[1PT# xeD Ҙa\.")mc`O~G}0~Ab] .Jߑ/ť02-ޛ;7_ey<Ήܩ? ~f g5"u;m7\xX"$.!Eb [xs}#>wWlu@lCan)61ad-xfEy^̸:Qq t6y#)xOla$Qpz_vP`3כSw~<n,?ޱ8,4dmIq4_ q451t_d S o S` @DiZ"˪ ';a#Ð+F B1*Ϳ𦔕~~nOݳkݐ|v釙^|h sǤi{^SpPB"{/@0^ctzڤWTYؖ 8MPU+d 2D8.~5;;AA&_{ΐ>d:j$sYJ.Bc%5 'd_)/a8.`H3[ڝ[o{ӯ4O |r@;jJdAsldcT"b$" EBSLV.D  0A;B --uN<S\!~vSCb58Ea,%nK:ɪ.$=Z7ƴE Q |b\0bbcv-OǓ\˓w;~A4uo {(}SK ImX@f=!'51=`hCHœ ~]#:x'>9!ɹE=LF0pD/Q{ tGIk 8DMX$}X-WՖThD01IDSy] ǽA |YS;0 4:6McRHdy }ұ@eyx:.[tS7 ,!s/(F wcy~yO^!E^$[#!\nj>"Fm(DTWDć Y蝢7 N]6Idyk0O{Uh  'աO 2>뀝fwХou#>rkvv0deX{5!JEv@ g`jp( : "(,+P|\]rNyɶ͏g{s;*z E `;a31J(l_ qOdi}1+zH~)R8@8CoU'r@=:<\Ɛ_i7ϡ(tNՉZ8$&yA6IdS948q}:C.g9D}x;2Kcїr)FXW]tXnrͿܗB}}ŷ0Y?0iy Zd*]e'~-_`m,o S(G</:6/{P,(n艺r(;!=@d,j)F%8z#%Jc#g<>S: h+0!\ Ŗדf}l2'b.\^6#]D3<]Y*rJ/ 8s'6''φ!>{`!ښ`?އ&2]:L'mnkyKU |Fӄ$pt&zk:puF;jLbILP g|@eZ2>4#m_ 鳷qJO~Che 0i^FpZ12aS!?S uHR/B {yfE&| =Z} W\?;XPX68` (2PYa{ m 5gI.P- oQ&\Hk,"@k#1if0&I]tQJq|SؐPK\jn~bھ[fՀ+暝ޮo*`(+5f#BޒH)>'=j85+^8pg 0;G3dU^))3?\ԻVd\n<R@ c/pPjNp!W8#WPq1a"fvcFƈO1h|pN" ##o/]\O5}WcfPCe> A2D7rC(֘b }G.ʵ dZXlO3Mv)Խ2ذ u럍IHW޽mZYeTƮ9cA"lA3krNx0qYFr@f"ZOΔ*Yȁ1;B!|Y RW (Ss'9$!3!lP b0*O`XanC xcc o,jA{b?{' Ӂ_2oEݝW >n7ֶ{)]:/+K6%`ȣ&sRW0ϞdZݟ/c KP^( cArxo>Nax`Y=2jygN]zW**9r솛rGZ68g=" ° K|V懣cxwF[vƂ2eLCVrX0,y0~󾦔+9~6tLnS=++ Ă*}\".J[ 7`]onm4}#Ĥbc+V޲.9P| tW7 `z௺PKG8 cCVbMV[3`/IKb1=[ .Wdݣ+^^on-G YC0 0!7yp3J,aCJNEAhgn5|Nf؃c<)2h5IxXM4a/_m{BWK%E+%!^OBj,eM[s Oo#90O~1/` f [̚(xu@}(sץs;n/ ϐvD$b@@'Vz?vzXsO",\D>h6<LӫUYϰLs@xf } xD< #DɤgEԃh.ɡXO ^/VG=jU#Y6ಕ&&'GϦs/ڳg8_ݫ!+:S m3:lԥYW`k#eı¦!'Ko@hݻFm}d͵Z[x,a]m@B(=J%A8 s#@$@> r Bػ*YܗG|C:B1Vy!C aO!+|`~0s"bx( QHQWiplYhI.W)Pފs`+tBcimE^|cJbe"mڦb/M%'vY_A |ؤށ0;Cc聩Oy'皎Hd g + 4R,[wS|*auGUa'WgwWt7XiOlYȆ '`2 B`tpY(YIXcņж3Qt,w_mx[nK,i˂@ǚ  c`kD4 wvЮ)mWDP'3u> ^8?9 <8 :[L>"{L2 jbZZ%$jk@O]Ӣ+\sSԾ2+=@1jUp ,9B:&E% @I C+ τx6Dsarfм'>$9hx_u׳WWz'CyW+%*! g dxJ꤭D5&R};IY>sND`k#LoaQgYFk,9z?m"b@h^BWqAFu!uȆbf{#GN O~KżrcfSCm#$eā?謶3n8=C00ZʈD&:54@r.W-?Q#cЗ%ǠE9bp>13PAD;hx@gCu)\v㼽yO  1p\2Tw^ )؉3Nsiqq1λ89Fve xo+jˑ |[]N+kd)ovw{:BG- o[?rYjC7ZЦZ ;@Ȓ+ ( NyDKm0ļD", iBaAV&Ο= t^wwcseu6CaTa{!jm ߱Iʌ s=}< !ɌቪdpK-AƦ35_MrZLK4?6:rd{\ةKMH@&9S }ꐇӝȎpR2(VB;yV2+LRGgrUq'?CN#͓#CI0[ G 5{2Nzzz^p̽Y|3W~M6ׄI~cJvj$ȉP8|f(u%POF9Q>-#ŏ(((܁Wp|0-Ȇt<vWES't@d~φ-p*^FgB{/R)yHNT5ZTL zބx*G.uΎOII`$83ͪbx쐗V-HTȠM҆$`l9τwl*/ʼn7e]Ž#,(+ڊ^.ʛT.`Օ'"|E۟kJrYǁR@f u4L^]aQ9Ϛ<~h:|/ A.̆=DAhK3<f?9@5:ahl4j6YGgE,}Y?+;mq@ u}p"OGl5["0/-,Iy'OO>ydzętѳi\켳ʽ̨@QP aK(5 0S 5! R說u( 8G+ Ċei` d`j$0n,XQkLY./# K) Bޟ^u þo^޾k~AO{ckkfja{cX8H#L/DXuT" Y2 N# EAt6H7t!'EJ|y¯+h@B7dhFtkdƂFO|{^ٮTjz 5ԪUDVCGD:eP [+ƪ~c\OXP(O$;]ߖ11'ͧ}w'=tON'gqKkӑ}n)}{v{G4"OP%)y j'*ܠ%#@<q<Cq057{mAqw3 \ 0'{5{fZ$gi<|[\_;X +.0b2I{暽Bph D0ˎHgp +Ki)OSY8m'I2,,y:R' "PZ:#mO鋚dd Jy6hM=|eAF t }B[pdtB35cE8:,jXI^YSޔ翲J{װCx{#&xHY^櫕ԥ~ngkE#-`=G_D)PٻIc{?؛}f$eYvh>;"K +]B AU`?R }A ٌF6Wb.swA|)ʒ|+5@IDAT 넛,"hC)ǵ&;o/&rmtݑF\M)]-~'I0,7potT'񓀄@D|Oֆۂ, ,%<3asi HBxs`awBXny+Il r!EnKnwBwqp^dDf +,әK9yxQ3{RFYN!4VF~"8TM܁ٺ6D{^x嫾 jʛ.%@_ 1FcD<":3pn] N3ѳKsJw`Kiaa9@ԇwR'B^1W~&@'t/3dHey g롣W`]NmuKtޒ=4yT:ąS8ʃ>-3L0;eh<^QKX0} H$O/0OgmC<|;3 ."wۢIBr ^ @3uo (&"VF^.i-,:t>mu> `0.?C8R U]ͺ"UWo!g%-$~W܏񷡿ZMãҗs9~ \[X?8+y ˶smQ,$6H^,͘$021l`z?W3ϲ6|P9ĩ;}e6Zu𞝝N}+%"gīxxҁoL~󞞙m#.)?"|$qew%ԧ!oꦾ,IYBdٳ#ǝ(CnhɃTy鋧r}Nc+aF)}v:,;hVJ\[O-˪efVA*3<̬vVt,ϩBf)յsv) + Š1neb bOR!a iU'U9w0DXڲ54%_mmtl[h訖:8qxƣ3?B1 LLl߱#};)Py!#hS->`$& VH{/;&Ł>9]OGREey)xsz|EVx.U%( <8F$d$<-~g?@5ٻh7`Ј oiR̕:&oImm,/+eTnxSV?8H$8#<}~p\9 f kkZ3,0MKǏL|˶ږ? l@(OgOuB= -Nh~@LHӘ>M?%lv$xDHhcZu9vٷпRS#dk5--Τi=i}i1>jZOԀ:oW:wD e Qb [L&UB9V,;݇ց;mE$v8U#3]cӑ_Q햝_+;;y 7<B=#p\Yjr{IxC˃>Fq(PX)zUFFO/-+q^ GʁmOcl>B@rO ha8rys 3L+#oHI͌i>DB#KŘ2`A1y<\IS2&ͺ]X ȡpϻPd:/]}`:oؔ >9~(0¥zt'tE=FtH& c?42/۵.>ՃQ7,V 3b]ze LLϧy}z?#ȃ>aa>ugG]\@xc}ekg - #ȿUP.$/I/^8I9Y(@DFu8ȃsy?x. tΥm15g]pK@XQ;cl؃gDZx{2"3A ovV/ϢȖRo>ʞ(}lg7,+E 0*C߬d(wӲ`NsKiSp(!݂8tϽ[R0yYfU3pq/\"i|pt) kTi!ӓL+fP*TrfU^#cR8{mIw"F"i#D+NBcM 'GaPN !dMt(4q"'bxkU+EQµbA8'mev60$ 0* ٳ@5ݝv>yϲaqfL/ݓy'aa+4?;>w)--NWR1*䝅#)ٕ‚Z~^(衔.Àp؍Qk}S3J`?7Rg6s<^..e|EIXqN'#N͡M2Y#{!Hh "8Ë q-'YSx ϕNK77ca` L]sưxo0)XVF\Pk]qMp5.TšJ=v{NgGȱk^w r3n9,u>:>!!Cw$zX s0 9+ujS+Y b<0)IcM#w(q~'͆.y6SVd|P( #U.7ɿ ˳Kã#TnS* ihdao+}.dF:7 (< \pρ)F}Uj2s,#x:QTD8˞gl88d7D"M(-hY%qX dxP? ᏌbfH$/G~mdH)v>b8f&R}14dhF*#BY__#99h(oV[`XZ`k%IJf8+|d0mLJ =kއ ߨ_Ʋ s֚,TYJIJ !3` m8hB@E FHti⟶O?Oׯ76[bNG1<4ì aπf/K" vg,qLjPy`z hL %%_M~]>||ZvwP2 Le 2}byIk;e $w^|=f:X;iг ,.f8^53Z"BE QYz fʬ,5{VȫHeH/Q.kĢVc]'!ryi%Ͱ猜7[\H}345Z sL,y/s>-L'$#i20a=$tN~˞zzdfHкu. D: z b4NM ".xJMn HN :65ٙ-{-wկm OൺYICL(/19MY„V!ebOO1&$'m >VJ_6|w<{~nf|5/8C/L<Ƣ! 鯯mN򄺻i jZ 1ȋ :G[P|"tk9V}БYPRfAO}Ȟ_uGk) \*(=+.΁| EDF:P0J,Ϯz~%I*؁6nygbFD֍o>)!س|.y-n06T  34 YD!}V"A,K%tc:DTC{MdhǤKc`>چ10=KE]j Dgӽ?&.]zZ]PbzRs!E- RR]J~Xez:yv:]Me2࿳zhyNtſ"!~ˏHHa!i]kIGnթ/J rWs}g&XB֪om4I Ž22O}bhtϑ:ܡ0ц5ݝ477sNeyKqb_a̞T2&d8)rs b;3%Γ#!ayӘ yWK)ߝK9#+[7/vœ{ skuІkzgm!!x /" Zx|I_*14p;' a/'@0#\NWGxt57o7|{;kD&T)p0`H$dsXԇqOikAKmÍ/"8M摕܏\m?yh]Q|zY$@^?@| \@6"b*C\nb~D=0ɋ.CC\I45=2BV>7TdooVL7\#-ləzzt\\Le9O*b  N mcF<[ʅ40{=;hErrcg[~j*el1M \110aWoPYk2ְR}s>5ݩ\ʧigt/i`k|󏵚K{TTSE.>t7;Voro>jƍEHr&/+Bv?a|f9|ѱ]9vͱ߻r=50D "Ӏ)Шu2)1l dҳx Ŏ dV)2PH3^9m}{ob'NŲWub "`[ԣӽ=(=Zӎ'Iڲø C]T믦Ԭ5NL90lZem}J_\"Yo=,ы iZA EmfnG;EˋeGOpWe0Zi8B%H|VJAYrW l ~˿f\=ԍ][I + (,F E4daG@YB=v3(}?螽nvn}x ߆O}MІ@݃m '< Kb`1 )0ɞ(}xXBg |g^v4b@3ybv~>=w>=zi<7MN[p>p7cnfÕeݹK6-bM/K2woQM9G (`N7KvBMAքԛ k6zܶU݃0>9}1]H+oK׿۝"h^+33b+Pr' )FSH0Y3;RfN+0oKBp̽e`[z/Koʿt)bm#b.o lKüw}(} uXKYXU} *R.$ޞ>h)ye}L+f'n#c|>}})Q}RڻgԞxp)>8̌xּ%zT{ǔN~vI7lfO Z[yS\ի=Qn9rƝg>%o=ᡡ1)=qHBh 0px>f\Bb̲3gȆ EM. |$navD9|QbAw̙I㓓GI2hiGD$1#wzj6G?0XI򛝞t2 eH)YLK_L8h zu |x`qfk_.0#}'O# Cqj]\Ls `I{ꪯ;t/:_}pgccCF.aKG05ѡQL!0>Xؠ+E{"aw/<1el怐b%r)?c3'# SqY3}P0?koO]$c'+ˏ|>c5@  /14jix@F3=$YZѳ30VW0=§b<< ƧeB9tG+SQU T Hփ6.@)P|M1ܩbu'Ӕ<'9FåbΫ .z}9+DϾ>WEy?aҾ{*#tȘL+R(~ l.2v2"ޗ$2Eilj&?ꂞA~U?|0b{ܾ|m!? 9&2XFĖ&ӕT7dY &1h"T5/N]:0EnsmK?-WZƛtc+/L2ms2/"D0waeYpE `$,j9UXRXR-I'Ty3ؾ{&g;แ ]N!p1(n+\"XnZGP,(0 jo=x15jPD ~N0Da^3R{~C_'=o^^3 0 g'GxR1[g-6a 7"-f 6Q@6遞MM~1 \ev,u6C!zx׳vȉӏɓGGJ 4F4剗I[k YC8- PkdBZ۔Q$^hIYoXN3J~,mK>]m$'s=_pNCU?|7y~qOS.[u/̑C q.@NX,Dtk"BW ? d0 ID`e.ps Be33;WL, g.osV7W{@g=ڷ$k&&80ҽq9 lal>7H=q!b8(CwO( 'r>r vs6͝ v,flNz'Fӿ+ei,PA ,yg &` Sp^YND0 E'<ՊE JfT%SH*Fh]8ҥ/uWX#G}1 =^(9]ym8E4u+B$k lj xs]BYQ([yw|Bv2AdX .qZR^wV]c »E 7M }9<;(FF`Ca{:gP`6m8BS*ׂq(Uɋr+vy7J%ⴀO6Ń(}cSPZxЇ"R!6\T-7i>ob K}WDz G 6@b9`9n渼~*{Mm~S6|歠u"~l4R^Z G\:>*޾ڔ`|?fBg_["g\Ib^Fީ{u"U9wvʹ75?q, ;Fr78_N9Dʃly >!F]@O)zHϴnŚxX!ؓ'^et'x?wO߿Ն](u-3>_=2~ G3!@{O+Hu |yfp{H1O~G~^_cA?,l ӲP .͘%uqf-61_Y 6&50?4Gt`;7A(^#BO KB!ϱ|Ril/IH1H=:$c(fED#-K5>;.DD u'ӴD"14t6 59wkG$?]V闆F~h4`B&$t 3e[ i/ AA`B 4hOTyu8G'ٰ/wanxCWdyw|[^ܯ~Pd(I`)YdCauռTh 9P ΛKZZ[YuAac4"3O/&"ɱ{xrDK<(#2Dt] 120"bQ;5)ԁtӍץ?t=2<I>r*}W`[yHO]zfONCJ W PW9.!"ȲleieK8 C:#t! =36U+~ݑ'\n喥řo;{{ٝ1@)203ֆq~p5& \L0NŬ! ;]\AŸT}3"!r9`ȍdQ;~e't*ҳ쥳+Q>G -9 NB2 #iIXY1k7EoAԔ+޽iok ^Ml%+Sݿсw<# AX?=stDzܥtҸ7UXbahSP*(`mDj+5M[Yѡ6wf"X1h܃uL .כ]<j$cF,Rڹb3p&D][pmMQ,~gTJzaTdK×"wuC'|O϶n{Izާt3wgW*"$B !$ \6ۘd,1k6L4ـ$B9js;wOL݀A#f{7S:u~Rt<#MK>kAO&""Gߠ!.% JX'-2 q=L pMՑ0iN=8ZTWJ Cw2.'Ϫfk< 3T5xD!&Gkn.Pq۷o׿2 3#o N4G?ײ HĒKnVۨULwg#'ӟV7g}Y=ػ> ;rvc3nbf1myx% lާe_2T_ }҈88Y>i2&$4d Ƙ1Ř͸(̉VY-/~zZ?}b6[m`HmkC3 rx-xZ8#z~ ‚ hnq귿k_u>LТc֞K(XQmRV_`,i3+KN,eTa 2ek$374:J JKKCeH8.)GnE]xʨOKp|nGs|iؙgw@~ѲʏI_#HY+6~t-\.]Pp'N G]8&ԈI܃{ ."]Ȥu/imZZa9es6pwun"j6:1!u~{UDž9[<7!9!þUnMVrun]okPcy„#ePOq!1Ќ̀1R0LʹD`j"c`e0 LG9q| C5kʳ> Y/-+2ړPuexx,;3KSE.ϱ\mݰWdf 9;1> %y7V8ȋ`'L7cRIV G-O˯zu_L9o!o5r͐O҃xt7$y \>+">%6̝5b|(}a}MGI {ld;LkCb% C}ܣNbt}[yg>=t;12᎟uGO-Yp2?e<{W w}{iw aоC`_JLeMd $OMNi%L'\MZu/j4޶nGEĘ{6BQ ,IHFb]q!,'9L\3J"@l*"`xe;`Le+Zjkn'oD@|9MҎ- T[S7@@$(яW4+f (#ޜ$gϮ;zQrTJbEkg̰\&hcdRתb҂ve^וvmvܶ=n]Guud\w>dZ;7kLK6ri8`Id zswMgէF cQi%+t9 `>/uDٲ׵2`_"O; M!|565I#lBe< I͸OO،"&BFT)$PAtBV75Ͻt}3ގnŪEgf,I SX'sC'YN3O6;I!/ȕwv jbZ)8 #b`fsÆ wt]كA:z@uIJw M]V߾]h/[7ro3,0xca/Y!э#ÿ}m}y_<('g?%ptt_/On} ;24&gJRvy7.,lA n,fiU*zxg.2fa8,_aι ܙ`G87Ѹ&~WE }{m5~]X|bzCmNbK &r'H^( p(n9$ SSFwmJVU}B dSR;N5*8T4S byF媌l[>FrɽnQ\.Lgç s8#&W1,9#x0jņp^E"#:mmh ?@>d\]^Q:OF 99-GC$%Ai0a):F{ SNXL_ErX0H2Lw&L0  YȚ뮠Y{_mkV-WZ+Ƴ0#Lg;LxGA _ՃU(bAk~m@QL$!agy4=#lC}K߼z;?MO'jі ;L/,~@4e 䱤2Q7mϹm:\W){=}C p-x|xY1>^ºF{6ic;ӎM E9M%<7󎷿iڽ?o@26*rBߠ Q֌ӪY}¬#Ec&L͒f7[,K!VlfȠ؊2I_:;22q諌K3Q#T|x(eKƌu ž}/~z۝_o/5ݵڙ={pB>cТs/]L^4zG'EtYt !lH:!tn Oɡ IY[/ɺm$9Qg*ҞM[^$]afEݸX=X>΁axs]^VSq&m g%P16{EL#\~dV9 mr.뒋D Rh#XZga%rj44<GR3s2#e\Rw1a``Tcn3r^a"9`NY``vD8/:DG#qѱcί+S".jhkYlB~@VTۇF߽r g-T"nC_1]~g\i;^W HF%pJ>GžqZK⿍rmѕirMM_-NuUlK0[\3ѭ9L/ӳ9֌̌G!]`~"E0c-5  Y$ɉZ0&Pa7X G ,`M"] ?@d@rfI7^7፟پyœklwy!䑨 }bOp|8^zuAۥ 0vx<ӷ ǾVuN^'3EУS~z~8U,O$^](nL#Gа'~O;:m?  C_qٵEmBS;1VFS!}QۛQ[J0l }%IӶ@FNOHؼ{\9r>S>mG^ v8$e0[r:t=ē3(=gk@h?sx[ݽnG0wª`,\:2$ב5<2ŢQ/InR:2ba߲ϝk;u-ܱ1e g~ n6M.@#v@ammZ 1yd®vQtj"c.=Ҫx0R4:UG'̠bm R~ `&:EDI`KPD :SW9NT0AiR/إw[E2\T)73 RBz1j 0O]^($P :}Eŀ61}[#/}9-fO0tအ(A0eCHPKob395>YydFrL^y$}@~-aa8`M#wܷ[og>']$@<..RXT);Ғ/Vȓrxsmɴ;2R'#M7[dEcȁ%_Gzb:- ^<[n-z,iϺpw:ne\]rE!Dtw8d+Ly;|er*^+I6;z @ȟl}%q>W]:9Cr#LJCԬ˨ӮtH΃\p7eV"[ 'i]m<~lhMX#ɫ9o|;VBDZDʔHBJ0 c@E`ɳ]e`7as;JT'}$}.!w<ݫ=f߹)qцyֽϱY߈ҿ6|wyIVENkdP,[GOq7=S4UXl/xm[M!=m{闰HwvݶMn]g%L[ ˙; fdkXYhs[z]"H㔜K*2u,z0;輄-l،Ɇ9(:aNۼ})`J@G$NL#Ҫ ع8L⩡ !yS>2r+VĄL3T^1/&RHx6?b ~ \wưxRׅNks2Lz-,ϫԁbr}:0pSzgo~{+"6hۦ7 ^R zr\`th".T#]V !ëP,FQ,0`/D<u AC`H\"Z\;~j;=Ii#^Rer&/b~}l)^gu0p</]vs*. qNS#k_` Ife <|jAYFº6-wȚxo}{?yV(Jda`e.2]Ͽ>psЙև͘>糡/&5$'̒%L v!و\ɀ#\/ Yp0 4lh~FWQCj|tN ;f"X{o͹=\g0FsXٲ\ $f"᨞6oxo\?dǚV<ܳ3ҫF&ݱC* #jKJ,$A A Tanf^ҋ3*Lb% OB`@$RG6#o*RxkN&nb$ )'.$̽կϻvdk୷WJ/_u}"Ѣ]/mHg%ܠ| BB;ڒ{$e j(J2ŵY[01d'B. BJPA;F68adal9ox+?l$ =\ Y*q1iwi+貶ox> yy{do9fk$yB> @ KUS6Zo)mJ\WO<]=oq^wlr|  /@f`e1y[.}@궯`邼Iïx5[@k)ă_Xdq+),݋Q&pB b(9S,n o^mX$8(H?q @-6.Mgm~_څAj rrյoM\G@3s od:O[hݪR8o]{-@pg:1xMϔl^ HaGGFݡC݉n3y[uiLGGĴ-H3a#::NUGT}IAndei/C*\\زmO_Wyի_s׮<֚wv\g^ ބG>h?"+Ն`v n&pI? 3 m>6>禧~&  @PDs뚺E "?&}BT/.,R;wl L~߿MF{Rb ..Ń(Y9V h.SyMIUق<$#zjfmXnԮ1JHxTpѤd1^>i?ԹVV8v'E@/{93nOIJ0 OxYXz,S?|Y)O] xG?|8=SϹق`Y0Jź;1=z yMihhX*- k3jP`@դ7|x2NF n#L»W'`\{ D P~"LŒB`$%1M}c^Ú1~:=.95d I5QMLZRJY}dmQ4ə·lڨE>#*;04X6V̦-?O_z+pILTtkQI}0ôT I_GBN!/4~ KƹM}w:! [ \,9MDcÆ(@|2g@^ P3 $z$,O[FlM'uwK.m[Õy=yͼ׾vN4JHR_\^ ‘d,*kF!#ah` :J37A@sQGC$7aLh B;a# m\w~,W\[Oz;'{?ba8"( 遠xpާ%nJBm`ܿIHu˒ aA;B ` Fq=-AHdO)ڈ@SSƇç?m^5m`}-{w tevnf;\qVJjfJyXZp77χg\V' n2P%b0[rQ$_ 7&g;: 12>!>G!r C&u{%UIj/%egnp|ص3$xuly˹LVƵl +xiu.`YYt8z6a) g:n$颺puHz\ ?\:*tz}ot_*^F|=+kNϱb)u,KߞYT{z{w^7{>D[=n=ř\:&J:0PKLϼ;ƵG]UQP_|%61ie'i fd3(\ƾ= winIH|[޻G968"`h ̌-axHQ6k@`Ҿ { jĢ;yٞs28#$M8gd3<?x"1:5}Ơ9l:::] \VwMқ/>o:*hp&#`%,O 5_' ?Y+o3sʒB85}r%@ʒ%qڑ]/Jy"(=J]}.hi{ֻ; }=|ק|:_%m-Ќԇp3.h.Y*% ZwF.T [P_LO87dJd\2dї0λlPxk\yJ`9IJŒwm --<=^'լsm5ws&f]4krƔ]$O-cE Sy*>OG<`~\ Oblr @*֙*E0"x4T`!|Nkcv'9}s?vwKY!htҗȄP 3Qr7PY@' p3z1lBٺ:o­~dƙnk%ҏVFM-""e0W)u >IA Y o{Yճv6n]85P{H!:K 6"ad&+vDEDjcDZSY1ުP@i)`)HdyC12fKШFA[0!d99_2 901lG4uc <{3Hh' 0Djglf<#/X6nO|"=!4tP;ٚNczrcR>ߝ/0^KFc6,)${$@:qQ\Ieֆ[6t ^gtuWtÿswp;Z^CjA@n3o݄ d88M g\~ rQ1ivf5E8@x2 Lؘ |ׂ!`EW :)?@\Co߫Msz夈R<2 rqy]_A 03Sf\հ"@' !ɾzu%]Y}7dM O eڳOnPHR<6)j >LRqƖ?z磧z^K6WG*v}$ږM&d#y /l;rq%\w, UTJ%h%-<E%a?al9:w7~A5Lt}〰(C"8;X]891\W@ fDr8Vr^p% T3 -}{SJWgb W3,n~IT{Rf9{)D/Q H5)q= '(Jяt>RVmH*άh9/5mK 7U)-l>|-ZO]8UU5B=6Q@!zkF?awx1EbaOaT9'<7u+$9#rLØ͸x ЀN~}b30l~wN (%h ݱHg*qٞ?xoֵ^x)^uf]ktss5[5j@0^Lt'K{6l\tC{ϔKŗKU^eAR`p Ibh38/W<* =K3R. KAH9+/R$T) @D@N #ܛ#!$NP'o{^n}F#oE.&CHg7b2 u[Qk3־ s­fz`^|?j1s +&H ëWǑgXtBp(IDGM9>'O;psΜ_Q<}NMYc3N}ʹ=oaO[<-yN#׻2O^N }J|/R1&P3uX*FίUe@$ͅg:$?~"Ḅ2% t'`\ミLYbKJ>|5~Q3%"ED1#VT\P珥k2_EoiIiI}Y˜RrE%3dzBm w@KcfDVԇw<5Wա}P03UfB.$2-DOr ,{~]}KT_/ڢբo9iǻuqrdU2|~ 帓 /2UT|^&w2xfuq8 .8͈Ɨ~ P]@2iF? %|, \hӜ\Z>E1P jM,p @,"z$Os}]o}<hMտۋSw5uv:ֽg/,ϒ0g0(&TfV0/L<~YLI)Si@ '?Cu1VJPgIi Kg..oL&6lwLߑHOVkпӏ _$]dq|B*uyN)^ۨ ]83[; K IYwRa؀xPx,G%kJ^|κ"Uԯ\o \!#u3?3hh/'⩛ma?&|9 EІ\&Jz]Lj9\p7X؆ h1s& άcf(05¹"aS;R{1p:秹Ra~9EѽP󤣽ţ)W:ɽqW&޷^Zo| o3:b|ɏ1H+yυ΋l`BKVcw;%12G AFb  -'%HA"I$#ĸy0qw"+\}\?]me7ۻ:ԎA ct6H֨s{gEw)ܦk IݛЎ~vB W %*98"Bxso7[(鼯CJV.g 3706H8HIPJxq%k&~D[Tp?x"k/`I`K{{zb-W?~Nx"߲-j/>Dvsߖ0\X*ҡ(+!ay( *^g8& bd!Vmi~쾍=g"_*ʀͻ'Q./g\,LmP  %Bca.t3}ܷwݤ~.Uyjgǝ 2htd?򡳳jݨ6жIp6l!oR~~aq ieW+.Jn{{m. z-B'l]d<7~@(b`Mp31 sy dJ> (֝./bV^w+O3I3aB32t>>1 ㉷m: Mh}cuE us-@2k;`hscP$%'sI >GzVJ7| PrhAг%nܰ]y@~to<7YgGƺ'- T$:=X8*-+ID]r Ͽf7=5ԗx[-n w-R*o/ŦJZsox? 7&K/ _.LMRLZXZ[ܺz#nɝTu 4Dw)yI=?WVYۙY4y_V1RQC\@n E11L~I]].\yً_q]EB}WCˁXCw12 a@1>Okf޼13cqa9cǹ>b?Qq}΍ǯho]G_@0 *d3t&g"C|qܻm]&\O_mٸ-OVJW\2j?Q]z 16^O^s`'6(~^>dd7C6cHWnŎ1$1bT8XRw =ȶ/Ws?@$/,=ȹŸ~UO @tHN 6NoS:mRL'\7ӻ}6+|?u߿/~O)ŴTZԢ5@?]`M J& eʃ߃.!cSCnh17Yq<.xSݦuV-au,֗F.׀'2@fH}9=[ń.fa[|4 gkmk)eLdmw2ӶLwmowo[o|K;=ve: g nhd-4B(XjeWR | Q,WX!1(yVO`)Ȕś=<9 ׀wl ]<.{M-j|ƖۂcJҟ%<.gV@:H=ݑc.pu;̫'^?8> C✫IA3*5l1ݷE,T8e: Kg.Go>wv驉\e~1 ̕wwSϘ\7 s`)_  h߰ab>vdxdy|b2 %(6pL!貙T5KUmѩpϟV;ժ:o*@ -$RwWȺ<:itm;Nۃ!jhC?rSxz\wc'ey,v;1>M}m߲ν䒋lR:{-q{"`Y'XZtfIeu{%Akbr֕k@f5  `Vg6vq9K⚬C  fiW=h7آoG}45=5uz4 8yΎ-VzrQ EkϞ~h`eLJOZMyy%xE!zXrM\=崝su6>li>]y-b yJ}T6ֶh|HDTٷu\[[~gecH"X͗]W(ZԢԚТ!'?>wC3S 4d)Z-J22Ą啛-NޙB5\_OMO*Z,8S_Ǔ'z,LvP(V*vMVcp?+50`ْu;pdemVZT WsE-j/DEkgjrK @ )É+7A坱wW./;쳟b,˰kWis,Z>H"%E^nt}7}farº IY\b908;ɔ GCq,r=}o?nE-j/L-ТA;?8xӂnPq?;0[ugnj‰ew cTzU̓ǀQ$02")˖zܐn@ YlB 1۾c}f:]2uduulgt+#+nQZhQ0Zp|mѶseh"ѶOŃ RX/k;sγwp]].I[`rb܊lX@o`6Z=o |Tꃬ7EԖ\#s]GT2' {4q"\ޢ=ZԢ'@`hXhbl<@si@#~hoYϝ\oo8+Te?i~>ӟx ; b 1Y\krHk4ڼ $⮫ߞg}eJ3L=ڙg{\ѢJ-ТCχ30|试"X(BqV 7$aV|?1 )\BJX- ݷw杻n>3/k}ERjEKz;=rT*g]T@(pD^ECˋKH4ǺH$\s.x0 Mtw]=sHX|r\q)]oQVZES:V-% =+Ue'p_vtv6/wvN=s[ -j^=IENDB`typst-0.8.0.2/test/assets/files/scifi-authors.yaml0000644000000000000000000000043107346545000020260 0ustar0000000000000000"Arthur C. Clarke": - title: Against the Fall of Night published: "1978" - title: The songs of distant earth published: "1986" "Isaac Asimov": - title: Quasar, Quasar, Burning Bright published: "1977" - title: Far as Human Eye Could See published: 1987 typst-0.8.0.2/test/assets/files/tetrahedron.svg0000644000000000000000000000147607346545000017666 0ustar0000000000000000 typst-0.8.0.2/test/assets/files/tiger.jpg0000644000000000000000000034370707346545000016450 0ustar0000000000000000JFIFHHhExifMM*>F(1NHHpaint.net 4.2.14 XICC_PROFILE HLinomntrRGB XYZ  1acspMSFTIEC sRGB-HP cprtP3desclwtptbkptrXYZgXYZ,bXYZ@dmndTpdmddvuedLview$lumimeas $tech0 rTRC< gTRC< bTRC< textCopyright (c) 1998 Hewlett-Packard CompanydescsRGB IEC61966-2.1sRGB IEC61966-2.1XYZ QXYZ XYZ o8XYZ bXYZ $descIEC http://www.iec.chIEC http://www.iec.chdesc.IEC 61966-2.1 Default RGB colour space - sRGB.IEC 61966-2.1 Default RGB colour space - sRGBdesc,Reference Viewing Condition in IEC61966-2.1,Reference Viewing Condition in IEC61966-2.1view_. \XYZ L VPWmeassig CRT curv #(-27;@EJOTY^chmrw| %+28>ELRY`gnu| &/8AKT]gqz !-8COZfr~ -;HUcq~ +:IXgw'7HYj{+=Oat 2FZn  % : O d y  ' = T j " 9 Q i  * C \ u & @ Z t .Id %A^z &Ca~1Om&Ed#Cc'Ij4Vx&IlAe@e Ek*Qw;c*R{Gp@j>i  A l !!H!u!!!"'"U"""# #8#f###$$M$|$$% %8%h%%%&'&W&&&''I'z''( (?(q(())8)k))**5*h**++6+i++,,9,n,,- -A-v--..L.../$/Z///050l0011J1112*2c223 3F3334+4e4455M555676r667$7`7788P8899B999:6:t::;-;k;;<' >`>>?!?a??@#@d@@A)AjAAB0BrBBC:C}CDDGDDEEUEEF"FgFFG5G{GHHKHHIIcIIJ7J}JK KSKKL*LrLMMJMMN%NnNOOIOOP'PqPQQPQQR1R|RSS_SSTBTTU(UuUVV\VVWDWWX/X}XYYiYZZVZZ[E[[\5\\]']x]^^l^__a_``W``aOaabIbbcCccd@dde=eef=ffg=ggh?hhiCiijHjjkOkklWlmm`mnnknooxop+ppq:qqrKrss]sttptu(uuv>vvwVwxxnxy*yyzFz{{c{|!||}A}~~b~#G k͂0WGrׇ;iΉ3dʋ0cʍ1fΏ6n֑?zM _ɖ4 uL$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)KmC   )2$&);4>=:498AI^PAEYF89RoSYadiji?Os{rfz^gieC00eC9Ceeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee! }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbr $4%&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz ?hʤvG2-r#*fbqӵQ7Yw/1|[pGP+Q ZYXC3O'qzsE55tP*^FlnM~n$Az"ЪҠf,* 5). sVm1SN\U8ތZ1.'D4n*UDjA6:сy1~ZRj zT^\j+!YF9@d!5P3JִHҦwIU+WL~Hdj*TcErM WgRL`-*JL#5EIlqRC[zj%݉5nVJ#N8Z OJ~('u4aj4mt*$SD$CA."򑽅T3ܜMh_ڜ`RMr)$R,}iھn9ƀEj:QC\qVzKF;ę0+ֲpi+Kh~`F;{7Lͻ0z40AZPi IJl2AKm4IZ5<:Sí_j$#)Ǩ7,bj[>+DٯmQMt5Eȓ"!*6.EOEzd7r6hq*G!SO2 XE)۸54nsݍTG1H&3)I9 kBF ݚi1Ig:rLn"3!Eo[ᐆC&Pz\ xYS=HjZ>)_/q%GL+i`e~;֔:r|X--ÃPR2j2HݍC>rid!"9)Ȣ>3[WNUTg>Hn@Uo=W T]~<1ғ V tUeƹW- >AI`I Ӌrz顤u%33ޥ}S&H6;MiFv+-Y$ XޚHWv`jΞ2%G5oA$$EYBޔ!w'Ɂ ̩Hv&ܴe1Rչ8KڶQЂYG+au9y@P1TV][&pJYIkzzXC)叵o*j&U1E E5.6B,桑 KE)=Rֳvd+Um@I)jdW9]"z]AZ|eğ>sV t#N7ZyDrkLR;Ցds֛ZV}+!S”ue[PY`h+KBq65%j,"5RB VlcQ۳FH85M#1bm79>k;J,xrvV/i<Ú#dsڣX[zT@l\LЈ\ƺj|) Jf0)䚙5+ Zw'Iِ8{;Z_Z_gSz1VY1;A]j"TXk`շ2œ=xD8"2ctdQ,OjSͨ۸zr*UaOZTq؁] FXH +VYU Uv [ꤶE"bfDï52ʋ%WcBv V*]ZFJ$y:LFP5niHy5 +W !GNN)7Ylr3z P$LzU6M:n.6(y^ş'^ѸkЫץ>9J1Xs#p5^/:U\h tj)3#~MnM, 4H3N `WH{RDي[lbG1 nS9Y| 1581⧠g1sM{Ñӟ@ DfRM:>[YCK\e[J R%Xy'"m>@5p*]U,p)^$Ӧe+X5XrHQ`Dyd(>,9T$f  #aYE7v6V6MD\B=!V =sS-uZd`E֯ l^5#8FFHҕMDc3|T,ZkaЊK6~P[]G=jޞ'JԤH$XME;‰FbY"*Մ'qg4S؝Rjvʹo>zGHNYŧ,`r\1v39d[pV-]-86-ĄV`Zޞ!bys.*Ijql A<]SZΤM H*7'b` aY/cTm@C!U7Q{ 9Z chIV9qZ6,+Ȥa`.3޳Gޱ%&RIsd+ IY:d:P۲+ hd2N|Tlаɓm1Xl23Xd`jNJ!hFsPp; MYXHGӭQ1جYV/کQsSÓuEFqK}cZnEH9i+O0@Zۓ!cZE6Bc{Te`k92*՛Pp*"e4sRxTK)KBZ;t'k.=ˁN5)|U ZS*p YCRэ鐅 O"QW $1 Ê ^3r nRIFp,gU2pi8ZCe ɰ) lK/J1VEIT91XF31hO̠TȂ_:LqPݫDwӘ,iR;EpS<֛v&*49v&J7GSt'r$V3\l ]p8'q5rVĔ?6Iv`RԐ+;Q%N+DIo~֥i;-29&P łimLrh<52S#"0qyp#'SW_1zEXuzۄL~^jR|t. 9gR8k2"ϸqI2fh'aU|GcҮb$5"5Vif>^jo9lUV]p⚩9cץWgܵUGp:TVH\œu(KոFcc*H8e̹Ft#Um4>T&OֳR >r2L8_ ֦>c'Q2;o(洶DwpEf2njf6l0G6XqxYd N f!WoG򼪹jekXOr턃UvLўr\"4[e+P vNlDʎvnyr8j8R2Xr+9ʶ@Y+1u=Ԫ;S"&@֒COASy$2)sM;9mi4R!VT`֑dFxj|ΦMsVsnW*vPEpvR!1H^BڰUZ13f[zkMVC6 5WElu+y\JT AJz0jj-F s+5!SGjJKsj"EPP#7vhE-ݴt#2YvI:9=! эCI6sZpzXgpȫix`Vحs g)ŀ'by12V8{UZ6Šί"r8S&`}JDEx7w$>3DX@T2}5-ű_& $rHdfǚg TzBeKQZӇ}qJqfS師>O41ue;iBMOpTzRNȆ$R,i5KP^KjBGQ]B$`\MϐxvfL$lcXnDu<9$Iv VZ[1mT]+ HnBNr5NW;* 9!"8Npf{Jx*PzTj6Wp1jrH5 ْTKZTufڜR39JW*&g޴sXmW$u.i8TX1"^zTrG;iac\1uXUIL+icS:ZmߚFj#+x vbZ\c}]Bw`SDL5xvM5b&k%sJ g8guӇgԥ^iX}KvH˞)rrɒ ?jpN*+2:EYXztW$hjP@WeR9!vCZ ܅ V CSˡw1'r: Kp:I\jmD,xLcExJ2mccn20jU>ZcdЦUJe]ؙ>'#V[q&IE$*Dl* +2ТVyEguZdؼ+I8RG1@+kU<49.b,U@Tb(Hv,=* ㊙!#B5ugz;Z!bvhI ׊GR_8hCSf73nPMA3ONVw7d8R0q]w%E>q+fezd0EfD$`TzSHq՚B!_"ak[Hӄ4r@)u:IɴU}k9 :UrW9JG#ђ)݂jW!k9H{] H/ sX:23S9_z-tYM V9K k:PB*})q݌ 03Ҕ;5"He[5LH%F^hfMRhHݸ5o-8Iw%Woz­>WivsOYk5Wܚ6GZ SE/c.n:Tj4Gr1vwxmˀj,4 I6j"))d㚸GAIhS,\P6DDqG[q/cT'wg2;Uin1!歽asgm-xbd[22WCMZID/CbOfQ2$6*q3N!V HdI9iɁ"[q(bD%ED0.I O5U̝#Tcrs\Nr&Iof M Ԝ]I\,,NzOTوf]b&ݝ~QY uqh%1 ukexh"An޻h5m>$h;R1ɵkxڝĢMF^9`Z;'52WA(hdyV\:BsҰ汊z &nd`~ "(m⥶Cr W`Uk!SS]Mb,Ds k1ZjzmuO?^bVT)JHh+֩m$nT? )ΛEKzXc)BzSZi|!T#j. ]G:Ǽٙ ֱ6h:?b%Uwh UзV!j7as19ŐYv4Z)fcMQ0=YhD[[vMZYv E@Q֔O}*yFA-Îp i U\gqW"\qS|ir Czk2_TF]rMj!s֤'`HvM80ڴMBKdtXZi*H܂*If5jo'z A+QBf;U \c`icֵRг|Rjlv)ΙZ+ِUb]ڃ (9 ܵkA?!.:\[ nr ̓U{b@#N+wާVs vb0ӥM,[qsf$GSW#*+ "ĥ/-^*MO:W=',1sZ!Fڱ5T/\<1 z[$o M)4R)4B&}NbdV=;V2^5YW·Ҵg95zi% ƓosoZ*{'%tyRv9+RBz XWsZ<$W#8`1EJ1 0E`kR:(A'=8ή+{B[ nH͌-&N3P9h |zsI֒(xUsjj"5=ehO @zդKcwAbHCVYR;Դ23sN2xYNZiX2|WBrNUVz}KEMB I+"A+x= {߃Kqֶ"354& 9MԪi'sғCFut N%do5x=+q-HoΛ{(@Dn=:P]q3b YNrjWgL ! 5gSW51#s6M+y\UX5Dv5y.QFbtjPojh\4F[TvnM嘁HoJHW%pJrF(2Tޣ}DWm9HSa gć9vc"y3J+;j,E?Ȩy;UIeY7+⧍@w'VP\y'Pf+ǭ,m!3\SDz+t)UA!^ELwB kߊn$Q|jkERzRݍ";~U;1d| yq<[$=;U-D SڵqWP dWo5ѥ-U 'gf٤PsGoB*'RJ|SΌZ?fu,e=Ғ@bm&7m(9'ұW{j[LqUJ`2zUFz2]&Dr!e@ WF-z0!W5\tdTj0\ۜs×:eyn3%@įlzjI"l֨I=w@QoޠPCQ%jޗnгSqX7TsҔgtdZH$޺' pI^{j+p*k#n*Dr4/08qI_#ʓ~u$j`jNArLMi#i ㊫$&TXKQM P8nHL֙+(aqcVVAޢg J{x=)FQU^"OZ;P@Z6qn@HKɑ$ngVBX4֐+DTCS@9E)B0Dw){˾2J=(;hqp][J|֢ӯ eA8%93gM!I0s+6JŇz;e_wzx?1kFL6VWl:&џS֧)hfgjTm81 )KL]@IX)sCqO)q@'By9Pb)q`Pyt5"43sN'!4GJLSGr!9W53ߐ/_Z8]nlT]H`/%|KN}b¥iB) TnsM+Eؘi#v 84r~;R+ӱ"8㚏4۰zHg+ޢyweI#dҪ"gS$9⦶C^ZYb+d`ZgRǯQZ}3SV5 WhdⓍI~sx>ՈxviKsDqD[$T˽;TC+R)]MTOA1F݄YtUҳwJF(HEϥG-sZrܐh xu$VFph徃A-FqON՛N: ˈyJ "B,94|fmr,y4i9D#nUW|Jo!(MC* uDM-4ސSZE9_8+E){:HP rgJI^W\^;%6(Njz۾sR3kRV+圑ju xQ)5Bt9WsC";3cjy+%[M=_' TK) )lv%E65@#5pʉ}6DqY]qkIen"^.Ԩ]GjЮbVhSUQ%H,|Dx1ؚ%^%Fn./ZZMgZ0VŰkTvLoݒhJqJa 2:-ǟA$qhȭ1hK Ov,ԭZ`!is 4 Rli=jf2fN X94IliꤊLh҅Riǎԅ5 RC@4 R P1%\OF47Qdƪ"e|dm9⭂Rҵ<E=&X¼1G(Xh!Z1iwQX#f 2+ϧ8%igڴib0pMr,qMCSVYޮ t`c;Җ#Iڥ6e1JSڪ;w~}ƯX7v~1ccҚNi'!' ?@Kl3b:u9&@L& pj;Qwz]:_cuRF)E4Vbnqz4+9դy-T۳ Ž1C85ͩԵ"3AZYBm LȾfG7J5rqQB1Ramlw Sr1JX>׍"s(li :pj$c&2FS< .aXosJWp= Q` &P^i .+F˞jCe"|NJx)\dʀ n̞ b2㠡A"`!PazSFs@ ٦iC4c@fCOU& e⑓l1яkm&jɍd@wp1Q )OXΚ K1LjՔ[ `ם lP`pJg e+3Y;{@CM2r_SԚ/2"0sT :ӑP̊ :cH݌TȬTmQZu rp;”C6wt9RUزZ jC<1keooZTUbAb:UPF¡.%H,X>B楖">ZLV! Ȧ JұrZx#0|TrDjBSg4=#>P؊FTfnL0C`Fc9VcQqo8yLF* ݫHX2yޠqL^MSE3mK)wj>3T!y(‡=P @<XГI0; sV`fpT:ɰ fclh`$w 4pb'D\tq I<8q"Rýpv( < QQ9TUlBH28=`HFVuVZ>P057oPh I0: 34wNN<{ecPJfOJTW{$r;t2ApA51`IN>Ao`:UJ7.)2'9E9dPOj;y?z@^F)E8u5RRZmmjHD`S5u8r3O[s~[ IQ;s*a\gvXu2~C+ą$%*Qݎ{@z &:Sz TPrƲ yb3$:,nӐ?3?pv5tb#R&+BZ$xdH"qRʊHo OT :N,1Z$;g5jڿG!zgִN욳kn&;3tn@ ʰ9'Ԛ, xުjz"^!1 4t+5cg U<7(OjӅ o<6j_ʱ2Hqֱs扴c+ϛWqS̋c̻6T=UM:+N9x$|αi;H.HRj:[\H}޵WPqYMYD9=j$]UY@Q]Y+J- +GC[\͠qj1tެ,#wS9ȪZ[D7QnQ2#m7T"{~ñьb iKN}i{SD(c,&J)ZqUcLDِ*!Rjn4'm]2أ;#czRE(qڢ("A4(X"zE+aҝ$BCrc;"- Z$Ev],6VLJ2xli (U\-UJgsO^GJMt "85ѕow|:z){e P& TCֺ%hq1VMpN[[S|}hi+F`;jea {w5 6B`dW8DFӞJ,G>"*O>Z(<ɰ1:Zʣ: ϞsWTd39! ґս_B]ֈ:a5ho9*5vQBd,~WZMʤֆЉBUԣ:R4AqEMqFmO^\[elsHA9n+ 'A*{ ҵ}R{CsϹg!͹#ϖ~ƨ]]da9oqq̘沵;cEUM]ܙ= Snⴭ\} M+>7P28_j׷S])$ƞRėli<3dG3$i&@Riy~ɩvKAޤʿhN8(S 4RN9'Cw4C吀;SVs;<@"1G9?9=uw͈enT.-+F[eqsW=Em !oPAg!n5 >RӧŎr]KOʦ =@zʓi=b_Nin溪7RQ:s+C0xVB3Dc(I~j2kdy:hZ0jO*O~<\kU'Dv*Cn; sBI ֋.+tD@);!<VR-}jgH`RQiĭjECujS)F(܁Zr&x]Le 0y!(V rM>nUE+-N|8L,2TFFaVB Ri\dd^)6땦G44X߼zN-- E{VUbǒ*W.t֖|=j{58).SE˳!"9d M2h45t#J>a*K,7l>[hsuUDZ-fЭ31b sԵd4ɚwFf ^RI,2 *< RW \H(U<{PQ6k5ûڷ`/ @Q&z{o\\ژL&Yy#W,7zjڡ!HJV(^o"+yEtE'd^lC0խFR~ VwTjo!kH cC-X3qڳCw!5<E:Qrwe L}J.7#R .Se]f؄Vp=ĉ`Ud⴨=E5\sYII!1R"85#( T7 "ܷ5xk/줾;ӛ)j\Yn;J h;<.1Qx[-1T"ٛDB0J #Cp/ʋXH!7ڧ}"YcYIŭxfR Gg  SfKxREm<]7V/5m{=Z3KC2ry>HVES#qBlh<*AjV[3 ,=E`N`_\VrzQm̂9 d `>c0BKqOqJw/8}='ag0Ǖ4qA+MN$P=Gj H&Ta=xVVy2O54ɍ75ҏ5HS't"ԗ@=%UjC$Ȩ`CsJc岹CU+$DZ F*<+ $TM'Q 1*X! R)hǘUXINzVVhX:UyRVZGLlGv]{@TZ<Пc-F4j1 Z;ݍ 7$qT&A:ԶZ -y7u"ĜOWT*dAb08LH@ en)pH6" sYY'=( ߶&5 '&䊂fwH,]k5 &SI 5fmI< wuyiVYr{U{u-u5ih"_`qT%%@P2yStqR"k'i>G.[P/ېTHqBlb1V-ZC_Ov=%Qi-&vz!LlY:WCި#Iq%ц0Ub/}{ ,mMunp=^ gZh3<3q]]g5W7NWwl}kO9+{; N@@S\k\6Ivj*Zc)nA"Y5k~Fں2~ئsXsŎJe"1ҝJ RNA#Α-҅"H SDЙs$agg6r d;0:$Xrg"a8+w8 Jh Vc,N*z[(T}tt1 BhqmDⲤm9㊇+b})o- (P)A7 [Ayju,zZr#>"E6KaS}_O5k2G[ %Mtc)4 >X@K+DT6۠VYB6{u<ۍɥ=&:xKZFqNF\HX PaBkTHQ7P*pN}jOou8njyLbD_|H)JjZ/Er Z$+'q؁8/8 '8?( vdT>51uW p0{4j$aDjD7^t)dF'*5a!hC4t5k `,@jϘ` ޺;@?«Nt3DsZ*ڛƒK3+OqZL>mHS- Zi\c!޳m/IK:[mȬۘs*$zIdhj3i(9A`Ǝבo&TB.i=Q]Kƒk|ĜYF,2%sOoahÁJ{hmoS&N]ձr&3nc>lqqa ߽"YAUjI,HlgAҰo31=H*^Cym״S+n[ @}]?e/g$i3n\1\=h!%|qi ƍt1QR.Ar+7QOc+*K/bg< ݅bsIY94m=&pCMo4]I!dA p=Jd 8S`=zԐ E<Z1j(4'@!Ajsœt<<*tS"$)KBJwqږ%*lQV@*M$2I0j5348r3?t {IMO߃֒QQ*ma!j&dhrıcrzTZEqI5ªU9%V|gNX,|:r5q=#oCD,$"ݚdREeДib>1֬2TM$[5؁9&9>S1LYM$"!#ڢqb?Hxv*2^6i|&ܙHG#9݆l4 m[?5SJWT:ܫag)]X@D) բYTf\hϞM`n'i[@.P\3OULxS) !oB=*6!6z^$zU%7$,ȡ(|'4$mhA2GZj9NI*n2+GJo2A rKB~p/"l/L`ϸ#>簧 &OSͩCU6K朙8튵/橠&lRE\Ryk4s3DrlIg7ъo؆{P -Pi\ [)Q? ƕ3I'5ibnQY\l+I.usp73QjUΕsEF܂?lD)HGXsm9I}iresJ i Xp񹟎++c[u&\*#m+Gg{LU_95Vx7\@M GK޻H{hw2+i~ə =HZЎ(0X knmewL5~)Q@%05ҘkCz}N?U0_2yvo9sfίW:tsJ in؁:*)ZPIu'ށY*]'j9plޝ5k{W.U%3N,j[yT" LEq-MA/'I\|ORƁzȱ/N"'%66 ņM&UȜ-(*Et/C^.[mx%65#)l>a SC'D^ǚ6Ij4xJdƯ3Dzr1Yxݔ{XSSVRA*nAޕ!!]q+PKVbTnh_Z\ݻm=%(8o,W9J&3U[+Ub(pe! hc6>i# ;zZs|]> ⱓ{a `設;M?O6ȩM<+I>*гB {}tUSԚa9UbI@|ӣ(§Z"B,`Bۓ-Մy6da1K,epmmⶁs5}u(OHZMgΒUmt!;ˊ1bV\$ť>vO%7Wқ "TXMzzN,^f^ި@#ҹw1LKP h{I?{P>'`O^*g+jl\3RB?; dm 4!GZqEBM"Nv0*JJ9mNS`4l;'ZcG5cs YdS5-:X$sSH)\MzQ4V2¶y8U ibd$ռ;_h\#BΌ 3gOs%ޓ }k61>\p1\71p05Q=J >u E #4#զM3H̓\mIor3# dU`}{&1}mi>yEmNM/!}2*M=;VUdmIkrff׊<6kXZ.}+4_4@$ ia۵5=M+P knDq_:{f@HewF08EqLsw'`'=+{vG9!kQ&hbgS&`3J"OSCVVF\`uP[q۶}*Iޣ=iؒ [`ɤ#d5*Idtx UIYSw,[܀MH* 4g1'=gUɺCV!*_z"&ϖ*VhcTctM4 Lm޳iwJt7}8'9&ɀ1OCi pOJ]d;Utڣ] j8ҴqBLpCn4YH˒jYߎea2!s\n5KZf6@)ۛSNK<{T˲1VfBϥD;>x=k6 A8qL2d㪑IΤ'j9>vdfF!/biɧ"YpH P(u) eRPA MWy\`m^nCtq2Q29w$ʙvET?j+ТY%Qrz/NZm$ѝRH!#Q *=db1-c=3X!Fh"u-Z;Tqhޚ4V.W[swOEٕZ8 ]ӷDֵPͧލ5+c;wk*SZXHn=+7Po9=+*Q|lHvj49Hl:ӭa@L1:`I\ .$B!HB@ T sW}=mg+KeƤ>SNbF`z&Y)u +TmkyD8"~5+6ӊKO!Y[z\eibBw깬x͆'ok ^xhF~9t"HYP'jщH^x.#CI;q>l**C1T"AnV| /C:WjBz\jYD;x'%g?W+𵐒{͙ MDi k^[X|IE5ȊGw-Gmr:֩XjSUӊn0s֛H4i@kWPDG!<*0xPݏQyrt~vtLזK"FJ5t|de%|98U,%34;KaXK{Kn7\ rV|駱qȨF5#@o :Ԃr0]H :cWT"-Qɬعd<Ԃl/4DE$Hh bwҤ.G+cz46zbIЦO ӒjYbU-vbܯlHNEXԣ=֩+3퐕:(2mJ%e}#IK@dHlE\X`; ϖK4jS-X:SՙNepT%a*WІB0U\\1%sǥK 9)d"SHԱ犫ܫN IN>_jDp9WXb0O:Oszu4'nNl)qsjsn #a*XẎ9\:"kjm.m~+nnv"K'BGJ-bu)ھ$ AT%fs=iD2ekr:VߵIMf&YwxlsZ{"lp{I݄' (z-MxH {R4&*gG׃w gXF'Z2wUW݅3̏Q@30_GR;u,0FG/zVj50U,FE/2 @.Iò ΪKSU?rt2Ųg^\bax-cjF^zӚ{#1R^niF%W +E+#>[yIfv {q-wN+colEĜ6ދD]ՄՙҥͿ8z-z2Ae y]9ى8CmH-߸ciTAGA=t=@(;Z[avj$rJڱnv̝j wDB8dF,=z+"j\w`)X.{V9>iM]Ÿ3e2NkPў<ǥcrInFVΝ{!Fzfs{2֕4c̶bRMI˻Lڡ{ՍලMT4ۈalڒM5tQ]AR=i+1܏Zӕ3x% ǔǸ Zs jBKr^#-hp֝QISޅg+ҳ-D4ˋc5V \ɓQ'3o:+ETqЕ7 T`~1Y'O)At1=sZ|RVg>I ԖzZ1xM>B Tb7D]mspFC0+UzN;Kqr<;sՋ9KqI-@[g5Vwv9fwI*;ϕUy5WC`}E9/ S-ޢdm0wjcPՄSWa q1f㥁c#*;@_DR/[:0ҫDP g8zC.eSk ~lΝDp(#-D",T+ݏ:D=)S\%x>i ÿ>sKuJ-"z~vIU->[ްcPޱt}+mnή<:`>Ւw.)A6qN*C: W[Fqiu29ԺPĎv; !A;,7wn tcnTOzŸL ޕ0czUe_,%#}#ֶ20kSN8|[< ǜzV|f'O%ï \Pip߅WPc6IL>[uyҴЎ9b&kN=UIyv0n*= &HOR*#qJ054.V6W2C|hj6g!*H9]SVH+|V Zn,,rFk7HrVEޟs)d\qS$20ۂE[ƤBEi4p%ʫ! &$4d&B,&Vr"[xǗTfn@YsjQPhy95Nkdvz\'R8:T4qS=v$ ]يT513ؚm$KKfysLբdh Gk[XFMi5=sPh~ֱ`1'e\gsJN`H,cdjRVR3 QYɘ'"X\wƦp */ihUkpXT#wnĈqqڤ0˚3ONQ$LtE&8iJ6I*^@$Km;Wu5nfWXUl\$S\˹5ۉ 8"KgB9+\ES(>ozei.*j͵[Eִc:)9Wl^J}ѹ)޾DSF[;Veՠ~5#3~b'`/팯irae>VISIY6֐e -E_ʹ˻/eh-FGWYݚKlUA<'4 |jj](h߃Ӧ)6[q@o˺P|ᏡBԹw&3)"jI(R[2e3m j7vQ# t2w{N` c,}MhdZ- ن-JVGo3Ǵ*U&g+ebn݂rzWSi-o5*'Kk+D?/^UIWr0a R%R"7E pkI[ryⰔ͢ oؓք<$OOAXIr.C+MdIe9F;sLR6 M@ˎzTZai1]ǹ88z)XkOEulOa?;AmUh"VQ]H2=랊Y` v)?vW:#RK9iVzJ;`-+QdW LT]kS[c&B[%W/Ҡd(b'qJ$ m~j+LnLTciZۭ`Co?1+hok#'Ff00EGvid,V ,jKRfFfFՋYR3OP2 FjCkrJ<|,*KV|*{"ɥ!Uhʰʞk"ʐ_MݬRexVp1ֶ_jRT,H_6!j}]*u:ꡈ$u:ذح_\^E q+yI\C _B6g=:ڴ#Flu%ہ?8'ocR7t#4#c\Dr!Ēx.˓3\w:il`_XԓbtMRf^n\}a5{~s3tzH@*)R_Z.|܄>T{yDW= ^P#TWĬrVX͆ҵth@V;JjQ|@sEs-IVq|+[-@nYƙA洏+/yE8F*m5Tz Xۊ;)#jR7.dV 4ʹf>dsXimufa%_?QBylOZ-a5bU5-EeW,_IY $?9ǥsL׷[syLoiy)zUGP13׵e!s馬a'yDJ(r:YDRXjfn֗%js['֭D ýq^a5V* d5EJēW9;1 Kr)mQ-9p.YϰŁpr m)nkYp, 5_"AEXPUe{GR 0Oe”B[OMi9=*)!0P9զ҅*Np*d?4ֶ;d =Oo"/2.C¯jIS4M>[ h.W-TWsJ OervW6隷,0jqtۖoި?3Kr03Q$DR:{Un5*.(E9$Sw;ɩj4f?:gT&/(=cIhKs$WBB*F (3N c< jn=]TˉF峁Ҫ@%I=Vƅřb*:9!*wKHYPt}*Rӯ. Lo+C!^q`[y#ŷ 8P>[!Pd;34q *&E0PYh"S@ FO3#?J:i`~R8YhKhn0HڱeҒK)J֋Ȫ%ݠF!$v< Kr(“[sػY|M[S :ڼJ/b&9ALz-'b} S ?m,hae*ț\uB, Sf^Mgmr>Ö 1X8Mi[\RNGcXY3jI2 u4N ,e3啇{d٪[PEZK[?ȥdV{s$JKF;>@A-0)*X.@,mM2e(3֩<㊔6\*w TP4x!]7v4Ng9ХAdˉv29ZMcgyYzݑ*,z`nr+YGm P*XTZ(r)aҲzZIJ( |b) VrD8 LQ v(-:L3]85#NV|ه5 ۸2[Ys;U>8˱ mP[.G˚W%+01S gW%Eq]{dE^#d?0i{eŹU;S#%09*d\LI8W.%*P0yH4w~fFPλ)D4:yCm$I2Y ֍˳ly&˅BHT#-+STTy 9?)m/8(o~nK0!RDmD>ʩ B4 ĴuŬmzL togorj5ỞՙD w)85h!2fVw%_f~a޹ؑqQ~Hș@3~U`ٷE{HLs|GcUX 1;4L鹣!;K":y(æ*J.Bd 8ȩFaj$P@'X+ _C=+'SYBY~V23#}=+U5m 8)=^UekGa% 'Jι_88D.GRGZ趗kV^\,481gY*jogrHںNU]KfDRbkh=A%ч`$}}+ L>A*E\Ռͭ?X$17)LcH⺆djh|ҋI\̊YeG .:2bj2`Wqk PQ2Z!Uiک"/Yܰ2=~DֆRV4*n1JJdu%.1\˵OGAb(UsNm85WC  K !b˩FJn6 e:kqf^Ak& I#Q LwÜ̊iJNXG_Jw[S)[+ EGx)曊E;lVSش1S c3G1*WkDVTF6,G<{9#ϹgtC8*ƛ :3"VKsp7bJ%`kcI*|I5G,] Տ ޜVIٗ%t`K9nQ{cI;3FH V+ 5FNK8d,ZjA6jej-AN*[Īx eA#ra P̪PWɬ۝B;m9E sx HU$ԵҚG -lb{͢2{An5U<#du f+rݵȷ^9&tN9hLUxRcg)QkhCcay 8Z3N!=ES{ƅI\NC#%YbOB Ios#.}M7X[V?/k6gG5݄[FqZB宲j7~UԤXa*?o%}Z~,}zY f O-EsCM7j`pIXKLgiU8jO2LTK3.zSlj=24@^>=Lw$#*+ʢ]ĉޱ4Mn^Qd*kȭ9Ek\k`><>xոG+R'\4 iIca cuXߌ{Қ]7z@-Ǔ *쎋J#%]SZZۘ%s[Ihcl`rIZiGit%Z y"ulhR"tp^ՠ%vMV"ckn ms(N;"쑣#bh" }VAT֍1b_qMQ^Fmޭ].\"IHYfhk6F]]Hu;[ZE+DJ̴P@ '&HsHHYS j#R-&zJW/\mɤ[yi^ñeiGY]Ee9]X]V$ќK[ǓqBzR'ږ&0* (II\b؅bޕz$p=i)0o(e#T%k~6MnN20%tOgfpzU\g&u1%wۜzҊR9 ǽTUđ#!G>4d9G'⥍-]+Cd## lޚ$t9.$CF=(IkܟNOQQЦXJ j6g{;UE m#v$U:no\Q~Fwl\"̸I I4db;^{@ȬvLM=nIsKiH~?kGpr2HK#܁ iX? ˼VE =iqs[Xxw9ǵEzIEM X'FϊxN 4<6/]Lr}srޟn3 0wJQv#0ϥ 2x1ci$l"=؂{ԳÀH[BnS5<8=(uC݄>eMOjoB6:dՏ@2Ғ!g5Ϋv#m Hkw ieޱ(+ܒk^ɐ=Op/wF%Aq$,Φ?2[lJRAbWGAc[V NdaMОʎTT2Cmn~nb ۏ/WYI$,ͦCR+GHb&(cŨcuV^?q@5H ݼ3GP`GUԚ,uwZ:P=NbGSHHen?ZC"k_8=.@ʃ,lTi<WJ?:i s=P{E7qr3޳5ZED&e 5$:ןB1Qm̠= 82dA!UQS,!<+tfCtEsu[a]̃;Ubw FVOZd$̸-Idd=d VXUR8"JW+{lmn kJlk֊EzX$sJ) 9Mn&f-PcU;k9&:sZř5wTx6=j{W"h 2Nmizª|IqWKB¼pEt SV++$g޴32k5izHPM9ff__j<;{ɕScHABJ(V\Lʚ҃F|k9O~&(#5imb,1JO|yz7M'=s'4"xUDk9КzH!TXXpX;sr{SgyF}+;dͷ,# NE"V%+{S>k\#e6),Ki;q:.ͼ{q->4I+3G5lcOB)u =M:0%V8H55$+qzOp%$\k[n/ #Y̏pV ڗ9LI[[BKB"y>Z23ps+)YFGq2}.2ꢟ1VqV/ B&MT{ _9h+~n`18)l CғqeH@k Wu6*9o-Dʔz֛ 8q\VE&#Zz@<ɩ.eyj۶E" d֭Z 9v[-T"Žx=Iǐ>4fujD9'uƵFlF'"(9''jOԓ3}z"]#Lyi*QBFA!2*7FZ.ALE4vy%N4 F뭠u)zWEFWscjL7+\9;AX TYEGJb4,~e\zK@̑>RHx?%|N? T3ڀ>$jZeiePGӵG&7L2/q3/Z歴^( wOQ4քN;zT?Շ})D˸@ Ϋ.14 ׂ*Ҁ tt*)&P#.P&]=;S"*Ve Zӡ=Hf*cU9<jLm*[lccNky8mt͖l dkle"$cKasQ_DHvf{m?QxKVNԊ\-B)\FHW5QZ hG_C\-M+ jԃ^c%UX㷷7֠F _];|n ,3VwXSݸg!+e5mSjYf.$`G'ֹcr T#mHn֖R\0]2(wˡ#b"ˌzPcr#R )PZ{r!2k-x5qW!=ݜf噎}Nk*C)*A"d`0qֹb A$BriJѰ+zgWumZ Vx21qi84$uZ`c#{6>@6K^4ЋV3G!ň/,ƚc6u? pH&.Kǒ!ۺP;'բgOj`֊Zv^Mܯ18`+mTh=@3*CL;+YLIN;棼IkGMLdv4#< ֏s 9r`ÿ4f+w=3+mћњfu\sRDŽs^j6U3=*Xf?ßέ2Z #\>H]c J{i 4Ip$i98QKrBnYV'ֆմI9() RZE7IUuen IN"}Bevu'Eld*I x|2[楱KbjRﴐ+Hܔɹ]OQr8^{nA?:{ЃI<څ6qlmhh7(*N|5'KQ!yE8ĀOV^j!'tr8<I/+׽*D:+s7Irg`c>*Ӫu:@V"}QRF <bCCLqY[khKC^:I=*)@~fkpW%鶴dĽm)#Kp"E$9gccwnF+{mB `sU :'mhf!P=kJs]FM2xެB@բnWYLyldzB [ٍ&jSv ڪ8dbۺPdaT7Lf<2 VS=aUcXCȸ G@&`1X#MӖ,ۙ1;].8fS=ϥCEZY'U8ƣeF>=F[&X|`Nj"Jve0α=*ʤIʮqZI,2Iˈᡌ2g8\d)[KeٜoTvv]s $dy>H*~ej!C.:ʭ8_Զj,\_RCQݬSij`"[,x|?x4ZL|O"s4jAH)lOwL]Mr ][6sڝsd0*my- ~ZbĖ!{"J&)dq? rvp9'j7 sGtJ  [@UsB&zu?,OOSZ&=hY"8)yn*)W{T ]I8ɧôpUɱGl0Ҷ  36gKkFd#d61d`#X J K#9*L@ z֊ڣF\bùZ9xtC;W9IQ?m j6 L3ڥ̳%HaHXHrת{|V[Rڜ4:d0>jkb 9'7m+teLcW0+7>(63qҦn]k.iۖ#ngig[x|Ԍ5td$:S6>ٮrpM7N()VY z ;EWJECb(q*.9$ȰgJ 9fSFr."ٜ m#D8=jsT\ޛ$ROnDyXU 0k>.f)u5|ѿ#VzXZ3R֯̓i-bhZLܑZn_{Hfڳ`?fnf)$Qg{vFNj)+a 6r1SQFV@i^( QRUxEg~(@WsLspHU69cqZ.U\g4.r3N,F0HǖRq=jd KVVѫ 5fr=RƋADm)׬0[{էm=H-8 Ky2dm՘4Eb %dPdud8r\)d% vD2)rrkȔk߻}NeCJQv(!!`2 ԭ u@ZK[cY5]~Q+Jz(00Ai=l+mTW8f;} /ȤƤ8jJc_FIKXSUERqc(5U\ nk֏n=!|t89>%zUXsnQʎxUCzzQE)I$ݩRU2VՉnTA*6F g.JwNFHoQ^Xҙ<%NG7{\\Z0sm;h Yw3zhƒ\cMxPpnш1^-/ӭ+QT dҰwpp{_#Wx 1>RZ |+1 .{Sa(8̃CZ \#*(848I cF]Hhi3NY_gNd3I O1+1JVI\:z Qe(R6'Ɲm3o;AZnoSRMM5= U3n_p Or;I-ІO+.yEM<M<*e\]ݘ뉥V1;*tP]q,>AùP;ї$A>6+J""9Jd+>u7+ 淎pܡC4 qZ쏾1<ƅ$4ۻq Z1!11Rp֫yCN=ETU- lJ}9SQQb%F8b[Շn⨒uj2OZ%8`zP,,[FϠ^dh7|.qS$fp"lcl>gyxo_Y3BT'Qj7Fc1a:F1U?l!PsZ]^?7#5$i?ֱnP[K`ZԲueFw1+2}Ne*CC@x+݉!`=r`L`gܺ{ہҢr:cX-^t*,ǥR%JAU;VMn&[ VN|2 03]N6Z[ķ*sS^;M ڬ%%J{e[ؕ#8FT7t+Phﴩ!f(2=+-ՔVūu@i[ 9stUܞhu82qJk${SdYf;a=$z䳾VQj? esr0VLR)$D9^;:BrsJ94{1Їj^ЮAWBP!{@zhy;D4yKs9ÔDA[qBTr:U%P_aQiyN)~z`.s!Þ95g2X~U.uُ֔2 w\ԱퟞwP ϕ**2!OZkve1 ey֝J~Z~sPDIG698nVAS.셎{;m6?:i[a}=ʫm,ۈ`;YKާ!~}l`8%h[9..,@V(cr{ c#X/ dv:;=̙<-8&ܚjm2ЗD6z]ơ{CvWc"F@UZД(ݎ[k6DZuhH+@`Nb{M^ہY7>и8B?܂NxUg,2X6z;Kb+I8eVͱFGL3(,S-l]m3UOެzc҆~w#;dtwF?[OϷaG+"mc*Hd7cEFnSܻ;! }R[XLo NASDWh'53%{,W L)dzShNKTj"rj-1s NT0ƱBs5YUX(rO&ˉZvnBPm{m,g_AH3 G#%B e lI \3@`?/&ezck*/2K Ec#Thq 'fybUw8 ۽*mW0/EVtˋY)ZĽuv AT1_Bih^|`l w8 lNHevdBۚ\'}8UnO͕8'H1( g߰V3f6"UnX f>NqU]`,i屝lHԖyZ4N `5STUkcҒܧ3G@GٯL܉VSڇXzͣKT2pS-\I01c]ޘ|t9VņYE㌚B5I]Dk#4ߒ &`:moʝ."*nUsSid'H1V( N:*>}(RhvL6RL:%RIwsdMق4m@˛ZJ8dh1-jhi !nlʨދ"կh'sTQ<.nⲖ1!Yi,$u>2{f8tm\$p&J!y#!..6s J A#L䊤4KzvTd~#[ 4"4<@d' dL u)m- +ga4@_,KFŢ*4H1 M4]O|cHn9pIϧ"5JOq!!yݩ 3b'iSV*@|vMRJf!~S$4$X*ܮѸ6c9U޼ҵ&ZoR+h&:!#@=*q<<8xX|.mN ֟:AL`m *+5jk"ZIbdV F"FT%be\gSGKb{ST,v[9Bc`팞V,t4?x=y#qCץC8~̎G9$V}ȤЋ]@X怄[r=*Xg܂'B'5KaKrX?sr 9c\9''}Yv N~v֤h[cnLFO̧=)-KL稤.fT*c;MnN6%A9S5b5br=ҖW $$I+Ky5ܡ! ~t."I ̓czeŒH˜ 4$hHB]K07XHK(ҮQ d9V9[RzcZlqg+{l7ӁzV: t 2ML5.{a"dX0gjK#X縪tT'YB=>|r"DİpXNMHfv*x#슪O*ܫ^\C%) י8sZֶ$m\PZqo23q RR-Dڽa̮Ӟ \<1Z W;kdQpvuu)(Y\8%6tڪ" +)氍lȟ"Ti|6}x5fn f/bNұ좗W(9Wd#AE|eac̈GˁPr= 2I"QҴKb{p<1"_00Oִ3d,B$L:4wddSVkkt&I\7EORmwqɫqnOjdm8$sںK;q^Ż։Ri |Aޓ)X޵Qܖt{i=1\ĶLhFvs #㊦+64sf41ZEMD:t&,,qVL=X/Uq2 CɏYҬEzZ5I!|¡GlB&,~o:"U;Pjő.2W`;P9Q-HNR\coQUX@d/210HE8ˍqU. +  I8ZIȣ *2u7?5mZ:hFN`:YnnLҹkprzf3GQ_lUEOSNLnH^ S ɛL;Q C./11O1p:S|HNxR?>j,ippqybd9 !n.^P" 8S.\4LgT cc nIX w6ln\bʱ9HԌd1Z۴p+ghؗf i`N kg#J" R@WZ٪CGq0'n*hLĿM*x3Ļy5C_< C[$-&#loֵZ. >6B-qU1~MslHF3l[b2$ln+~Q֙:tB-ݙl@$ZFs VmɣN!pEIV3ջyJ#Au[E䝴GMr Hk`;:k0ajeԼO'Y%L6 ֳiDgԴc.QzȖ[r"JX|SWD=25^kE/Э"(" a#/Bė`֎I.Ր'q؆ zz@\FW9I+'NNP̞qk3M{g5zXoa3}_Nmź ` TJH7cǵ`Eóa$JY?vN6H!RF-$fW% DQw/ګ r{Ӕmz3cU;d)PU0=ҵ[@<iS3nce*S(I8>Ȋc$ĜÀj[hHpr=7^q*,M/W?WI$VW %bF8 %֋RI,X ݌ufB<ب#qI \I=TJ y9zӬnri!HKBҳ]s{Ҫ"7 =)]Z!phHܲqZCI`TF9a*~e:1)e3֪]G46̰u`UU 1SU+DF^dzw[ p=$uP)̤8aKPjQf `㊠&&UDKA8G#ס sW * /H0\lm.HKsPʲҀ,;oE{z t2Y-hR}\`I"PP(ִndcҵ[-mhgRLH%Fo;i{SaqՏQ!.$i""63 ĂDUlsv#bw V'=}HYmSOZPɗ~~-AH$)7ɟ0nebK>`#z]±E4Ж ΨqP*Sma; _;5ko#ZMG̣Ŧ4) 7sQ{2D<cGj P!{HOTF ƄI0L6EXz69X;`i4`Op(2+6:pzҊTL n#S'S{wA52GUn9&!IY#!}MXhT!<Hլ5c#digsJe qs3E x~uYIF8IDW(u$7}g$d7J`VW1gkir unTTė`pkf8, b95ij&KRVd=`G]ji2=kۿpR~Ke {LRH%SC@W/*05-E}2)MPJTcdj A{USݒ(TJXlUO2}{Q4/'s]1ޥÞ1\s 7=kV,J  o{ %ر0LNiH "fek̕H̯jϻfj,FeX8k* v ?:n"毡+s Ԃ0[vj,]Jxq'֨E;k ) B]t))y*>ԭ?$&1Y$S$f4B_jS!($CV8V!mքLVrxZ .$<43n/4eb&zwwhht4hj HdX;vK /U[z>Uҁf0GJk)Ę$ݫfU$'8 NsO^T|ԖѶ>ZfF0[4,0ki`mV#L`:ۡjKԶ’lϳ3nn95%]XF;*Q& I" e= Y_ݩ-&I_~?ZųTs:ÿ53IԀ}{mܥNUA|a/d\[)Ы%IqzDV|sG/gaA 曹A80X&5ަ6DUm2ծfHxZnEڅk (5qžrV>Ք{ںygW+*fp0EQ$r*ArH^h?Wo`=- |j#PPTF:RWLx-iM e ~u.JLc#o 9e/-|1H [ \)ޛ*1V~Ҫlͻ]\="9 $/'[J+NøPbcPrCCV#Xri|Ld&C@ȨhV@a<Їj08= ;`:DLGQJCgR&LFGCI"sR!܎T$fC*Q2=jZ)1D8$ҩL{"%Sҋ[Pn-m#phR8 ej&c%@-3ZCr'Vw0ʶwrJ"9[VhѤȠc.qYVl9&r$znV\#ڝMO> vXҝQ&G6<qE Ҵj9364,20 2>+78Dc# aNqPw <}DUz?L[d0F #PpRc"xyZj+q:w;q@cP"ePFM#=Hw"LI=3ғ udP) DPzapFL1!ep\KfNT#]=qQ =+Ҩ΁ |ݍ8 zݜ$m3[ .>k Bc)bTXQIK HlJnsAU#?(DT!ȾzU+PW&~eud3ErG5nzRI_*-*fS;vp}h̥_=je- Q4bAR0 :V.hE; l.b<~*(h2I$cb>f(AKb.:#u#ڤUyNPN$Dže9vڤӶ)N<ԖVmb@; Y'cվ^cg-L;DB07}jxT/1|Rnj["Mfݰ7"{k:Oy]cl;1&Y9 e s1u(C &r,|FOIL3GZ/5瞴F6Vc`} aIL1׵t՛)fJi®y=*:@iăQP-2 2sZZ]g*f5mجc*ZdB֧vnt(wC=kx.nU%bn(Il]jKo' Uke$[l,+F9Wb6i$ƞZ4w,yG ij sIb3t6YܐJkF@,QNÁb?kjg"_ jBZ<=rB-]X;R2@5hW4,OzA]<c5Ov6<[sP9NUNtަ[chaEdQ^Ā;$[=91涬/c*nV/cTK%f6Ve֗nRW3'Us^kf ;kYމYTVVfTa^% {ִ'ȃ섈\gNYxZgyƃ46ȉ7HdHfnV4מd;z +Lel77.(?3)]dW 3{U˵!VDsQ︝WO%#"nÂ-af^j95Z1EKas]/C ֱt{7ix5|Y#"\xG4swe#!{VSx8)EEҧVaA/CYJ7V*DZ2&S>HN:zT匁P5Gǭ+r^Ag6 rqv(%!`r?Js9BX9"3nF }*P4( ϭ;Rg'ar7(pTp8ʖZ]Ero08xE#P;4mi G9,2O9€2|8`~\ óHy# qN剐mj)RP矧'OH!jl)ǩ]: ֚r1-[ 8j36NkR)N}ֹ&uXV g5[TA ""1z=]k $#0;>v*3%ӳ Ԗ Rc*c&&fz[sjӣ'y?\T:c(c;SQ` =Ilj&'?p }znL,pG7Q 桶 @'f} # >ʖ%OABU۴ۚd RFN@+h2 )RG8ld*6V_Q@sԈ&뷰Ȧ$O pFxiѴ8wRĸܫqD>uU_4=kU+kG(/nKwQW$d, S5d )GʩREZK2H/,%TcQܷ9kᗽw>Bj'0+<.uD2oAz' ~_ʴ34tYq]壙!Rx@p1 IU^Id)$+n: #3&t5!=Ue;S!n?A{Q`-DY=AVӝ_̀q֕A qqIT.٭[̀Nxib{MK)p.`+flLι$S*ۙ7$^bYsү5ҘUI_Q'm tۛ= ot9n ,9Е v67ܫ T7vZO!ס@[=jD-Yn{''Sm-o:AB\{N;P+y弓8&+/WckJ H$~Y1YMNFwuO'TfZ9Kr\ gcs+ 7*$Q3phǦa洒3Rc_\cspj zɣ =H'SHPz9ڣ8NJ>)Xw!i˜KS*U@6A!O^io/*yab%A4ziGX^ǽ:BpWޓe-T=/< d #ڤ-x92zb~C4ˀ*jhXH p Ejy~tl1ix)sjPG)88 ܟ\RYQ-$qADNqj yJf 4IpIU$R? zbӏOZaKaP좴74U; G'c.hm$:վb9}idgޡR"k[*eIHlsSkCl5é>e> etj 0#Lzo4&9sHd$1<ܚ+e`5<3{H gKca* 9pG;H`"1azgi#I7p&2*1!-NGz@DT,稦0``Df+=)(ы%Vi¨Er_mZ:eĹ'Kc*?:i-F2pbRr.ILW|v8SޠH:UW+K >;5Ii W?0>a gk@hqWd* =giqjڹ*hfvn{K*(fJlLKV'0Wt(BCZDۆ 0nZ>GG8mr?Jܤ>[ɚ#TҔ,6yGeLU'ub&T99i Q%bRy[rh\IZIPG9<4HxmүȤ`THˊ fNxHmDRtdn!n>B=F){Wۮ(݅: ܲҒӓi3,+^N9cұ5=F3/ٹ9N*쉾- ҵRDK]T)WzxQX_O{9i U9M8z22E5f_ޫUDǯAInMVP=M,{ 0҉!\`H}:{#\,hZh ׭?3cj*}sޣv+&q S)랔M$|!y&]m c#BT:hNQz@H@$i8䁟R NQ#I=)0"8STa4FX^n%6^b1>8HY*!4e=qHSqk1֤ w m!p!a* dRP}88p9 >P:@5ŒfV% u8fG!@[Vz.1RUG|U9Wp9jj qH-VmRc#Rۺcn.>#ڕ~c=I*^1zuK sj$LL1R 3PZŷڙ9 `@V\ZۃϽis7nCj܌* RW!k)s0~7qL ~4ENv:5FQ)ԯ"zRPcn&2!};Q@A{sQNF>!P6*9#$2鐒!T*vG"b0djP94#ǂ4 aS4lcFjܷ˰ xܫ7Gv>ahqIuE[O"Wb m#B)f L6 S^\M&"՗p1]֖֐R%CMq&6{U=[p*FZKa˚5I!!֛j.no>W"Z&/*YSSIn1j6՗CDTh<[F(c-JAIĎe"$bj ۴d6g]ZS"*Α6K+5$zIW'WT;ޢ)SefEV٢~S [ܲU>09Di֜YޥV|}G;RR1ZVz{CKl ȫ> $朞rpw0u]`#yu5WA7;Tw6E#0;CcX}jYͻi. &NX{ViG1e |5Z"C,M*Ͷ'#KBǺ+$2N{HDRx]$ʐeV#}>. y{4T c4@Eexchd11`ZbXwH%v$~CHƐ#U Q)!4.BqO4RڨD@ ޝ Hn2r#7s֢x ~jDcU\})˅Q늖Q(Tq$a)b8%$˒9+$-U`ĬqOQMp2qAoW0`Ǽ@0= B dj#84R:֣u>1rM@Px|q݃l3kJu(@j"'st萒qAPyNOZ#2 "rÓCQ7rIH8^) ex=i+ 8Љ l\}Z*-7ʹdVrEEt횙ddZ3AwRX@3e]Ds}G(xm `+M3ҒR<ԩ!uudS,' r{Ysǎ4D(GC*CRV0 WQ|pzg֮$.,H8cɢ*Ij })B^TknqJFJ9&9Boc?P1lIpH^>{^v^ ?S[<R%d5VFAG-YV )R> Ly[uHVܳ0ϧpwK{rN ډ>Ej_vG ej;Q,ZRx1 8!m r98(U.$*ۉ mǭ7H`2:)0`0$6.0yFd~LI#ȍ܅Z3!<FzR|r)  =yxNFH°zM964pJdj[ }"vGnJ5:jikw$n&@*gM;ƙcYQ6p#Ψ#KI8]"8 itg*:;pF;8TAV,_=)T5 vt &a{GPN5$V2FWުvqV}TLS!4}p1[Y{B/ $hr0;ۆKgm3wͬknLhW]3GޣtɠwygS"lzRarn:5ƽb LXDr j| RWW/cu26[ӥ=.n`>m=iR$y?jnBrF?2EhZ¡p Ȇi O9UؔQքD2'!bG5, R?(br*~ℂ⛉,V$9(=v)7秭Xirʹ޲=A*RNO*99@*HE,1*aRsc8I2) sbSO @C9JHF9\GR0BCIf(VdfBcJ7#n9㑊i\FUr0qֺ{(y qZ6W-jC̳]3њj.ŘHqޫOo| XBc69ϭFi@,P cҗdw!})X.Dg` ӵM%F} ehU|⬣|PDR9Br{U[;p"\nY2!aaZϖ܀{ S+-Ү Re $_j~0דNۊvrpEO`ZH2څq댟œagirh0@ &Ojl"$`qTn*H#jXc+2+qNV*RcDH#GoZ8\ֲŭYfKuZl s,Q~rN+ч6m5]Ukz`pEkЋ=S~$5&HQOoqOllV>Y/R*_k?00 j&,ب)3HcX 6'cb*22: >E]44;39ej=UVܩy`ޝ%gC 6̊6£qyNd t,&1LHp7u 䚞宑9ZwIJB[i[g_H+;&=$$x$o_[e ]JJVcܹ$̻&=}y&!C1lNx\ckMJ$B ᏠT-f8[ y<XK$Q$7z=BŸo{ǵ7`7zD+My\["'cVd1=IʒuIcʿ#X1tn*lV`${vs^AYKA"]x‚e{Пz܎](*/4C7ԯk)\`g ""Lr$FF_#?R]G+y,09:jlYLjXH212zѾ[iå;9x'"HKrb21Lv5Đň;Zt77 99N5m&"4 :Iq[$>Sq"J' Ei,'U-:y^RI\g8Wu*&L!XnT6bߖr;)zUBwh<a5\] 0V}G[KH';$|G=qU7"e<*l؎W2)%ODd>aP8Trj$nw}hb&O(. c!PV1rjU篡hw,rq@qCOBrǎY>_C aqoȬHT , G8$.q[FY"%GZL1z5ss8eAQ7X^2W*.y%d$c\ nՍn^&2\Rݖ덠tn6D'vfHF8dhK c=;֝$(= MNō4cڴdvEWTaJF:p\-PBYwQ`ddt3B0:)Ԋ@suJE\.͞՘5YmFTgҧ)zZqPx9ݚ{ӑUE j0Ǹ=jШL4kc"xxp{S i0S"Q$M!2;jOh+.#99*!2^3~C8̋oʎj};yr{WD]7wqP#\cj(i ' =j"<sGuqERՕr&J[eb:Q4\d1,1%E"+r bn Pp\e96鼶VS͞jh=ZeFO t2D !h=*̍F\Zh";Tj`tGxrWSb"|S7 dQ@H횲0 ubYTK4R  zSa%7#*zbiEN©ƌHS(*&Y@$g~D7=F+NaϦpSq!4`ٟ e9>nêZjO8Y#zBeܛ~ev!Nn>c֦#I#;%C9]K<{)oX~H7RB}r wcs&iZR kг@Ь{!F=)fH1P;j8ŇWW2WC)ICܹ$߸dPK{ReE7FP$U6R$Ay"6Ԑ7>@2i nE'*0W["^Lvr#\tݩtYn*2U2w0&w;t+4~d&Q5I,#8qƵV% 2X[1&>&YED;n O (6ᱞ=igs3-@id@T1es>AiWU8\nsRaŚeD5|T66-u-JK b֣XNkKV-"bBq=p}֢C .wH;G34 LIjy*ϔHHUHWFÆ9 lj,A)Yq q?*k030HzGl9 h ' v5ӎwJܟjX7XLOR7F+PM5!7Hv5}dFpi$2/Tх j5ox-*`Kq{WE0Rƚtv65eֹdt$"Fd;NqP0$XPFVm cyU B"_EO^cXKz1Cmp _jr8)jQBF>1ɮaF gҚIܹH =)QKBDPҩ]LɱO͎}Je h֝I LR4qw(PþҬ:Jo(cj@T`;Ӓ?R]r iͽ7۳ۃLWg 06WqTdV\ґ2dLGI)y rJo֣oIKV,U隨fR?r0}O@CR%Xݻ2 ` FH*zwEa!mB69v wƜq |SAujh F$pdҪNNv.IRѢ-k'?t$Ry;A"lWK(O!hdbe$%Omw)f99'Ҽ>JP3[JUc'*?.&|.ĸ=ѱu=,+pdb:E|n1?:&WFp۴Ig&$i#~jȒڰŋdy&@Uعв9?O-'kXa*=)-ʰeFhJړb(3I0ʠIFϾjq JlQ!lb,DZ_֔@Il6ZKRcR ڣʤy^3*D2F6jl=X74h6>Jnj)gn!sOhl]ZCBFĹ`WQ%An95H*y{qy&zMlU p*ezu5du3P6<ݾo,2Jŝ ?jEt "<06p6<yN0T.O}ơ,V/&]5ܜh$;X{rq ,A§5h m;7RWoXvj%G/(ʎF/sŠK6vcTt4'HW#{W=-ϱ$]:m*E5л#nr5 n9b+6]({$h ?£{<,Ͳ4$KʮAё"y*8 0JN#БF8QpVg㊳ڈ$ƊHX"V;'#54rLl=Kla'{R$L1I$SJ8 .F8ȩ5)lߊZ`qGwC8q 1vjlls?*A+4.S-Y+QH!q=KFdz Q%#Y{T'ʭy"$BX}I8$Υ7 #"Yl_1$>H~hRR')HD5ټiUlAIh6Ʌǜs),yEvʰDxF=~aCzbĄʀ_ZR"n9#9ڠE3JdP݄Dm6Ɩ\)_@kns+qޟ#|(ojov[ГGa$-u-ȱ$}kTȖ:tl;8UDKnZ<UYK¯=[ލWRr\}\j#m#Yǵ0 ^Tw&l. : IGzdޒXqN0)0:-[DR乘sS d_]y-{r*M` $'u/ROV4QGz!N}5NZvSmsWD>-H ^D! ['lpiM⅕щ h,4IH4y~Ty#dpjDd vJo t23; @?"?J&#˄+g%zg8C, q<3nF sQI =>G$v"% Dj6'-Ufg[H94: 1+/*rARI%3 **DeMv  K1:C/*0_1dRe- ғUv Ojg62kRP-,Q}Jz u{MU(ҮAw,x63l$r-ĊQFC3pSZXW$uaU^f ~R_$*n;d&,+>xbr 1i=q?Zl`PF?#ҴnՆ ?:m3 ܷ :8ˁe?6p)7v1H8y>V`YHBdMh=7鞕HMӔqUES y⩎$grFBC24qޣDهj|W$qڨHavi;1})&/)%$眩:* 3 xU" BSR3<CH6,qM6CvJ[ V9=7$Y9nW`8J"b<3(ڃC}Õ;xxd(c^wE9 %tr*N>ayIP[jچMOު=IHyO_PHY$%v N3n$*A!\Ґ!͈;768K8P qO;.`uS.GsP*I==hE;X1ӵgln:Zܾ m'$" ړOr\\&7HdShӐ 1Ӯ;KX?#5a$U'e'eld!UGBoLĨ2TgԓZMgr,WN:J%ԭ$o|l m[c%W:zik4h\A7.x J$M(V(z׊I5 x"yjٺ`Ϊǧ&h1X .0I=*ꃲLj:fKbLL:y֥-d[L XO}P3%>m3$g҆Alxp&Fن֒m"gͭJ8vrl n~ҫIμpwjٝ6IdryjgHųRˌsDsDnE[L@#Be')mu-ķG ԃ* g=sDY mlyE<ɵNJU}@@<==$#UG o#AԞ"nv0+3Bت!$sH)} cO" ւw]buY6Cp,Ѐ$gvJCdr°֥鑣^~ήp|i;f*)(rqӵ%BLU ;=ٷoz&dBs.H`UxN0j-̮m?5ʄޣSUq- o%E]G׭Pr#UmUĎ1p?ʙh<ܫ)ʟ Af5f;dgrF?JKR[ N @Qb"" OtQ̓lHP|sӥ1ӽ&0F(ՠa̚Dgo\S%Av9 tb"ED1ZQp)a! yS[I;9S!":ړz!.>Jg_5\ҥ;[{=f+;#l( |ozk1\Oc4a@=Jjʫcˌ~qWlm.iM#?Q5#s=~;I>κcΔPNl:8M2n幕~e*[''ur^Lpڊ0/|$tf(.U !-GcU^i.ʖ ; ܀ j(РIpJ92O1+Ve1\nAZ0ؕk7cg4Eu1u>\`Y'=z ڳǦx BOIД8-EmjX5s}3W>ßƩ}-|h ~,s&wzbC!HKtUEEyd ρ=)x ڭ$*{R;9۸`zeZ#%E5}|^TjIi4ih## 95B?.*R&7'$)|{QO#b,H.Z9Lv6}( ;;[?*YWW=ԃOCC$2)->/ԘFG72.~cQv+CR,c=֢36Jn잢 FFΠvNh#ԈFg!r9-l ϔ =L]Ո;)0bsM>r=x=XApۮ{~T^s鱑7?xIeQ c/d+l?: ǘ~cj[ 3Hs( _iW{c=;݉EXAOjdIx|p2@c! (<۹䁕玂cH$4DQJMB~U7gWБn߰y'$C@z vHq"2T8U-S.`z:m۬m)0@볦OOҠOPwmP:h8qXK) .QԎ:0JaO,}Mgo(o6|IWfɪA<<嶎#ʠY #RWs`ͦ."EFSpsS'̪U 9,8 s"ZO ͻz$Ј+ !]Ҫ̓w,28?_Z)kd5܃Hay6~n: qV--’%<3޴M4+^A$VF@8?Zϳ8`ӌ?K{yP8g'ڴ,?n|1*|ۊ\:ik-3VF@.dU@?Q' [TXE_۽Q*D+AjԬ[ijØZ0p!$j֒"<:ƖrK0۰F3邻*%'ʲAFEE6r /E&h*#䁏_JiD*)U9")B،09 ˚ieJc=9UOv2we=ˈr;I,2LWQW+>kc<"62 ?*P-hKǷt52xT;cHdf?yd58&HmsJ*DHm$r-HJ| !g$NF28H>Ex hJ~@ F\I!h"{(r8ӽ ϒXdUשu-h3K8\sڸ:-͙vʣiPC1; ^02l+ǹ9#5iY]ILދnMQ,TѷOG0ђ]T}GqM"nd̊ܳzUav#cމ=uXtCտ1az[ ŔAld: uΞ`3kb*$g*<6׽)Gry QPn˽bʹ9?:Vc 0<svAy;{JNY̑sw'8>w9Oƥ̶-yb xMN;Yc.pNO?ϊw.[\^R8YjRrO]qoBY3zg&$rP9YWwB4-%Ͷ5,$?Sm-,\THcVfbϖdC?Y}.Y>*Yl} ޠ9*-R33dg.ezH>˙#[hㅋm7ڞ[2K;U! pixWgyveΤvKHx=dLjm$\O(bgd2`㞙z$.BqOrvTQF"{ĜsLiX=Q:tS^fMe=;:H-b:{I1XJ3|о$Q1G"v-IlnC?Y2#|۸qȤިlѲ^ߗ[Au#">YN++h"I&[lNo#2nqOng3;Z_ <ĐO @e\OEDn2XZ;GJ63[8 Lo/dA–qOAűo,oj#䤌; D ۊ`D7$T,: };ƨȢ(Pb@#ۚ[ܴqnvM-J@v$q2W< #-r1޴<G:GP!uf &J)8.zCь8a֩ۮQLt68j̈a~AOƘK Tg*A.D s#eR289BDWoYA R"zR[7No:LH矨bZ1mO9[[hFIPgf{>Бw"\|DI# #S.BHS}*5.eW *'Ɂϡ Wrʲ7\M]?v]{Uۆ U2\x^1}c3ʡ7MU%@YBlJOp#yKI#+3aQGlDZI. aGbՆ4{ "sTst Wb}KPl-ąlQ4+".1!F7E(K?Js;''J7d)9g :L-]ع!ǡ8V9y[XVw^Z*zRǃ3NG:Q"I/c+M@1d άܔhOV9xy9ZbDČϽ$ h(ʐV&w.ˁ.UIUXasYǵ% @|WhzzL]Ƨ,rH$1`GNKftI'2ܬ0b8$5o אGg?x~HHzqɥqXHr3ԞEEyp.&u19T*pE>Qϕ=KOQc5ziVT$r-Z ɻp8ޥĨ>UU?$]4aC.:g~CH>)%\ xpNK=(@ 0,HΎ}@K~ʦ;9 Kb3MY<ٙJ_튚} c=J#V #~f0:B̢/9qP͢جt%{ԺAlܝKF‡->S9A9>Ok.ȼcϭ$s1u#dnSuf6+U1t$}ja&,bEBJpsR@no~NptNy 2:Ҡve.X mG}ޟR Tж%[TR;:L%`dSZ rS".&K; R{`W3޿ʳx$~ ok\ԕDFvd$~D&I@N7l8WH%̖CasRB1SU$^liCq*{qR[ʲPqҥ`h(2W;3TM$@1e8'.U1G&4[dcڣkkm)0{{~4+%5WC鎇>yѼneX@tV&1y{l7;yx[ jy ISaC6 X?J @C"Ҧ@(@>_UKKdIB\6A=?ɭܭ%0f^dOg#z:`Kt rXC6@wӞkhKxHP2ހO[vcoBFs?CPʩ$ pqbh㜸M~$|NKC 7 〾4!{[[dֆƵ#{\jm<Ycxj}ڭʵV 8j\flVY7"e>'q.@j:c1UXu)fd{ L VNQrX)8a$"Oln]VP1M =gv w0*28'Җ촴{c@_0YI'Us2ǐo~rF~gj H184HU/dKvb:~50Ɉ6F{҆5HrF1#ؤPN]ijLd}G򨣸+ @qN,L>|O"#B l}jb1+ 22DES$G|\rpj!'~ӡ4L#41c|+Fy5Ռd\>#QM݌d[.TaT5d/>O$g)$cS oJiq_5n8'٢-@cx A$oZ\b.O^R/U0i|-eU rmJYHeTsW,b x"I# y5-ͪ2Z4gr)$s8wqYl#?l8( A;iX)R\!i&1*+2G+A ܧҵЫ[ qM/0!?JmҿIFW6vzU0pp SV,d yHR>ҝ'O͂x@݉:q0"IuVxڂI1sʳhw4lQ#;wt=F?JeFsUldqi0XqK,A_U/!ۻ+߂O_sk' /*#ֳR*Z|!kxy? \Ւ).f Ì9U7tGo4^r@8yQ۠#x h[BWPY84L,34dsd#MRh^BX?ҏ4.;R{hePrAoZ!f92.@rGB&Hcl'}ߘ"9OP{|Uh `$ 2I$v#/* c4$y,4lq߷򥽜<< 8d[^f~\fv\ ~xX ;5٘9`pC }}pR:G>՟P! N>pYa'8TČ*x?NBdP #WWe jwyh8UrehA95N`7,6+7@ozG.3jFLJ)֫s9ǽgx3,֧l)TRG˜: ALD1bQR2>=)n"J԰֛#ǸdwiY&DP)%KvĠ+H 1ҤeiIlqRxNGka1N}}gݴG$J 4݌ YJǤ#BV2Iؒe\c1U.m$s@Ϩ_?`^˸VBAp=4[IdדE Dy9Mj.h Ы$O?8F ľP%¿̣N=8R`}JEPFϙlzR+',BG_Ц1=҆R`6*,6s1RBC|h@!Ԣ%ٓs it0@š b3?LVZ%r#O)D!M:9ZIHGqW]rrsR%[QKJU{N3;[ +y}.Djx 9nW! qmndl+9>摣 |{T8YU5VYF|O{ R҄vܓ֓WUErBY*&_dͼ*2gVHŊmIgaĞ穧v;b?­j\5HN'Ji^10;|!A@IiaU6k?͒3ҮYۇ ¦N*B/,YJ2&sziY%ȶvAI"ysqG[p?2>b/2 !`q5බ@O'ieޮʡVFC^sKKɻp<F<ĸ$dpkB.6[ ǥeqRLp噆 IFLX|` I[3P2!$h Ļ=':n%Z+23==Vo[`N;{!nVtBG^f 5evY eƖwBO9}Dʫ109:tiqD^H8h{sm$g2֪vQ_.EߘY݈{ A%Jz3C1;*!m[}$Aک@n)r~kg20Wn#hغ:|= v !}꜂;kUmȇhmwIw[y fY#Rw9 bdk{P;]# ܫ2(LYM܌~9'քwHH@sdP*in*~oC^]'VR }EpYnO݌~U(p|9T݀ۨ:E"Ht(."pJ:/_J#ޝlpT5,2 ;zsje@V8Oy@)j 9<5dHrIN[rbu=ʷ @E]>b}ihl3:t5S8T>8F6,1t㓟i7eqa׾\f+ ۵ q) =;oziGسʧ$cQ(I&VEg{㜀pֶOA=.#Ye< CQ^Ŀi2y4W9n*7VG R-H򰄓rFE>̾\aF YhR ,B0Vl/=P5U0mzӢB[_cUñ#8ߞ~oʬ<7:V)!8֜6d48p4lF'24E%pBQ+ALY՗$yKu'dg>+9'&>#RXUnB L~PT{ٷyxa ˀޚ6ig@R?uټi© 5KSo.epIL HW|gJ̉nF7H@щę\QZIb{I"drHqNc<g-rI]]}muC55# w |# F~J6+Fd|*cVefY, =v% $sSNIs2sOk)n2hb (qt&Xb؏9Tl u)(.m‡P07Td{Ie;1;e23nyX} X"eBw5 ZI>i.#5Q/Wr'bUsSαDz?©,4K=B)ƸP$]^?˥BVє@G;.MWFeCwCQ- W\=>;2$?3űش[A^*[MYJu#=i4Kdl0=ZWvU>ƩS%lM֚trmޒ\l`{V~, CqH꿇/wat$AK(zpy"G7e G?qGK_э:_ciKoe)'h/81Lvҿx4(|Ϝ.Z;icf7 FNMN!+ث%E" NG:cƴa{?,p?*i{r xPwye)7f `SjXɮd`5f$Lw6a2x:cG$K~iԓ)|֔ˎ~SW'78$Ww70d V!ޙD9os+De̝FIY~EgM2vNK7(C&ǜ1vwqm:vVnVI$rp+V50р WAտ0Z&@oᩩإܢ2K81+m'[Ɠ@K:ڬDq~uaiaԌh$3AO:吪^acه@}S-sq=qޓCW@Ӥ3u>⫠S&,eI,>R837EJ(0vݧq=~3IŽȀ\I,^S$ϾN0q'ޥt#RFҧʐHKBa0w֣h$ijv=AUt9@#U%ae.ђp\q,HeVdrkqҢ#au V@0u? Nz=IG}0TXNJK wЙ (^\eא;2W{3s\$NN 9xnz&$G{+֩䱕mIdzkjRWdi FnSqs4BnDwnq4(L`c8j8D7lt9Fb{@v A֫BJBw%h[ʻ9*Z_: Y L''Ts:K7kPYXHbd 篰hӤм /޶cCfVWcS ]+'e9 kҼh8ΓqYG)lhj;ƿ!`S8îi9;./wVS3w'1_0#O oAǨ*$[3G̅PÊpW<`8Zj@deNJA㚦[}3m6xKaBVh,`@w*LRX^n*$)YTLV'[xvuEX$s6p;,Vq2ޞa_9j1GX3Je' o\]GqġFWEz֪+@$Mh3n1\QN{Vlc©8?URyörX;UGMrh p<02Tpq$ldc [N*H{'kg *FX$kLaUi{U+:12QyFT kh 8TWFMIb7Ϙr:r*gA!8oڈRܣwm$ !O&kP=1F*ޗ/p 8=Gy#T s֬IlV9@@ñ[bUx?JvBZ$ ANiȊSg?yqFo97c֎Qgrr5r cdv?Jr݂:0h[X,Q1fc9^y]іfy_m3=R52DVpOh.L֫f@˱?1!.H=9Ҹ'ͨX+X"7Cjƫn$%Lei(߰ިj^M`H,̽R*ƾl  \a(#[8DSeQSyG-v@ ^a"[9#Ty%C85i'v3RVe-TV8:+ dMjh!Cc?2%c*%ހZ5~\;p M}XTa,,O!Џ`|UI;ppud`(4%w# !> :z֠%TK\#CNOTr楫nn[Uf[R+tܸ6]1&J ߝZAk8}o\V-#-4?o >Zf\ O_Jw ʗrI>^O >zm<֐6BWV`L˿؈enIyVN/,V;ɚ>n(I2#drnadU%9vcЎ]J'}:UݎD݋w>زqOƦF76wZ)tC+O$pp2ŏ -k;˹A}.T-˺ɏ zS7-wP&̨;VͤT]Q8{4UXbr !'%UODc7I: Xu4C,KFcی&!$N0v\ 4qm<cZx ,52Fn717=< +jy֍XOlU;V$ Yi37W9¯Rf_VH pַhL5+`(e<#k+,U=~ޥC7H^/uڹn!?\ eFt*%HIS8ڲ<~tk5[|2܃9p۫\!Lu'>{2O5Z! '?xT-Rq3 |ws}EucD3f$&$` :4K):OjvI s2+=9 KqUY(''{ B'dyV12A9R?^n`@Dm9z>#]aH+8MuLg7Tn:Glp8Ɏ%[Mms+~b+eHu +d j-IE˷O By,!b9PYՓDCҶ}p3S)#(`u񊉷`IVL#nރִsp}1tLGM>T,Ծ An+].G8=$/fD #u -V921RZd?p9N?:ՌOk FƮ&_!ha 3=EdV/$6ql 7. $s^G>bG|5Q[wgR@^0idnX'lMTGk+so_m.XXXf?@\hd 0~էT!-p8?>W(䃃UȄCf-d?J4IvLGNmv>T] !r?$fhjqkb:\\IN2jԑ%gFcf>SMrL۩J*= (?zzB#eؼV|qօ+ls(YF96v 9M r!k9v'r۲,d4|G5OaysV%poT~=CfRI]!@?1*oZ%~cnFL+d$`sڟq3ˀF(n+`?'TW6`0֑KDBxӭ%gp-Z]rI!Ѽ5qm IcD$82F 쥲:,qG :{-ȅAU-P$x*5ns,GTAZd4񓜞l2q4r UXg-AB.ӓ}N+D&Isnrگ}g[gp7nSV^1 Z*?49 oN=&ľY f4 PssMieHªU@*+]<" TY!D<#޳/ܡ+ˁKF i̊cPEYJV9;\E cQYY QY>%(Yj#O9aI0ý]5yԆ]>;Vo5Տ-'jbǡ\w5R;"5X昝dS٣eF#/ՀG)+]H<,s2<0 n91Fږ*i#b:ҪYxр^O͐98&dT۬pB \cPc3|ڔb Tvq#J&ITMjQq!ך&-5K域tI0B nlSm+4WG;F|WzzSnwK'8rϵ8&WBYĂE/n~~:Wo 1@p:u+C2a073;K䵺F?>x99E)6Į0*hx,7bE,AڲU[ Oxǿҵ,/`yH6Hd=#Y6c7>[@+Z]ٙ\p%mQd >cvm4JZ؈]pZҖ(rA5[+T?J[g*ۻx%ŖȔ)=x2QmI5 x+B>{f3?kYh+hbۣ"w]HBDhcAeRG֗{m;leͿ!E I`, 6OPxeSY-j󘥉 ~Tkjd]#'AVv,Yc^q܇*y9C\ 0ӨZ{$Ven*gۢaXr?gђ{{WճTs,k$ͳt*8U2y:uObe#t 3FoZMC'_ִRWm 1'=\zj,:g~kVM^iҐDz2i-dH }gof{pUW=Tӵ2#[_`UzFo+ubpSYi4RVl+|-nϴoVr1"HABsjn@۰$#Icñ?[XHcNNzM\4+BYƖU2#g4ƸaF)(-Tɰq{0|U|S9vjEK*c( NjxfEFuIGPXft`zHePw֥īGe${TX "0Q u=YH ~U=h.[+a{*d``ncӊCeH,A>YtP/bhܜlJ[ MB4-SWAw"7 RG?lݞ 뢎L#9MYy<0"1$̢~ħɽ1S ?cܻzSⲎ= zOhCkz| mInؐ=u="+l%Ա1fL#$Y+ո=8Ju #DŽ'8$FR9є")QW9#og0~u{=ZUO?Kk{?-pҜ9 %v`AƪΩi3"NyUY؞ūR-)* |ޮ ثcQ\$m,G a21WbY\]+!8ܯ+Hfm Xī$vd\ FEt+rB%-hbC+ )"صl-WE WPSl +M3¢`Q]U vlkDN&78%8 Ϸ72[D|U=Xk]H8<_ 7֤3upciPԀ{wi %Oon&Ewap0X!{TfR"N71=NjG%íQPRߛh.+$.!³&`umcHV#Qjc+2(U~?OZk;\w$ 6̀a  ӬϠ"py3DY%bG'Ty ƪdRpH1U'vGIy=WQYA]3װ?Z# Hۍ@"2Ө99+F[Co4̿mB2F@ҳ]弍~6}Z;] "ByY,OM{[3H$|dڶK4Ba * 8і8Z,KogWc=:C5ܩa m\`6{`K[($M6"S OP?Z$'I79+9i\Nln0>Y#ӏϽVkwm$  g˨ց 4 m鹏9'ވbI.}8;c]ƶ"]%H){_"u-o0<(PWل6 16ڲReUtszq'v>(gBTl˳*~1 %e-!,Twcs7cUͩ+EI<8Yd>u%-DBP@%Xͷdas?jqZ4>QPbʮ$Qyw>V5oqm [X0*9S{ui\_>Qb^5i{D&,1 }3> Uk#t@cM!ml^ǒd#nV-CCf!$i},I*F$G/8#gkBb}d ]طǀA~X4ыfȫ(8#ۚs`cIouPB(Um[!F'`K4B)?QjrH|}+hȗjs[FHx'HL'ӣg'xiۮj:t-R>l!aH`7~A4[VfZXw,wc #`,c$O*!)!AI0DFC#ๆQwSD).Kȱy`ހy!m90#Zgb!\)'R jɴ;>}I`K`3ڥY]T!88w+A@i0ҎPшU|sVܕ]ZĪ|q+<;U}G+QQ[`zE;^]!l\ K+Mc քˎ*3 cYn;}WlYA'f`7S5숭!ݜemF̞l(+bI[79Wdb, H؄$.4S6W- H 6;~y?VLi?bFzsu.kfj_ޤe+$F dX9{GHʥ#K3cヌ=;Vͥ $~X'ߏ]G- <>?ץcXpP&" o zfw\ZdN0IiKMq_ lf;YHeE 5&-DV>\jkۆeX7SV7k~^g$9jH˔ ӿ'cy$Ɵrۻ<_;p{zf' Fauջlm%Z3Kj̬B()JPkDpcn=f @ckZb}0cSb:EGmj'%Uژ;6U[t'ikf9(፟Szs2#?xc򫃴Hn<2y  ?EbZh9Fvok7&Mo3D;p֡c>P(IڰZ0BR$O|Mm8>7ZKV/rOby9+6<`CqB\!3)Uh;Vo%fUc>$kT`g=(g涱s({{ c2M뎤犩[!j[Q T$e++zWM[R{ OsY*]BέGjf]5UpHeK;y/2*Sl{YgfEerr1ӃIue(0?KBZ\ 9bEus!-9sSy"o,}`cgDh}'U(!-# L].X65SI El PH3<Jk"|D,X[P(]Jp^}txmMQYX:^L6yr{ &Г&7 ?/ZmΦU 6>9iWkC#XPtUݔ2dc5E$[,tǝ,?(Zؖ8 x?kuz%NUvx7mc=sZZţ/+ƹa=?Sz Wf'i eXe88ұʊZ\Ė JF0?:!)L|.-n6KfXliP-vVV#ٳJ?RERb`TA Fՙƙntv^7؈QKn'9 `!Y|p,=k;OvXv--P> Vey/f<r:&/]B)h!gk[e9[l6K@>)Jw`ݍULgR\[ibgu tum9b=$7R'@)_u[K,f~ֻ !Gf##*Lc槝'a8\ַtF݂wgkA#˗'Lts#s1O5?E(dMp-Q֖Nz2W8 3tKD-m3n oLՍF=Ení67/XV9[Ӧ>Z*Fr~;QJK\dcV{a*ޤŋx4vivnvbnZ;[4Fsdxfi+, 7܌+NJq4y<*<*oeOjzܧl/wu' X/0O9j Xt3 ϸk $zʦc,3$mdQ,rwұIA\Jf 9d{fryƇt\[)Ad18RJZ60 pZl1dw.r13Tvp@RvD[vtF#2!a+9++Vm]Lu#ڴĸ3Θ$GSQ\]F[@F[u񦯓u1ՑwARMs6*1|NJY,[IG˜Opo] ϑ11Iuvǝ 'J֝ `4R]BۄA?J 0H]'YI;\-rh�#Qjf@B0֑KQyd3`0PPlrmwrz$V"b[-e Vg Zo՗d5c@8fh5(b)nJXcwF̮suU5 -ReN &ygw"f;|,D\C;H?Z/ AmjK F,jkkZpp&=.62K Hl `ՙ.>Ʀ@mtִп3~S$v`n7^~J9<SLlMzpM {-= pKvCgX'AʆL@t Ҽ?2F8 Wh_*I!GL^x; r yI:M,OJJjA|ZHmO#HRme4g0;CvnĐC!Aʆ?t@vSTI4IKxے -Ginѳ[8=$d҉AR4Icަkx`͘a5&w2<ϳe |mXG:ɏq:թ]nT՚IT;!qsTi21p ³M4Falf8\u~M0r\m}腒fd&pGК3H ù9zTWwEܝsڱXD x(~kqMpd1F7ɐ08P))L bO~kXKAq,k:ЫY W$0YTNıDPxPy%{n%Yd UOYxI[R͒یQunRE|eX֮HM|)m]g#EVEc޴bԒ),y0ʭ{ڐ qD ֗5#8`R/!\z$L{tp2nRY̑+Z|yh߼CVlcI;O#,n=:N[v"rXsDˋKxpzβV&=(nIzLM!N:Kxs LEpdI-)"k{VeYCJQLK}Eb)r}yOj\3 ǵr^V-lOwʁԴmyOE@ ڄ8OPY%naޅRE=Zoz ؆8 x=wR 6\qjeЊX9#-=iHuH+҇U8''$LQ$u?G,,,8E$5OK-FdnRUo-3̲fz~5U7 ]K* Kr-cJz{ӷi6^.nm29C{֛)q\GG۽t(*Z7Hu,-z,c'*}HESP]yt &_ Yͥ&_KZ5ɘ Tvƣah%r'8犕4Wc}*Cn]@sU m#(|px'w**843~29w +yJSZV:l9_8 ZUۖ,]@?S:H]i,^kp@wY`a*xi5ӨЙQՓ}sO+exF oǥm-VnJCHNs§X$P'ΡTi 119l{fS2Tnڼ)G[іbz- A|.pr힧گj[tu9f<^kʼn{BVQicjcBq1z[23T]M>'[- 9$C&vFy f&h,QHT G(Lwai/Iy`Q+o7%̋T.6iIԈx݂Fzv/ٮmL@bTczf彉Imo5AOb@\j6W#SDMCp{kwa{-8 I,,W?8C4v4x/@\ՑRC}s#~BX>?Od1nz<DNn/ <6ұ,\s6/Ӵ)I?:,(TƥCK[۬ڜQ.pƪ~hlm&G[ t?vYh NnYUcV[63W<0ҹdۑ+RYwDm_Jr۾0ے,~eck\"!牁 ۚ*RW &a@ù^\2~NpKŽ:[I*cLU7MJ~-[2щyx~[t( ->qm"gJΤ2f'(=ϥcs%ǙflKy|Ccr0pkh]V)>if`HzE=KwK.+`zT7Pwd6j P ZOAY7_ڳ%oNrqQmWXLĊi+nmg1*zd Ԗu,129wUI NzQ&Ӡ֦[+hNkEpdGOа)jVqބ]=GlՈȖ8@qcd쑣 ՠN!fff9s֤ݢhgJE+S5&W7*lܨF3 }4l&Ӳ4ndI0{SVRȎ-/EI MԊj0t `z:)泒ݥ@?BrSLM5YimQL䎀Ҫ]J3Fֺjj*QrnUZ-FG5iZ73#.JMYL;X(MrWV-M{rcPsVg(mJC]I\[ml䑔3U)v0ރPOJ^qP|RkILNWpeQ,!9u1WL>9b2"I$b[jH $ jn ' J64mƝsn~q]l1^mO)K=VB0'zTqy# Řay*+;^sxu]p?*i6;'WdC,*4 ⮁jWt44\XLҴl!rvV['Uv;=Of,cLvc'YEP  fic󬭥,Ѝ䅣 y5y6D&0 1ڳZ#4 M{߳tv+WbAKud3mήRzYۋ+D+#*H sֲ[و[:Ln h|ǓVѣ)[KIcRJ,Oʢ%+KK.[uFVUnS["z޹yXV3+7\'үfPb#C(SMi5+aZ4ze0KKNM]t=ߘ 9'At2F8$玕%bsqީ%iÒ@B1In9q܎Z;5&A-QY\\̰ zR$h0E XݔB ͍ 4/1ִbv4l14.`r;t{i x1Vp)XPDĹnЦO4=/C7c 1ǿz;Rp3S\Jm-W? Qg!FvaVTD@Iֱ)#ܹPÌS-`~GIzVkgKVY!Ժ]`OJP~-̑ |yn1U]Ab] +8=Y\Pf3K@2rj8eDӢisT4;#bw3miɑTH4>#}}-Ԡ+Z%4*J(*FK+Xnd0USpϚOFV8ʕ9FGM8ܭKS!;Gw6~h*=*1d~ekMX|ȁ'ahpw گos-$t5RV_DsN}1U*A#ԚI:Cr;yلLRWr{o[r;H)ten.&%UyHlsPbCo-'hF =P$sBO'gΓqR 06S^VB~nnaOLcӥ&v9AG[2^i.HVd,n ` :zk'&)IHYb]vBJ9ThG#=jj˲$|iJ`2;Ud7`vc?HJWeMq&FuzPf3(cŵf\il:G j9>=k;Y1'wr:Oxr3X- 0F~D%FHd!܌^!Y&in|~p{^"\enBfTȸx8b$r}xEӷ槙 8f H)FW-ltypst-0.8.0.2/test/assets/files/toml-types.toml0000644000000000000000000000035507346545000017633 0ustar0000000000000000string = "wonderful" integer = 42 float = 3.14 boolean = true date_time = 2023-02-01T15:38:57Z array = [1, "string", 3.0, false] inline_table = { first = "amazing", second = "greater" } [table] element = 5 others = [false, "indeed", 7] typst-0.8.0.2/test/assets/files/tuesday.json0000644000000000000000000000007707346545000017173 0ustar0000000000000000{ "temperature": 14.5, "unit": "C", "weather": "windy" } typst-0.8.0.2/test/assets/files/typing.jpg0000644000000000000000000177356007346545000016655 0ustar0000000000000000JFIFHHExifMM*JR(iZHH8Photoshop 3.08BIM8BIM%ُ B~" s!1"AQ2aq# BR3$b0rC4S@%c5sPD&T6dt`҄p'E7eUuÅFvGVf ()*89:HIJWXYZghijwxyz ! 1A0"2Q@3#aBqR4P$Cb5S%`Drc6p&ET' ()*789:FGHIJUVWXYZdefghijstuvwxyzC    ##*%%*525EE\C    ##*%%*525EE\ Bt"dtTVN+ìiBҪU&"hdRvԜPR3$PW1HT35 Kd餫j"*PJNM,iKFjL«LE-5:u"aU(Z)iKAD U&T3I)IʩNML*(<51l'YK8v(D JN$a 5*SI҈"jdT­%JJhҴ&%jXRfjF* JJ [T+&EBTZI@dΤsY*M(jU H]"b*R&u#9=4۞deΊI"_ ã&fI"r*W)ʐeKɁJ4UDihBW5"R!TT!SR]*B)QQ9uDҚRP*]2ZT"4ffHM+hBUHRUC&Ԩȥ%hD&rY:*`%H:j2IH"U TRT)P:HMLiQ):\֕#V"BA$&-K&0"@N\vȎ"j!I#M%ZDԔfTjS$De)MDkJ ˤeKS:d%+4(DLT#MdTeE"ޱ[϶Q00@TZUXE=D) (Ա A)0 aI9Uruq%4)qJM'R2R*4ɥ*T5Nɥfa*P2aQ0bjRJrqJBJRDF՗CZENMJf*%I.t4#XQ1#TdEa+J8Ȥ."cRT"*)KNe*Tm4Hk ,h'qFeM%M)8tRZ""i(&э#Qr(La)J :RVeE PPTQP5I"& #9mPMm/zo.mʙXHZ*#T3$J$ ]z2\j4SRa*V"Q 5h[ UQb&a4IDTʕH]+"(R49LTHЪR"jFGBu/h(j%QR]d+TiUd5ԝ15UIM:j%QH\j5;&`Ԕ詍S"])9:)qINRRT!!$o D$qF J&j^t>zy4TQIh *bkAqMCZbIE/J)Q(H*5-4LKUJZSq UI(CV1YKE',t (D-*j4j&*PTdL-5 J DTµB5SBVЕԢfH%@Z[.j)VeFI)11Y+JµdB!Jl&BDaJ3QP]x5,  L)4NR"&2iIIT MBJ1IR2 P򦐤hԌMi/{

    1\kJK5hZtTUQT*DR#R!SZpY3[LTµ"rkJ Y+D,FMLRCjXֺ 51PȩULa*B3B Q$DM%q+"QR&Nf,u9**PMz*PA3)LҴU"eDj%Te MDUIR&*M*2)BR&X8V"@KO xldڅ];l jRqH5#K4KbfeUHjҤVAZr)pa*#R$HC$&3DhR5JT)ʭɭ:HTj")+jLTf45L2E RI)iRELLTD*[RPU!Pa! 1KD %d(q %H&&Jӫ))")E.R\L֔TE*bkhԴA4Rj Z4PWJڥ4TmQ#ҡ0)UiҰhNLFWJ5 J*V\ ԈLQ)ewm= S2DShrZG`(!jus3t*2 ŤΊҍSBBfD0\a-%R'&c+rE+%UWCT*P)B&hVR)hL:$.hS!IDD(\T᪣eRJSIT!tSTjR%SQ)M+B"MCR"rirTQ+ +*)$NH4ԪHV\T]'"jHTuhM)C%T&bi IE)+ԍAgjNɥdJ:*HB"aD%QRUD譇iJJF:ud*E3S!.DiCQliEO?sp ש'gT;S lNO֦[7Έ5z.QL.PLe^)<`ka2E?rUbmy߾~+ xmQ:BRR/&DBYғZtT(U*%I(s+JBT'Miʤf]L 4XɤEFʨE YB#(UB5H5(&VFJ+*G4u0JJD*5BIF$'TJN):5.2jVK Gu&HiC]%3I$]rC(iY$SIDQ1ۄ) S-SRlzȬ5Ϣ*u`ʍA7jpCIlNMˠ-Sll&`ɋt3-;r)ݱ|9s^~Y<Ǜ~.p)Z|.]!wuнK\>]"*\2YGmZ.aCu5jgTaY6s}gymޭ‰DÈAG4T6\\LJN˜BmIr*FJ)KLM);RѓQ:T-*)UU "j+GBԚ-4Jf)3$- ԘrSZgTziE.&i:SJLJiIQQ:P,TJB S2JEe'RGD,&jҤsKD!Hs:Ude*i]FJl5r bBhP+[~]]/6B R! c^XS!v!ˊuX򴱤xؿzYa8)Ͼstef]}5!f7>t/Fvs_r4ǭuɼtn7Ɵ [ϮƉtv݁ǤiמM(:8ԑ0VsCRIɲT+) څ$Eb%51* I"):IU!P: tJkDiBUj U$VQ ,)5",PIHJS2%9S1JBDL. E))Q)└!ԤTh"R&N&-`^%aMJCh%+ԍI^DlL謰)* ©I NJ0uZ5[Te]$j.#(2^tpܷ5Ks44@Aלt_7Ϫ]T3uN;0)Z(qxʽjw×y'JY9گg7`Ӕ iOΰȽR9\\󯟛ѯ/q$gU (@iTIlz2b*S&"E:`Y34T*JJꘝZdtA)9MFB0aHBCAu!Q*Q-4PUD5+Jahm(TVLj:cJ(S0:TA(j% T$S14jT'RMBj'TdA.ƪPH(!P:LU43U kU< 6L&l9F`afݚl Y06t@R}Cj&ZfT !'4nRn/R,Ts!e8^vd+ fury0d>zW`O?5.5,k箎6w~oV.wLWЧ̑CZf %ʈJvaS1BJQl%u&r*U)ULȍYQ*"FJZt*91ZS5&jTuJtO8u+Lm:5$s5%Yh&AKT"i3bPMdJ)JBu*cRiE0,BhȝLb2iq%1KѩIR*DE+F]lJIH0PKEr%4xarVnffP-*L&-9Η:uyogdyGṔUln͔Zaر !̆M$!L哂NhVʅ"Lv,_o2Ax]0 . 2],`['. tS:ǖhfL9q/O?66>qT8 $^At4DI u5)R)\(SYC- #eqTHVMh^U Z*A) ˘rHRH.d5&!{Rg*AJ24'AAHK"QYq JR$BI Q)X5-z)jiLJV-*EiVEeRƸBKFե+EDB&W|PK],=YZD}~mj.Yw|1#\֥I*L@Q1Y@EMj"Lʬ.ìXELƨ"CRQPxH\E)DvH%TƊ"R*tѵFZi a45)I(ƊHʀrqhQ M&'RB憒"3"!r)1\Re UMhZue:#RH #"%dSU kk*"BՓ֧AGTx$5;ȁ2jߚ}}6nipAQ ArƉi.//t5GW>3qU44uHr@(%T@ Au3M)Q8KaӅ];0 TU5f)HJN,F%ISs!i45P:L:VAbMNLVЪB JDBJɝPD&"A TI& RA`IBZ 5 0D 4DD3H45)45hdM4 TJԈ{BRMΏErUMǸ5q/zK)jQ[3w9lOtexhp2J@(U^=y[trt>Bn#S'ZxG]ԝ˾&##-)frkU .JBb.@xXrnx1mr_UdS)hm8G {}/[O.>Oeм=af}Co:ѥTսTQ3HʙS1D2Nf! $>i ,ThLP%F\R`)a*#- x [FR"jb"+ -HR2S:(rBQEJ B4h)Te'TNڲXרpuU" ")4)*e&VTPE*#TRn: /pyCpeuWkUMr\1㜗<Oqn k]ݐqfd%MS;zk>*Y2Ϟm|δB,`/'Qv|prQǐ|s_0F~+t*tk`]}*=|/of#=$LN 1A4Qu>7(u;!M =j B"UHRUHB,ځMzR6oW:o "=TA Q LJR)u+j"fиA"SIAH`̮R&hXȤeM,UMBYXC^\@*(&E$'JAB䫄tTLNVQw0d;1FC\];?ϱth:VR9b֭l;Xtgd4/ZnnX^p[m\.ߔ9[UmPPN*<ѸEAޛ2>Eaar xKvNo$'/^ah[8oV~knӗڟ^,$0}U*go)%#JJ  "kN  Q`0j+T:$&+F TR@t5ՊzHZҪ0zFf BUITJY*]! UC] uu!iJC^D N!HRQqC[(yh*UQJbi #Zi :D^("\"IB\ق岅_  T 3u^cF2H@!f=p٤&lH/W5*6hStWow:!ǜ8 t気WvI2 p:@܎a"ڹ^x+hyQ3յZV掭> FB|K_!{=4U_tn3՚Dѽ?CÂثRH\A_.ZLQdqY 20ePMeT=@]CTjikQ ԍd4!TҐԡSPENRB:P@PEJ")Q1IZQT!qQhJTI@a$dE*A Ni;eqRh/ڷ)`֫*Е&~:~BB',eБ7uH%h"WJ`y>J²-U>&eZtepղ]f^և~yGKˆj~}*UCmӶ[1pE*J*֖#vM&Sw\:x}%=z9!dPH3elyvZb &dҤSJDZk {UVJf5X=rVRMD & Tfi)M âhU PDL ]H5-nF6*;` #%J!*԰eSP5)Ud.*2BҚ"P%YF e H25EeDRдRrMZ(>BRUJ^$5)P|ZZ]-WjjL/z"#R HPT-T;gaJc@$6wLYɞ%k .<{g| |<曫aud&=C?WR`ԏtyi_W@}KZg='z Ÿ]cn7|tt2 8iTzW<(nOE>Cus} <_k67:tjfskf""TÒON1f"q(Nb#)TM/ti`F;I IGG$jʤi%N0لbSZ`JuvJ S EHR2i"U$rJDĢ*+BZvYH5JIJiBRzM!$Uat/y^?՘ig`s;d0r6BWG(m.=9T6G%+;r(^U)ӞZvܮ s7]_ +QUZ)|d߱8{KWǝ[?n8˪\!>ljxW8q]9*NWˣ8zpy[||\Sĭ}g]XDyc*m85ވ/]s|yzϺDץyInRv];WUSd6l'QL%6lukWm0nae1 +qO6^qTTR #foM\kb KVNߘ;dҡkV):ɢSR5JQDzjDPu'ko ht,]7$93%:kmө U(iU"fE*CNDT- *Jj&5 Jʁזd~BQ \@HQz6['ɕ>s21&ST,_^|[beB l\`b\hV-Y2W1nE*3VYQjTKʽaYMGrֿHgOp;s|Ձa`ΐjYgYACg\)KnS|Tֆ]/U7[z>]^[VTlIo>!*|Cja҅ [3Vn['0|nA(UiTRV5n'7=xɒ3pS1Vb45bT(u s4?ըF&jͩQY eDm($JiZSKB)$Ai1Q EL,U)ZiI AX#s굸=,.+ D-I+=FZ!`gL"$NPtl9ȠS}E˜RYy2KY&Jl9gL™&(B ,&lպhFB,T9f- a#H }1ݵ^[ ֗|5 <ѱelChve7:7OMWR4+(Xu-x6iRr™ w1U{dYb7KN{'u_lS|M?/ %Hl'cVyE[=Shj;#8NAC@56\1x*;`pHJ)FSElU ` %t+%: A?v A­& 7c]+^zmpnUXc%J%T+RAG4T3JIJfTFUBbHX@\5o眿hW5"Jaxf7j>8@>Mz3?85%4#jX *DlyK{V3Y.kк|~R˂Vab+od FLU3;Jţ`*Ѝu&#i )mvUVjkq3k ⴊZ zru,)[Rً%=Ewcj;T51Bz AC\`dKzKM|[9O^q?TYx7ZZ? ;\(pDiWLMSjߊS*T4ej4T'RհقݙhIKlSXNV֩fWW: -uAU-[iZC[u7$%J"ݥJ9o6us"5D]syC繪;ʯ[/ I-%8 f @ 15#&ase l@"νft9uUE#k$sY2VE3k޳\5=DLaA妕ha$RKRrz"MS:H-j $b 2lS6Qs=*:Vw55JUS2 2:XW+_1r늩QA2TP\Z4nu8m*LRfbى s'K4)Џ S7!TdL0Vͫe]~ztihe|ʔ;I\.b7`s2ܬ2UYXID҂Dh-#iU8C[Îw=y! pNm1?-cuG8Swo/v\tƉJ# oi+!Q[Va<BQq9dn|7u*2 ]$B+)rԔ8`,^^5IR**~ڕSw5$Nވx{m/E&DiF0.NBDRbTS)ZQR29L Rblh-@&Uc ӊtXLF(!<LPW)b# %Y*_(̟:AU J )tќrB5z5)u=:i1k\ɛm%a3 B\&JRp(9 83R'ë3R<}jόW 9lto2ވ^1PSoMf{xG1g WVw4vн\=l۟󎗬.Fuů ]r~+սz:K %ш!L%ɚ,j&tz'Uv+L&!T鮭涘l9°HRfkyBr{ZK."&PJ"V8Tvܣ$nUYw\5"s;Dɛ(hm 4xi@ZT h*6*i 6HAb\R4.4j>^ -l FA`l V+҂4mJenb2~yz+ & X2`܃dGM R]hPQL|3DN9WN 0Á TmУB p[Ix8[ۈC00y[|Gͨ 9u\^;kn >[Ocw=v~w.K6r ib͂0ӒzZW)5;]qW|7WDb.mkZU%`3`'v4/GȘTԢ5F^̪*F2u{>e vt~m+_[r}zIR- ] jB&"-TrNJqFZa($+Z%T5ƤjBCUJ!jy8=IRbJ阝f z0'; )?&( 1MokCY;)mAK̤ 2J[F=JM c$1FcB4DMbDjsXDŽ0KrpR[Ns~pq(K[sXÀ_3MF&oT#ݶg翫\,y}s=yN{.,ws\z>z]ϻxI|'}ߗ_74.rIS5hӅ|Yǯ _Z" 6ɥIPժRιM_9##o>AKH!zgeɩSBePX[1g<].Ȥ2 IZbE .jԙP\ԴR5NRjRRRӵe&*1"!TTUB*%q{2EME99IYE׵0ki޲=rnZDZ[-uO \F⥩)"-vOEWu\SαSv~ጲ=9yasz)mF:jrD:,VU_URf tL+uFF΢hsu_Է~:9i+ASJ:rރC"Ɓs`Um@w+^|+dh虑1)1tSnJSjO&Z5*JiP =Dʆ @ҒSTHLyTL֔&*gE-C]!$L@ Rf.DPZhWf -+2ERdų5݂neErZBlʴ$D/KddBHr$9㕈(P܊fg+`t ''xy|Ǡy.lϭ6CG Oڦ˺ѵM{oLFwAt8|M*Wkvx6%Lo{׎/w<4l9%_suugk/-ܲ`RWVہA&tB߲7wmҹ-0]4Vw.X<\B&&jNh\7~e2ZP5EtV\VJ[&+D<U[duM!{Om^#ȕdhRӓJ`ks禅QMVۘIfE3+7U(gM)51ZcR &RVJ4DԫE'+ f1RlѸ.th*ϒ͐'Vuiv3***0`Q؄B*Vܳp I rQ2 5`^Oqק(ɐ@X.<u^0M:K<׎s޽yH1jwo]e+FJwl[ (E0+W˜Mk=jN9pۨR?p潓-:O?^@cu=lԴƈr5]1X*G:i,y51[&iJJihh6+wJd'!Ҧp')KxQҹt*zs>zȽ1 ibR5p,S$ve3DҦ[kn?3G[[r,9h5-M:ǥ JꅧRMdRV55+ȭ9T@Z^bjAle^K8Sk5D`J`L:S7 1p$AD΅KJM#"$ʤ*uA2V"E_y)]^XZ IMۮd1i1r=ϩHj/.LSsT{uoTXuu<}3LB{Qv NTוΰm-#V5iձlQ޿;2p間>r.+̪T&LRRUCoPr9{& Swӭhʴh-[n{=}#v>]]cT"P*" RnPz74 zV Kb9/L2HU!BĬ4*LEMF JۄgIbkHF!*EjM- 5(TXF+" Ud,Tl׈yD eMZE USCa`02P)j$ВaAH\ $T"BGm":`j1:X@7Q=oDzc?9= ~xn qZÀտ{rQ\ ַ4>uLl7A;/2Q>=u_KGξ ٸ| 2#qn\ mʻßCgPű<<ʑ_Wg52r&WQ VJ$FM ^yj+O:ji|?@t=>;|2E&;UR93Z'Uj-Q*+Ĭ:>bA81KFU&tRDԥZ%4"ke~6H1 Nd9fc5""w@6]C%rtiEI.!RAֈJZ41`aEJP9W*I9KW ^\!T &sUvs/LFz [k;վݶ-8W&*~?MBt'-/B*gj隋t>Gz]]J_v59V=6^z@{uUwWԷRt6'jx@cU-`++RмOYt﷒1Wn=ڸkGJ's|Y?dZ բu'%Tj"u%K.ZJҺ03VLjP-<װo/kx'|VZ dԆi(G꠭mEaTMG a՗]=7q)G*2:1y$zWsU[ew-;3IE "9fNRN(LOY(TQT6E-ѣBaU֕ԆjV딼ge+5]K3YJ81s5'ǹu|"[[TRSI Q A*6M-"qHED*! XS#E%4HL*IRJPHRX'L|Q.Kn|%)H0AH*PJ%P6n<Ѫq"MCUY'z6bBEJ 4mIXQ2$EP~7[O̶ itwFȲ!s4-|LG yfE 'E(rZLi4r/V΄V,bj)PTT7`ߐ+ߗ+,2O2Gl-mwsQrk_9hӆUqhMנ""*)#aM8G͛2EXWQڢIl*S4e?5|6 n@#n~l,Te+Tj*fu X:&JR`d) bS+M*4CDBi2P" ވ.%qBB%O PO;&[b3wrTL&LvEa Zf6&"dʘZ(Oǚ}z+ 'tvrBfXjFD>B"I!JhiXFR -"tAA[f r4aET%A e/-JdA+D5~Y%r鑙_)\0,t O1Z1y51z) Z=+CWSY>sjˑ)ؾG,³cF߱^ װs"[yպjdގ'$|(QRa EN1Oe`(pRtҢ&LNU8.`Rt OX郔:)"N(dMm(TM Έr<7 [.YsJ?EYyq4Ψb=V{w|=Py6IʈZkhT+s5U'H艂PDR(H Q+/~dheP֥ 2qtO?@hҼET,磡Ⱦ{XVQ j^E-4ZqMVIb|1Utq/ hdl6S)r $`-[2=A`fd\*YU7|6brD|T@+C2@"-f(pgglh[y%%;C=NaA0wAZ*[h2:T&:*ZE7]Y&D7TjvQTy\/W2pg^t\M7^>Q9 5!_yrlAǔaƨ%ZƲE*%4SWy>}4f|O.9Z=񼫥.ͱMu,II)c)Rc3a+A5kkDEJbi LHANFiRR 3m\M_׮n_#B+m2 uU]`y{ WeBUI2^7S#OIn4>]k]u.^*JT#Q`Z5G|VN&m;@ֵeH'Mq|郰-֎dR!g*2,-\!Ԯn CA ]8)*MYٚNe-SO :CdC@DTEHDL1S0!J&D֙)Sᝤ'}RӺ=Me~{dy^Oo&s2wM>e^ۑUBK QiLEӪgjFRLPfFzuz?*>Z;#r f15$[BKQc$i{EL*2`2 ""厣D2o)YݬTUӸ4,9]2)[* ޻tUipy}Nz3>oW:9mLiGT <+t(, ~7gwcoy^P)gm0FB"uJVjDV9ԴBS4E;SEE(,tfDLLĊ54E 3,1 'ւUEF&HLZZ5BbAV-Lu] 74]A6TYSWLLuPZ%Xy&ǩ|y*FnVXM0nkΎ13 A҃FC#IT!.K[Tq\zǠߡxP87]:TJk?HJO~B%sTdT;r.UW!Y5lXa_hWXئ&iS\Tgo.&$ YkSe0Z͠ReJJ@뙤SL9 q"m[g/C]pO'`|#):=:P'yn[]:hn//% (lQDHBpe罛mն_I[l˔QB%*?EQF5w^Zurȓ랳v.ݳ2Jޞ' ^ūEklrY"Fj!F@XoKS4HcRچ%nyZ= SQ$_B7|2$0*1E$P:p[WTf(~.=`zut8$Sذ5PkQA[[Zk%{\ jk']6KSU;ol)i;m&C$],,mA!6JHT.$0ҵJ$K,PSLRTu ku)u xzpq$ '+5O(iߩ lUc#XE*1aTȓD#W 9s&J OYo6̓ LRTID0A 3 <~U5s#b~%ҼQ6bTh`LQT$ӞN>i_qk04$TҒ)JZS8fj OW ӺWV Z6NA=];rzϺwt n/LkZg*Jf$xij=g:. M$ǃpofIIMd@$tK] $t)"hjIԁ)HU RP|dF] մ*Ŋ֣k5RrX3)ZfjLpmZtLn*#|;r]a-iՓHRL2詉KEm1JF/{^wr/!QӖU9$ZčalA3Z`tG֎*u:)E /5 զZSӆVZd4[dXROAEEY A"ˁёQƇƸpZY+^w+uӼG*؈╥52*FVDE<"V~{vNF9Ut|X2wt.~Ǡ9Vot$NLj+C~0?jDKsWF?^⦰LE{PFJDy͇gɮ<קGLφ a~}^N }_-~+ (wIpn-UثRT3pmC"@@RXg I5P֨Q*] 2DRPddBCEDz)ZZ!SdI*k!J9] JfE% TTN]JU+,RDLiBc!*6S+*5,diQ&||;"mzo?$+Ӄ4.ިn(TJ"PRQS5PSa#8~.h!0,ZTFY-i3;*J[DeIz$ u%c*RtVo~ [O~ԊO Nr]=yMȌ9IQăuDeHͩ \D B #!qIBHꌥPVJ 4LV5 TgE.614!h) ILDei:u%h]"RJJ& R2J0M)0$F!*Z"&15 TRtFUY2ZlJ|sn8KKr\V+>& jB5T/E*G P^G?\/K1S䬤ʰ;; _CsJsSp:jp%-ܰy 72[75p94g(d*ĢܒuA|p}y4XzOsbbf|zJM{^˦ۂrY_Kiӽ^|z EmVWt%q RYCT&idF4=tv<a̞ط|0wqX0cC]xP7\RP)X˵!eI-Ud3Q+BfiC Τ"I Ϯ39*h8=#˽+J%q A.`C!a Je%@cNIAD(d"DRUQ5*T+ELҔ-:ЪBW5HˊJ[- B%X":b"+L%iZ&,Tª$ȨL*LvI"i*&$,H Qe3JDJÊJ if)+JJ'%TBFJkeM Y4I*%*ISIZBT%QRZtԧM4F6]_):St=m1L󶞑.,ߣHn^uctzcVXI\MDBhS l 89?>ݮ~ش=tЯ*mQ_\gG2v q)d+r)0U+>4*24׶ߙR5ThT46\EBGJ*HдҒ%ꙅRTF:9+z\pTRQ LE$R")S ]&b)iRbbжU%HMNRj9%%NPD*)S*)E+DԦ&t)RSJNR4&2PKDȲm))3RMiFjAyoK]ynt!uϯ'-k&e}AutǒM,ؙ-IՓY2J:E/(N$i}kzN~x/QSQ3W(Jcd#eN/ͪ. , Y,C7;+4+ *Y)#"fQoA\Gm玽0z;T:RQ L5+&U4ȍSc*))**DR-cL"jt(IDPX0"$BkmQ1Q)I %N'EA#T!JBU5(A*%H(ՕҘILFHM!Ht3Q1hPԒ0JVMd5/%iEd+RT5ƕL8 {nW4ˤ4AR}7M,<ϫ@T)XaW5>ᆞ[Ksӽ@UvQZ `.W rܪ[ %b&QiBP@G =:RZDxPC6)Vza.?Zwt:,gY C P谉 Y+EA4Te&=4iQP$åB&jBTDm*SJLM(eEDSIIHQiMkDDtΩMJcVRfJKJ ^e4I"b5*ȥJu$mbiZSQ+EB4LRTT&&)MABR"; c%@hD!U&*=vb(ntvz\#dfaэ}X|UPNBҸszi>5{{`֪nd] VT,򾆔pߎdN7ovu+xzdVfGWfK+2pjLYT^F]%^+50rJJeŲAZӭyuףo:#q cbj8hIē" 4,DҲWQ EBM5{)bNDRIkL"H*Tm[h-3P4T*"RƨJKLM+hJ#TLMm#(ET$e LBԐvԬDЊ*9է&Jk.5TTʓRf)$LTfJTi(k]!RJ4i*LjTFM)[V."aDJiHRbSS ,F";TM,1JBuEUp4.9{z{Hnxr2UPP&i;ƴ;0;J4غ͑ժ^XY_)\j]Yʺm>g^cu뇷CyjIXMik:"頖V`*Y SzhDtRB5]IfaJe4RgjZjPҒ]D-I))ZvE&tf&I%&QD**%6]h c"i0T]FЭ*.2Z5EeFuB4LV&GBDҴj %t3Ijcj1JɊ(V-3ITcUdk*Jҁ*& )V]&cTdꜤ]BTdM+$8DD-"fi2#R%*tiٗ]zpr.ٟK]3vo:3Ι(]ݔ5K"1Uժ܃şnce^cua!NVϒ@T@Jr3"IRgjҴC)qڑ աSR%. P"D Xglה$R3Ki&h$Ji%JiiLQb5FJ$NtJjJTBYhUDDQ1P@3feâCRJU&t&uBƪ:4k!iR4XhPhĤiM."k*S))jB4+hP֪DL24N@FB*T*"ThIDF4TT)*%VP_k5̇v JS;kyX\^f;tB,Vxy*8*bNDFRa)Z)ZbI̦T&k!sQ;IBH\&QR4Mz\ʤMB5Ա-TRKD*dQ1Qj4&(%!BP*-+E-150JѨɥJBDKQ$!Q e$I#ʕVBf4'&4&+J15)\T"ELB1Zr)XgD*%"R[ ԌE3*"m*Q4.kD4Tb&tP5cR#JiiJB"kD*C#Uo.ۮHnL<:Ԑ`W:Db R s&B$ZI44)\RgjZҲUI2RfbEdiD(ѠW+Pf hBeTE*4Q!aE-3 PղJ5+nJJ&(UmI45%U S- DhIb*#Hc)N) iQY & LҐ:VJҪD[jɩMDR5V4)CZBQ5BΊ-*)*QItN*"$[+G!Hb";iUFJ""#ULeTsKFj T.:iRVZiiVcX(T510,Y!C%FTFM- $+jm)$ɜ%[Rai9Z gj, ЩIVU"FzRZĺj˩I"&fAPBDTY$H \De35S ]&rjrQV4IZf(LiUdTbS4h5!HɥWP'-LRWRJ&D b^Ӫ :DU(!iF NM):j4ttBLrZЕ) ⑉4+RU*d.]&R* CM& *%z ne"L)P"5S)ԀTD eX*RjM& 8[i6*#( R\L9IZPF{TRqRҒ%4r V+D%T2R]Hu)ԕ `W pL*V"Ւ¢*M,zi \RJLJ.XvMIBR%" ]hDҢ")Ԥ*ih92ED,HP JDL&3IR*tE-3&ip&H*H9QhZkDeQN2J eX ԠiC6ɈU@4T)F1&fBI( r:E+H 'jDaJ'P%(K (ƺhUDIENUHYI4R[P䮂mPQRVT6V *Jik D!CZ0!i\G!%A4V]H4IhsdQEA2i*[(u%LjԣEAb)+DecUatȢB5,FP/&#S0T"TlL.1U RibV3)$I,RR&*r&j$49Rj1Zd%X: &W QՓJA*#LIaP,!6͓((ԥ LR%K- B'Tbɂ:~ ں X(z詜YI$DT,j:vIB!z5:SJ]F/EhAi+ԝ]&!U#V JҐTILfU% VXNd ir **VP֊RѨdt*JBjĀQqPEI tTLmJ= %.bi*J2uLJZQADi%֍jruL'R:i*cRPJ51jD+BUSR)e'p0ନCh:f$HWE E.h6"ir)zE143!,aɩAQR4XJ'TJWC4ZB(f0YT%uQ*E.FѕIb/lԅM"`"'TԴDBb UiBiFY)U)35QKLEhT*01RfP MlND)jN5iR*%I^MLJiZ"T)Y bhUl.TTS+)1J(BUYDRrY$*%5;M{P֕T*EJT,sR.* &mZTLKpS hJ)֘\2@ZNJ5JQ4 m)JJԩ(Fj4HR9@4'E0DNtih[Jk.Ke%{g(IKꔫP NLPԝJ*P"f)c(Z)S,riIpҒT QJA4VԉȥENåm *ZiL«mDKBfJBWQ)1Y[ ((Ĵ)U XV9U)VdMj1PDTR&PS(Q9t!TV*6SQ*"TEhASP6Pց,jѓJ)2օMDaҡHJ2(WD EXE2b(&QJB -H֚ TP2< u)fQkh] S9 0:EL*дRWI\.jt҈PT*5L9:'TƊ4T4ILT*"C$(TU*5Md-59HJUI\MD'Ru"f+LTQZ1)::)3(t@)4RK jd-#U.1H*f33 ĦjJJ$:)k C %T IЊ>@蒔R`%QJ Ʌ9`U&RPBUe "DÚӫLEhR#2kìԚP4tILRܔhz&[D 8ogfH.Q0TU]5(JˊЭI\M"T*+VPrRƺNM-0Ɍ)1AIʚѕXDIZV$(u*0S4*iTEL#VZfRAQQ)FUlUZbj2UQJԚS):UITJ (I˚D)pRS::iHLE.ZJ"P&/N¨eLTB*!4ChJJEiLi"ɈIRb:ZG4JPDG1Z%TRT5*2*vѓJRRA,{QB:S8`jB- G !YBҚҙM&2*L*< [LRT`K0)Zb3:*v LST:)PR1[Bixk!JDEm M*5 M%mWPfNRv*f(8Me4AP֔RIEeT-+YsDЉmJ:R %':QW8oh3$eʢ0EJ *ZWR9*\v QEm:HKI"uQ JTh@)Eb!5J,"$.0Ѧjp̯شUu TRQ h%%cU) ]NڢFJDVH^] Q)˜JQjt&ԨJFԕ'VV*a4Di5&uDJ)iV5m3Q] [T&5M$E,e%yU-RbD$ѥB-54HBh&I:"Y4JiITVc''TThڔ1(e5:, 4R`i2 %E1ml5hk5\ ;F2p!LeT"QJ4BBE9U(ɥ3S( iQ JLȢDJ+h3R9%hP3D Zj&ulTseRJ.JlRRrDM)*MBjå]B4 TQ%Dd)9U 3 : B e:RiZRjBBJjҺѵ&39Ua4\=KԅLTJ& JhRktiR"A%5;EDR) "SEJS&6ЪBWB3,/.,jJJU5*QKIM  UPL4D֔JcJISj""e"E)R=JJ&%QЁtdb7QWUcG: S̷TD5ڃ{}$]ayH<aPrۣJ*+ $B( UBS,DSW4hAʤzU&L!uiUFRӢ4֘UhBHKJf *GDLBM+mHRUZR ԅNZ"PVSGD&m1H.MeU(RmP2T@tDʩBhԅ 4PԒDjF3A`R(â*cNR)P#!MJYQ1L/DfJ`DjV9Cųv<޾1>`_7l˔Cz R ?n X)3M!V< ,{+"GD`I*^BM*F^\PbE-2IB+*Af -CԤR(d U(i-hIJ\#Ԥ֔j3DNMNɢ!$*u)hD*DZCK95&aҥh&(*) -*h⥄iI%P"+2H\f%HԡjG)1:5EQ *HB5tHIBiRT" a%R:$ɕVH@ 0opstyf* vu\Š$ `aeHEH7nEL_ GϞWX筋 1KƪgeȹՐk5UH0Mdu ؈d)CF* bSKu)%D)4DiR5lQҐPR5&SJIҕ["iy:HM- U#dҧ"ԡ+R 9SPaBP֝R*a"I(U Z")QVj-0i1l'IArDA+:D&gBru%4r2"*Lh(t@p)NE)) ީkۏ`5ޣ vܣs_{y}qyb,6c|k?s_G? yNW@}'^>^::7޿~_jӵ{S~W8={ӷZ`r>;S^͞ϹgG~rp)3q,IӰY->z=>GUtrܧt=~̟{{ӷ;h~gcޣ.ӱ/˱cwaO(hr|INں\;']tߦv߫}]/<<ݩ|{=;hc?pΟsJjz={yW;׾,3U?pޚwuŎEg^~zcrtܫ{WtuPkN_x>W_~x]>N}>UbywNiNާ$ яIW_={}?n.Qm?׷{G>OӿOm{yvj_<7j?-mӸ ?OOTA(,(%W>zǟUd^]^A˧`M~m~n=z}/A(;|gf{i_{Fd}vy! Ux~w^}}]ތwk֔Py1õ{>ym;WGý{џ~}&{QҠN׵>~Zwjo>?x;W"a'a"bJ>ӱJ?{Nt~WQ;k8wրWSaڟrsW_uzv׷{yރQvӵ>vܺ2o?~_~TA{14>=yOcF)}o>}svW{ho/Vw޽g;Gj}ӿsxv/N$;rW^{lU\|Nw׶̇N+jý5zwװڬ}Wv}~]On{4t׷j1GsFr~ގӹgFjM\%M{`;r6AB*6`__;w׷NǾF};y:嫫]G}{Ǿyw׽uz3N_rv~_vO_z1ؿ.z_.>5Jl1%}~Oy?v};ixv)ڣ~N=qOQ}3WӶ=utGNGo//<ߛ{1H|#?.}Jڿsy3ON;kj/~͇gO?-;ӿm{_?l^!ѐ^.ϷOş_tj==c˸f{ϽItf|}>xU_^#sϱ=4c_:w%;0];QN_sN׸ /_O϶t;Sz}&{z{>~痛׾kGn־ut:}>>ӾV_=;S~{k_'ǽ]~]C}ڃAڎE>5c_~b{Oupu ~GQ^NW?{Wǿ}˫ӵ{wz:Ukxѐe={ҝO~SN)ϰ]{}?:`1Nǿ~]Νy|fw^ ׽X^}vtvj}p.j::v)x;8}CΟՇ^o:?>?'ȳ}+;ܧUy}6~盧so?'z{bF] _>;{yv=o=iO4vftO^>,Wr{]tu;/Jw=s_?;ڝ=ޫ͞z::2CZ}>wk˱j~oJ~K4=~_ӱcZ?7,p>5zw~潼MO/ήvwN?&>d}gYzv/b~>!{hڟpzO?^lF]~t}5}ޟrswގju?kOYrJ=?]׵/J={yڽbp3j:4PbڿvsNOˏڝu?s˰g~C{iڝP}~}aǑ`}=j>vӶ/R}wNOj;P1׵~4uOWo?W5c>οΞڱGO<|}?{Οr)|>?|s^#ޏjunS0;=uGq*G^C{Sa^Gh˧_=vO5_sGNҏ( v?~O;Q?vp/kOcN}1NW^S_ΚvoNŽ?o_~]q߯vpo"ܾ qϱm?r}"Wo>}׶gJvf^hhGG_}~.O<=׶V{͍_߯rޏON/ίϾ|ø_m~5/p/<=&ݧߣŐ*J !3޽`j:w_^~W*5wϱziE>>J:}g:'P˧sc߮zQ^}׵{ڝxcN];W6{׸b1}ã:ㆿк?>p,?>0xvõ]~~{Wװ_V;1ΝR tz.֝ߗp~}};װPg={S~uu~7eڟzkާ;ֽp%:Ͽ~uZ:2PA_v/>~e}*uN=>;;W{y>luaӾ~oSϗsk4Uޯo=;y]{U׵;wOo??~z.};k5cVX~vs>~>=y^Ntm~~4va}v8sN{Nu~_r0;װz=Qϵ~;?E{׷>~O˿}^O?Om(_utvҴ~O?tvӿ{m) F{St3}6;ܳ;=|]{ 'z3v&;y4^aO ,vtdv׵;|;yiw/;yv'׾tz4_^}}_~>~>>]v{SW>2 '׶ӹ5|XwU՗o?/FX~U{Sۈ>=Scz.UՒ˩y0  v]~>}?x}/zھ=!ױ~}uֿz6{v/F~~wϷ>{V^W^㷓 ?Yu/'y< V;ޝ>}u}?{޿w^㷗jvsST7_^bs^zwz3_k_ڝbruWWWVjaLY a_|zWO5cÿuG_Oݠ;wNcOϝ]~]ԳUueo'CG]O|S|; X.׾t.]t ??ܫ~}ܧjϿ՞}bkz1N} gy=?ܯ>=>*ڮuy2|Ǜήv˩uTaA'WWWk^a^o'>haZ)Xk׶s޽GMz^Ďװe^r?Վڿx__bW^uag~dURS%Փ- Ƀ8::`WZ]]^]WWWWɕhVyLCy ;_׽>{~_Gzܯܫ ëӱ˹װ?|=~Wޟy~dY-MEլ0K̓Ny uy<Ժ.yz?=i_jo?ؑ*ӵ{Tc޽ej*WVY=Օ(z,- YhSy0W^! -JVtUX,)┥@^Zw}tp~痟O/;UKï :4ywuu^Jd]YS*e^uy<]]X%ц;-QIUl)e[Nc y:t4 5& 4 ñG{U.O˿DZcy?4gP1?rOgt;c?>ŇW}>w;y~]{j./.IJ]urdS uuy?:r%TՊ0ئ{T*B鞙0ySy ׵9!K]\=i,-b(TSW^v }7R׹idykF{Nv}]g֝`Ժ]Y/ ]Y=d0jdYS*u=]]Zuu`X,ZKՃ EűIՅžO' al-| #%Km'T\rbH];Qj|Y;i׽{Tv1NwƝnSkسW_u׽_*=}v>p#t'Y-EՒʟ]ZW V X.`uur (\V N0<=L7Vd iUX-*`\k[Oax1ڬ{ǵtZg;}Xg}rw_cߝ{ڿv|:?/.dKS%֮:WV~,0a֯'W y0-iIwPBW`Kh8y0F!kM KIi[I5~QMF]{&jw͇o!V]=a9(~_{˹g=;Wj^_hOWN֎v%ʚY/& %ՃزuJSO;UXS0$Ճڮ;U˜Qen={@R%Z%y`v׵;yUwӿz3];϶Ϸj=;^]AܧWWz{cVkغ^Nʋ*de2uڌyvzO& ɂ%TI5a)׵]XSՆuš4 Iy&m2Q0jvװ;W]]~;ywӱ؞~}߯j}~}No.hvy}.SZ}K˫SQeNr3عx#pӷɃVKuz \X.vjՂCKR*$ď/6i%Zjݡu/.uPiGFC{y}ڎ>>gP>>u_m{Nz杇cOGӱ^}׶בuïs˱w_O{֏ɓزY=/iYiV+jW a4{iOjv jXbFT3Vh]ͲHZJUWW^jsέOɭ$v. u`[gGR j ڎsG՗^ӿ`O(~=j_~rzvӶެe]{ ZZCih! }IJttr-ZƒSa+gN~cuë@ZHeʇdX.5P`}=*O׺OOO<4ؿ'm?M~;ў=ǵ8vm~ܯsܺS'O&Oz]]]{*ȗF& y8Gcz_n)XuJ3ں2<:eS fSol 9-OGՇPy5 %Ղ {l$Q޺׿5x5_^u5dW;{Ǘo.=ڏ˿,k|ӹY~AزGjZe]k࣫ȰDsV=Di2)u ;}gk/LLlmp:v`b5㯸E8HIҡƤ9A)-[]S bDX$ЦzO1ޝ`r]{U?z?*1޺uXt|;i_G}jtg`˯ާp߫m)ܮ;{+^NǷ%ױrpWã]oi~ExH~T5aO-ru'y :WK)6(* Ao0.r(Yd@b/;hjvua~t{G;N^yw#A;y~>j=SRtvъ׼C0׶{ڢBj2ѓWjd $֡вyv%2'͕o2,<<3S-=>rZk qK`X▖CݪL3o!/.W^Պwn_QN_>iG}aڟrֿsO<)d'/"y=h;WΌ; 5]!X,wfFYSʍ$2P92Zړ f@3Lϣ7y#2fǝ1$tgӞ Tgh4傅vK5KKRt*BS[e$?'^Y.v"õi}?j~jwt=?teY\!ݮ"ւg(-4ݫR:BLR䑭l)󘕢V-AN: Kʣ-*xNm5 6P d:D9Q+DThrWbGo:\Rd Vtttt]|V]eO&1}?Vz>=pޯG];yws<2ڌ3% Qy2ҦlvviE,2\UPQGZV4JS>~ ];?̒~=jwӹz7N:<\j .{-j:Hk%2CU ժ54!aE5%e3c/($ךĦ,JX!:[YH׳Z-knr^| alH9)fP緊G%UB_{];U׽]ua.x eN^e2A_?;~O>]uG=}.GG@e W%sZ9 Kl<ZԖ E-EzFM(e!].K nC{khmaPLREZ\h~̤U!, )3n^Yj@VȾcy$/yU y6%iNi|갦%̘vYcZTw8 4S:0CR^%Z:ђaoȧL]Y[к:0~{x!uyju.S˱o; .z~g>c`t֎4cŒ3.XAvhWNDZPRFC*.3$Ԥ!B߫ԥBJaŪC$J u~y::uuyiͦF$|q]Mf Quo$XaՂ#J])˵Gzt˰H(x5_GoWcNL>=TPdh=tץ44fb:Q)N  Jvqm<%+I zv,}ïo:1"w i)3E4*JuaL, sF' -2ʟ0lqttWeL^,o"uu4Cx}GGGGFC»<5u;kWzjڎyp~XUCaWPN *ahKS*ԩduA&bJY<*UZB)'2T؈HkRDhW^Mkf)o,lvLv~C;"K #Vp͝RRA=ц%!(&%ƸaM *8f, : 2<tt`j~]eL*u7eAOGG@^~zv;kޏCɅ}l_ߧo3Ŏ毇a϶]ں`]CS&Tʋ%.$b5qJy]T Jj/ZA*IPD`)f4mEWRhk$ $(I"Z+:<3*bH WPY* Zm eگp]Š7 Y!; -%^up֒ZdD4Np»ތݮx׵5i Ƕo˰iΆ$y0Ow._^WF>wu|XSWWWj[+y:xYKRR+PVн_RJ2K)I%C(CDj)|ܟ4>hYYR!Uk q)MEJd"T@sʬЮ. kQax :.ڿ'ݣ#J:jRQanu^}~{y:vx5WR4{)D@!kΚU5R]s%jcX[/3ʏCmnJ_4z)bv$Bͺ+hH\/FZCc&to/jkG꼙[%O v#EFFҚ:1GmgWMK.]M'~>|{ij:= ʄ=Y(%\rV<Z ᎍU@&IkUXJ^=Sۡh#4:<˫Ⱦam!&EɩU-EjJ/D%+Qx0ZP
o@$0tz:wNҬ%֌:O6`:i(*:5c׶~t>p:_zVګ E%T8$)/5(WRK Jq+KT)ԣkr+>J#BjuѤ-`DgǒD\.4 R,Pa_L4- Fq*NyYEdR.p%%J#\IŕjLjR<ؕggE޸\k IVΨdaIu @ Xx<^J_,<GGN])(j>Y"Ұt4x<^.YWec#(ʚURF2dp|G<>SR:q49ЂT  .RHiNQ*\A"՞(MXRի˦>/JGb|^;P2CJ:<{Ӷtjj|Tqe:nJePޯ&d R ZP`րYIh eE(t7!&P{V+%Ez„&Z +LjuJ*ۇj={yQ^by=!3f5LbWa]e:WF1vzmkR5VAzjBL*iJ5jНyARzF<ǔk!%Q5R$Qh!1"$a.i mFBTfcj^vńtta/R)cӽѐxQ(.MHkĊ4Zc'HZfU R!a0jvwFKJέv X]Az͙Y|4)OG( :wWm{ՏbttTw0J_0chKKjI{+Y{u6\>rBX5 Z?*ʺi_͎bS YXRsXb4Đ;qVҔsΈQiX=t]]{Wjëj~{U׿5~]ߓ/ю1_B5$O7U5>.2-LzP#F"%S+Y ! A hQ-dK"S)jZTԲY5֬кk, tz0ҰLh;.TֲC .IUkF$wʅ;(aՆKIp{1#ۅ[9=ฌ\P %r-*NrR>.4)[T %/iФ # 7KY- Z؀<@CE))+|r_B5{us;ySSqaڎ'C=C=p U슅F(RFU`JuJJl%FɆ(y@r)=+ i%4HK+eGuή{hR >;)Jh:v:0mg4d-1 ӽ]X:))!VDwKOhQCv'E(1]C--֮ /WVPԴfkZU89g-Q*\e2ǽKZBۏjA|M6P{WyjYaP2T^N[ؐ$kJf%H۷ ]|{2>'O_׸~|^ 2$5mI&Db* M0/L T߱z%$ +66 5KJ \JRhԲʃ%Pu,*vװtzNtuү%:P^K<׸ta.n6 )h ey<|\L-#2VzSbREnVWPK+YJ #cMSdYz"Yi#{-)bJDJS :={{_NIv`ڝFQ U,&Bv8v40sOON;jӿܯ&~ V@jzZR2J£]3+ *$P]We ʂLdD!u/"RCQlҴzў{IKxk^H6[8+ڢelZk-WOlR ܶ2§.Z\'%Ċc q&N/:)w6̙sjڭs%,K*JBm=o0;ӱs[G#XB֣ >u{3ծ)F.CsRЗ%CA+o,veko.ã=?⤤C< 10"V8bi)DRjb е*5kTe\BAUXPk)u|^h{ /-^Gd,{3܈ޤa#qYLm8--vʙd\vֻ_4ĹkѦd*4S`-,Ȕ%Qp`$in-JvG aL]R`)WSEVlGo>ڏ(:CaC.=у_e jjQr(=wf,l IP[]Ir_YZʜ]ӽt{k؎ǵn ~z3T B# q5 )!`MH9aiXRCk١Jb"V$ f-wwD*e332]Bh.67Rj ta,GARtF;ڽ/$ߋen/RrDᝥ@Rjy.5E|҅5r,XIx,-5\qBX^c) 4CH\`jaQ׺nw\%QZ.VML3)dӫrɂ)\B)&טTA"mϞ}*JVd)h\mr;mں[Apqd(  jZRpԵJR WWϵ_:=]5FC0@P C9j`*LCQCzMZ{pz2F/^❇=Pk+Dq<^/Aj\f)@|43(|/uD7r!t&J켝MRMUh!DhbGVjWc,cvV] w .UyૠwwTWK&`f5HKɈSM{O;Mac1pˆ:o2h伅.KٔK8jqV4O%ޮd$E+k!W`T- Q4^ں??/k*5j^KR2CBI&yu$>%+ zL*Eh+ҤՕ5G׷R~|ud(ˆT[XɁڅkVP5ԱW-Wkr-Xd2(u h 0 %}{)P;t!yxmQw.-=rIavPrBԕQr ɉ4fe )pz}kHs_B[Z%5)PIkIbkizPѹ%E̐8^9!p܅W2C,!L[%-{Ay2\!)Eēcniܫ˰udT"9l Lb@{iJ,#R@Db6(޺\XY9@*˩c"C]̥Zۂ/`zG^]>盍I kG TsHU9eRXRKҥBE_z:i].vY?s.Z.GՒ Z\&!SE)AڡP")d %2{miPP)t/fjԪ /aC^!rJip KT)e=jb#Q(ڮ,7گXz}?*}6HZV,:5Kj%J%I G*mP}yn&!jyq۬ SWWZܽkW.Fe4 E fJSѤSm)qdŃVq(]IRdd*j%L%3LW P& =C_|VrT)RG RUJjQl1J)ƯGRqڕJ=;{yV.'yѐG=׶շO7+6d| V"o0뭖S{<8./EyT9VѶՒ,NfKB .=ZK)I{moT[%l=Z:=jZ/س.(WޡtjwHu$F"7w.=e]b>]_nUڝR-Be* 3E!yJ%4sVCeN:-/iڲ6T}_^G eBH_FU`p FI]{Q`;b;Ol{3+Tᛇ|nYfᛇ59UZuaAno Km\[z'>h!֍DԗRdYeфh4 KimI;5[]!iPtu?v;׸btLhۄw)ԢJ"uʨvk]aݑT e`5-a jR'moNwBS"ӱf KNuivkн+eyp"Fwk9xWTVUQjRrU .B֪xv@ю'aGM5,%{d O/_1_0V^fy:T]YS:Z;&FZlp]{)ͶHWacnʙS=;ц8X \өn1BRm2Dm5%JwavLs$2"RȢmkyzFP훤 %JR>ympnRf.@ZHjS%E}J"eQ:׽KgT\4N؏Z-SZLs)X=;U[Ap"1ܥa21E#W^Iu\kx+ɭMKIΥJTuj-G\櫮ؚ05{]]j`ao77y%BuGWPڿpK1S3aJAaBpS`o  .v%Ն0?y@fBs%vw춥yt6H)8wW,W+nX.[qn3|;SV)8>,ɠZf,ћ5K"䚈&,[zB\+D2v*JYZSi%d[,"43ǽK+G=k4*q)7.=p[:qac:ӷ8`4g~d%In' $io'.2Di !(fbh[7%wE2hZVT2Y.i5E3\!Lّ y0XE A{]C*3IL]o!VKu$A#tF׷oSp#I[o>!2rE!.5vv٪vˢ ^^R&\sHbNq `ӵ@r}J/p;%jxty0@Ij #udZެ?/:ib2 1 1b'oCє^.5ŚV* $(U%[\5{ա%ʲ[Ɉ,DJ\A´;55mhISvj:h%wW%īeeݹ`lGE}v4~]\h,v?qHJsfyKRZxΥ绕;%a`S ݒۄjJ5eFvwsTvzv+:߀OUҵa5"^zM8:HPYfIq`vHb6"|i4!a/x2;:=X*.,ԗʒ‚ "i)US-|r(5cu. =DH$ܢKuFGeN0 }3Ͽ;KRĻKDt%;ZT ȦU8C=\d.x\W)RQ) m{-h@qCe$i(&vUF_s~﫫Ӱu~z;6z:vєO-j:QNױue7ܫ|BZiK a,% 0װTz}ԗ$n)$%}$ԭJZe*Aii;VHnk6PH(py;`*vVvFxy3S-{;m蔙fHT4KUOGL-bG_V )RES+7%D󭕜۹;(EceoQ]G L.ڵf={A?6;a{^ѐOu2C\?xpK@@Cj:0;S;T׷beFCKl4NCF$/&K*ua+vQ%Aq)ac= KFuuq*m7+{fZ`;W+ۇo.{W]X{4șvEVAs4G`s҉!A;С}2뢯!+=woDq?1+ ׽C* W)rO!fBCscf24c;cN X{{U՗WVK*f`ʉN;Q4RajTڮL]KudRʝ^ekWԖjJJGcוKisj!5+&XHSN`د$vUav/2`TžNv%?t)cW^ǰ4w;t3-rlHk]EeUr\7-Y@r]4WJTEԲSDIqGhc巼EΖ5"V?c{+eԺ:=uudԮK'>sFXӲm-,0X.J]juy2C%y<^L]^L:]Y:UF` XqP4 ihefF !Kò-=/HeNiPkHyhs>; ɶI 3U5Ȕ$O$=gkY@O]teCr%eTR%j4WUGU4[ƓNz% Y j^~uj!wbuwuӵ]{UdՕνaS얖ŃڣuGVKW T/-ruJeN'ɒҬWWW5'UDԒ{[U1Ht͍S;&;ˠ*=lv=^wV);L{Eʜ;e(H?t)څB5L|5\dՕ4hДk<41ȕE4.)gCU֪ED%̷^Sj޴:WPɣɕu Ml[{ƍ,v#ʀM}-io!ue5 5;qjRR$" ՗}?4];y&&utz:ҿs-gw$6W P FčKjvR_%jk!_9NYq[CޮQJђߕu%ںv%ԦVOu> 1KŇW{dtu/=rҮn޽y ױm{f؀_Evr<wRG01F{ӿ4WQTȣ. ''㻎)>^^ܤ-RLI7,Ce|uڕxq}+@ ~DRTjZ,y~Gn=*].E(;VRC+*WVObWk^uҬʨ]YSR~潩ڝF`1}Y.Ju. uy:*uuyU՞]=.t[M uv!ϋD_/UIjLԗ%10ѷ[(˴\;{i!I=i."Csk}8'V{FM+A5;i|?rUS8i)@jeZ*-n$vv趇'S_;pbEÎgd5NT,1h8mص<*pw%eLY.ՒYSΌat GF+0 Qu=^Nu'WWR{U׸/W^^UzvJU] )\j ,IcE9{+[0\!b;AYek[Yc#% ۉpE͞=u! k7E iZM$oj)ZlM?5uu:%Ts0At jR shZa?~khrG4&9DTg,]XjiCJS@Gj~.k4)tL{2Euy<v:}}`Gp4կj]jNuNrrhã F8v{*9Wy ) e HDfKX %wҧ+%jWQ[m,<5NzLXu)$3۸Zdh\.LS)0Ɏ`5Qqai,Ȑr*fQdMLiO2;,5Y :՗VT^O&TʞNWWWyWNt~nvŀt~]u.T..u.zwUsJʰ{4 BIġe&5@U42[^CpO5noWJ۠@Gs%)vjZѻ7e8{^<ڣyX%JI2e%̑E(4c}{UV$\o0>j+JvSGeLy:$:nz~]~n'ܣaՒث%o*7Nueڎ%RCJX $>Xl贸nCN.qR_$@T*u4׽C S4\ѥeDJݚ} 2o yޮruƯ;B\ESQ XV;j[dI v4z Z$5ΔDHcSUo==+̩KUy<[uyPW-j{QӰ`:غ:J;Qӽ;cӽ^z;WAڎxa,!XKHxցln$ƤH2 `.+$M݁dͧTKUZSRЖ$q$4`Q4AZ} K1SU^|L4x^%,GMqa!аަ(, 9]a4)g\kRR}MyHHrԊhTRo'2P2y2b߫9ۘngYuiȄۨāؖ;kJ{y1ڥOf7\(0UηiJWWOV - a$x/_,DO,B/lD@|o#x<ń %:::iGGG?wOC Lk~C:д-=ҧ4Iؽ)] Y|>QiA|Ӓ_)1֏.x]/t~}]at1ICBP\"W P1%_vn3[^n9hҮueBSȦ\0X\.;[(m(ʺ0Atcw$5Nj\RP; HD0g;{5\ZZdVe3R{ ~T3pԥNބWM{P9&z;UZF)M(;юþ/e-?w|݋}/AXx<//^/A\{Qڝ` pK[X-oz/м];0/eXE8퐖<ޏi`B#XX/^řjK"mJtgznG$F;#];JwYb&"|OL!將tttx]4j:vр.GMiGG@;S>;Ӱ{iܡl ) JypCWܻۡk}DZ) aw v R-uhg@jԩE0 ELi{WWӰG#<s ULȐmm1%?s׵{؀\։q3諠,MD }ZbI#bRMŽmJGňCUb'|>S ƌ'L^/tx<]ގGNwǵ;Q];ӷ5_rӿr?rFUd\7 hXDKTi9i, v~lڽ,6q."fQ 4„0h_~Th]YNNk TLPbB@~UuaҌ-]{ *rZ,C0x\VBU>!zb\w-vdl^,FlDX&"bXC:<^ӽ;ڎSQ*vN~tt( ܦq)͐K22\HO^?piS)T,[F@;ڇb+ڏH ц;ӵ>0\vHiWbκσtcO 2BDȆ^T5NYRة4.#QEZ<޽́j5Jdl#zRx2Q(uz͸"mJr]$RvJ- Tb6-6^K<^.r={y*OqޝzwmO>Ncڟ]_Ne.{@,Rc; ;JcMđ0Ok^ VRRZ. $rfETVfޯiaBҨ$=ZdtP̍S2E@tgJT*)dѪD-hsAzpou+d%D@=) 2HCx0;Qӵ5T~z=;i(]tM;GSO{p~zwϾGNkN]y:v! -,JXRH5%I0PDNt./kT,)g eIjKT䲦aZ`{sZa|XM0;WQ%$m7nKS얁q)gN $4[!/;)` 5\{P wJݦϽ87?i}> v֟s}vqOyvӾ׶^w׵;WQ:-1OF$PiX#W=()Iy-ߣjkVծ)Vab7@yڇ̣QJl(Da45.sv" \iHqkO"{V>~϶}h_=z0y0=}uXzvzvۏqw,l$J`m_-k ۨWCy;`H0.WpIT}{SZ*K]] rJf,Qhr^ jgb@ I~-L.GF#NCގޫ׵;S>Ï}kz:wzpZNt׾^IJ*ZRsD*%X:w,R+Tt@=^ĵJ%J\ިyL;D6ڠ5HTK!~ZZCц;v׸{Q5_z_漩ϸ;ՑCӰZvk#|>)hZRе%PQNXsUڧ32xLFӰ{ِ66bv*˯}>sOOM_c{piO/>~tvz9!%;(PiصĒ$9 Ӿ@5JU#-1:M;}.Ԣ.e0lpmѡ$@ttթZ@rZY:ӷ;р;yӰgOtuw˷i޽߇4zy2X,9`i`h]]tSW5T$M 7 cV"%;Wq`(Kć6S ECLoDtf(r,+4%kZ'Gz?7AڏVCӹ|;W?s_1ۈbczvG?}O>_k5rB )\f9»Fj;h.KU$S.*[La;׿b0Hr ]MSN;+]ʇh !0k W)K -w K9oV<]Bގ_-)ޝm;y}u_}>b;?і_.{yH(S1,&-+єI|#Wo>25L@r$ hWХ8vuf@RYYS-s$ /@r -s]t.ttiڌ ,@Xi"u~tg WYt7Uvz:?7OC3Oz}}_^~](kХG8y??w=m_4~]K;=߯:}NNԚTU^s^-;j:ӯӿo>DZdޝ?:S.c~矛?rr~<{s>c|V;~m{;k_%{;WOSڞ}==n?Sк*}v]>V>tc_ڎo!W4Ajp.rt1^~ 1m>b;7](F]]]^ONc{}ikc˶O q?pOeӿGWà^.wӿjvzԺ;yyv))v?t1ONϾGn~lw׶O_װv7hW.ӵ;j: 拯ݩctqfsN~l׵{Sqڮ>~ܥ;i?3NṙkN_!Z:zvGu>;hhNU:ZzNqz}}{y9tcs÷pv{_x>5atte;kWޏ_??5AWݯm;vy,;C;nrzz;y)}>b˹.];V~]{qy2^N#ڮ|?ߕ>{qugN3ޏO_u._:vݯtӽ{׿~Y?w˵~{Uֿw׷ܠo-Y>m; }Ny~?0//;h˽;?^t֧]~{y??zvsyu~_r/Ƀqɟߧjv׷ :K~{y{ڝWQG}]~^ӷqڡWON~L+YuV|~~j {V+gSs˶v =~svs_OqOcO?pҾ\~;qQ/ˏc޿z/޿tnj?]<֝ X_ʯ^}M?zvkڝ~ZdqNzva֝ ՟rwʿx:矗ϰ_m>}>tUPǵ;`sOWN~QY;Ӱױuu^ZǛ^ij_sϾyvrڬ?'׹~_sWW_;hگ^}VNã#.cڽ~upfVW_Wr^])<ާݫ!yڣz(=_{7_U}ʲغzv uux9VNN?3_j|Gޯ'>掎sNz6~ο|qڽ>>iʮZU8y_j{y=crt?tNzU׶rʚSUz}}6~;mYR2Kx:}~d}{W]{]8~{i+}x4~uяiޟsZ?&h>]ߗޫ};5O;y}ʽ;_c{x.~;׵{_+>ӱ~= v}׷,;o2ݯӿ̟o<] ]K#4~}~u׶=]{Ӷ++ϷiۇX/϶p=Gj=?t}ʳ#G};=w.??U>OWӶwGv~Gaލ\iuqqjڽ~]zg~{{yή;y0;yv_ڽ}~_~sGOWON<; `(.Gb{druҽGbv9WN]^zw3OW?.~Wo?NiGNx2;P:ijQ޽}zv{kޝ3NuPάQ_漃W5a{iN};},28v?r{޽j<^{N~|GO({QgoF~ӱtN2yWPʞay3^`bWϚa]];-^=~'jW׷qx޽eю$'S;Sf_~Xv~rG`;hVK+7|̏98>{x~Fn_n훶A-\ka]'ji϶sW/;SQ:/z4jjy{z՞?|rv}ƽޯ=ܯjyV5Y333xf3t7o7*-į!fi6WQy(NaT1D^{j^ut wa:v'ÿ_{jXuNܺv5j:7GN{WU}:3uz:-\kڽvzP[2dfJ>k3f W W:n^Kzڡʞn&;3_/{h{jk^Py1o?+aNEӶwo6)ӿџ=W^s_dѕ<3C(j_?S;TW/ 2к:wLՕ2r':Gmi:ı^y{S }ko.W~Ur~]xw?sFC0ݫ?zvޯja>꟟j^=3^LFdf@9 >E>`ɕ*y:ʞAԱLLN½ia=];Q*~fyx|>ONǃ^x3C}_%}ns˱u{U*eO6TYZԺvѕYvm*޿pܯ='Om;WkN}cjyuy5-z2OFUNU)GVKLO&Tyk2^O /&OjYNFGӵaї_jw=4ڰ~5kj`2{Squr^NJN,}ʽ?غ{kڽڠ2+ Vk H5$zWjۏat3{ڿ.y=~n^_rjܯ=#uY=ܫ,xS:3#25U3(T{hPdWɒeL]*S*d]{TWtx;ڎڅv`KHfڮ={/^]uSƝںyvrz~tGUPpe}z:i5~_;UՕwy5-̍R5Fj|]{:YcU+EQz3ۏn,ڲ =^u׽;ں8}({ӽt`amjzK*$|*R-rTS]^ZY.UY:j.^tC``ti:44::t?{|'A^{r{N{BoǗiLNնwmx[mmx[mhM"#a{ED 4)M"1c BZiژ v;]c;ڔ 1 z>1LZiFa}1q9ѤG@E)!k@.hv,n\tΤEE i)KtVӵLmcŇS$Ng rb+JicEQkXMSN0N7b71%iHe.*{2i;JBCI 4HerP"M} iŦʐ{t!Ag+>4ր(5;SPOԀ}])b{ >@G.9bFi ֥ ?dC+wm3_w}AMi{ChK)Ө'pyC2/(#~ow?7ܟAQFv9"ud?9e+h;bCA}}}`F!1}ͰSr_ckw ޙZn `= 5[}#8d qFA0ɘ{+@X-Lu<6w&ikӺC4N'h)L61C! O[m&C)k:vL s$dDqEɆĆlMmM$XƖw;Zb/Q$M4Yጜ)l9Iw;Ųw6>mf,RM~_JДLSAmiJEA1ɠks77twOwͶ:oɜ%4 v3C9n: vӶݯ!4Njb]x|t&(9!DiiwKk[zH[vre  ii9Imz_1^SEV;N/ B>K)ޕ5nlbcӤ;=SzO/@?6nOӨ,v9-٭R2:ރ@wsNO}ɤJ1bc Z0=Vei}ZW}jkZOI?Qf@@kmv&|؈<;-%_9ؽihkvZxxxl6kL=jXk_D5NݵXmm[Z/M4M4vZ aoKw;Niw}זSZ sW}wq+:w; sw6}]mPPoI H:SMZ_xkmUiӵS&ieޖo%^fL}խv֗M+ZkԽ oNZvV@LE;A|9/[Қ붴-+zrDQG[OѰ}b68.^SlIR(DG^ CS{뵦O]ׯ-"-52MCId|&!×lAtM}i]֗kKVӴ6CHZՔDF>fyDKEQ E͏yg M2xI֗toֻEWvM~@3#2fQHLp0Ew-3dGw΅q^=oOm4ֵ<#NQCoQ K} du9KbKlZDnnsCq(m=| O 6-ùm4Zm&bv5[&i]o1!44$d$',,_xv֔ 纚H];e4%4gwr֔d &|S}Hvϫm kZK62)/6-)܋n}DRi.Dx:^Rm[o4ͿAxl7H.% } M%mcRR>iQ0ivVekm3`L?$1k@HFi:&?Cam7qivmZcAx(l$m4mw;sm@/!P2]O#]n!3kCM䧴@!5ZY@JTP-mm@W m Ac D' LO1Қm4R(@&I}H䤒Ji\ SEhlen)-S$ g <. 7!,]{DSփ&mڅ&= }M;Ov,&DLuRBdOx7 Fxw$`=~2~Iu~ջC`7eCazm)̟ARF H֝pO:F~o3cݵ$VZkKmswӑ9?І:T]͞"Qww؄in`% w{M4_#S4'">LB%OS]痖v.֚kmP#*x)miyvv`&Wh5M6eSMvv]kM4vmm b T"@HwLOv^ voI]zM4M5%ޖmmmmЄKhS]J ]Ed(d;纑QA!S})!^Om4_ZmsmmmmmlHDSb 2=Luaݨ( :iszO#Jknsmmmz_64&_q3?LKvĞ d}-xD;m}I&=};(# u4ZGhDClRKDHH2 LI1hZl7%O[}]plEimޗx) TSH$"Qw"nEQ'pLIDFͷI4Ůvi)a&vm.ѥ%kKL?a <#" bӵi7ki6J" %m$4&=_%@KCie"qZ% g'Bcƻi$BdQ2?g Bb/1h^o۽]Z즿Є'm(pwD6ΔM4m5cR5 `v4f@E妚i֚xl6e 4֑@xwiD56M4MiM4mxHH3/%hhdNkMiMkmڀvQdZ.kM5 mҚЖioQ-)w;{˹md~M4M4e5`kN w˸ehM5mw6ށlO m۹pGmmzM4MMi}mmM4M4_gZZ^mw7M4iks?{M~Ǟib{ڔKzkm$M544_x_xMM544]Ͷ"_s۹oQ'wӿ-I2.D'snsw&o ?j[zkKmmsI,'hz[i-toJem m#Km] qO`,'emmzaD Aa?m mGжa?%ޕ}PQ/S^!ǟQ>򖴦#wAe:o@u9ApN6Ml&҇/Z#vPMEbw۵ژ4{y˻[mwq[XU;]$ide'qmݠ(;C~o쓴tZ@vZi8v5}z[m5}sB6{ һ+M?N/lv!Ɉٵқm`kO-4E ]ҧkA۹L_Ti;)-wX)M4Zb(v֗Ӷ]:SM 5ێTu6޶EHvM~C[mw;GhB>C&ֵ}*i-vS_C+2w6m۸;͝9ҚkZvZkۋ`%ۭgР[mkOk/!-Aviviv]֚kEI͞OKm]ҵj4hh)Н-wޗmtihCEֶd֢֏qt@_`W?3Q|÷?~?qG}Ӹ4>~ 1Pg÷~T\?ߟ8~;?ռ?Ժ?5qOx88?|?͎?Z4c\~qc>8 OF8ȕi,a0~>0?N:cSGns8ŏID!,?S|~q|0?P}?w{CΟ#S'Ds"qRW#_8Uqk8?ߠ|N<%>SsOWO|S"wxv}3!+難u;Dn?Oÿ85ۏ?n?sGw?p?Լ{Qpo>Xg紐ߎ=q_gx}|ID.,x7~<?}q>}h}d}?ȿC~;|~|pQqg?}~?Ui8i?\?#DG8Sp|G?SD?߇g_~Q9Q?|?!|Ew4Qq|n?{~O5>S~G@?ԣ6߷N?=5_k>?͏?#?;?Bn>O=TSUqQQSVO~PG'\\?=G*sOS_TB6tH?0ꏣ?#/5=]D^ƿ%(IRU8ע-E~CC|/G?iю$TVyr`B*~=&W OT~\~=8'>ӷ{3QR~?cZt{<Ï2V' <mU_m]?7PuIv84?şSpp.+?#{SJ,]y_/zPf; >Q=N?sV~H|5O^?ԧS'AuT~==^qO |iuQ٪Az/E/_~}?Kңϛ$>,y>??~#tH~/Q_/hu={zv5zY~͏_}d=C_=R~}|q:zv~O8Ȯ#DP};'X=>OϸGŊ?u~˧4LJzcW=|>;ku1}>ׯ;p|?_":>׈~vkkՊw5|{p/^Ga]{_.綩gzC(}CӨ~C_ҟ`z~|K1=x?])ue|__ƝiJ~>߲/5%ǰP}cQ pN?|~@:?|H~~/}uaj+2hS"K*jmYrEC*x(WM?ռ>S~h;V"1^=8OZR#yzz 4(x4+>'UqezPٯĞ(Ej~ZѐӍu4Sx2Əa6XGnF_|q}h*t~/]>zO_W_?DxOͫ_GӔuuy~Ze8ؑ1I'uP QğJ?O@iIKO;N/R6OΟ{1h>(}(Qu<٢G*~| U*T|u>aDpGL)ҌVy~͟XuN/WOx;qp=qTz?h?S'"Ti8$: p yD'%Pu@)+?-)>.ױN2*R>_)S(?gPS?qUqw׷.[TƿkJT}Sşe:hcyxz:GR%?0k@SM хS%ZSU^!$`WA=i5r8vӯőz_/b=UF䏒?ʯO7j?)G///J?Pz?zDU%1I *;4b~Ej~~]}/q~x3?pS|}5SPŎ2dy%8LP**U}?q,ht"_cIIe\tZu<}Z֔j|ڴO͜x:փ_髧;|=X3||qb͝xY1D* .c'iS{?:.5KPvD:?>;{t_@?kjy22V+@yo+GO7O:zQu~ȧYhhEtQh:~c+u⟻OQh1p?cýI{#@V"{UHtR_5:=?3ʚcOFUF њ Y$V:?1AW<֤=Gh~|æHՌS_0 */k̗z>Oy<^XC=^T7.Pi&8);|,=QNVG]5?gk?{>]_â?' 5u44_"EGNpIJ)D${?ΟJ~d _Zz3:<➄?蟗}ZORtn.? VL/jpbzj'_O~кS̟ ˃kO욇OV?fh?x^IڿWn,'}O?ёۋۏn=?<<ϴ~ j㉡R4zaT?E5*_U(8+VMNkOFxJdE<?~hU|A=>ںIԼ"c@j)'ֿ`u:ypxCΔ>, > _YA+O_'JƱC^$Wu~>o^=84nAut]e<=~niǰavxW՞_>+U>=<pw?pP>=vTd|Rj꟤U]1zGt:qR:($|t#Ʀ:Rl zxI4*ru!?W'm<,WV+?PuW<~hǏ5N?tzh?,ֵMAj4cg_OSv{CA}_?Oxi??SC5WWUI5?_E|V=u3Mj5jҾ\hxJJ/Ri)WWz~ T֟Ȧ֞hjQQ( =>)&yV ƪHWy( ]TO|VZS]ifqIWEm'D ה 긌e%_++?)uP??[S > ?xIAS=̏|Kð{np~'~﫯:(Vʞ|ދZ5Jߓi´o%cJ~Rux~n$uh@WҪ馚Ӡuk?t>O_ Y?ԜHO/@ȭr|85>euּ> i$Z yBqpd$T:|S)>i+(+R=~l+J(Oyu㣡H>S,i՟95zZl`?ޝV#q!$'Z4թFO08xhÇ|j?dNi,u W͈kz1}v׹xx9?4`q:'ʯ<(P͚(pJj<,_E%4@:q4<8qt#CZpSzՕGgB4K'ʲ\O{k"Ӎ?|qʞUԢ^ԁLkZQ)kJUQ}?J%=~j?|;|{qֺ@8^_i^/C3^VF!Ձ@j5 4'ȖRHa/C />Ʈ>_'ƌj`_A{G$GeUv=M_UFUxHU<=K~ק>|_S׃?|d_iG*թ~N!N:TIhx}#/ tM+$ ՁJyqT@<]j~tVt]?@zRAih A<*?c_P|?T/'z?s_ů|Yk'`_}_OzV?禔e@*z|bcZB?/Q5x>H|_8/^;zw,Տ<|=X~cz\^4 ~O*kƿ,zuS` hZ#)Dyz4$5xXR>,駕OCv=}dJNG+]Z~A@!h׬z}'?|;z z?h5RqǶwv%T??'1]N9tXi1}~>aH#ʕxb#|S|k'#y^DWB 5W N?kOU~'ZB[1^a/i_VME)Jt2,uapyJ j$κԼj, @߳~4^MJi%_"xz0t7۫۫R#O=?j̎>?4?3E3ئ]_8iOç}Iװsxۇq4z5};y|ǏO>4PeCzA_/4WE=GP1UGOP]5MkOB/?~>cԏadT+eV>\:WdJ})+ƌ!=D)/xqO$$q5i*Qzj)UA:#]ETu|a@ִET~m>ѕtz)$.ZT_o?XzTF|}Z}5iUzK= i~7=j]ƿ'аG%?G|_ScM ЪCЊۇ}v>|1L֘_/HԯϗbW yӁ?|h//,)]@}>,^^Lq>HV5Ri' cO:IM5%)VTz_ZƞO,)8>QNj4%#® biR\|BE)ޏq71ׅEy_)*JxDz8T?TP>LD}Ji Pi~j}?,~Y&{q_Uۖ|h}G?_˥z?zv|~i xxU^ޏGR!Iu|E)~QxA OhSCʂI'@zk]3À ^$z])O7^4jOQеyf)S(n=iM8DR/3R_) *Ӈ1W'qUqtZ1"QUS?SQƾYdUF|Z~}KʞH~%)&5~R}|/_Wc ^* 3qzvh^ھ=1}^w?z.wh9K'yeGOJ0OgT|i͜Oj еiµMTA8iӥaШTGYRiѫdGy2Mu,kg,E*ണZJiPh?֕y@Juq)hRWj*]:H?eT*5\/%T| TzQ=IkJ:ٯEy452~|?8vBCI +GBܾ/G׏õ_:Oz8!|W÷'QH|_+ JOPTA^* F2'*R&=Ig!H N5"fQƪTii_OBTFk5 кJyz>KP T5?cʪE<* tASʯuS@ҠkœAi5q/kG撗%|R >LtO~/GǶJOX>^a~͟Ԏ^RT>ȧ]W'<*>Z2tIA%8>1NџQ8HhxҕF+?٢1Xh'/~-M>t{qQc=~3ޟ((~5IJߋG8?zW/>2~衧3檾DZvzT>^v>קϧŊhQd~x=NOx>zT@)/Ƞ)K4Ω}%B{:Sе2"NCE}(8TIUӊEkj `%4:jӊdSVRB5jk+A.pQ)1|}?#WRPkHPWȲhNiŠo\M= XBO@?-zƿ}ۇZϛ StSk\2yV+M )t=󧶮Tiެ7d|O^'C}K:Ծ1>4z~AkCe$b}?>KoG ׅuğ3S<ҍ@<|(FRrek]t4֧_̟ѩ*SJ4ֺȅR'_$_ł$5O!Q_WZSdhFGG5`>׵^p5ÿ iOۯ}(R>~HO]~ЯY(d_aͯ!'O迈UMj: ~J՞*sG|CΝ=K}2~/Rԭ?|R]Z%:)=_C?a`\~~jeC M( >$A,v>|¥~CHzj5vxȄz(UsG讟>CQQAQtWShP,]G}{x0TO BWܕOƟq}QMYEzz=U_BiOuO~/QE%:t>)_'B5 䪃Zh(O4¼4da]#7Q? ~~NӰ|Q5~}8< t*~ʝUs_P5cc?Խ]{j`4Az:)%*.RшMyG8W?ueHy>^ ~/=Y>O>.}~V|t4Ҹq QAN(O@"MS֏?װʑYJͅ7mKkB w>>_pzS'~Qއ]BR>MT}R8:5H Q5c^:)_YtMtcW_>n/Pǿ5+cW=?hd9s@T?3=>.ԫuW+^{Ʈ< B^]J:Ǩ3}_?ԙhy2z+򗢞/AyU'ÀtB~_ 砏`0aN %=82NF~.# 5ŕ8*ץ@RuR8@%dֿ O ]=DЖpq)P}G㮡#kSּ:y\xBDG|FC٥?['cǷ?}_TxU|Wѧ֙O'^G;sB%%|2 ڔ8pVC7>:T5>a'/G֧ǷNCk:%_OǶW?j]TJH0kZ4z}$||<ԧ计_<+/??/I!*PuӡI>UG|^>uuN%:R AGvO!j$Y4i]*>=8úWJ?#>=81nwU~$hYV~Iq3q t!WBӒK\JC>$U^!d PW`?'qI~ԾS?WO?}8׍>=CcԭYS^"*_Txm PCGK.)< @xGV F pFy M)]O,uĿh>՝BUlMxq #$ tW1Z՝__Z]x:F5j$?/"qWۏn/qJ н@| }/O61GUk|>7~ZќcNjҟ}J4}"t*OP|]>}#u&P!F?:t]XP W ?VX,!z4a'T)l٭=ZuJk~?_"FWtjA#]AzаH֜*$ׇ.զ?O_>_@:zB0kP,>?- I]cOړ@sr%!IGٯ Z¬g@ZBBPk8 W|dR #cc5cR|?Y:ȏ_?W|^/]?[_1u~MRCŗR@><ُW>eCE']I2@uC>~?diZ $SΏ,CGBx/Tz:PSjj)R=>. 0ŕ4Қ}]G4jx:ZA)J?N*\+8<ڽǶ4{ardE:Xڣ*2UrBg2^RoGP2 >$c_^K1t%}5j-!Cv!M}U?^i<^<:t'CM8|)^^JkW֟:Q֚ҭU&jm!!>՝5z}߇WZ s&JFGuB:mZ:]} 4:7OwQDV#~OV=Gɝ >/J슰{# :}{Ӷ})ijezN)&VIG#}K4x]Bk?U?s[KI>OS|W_ CZ~a_ZkH,(Tk _>Tu??҄|_`iڏq`Z :Wr_ڟ|v/=U:WW=UU: <S B2O5GҚUۭ@:lirt[/ K t5s]|dfHHqF`yI@*Jh'5A E?uy?cRWAOHQ?̇_{cT/$7c~{D?O_B;8XZZ~~(Ώ%z=FTU(tr^ _rG} Һj"ɦ9 cO/z>./NԽ}k+{! $z >1*K j=:q d~а8V} |Y}<+|^]<>$X4н;|{p|;etBc8,=M~cxCH?7~ִԺ㚿i_#$**uN zӿf|KQS}4u$إ&E~_V6 O%e2d:6G /$O4+#J^ӵ OXok2('Zm΃ҏ_ZtR}>z_4z2GYkiDQ'_|t+xy+F5iB2֭GR_Nǹs'4YA~'Ƿ8/^õGJ^3 < //UvWҟxkr,/O+NAYc??WTG҂~<KM?ԮK)?.O*{)#)S/cd8G9OO~gWɞ,T|JA:~/Ҭz{'1Z{+)?"?m#i?!@jQ}KSꮢF??חŭI)zӃ_kA<?:v }sJƃ?YhXL:TWo|CGPP]; POH|?t2AWk$uIRtbƮR:U؍_%u(OĪ2GzUTvt"=?[(R~ucUh4Tcy!c ŗ]:=UG~4fO@ŘP=~]^jGK ]IO䀖Di|Oԧ_Pǘ@|Ώ!|Wu|}Ҏh>{Oq?hs/bOei_|Ud}K}B8¨'IGя0R\FT}^O?=uut5J4k&!(_+%~#WCOG.S#ssRyUET*fY|~>RC8Z|Dԟŧ99IJ´zw12ey|An$\ͦ :.Qt|{5÷ߋ~=2=_'`+<&' 1>N_š:j^2WՂ*OP=SSW*z=t~Y4}K')(ԽRW)"y ?7qJ x*1&> Qޏ=>Z>Ғ}rS}N |I+cm#Cxx_GSN#Z:EtAޤʞ)?/?HONj>_5Wf]BWD+̏ѥаƌMş9F~ۃގUⴚ*UA^{iS7Y%NuWK(PtHqu`?U?i}!r@O1:y0j37ñ|C׶H8*?s SQ*q~ק͂ up%R?/_~IO/HRr#R?q?O*|xQ|>5XI"@Ni9'E1p>QeU"iG}x4}CGD Tdgx| @U=G:֮>?z=x$K}*Eע8Iԏ%.թ+HZOAy['>^} ׾z }J%x&+Q^[]JT^q)|?ժEb "x-!_z?K|Zpd2WJupD9@_sQH$ھ}#U{i\k2Pr?-Շ>cx5?x}}PEpuzI=iPxh/R~OH /O>g0LrQ:i_eCT*:ҜAЫ_O7-'KO*OHJGSI'$i)O?xG R|O_J~On|RGԺ_ҕ'WuTA% o϶wU cAn(bzG_D"SקG{p|4Os?NIPB 4Q #5jBqJAuމOȺe#AGp?i]!c(RUh$kiiD>h_O?ަUt^??1ZbOK@ ^CztKxąHZ}Qu)p"BB k_O|̟:|UNUzZ԰BI?(ց*} :~! r)$^'!i JoGJPFO )?0ۥzԢ~ZDzҔ_t mՏ ^'򲅤cU@r>ƘS?eS:! O?ؓ}`Sqz?iЫpE{|QpR|?=_ñ zxJ(}|ntn |H+/UuYu:W߽)O0H=Rh$TWa q0PN̲k_J?7Kr&I=(O h||O)dWO Q2aϓ`ի/蚟ֈG>>qk|~qyTX5us5פ E>O uCʿ~?YD,׵B{E ? y1SҀ"(^ު5za3O̯F??zvb3}<_\HO|}J AӶ?d~)8wQp|?g Q}?Mf )**cO_T@u$W'ǂF?f>?uD#/V1ǶOOIMO'C̈́Μ=?v?GMR۩c ^3%:HH?Q +G=On~/_a(F }€cQOcN;_P!Po?W<."1+?JH\ֈ~O""jN>qU!I /DWsPǘ!_ ?:h5>NA|]b<8CG{U:!?ih_‡>=>hRӨ.GR~|_Ō=4,$t %u_ϵIIV*,<> {5/J?kZz>@:AnWY.#:O2PUB}G뫧x$LPzj;qzԧҚ}h'pQ|gT<~l!tOOʯde*:qNЏU$|_[~O9W.ƘGrT$yJk'}A}J5~b^"KB:>OjC5~]^ 8?$Rkڞ"ZOCJЬ|s̶j3QJuC O_N?)䈅i]JOٚyOࡂ/B.'Wҁ}Ui)tBGO]BO`=N_NN^,SG?"k/O{e=?`Wd|=Rn#_˖G`yz_{Ri'==: E*ү%yԯ:GO?JSDִ})_Rۃu:]xx0? ՆC:q-KZJEIy'VjCױycj)õz(UzOmK鎃:$*=|_Гh*OܭwN'j9# !b}\>x}phWү{yIpN#,~O$Cv=WǶ?J$~?c>'Yǹ>Q^KCqJ?%'j$ԡKV}UԽ;pFU >OO^ۋK?tuziO?\p|?Կ>=F]8+ ^EA|5_YI_uV;i% ,Š8?EhaNƯ@|?4/Ru?uv`:-4Aۇ=5s_N 5 zr=IF⯇z'ONPӶԲ߃h5k;|;p8vWAT3M>]Rj3=+R|: =On[OıJA:!4h>,>T u ߋ0kF9_vhOޯ?{;;zvw"&`I=_Vv=2 XL#c}K?NC}DDİUOAVۏZ>=jԃtN~Rۇp˪ttVz%}GEh^s"1r<O{hܢ/;s|?O,`",YR>CEzH?voQWXO.^j|3ƯKֿkz^}_vh:.`u'%F }}1>(@W2O/kGWAPv?^ȕ]$:QO}W<4/T~ehO?t|]Tj)ۃ8>!s?>P?=W8v;oaGɂ?ߧ L?zt[=t?|к-O^ڗ@x24?Whڮ mT=>NP780{i4%|;}. GWT/ TY);ڽC}_ŗ>2.|>~|wG~.B=2 UcRK~80kо?qe]SZy/z=YǿgO?5#Q}C/]*+|~TftSFhQxQ_~wM?.?xT)xVj}{qWOz'qzx?Q<zv})/_cG^ZC_f⡉OP跪Wz=5zǿ~"H?w_J{pqkGV_? RQkKۇݭ^b}jtw~GsGC|{on.Ws7 _jۋ}_Y|8`"κKǷҗ_}5zu}Q6ˇꗬeԏKRV:N;qWp|?G"o%C׾=|^}|_ÿ_'n?=qmw})%hWh4ߑJ}_|;׿ǿG?OcUO?eu|^Sx|;\ԜGEv}!R*}4ck!ej}/Aۇn=v>O<jCu|5|>U?i{ۏrGO?#kuǷnN???a?w??|;k8vۇ|Q?SۇO|?83Pp~?ۇ~Uy87~Dv?̟y~G8>q9>?Dpw?U#>>?xS:J}#T}<~S.?͏~i!hTQQ|?qۏ߯?|4Uq}?'}V@__W?"|8x2>7<>Wjp|C@Xߧާ-?՜"zs?~??E4G_/ܧ̟tRq`4}|;?ߡ?g٫8ۏ~/~/ߏ6;׵?[5p_Ư>q|_DGGUOߏ~?_>@q_ tȊWGF?,|ߏct.?1\?\ǯ'Eۏ|\?RqQk8}ᅬ==ix8ȉ?ԃy{JIOq>>fR|?3 !1AQaq 0@P`p?!9aIk0_'?z,t>kT.T)h5hDhWJ؇.scӫ:aUg%~Owg)ٻZ3ȪOpecLU͔zxi<8׫cÙ/ U"Ǒsuqgk<{2xsN<{2-&Ƞ9an\%}œQ( )@jAS.c݃\/,2H=޸"vo/TbxӯE(8UvqQ}ف"'n۾n&\ś5 _WB.Lzn)jRY.=SwEg|Y䫛xeG,GFO^ ܱz,09/ղ],<ގ,z HU<^i۳4`g6(vdUKУ^K~?w .U'T߻(^=uY:سC9k>2^lGCbx7oόR'Mf͏GRSGrjq^,kYuvJ9a:>ssbg&xUۙo*erxW[l,lLg20Y{("c檚qS>kX5]mTEN2N ȑ28wNߢPgv1e٤͏y7 PxX\-٬N=zuxG(|Y^oE,xM'C&6yN<~%DDr;sk(KZ/T}Uvg3Wc8Hc<ܧ_ W9}QSWSyTz&8T|\_z)fK˻3_=\W͆mŜ곟͝ FԼ:#K6gUNi^bҹĽ,>o%/<=M&,qaQ%vx+fh(l<|x 4sŏy^a6%uk?K)vҚSM9|Ӗ,yr/,%y4Jt){˜ԕuF7f/K<{v{E;GQ|]|ӻ=_eE&x{v3r*\fXn,N(q7̣=w;k ?".>)G}qh1 ڄq_7|5?ݖJi+z481}GW)6nXyLvo=smyE9YcNC4 3kےeb;/<_$^nVϚWR"eY#bȭ~W|l~.Ty㻘?R+!KSs*+SR29R\ҍvNJ8Ԟ[S|,xIȜ^In^.X6sΦCy>kudJH/^)&6;`:Ebx]^9/ȞP7j6E666&(9⓿7zn7Bʦ7-pLr?K:Rb\\dɤml5彴;͌?On|Of?aŜ)u bW픜ަW6Kl,UXg/⏫w_oNfSU✹72-t5_ye[J"dݍ}USwU lC?$ p܆$+ ԝH wYr 0G^R?5:=_1ŖyՉzXv6#&{K,i޶+// 26Tz+3I u^qۏ_wYlc#U#bzw>,߫Ω5X5l bƜNԊvk8B_aJq}0=WV`oE"!/&v/Նf6WTl]w~&{6G$7,as=E"Өw7"k8|ef xShݟStGՏU|X=d̟W6g~,|K/͋1Rf˷[VLuNTME3{b>1t6z*0pܗuN?ݣNva)ྚ6B2yc\>cDlRwa9(qVT@S"5i*YXc[^gOv& f#+DӎsB'>⮕@mqYxv:Lj ^_U3=1YǛ'o^3}] Ipecؘ҃ uI%8,7'>U.J|RVo!E({ǯEa<ӟ7PpYG<A`JY&+{oǧ-?U臚=_"*⟫ab u Y __L-b6fϪgNcFHZ6 'l19Y4eyzs^.MOV=O;xz,G{|.Uy8*".2ߋ*KVd_2V2 9X.\r) 'aXS>W1wxҗJ}״]#+ao/7|qvy+^,*uB5],T>)vE'U& 2+^+^ o WE{N]D6_7ӃoZ>ovǖǜE?Uk;Ovc\:ゐlb~l^P5a6Ʊd6wg~/Հ癹{-tDM CZy͒}Xܽ{tՎ64& sݓ9f"^O#C|9WḅD}+v8͒7|s~Z^N8"+sW4R'kƑ |6hMG*բ: 7 7\Sm#R=§K]v?1PÔaؾ뎬`#:_Yռ.)-:bi77&_o[s)<^/]n}+kz/[;|"ɟ?{,39bzW *fެm⿗!M㚌XJQm}<`%wz6ta;7|WPx| ŀ#ݎ; m@}{/\+<}y'J96's` ņh=>8</,o]%nX\wk$V>,Bf-}hBV~esyAAcx-N*!.n_򜯵=\"-C pϾ+ߺswvOsonl1Lߵ'P*FǸԤj!gw{<1YaV^xX{Sf/zMI)Ōg;IՇvSCLC::Wk,_e+f_~)^4x#kɥ \?^ł]Wf;17RJʧv9ⷭĂQ'j狷h9\ܞ$Y)!{THX_5ViyO&ɢT!yU_3GoqT4ΟbEUYYηv|To憴x+/3"/lipl$&Kƻ`=$#o|Y?}MCi17esR@P?SBoy`7#θ2YCp@rRA͜AϺ'cy~kxyXn{l<`hH._6x;򦸫jBBY^`j*STފ's2ׂ;Jk/dŝ:*qgbՎݝ6$k͘G}k&C_UysFXGŏ9^݁Mێ?Wgfǻ߫}S,oaSט‘Ү4s{S_?Ƌ DԎ'+ՙE Q Tem~(ëx,諱+ݍYv#Ŗgfj&♌tX]Y5e=?69Mu~~a׊Ğ;e6C2oʮsEf/|Tͣ59vh&QD\Y3ʌcRMcu eO= `eL;m#~FA\|yvryrQ]Wh PPw8r3>ךcDOuěH%GfjߓzQP拽]xۓeҼ\wYٱF^"y\uQ|/ZY+)|)}܉K.>lxnu;OTQzUf6oUf;7ߊuذV*+T e1xI 4vr]^eLqLl%jg^3Oq2i7 l{e<|]9oa|.z~Kqsoõ~i! c將ceulsUYsg1xV1t֋!pIB{㋍)͘Fj_vks*Xkg&>8;6dsbr6>Qf+ßGFy`5oM,Yc _+\"3V[>[.D=Iخ_aX?Cxu_~cϬfjؿcqzmX,iQMLg͗ܳ窑M;y7“ Y7sF))1?6@ݩ0Ucc+ՄϺdɱqXg;?2iԗ+د csW*u{9C>nE]9K;S/55L;S0WS3VqdQh5l['׋n߅>PN Xtͼygqq}Gf]ȫ_yX|=y?Twj^/6ڶwa=gvxouH/uz {VT[2}ڪ7>Qbq]C•%⒓x8xBj+^/2O|1r"*^W\xQN)ݾ r^+:ę*Y7i]|/K3x.5孎ba^[߽}X%1mK70{U7\j&FX ʹVSfY.XM~FJ;o%vPlMcZecdOm"]Hx ,eY;ֳ=iݜe_$X&.כa Y5oH#Wxy>G^w{νXߗ Wst4뺂\(G㟋㒱=EO.^ENnsqOw'[7o4We<bI~zxbv}ߓ*g 4ߛ{xO͂TzNR}e8:x4XD׎oQ\_=/6Nusȇqrl, H7ҺxƤnUe)X9Vyy X~o 7L~h}8'Lq3yjdGp}מo #>ϻeO62T =XPN7eΉŌ/L`|ЖhwϚvTq6lœ&^WQkVvz:P!r(JXCXϛ;7%gOd˻D^g+=^s|ׯYo3sQe3EYE6'nuN6 LNvwy%'Y.VXnd8|Ӡ٩A؈Ͼ쯿ydXcn^aTt+;b#CO>(o&at)V3^,XGDӝ] EΜXζf4>wyy7¾zw,gU]gŅf/?6?ዮ%ҍՍɪr'eq˓݄,m3<\ɰh,qIWg6d6 g/yuN9WWwX ~-xi?j4~,~WA"5(ş_Ub'+]:L/2"䫆2*&V5O-8+{9\"˟8. 4Jlo(/-Ηi c ^KUbox/V>O;oc6>&/#}^Br, KW݄1ψ@jʣ=^/TifîoQY}U鉠/1w$Zowr5bI *FoeeCc_F{*Q3YO1LsB_Y8^g.~sB)\9?M~jFT2k8a5BXrgѱU8j#ݞ:D]zQRz࣍;lsg`bh vUڳ,; i/uU"cvv˙ g2x扫ˆ+ڜ\V2lLBW,eq⑄PYxڢvzaӪW8e>+g6X0Vvwqq_TZ>,;w]HE? (L\<,eњBV'K̀7d~kܮj$~H=ؚ&kI=H層*8mPSݶGgaAߚt-T o7“yn)շnteyRL,ƿ HhtSd~*S6itW͞<\*A({>~^~l9cN|8s" ΩR?ȱLfˎlǪ]_&7/<>lǾA8]xay,9/1Ly PWɼIêOi>o|EgOe]rln CqqxN6ǻvx(I,e_(6_n Ufx^,+adR%Ͱqr1Y+6w>o2"ë&G0Lf:K.]bEqEwIvcxd9P5@}lX(GVHAXITJ [`+]54Lzٮݛ$ы Zl޸?6D "qUgvz#*ypuSq-b GwH ɄWՓr˕O] 7e{H<؟W %]!U{x18ɖ|>iǖnXő'̽klDlg׵pgE8e7XA8,o;Akk/c5vU*zH*aҏqb*sf3drsWņ3lYahdQu%+=U'oQOzh)&)M=MWy^&ocD(œ}E yO oyqZ㩲KY&V|E6fܕP+]`Z|P}OH͔?] Ջ+oClc9z~[N=E,ly.<Ő:/5".ahYnM]*o?꼕d2nrn/dUxLV]şفNsc,6}.Nȩ8Y뢦;nFFFnB]٤o{|x5_g4͇{ DJY5z7v 7!jy&rĿWJhB栲ofydY'̈jV_4V3I̯V$,fS9u'tR0YkxGushn]lT63>stfDla!ҁ=7 8r=іU 5/y5HAA_y{ϛY狟HQJFY"{yO{sMkJ5Xr//YbK]%iWDE+K/O>c}L >l?'݌Wzϋu],F~i<ݐf`W7׷,g./?׻^/_v ~*P<|wŞl`&jn.nWŚiWHwobVMP7U.,d,,D}޲Mh? Bk_7Wڶ'&mk4+,zMlX󴝚;HNrq`K NJ=\>&qydՀ5, 9q0kr>ŽD.<ָ5=\^y?m7o\^驿ݙy"ǚm٨LTy+^Xsx~oFW5Wb;fz͒z+6LY#.SvSR7bs_^_~k_av/ye9esy׋ ^ _jMfzM/jeOY^_7?W\+{~,gVeYͼŚ2#ϕo~.<*Hu̦¥fEP @vtLwNxX;W)?sH.leo//]&EO[Jm{}^=]~++M,B2<66Փy<9lXyP.X:(g,~+z.iP;xIF;~ҝ_voyf5~Ud3ɲ|T9^$;M3dfξM"\6O6}_,D>+nf݃k3_yⲼר#GMbxq`C69vT{=ߛ5YO׌v/)3 :h35/mcPMu}qSYݎx4%Z&ܛɽ8Sc(:UlKuFcbuG?Y6"]]`wc lyc~k/'2M#ݘ3Q33k]Oϒ3>i+$X#/uK碪9cgXNXG&ng{a?4"~lOO:r& 9X Y+XgRj7oq\}x.qk'6#=M/~[9vkB;cڽv`|X'|M=cx9JatIBywDXgx(TR~k#SVNqs}/}%jC%ZyVy3͆?ʽӧ<PqxMM"kk# ԟ%\(*sa_LZ}Ӻf 'S3,h\<ح,z?㸼)Lcyf\xQ꽓<ݟs;,To;/5i\F39Ƒf^: &se9fLs~ z6tCņm'g*N=qms͆|^YH͖x׎=1lI~k:CpvIȿYXxXr/Y7 TnS3ky36nIӆ]bk7 "_>y|V%'ve6T<|G6;+z_7/< XP/?Tv1"xJfjᔞoMЧ b*>3V <'͒0ۜϻߑ?4Xp7L5g&, ~/qgoY䲕[+qyŒn4Vs4fQ_*C wvy7x+M'r?_Ny?! :u|l q^Ra3{=D^JG4~*)vl |GԳ98V*5_ڱ7:x˼RH"w)Wf3?R.htŝ6'lg˻>\ {3/er5.|)>j8|?vŘtzwǚ2sFrgH'hye+cX.ήs5C_wu4+8 =Vݝ穪mɀ]>+NyXS (a͈l׿6|^,_50/y6Xϛ+|{Y>.g+W’&KvV<ܬ7c<؈Ϩ^yy{v , 6s*sQc͎,wEvR&>.~,<}ٕS;XB_R`7yݏGWooWa&~l1hX-fz4kUqg#(O| .jO5g>;W(Țlm8eƿ5\qg kƷśi]TݔHHYN|6r+ʿbU 7,!_nlQ'n8Wߪ \+&7g9objzs,X/"S3~[՝Cc©Qo`ebR.kК* `{]ENvr\XuDg8lHꠛ=^.fWW. ͓՜0ӥWz)Ȃhhzyr]TFsC XՇ"Nɼq7F1iQ>lfS f2dҜ]Kq7YW4x5xx=u\ϟb{|؎(8gꇻ1?&CdBȟ6O%Rq1<8<,OlmYt4Cͅ;bʧgud:xty^yޯxk꧹yXJz1?ٿ4G牡͂27ş"h 91sQX^O͙ Y&oe眿/^=^$qF8;i^Knf^YC_3PƼҽ߻G'+/M4T݃L1C>|MxY~n]=iHN'S^k rl@ɱh9棻cT;ߕ z爼,#}]{qՐ.|ӋVqWRV9|R)o/6'g_݄;LCb+fO@淵]uI*<ݟu+XF_e~Ua~t,JËŚbo/ǩgg(/zS杫wՙ*`YDd8&O+<;`86FXywVab&^vY۾(wuC5*&<*¾,_&/<~fͳ"Tsnx,XPua4lĒE5h3͜; yYs٪ZjrC]xL̬MfhG-&% >+2zo[)颌ꆞ,4ŝuj~?O1vJ|6>oEdOdQ.!۽R|]Ʀz 3H&\5Nzsf쮼ݬgwgl}Rb,@x+rBEA=Y\xo.X/O W s(N2?lLr/+/WY9vO se<t wjaDYvCu}݇n:V/OL+TNߋ",}Q[b(6@ Mϝכy'y]gx*]V<>}7 7xRU,x5+a->n>)͂zu2vnwxs@8o}'e-=E z]K60l% ,U7V]͈5q(f &M:i)zOEfHNn(b9VR'ǽŖvKHnwx~+c0ުKWW3;e[G1rR$*Њʁb?vx*//D~yG^Ӻ{lJ^,/%}e{a lCi+>/9:_@tu*:EX/]XNu_S1=a)Yo5b׊1JAc"g.}yE"(e˩xi1pц#ʽLm>DXEӅHJTL/|;݂ƐŔTo9:_v9c97Y̧/b7>fĜdb<$vyϿy̼qkȎbft=S_ 3E52ss_$^"soӝo6S5鯏5늉#豈U6eʪw3*:)\_h*5KU׵wi~Q/[u<ճLgBlnj7GO!gwIwXݰ+V7v4y,V{sAN+,^׍hylTq͏2D\iafW;O,oNߊ􂜻)mͧtqcJr rޘ(f8ͲӞf#(Yw+dx xOs_/vĚ\{k2;[I÷K =XPqNyucz';pnOTnecs44Pg;@r ^, >/e~k&619evT}Sr#GN"-ﲩ2W?稿 {3G~,fzNluavV^w/YI3Y<%*h*f󊛕`[caDVqdz+0ޑ*q䗯I楐%i,ڙ)/'&c,W$Ǘ.hx nA^d댡TjG5v.OJPV9#`8<4;ÏM"I>o,~ܥ>,xhV2(svo~W:s9pYU3Y]Ň/5sy(LQ_R+!x*9s7 Q줍f&pU2Ƭ}QrQM'&{l3S0sXW mX)i駛DvK/4u831.݃q9$(E1e:*d^JRB/=u۬3⥊Qp~ϗOX=9 ^*+G<&!vq́W>n7וh_\v,tfSdfX';b; ;Y<'mּ״Yc^ȟc7rq^XOT͆Y掮aԓkⰋ_0=Yh"+Qe[W/!oY<'3:_Q=9UljjzWLwU_͘=9|ri_3Ow|EYk=ެٹ^m?1|ok15-#r2#8wۂ(|Y 9Ş~h~lmZfqsY}qd4ثxX^S9S ő?VOD(棲R&NYy(Y/T_?`b͔UHTwV^Nr77݇fΪovb+κKK`vi'w^i{SߋYuHƬsd 2"eߒ6{b'򋫙z"*=Y!_-ղ!U6_3}]U^KqwƼi>z}v <ӖHVyLvyg՟\ sz}qCO+,xQ (hlT;uR5͝C 8rs3e+?K oJ/aQ yg'wW.PՂz *e6Vif;} Y*GyT}X{S(A MaC,QE/H|Mx~"ٙm +|al&w5Wv,.iG/L.6ՉfoaqoM;J.4'|lmJ$Cnח".8(~Ak*N.*aT. Oq7y'I*| /SGws"jgr8]b6=i}w4p?pf2ouNo3U٘ jfYCq!YW zMɠG8/703G\Cwvv|[N,C}Vy!x|P̤˖I W쏋fkVaY;p|y2h?(0럊rYg;v`TJgy>+]Ӌ*Q8'ʥ_P*rl|7o`:HrUku򠓟5IUBY島ʳg8]|."_5;PcfC iC7ĸV?œo߇LQyaTW nusM{ՍɖIM_#w?u|'Wa՘tX43n-v<޹T4WV4nAx WY%Lɨ5 xo]>+st$ōyxvwjJH&rYDF_,g"_WVwV96.rsEWc*7֓5guyϊ~"ݔWy+Z^Ef_t2{z~H9.ұRuU0M*iR( 9a(3q׏1愱ŝ˼~WZͼ O6wVA{wxx5f>",_0V[$PG<}_,',>z`͸!`?<6fs4,JvZF=YRuDrWW:4 ½aTL/!;yT$ۛ˶V6g+>qC`aOϥܟs^)zdUvT.Vb^Քdf< Va*Fq[ⰱbvoK,x6fyzH=؎ xx^o4{j_ϼlpПþ/+ Rܾ&M}X^~Z4/9ÞHU`n5y٤f XgyGrb]TRX }͓Ne]Wwzyk~)]ʦMyxh׏qՔ+}],ؚGW泜kwuo4?(s}( uf\Z]e"uty<~3c8+겖 *6o/t˄;|.DO 9hu]yqŘxx|V蟻7:3^t;H^G7'dVN HR^b_%lL׋뫝kR4Cq"nx&gghXOMt{>v`YX(9Ƿ4eUœP 6t|੒mAyA?QXv+~ʓ{eqy>n8)w@,.͓3栧/tCeޚe/y\NgFy>D{,y,3\͒Znsݑr. ~ld#CՖ /u(V"w;bA1s<}ٜqHm|TMxʻv'nW1d#56Ej&}]tx/eM^bHޟ76UgY Qa*m^ߊp|^z݌w_o/Y/gw2[Oewݖ׾o'lv kB9whEut+^:N{^6}QY01PTD^o gsn,oôz~*vW/;Sy՝1eL={V[?Ŕ̽oT(6P/eGGޝeک(2]zqk돚ptH&|jGwoB4mj @#eѨ#/7B=y4yH2ow\l=ԇjo5 G/c\q]9${k^&zy-'ՄxbX9wf#{b'3>,۔aVR¾}g'}Y~{y9qcx+Nib;}Ёɼccez\^rjk5j^g?N}v%6Af&⼗b̸Y{\T~Z{,A,ׂ5V[ njLWt5ߚZvI{wOŒ? wH'A瞪9?5V_,qeݗ5b~zDl鎪i Z6(3gՄuf,iE6S\mK7rs4!`&3_Pk_JT+ WRe.IL[Tuő29}e9S%,|kygWLcw/s,9(^HgJV~n3HUCþ~)ߙ'zAO,s{"|lX$ ^yXŎd7狓+6C>lZ{f^/95&Ѭs=^'Y!&{SV,WWK$՗LNjfydwm&5<5ⓒ_=]xc<ճx(6~n" g9Iw4jf|q78Di&CSw,{]{r~l] 2|sCʜ;k "#‘U<]I_],vȣ#Viow+O긳ctՎ(̴^Hl~N_7p OguR,%&Vc͟Wrig57^;jtpYQa1i}ߢqc;8kxX:¼JwB,דBS;KrlXJFowLDXpj#ϺYQu;6Qwywӟ>+V8i<\*ķigf&E\}jf(sӗEc<.Ǜ|\gveJQ̈́^EުK%R|ʑc.Cf? $BV<7(i#\ C x008)c<߄5IoXs}/n?~ZC ,%~T"&14)4GDPpO+1|zoO7/΂uds)Vs1F"+[iҒ\#k7ߎObM`gš_ "ب_oUy=ՔOËsco%q1WCiT9sc fu{|U&Ebl09P2jqv^I*8QO5?7;~)Mc爺D?_/`OHjq\Ss׈j鿅eyxlKI:k\/ءvlh{N5+`vńǪ)񟋱$ٝaG5 -oa -5V5Ej~\qǻ|c9**2$_A%Mg*>jU>*zt&ǵ>i^@a煿eB DgT3( CydjaT ?Hl"&[XsNXv]y+%%F'VEHǪ/hjU+(rXO'5>DP̶yJ!Jl^B{<гڣW%z |WP_edPXW,D)u#H]Sts.FX[z4r"mlND5ň8WŒ;o+jEV,Ix+)ݑA= V v޺ubvS&+N{^lǪxgK,E_?n݊lOCr{էO7n+L'cQLYyEzh͑FVV%1PY3Kh?7UQO(`dV X^H'9n1=,KEw߈+\C"!gr;GKߛc:~, 9WdHzNhü|X}x ͂x'iPy)pn/4<璁4y2TJszcl&SdO|,T"im.xu^vq{"}qdUHu9sL#ݑh-5HLVzb>ډdɱﻣ6+gvs,Lʥ掲ޞ`A?5h4bsxGrJp_TLSXGdӲro|Xkַ(=j1Yɕݠefivi`l唝]Xk0'݂Sbn=ٛd_k!Eך AHX(W3/o Nn5;;şE ˼E {~Y{Gc}VyِPlvK{v'V_Cy7)yp8y eXpm`Lљqf 'PNoO REk̃ȨzCǏLGygYKkw-h˖#Q9v)pJ;o,XgXCNg$]Ж.VUKrDz_(!3B(}mοjxwM )~R ROwa{'7_ۑ d.E y9Ŏ>U_I)ҧꄟl5 ,PT B _t<'8,7j޶owd܊d yxl-6YGGW (B`_%>Ռ^ '}_USՓ~z{v~\*J\>/ү5g 8_B))6PcLLEC.ՇM(p|ӷk+(jqN[WR-T <(^ĪdvQy_&2{_ܦ.:>,*̮sS럊wZfp8n*S<r%>߻GԌbOf:W^j1U8R|T[ha*yH$>{a`kp<|;e{)ﭮ"xo#Wm}7w$=켯|=^bh x.MJDrOf;_}(;cՇ'5G2aX_XO4;^lEﻩiI2VSe;ov,oySûa1^O%lYin)ήd?=sOl>"XWMzЏ48k">F;-Rȇz?UqU0!}T~:P~: |fg,>HB"'^őכ%?#}ԼU&5žyUimClC栏4?p Yx^JwőOĺxGHgӂ5a #H xUڎw4b2%ϖ GOni#0'ci~L#M/\pCi*#qcDB7U?Y;G'E?W>yzT>}=&/c|+9Gqr8e{ s}QE"-~~.KG Q<}PVI=XP+v3}ON. 78O*/5C4;]f5W̗6 fYCUpY]=X↲炯O NV8vSՓvT/́B%@Qh<Bj ηtVg ,}x6oI% 7]H\|Z*9hzo#eUzT.wt`ͅґ1@&4AX7/6!9rȑya^Evfzլ1 4t  ^,aۄǪ4ř!qWF4TRlOҥe3ɐ}Y (7wy]ɥhRG4h(0H+l1"q 6<_sٟ8_%rl yb^[|^͡}?SҔ_,] dd^6wqXdMc9F/YYSaenyTNbܟ~K#ʤՙq\5` ń4,ic({KYLwc|X9?to])9PqA{y~i8͔^_- T +< Hl^݋˵^DE=_>=Ny 9gn5͚ZM\mɈl1./ãzx/1zkޝx ~/?<`zC G ۿiwF/ /'CDT c' ϫ1@qw\=,wa̛ ^]l <ΩEGXf߃o,`s?6#d8U(k >hbH#V&D#bM.SGyJ<2%@*׉͡UXwr,JpeGNQ82Y;¡"Hs<е .JίtRWt}Ey}?&6i>/K %[Ō;x(,^)O1AnQ'ȏL 5uww6ix5 8I)E^~)4p|yIȃp.N[<1HvC:3`(=`=LB ?jHQ:1xCMc(rK1 \}7A'ǏDF^*AcXO-xȟv3f;;qJ|,]7SbUTDV|X|b;S/KDά=VuǹBo4^q˵e$= |!uG^*˚$KJ}+4Mv3x&Ǫ8QNj=v *G6\~,>.s>*5xB8ڢ=S#9 9ix%mxC\]{.l{3;I-f<|x窛c_7Kת?0uYe㋳Y|^%Yo7#];\)__9cHqe43UY'(y/J\6'\":<ő"s~xfxE ɤ,{l,#=^'9}^}|d$d1anI!h0eਟ jxC:Ls4( 7fLâd]S&U5lϪV xE yQ ~T٭gT\\?ȱ1pfo?ع>$ <Uy\Wk=ꨌߺ,ɜ&blsOōʟ40:#h&evy\3[w[dʼnk͑GPh(g@ED!!TȤ$ӅccweM\XGBt]qdōiiP갃rA-G)8,.<ܑ$.Ov$ʊՖ^^ʒ`ՁcYbi.|RBץ9urc~oHߌq|ծ8G+x^XSlp|g6?W{ʟ{ geT)8P O34<(_TW8^ a Ǻ?3w^Kҹ(tٖxwa'~(%pHo9?+* 7Ɯ|T;:`~h P1vfl֠"GZG4@Ps͓jY1x1ߚI9ş<^}Y_yݖ̎2lL9#-hL(ӟw"5{YzcȹՌD5 V82*uŏ6BXfߛ揷l?“QGa}^+TXHo-'"BF6 -BqX\/^&uoCf<~؇Qh%_1D&ExΓrl@OßJ+%;/H۸%>w:v1_$/s>AG*ھh&@ij6*;_vFCjD'41ZKwG@s%~=DȔ=w=N|WRSչ2:ft<15d@٧=Xb|yUbx&y]sab7gugrYxǚmسh,CX-=P#XA9=]tx؊yUB* [&ݓF>/\Mu>+-Btk}csܗ\W͝cQ]RTwT"{vn^3Bv"k's;S‘犪7A5<v6jCCJYx%7,GSMQ'ʮzLu<ߛѷ eZ擃cN//tXߚ' w$tX)]xVWU槗6}6Uv,jU:*3Y"PWVnOWxOw5!ߪLY)UÜP.")|GO= GC(d{ d؃ю~y4|W2$g5~„qJg\yP'=$ x,2^gA&mLv#L {BPu ̨W%ϷBcAlj#TH>ͤtGܡ/КL=s,~Bz}̪q.n1yQ~,O7yƱؕ"9 ̜g7XS5u;r}*}( ʋL^/D_HJ.Kʇ6,J+L$M>RAO)>v?C$3 \J gB̴Ib(Nhcŀ6nD78WYWb&nEq7 lCz@/dz?4УxgvJIE݅I>,J7ǝĖ la7yuNlW ݧS_pO|"[xk!C5 )-nitH%(FV=ؠq!#:U v(FcVSi9]z>Ήp_x‘{ ńP7E'F>L|sT8W_G#ӫh7ht T/4e5kU/5|o%Qg<Г+٤]Y?LROwX3V1|q\X=^2&&]L='4B'oU7kw&xlh oϊ4N/bX/^żbj{ ʃœSV?ܓ{Y~ s|52ߝAb6sa QY+rt2;so YfGrך5y,\=Dۓ' .p$vЍ)hCQ,4O=6m$]Sq g*`<)z $>16 ' Q6@fXHx_PLuDc=+s5&fx|ƒ38ӃwIb8ro<Kbb'P`<1ϒ}^q'3^b`yGF_Px=eqJ'tp/"~ Kd:>N& {S 7sgBWI9,YO CN e ԡ#˴o|r'k'ulL"¤g6Dv3[Ψ3݀Ŗ(D]s|_p彅<~lqr|Y}yXy/6Hxi_\#2WR-GC ۂ7l<|^soU,yn3R}Yo홱B5YSKt|c42\HaNaNRp..Ydc,lsLt6x+?VkLXu7CJyu>W'NjWc~K8y'>#WdmޥˏՀHtˆ46A4g3v!^kL扈OIs3ʖ5c2%u.у kx*8"pf8hO%'yLx^)ϺƩ#gXFKj8MJ:3mފ\HCF|}UJY}{1wX ?/(rLS8ȞX+}ٰ{b8|Ta^$9xOr؏ofH>@gq4Wp(4\6 Ts|b=P <Ծcit}Y.M~:SyFdNCWF\yf:KQz)}2nܠ֨}*Vb9.)1zxr4V|W,Qk48s<7l>޿͒_"L"Z#&}_'''3/E6L:MxP؛e⌧[8u 6.2,:7PVgW1WT`+ؽ|QMtkݙItRGT,sf1kÅ>l՜e͚f̦ea-X_q^'⏪Eb aU}_v؜BC~-y-A|Yk%N_&_B\(h{Ӽ駦YL^;26LjEwjv1)e|M攘WVE8)`v?K/3yjrT/K!f*>o?Qz1X S/x-gPe \<)9?\ƏoR?*7ωd{r\9˝^JO?Vlr␿1r`{bΣ3$Ϻc)C\?p.,w#'[aLq@='eV957 '9M :u9rg%u3f~!S(%I|өU8c'L\C~,A7-8Rl!oѕo<_V[5yw(fI`u"ӿUb7=w7|M͗Q4~}XF\MJEKc,b*'tJs_y<ߴR3d9& VdG5"'mJDKE=wFv?vvηȜ&: sAhe+}"g1^-5}6rD>X>,v5ꇼ ?W 8l9>Xvntvƒڱ{yHڡ?lCnXRRNJ(#qb<) ߇ҿg&71Farazd%ߚc# OJ8<,v!/)|P6>E,4POx!@ŃFY//&p/:܆񟢌w7SSڃJ6Q x|8$(t"tM, UډT^$?3](].7ZOl&'&^c}EG C}WAL8yi|^њI|9*'ҠDq J'=leoPiBgՑK(so/Iզ3慊c*)x;5HȂBqAhG7<Tn8uWѢ|cQ. ɬA%Q/G-eVBiX kUC*xu_-XMg( gVqKŒDPA$R 3E(B`e7ϘYysxQHQ]=C3aI6l/7ROttAKa_pxk|Y'LQDo>Q t0,i𖆥OT~Ս*rSDM|/IG2Y? 7 ?Qt]۟ޯO+RH?$(CA$ҹ(#LTSfAbKxi𰏛ˆý'F'PYQN '|qI*N3?oҼqK)/g߻Ged%<&5/U$;Y(i⛑Vn/ ͌sSQ,zLe֊xIq3g^69[52%NP< YCcgY)g-S?e_$YAJ0 !S&Q7b6Bvq~YBrU2m9uǜ&&M]6C*}uu-0TӪ 5:we15WTꤽE QT,W"+r)uA^W}#y ( } r F:"bR'_dՍ+#ŜM <+v'$F  Κ'(ͪGP78"h)p9!^Y7>r?%VFBsקYy6 =Y;JQ6~g^H`lq?xu$濝=L \.7Ԧ y>ᗄ<0]#=8P?7~/|lisT?jss6m:j|7n/ 5; Z$%0G74/{sbMͣ杚M 9d;M=XsPUWVkE87irՄ9l"^͆ ޛӵͻ34FEԼ?^,UX9 ~x1g[Îsd$FPDž,R4!|,PP$O DgYd3>:0-?zQ4StF|wqxKjJʎsG̀"zYFl"XsUT5 SAqQ&OT'+ՙ{Q}1cOՅY"fa'9/_w<~nG+,ಹz@ldPyyyFuMEyBOOOX859TY6V~l3cYg\+Iy~՘l}\o⾕!oK#^#k Y9qS'.a牱3r5͞3#?uW &8?0|'e#Lܹ7'11h̀B:<&ch䏷`R@MC{SYbZKD^F=4 1%wB$pܥ8)\^ !.OD"oUfv<l.A䠙I}g&`fc,/%v( I4 6q@Ccv 9yU$2regFLji1yDy@?ƘA1aLJb(CSsf 9T)5-k8/~+KB<}0YH#Ǜa'@B^sŜ= esQH{̿͟n&ʑc'<^k,`Scn chE@16m_ 2zU)U#鼔q{Y/3Ƅ^ kj*?V~^|\DE1T/5s65ݜ#s?4_D73')4Ǫ@95#= dDBL #J܁~1q?GPVlyrlqaj M %ČDp>g9=Qa/uF"qI$QJpyRy/u ۠8$\xƣ.d7B@{şkqk: (J IyIq}l% 3Ct=exC xs AaE1)<~ZA|Dc *`pq6>K -iGז1@P܅VHi,4 e.)öaR(5)F zN| e$H,%H@7f5!z=pR?5=b ;N⡿w.w{s`>x|]=wW+4=%+CW>GIm_` {tBUzv3@xE}j+$fgr~ʣ(zk0vi9 擆>)ro՜2#gL q<(9$XY ,؋GQo?3,pG&º_<".'OFhO9 ~|=VPVs6xR=m?u\'u{>+&aX !NexΟ(о d)M_Cʢd0WG'҇vKA3P:'T@ED*P# b)0A0`{֠%p4y$Lb*A(AI=P- >=[F`8Ҽrk_I4X 8j&'M jDT^vބeX _2h#/IӄTEEw)c9M|,USMk N4ód;-""c*i:3W):WqR69/i,}1'v9qM>{q\l yAx"&9x6Q5EQe*+;uӚ_ ~)/vC )̼(?\2l_TdGm$x~ XTRNe9vQxUxC x2IǬ;A2鳈)}v/_j_cPz(=˃WPG &~Gb<=ToBc9q&{[q'k D- w;9d:ϷhtPʤHHn\cLLxT pάJ櫑_I~r0~RLӐH62Atb =:@>IC坟9J<ݔa%04ޛ&! ⻊`C QĸNX˃P>.rp&'X;G~kOu@8%.̓9 ǚ&żsvp/'o(@z2LWK͙W2Rރ_.ﺖ^e)q׫ gy^>J96?Y=u[B͖(ՙj6$DR9`5j͒;(=CT+Ow鬫u'fo6:=W^,:sbZyr_q`"|E"9s3`K爰dc܆^j8G >O*YU.rcJH}gϛh}X ﻯ,.+U0y.3h}X4~ճ(#d_^k38yg*/V@3t}Eûx2;#JZך/ğTٸ&!x@m0 }f^IH h?4 ꐜ$J?՞oK}E# ;87ogEC,8T_~(3e_Վ!))B"@J*/ TPóA %,I|ҵ.g?ՒgL-}ffHʑaNjq^D$n&$_8s)a"8p%Yt|f27ZxS(/3ve@IvLX =9/!lNM;2@x6(#) Y{% =UQ:^o@j\SYbüAǿue,EpwB_;G sG?ʒ2|)17u枊{q\^Ya;S)Wj|h%uO>+M{f#yţT Mg$Ɤ4)q"L<'d; ~lX>]wkw yF_&̀#(A%V'W0!rvC;,GcsQ:5VmȗxtslM~$E`]1h6~+Q8eŀbj^ÿf#8gG;`6oFQ9~,+7o+D+dXFGnƾ5s捄#|?]ٻF䩌|UpnYeŞE į|^~ X%/WD+&5g";֨CROew9.M%+(]Z߳W|WHyh~isA7 (b:$h>&]=,lݏ|VI^/Tcx7(ݖ[2r<~>k6 MNk̢&bBp>/G5TyTdQHI~)>,q0r/.υ|j GݐLB<ңU4:zךXF&8l1`sϕPLRMQ%%9> e1!h*x%\ds8%@ɜ9/9{85AcU.>̐ayy@upbK* I6d5'#52gt! dL']+72>pʎIpnKg6Ud dC_OYV]Tr.Z'BCνUOuHC10Or'b'l)掉";xG4SM?zr+jD?}WF~:5։P_<%ref.,v*]BZO]@3T:xG9xlAgy"*>n>/Cu5¡UMx+6AVq%TJOv'WX}w̜~ ">/c9eA;x1m՘q_a8KRAe>TyGxr6,Ybݔ79_줽YN }J+wXc*'fJ.ٺ4;]?6Tnޡ8㚉D/9So!Μ0XFt}QGFQX[b"Vu5y쩳I>IDG :>ˉ>SԀN H4tM!5jCy 2Aœ5j9a(Ô1` >>N#C#0!ш&Z8Ļ #IY 3T34uBw< :=sS> Cv@ [m|T;Rk Xq,p'y&ܔլ늌 * Цx0bȤq4p갛fd]8F~舦v\2ͅePs )S控*2fˋ냖H8O1Te5#eKUyʉᢤw3^|,l"d QC^DMpuQ*De ⑒t;^2qZP>QG\u]ws `}if TՖȝ82NgNbs\<7(鳙HJ,ܢV7"> J|'O"SGCIċ?rHGe%Sf2Ox'J<@aGzl2Dq= Hz}X,sXtF@|{w|11Y|i6;v|Hlp)@ ]Bu=-[wn׽ǃ_;2oU؟4 S/ \RGg%tע3Ŝ7n> yS~r^u33;dv.CD$ q80Y 2G*\NjG壼L+cdɒrҒad;,}/.z&(b3Xx,隷Ht294IY\k/ 񴙩+a*%}|~1Gx(m'fx{kZǒݘB⣉>yw/iNë,&Y\g Y! dܗfF.'d,X.0>!v":?4Ò=T.%有(wG UK# R޼x|Rp2N\TBH =r;>]c>"hdq |PaO\QJ=Ӈ!CH'`ǫ-t&XH=Ɯ|%% t`g/@\ 9nY@ 'v\𥇠OQV_jRgiϺǩ:窯wTw{|V,+Q;Q%,tOAj0IHbn\7&zЄu~I&./DAnCdDFBVM_Xvɰq|SdZ@rKǻ=* R\SK/Hkq^ZrFtC=P~>#>o5BRia5)j")RHGOwjA?uP͍}ifGZ87UE_=YE!=hMb`1=^7Y{ 5Ϻr?v}GXY4V/F|*9e|'+}8k,.^v/Ԗ*ag懣g߫t.R(?Ō?U)/Dp<U\>FqčKts YT L͝duP ݽSo ƄH볋=lVnx"Dczq$ag~?("+ WDd$@}ep57r]I-IIK=̶( XAxS$ؐ2S L/VxО'"8ԔwUb#ctat *^Զf)F>ʥpx8O-0:=Ǫl=x{(n /2CBa~GDq?ܨK58}l!A ,#/;V`c'?/'PWXIcRؑU Xy/"7 u!'@Χ)Շd8cN Y7'՛͂(iQCW|?WCr9[p$T72M~l7Yܳ#J=' y>,7{]UoMFV )5~~j;L}PRVhZ/3zYQb5H:̵| oD8Q;纬/W!εjŔxv|"MOJ=Q† lC;eedRcg?/UiD6CxxZ&z:J“9'ӰN#t]80d-|Ryk>.Xk0#;)q97CDxRyÑJGL]),,|J6qQHus-tvE鏆{E?Jz$ϛ X1\i4q׳LO㈰y|sy2|(\/SBS]e\7$whZ<=EAᾪ KF!㪱f1ʜ6"w1sf{,G(?)䞥  ?K ?VՕFnyNM_x>곉93@ Óy45Őu?x ^U7DCcHсi켴uXf,WoceINjExPTOt DF?4BKydL]WDIlfLpc{nBoB5D  ɪe}?%QQ!Pn|\YhH+l v3V0q3a'9EC>n cTU&D POW ad]/'N~ǎ.9x~jgpꪄs7u}~&SfVvŏV8PG ŁmzEr=X8F bxmOύEz\"G/z('Q.$9]D$CU'x5ypdI-(:l$ 63It☚Cq\Ϫ{]$FE7cÌW"UKѴ/j]%b'(ZB|^rEts˜?4FU6pʈ1s'6Sa*A/ݦ)lGl2#$1\"GWOV=?*!_<>y.^ ̾w^jB,M9`,GY09$E qQ1ONn|Wa$+"BQK\@Y)@H=ϱ cu}?\Pϊəv:w ےc.Hfw@A/W]r[RxqՖ JXwHIՃ =@bJ.9o.EЛMAȗSv/vD2xu/K H<;4xojG]+y <1atAgxfŏ)*G$_;]f{Gsf:& yc $GG+ 3ڃ&"6ysSl85&RbjosThcUVɲIGuˆx_"ʈy X7XeULߪ,",qjUP{eae&=s=^U\sV"|%x`|Ps D>)"j?~(Qaִ>f3F{k+T0J2i4xFE\+~ɸ.c#tDC 'Q9NJ]Cǚdq\wXN.tˆ#//0wWT<1՚W "{mi&ex 6\l~Gߚ>~=R9FIdJ_E ȣI=7d'2*:TO$?klVXY;s~~bdz1e@aځ90MiāyyeXwf~48faqs}ђǐs;(Xa?/$AAaϥ5C՘ꯙͪzT㋧_WO|7YT ^ j+_5v"e&S=sd%G}W9>i.AWnŃOEzTD"/(fShAVأT/'!iN {.YE|u]8WH$' |͚fO{@]_t1eE_7o7׋f f}V$TE 6'w>,~ ʆRgt4gZEϲ 0̔qPfyy݁^/TѯC9=oQ#=ܟ6O kqp>o!ץy4~,~yxDmWNUG5MMX4x1G> . +_'jW+ tY:D*?]C':Rg7aNl:NJپ8~$QBI:c:d'8AqKUIhA5d;$@I/8ͬBpTG12| d^Dg4t} &}~f>ި0<UҾz@{=G#qd+*r CVJ_y3sc$yUH}V?5;p=uW| ^`(qH{O% 49nwf}qO}KINTLq?\Y_"bbIlmoIabAd죋AMGhz} ?+Ō{_C@zOw^ PPڎY"0͕؊g!$lOD~,OY26F,W|SW5Mϻr %7;!%PsAq|T eQ `H($A:|=5`y"<8󐞧sG| w"I⠑M祂#G>y$kXTg=Q"s.:"FfgBF"; r͙Wzz~u<ŊMR*&Q'eNBki5DM>R|Mqɽ٩6,IgħyDuI'D*O1xҒs5dJo zPo髼 ˯ej}TbX:g"6C{w? `"G2&Ux[͓jLV0Tp:A1\|:*jgk\Oԉ] Ɤ05Ĺ-/C^W<Ϯo5L D/r<{crO&=B~Pmg5;QT,Z8Gt$$!2ϲ¤RI{GPIf|u:~(Tn.SuW66P%'Y,w0+8ksU3P. ^?Ř2Az]jq)l=k6N ӓDqꈑ.bs7|\\g݌~kM?Qٺo'ٛ(s j,N;e#樫vGV>XWeHpABjffd}E/h؞,c~ʶSAआ5NQz{Ń.Cb V)O2_,ScFez|h#9Q&Lqyp\Fa/R" D_7=QF)r(<|?n#Ł:ӈőĩ,>NsE_QC,0d^G6N B8=yFCNpm"P$ (O3 Bg`҄v lNcG͕¦f((PmR#WSYgD&PwU^j1jC>ֿITU?y+qvf|ל']آ[_Uc+o?Pu{i\G b>Q*O܁W0%XY_HGj>]-Qǘ?6g4uR/Ý%R< ,ş:h]~ h|M&<d^bĠ`6hO=x^|^4q`3rf\fJ*ᆓmʏI|7ZqPc,)ǚms7䯇UןI}V$vxꚞhOqqPem!d/ަݔp5J ~_L M(D8<6#LbG#~."d8+K<gdqT>tsБ dv< ɊL}e50CDz\%pd@){.~ISՌ`8LDL !ˡkAV:ίꏘ/Y'b<}q62lϋ{Ą >,'HP~tY4qsۇz<Ȧ6U7/*/.l:>=/I;vYꧺo`uGN|V^"}m?E+( b\eݓņL.Noy s1E=,?3dhʘ_՞f|OG͂M*wX*WTfl_Vֹo9ET5nm'Fz{ֈ}Q*vDY,\^8ӕ`Ȃ/L"'>(EvHf,Q~FX,Cڲq8l;ͱ#RnJO'xlh)z}sM7NVL>O^r;Ѷb ' g0{S'݈lsܗhE՝7;ݟR%0>_m'ҹ;VgKz,e!啝._Q284 |i(QQk ^3?"#͑qu8ʫz+xG^n}Ŝ[a"e~* I"!Uo4H*6')G#KwsRWԱ͏2wGqp9TqR!0͘ipY5bH#z Ï,,EQsx3 ڜ܁3G/ƣOdVvHuj٪޿݆C?e"7 \P{~))G(]Tg9ȉ *2& ~hcKgp܎.yt͟BrȢՔ޾ Ě14'F(,R8ݮ9Lx?GLT$WMD0ڃA/..SS1𢣓y#;xGۉ4sx+x.X|Sjt/ߪ|XV"w, d筮:h'~yŐHK&Iq[ JO,VuV1_.cLM"{!f8yg'M-J˳ߪphA+<ؼ2W# s3x|'*{j Hd;b4{?$x]F]Dr0og^R6/П6#v$yi6~Z SD {>S?aO^5-,t7)KM~4|s2yC.6qеfϫ-`dL~6W[TH@{Td@qzZПdք(z6,>)>". =S5 2O׋Ğ F~X=w~B\iLu;{y 0q}X_Omm56 ھx/!s6p˒_hNp>WGJdC"4(8O6}`ϕJHsH7qKD#J@by ºOQzߪ.7[u^8Sʒ#l9A#I~!;badW|$xAG?vRu,4eah2^%aVF˰Hds hu5]611Oث/Tov7D:Tl$˴D_lÚL{XO":iw Kӳ'g%rʼn̠$?ڿ'͊o4=RpV~s*G7>뜠(v >+w۵j/ } ~^)&yY+՝Nt`j~b˷Oj ȉZIͫ0yw) s`7giȌX:G#K'^+oVL}6# w:lbZi4G(oSV#^uzPҦYf"/x1I&s]f}\`߮.*y?vA, )Dyt,N'݌anCdJI.yaz$pYGJдJ|pq`y+q=fS~CxD٢9#p N' 翫7Ү9SbJaJr<\Oe1Yt\/k [LrE40Ǘu8ӎ&0VɶDw,vzX ,༕%q>j&l=X! EՎle2#*1X\axe %yP'?ҡ5h;*}m*~cΠ"*џURNHH=%4F?zNnG8{4_XۆӅ畁 A<^4x<A^!6 {j'l_Xp9dx$>E %yO W`ѐ^rMZ[U|Qs=29^ӫ p~hL5a;~~ Pj+\qtl36d,d ʌuo]X&$:8{C։bHW$,lDz.11x< >>0k͋&)q]N`wk!5 U)l1?X']c_;?6}Xڐ7uί͔潽"0])TXT{+wO \ ]MLp4y*b32>+~/"FdyGH#QD;@,aDžd8Feqyz@we &Nh躉ⵒ>w׫dUZK9Q x')lزt3Mw^ 掻]5F~i_܈eROs;|;!p<+G>*czqt~ډf )w*XG)|?gã;$Vl7_W+ h6uIV{V\v࣐Y8N,}U{,LOVM>y*(5XKz0{7ՇeXKUڴ1~/6_$G NZ{>lcLgx9X)C Dqc +9x$)xLyyzz\'5b,4%ӗ«=D"\~ovٚ*{sdə1y<ԞLFsNL֬G C+88l"ŜC;w|y>3 PRS&?_d2@t݈:Q,Gh3$̼zY_(IǞ"xn?W\5k<^z5pEuYىA޷-%뮵/I0Vt`)U|7)Gu^R{V?1'3, 2yG(I4پ'Jx2ٙv%Z/v\OzKVksU(ʢj{l*4o0')(tJqyGU#/ s5< ʤfΰuKh-MN>wݍTsg{Sjg b&5Gs#:Ŀ#)o@+y/O%3U ;_cl Yrd1~T7}TnOE$&jqQg7e u$|'2¸`0O$<̓NGe橘L|Rr2㇪.g}T;1CKGo"o ^UGv'+UŐG9Ci٣peL/5a|Qpf|9YfB7Us"@(/]jVrt_ky{hG?7 s_%D 7١Ł0сM4p'1h-B_QUZNoK ϛos`aoF 9-9wta<&&RM_~)bERD,iɵsՐцZDY|J*!a<*5,bEFyTt`ŏIUIVz$b"6_lW;3y}Uiٯǟ՟+.cXs}9 .gQ;Պjm lb^JKjblӍ >.PO* &<5zv+Ff=Lp^|GV<_rT*4g8_H5 xJhao*qWӵ}՚c\78R'yo53xlo.˺ľsyN\sXc O}JXPx,Usa"ѳ䈹jC=3ly6uO0;`!$٘xs^{_%O?Ėm1|Q}_ דS4=}/ S?h@sg@cGWUEvң?Yn?"խ,9{o,^hS_禭Y0\W݇f=;LdOo㊝p>hXg.\> {f3O 1`̤mFF)2걟v8'S %;9Uz9ĉ3cR%x;CSeWyy)sqUWڔC}kz7OTe%I͍Ybfl5%z]:∏S.#I~\XL{h,T'VxO]xvQdq{UoJ6x,5d_zΥ,q^x?^v}YLO (l^Ow~ y_Jfφh^H$vLP3 ;ndLoFGF2g/_E>U>59$p^cc?nTx8g朼ӈ/>K.lqՒ9z#Ƨ'$򥲔qj /ҝvTy>o1jTeMq1۷~)W>V+ΜWp>mt ʅb# Ҙwp@eRIî?|TGMc2G1*FK^uL<o?cB?EW|Ϟh¨O,'(ϓ˖+[ 톲ԙŚ>)?TC/8#x 6ȫx˯`q݇뭤O_^ O>9Wa+/s@`2~:=Ӄ8+c݀6(Go,/_>l7ߪ{f~j2ިwOT:MRLlS$iqa<(I*ϊTGu?#bQbĆMvo#x| ].J&HO.OexN~l#o"[l +<d8Cl_S^lK͟ 0̓f.|Tpw^K!},ɞsJS^w/Mi;5eg*&zꪟ>lÝLry"hMbR'7<oWNԨqy,FV.(ܮh,z~>*+p⩇8j(qjM#my迺>[#Q`AVdt?;[׉&]ju9:L|mCˏWg׉ gQ?T6OgπX*AT3z^{8*1~r,gf;\UbPC7 4<^/BG<ުc.rNlʺI1,_7!+KH+aD Hi79ST+X}_QC)LTol'GdGιb&҅PshGwO)T?J('/r딞iwmt/W'Gh6L꛹xG=dX3D \TH#CHtfr>TxF\p[?]2Vvaa{AA ϸŝř7^6ǒh,Cfs)2e1"]9u.,4Z@ 4C1w!e=Y;0Ng8w|#r˴kY@x^x@`dO*۳TZlQ^O;puu1&yά,1X\D _VR:(r(?q$Lf9HJqgV GL ~4k#'U\uXebXuyZIcݒ.tԁ/ney`Hʠdg"w9Rp% ŒVsWSOYse"&nrLp<>#D }p%БͱDpo=\#挌]r>! ϴ1du|]5W*q/=|ȩ$;/wM7!}VG5Kv@4;o r8^?ǭeh66xKfjU<6Mdk%DT6Ⱥ^⩟`)p\aG=X瓻6}X ?78 G>.̤I]_cȢ,)"s}Y#,vAݕs !X1_-<8?P ܹ]9N V|?HHծ}*q}&#^:ΩN0$sVIYY6Ґ݂q>O(xM8׼3T(yZX)jXIYsz"}ew꫾()_B?eiدcOhU3TjnYUȇx*4_7"%K>\S>TTgDg4nPty^Eѭ4w)'>%&b}w+R`tp{uriBX\AB\.ݦLbKukM p"=YO2GWyIvL9;eOc`|]V w~UosQ2<Ǜ`?Sg1_]KbQԜE>&luE3C 7$^lIE!pKG\9 Y"=Ŏ Ķ$\?;(y1ԫ9!ݚdzLň_C }\yOʁT$V, $m a{\ǫ2s¼_Ӈwʄ( E,s_},"BrEItP>IՉC?gŜHq6c,7k.8懫$|XɹPf-8 `>bd^\؜_5=_ nɟJ//ehYdtŚ{睰OUYsvleP%ar?Uby=yjϮ8ZO ,e$XvRgC҅&|vy~.u|Pʢ6ZU eh؞^'_Ug_ArVyRѤq] Yg1DaƉ,TzN) 3E dj<_!|/FV,\:"ZxUloG`rvxT=C}WQ;M .0=QR~nO`\&~|Q{Yhk~AAdc>IutFӄpA ԀEYG?y]RY)Ր|߫5n?5Gזl]ORV<{Oŗaa_%{=7* ^)Sɣ$X:e$GEtDPOHItg7&Y|Fxr?6 'a[HkBy/,{{mo%~JXrB'cSʦ\<_ԙ=P1Y[?3.[s%Q(;%cCd:7ՍDUjDA|A̼mٜmBxՈ?Mo.9V<>j1 dgp^57X'CG0Y>;+/ʲv}x^.g+Я,T&)vtN|܌Рz ~7q>[?uϟ!x\lʾ)ߠ4')~ 1r%@_`0\2s*C%%h6l)'C6yH<>j;+壜YRx3TOݎ^^iDcf>>9FBRq Db'V=W.*xkzt,,|~)3I5PL}/ή =Wk?AJTecW͸X??y5/v]B-ѯDYa)0R3YqM/_TS)/%?agoʼne5r U$;N/\y tN`6$M樽׵gc^U:ɬ(sc8Uxʟd~9XJ]'Rd'P/7M5=/"x݆%@X[3ކ ?t_tI7Xs?G}<Ұ1 ؜j ~ם爤lݗŗLMæŗM}3KxsBHW7 }P}D>h8XbjU|Y{1\{=rپjeJ7z yYOy&ɱ|i/M19_ (I*aYq4'w.dTÝK4 y' #*CbE4hC}g%oH#6Ұ҉yC=ώgg(^@z4_? \>lqT6)/s7|-C\,R\w-Ȥifo5וgXtlf9_4zs7\ŎrPDV~Εy.\4W8*˪|V9GU#l& Xq[%!6}/M9A89` 4z[=+7vyC~~TCRw8'M(a쏋848+?ʼn 3@YG67$,vQ?Z1PxwP7\(u($!ItHﷲIc3W6Y#Gy{r^V _}+\kc/0X)SqbIdR$WR?#𨍲|n'8_ 98Hj;|RM 7-&NGhw͗9n>o]3c#Oϥ׆޻_Il2~`Ozi'Cד,G^)3^zpse7ȿT"<x6uQP~E/wWqi=>hn ,pEx6^W&?c2cI"NEv:vTKʥk,vE&vOX` )UKoGTcY7e҉4=SXu}W)?K:PS$*`B]O\y++ڞF<đaY{y;"ݛݖ!c7}Fd2@bk9\}z|WD_ zS{FBهOO?6y"*zS䯕?6u+^&jR2f=gGM()fP2ya>ϛP97q2/<Ռu^'>.b=;S)α2lPp*;wJn|M+ U¦jÊx3H5Ǟ)C>ݞ>cyh!`i] #?)Y?7ZZIOEf tclsxlUx~,14FGW%T&&ڳ vWd"i/t||+5ڒ 'ϊQa`9S L_],?6g5,dq=ޟAC68 Hv[,bHf~lY RH! _/}kc✬}^]S)TTG|A.*s\؉j?9ei |UӲWqu}D/=[x|V92ï6UgV%_Uf:'l ߈pS,gT7+p;ݟSv(Į47_Vv5yesPsg[B<;^cgmgW<ёܴe+DwBsu3H/gu?7O+.7r;d7Cc1P8 oNfRc:~9OvC9G9gդK^.wiVϫ͔wd]Ob^X'w,UǏRQMW|*lŕad@Mit(+jo/3T@fEM t),6,+;eXJ'a`\0^fLeяExZ'tNgFd=8|d~To*#t؃՞ҽGs|DbLq`kL">Ю~eGërԹ|"mf.#.>(`{dstŖzGBhMyN/%qw&^mO\~K_1rݠTWP=bYD护P\ Jn/f)>.Ӗ2 Y^<_;TN,'ʋhDKd )PyIǛ'/ 1߮~@3oRWϟ@,G;OIUfNP/yN^%Sx'YŇ; ]ȯHq*Pw~ݙSl /+SrlE?Ƞ 70wbvk50CgCL<5/R}lPAm8nd,Yb!SH7T~jW1X6nWSk?GH@q=՘'hn}Y>[QԸ85/*jJ˛{"+/$گe;?{G5zrޕ?g fSK26d>G^,egAzȝx7 f~lfaC֒˜k Ou$TQU~Gڃ5@fٟ4,ѱ 1WsILjTOq6@EY/7A(/gl=/9N9fD>eH㒅xys Hql{)zEcI7 @#xƲM|.;35KՕ-}ui;O`z'0FwGM"Ro'9JqAgI",՚CsV`^^,k˽sv9`Urʻ{=^:w@X5g8|XxȪ\e%gɲ9`LxE̖Ј_:3ł(O.);`o'Il&͔!8i5ubo{|SʬuYnNQoՃ/B]2]:xlőZS}:|X[kwE(I +oYH✕jw+ 窩˞Z&,+vXK^}Soٟ*˒;JG?7M>W.,b\sf{&ȏJ!x~qd7""+;)|%y(* ~OON|[ hpyUP eМN1/a`D<ގQ?͊VT.|WU9OjF8e"E!g4Q>hG!ǦaO YV(7fL=ULpm83vH 'â# E6`-&&9@{oxNU5y^=4Xdَ ~*{꘶dyGSb~OrD ,xF'5g"wuGVK.a6eeƮ|tŕIE4ob !yLG,O 6cP(gnÈ$#?{qwQMag#0lCQdD$ͅ5~*j젝,>y;p;.?+O3Vu\'0{ aݑ=8o(HH-&_~j\'Mj]ڿ wt~sB2^*bō,ك u{I~/>^jM<؎*yi?,4PN'O?5^N>ީA" fDYg{O!ڴRPͅKHq?ϟaflPWyI7^'AcD;N,%|]D'uQQC7d,69|^%cƏ/͑,R^Ϫ>E5qHE (:e+.FN{Oȩ;YV? )/1|̳ NTyHǚ(,QU4H܊;Zff46輳 ͪ;OǫlABFb=^n=V՝?⊛prv_u{ÓeT9x ZO q<fmV1 2KDG5 `|+(l{ڟvy xVVAtVotnV| }X5ŚP|YMssj0ՓUnJ]>鍫7כ=x?#lOJObNy'IE QLbo"h8PO|~Il&lV٫,Ŗ=b#UdVygQRVp˞/v' *+b5=re|(|IJ.{3d>Joɹ{Kpyf=ڄX4zt zҡ;j~E3y>ۗT XͺSW|/7lh6bKGM>l^,=Vm+-q;拞/Y5/"+|.ΛL6a9XL$rI͌~Jh1r94[u*pn7o:8Dq6/Tx"\s>(FfPeɡ^ZvEb4-`)xxh$SMg6i͏=j<_r,f^W3xx35/;]3#>^Mg7OV+@K^Qe 2!<^hCz1dۮ٢2AyQ &ɛg°)=.9L""!܂g؛4/q.ML&fV zs ٨O0n=Tj sՙQ/MxF$^:s">WY4_'njE7s;Rɗix~))f=T̺]vgT>(|NS<Ӄ3Nqo8,8Pgi$k4A.sd^QCi,(h~PȃG=ub%)jU{=v~^)gSɿ3qٹ(a塌BDe~oe8fn`,=1})sp֡dcZ je'~'_Տϫh_W)2~R(uBI7&\C4qCa:ذ;뿚ysMZj<]^);y`z));B(KCo+}T]B"'1HH>>, .<86OHGq(xO!ǂX2QW[4)屎߫i7~J{Xܧ0Pܨ7,րy4SG%ɀvss83x-UԷ)Nj<&`Vd6\dCbtTwT$ZE5o}ׄW+xC(E4suӈA=7yg'欿7 򬼍K?\x6\ag]rˬTER M%Aa˪JBۺM>Nlo{\Y$6! &FQZx~+]/- ifSrqલU Nym%d>ݒ^:K@7d/{l& %h TXˡļM!/(8cb͝/+(s?YK f{G7bC+; ;;zQabptxЍNlcJNJ4?\XGs<_"/<.W-DEWRoᛓ֍7xݯX88ȰO"4M>phR_0n?6SjbO ju/,C͐B°>/>Owf2>|`V0dZ MeYX7UÆNPܩ}%brgyE}?W]qw*wX8IEڤ656Op,?}l1ɍ3Fx:gőհ~P/s2:Gy@Eq]{&]s\_Kꚹ>)gJ_g<ٟu'U Ju|FҎ$.TTj'✝]g6}J Ŝ_~3yQ/oͅl?.a NgX?VTX/46uJβX?_Ң^ *Y`qz |1¹AYe,DqE暅 f!1c/G^I(8LUϚ{r|8t xMBcNhENأ ~FP u Uq.<x[UY!IyuUjV !tbǒbOjN/U\'¥"DqnX.u++3o,f e~V84ePc} n_~)%%Ƒ("kX6Q⑋<wz6 ^l!,EpR >z n Ccfcxz͠6NWOaXu73~_ѓI,b,^ȕhh1wzN͉`%ܦ| _vn9+~Nj^Ҝ"*E5?0PgD|ʦt/4hRxG|U?VX*+Ud??eӋn;PON(S.ŕh%9D0Hz/?͘Ebr**q;dުz.?PJiː_kgZ"=Hc/(/;jT~tFouG3qyDG#Dq:\ȣB#Sb^<ݳ_i2a";b@=֖:;.ا]\"mGui;̰:ˇW!2xs4\S5,S?5N;A/(bpU䲏ywYГy.Z,|gupp3N)El'GӆM".>lS$jc"P#㝛H|P/w~V۬XߎždX`\{>hk͂#s7waDN~#&<`$NAP;YOߚgq汶B|#c}"49L<7S`ʯGNJeVkß0PW!~\ #CB]q[accqv4BEia˛g*#$C% idc?)cÃZ:5Ō͟obpVP2ond©)lEDX#e6a8*TRK-` LA0PcCfK`2EW&؅̚ `G7dc7,Y"(RbP=Yd /AGiABgU(VW[}Bvjsg"9;k/^o620Tyթ̊j>IG͎԰ ycN_ؼ^=_T;CL@zt?c(aޙ,{4j\uS)0<\{lSm kw"V t:./Sh$<O=Ӈ͖+j6s͍`;1l7x]Duz.r,Ȋw6,rQ2PĿUPUxs&^E/Wܵ+RF *5c }TWX'tQTr7 w_Lu` lCx:mVH켜aK&X'Gfb?>)9I(TR)]JVcrjsQG^fg4N &]oqq/n_DZ4=Qd V!y<ʙQ>zG[,KwBkX/?;=Rc")tґa?>HJeLP!i]}MS e*. ̱^*at,>_qF"ɟ7|e}ECf+6*0.STv<_Q4s,?&Yv^< "P9R5ZI|]iD]߫ŐZN?7k_gv GwϚܺ0Hys=R6kMo7L,lP+_-d ns噆*t1C2֐OffGk=&זkuֿ7E3/ll]4lguxkt|Yܰ.Br1j咧l\ +(l'/.Fxi*/=O,yfQNQ^Q]o u{|XH(WGo/o.nP%sg›H ߿{u,QKsǚGՐ/^8Y|ѮRxcKD2oD7qzyҮ1r’qpo y@Vs>+1MxU.gX9.˭}X2{.ŖuN"7j"w.w{|p#qj|uz~ڲ엠ercVKƌs/$0I,Y]}|ٗL\1QObTT\Y8MR]gĶI.  (CX#wXfNTO5І%mdjH}ҋ,x6}2ԍb5N=^ŔW|M *&EǯVb /4XG |gRW "7_<{(>%YdbMO )72PedrGs5f>oiA\,bc[nX'gT˱!EA*1,BճYJ_ lMFrT>`K鰮xs`g7 *)&ob 2Os"tw7NAeKc>9` +t3s$O:@h2hBh[ дLr_dE!.ݡ:ꆻ m Is,w=°smNe}V/WoJzU\8s_3 Ч4vH<\Ս/WU'2Nz(D~cՙ8 pSj3yk`FJx2×]>^u.91@/꣓|SN){"{ѬOS__..xp-EҲ!2ş>/,HNi2RrhдoBGOj6ksyq:3{OՒCPclYO]xc wgvZs.49.zfl|T}>/w^oՀQ2;jގpg_*Rg_K5/y65V'/_gRqbļ, =WݞT6Jb `2gg""`w'x"a"76rro9z ؑ69dWd8 ;㞫ja^ܤ:l uj ) |sG\+CŝySw$rI%5JO lG+XGlXo!eE `xB4NW3~iwsuI(@d:(+ ~gU{|jA8sr>(bx P*zp=Mm:X S+{l\+^.e28W?$o撖C^>h`zo1nN!6nOHg!.2oԿ5ЈIwukx]sOw5"Fef`8i:T'kbfTRǎi[0(?Ŏi;1I*?qNWwG5.oyFOfC7-A r/<*_i|[HGk N%d]vRGMUIQƸ՗y59,UyvIϫ}SRc,z?P?42G}ם_V#Պ'^YAc;NzVS^˖u#oeK_q4tbҾb',xjDeL]/.O3cx,/bN݊%lS=VIwC|P6I>,9_NQgKf&;ךzӠ<+z/{v=y8i%M~[3_oXς&>;^{&yd͍Ŗ=ٌz⑿8cNallu7&SV4(ay}Uߚ `Q#G!oxdF\㻞by \X?7Az,؏ɳ/^c2s~LBr|ӻ8g 8s/OLRӏyZ8<~,a1r[dswfkjXNJ QSDLUC\'͓"l{ycxڡ4?7oUTg.x&OeAqlli6lL[Xj}]Xf<]4t\l/0]uyfhSJ \Y$̆͟UO6:_~i x[1|wuI'jHalgW l77\uglu?qdshIIC(o)՘Q_X)l ۻvOxC^wX(w=b26<YCc)Yߚs0Yx!L3]Vur8L tHeE6.  &EW=e#łX5j3MD30G>GlT?&ظuc3j~ 꼽nNM:'`P*%bEOejl:՜?F?elycRe竬7,/qCObZν/%YE WD,IjQ{zo0^6iL҆}_eCYfvx_bxxywW$lٻXWެi%TO3{f9sn8%͍&l}TӵwK>Ykl5>lNu]LpxD^.>?B39]V2?K)kU*u@xnvG4})CK1'czQLd_㻹{ޫA:].%r8/n\+ׁ2}uyg%k Ň(4;I"YT׫ޢǺW7ņfJRkFB}gx,e"W"a͉ s5~&<-x'tIIk, <7/~o|ЗiȻKT~.6o˛Xv%ɫly=yc/ݟ_ +?*OU ׂo3=^(O7i%vȬeMwc7ST7hXO!7|Y='ʙXwe+~) ]v9Zlϛ /7C64/-q7jmy*wDE,o23#7s갧t|'|Ł:殙{cIUi/E'zt熉gMWN9K0gٲ"OVpu| 76>WWYdO撓^E!֙Z??MzYʦ[[!7nv=47y\wbyr6 7?𯬱/⽣g\cfykHK,CXT8Tlp;ᡩuzZ\<ݗ*OZpXg/}V^[vwu+6VY\`¶!# mx^?5|wfV{xsfjvdr]{*û>jӪudrτ[⇫leD!}wo>㐤%hܴU o{7qLq`?4KtR.vEHKV \Tݹc̦"&.^xSB\GCzzBwcwO."H;Y-KfĤql9V1;7"Eo |ه2MHruc掅 n{1bZ(| <^sUPutEbs54<_JCךzW$[Wf)$߫wHJQwgo1YD",kW0;-7gIRSݜRjɷ}]t;N(,=oQvoR.K/yɬf~i|X,6~ H=egoߛ>^';v¯JY2}s[4'bU8<=CeϙLAO?[]YjT<^ؾvf-2PwTzVf5ϺB1lLP^T#y"˪gGjoqPŐO57Z^Rmo9rIV^V'faՏbÏZk,O0u<؏%/38pэss>jMSw'^wbb; US8sw{^o6cNu{.5,g28*xߖ^85ji&]^7/cMJp&'#oCWG^`ys@͘K7'X2{~h?N"34b_SU'2Y{'_J^uA20R>Ǜ}f+|j%ǵD|c9FFPepVw[E7E,2?;HyV=xRzu^azfӺ'ō(byy{S{Yg6h{ ",mgUygw^8& ]5f^.3 '}7fkH{Jwrn%ʹiF?͝?3'❑IysNy>lV)3 b]U,☚mN݄RЈ`VϟML.o=~P cdYo ig}XA^9q!ӺH8+>򦙗s|sf$rj㚧:pte&lɼ H|P99=2󗧂_NOM<qav,bvhccsgiKvb[˛|G⪼y,^#A?ki1~lݓ}U}R!c)lu18hkF pnG^Iq"i3Bs~VIn'5}e;o/a7~4W WTC՛Mx~**tRA:i!I<9aXYf9YLT?!*q ` gbIM{y!/Se7=&}~hϺ- 9{IT| a&*7B\{MG{}Sxn=׫ d+=Y8Qy~&D4i8jt~Txa?V3 ,I 94b M^XX $W+4ܮlR'bםm^mjiPTX侊bsgQ{ɧH? e;T̊#R(VdHVU͗)bˋX.vz 4lۑalrJzxŇVtxu͏+|YQ?U3vQo-J,c,9|Mz拙˲|,L߻z+fחwNILXwJ|7"g*w/' 5%Bu7|}\6gfV9|EN8g!&zN!ݯ͗7Ƿ{z@Vv(cݜv$w.KyUJLVH.'7͙xG_5Ie=XNy-K|3mD5~^ <\_ǚ`|XسN葟|BgUzH1Z?ue7-I܊>kT^͇bH#/Js" ˼3G{̈́$xibbdY؋.] ^7늤|&̠nŁY#݆9+flGe%8oqx`Xv̓V!}su~?W{z}<=֧=ssP_uNTT8~pаǫVt&9«g <^P}l7^ϫ_i1LsgVs`YnO=]2F%|EC~('Ϛ*輎T滖;XolyDa<͏V27ϫ٫".EbK-]FKb*W&8Wyzs2]z潬3bq&EM4YM.ņE%8lEߚ񷸬qg/TAxjvLiZ1Ovahzj>sB_y#@{I;ylK>49U"" A.}) +~5LO1[Ŏe>n &sz&Yux^a;A s~>){y-VjyiEX~t>SODCU8Nf5Ψt}X^O?ǘdM~dh5ro|U7Ӓl4dؑ#6|.5dr2Ӣ?ټbS)]xo?'Ni5oNusSD&YWe rگj9Sd//3Guofnu`,U&z5z+ Au6mJs^{f&(}U+2)_{q'oB͇^H³b=ł9OՈ!X^UYE_NM>,J5 ??ڇ8ꬽ+6z;`!lҳ|"/ ?XW<~X,L@{Y5P9bI?{Lzqpi{X9>,,=]̳,N,¾Y-*m`=ߗŇlW~.~ݽfUCRXUJM^8="w4k5U0X#6LWo~pV.E_vƞ|ؒW.ߥo3Vsxv#ՌsSkٵr*F\r[? K3It6կwAr(E/zVzݖ] e oePP'eY˯SA+Suᇋ>mRU\xƀsIKěێ+7VSV!/$jYXܣx~hMx/\ ; fEb#?'wY?+8kbl=Yo^! X'sr3**|NUUyM?"^+9+Śٹ3pͯOsq|y1nA().'~hGȿ|ަ*xa\k |͍lʤs|_7k>jec:,ٗU<]gwEh*oLD~fiiu9lO \fߋXBOXsq9W/^?,EX" ~&yP5zHbQ,WyotV1|Y&ej361`o%\e"9Sqz͈"oMKrb8|޸i]y)%tE& zO[PLn.J=4Ӿy%ɺ*6u>,\?Uo8Jڻqeu'$I=:/xʵđwv"WprXYbzz}fQ_775ݘ{jV6͉ SIgű`Ĵޙ޽=Vb(87ǻG>fyEe zc.*^`,D~]E'gv4fɳv^+^LQ2$e (I4"x&T6)6!|,O`nXyMx az3{<^`ߚF:u3s_u?,͍V~jXX8ذw^ ز^jIytyƺhմgA{rcg5r x\0_Rx&>qC7^:hCy᳙ F_ tM {F8׻WWZϊEMb?5\Y'Tc*~/ފf:g_wꇓcX՚g7&+rfr}e*+)7g[B X}Q{|1cՏVNk4暳!@w9:kMb@g1%h?~+Y&.[df^U炰oK.|{{e7eceg76c&ώi*GkUK)^,(w{3Vϻ,9O7ߪ=Fkl}Y,NTK(kwhwg ța2r5p_ݗE qN) sU}^cMv;}DIcWL<_sY{ٟt;∜6\_V#x"VEƓcVULE؉ȡφtmsU6F/1;cR²eL6eM\ɡ7q8Q~뇕3[1eN}^\mȡ9O#X{IdH˪#]׆ĹXj5^|#CzH|V7(7رK?vS o@yQԽlҌQ͒c>,Cyw~ ^X&csJs<9F=KsUm|Ԅⲯv՜s,7>rheVf9/:Ȣ6NRS~,fjXQa9A*<˛P~.$xyQϞ:Jsx7=Rܱ^o \"曖h\y\Bjeȡ~﹯/6Oŗ1d\87Ev6 f2FGuktԗ?5bag(XQ9kȲLe5QP^:/Uz]]+'5uLxxm3?3d&̽/E_#t# ӏuG}Y=ә] TPٛ3sT͗}yRK 1D=uNfMۊYNjw/Wclg>,eƟa?E8⡟R h׻/F/7{+X3/<a]=/gTtyroVr2/1y qCcxuR"lŎr3^1Qj5#0{ÇaڽN*K1 `~{bŃoʪ*,Ț{lTeteY.ؘrd~{w[4o/{{6AܪGqy<^c*C^Do_>23Dx۳Ře#8,^G>*y6vk3-~iic6TqbZ.LE1H(EʲDݲ2Сc5xc/gS^{OZ󗅪M*3ݗu喇/ͅ8BVKNjV4!Փm\Uf?KՇ wZqC^;kɬ|*̙c`ꢞfǻ;GeU\ew+t?v6vn߻0i\ /<Ҏ׎i2R+x,͞[犜ϻ>OVgGqTŏ]er<GUw!S ϚrQ#Pkzڹld/u|.؎kBXzC=V'l[O!4sF6*~n4l#N&/&O盱0(;Gw:Ouy˻|B{rʱFx̕Xv1L>w}՞"l/z}ׇqӕ5ug׊C[e/457_qYo\N_hᨈA_ό^Z z~/l|_-Պqsw㋦{N^Oe$O1LaO(351^+~+=E̍G>J|_la5X{1CYvRJO?>e9^U|Tcee#q(roOy٧뛐~2ϟ5\&??}eYupx2})<ՓH{%xRkc;GbW>s-%|MB1Y&W8ϊJqaH#VʉXC(2æ6wpzLdXY8yyőJYzR8*kAY뉪ly3gn~.7>/!x[:¾v^&b(=ׅ(FE%6K5?bwvzx99|=eVYWʺ-u{!6={oc^*o  ǦLWV}߻@z+5PF5lm7J:u,>/8F,6dolWÊҲbZLYŗKL~ee{آ3tuR<׊Px6VS{cŎ v*#Ϛ!<׋5FŎ[D#Q/g]^;K7ge I?h4}^ 9P׆V_Q5,jq}؎,yڳnyVcjzG|qRd3/t2ÚA? sd.fqtvpk1uy2>o[.(39Gw#/u sMhkWt) ^sB:UꜸ皑HX3ݑ+|^YfY_zXȲ3.bYUz/$weXC(e{E*nqem|SEBo'9pR')6*0|5O-?U;b&]iUi3&y|USݟQ;^ykJ `R83N;Tq6\ެx%"זwk"UsS+ɗ^7wb:/JrV毡My].gB_͘8Ϻ_ q)f/ՕӺOH~]hl%_^$ov xkv/n,e2G*n7luSb(ּhR Va~K#ew'J;lf^S?6\yMR,ެ`vw,Vr,ueK>z.sK37xQMϢ7ʤ+<b{l7Y8VԲnϿP'8x4 V!=w|&,% Bj׻yW=7|(ʝz;Ő4!Xq_f<;ke`&o,w+g7O͉3v<EwXwNxy>z>,M/*pyb |v4=^wmDR 8/pvQrꣽݘN]ݿg+ z§4Y2lG=^Gb|"ʚzj>(ךUdKxqxݑ.h |^06̇8w>둷g(eQzvea;^15q|]6waNjp7ž.DYԈ{S)96ɮW1yKR( Btz#yy~9v/|~.~Vdy:͘y6"r"%=ňkx?Uy]{9Z$YEY,ABchaS7°؋oZ/'Qz||lzVGŜ{~wູzEܙNMŗGW//ēy;M}&'Ŏ(b'v_"8b,ӎ&Ō(͒ca],1ՕZ'7b=ө$߮+6&,3/dϛ? >fSS0ݼ4I+@ں`.LYy fE,lnoWf783O_5̺Mtm'ԮG9HEǨxs rl Leyfz8&K7y5q1/◂|S $yv\7%eŎUwW5F+n9}XWL~R\*jJS_)lJf*_Iylىx&)6lZ`Oe֑fta^(zw)&]Ya^c,vh턐O6]U|{p(TϩU͙GzxO-*qxzE|x圭݄~KCa.]1^\eLE>+L7 vZ닉}^8W?Vh;T;0ui37#^l~.t}W{)^\e)ee^|:ڜr%8^;Xpf}9yglf1͟6Iod+K},8G~+Z1-F2^C(抝G9$ǻb\P~nyW)WTUZ>TO༜V`F^Ľרrcxks2&|XUn9eWx=Y8tYO&>)<̈́OSҟ*uHu_႑7AɪIqekWaIw5nц=7,6Qg9M"+y-웓}߻~~2}'.&3w.͞++Wi'#OT͚ BW݉%׻) sA/PeeBp+Aa8ξh5vhGDHg9VePwUouYu?{,FЎjw]+-lM '~:כ7^V/Rnp{D_5wՀb|Wg .Y}Y*5Vs ПHH_kw^u|;kaHeEȊd#]T@kJ]5x*'TyD<׊SQ͍i=ٗ3S|^ϏYi(R &sc&7/13ev{yZ]߬Kv]ņ9QgjOy~r67]$ +a F^},¼t?6e}ԪDVveNZ1e&^fngM&__e/ŔJNf>l#ftj;D?u?Y\sV{^OJ1qAXqayk1' -|GwଜIa]:͖ʳGhO]sُM~LMG͉|S 8M^W7V6b>BqS['M:4JQ0FX]QZᴏ !31a\) e,܈=_qHyYN;GO鉱)iHW+3Nj꫓fc/>/7͗yo6HO'w+6bQRiMc~j׈WI~Sy]PEd^clrMRxLxkuU#hwya:Q,o9s\G_՞}43/+ZT;K>9aﹲY杩G:Ќ>i(jOMbsǺiu贱":+ l7י^;?Ui3q64uKYuJeZ'6|H Y~+;Y;68G^?ᔝO)aH>rg?'V% 2rǎM~ e!I`VBVd62'17Rvg#oȜmg_5)GgY%ݳSHY{;Ϟilr:W2t*<wn[݆Z quzrnq9N %U(M^(~c`@V/jsu ϟ~o%'!wt犅YV>W,[5ڼxjx?6}Ҽ,/Wf&x9sG?v%_»фsgv#?v[B͌ycf,~YcSP~[G)T tϤݹ+BOTFBL7QvjZ6zpm4LMߞR fY 8{6pTeoWǏWU7u;uz%"qPX9SUB <f/OTYى?4x'74o߲_ߪ/K+'sfy8 "<Ұ~fYGsIW^lHعk1Qq7+&yyGvc(;6K1"h^E*+s]3tOVk{zb@FWYOqݒT<أq|XT 3~M'IR }/X~췥fĬtM꽇crSA0;@@+St7S59^8ڞL{\Hhu-rO\r^",'\wg;4+l;Uں9\<ӕ&=P&=]].bϧ37UN?7gusF+wS)qyc̨GwR0n#'g E82quye {Ηyd^(^L< >j͌xcp4E ǚRpe<?sxTeb(sO7aak*ד^2˩ʼkkj&fv2_sX*:ISX^\% ^R8)ݒ:+”ϕXIѭ\PF~Tr_Ly7Ff`7Kʛ9Wr,w K]hMc@~e#hU1yf L(d/,z."g^ŜGhȲs֞,;4oKTd2_W"hM95:x39/n:=_ av,7cs"1;C7o.+͎2!z,yy|Uk6ǫ]4ߋ"$]G6JsvU\5+T2;a5uw/U"nYԬNjNj~#6cE = <~oXN8.g\{ϚSxbWy3ljtϪ5`^ado "hv>oŃh&mH2&(lj{/}Y8>89Q3=P<]GW(ڛ=N'Ha,qy85n>\͞d),g1PsR&^>iīR|;¨%⏎(=WՐv PWwVy]gjsg>h6>Yf̲$opI,FQ^RG1LWʼG,?>+`K9V] ,3M*xlg|Q<o&v9@6ebDq몡_7@u/m,7>\se%BNr{ N 1W^CSQ:Uw|uG>+4Gv<{gʁ8'Җ"Zfisaʸ/=7X=\9\s9!nxVS~+&vBXn˓M'ō&χ1\ Aqw=L6~gkG˖Vmy|Gvw},guDY Ĵ(pH?WvX/¼W=׋4NZKols#j=U6"a jǜGY%6syn3Rj 9IHAD\FqHs R:X:տY_k+TOy "Y{ؚqGcb%m݇977{Zb}'bb^~c/O}2HwzCݛM{SƬI>, \qgJ%h#?xXWdIw*?ݓŒ}fw/Lu~X/]5bWz_ ٖ =^xa\~杦MiCHdllwx;iG7Ix<\o%vݗOEO~I=ݪ|1UsYw52I\Y_.oqC 4‚/[45 2a氚d(lJ`qgfk:l& 1X~+`.K|ϿU" TITŽNOU*0_W|]ŀ ţ%:+ E]k96v꣮WJZGF>|Y5|PzwX.XqyYLs"Í])7&20\=ݞ/vN溲4f1W.ryaeńqY+OW}?^Ⳛ]*מkQb:&*(xv|?Vpwwc͘4ڱő(u_,)]qC:2GLS?֣96kDKs|Ӹ?kkb)ΩxagrFU|^ -/q(]ў&%|}َ-|wqTAO!;TBnL/>>] Pp^oR644Ur.[9GyQɲ<1 =߻#1w8B\"Wywh^pw~5HeQ'<:X'ךu >syo2CQw{8S w8|ٲ}|Y?ɯc H?s(.$^|R; lIۻ4&FM8pwnMX2(:UՏ`4=z?7yдX8^eTqstSGMOEQ?T|/*EUo&x|ӟmhc;-W7/l3hq\^+$7㛝szٲl8hAx,sŘ|:;QӮ-D>d9q}^"lW?w|XpgW7ʇ`7fq| FI)/tcc ?AgÛF=*dFʳR<ߋC]K%fϾh%oBeyw}be,oV[vZ|,j^ N9ĽJg Rv+'fS(8M,,G6Q^9<^wۿ?̱%+>n>Ď8 Nlo5R)WŒ+:>l$:q)C, lv7K¯E,${94Ʒ׽yArC-W%se&".A{Ylqlux8hˎ5zP2QVRMU=f/CbxRhOUgk6^D I湴/Bl %WG6濷JAnG&4z7y?uGlM0o7_Ŗ ˓ pka u7Je9S\SuH PD`F<\?=Xw{Dޡ/ŜP}Xb)/)wdVOQc+7\uIԛW'8!xl({l漖v,dx?u|v*k/v14N4~"$  `F8 1C<F(P8B< ,!-tP"442L"H< B0KL EG ~_ b6u3kŽzj0B<0p<8H4t4-TGR%M" B5xԜ[z6 )Z# IIy G4%C ) < 4$8G8§NveFy'͉1M* @,@(23,CD TrGЅ3 (4C0OkL87\u!ˆk/tA İ}=W6  p(bA N  <ITE s  0[z#"Xdٌ |v 'RE} 4S lQ4P0>Q5R 6 F<7sc2[૖!\|?EUDtP ŸH|J J 3I8Q4=9_".M `Ct2Q44|C$ (vzE$S9uXa65)]ʮfK&Ds=+9w8#G#6|a!"]fY T0sKI9 AS9-׎6p,L j Fe];w`~|5BM4`aJ6 dROPp )ErAp(\r”(s^rm386͜[nd7ABU5c]}&p,CG8$242 Fl i":"==yxQ.}8r f5`2 pG<ѫD=V8a";h7$CJdQ@7'84FAZ=$R،[0,DLYHE<0KZ|CtA$]M>Hѩ;g` gnų#A1[C6D(B0,L&PisʄhJ18pI0 DtcN3a/gp6,e|QF[Y5 ,S ݓ^`Ā\f D2-B 2I BdE߻c ;ɧ82dE) '<E0PQ prR.n`J-zA >3CC2R7l4zј*$ aJ8۬`]iCcG0B Џi0nP?} AV q%@@\M~YJ(HEE.!Bc$8t_E]4Q0q UbUt`T1I4[&P4 Q<xMt`R3?8< cT,iW (tM%t:ѳY=mIr !|<_ XMpl?*SBi L#7"8S#̯nS8ϯh 1b,"т,AC+Se;c~o9K=p i0K1HW^j~":_I,dBKBkP.1$. fav;Sh14 3"%6 [n0J@5IiM h+zweLrb$adL9Ŵ`38"sa-8@0q98C6cOT!=v2ҍ\WbL]}<=EB4KB,V ,0.qS'$;U_50T١DĬЅ(c4cW5{eB 8^y=(ϟ}Bng@I 5GgMs<1r8qGDRFݗ3[0  v[@!eÔA tT@O#r$1?p"d iO)JVxg LbV ZRU7)ff=šb_|$zp,D\\B f9bY3y!ƇCN<%A=x(f镐E`80 6"V'ahz:ML.ucg]@B M֗VXoq)tZ t! 8ю0Szj:(يh<$FY ,@E @BW#$q/S'^,.SQ 򠦞,(:l( )hON<DGO>2yuiV@Ml,G%9OY70PH14I( 0pEPE "H0 4CC&m \43IU:O 0xQ  ?3#,s)>PK~E"TS:QG08 < ?O82N5{T`I$$ q-4<0 4 `4LG,3@8,Ҍ%$1(HP\WBb= )Ú{ 0BF,MF43=($@s$8Ms8G7 @F(AsSS[> BF(s@A$K0crj< 4 cJ8` (,$ #K5cXQ ŽdFE`6 D8B, Ҁ ! PIML"Jq&Y,,~I;y(x6<1'jug?y%cәĐ;^r2a$} \P.<2"\:[G}$ U>ME?'nFГ\I9V6?Yi@ASc$de km3'P:Gag;uG)zL3'Q<{;8 QN95a.?<ea_!̜B╰;]u3 m&mB;E!Ɉt[؛>^mm-g/F.?70s㯇ǃlgXu%kiulK[ħ 5X_>r˧tp2a7/͖YZ[ D+iфCkH v 'V=@~.ʟC '%dt`HNsl ]DQnC(|U|&탫&䶟75{ 9-Oz Gxmy ǛjגJY$:u̕9kkoRh >tap}Cq,6O<=e~IIDm{iX|#͸bt=@ɖ K">,<m'mŇw|OլlC/EkܹXIyErGmaQb<,-$\|qaecaE|WcH-_a;2̓A̿0o5Ӗo`ݟv20v~s0z(%'V{KK_^ǭXIgQ(p/Ǐvνj&ls˿?1F$9'=GF> φcemd0n,N6J+OAy^~`5ȴċ !L~r>Ө 9'Ř&+o<}knb#ͺ=dyyVrxb9eX́|p?"VWcgm ?I<8?<,;lDw;pʣKl_8VHrȠMaw:M0 66\ZKFoVX[o4CUX~-+lHݹsn^ ;'mHy>o#^= Q.F>⁗I,ed\66>0̟$H4~.ڷczr@-^ϛ&d$ݙr{:"r${̑pN<$bFx$g%c3>  pnի_ɗ}m-H9ż##3uMXI' O`>-6y-eջVjջPZ XD]^6eK)b@FyNQş[Ͷki=[L`d,= Ğ- w)/2Y B}/Vڵv~cwnmЎIfN-\܇L?2Y>ek,̖y ic  9b}cV3 $J9[@Ip˕op7\q#K_ &0"/]w6# & 0{L܂ #P|mBw8G3m' 3|ap|pn6&/NuTb6XX\z% lx /)u &uK~`$YV׵.E::!}`w`O*[ X-:#,Bj݂U^r,,,,.?Xuf I>߇q`xUoCm 'Wl_LHAJ l $FshxWg+}.F}g0Н/r~zM8`-%_6DwZ} <+rhP dy$-oYfK`'؃!o MD\2|_S蒖U~Y@18WH5. 8'Mm#uyN0 qz.K02ϹՍ' 0y,|teW=h%!.y"|H\ÙQX,gX޾#~Q`6ϴ|[3[mߣ)6a_p8/Ԓ2>*]K|:1͉ =cŐXXYw:0}/b !v9 Ŕ22;rĒ}7<<( )`H"dOD?Ͷ[Ϙ7>oX9"y% |ػ!O|JHbIrAr]~ ^03JO? T+`q 6[|0@,ݵܲC),ȳk7rWDX e|_*@,$=>5˪1 t_H q@ٲ;w_-N:vʺ&߾kk`~xcӿX?gܖ#I>0` X?) }V:D+)?ȃ,#Ov~<CoN6υ ?>cX~?_%/R;O1aMz1l?,,=D\r}-F[kcgK2؜ pH0|%/ħcq%=_!6 kmٙ6vG|-<\yYaaqEKYz|YS#eP/Űsg1E?k -= ;-lV4_3>Ad_ mۋm} ܄C=Ga1Yw z}7kbwN6CPm,g76$E3իAAdGm[t,nS+Gk{Xc $v1y%V'_ KNCjXI2<?uR Ygkkkov ِߞLs(;Ov|.'DZ/r2_ $>j _IOjmo"e6YeǻᏀđiARŇOĴ,Gc3!, m GG,`yV7!@E)~33m팥%w Rsyl &\Pcﰓ-Hp42)JR,͖yxmmy`?ǂ$σ{uf~!>-;/[I|{! ui>M)^rO,ANjKK|X׍mmmmqԡSxe1%⯙V ']\|w1,(2ʽ̟X-%_2 pWgaib?v6ի^7m{m--=b|l7|smYsL>1倇[u-a,xcůг><5m^6mmmmmmniimmB"z<:fe#!@,/œ, P{$HoǢ&5_mim7777776D2^HYO BH~0fPN%ʾ%؜TN\Woxۋm\Ml{bęBy8I\~o"XV NpfS - mk⍿[_u ;BbLJ?K{?0,$?}$;nK>,{|yov6ZbѺ8-}!0KD[xyC~~/Iy#`6_i.+JjeͶ0 gPA#:Ϡ,\1XKtGzpLj|)AX~5mPrÑ}I ;͊A7w ׂS͓0Kl ,%5F/فQ$bxyMW}H \͆e_ Ae-CC邗&x})ޮ{ *}Є<29͖x~m[|a'n={o?oszgL,.&kߙ#卬70^o L09k |x_?ZKsem|vJ~!?ƭm|>(6x-^~|om+ AP~<;LBiikXڊR<:,AGϏ #'VYAso?l, ?,_k/ae}x@Yi$3~ ,Ly <ƿX!|eXcK?_ĿXcR7xze>1yA ,dYcड़7?DsgBn#&-e.mce15[klo&nSa[m[Xm|OBj;m ?ͭmfq~/''తoI`6ŧmGk@pسVϟt<mvcVa&chQIܣkicms\\mf>k15ېɛ wq 0Y̟{l[[[[[m-lZ|Kb:4D.I8"'!LaeMO n/'naGNRۇǩ'~...<m[[Xek17|zd؇1d炞5l&N"ve|[mDM'$&\oۋnKe aİ<<,un*E̴?\eu/l[Bg-4kZZZ,㤯?la0a^1,9gY# +-l| ?x,?,6ǜK.XXLϾ~r lDZ/_ icd~ sb %Xl? .q!A7?\I0e.a\\7o}g[_X,%%!Eሄ W9,~>Il?d?5|uj*0o?{pNNnmG>Pk!]OHdž-Dec(M9_0 z,$˸CocH}nA.I &f KV<&*uyX-^%6~b ഃ6>~+̖$I\"R׋ݜuzp- 3Ֆ@!K^@ ϤR$cI=:ݖP<\͈>Aq_!}l;`>.D÷p.  x?thMWhڱ"D?SKcT'I>mr@>}Z267/Cwr7 c_H|y&ܖ5q-Co->[68H#5~cYVgoa1Dig>CK0E\t-fkխ,XykVA͋6{y{ŤYv|c,HvB~-_Sݱ)?2`ݰ?KdU$6v@XaaĉGp=q7/͓Փ;<~-mmmml$|Mx߹-AZZX; ߄nٚǹe"gܒɀ<<6mx-2lP¤%?m~,}l9!d"X2>_6x2x'&'. T@;g u؟b~w]wL7nO>PcGLkwo dP?-nlݴIP6Y)1ەσ\#>:.~#8dlp.\ɣk4x;{~zm`?I{bHGI I$8;d1W;A1w rl'$q%p`7ǓNg-ZtI6l Vechh2#i3i+- }:a,> <hqc6q@.za9$6aFL:V4$KBl_gM a?6| ??g_ˋ6S`I-H7WHX|YFysh? YCx!-›pr,\SlH5Tu=[?=3bOM>-yļǤc> kEy O%R:`Kqmm?6OYei(NK|4OïרXԾެq~lTgI). r.;}'>X},~?c#H=BM'_OGQ6L=Gi|}dx?e..&C~F ODJ@\0#Ɔ䱝ؔAǾ?ԏ7Ǐ_O&6!Fe~ :m!ӏ쏯ޤBwblҁo[Ş 6YeDyr>!?0bqq<f&~,I3̑#֖=?sYe4m}B2"?g#~?5<`.,-_-ll=2M>|o,,...-{ ;8aL05T80YޤOcC<gkAK1L-,&nQ [m?,.-- < wڐ /`-Z{C;6Zoa3Q Y7$ M9g,Q:=K,mŶ][ag斟Yw̺ Vpi16\c/mm{}3a1ߕm'[-Ze6Ycૈ|YV(g1V,ǫO066 }~ijmyeYgdĉH=B_?36YvBԿ%cb&jf-V,,yLQdYB~E 6dxu1>D7|'n[𵪷3_Xŏ6Yaaaaag,,,? 9<}_QZ%e6lkmlF =M! ,O?[b ͖Ye,?/,{Xؿ6Ye>KE%\xŇe,8x{𰴚s-K?K#yXYsse6XXXXXXX~..?(RB~6l&[-?rCi~2K[. VaYaeXYeYxC XȲ _.HgVZ,Ila ,9 ,nnnnnnnn}[)Hǚö[=Xs}"}D={y?=DBO|,d2n|Kmm|?`,(6r Qm# xamI,Z_6uhhMVLgǫ-Y2R$ćğ }Tc^V#ǥ͞ ~!\lm NI.[kfȔC}_e?5{Kwp|[-m$eO >>8X~-ka~kD Km<>--n,X}seq*vpxc~ >9ee|) ;d[ON Ifnl_\agub75S5 ,_6\,@8=e[ ذVۛ, ?#&r[kDž,,?>aaq;o/,YgbͲ?Kω?"O, xuqg2~˟)gѰ,V~=o[򹹹?N|s}w#,ssYcν{Xm!m.l~'׿[[ӯ1_=mmm?Χ})?gܗs ?ռ[Xxz?m2>ퟏ/I=F,,,9ag=$nk!8g? -l?e_ťkkssscck,#!{gDzx[,,ac~H/?~ Xxg3I2?{:v[,Dx[\gb#IgR_H23eVm6g" lH3y.?r_m/kke<!dMkͶI,m牛m3B0,"cmouDD g?n#S:ͣ8ud8䁂4/r0!N=YF|pɾC9Ô] vYډWG@ `WAPMv#KG?4@KDuK3{3؂Ff÷#dBv+#DsTc__SJ]ޟVB|;ID9>ntPau>KqU0K'$aqN>o #/OXD#V]Dx t8j6/*V=m=dZ.iM78BnǺ4Ad?K "I@ Iy_SCLwt\JGDP"pؠ$T<h3=K#U<("K8,ĦFiH'  R>GUP=vElG.  {,nB 0*F")2뿛YBQ&M'o,͐XLud&B(%h3$ďV$RI&2](",5k,.|$d2DQH@b&>lwѴ2N+CP[b"N7C#)g>*p&ҒCW1S.*ċϪ^R*JRwCn%JZ/ e$nq4? <č / lc x6}ЄI(E f DaÝ7Ø2Y'gC؆sT#DXIqRȯb8>%/Z.j,2(HgKRuF?7xn]I!X0j8j"H&lF?vJU$zk OkQ]C͚jT c%$X6!cBdW>JH xAϊJ$'"qlLm8$2ˍ{ 1f4S*m,HoM IpJ:o"CNH=Ņ0Lyɾl@X]90u.Ŗ @R@:@,YA<Pas]L݄, Ed$a#4'1C2z +DEC   mn^?UA] Va݀݀sjAQ͔ Q5gNx)QR3q%כ3.@,\ Q׊^4}BI7.bl!0zm`x'ePD5'=رYR+ff" ^B> C 1UD1 Q Lx2lwjyh 8>`;Q,zlL(ʌ\H$}1`̳;d4LJa#:RF y[ L8"DRV&'h@ xo 5%!'*v:9` &W?FQ-qS8 0hCϚ!b<)~.u4b^ y\,r'ꫧ pSdZJ?>>pcW@xj|8Q\G*"Zz{(!6#|Ov4y\A:EY 5]:*xyG A9_v!Q ;u1ƼV9)3̔J&}uCTYVDLyPa$ ۣ$Fɏ'8 IbL1/;0lT2 hsId0a=fȁ"'@j w#ẁICâȒD9Y`'^y'BƊ9ݖDB vJG~nP P#$s\”⬡Ǘ欐dy~|9 to:Mj Ƥ2wR5:$;6dCY_tЙCbQ)ABxW BQ&R>;ԕ\>{!_Y1|t M?TXcXJE`)}ü! ]Dcf ,"*G!=na8O.8/n2y7ᯓ: j͐CϊE<$q@A 8Ɖv8x9PE(cD3>l)”PSfX;1f~I$U346,*`3y'!2%.9&?3`OAU'dlឋ zݖ<K :8Nul>L|15!5VHJHϊ]=uTJb$7< e 3e$fsGPF=bfҙg"HrFL_ukK2İx7rc^ĐT,%?F#%2(x Jyf:|8C1Y./{KfAgQL;"O KPQ|ᩌD4c5@  B#, {)>QXnY 4y"rr@>i"% ]"Gaca*t.ctCE1rQYg|,# |Q,K)M$*rkA`(p93RUS'<<' g#B{/!hX0"y3d߫,)eݩ&V`'a@-" " Qf"侮"Jƻ`u@a9U1V '4VJ+SDCؖ_ wa*dd-Ƀ.H#'eX6Y/88y*q>j`8(`٩;*x1g=1`aҞn4yuh=wT :ȅcAۏ!N@3euP&G̾cXB}_34Pb{ ʀ,"R3 cLHYHR2'/~U,ke,苑ؗ5CߏŞEvcSAl8Ւ1>u9G)DQ1=vb7 4b1Tsa!aTLXA/oG2/5SY2~fz0߈Zm=8u}pˎ'uEJ'm1 2ޥeB L9acӻP4$)lSRujUM<쩆Mz1U'sb hdC@g}Y$=PIqCbFFs| 0x o !g^B@tPRz$=9* `A"pXQȁlXJo4\݄Bqu͈8퓓?9@~6\6l2|dr@@1Ar[=BY<8>,y&tpf.̃ qH:My4KHa16#p0k}/ ME ?3c@2=Yq`/t:=J.Sf!+?v;%y)"a9 X+5"TY^CcX QA3kiMs%r=ŕ$Дb8u1Wsa#,{5Lp!3 ͗Qi.UM:zH4艉H!;fK yY2C$r@fOQQ3{RB <œ~LՂ2?Qg@/)%N=܈v%1+5b&ف,w㚡 =8$'ny{ަʔ9^yv`AĪZqAAdD"ykԆ%<]Vg 9ܢLEaYŜJHtJɕ6c8_^w02s^2A梞zDħ=2RX9c81#!/?`O ԓ Ƶ\eX8;&Yy< j%Cۭ@ДBb6*5 =pd{THIDug G#<>*"5 B5v;} BcF(Aۦ^lr@ NT9jL SDNz/2Ja1<^={fu =`u1?Ebk@><Ԁc{.RqCDdB bșn(nVCsR=6(g<rM@PO'~(`\t!P,EN`NY \";e4D%&'xv H@sE#2 $ꃁgc"VX40I'b |ER^b8i'*\ VY;RI26u.#eP|-xrNGvq;gt#N O~n ߭Z`Qt;*%V6' L4PLj%x 6z0]I#L`uPP\Kԉ ;'8cRΈ.eʑ%A{E ުڦ(u{$ubTOdD#Q_GMfl Y|dy tJ4u&;,LqRn$s'eGbńvS!>  HT:V$33 Vp&RM4@&R=ٸ1IpӗT4@bL1=5FG*!uag(#9'%yeXRVGʃo+sT+RhBΟVnl5Y IQ@烫 IeJH+K,| 0&[@ B8 K*p] =gW)`!..rQr7]YdAL #om V=;r0XP8T⫗'͉HQL]7?VTra>s&sqpȻsJdc>)T8 7jF00G/ "ͺvi肻,K̸ϋ#j4!:$nr䡢 ;d62i<`㢳-2<@b9`) B#".Z\}2\B )]TFSGrRљ8y/$0!y/!v t$C/F 3(8a(0(I_3EP dx+$>h<ܼ8# ;\ @%*8NF>)tI^aҨF e_RV&Nhfs0/mv2,$n?vA0J`$T0tFd;I#Țx&NQ`$y"pXQbx}h$lxbs`<|2Ç/ug0e'6)Tu@C戠eXG;Gœcg1BbǎhPG?ȷI?7H 0A GKy & 4&Fbz! ʀcYh|UۛpNY P=f #*4L0tIl3XUjۍ%4e@HxfM(ؼp/%Cq>G1 s@)ĤxJ $IerIs^C +bBOg(X]w,wqǝlN:ꄋ1+\q, K B{(gAL gydGUN\9N!y^6pPikLģ8f"Q <<}/)Q {Q |~.KVI#>Xi&:'tEla H7H(K&I=@IP}H8f!CKa'kP@Ny9I m0'|TIxL~ 2:NʁVCZ("=Rf9fXMjɇ+"a&shH F71G%e!6 rJ9U ?h6lyt8B9"osy,J"|_C~i!oj\Ϻ8T= e?4K;7T'Hpx94GʣˆCy xI,yirX'D7hP&%{KSn ;Ռ_6K%/SLm2KW! 8j3lt$hX&̐8ڤ h0{*(sYZtXͫy?@C^yEX˓Ոu&qtI# {F';Ys(TBJMKE pFM@TnX3<"I ZLNJ"%f%UT0z0OtQ@s80#Y9ZB<{:NИbw{+tT"'c*&BI$$&hg Fg'ȪB$U]Ϫc׉QG/aTfR U6'Ȳq9e@Lj<!-Mpַ}Qk]r% Bxr˃xH PCc`RZvAw@$%ԃ=x{x)g(gpel &}Ԍ38uQ4P+%+HH!@ ]]CxE|mE* `q>G2lA$(B͍?Q*Ts3jx 5fYy3LP짔OdXKDIrQ.v]'9WDؐbh8tEF5 O2tkWYs\8~(@{2ZAѦ9ghy6Ay$`:&aOH~sXITۃ~줄Î0 0Y@m U!(x$r4'T h׬:oB9H"p"cPHՃcX *ՔI6@y>R]I-2 GSGńWT1B Q,FwfqOLV2QnN嘺BxfF\DKA)[OsWOY< ɍbS!.%II8"{$Hp݉8LY g7j2.W1:zhiϋ!STwT9y2c!]%6d„xggfF eP#˙DO= s2؂ZӪfbcik$D1VqS`0S8  Hf`,dda&c@?aH lpee >D4a B@{U'X$KDD B!̀yC$qJXQ_uI/ݖcOdH=RJo0#&H<;В"Ѩ0Z RaҁHGEBBg9#ߺx!@+(*9&v(ut@r5/^lLx2Oty櫈0bO#|MAtEcQ'hWBbA<Փ"{蜊CUȓԿ=mБ^6agچxXZ`JQpHӀiF볬1zQyDD31RB:$98, P l3q;faN|P8HuTM;H:Ўd w@w%L?Bƶd%'9S;D<2|Q{k,!y(AJ,s"SE!&I?f*.2IAƄ1F~B( Y}5`;N73$XK92R!~p!\IyaDyΑ(UT)݄MKHd+}|T],89͌zD ":٣>'+( k2Ɯ-VGpcjh ”pY0 m`$㺲Qh^[db`Mj@ŝ! tr&\ezF;K~.*3/>f'-pV[:G~м{,b8͍/δJ]4Bq;-KD[ dB|OpPPra?v꣑gMbHJyLXOVB FI E'#M!LS:T\x>,fUN"0ʔo *㝛R4dd՚  RPc;Vb2D8Xd3L@$P-4s If7blPè t}؈(lL5Xh ׾ ,$W(oHk- @%% . lsPuC=P32x 藁`br9 B HhŇl>v S#A)2( .Pl.iB^SC%'< L$lؤfgHϒ,gEVБpYI'ى* fJ)VMׂ0xބaLKlxffhh 6#`/gts݀ucf.fe(R$̌VS;|Çc'}UÐ~8+@uyz7~&&YG1l1<+? QPQyy>C"8XDb+j@K*LX zF8ڸf#e詨&#:ߚeyK1a?5"O91&!{4L2ZcTcg zi$@fo>jW|Y)FVd 'M< jFmsݰ,DޠBs 6p V!Yʻ1"b\3~=W0'1/7UDŜ7g syX =M!UUuz^vPD<:.V%<YP x<>t`}e:lIw\%;ŀ8fU& W;'Tq՟FB՘@xsIP?݀BV#e權0`Qq)'U#b ' x2wq`Fz zz Ԡ"I K V''͒9HYebB!+ .y2PL/GrȆ=kB\D.dfm1Ō!QL8Yb״X$b {>|X2@B`'L5q8>֔@ Zˬv$Iђ @S _4enq2^B^_5:;WIT7*иG)53#<XDרE&d=4a>$:%X$>솨ɳJ0Hno S ISJ<̉3@=A"A]*m2"b!ؔ8s:' gXH8dP`"9T!DVz@pWDlЫ2/6YZtq6z~*fDe U…z/QσvS%0x%F ~k=0GW(Da+f`~a SP`yv(3Jo V"@$4zN$`gͩ ͜ GC"EiE嬳q%8.si9=EcE~/V2k3ꁄ4"<ؿA!%c&t5.g:|ԖEE1?hp8 zw'z4Qw!>(̓*DQJʂ15H,TU :$lbtvWt`,Ñufp^92KPz>̧+)p;n7hc@t/.hP!efDKe噪4]̂)I@E͇1r6_QA@*!J!$3V1,A DR*?gj |Uf0P G1>vB^@#lT3B7CO%#I *;ktPP**O4!xxMQ"dJVHda\IG# ~+>{șJgxx9),U%D?#7$ʍ6M$:LxeQ**2 !HH 2d%'tA#oea1D#y|P8&;'4)Ckh19⦈4hHKeTs9$y `d[5Yڑ۶DG^w" Ɓ!.-s&X9y4ěH1`g(<0̜P$Y"AE{#R*%NBM0D ^fr͈uZP q  %9}g=ax^_|^=Hca@`YP|$?FM2<u#21c$dG$Bԓ 纎hL2lَ2>jIʑB LPãtceH#fYt#TA"J0 ZdAY|Y rgB{ez?w3g;3ߧ52Fa! 5L^39⨑;uyYdJ~ /s6 y0NհQw"GW55%cd6A3xk!igONAd@u>I^c9& N QxtG<|RlMxVdEL,P;1?4$Fy(A˻a2{P"fzbTV1fsL\mj g82+@LFιbWPJ,i -!Wb w݇$gQ<ٲHׇb$,Xmzg5rK 7Dec$\L:{9Ni##YXdY(r aӊPb3A#,>rp7 Ԏ'kI|`Uӷŕ`ճye-|$L9lD;@.pBY eB{ }SH]DHxd⎌X{qDѨ9%`ł^\G4@Qff{B\u>@sdI~_'9P!;9$W%;˱La{L/4b34IhÆ!lc2+"F؞L/<]́ ɧ@$5 :D*C=YlN+NN99VLHZþh(8T~o0@zvt,:O)9dI`7d@Yzd]I}PoAen^'539 7gPq3Ip;h;S #n#<9|(^A$hC^ Cy!W#pBGfapG)*H&)HC4*sA@'2!c4A /D|eY8;0S!Z Ы5RqP,F jAL8+fà*O+LK1VyeeQ}MFPԒ%u$RuBw&H$\=(>PN|T"pCEFAf(ኾLe4 kHW#TXŚh]" D`zt!&d;;Q12s,MyV~K9Ifw d?Շ @I9b$Jjpz'NcfEkU}VQ!⢦ȸ e UHP-DwQ R걼upx 9Ii ̎,!Jsb)%Gń r9dIjceCٴI㥨I`Lge"5VT# -Re6zY#ǺI3s8mRQU;~"$ubYO⁼p~l faG/AyPQB4rݓE1$\9v^Q9uV^ꋉ9D( Y6p 9Jac:Sg]zu&qIh6[psДC>裀C 8/Cstv#q%k?N43)HsJJ;Trр d)C&9CjEHNGB݂,'{ES8|'|YJ>!cq=h,cPZHdXY<:arU%2OՂj$;+ 9!aDB9BT멣XL/$i#Q"<A 8+9Φ{ LI`rg9zL},pp $!B-g?^]'32v1 i 2HEELa C)CNKJ%] 0v#X"otfy쬓|,sA 0y ( >F+%lL-@>'|TbBTj("rg_7G8j^fL‡WL!(QXj1Ȉ, 3_8?508 VDGؗQ8L*B&P 1R &Hx&ϏcN­f@!4](|P"a PdS,#_ jC Pr68yDge7.3`B^Ùh.?5'jħG`(HS>ZH,(r G1Pf$Y)?I]O۫x\DO1dNv؆q6JnO8↌4w2>CDPO{Ց`U ꐡ@՚UO4yc_îvXl6&q ED'1a/ R pYT%]Z%<Ɛr'i0F&%ި6=ޖ)gup:eG5yc'8xh89OPm%X8 Uɉp#}Vh O쪎 nB' "NvΪePڰƹ?^+<2 5;Hma@$Uʆm3C&x?4Q]h,GLF1x玨 THLg&ȔpqBg4;2$}+A"!O#QiB_Ō5H,ܳ('ge*K.@cX6D$H 䡗%S(!b6d\y^ʒo'tÁyb8H@!ofG3,M`/1A12\PfЗ$*s`x^'7ayqfII(R|\&=DKdI 2 &$ !;g6Q&Nq@d5BgEIWu>C-qy^*e5; )0ГT"=pοWEAb>]HH<#%m᠁$$U +@ ~o'qpD"O^0;Q#Q`'tzIT$y+!∦2Chy2=3EMsՇhD!HHqK3a =\ғՂS\:z xy&HYAq3F }"' ]M^}U>ؔ"RW86US@eLHװ1Ytϛ6g#` "Z P#4,EX謜{Vsh(Aɜ`lSńCH:H$i I#4LݐhPG>`5~? 9|YClw:s40e,btʄ k6dӲ[g"3jL EXCǻXWC?5rp|q"vI4/'H//\Tk=EY5]a 3K,/PRw$.">lL-'GIp&`xsjP%lY¨"H?4 C`% 3 X.V@@7Bf%ڈ!Wk`#G)?5̉z^/1> jD|Y;l) RPfA XX%?3H'cY^lsdAD{0'3@LO#TdO椂=nKbO'=\c,z[]pb2ˎW 2` Ղ ,Ex:j8S"vvLFMIG&QhZfVxE$0tylo5CrHx|vMe FP&K&@Y0GCx9XLy^ݐZh$? 0CnU_uy! N/bwBœ61V`U&@uug,f 38TdL%$L'"t׺b\(>ډH>#B_\"ŀ"#&"|ׇ"%gX+O.dO|>5˙&@* Sȱ`y rj ].+Ǵ{))v=psU#1U*TP%Wk kŁ'CЎ)39x oRCdገRD;>ldH R .D"I,I;^Rzp$8l6E2r)QU .YՑDe:Lt 8C,6(K.dŎ +$l~nl~8 4c,4^'C"RHUs235Cؽ'%U+|E.9+IyE 䌋 TKIa4DT%B}R r3~r'Րp7Vjα@t3>ihV>by ?H#ɗ6M1\:y竅 +Y ns.Ә.Q |m ~|Y9G9,s/ૃq!{ЕHfwaHCM ά@ig5"y`l B3ȣ&!4<ՙ nTp.H)ϺNlsYp/Se(/u1S("{%ׯÒCY#fN 5ֱ!2<>*G⚃E.aGTqcpݑǏ~חgx%*!#c_Y&1@qW2c_V;t9PC\~&=$?f7'Y:uEXzTl@@b xy9~$^Ϫ3 NX͓eؐ<Aby\opb˯X|UOF׀LdJ!;jX 86_t&!9ldC3, ?&L Pa>ꡃwA1G0{c>I4!I?W 9%h@>vDd^0D8@3TbebcKI 3X!"&ꄤ&V$8dqQ8LK$|l3Xڙ_zYSwDEuWEYvA t[ lA' f1F\$ $ Ve9JE Q;Ro- v5ߪ&%kFUϻa\Y#ȉ*ߚBI2b7Cp0`gAh2#f 3iƘc}$GB4xCIIDЃא3߂(dY0>V!99$&gH>k)3 ̛Ȍ?H !͔9ݐB JK%ezJy꘽I6. ‚9ߛ%DADp$b\e 1Ŏ G*A~"̓)y*kQ`N g3<=^k!qĴRddJy$GHH{٠`5R7>BKd1'*`@cI %A.XyTR`z(W $eEOh2+T>:&nS ?#X J~2u1N<*$R'FA*CBa '58^&j2c_uԼeRЉ:W^.qŁ0,pWwy{yNY)VX`ϟ(|I`6>>a7GYjsU|Qy$Ԛ e^WBK69"™Ř1H*W$u>좨|ńB(1q@G<,K&+9#6~IIA_}"쟲{(6 cAYDԉS bu5'!E `1PhD}%WK^~isCC@zEvy\f{I4fCAf&"L&0㚀 ̇<B|ĔdO"<;y8O+f&>b}AcR;9PRW"$gr}Yv ̲Kr?܏x% Jh@{|YzvS3@Sf9FI",$~%ީ"df4vX_@1lBU'QA1^PF0&`UV$$,G'\EN tGpl̳ Wplئ,LQDAKqI@^R#dc|ȼEB`2#\ZfB;;b'<(#j#Usr#+%7lLl tJBKlvI&jF0C ;Iف a16EF|v:V:6cŔ =VD:?=B5{G>wR,1 $?SuYr` IlFTHൈV H4cPD,*xgSqdKxb9$s%#y~#aPCK&tYA,rNgMH8tAݗ}RNg܉ިϛ< pa2/a$rh*a!~f 갅uCY7AYb~\O5C59X`C HY'%ai8%Y?VYf0p |XfM#2A$BM9ٻ/ qAhy8&"3؝`8cES=.!- }3&yH,U̴I8"BEU "oaby挴7q- >n<!QD Ug.>E:Syĝ6If+-Q'XBuwY RIQ;t{g#T $d:Hbs"w׼i I*pDDC<OT++(L4ԡ`=[i'QUa"dL9D-塒.$q@.OUO0&}Ma=뫠K3<GB3Bd{8tEy̸8שc/19'3>LD!Y[# 0GJ&Q`Oz=^[2"@u+ m ȋb8H1 Y?! XnQ"F bB] HT[2,'~95VUVd!?9C⡓UL@Κtɒ"-I|}W6dH!T$!8( l!_ !Q ,GPo6ˆQ5)O"0N^ ^#*u>2D ;b"s=P",(,r%]vQ&%Iӿr ]A߻"bsh&U N(Hw'($!9k4C)UDkw't LLEFrH(̓9$J 5D$ԲF#Lto%hdb!Nxmz"ȑgrJ Bsꭵ %O9y(.gK.0qǪH F>a2 4|O?%͙;w"$oꯩsp3$'`c7͒1Hr&I Ļ$W1<&%K6N Q FBq@3N"yhD59i\p#?S,HA=u$TQMd$~,KNJH݇&&F9@HiMƔY)y*DdBA`O%'"gAjnI&JfXSPuP ꬢnJYJY8Wˁf$i50TTϞjP|P TCH 'mCr#MDAw2Ȑqb (!%FuV$q熺0`'ϺĦPt<$r @7)FG)$8f&c*@^mgV#iV xG##j>a:vVKP7L /I!,@p 0>8zo""\ RV ݀Ѥ1aM)&8h I98p<)`ȴ.$YP׌@. PGMoU(IO- FtJ'"VQb.%ylD9)rbsa(Ph.^z갫Yd-&'ύqi BwjAHDbOQYkIZ$Yއ:xKHF" [Dxy_ e Sz>rxN_ILO9a$Fl>nXXSH3~*IbbUʠsd`j8E=_4 pBDg`A Ba"GF[, z`fC||ӅDgd(;q\=y͗7[Dg`If$x y*y w"Y31S =_Ak9c]`eYzP#oyt' AbMxbГ26#s6I;\e/bKQPO)I/L,9?lx ş!`P3V\\;'_%xha*0WL#C⌓SVQ a V^`TRȈP<*D;ެ f|P449 0#tDb,4i>P4aPT'9qN Dgf$$q}/cB>rIiʉ :h`g3|Kgp5p"ii0JB28\汇L> (9@wZt$3$DlBYt=EVIGe5FwT5ɂ5 nhn1K .U g75!%$#r>)H,DA^N9g&!,xCSꅆJ|RjRc'@##%HHHJC#!h8X# l=w 2ρfsc m0.1_}edz$6i LY))_9ՙn9 ̓ii `|]AhTFy7 ܔ82vB<]!R|sv,iwdd3 EI8LA᤬'/ P;Œ]W< :<E lPEC A<]Rs4x Ŕ'gRdfGx! ,o!螨̇8LW/-qM3 w\ 'XĠوHXQPL\6 Ƃ? ,?sy;r*tqAIfz#?e=a2vܲD/0iCLx)U'2H$sI&̔"["$) 8l2yXK9 .%ly8ʃlwO`$[Qa$>h! O?Tt"Ƒ\1Uć)h 158_;+ho7!1VVXq = Hr[" du/"qk8&UIjsfҏ*2Ah[N'+h\0P'N*H.jؘ(sjqas]{BCu{rLsаwDP}نX#Ub@_(4MȹbɚeIɦ֐4#)*"0#ɻ_NwDyԐXW('3Y0V@9snR6S${'`pG"6bcO$ p7|[afa''S&B"P;{$!<8]f9>cw6 okU(vVqI}ٝ$ɇ91>~FلOaP ^W 6z:{w)DA:1gsCs5 NR@Hʔ#y: D'Qف$('^2~+DL{&sՂ$>A& 4[I @ Hp0kPA]0\!渁 bPʄuY*d(yLbi=c)ಔGf6~sy!pn#0_EגrȇTR8gSQ$aY"BQG}>.Cv "]XәxC繩$rb*vyTAC鬀Pڧ0E:C7#Po"O3]R\'1Ɲ^*1HX㊁#Y5C,+?>2"_u`O}YY@ IJ5לy$#+1@ X, 䉖hhA ϯd3N]srOj)<9|֦qULr ,č{qkepzCE XrPx9rH$a4>2I#&sS1Ah}3 1Q y*aՉh3Q3g^ D B ܦ`;ƈ=lxQԭÓEHw9NsuAC 2#FP0~QbH՗8栄{[Ϯi23N"-7 `34|c̯ Sy"$1猼B2PHb y,l)"Nz݀/g+>k!BgeH*,N tr=aɈ8`(*FYrKAb@o^jFX '@pL"+IJ#ۂ!`m˗hg b {) 1LG$`VX%`X6yS'ÏU"@'$y]cSzXPT9J#ӏsCG,ّLqJd Q &3RyR!!`@̶7=1f}7A@h \ K $] ,峔 /yJ)+Fcq3@A1C3s b"#D t @6H`lo<q4b MF3q(SᡔN'B&:~̽ASPsqDbg &{j{8h @^CjNFQ @0 Ka/ p@'pϛZO5I(x v㊋/RӿےxH|U!H W(xh $ )6bTe%.TL: 4 -QƤLN"i9r?t8@> 82y$H峭yU1$h9+p=f0NJ`z;z$|! ^+dHh 'uda_͔I_6PrF=( \h_LnWKʉqXQx*2U iI*G*@f"b0A,1̱xU@$ B'# @I{ݻy3"G)%;LL+Q0|d5HRX'`+H̑ʯ JTRaǫB;:rtd?4zs8ߺW= Hy'08$ΙA.B4@RT>cDw`I,̼AYQߴ]G判5,sCO+.\htqa$GK:&+IK}I^&](W8BFCT ,G݀qzX_ QF* _;LBO^[ QPg,33q-9b /`e{:%u}uQ2I&T$|VӜT$$iCHF5r4(촎z ݈gI) : |dI :8 ( % U$B6">LW\H4i:'yҞM2x{ln@"LEGJSnJ!e!A!2dORY i$HOa* Q G2>TTE2ɳR@@i#)$Ll2 X(1m 9d Gb?6o58N@RzmLThuy.Oae)a4.GucYy2'^+P˾X,b!FRz(HiE\MObJ| u51>|uJG}FAyO5cFr? #ŚO}XTxj,H W!`W"gUY BX>ꌉXcj  Ifi EF)7u#"i"x '99CG64"e1yI~ q4 weDLa=>leagY~jFXʑ7Dpؒ&;@:wT9%38dX`jWDI 0:%/)Ӡ!Db#hDC aݑ :g,Ǹ0HA3SIKWL cr]#1"XYh$`1!ɨLZ113",2Fg= ON3@=QdO"x9#g@Dŋs { n^| Q"x H(H4,3'TBR%w0dI\`G#2=${ɏ0&]A>hfw "e_)F02Ԅx<)#N&]SWL/,v:)ո$ڨH^@Ip&a\%OxI#(T#"8PèP^(='@I1IY n)]\}Ѐ]x %09CՌ`2EO!_e$<ٖLeϵ"yzg<@u5LdzLܰr%8K*.rD*NlɃ laHАt96!DX% >C ō!B8 d+OfQ plCa2#?"K(AsqO7gaYXR^!k I2bXԄL$ð?HzʘBw&BČI@FfFc%<4L3?A2[v#lhbHؽ(<=\TP&bW6`sTfzk e0 tBZeYT[!QJ)q9>V^M'#l$$@@,8Hrd xq0|͈Q2Ыdo$T8b#Hlx<Nͮ؊f%< 8e:'Џ@E׻)}EJaUX`pLL? e=yq<+(@bE*Lt%{(F`Ty@a9W0u$VE|Bp^B,JL>*Zyh e!;TPSC3p#+XBO5LÁ!#܋.FgdPcGu9Xb8$*fxVH@W#ޏ5#kBjz̎N%=,HϻCDL(1Z j`Q8"XEroK E=s O*݉sQDMjQ_yv.;ℱ<y"c3f) uSUH+h*ρlj+֢0HJ O#"yԂ8*^ÔI]8uL R. ˯=x+9$=ȼ~*&bЇ|G#*CEeF)zNx`U9Aafa{RC@$rSrH d|8,vX<Ȼ47|,C݁OWK59$L `0Le.沊 L"$M39D+''FwI)L|T 7D3P,ӿUÔ|L'%#S cI$8Rbj: @!`I63>=x1U$x^GUC$d6lWr$ rY>6D2K纉#gIҴ|4^ʡH$XCĢ;Gۀ6HˈI Xw R:sH3|; JЩ(n)1ēTsA_dBs6!|E,*l)Ep_0#ȫ'Op~D V>zDa2m.i c'u:9Nަ%OڵE,LI;>* GA;iSP@2{*+lT~{<&=4^jiYeQZ`]s9,2;Iա~!6{) bhie d3DA;g&\k 3_dcG43⊎ʀ,8(PQ$(DQ4eb.}c6G$,8;(L cEUs?t je (b6}zWq/5 E:Dk38gRb* 딓#~6 U(bY"@XS-ps'Ϫ”2Hq6fwV@,zTeyv Yc>@<# ފGk s0J$(G2)UN(IJ`"EG/ 7+yœX @sp^)D"cʟe*9wVFHCPsta$Z @ssGBN492ɇo4@lL&\$T C{H&li@# $ħ_̓AF#&(wFDD` F^Gf<%"hqaLM=m%=Y9\VdgHO@8 g\Tr>G<5#ڨ3~CyyJT䒏 8 *BJc,DoVe:8IBJJ]DiI-@c槰+`7J% R.^A_?aeOggQx |XDq@%bGhzS,H^aP2$QL Iq4= ЦBr rTdJŘjLʐd@VL}@Q>"鄲drG)5!ȣ 2s,׸d}P"MZ2抴2: Fy{i |x LD6; lOQ# S k#,#" K@?kl$1,{Ʋo@c2#OKY#0<ԡ0!օٞ+:lP\h|U AYю.GqȢa:Dk'* ǜ<.vE$T0nNVL EJQ!V<~IFec'dPCpdw))͔d!7c388ēNb fqڈ y xr$ue9GI?dKT@lTȍ>9/ NʇN@}y !\fq 5 9yRIAuIg0`WL#,^gL$EύUrs3V0sW(UݙU 'Atc$&e bA'bI91Dˮ'y$5% w IMrl 0@18dLܸqA  TJh՜Ł@Xzm&_b<ծ >+&" ʄ;y 8>)MN8~U:nRN1b^2X>X,9ܤ0AH㘰s"LCV2,Y,dX@TA_;btK e7dYo>( /$>CŒ9?JCqf%Lz.\!  A6'J;-9b!s1p5I0} ;?H< " ƙ$ &<д6y؅$+dR1Q>bg jگ0wQ/`TĜuw"FCʓxXϙ)f*菛4p^B|٬&9I|Π9~zw䗩"4JJffej` Ϫ85( b sENS8ڠ 1:XCMt,V$სZʦc$E%xӽ㱃Q6[@ }|T,KXd T3Ջ{_XRy',9$~) ⃄N%Lv+}p%%2m=A$F#%ZQ&1f@ZtG`(DxW&%˫:.||% 4D&eLT8YCR@3>XAbF6TxS0p/#BD>k\ʼn 4!aQ851Q{acԜ%EPfGk! Q5Uq^#dF_1H28pi\CD$*XI>By1iv"H& .J9a77i =W'Aݝ-xY v9&'щt6yoURT$`uD! %@`'㚒NSP" $0:ځMG)ȫ 3TǑR@) ɑf:%ߚx|T &%v<;&"Vh#@y,<##,ȏp*0 N%r|Ytؙtwp OBwO+zh,hC̢b8$w9f,I%[!$C`IMIbtɏד!Qu{G2:P$t#Y bf3̞O)YAz#NC}~)/I9}|Up"ǫ6 Ha@K2!`88tH NJJ0WA 83⪤u>hH=Ϻ@flPYq"eR:J}(@ V"ɀ&=x9y"A&**ȚsL#fP4n0!ȝ5ȘJ0ANMcr^9<}bx?AΪAxB26 ohGPJ~=m̿4=IrJ-ʗN,F cfK(IlVs:_v`F`o,I%  W-3P|9* TA}];x }w+1OTI Te+/~>IQP=TyY!6@gWU N$Lg7`"kT{c"IS.:)I DLOHrAf])&Ae\=򄠟n331ft P.M@11\hV2!뺒E9/ЪDj%y>j|~h;3BOYoSKrŁ ʈ `A, >DAЙ>]HwLh@%p1SDGKy26"`L>kdx;ՐYO52`㉛&ppLJ$NW&JCRA `xI4 9 Li}*eI وxLX!f^:ɮ[,?|Q@.|P=G$޹+:0_ l"C/ݕbxNJesO8(JL/@L췐 e8@"W^#VW$4N;@z"OUR )(i1G1" P%.) - ivQ^VSê,T"#8'V ]0p fWnXO<&u?uIq"w\ ,<4@\mG5K;x&|)q(v9M B }Zǻ:Cξ2LP 'TFt@;;b:θ|q\4`<2D6xjfhJ&cTDsgCM0cݍJxOEJr^iЍvjڥvc ٢qE!6SG w( +Fl^p:p t1Gq79vKù'9׋LgK؆0GAՓ$PH٤R~HȈBbr,aq_\GP:CI%Y30a \+⒇;m+ 9?"}`lY69%x`$*b^O DWN|42kXD}UCq3'޽QJA'4Ѥ$91\ '|RgD~_h$#,#<!Ytc(ٲ;U2*cLـ+Dzrsv%PN# x !S3*!dYx28_.^,,geUL/Q@h7S͉Eh~/V b,OA'J.>Q}|YxBpK5XYd`^}uU4t&0e)#IT*WV1i$"bOR`|8U Ωp{`T)-HҎXR@| LqaxMơEAYwWPIxlCs$IҀ(DBd+AUTE1ՀRA7a'q$l3Q\s> :nzuuI;eQ$UGqS ͔HLhXNα|.@"ۜX#%t{BwOP~L^uHI5EǴ/VI?XrMc@%ڻ gQDŽ(H㲉8{hez1殚_3y+߈PtY`!*!"yhE:'? ˊYx1&3ЄY IyM(>r_4P,C]%\{SurJ'n8 XIEsy܊xKg,>)ҽ#ʦ%?AOdtǪBdc f vʎ Xo+MEH'+߻֡d q&y;3`M\nbJ2 R9#8"׏tl]?T}C@J p@@e̾u(s '0t E&LPȁBylAx}$AMI`v(Hu^PI ʲJE6 vL&@QߛНrӖe|T2r N +$ c\OYL݂A!@g ı(&[P4@O*zo !f'POM5؞/dQd2H#.|y1>*PXTԤ:GiřdUQPιvP"!D<: a'VEyeHK*,:KX@@NLqaFv$ {jk4ASjZPc>(vY ϟ6g/:d⃖T^+@'TrɟvCAR =qWBH#^e׾j 1 oigφ[XXqT(AP@Pf҂PrlFfqUJXRwf'&̎}R$s*X#Ϻ\!DSLi\rNS*@pyw<<D{ $b%)x8I#3͖I ;x)Iֱԙ,YLD~ I(NR% N(JH{8ZpbhĊS~F͒(!f9XiĝPF,ЄS2V^? Z꜈d6B5:$xN 'EK'wtɖ棾L~ {dT1M"l4\ԧ()9daWh?þEEuM8:'ٽf!曄XT%g"PAvMgM e%#ǪgP #yGQ~j4<"'P:zʔrN%iRP&KgB7$z~ 40+7&I*ϛ9j 3cf%ҧ,c3(cR_N<*Hș) BVgxU]U`ufrZr!bb&Ab?C= t]3?!"' AR(Ü<5B) Kt SB$X|7yȁd,qYA}L-f3B%ID HxkG^!5#1R *A2r$h dlH0u4fRS!.ˌ|qT^@$;J0P09&&0|J7*v6\6E_5%30pP`YF`L^T0/f̰r4x^Fy) Iya'fϑG &glTkGүhg Jh}cQ%AJl`D^gg9@q pzbBN-P[ LPBs 5PwL)!gFYp1ctHd)gڲL{*LP@hY ~MQ,~>.ʣĜGjӀi /\?jp3!TS , pTP:"y 06aU Ln&I1w@aJq;g7,Dx"f4`I4gx,,GVX?U%HC=?T(Ie퇮QH"uNS@.QAa"CrX0TAxǚ!0;v;4󫥊r9Cr C?2XHDA, _ ^K*ORZy"D'4'\"U~j؎AK.'y,%/.$0)^ 3KyʞVG+ dt,<#'O1>+uN~XP bX}]delB?c #済%B]|CwfN}AA/Žy\#7 ReW_t ǫ/Q.{hz,R2ˋ"SD^ 픈FTzc'MȘ0,$qf2D*攼1iCU$xK ! ̜܍ɩ& i1b$3V',4 0my0ȼh'ǧRH#j\֙#&͹ C!)#%LnÜ{@$QsD8_Ub&^&!缢BR4Tm@ \MA?(LV3d^" yÀe6W(5hɐf&1~ $'IT NZ0@ŔF2'VU煏U0o`E2yU'x&n(+'1kD|ёxFO 2Af`bqL5(z*ilz*A )T5H%]ɢp ~,Rgczx.ňè$X\C+L`fJDARϩ}?2zT4GUbJJ1uj 3AqKtO RvVjseۂY.?t 4{XL漥쨂~*%2ri Th|*Ty2s9^Z2y`U_`1QI%V( gl3COV_\>I n'4ɖSp~J%QN.$e ey&Ba hF2qW҈zdfmU<_"I͒Xwreb"fO4a>{TA1檁lΗsBc&y22OS QS/YQ1$LG;#W!DMrB9nrp<]HooDpr?nqsn 9fJA~S>~]eYcكwr8 _3h0}g,j(5G̝PqW1d>P,C浗>*~x8&ҜSS xo9WA#bScb [)CwC^eS塐)(š-:?;Ǐ7 $gV!`OڤK$72xfcUhb=p3[cUeLŔK) #۪LYP*Yf:=ERk $LS 9D) X+0G?<: 4#>!S #=YU#pjIS,p$~!DCv"D/%f hO@x#`Ww0M3*#4 a2*&6&2w-ope91BVAԄaPPxS:G^`̽G)5z"A 0F5 g'`3c<j&9gYO6-eFЀrϙ Ⱦj]?EI (BE DYüzRP5bDLz%"aa"#f2;4c|=el;/N)Rϛ=3\;av,+n~"׏1]0X^SW{zH56drUfV'&ls5(`ѱ! aV0`My=)X ⸜I{q+ 9qeF=@=@b"峀gA]YbcVd,'2z'9HG1{=/>(^zߺLQ2;ǹ0HgEFs!g' c_ {=< /3Y 7LD獤Xb/)jTEܫ#' KE|9ÏD: /%TRH90qڒ3>`׻ MQP?ݓ)Ǭ'o.+q=/ń1 Ny̰ DQaxߋϺ(9VIH|n`A̴e`%V ɲy䀚ěϋ'pϛ F#JAπ!"8)drO%\uW0&x(zb( N>l MoGS N_ .#\iWh3O#aY:DsU!ps9 '16O~6FOx @?7YpWrX9ܦ;b؍$d!?Ұ}"*"qT+#;A%+ L=Rp٩9yfpxEx\Ԥ?5YX>a=D0sl<%bYr D90,3(/J#,OpCMi9H̵h b .p]h67XȨt yR$ 4$F&O y#V:Ѥ e Ra(͘8R)/ihv_Pz 45Jb䪐|PM.uB.C($5#@L^3f|!9$'H{#gmO Ւ:/a(Dw꠱) $RMd'=Xqt%5^$7SFx"k$QP*a( C\3Ŕ e 84ņ`@pXTsR|ݠ}lj1zB$yCTvAiEDAT“`@XgsDSM^>ߚO(`]| zD15LH؏$ '}A <4H8 %"$. a1<5Ny1gLPfLK՞ p-zD_te汈KgPɓ/d G5K ŀD1dD4FlUn8' Ys{qCVA.&0|TRSeYV+M%`$ HƊF 댋In jbo2DH@Vq ȿȓG@ԙh(' Rz"Vf.3X%fY'W"Djo(`Ǫ(2r~E՘LS!*z`@Q`$H Èc4_4H&M/U4T*QkGkYU w5j`(ē=mApeX< U撼w4r"h!xC,jrbc"S.grȨDПv( NJAuF=U +\;C Ԭ(:0f%yG_u]I%Jά"l?T$$S cOXexc6y\"9,04e]aTI-^%Z`#aÙPOe :ڜ(D y]Sm(@AVAp!I׻% !wx+$Ac9Y2ck6K!ɪCī( 9hV.Hx?4#?(4eS2UH'RY+G"$N!⇑D`C /UJrM CNJr&$:8!', 粺q*3-y̲L҉ yd;Q #$p Ys@Uᗗc2)$X1ز,F,dnC6XQSI]]YIϊdt% V1!L0פHe#A8W 'Y}W;"u?#&#a, ılonoD$"կQ:nPB`J>Je̓6\M@CNhKAs` ߺpcE>)p$q!PD  t.r wwHy80OkC0Y^yeMJaq!60lb@a;i_r$^`FuXA7d!g[RސshvM(2qAǏ?U<><$2G0(C;a10o-s3G5fŀD2JaA gk,;% ȁ9;Q24$T',@a̼ݝ,Y ylG6 1u ˺/n`LGf=! t1c?4JHbŗ 1@^(x$ D晥0wU14^|ՈdӘ4h\8W *"@F={C\H!(OJ%.y8zR$6.Q$ ^ʓ2p%6:!>: Du 5,}<~J 4`] Q;2_$VNBY BN!/RREw"G?ޥT:jtaNJ8C1]Gp^l M!"$3Gwa-@Z%;4!$Nrj똳9Rt QЧk aKՆI!VI{TJ zvy!͉e0W$y' g}蹿`Ds: x#](AG~f:4d@ H{nK-,(H".H:O>u8S)louFP@&lDTHIG*̟Wb{VG,$;"IzLY{ז#ϋ'uD_$EDIOfh0%Qc b!A2\@1I)G*"Y"l"<$!}^ PpVk?Q>A >*cZK1ɛ3Ր'z1 Rid24YL! ^"Kw /pBy yO6.NB&y[8y:褻dP*GUF%gEX|q2" sbB*1|T坎Yw<ё?TB}Bi!$bńlZNaf{J$0nԀ[!I7xDwCGuyB<]`{%D ͞=YA<9@!q~艌|3POS( GwhV">oGH(5āE Gze椛S A{ CpT9hW9U; <$̼o$ġNtWb@U%<U)$ac>+S+2G-\ Ҕ I,@Nm6(֑ pNh4b$T %gJ1݅&z*$)Eufc2_3IDַ"τe4ɾucPhPzBL|`DQ:4AzýYB/,S;ڰ)YwKYȟ4W9c(͗% q%rtdS,@@/dac, ExD臅т8Рa![@^&dP?xxQqjxO/QPN ( ʁQ2$_6@NLC$=\!w8#vNS#T0BOe> &(CuFX?ͬ2 ȰQ |e2 Ozb'g_u)-`lF`׵6a$}Ĉ<'՚fA&]^vQj< 8NulwS}WWtyBJX$cGSx3H L xIQ cxq.Yj\|歘P>,$DpQ(uR^N,I ڤw͉p | ̳DnbD)~2= uHSBDY߲Sr%VM!xY(??t8{ 26|{ExoI1u$h@"a2NIꘜ`s)@뭅 xwXSC:0wX J1g<2@A' RA#!l2 QCzP y>(*WV=b VD~'eE*qQ aA7C0IXa@%aK(>+!c'8Kpx^p= !`Yt'At2'p%)PcŘd/ iP4*ĉFR}&u/4E#*UH"D2eF9͏ ⁕ J^*:;0ڊ;@eDD6l#CD)窡F&GhU 0U$'Ze@I,u'>hDjBmQᙚ XZAu5#!ܑDX?,/+5gTcxhcI{y )-ܕӿb! '#: 1s\U2PczR 9A4:HQ燊Pl_=VI&6XO;>rR|V(I+u,GN6$W2 1˛RusJI_yӠ&gPJ]LT Du-g"*%x'9=U'fb+cN{,:҉E&G'J#7Sfxb) `Cplg!M'@-TL,Ցud'dq2بt"H9MaClfm BdAՑ /ϨX dES=W u`<թqdA{uDJpYx!|;fAc p&F樂j϶OgHr>fpʉF3^kqTYߚ3zZp{gRGˣ'݁G:{"g*Ib=s$ M ptsLl"4I{<2# /k w(@@҉g{ĐaCLtBq8 |3!)=VAǸ=RHDɗ&CcW$!~ݘbh<2FKdb9m\HJK=Mת1Rb=U' q>'?&bBWnAíf` uh HKNh>RN̜`{J.HeBqPIMg >h0O>(dRŕPeE%|Rꫣƀ"tᷴ$K+=P01y% DEDǺ# Raw% A@Tf,E7E#%x~zI:<U>1^ C<L/YSt24>ު|1plMkyf#q8RW]kEȬn- U!LDk \|MX" ˖7Ԣ)9_>D|!l*\jrpdܨ l.Ir6Bxjyu_RA]AL#( :Ak6P4H)d;-4,uJ'eBphq LO$Ыab|qΠ&oOQykqbxx!*: i8!"GDU3 6^i=cDM"WI3ED6r;te(w cD)V3j$ ÇGd*"z R.NT)h+#16pN&*̦5=W(M{(Btgt =XyO1a%rgÖ``G!PWhCP3uB3|*g<9{u`i̴d' D\b`w2ƁTgtɤRg`P='ө͛2b%xj5Ɏ ^ K d%PL?k&UR?[޾ O'4q=Y&eyPLA?&{Hk#ڵQJ,HD!&^2#z^j򁁜@nlAe:܍)>y~졄!d@i<ƌ) % ) &z8 A5PLq!8D%adB#߫Cf*zmEr,`X$*e@x`b嚲 8PVρgADa;)5a t)V_Oi Ì(+ `Sp3Y$wuXbCx^(3&Ab&&S@ Pe1q42 u-BWl뮫w(aӺс20Hz Ə<'V%fS,^taH /i?`㪐p˲]l &>q t1$HAylyФT,r󩧮Ib|=<j}#&KP%C9\*rs&'j0j,zeFgQ!|+Uǒcc D @7_u: b~)Wt1M jﺐaX|U<ُE\gy35(ht%6\VAI+Gq;3E( !ۏQ 'L 茎_bA ͳ{d:'1Q)!P3̶ ?1,hMf|̐"1 p2hPh+i=\1k^PY*uZG2R7c4\ѸWZHojN u]8O b̲G0D$oeNL Ȣge;diR  8i9R̈́h2F.!)9اY V6u`₃ :.)8Ѐ <`zPYc)8r$L Q;;{*2X]7#c_F;%?0K"˘YTۘp0z8 ApZPGq,w9\OY{8{@m=UH8zɐ82;I3TJ"XC%sa%H9"0v'߫*8e8$:Ɣ]~LlȘ3xi:Hx?sD2rT(boH2GdH^ .%\Ɏ~SINP,BVLPp~V Lچ)%MdkbJFPI9c 1=M xI@0"9H'\I/Lf#}w\0A3**OVR!qE3\*,~P /ua7 jT,ÊL,X #{RZ)3T 6PDt3YC>ʌ˜7Aa'Y蒄3⍖No+94;aG3iM;>A-A"{( SMD0;hE5|?TF tGNOT4Dbh"=9# =1a'#YzI?P}Ѭ8Bxm\΢j}J!= 5d%4O짠D\棓'u% jE4p>ˍ@S5P$gsaGga4gQr^LP`s@&JL&r">T1?TJG[+?V A@'x=VDr"z?3qpzr&QkV O8ŕ #SsrR@əQ`4i9AI)hI$%>*H @珫y2_I##(Pzi]}עBF,!Ո!>l`1dpƔ=BI~k!Ǘ)㩗TXؔM:UY}SMdX 9PHhݟ5J˿ ~; g'Ǻ=A׺g 0«dxmݎ9qʹ_}TzS)"&$ɬ5h(`-P$lH%1QHϺ2x⤛BIc9Pk;#=I^>QeUL;Bx1 3 ICbȨÔiER.CP`<A*4Z\{%cYОv{qWJ=]LH}X-vbWR_3rc.#`$22fYsHt!3͐w5;.ꬼdHIQCH e-9?K)(K$"Ʊgg5>O(FZ `;S!$B `v?t.83a*&%Os)xgɱⰂJOYLH JT]XGge\]qd$9`$dY$L%H'[x%7KLrFQgy` S59:I"H'ςCTy^$pE fϺ`p jǚuD{XOu`1Έi09H"x<,I4_HH8d[\PB©6Fhǃ(@&!i6vM4 X 5GT(¡2殝)T:@K ڂD;+EBqY"TL3D$Yg3kOHcAʂ>FgΝ#͔̺< fH׶(o1) ŒX ݙl)4 iǘKTNIv|·h$I$3ꦧ;3c'*XK]tY,*QGcs% C;&j/4:} c=@k`ȗX s_ղTB*HDPRE!3;S;"?PEpx^Mńm(&poUyWT@dPMY4Hs 'tC.i uُE b@ :ުI5_S>DFr-1b;<< @|,a/ŜH':OhLW"f!DK#gGqn B;uy%9_BbєgՊ;UPҕG1d$&\|=vV3Hj}:=Xy LfLwb4VUDC'MB;s]`lX+~ X ex.3ƒ"VU"Ά b;*$WaaH <6g-Bʙ(YQ&.U1Љ_l\8#Hؤ*DmCi(WR)(FD,HSVQz+ ۧ4+8Œ'X! =sf2IHԞ4/0AL͋sX@\Q15 F5G@cPJk9 C:18:CJF=e*/d! T9h p4yl%Qz)NvLAjλD78)$s`3/V3!hpc3!xX%s !h`GG"A9a4^ y`1#w lԠb'F3T$&$AV5\%,iT[7Ĺ S!Lw?;{s`)nNba}SB,wI :I\Hb_O zH ٞC?G9~s7@GQ{b"H&d*PIFH{&  d0{lzNŒ9 U GO3,w]Y&@^D',\O$XÇ$pcʒq/P< P5Wid1"gY qtDSI B@dC*ΝPtz^7:]М'Ő`I!>;4tLم(l@uO@Q',NHa<]"T"Ex&\@-G!6@`|db I Y^ %'z\x|EcWM:DM4o34|P`<>fE5|^D:R 6=4Zc>B b ZDyLpJkd2'yK9>f]W$ZD2p(E*Y'YK{$y ]OVd1=U@xH@r= R LJ@%"n4YH B"MH_ G|V 18Nog6FIPxUo?UzOTHpgt }cY@{,6fdKx%IN"gOaݘ2nī6Iq`$zƒ"l?1՝( 8QO.Gz+X 2]p LSeGĬ @i; FIyW t 0>GXBpDiAI6FV.K8z$; :RR`fq0"z"<%HxDseleeꁪN\ |^ {8Pq3zm`޹ࣔ R 8@$ ټR/LLcww>Utxک\ܯ)a@L c qa@L_f}QFHh>%`' vhU(q:|\ Y6FfS%6>LFU2y~AHDl&4^ˤ޴Fp`[g"v>idvw6^XsyDx0Wx<=MHa6贆|EW1OuN@$d$Sg ;G*i$<;.*W`;C ҇R|2yʂjE;P #Br:r T cɟ6BA)lS4$0 eR *!<)cH ⮑pyTjbQ'O4s1͐_>'V5ڈb*ՄIsVD%TkS&X̉0F)9+SE7~nQP}C!:BrzD PrtTx,Fn9U F ?e]~&dH@D,o{jAP@v$%k<@8H?(2NUJpJ.դ`!{xHYT@$a&þ6l >,Aj;_TMGuX %IZjGhW@LO x7O^zhB#'8?}<I,!8Y%uLJ|A2̓M9YTDC#^y{ Jv2UT,@@A``]:C@ }CZ4kiJlYT'fPItro40{\ᄄbK 3a"SPD}"a=BdC%;+tWf>|Yr.Ɍ|.fD=LT#>M|TNR'R䉢X8gc"}>p ^ Y('NxC34@a$PDKdB@P8pրfGArw8`1LC(qaZ̔F<L.M7 .`qo7oѐb ҙ캀1a3뼢 1P8^jamĈgaHYDH=Qvs?]LQ!5u5PY1T'I9>jB4O1`8wNS>,C$J(Y$AzTŀJVpDylqR$Lw\qɖg~͇eD_JAs0lDn5c h>PBk SŒ!{ GϬP ;\ UOu0L2`\r Ƌ /Sr 5q˴$T@&7R Q"?&dEcP&*Tgq]e:TfsR]vR yhJ+>aPcjөvPxHl1#3=Ev1Ԍ+XOVTĆ cD M2 m /`PJD!(Xz$!4'9E=p.lu9G2Yw@!e㪀}& fXt"d3ɑw ID甏T1?xf9 :1CqĎj@H<\ޞT>< #vr"v>jXN. C: uφd21Ցdlf!BHqR59MI9CQArx*$HU@L_eG~#ōњ)QK*  Eԇ/~fJ(,gȄ ęT&pDPJWp<(A3XR|ucT $? 6ŒT cF*fA _%yN:Dǂt ƴ_pGd xVTB0YMɇS%5i)BD|L'}ǗCϻb~,81?ҰQL塝^lE(tGaV 3aЄڔ~=UifY0ЭSINX fƑ&19cYu>IʵQYL:}W/SXf sXd܂I0qP12戤eoe f I:Oʤ)8#v(' )'goID=P.AqZLdRf=3&B"S\Oq4JPz]DYnbN"l>#ؔw06AbIKP0q+$CEY_ V&4 Q2@Yu]8̑IrO5|P:%x* 2?6)1<~laBnf$X:oJa-$,PBgcBc p;绁C`UyM&NlXA831O wN)D9|&LTcEZ8i80}%$⢆ol!d,"!1C3wS0c`Cp<5|sl* S8O. q`aRYtu>fyY>JI;t p4}}JLHd+jxxWO6( xYP;֞My^hQڐ,M ({$hGg9|)/cCMÚ׌GEQ@ULrJc2$MR=GBȍy\:6eFxe.cd#b2c DhWK/,93Qi+^g~Q%ory0戓(u$Y9 E=O I-ԗydאď5TH!1pFLπFqJl (2"y0$ƞ)dX*x84b1(s<gl >안9UTV@λ+chUfO#fHby!$ ``4@b)UG)ydT+P˳hx? Λ])j A.sft}Y5 _Ǻ^7#6 \XjLQ"S@t''ur?i!y^<^@$8O-(P~G {i,0CSb=،CVGe&L ﮅy'9hyz4݀xj #> / |ިp\iRπ\ƝlW̌RH  ͑3CSsyy`H1݀XRget8H(t,뙮~=W ,ɝPH,'ι@π_v`8?5'XHGAfD%J ژaIw2RgtGUj"WU9"gFM "@ݚrO-D<<=Sq-wQ0;wp~$?I^\"a~)³$N{]È#&11!vd**uwT0,kt5&l0`e1F`@Zmg!wlğS.<'[|Nm$BgsU%1$y.Rbc.S3Pؽ5>/&0 ƞ]Ma{L%3.E0 2\`<ݫ3iBEv|gѵ2), {j<8wP#JRyĤOu+,sOr=S.Fd4*gI" *Yt^,$g. 5)O݂@a1HIyw3y$Ǻ#܄ġ8Ǭ*%R^lbt<hǐkΒp\Gf:f|S S'd7 0F#g4oTcgWB!͜eK8gM@4Oв,"SD3X>'8jx~ Euxq%yY<QǞNT)1\uB;_5^#*&Tr>JBHu0Ei>Y4PG/l98I,ԕD5q059P@!CLf1R>j/l~8%D'? ?W & R0K2#Q'2Y":I22s8j|ʄg\QgwXy6KjhTiPB8R|mE)x;e}bLq͖'n9_|*PIB9Fz&(%D欀;Nl('t?H# }XI2CՓligDLC1e!@X*3)8X؂$y,?(O^_*Cb<ՕDvA]w:kHԘJ' F7F|RnJ>hS Ҝ!ytx3yug"PƉgRf}" esM&{D+2zM夒i u;E$tJ47r/GvQI! ;cEq6(g aYr1s ˇJ4P:lz}G9x(U=e$8{EX~l@4͓"gk$H`HIu2`<J1E@ܲA=w,uh=TK%i"8iB2#Uʡ J@9,J;,>@A# ,P=6G[fW j$~T˩ RX^H;_WT2*&)I+"p N$fc"=ֈK $n˾Hh" 5⬰74H0%<.$ B<|IAbU {d &A|s]$0\ b%C ]RM:u9$V%+%8ޫC;`m6OuY#Ǒ:!nK"?(nsLգH'z~uiC< $H H!5{P'y, `I`N63zDOc3p# ޓ$x*17_o,Z!ڡ}!G#%ycyg' G@9fY槁3ageߊ08# Lk\uaO<  z snv\j8MCR`Ł \QyC4Oe9+&?tbOR%P$*fqV,bN`|-H5c/sX"%` Ǻ0eѰ?w"ɒ@!b*&uHD@OK1 r1*תG< fjk~b"% ) sjid,ˏ=`I0 $DQxwTIr'}G]'؈'t 1ͨL94bur)ަJLR'5'9`^^K/qk@=pudP/tL1e:*+G<3FG^ . N^SBm 6i8'c =GZs3dԹz Nce70g 3C'2rG!|p@O"̓t({& Ytbkw OfaդT$)괪<(Ǫ1ڕysuL-P2"8{j?6 ?7ߢ<dq Sߕ']@  q9Y1%7PL'R5ZrZт0IJp3C&~'*LL=mkN / "$c0h)N& qY}ւd 2l$Qؔ&ϭ I+ w5}}ք)+:43N(,ypud>o7#ϫ͈pnc#n&zGo *P/FJIDPD*'`XIH>h 0 U"S葉fiPW|LI z!T a4,q8*e8wY !cOY(CHwlfVq5țHD"cAdywR"(iN,VH꒹`pN9ouX i]ǃc"edIbf @>8)CzyQ{,B#"%\B¸, lYQବ#ՄPO4C]xq3'bw @$ANWeI'1f|P3acIpBIzsŊ3U(,4=5IܤPc`e ' z><1D]>(C=7xZ31ѠI6THqa8=}dϪC$@EY3dKe!ux2(@?p HwZ@buⲃˀ6yx:@|f3[(eTD27ł9I ( GVL3bN&`i'E0v9|}F뷙] F7H<=+8 {eI2<&lay?31' 9,? ?PߊWP\sN_gI@6#3W B̧"k&>n0GhPә)u5i^r*2e6((GPYčzK fC^`&L 2FTbx24 fuU0\=$BR " 1Ay+Xl0AH188,lZaul8Ayh&^,L25gI:m8'W > &Y;er\l"`b"SL>T FiS(h#TfRD)Rk$04Q}%&"%R@98K !]1N!sBP#<&eS84HG%B@ؠdTIVV&!)'D1F&`Ϫ4"ƕs굪 /J>;3ϋ dg,v""Hd9,dI^ ؂^yR|MK#sw!C4Q(NX$M` yNi@ưܐX&i}Qx4'&W̤fVˆL죋dBb{F.3?U 5{JAue\t]LЄ~1I}Ʋ/:7,fW.p)PH1VEB`ua ;hKmi 06@lvíl= $LUc1 Ř(jؼ|g-Nfe#!;,0A%²iJM+3^U(#_f$vK<:"#Jyh;毑7lJ rC!^=C)] TK)Hl:&(yYę2uo͜IXxF*I"̡3Q8P 'MWB/|]"V,:6]Ld .=Fhh* \BIR!jfeA4g!E' DVbH : ]L$G'9lUDBF2ɨ±! C @(:eMj[@ MT`yf;Ng pwbh+f^,G1/ e>l8ܗ^ӒSgGS0vĺ|2Pu Cf vfu`;2=vbimTa;<2tHӀ{hiqcuvsބ 3İC@xеGZJLD]SO$ x t1#J" cZH ^J_4&\C Nu3+ dyA?N$_ /($5qxݍ)vd;f`A`MQ*8%wł!‘UPaBY遁N=TO{XP 40`YI)E f7z=3ICa\Q%%OfBs=1$JLKPj!͜H'WBG3̝&<1T J=TRY:Y!؜eܻanŇϙ:֮ I_D""?SJP"WD$F'%z@&8ravc f&_'LEfQ2D L"oC9@av6|V =V̈́B hz5@9$&.GFHKTDTKY" !,&鵙 ԻP Y灾,~+9ɫ˓Yc*rcN!:I&WH1D?T DVr#9z 5;?݂4\z_1C$H` -K "1, 23SWJr)C8=3]evT؟݈GΐʜT =UM:wr=y:byYXxiY91?ROjhH12Nh|,Gt eHO$5$YY7JacuD !<F$cY@)4&$( !@\lT/ 6$*iHI+\4Kv3] $h#gV D3 M$fxדqoQGySS>Z9A`LИf!;.oׁ1rԙČO=ңG!'`l:4*xkv(nG\9$OE$Dw z'>6rx(l9׍`׉C.OR*1!<^GËv|Tlg0֓: rerRy[5fF?bA8#r=PnI"78ła5ǩ/2͜D4ؙIvNw f'uD5q$4@*ٯ 9a_GU2)/wQ/`2{U9`J<'be8=vri>/yۏppJW' ̬D",ctY`f9*x9,bjV3!?;=D@ CϚIH$NT8O!:;hPHq?6Gx|DLN12DjW`3ݔItܽMRRJ&<11Ϻk$YtzQ.o4&!=S(zqZ MȺˮr`ǷtKv9&}e1J`x|:pC)GW翊`^8BqH>ʼnsRf-F^ 085`2~wMyV9wrhxXgx$Ҋs3y٬R['ͅijcfUdD=M 6&B6i&.ݨDy0gr)!5 MH:~h%,(J!zQ.Ɩ28Ԣ DZ~D9m'͞Rg2| :t)@ "waPAJHricð1ӀӏGBG.HfOuyA9 -h溈,\ۂTC* U꣉2Yȱi$ ɗ͟\MXtL^(玬:+z w"Q`z <5g;v=Ԙ'\ *A+'#fMqOH+>l 0za(SbE'cu p؃P%0pR I@#(D9PGOY\E`59|u#uEsUXyO((`xjV50k`0/M<~pKǚCFeZ,9)5܎$[&͊1DLȤnӀV XiGTc Cߢ%)(B% gsNd!i\B`!PN-7`y+`I:^1b"\eБ;2x>Tp#Nٲ΅Xe4Ihx_ߔLa9y&c{h8HX!DR$H6D(#]0;Yh@X<@Kx(Pd (&K!ߊIA d) BHODT)"'Ԑm]s`>*H@^|*s ^DpY:iL_M#peBܒ}J=!A9+1q Hm6)0<#у;d8dr ;X(̀K x)5Pqe@JQOԏΌh& DB;(R+G7: VP϶k{))CF:#Ď̓/qҋd٨c{֑Ď3(rEYba$"DL>VsyfĀՊooa9.!ٟf8GʼnЈ=9PB '5#3`1ΓPIF|VI <E5'8<,滹dqBl?t0NgǮ)+3iG ETj'.:>a=@&`够t)D~jFD!7, `2W&<?jUQ=fqH犮)w"Hk4f-Ӳѿkp">jANmsgI#G "Qݨ pD~(p:_⺉l )^aGDbsS­ !W` (݃y R 7W~, . UU4GQ@r" /i@{ @ň+FЄ+gU{`wMxFj)0,xJqC>I, 1d$saG,T*՜9*fmj[h @ s&94 YcAcS&"i;01͗HP3S C糂"g!Se$N`SdIC(,~ 1Q8PT88B!DBc=ah4PdZGxA9Y0 XR2NNjI BDv\)f& TpU`^xAV@ETH EXWDv`%]!4:ҹ$CA,d\cW%~\~bАdW0Ky5 vIV+@&kT4mdfbK$qن~aaO IzHr 7c<ϊ `g0q 恂E^A{Tf4>"f8ʠvj?ƀ9'.'YŘ^V8b513(B ) 59 0obbw^wP#W?TAvO Mt{|$ZE$ /dwȘxe2ʇ꺷/PH#gf":VGGHˑ<SsaM"EG rcH F ҉uq!ϙ d?T@Gx{(L$uY7>j"0;~ tu D X^Lq/I#BYFAk@{Gtt'>6`+$VxCh $E yH 2g4 ` {tǣbTFP@CT0:5="U=6$CdO+>8IP>\4O=*0c%h,_}IYWۻ!ls EY/%i$%:H#?U#:qRlS<@!)<ףȣ7J̝ `C+eM|k.䔁9V^ۚGdw;)'B7jpA0^8U?uRL/;!byxe@1GSIJr>kX*@0 ! [`Eó'D@$GTŽGlj[~_>j`9⇀FޟfUhȏ3at2,:;\RY”RH`d5fd( ".G`;DMڢ` {A4 &pO5DG23~o8/#D"pJv%e teqR#,(N$w[TNLTkPQp79ɑc,u%}4}Pb: yf"Tpȝ=A,WE3gD"s3dRl5>cdӉ2ȓF8 C'z5P|]wR*9g&V 8f ,Hc;ǎy,XwN}^Ey; LXѳ?$B"{0+0]jB]|*$H݄GS(⥈d(ئXPA Oޔ!N@=t`Q@RWkHϊAF>r%~!>{ #|\!)I9ʢl^ TE!9,_{ q=Q9Y1bLTfn7 x 5. zЌdc%mQ`g B?3Հ0qdbPsVHidu'`)ͨ؎:l4bLG`4W,8 I{|є{,?,BLCfP:"L':[Dyn3xv(vH%NyEe>(Y&G[4r>;fDž")K(H|5zINsfC7`NDOTFc;#0)EX,A"y9z1 GBW[{WA88HPȓn5yOTFG:,$+PIG9K3嗶l׎cjw $Gpa1A G3z{?u.ݙBɤ{kNNJI I;Uka <Ʉ\G+k3Y8a\SX%TD9r^lE:Y-@6IJ*ye̸_ OF>~| O%jAK5Ï,*6gI@Bi@/GW6 p<1f*I;ф;0MdK尀Nx;&S rϏrP<%$ג(?9A.fkUJtz=\U!UH1V B'%gz'8wg5>POel3<~÷q:RdqГH`\*nD9욥Nf$.9cy;@hvj3<$GTB^(\4J>}Q c>i.dB?|`&$f!"p͐df |DOVL1X i 4>ۣxW$@S zlZx80mSϪ~6E* (2IYcUNzq9꼒ea1(FYbN׺q (]~f*?J_PqG1DDAaO'+%`J0OG>hrO) "I`|Xߕ$`ZEPDKw.l!v^1]c~>p9 :k_bUȂGr 3|`A ǒ}u3ȬucSG10U$dPx*̒vA=bkK=;!2r 3 `8*:=&yaihvN=0{ y,PaR!7"X:DĀD+;䠊D"CE$`F#$cS](d\"[$ˡŚBt颟I<%BPi'LÄ́z$XyP)W%:qB4DGIl50O}p$W~Q>M\3L$F5 ٬Ăb2v,XyCEJgOc F<6&$1v'EYqE0$H!6uqI 1áPLF͔ byauez 687 f*SaSW%JcE.y"dI#0I(˞|Ӓ桍#ↂSl@7]>YC |4f#7ЃT8,%.^l:,9b&7 g[ \6PN4 Ѥ2 pTFl42yqu?1L1bDj!j&I\FBIԲx(v 5:2U8@=ILC6Y"ehOY(^q7X(Hbx#PXG50DZDrj3H1R2!: s5L_V)~,\T?‰1F+ yi A] p*%{=116>URX#ڽ^*aI` TAߏ?hH8pYSN,AZKxG5RgJ_7lG^*%*@? fVcCWnd>"&s`tĎ0%>(hKHׅ N;(4N?OK\{gNMA)`s)AB' Hbq ͂]`=p# K^(0+B,qeS3D~h1ĕS9A Ւaљ?5N8!~P.фNYb2qH jX ~`$Y &!@,|RVGuWՔ zYq CCLϞ( 7C`B LЏ59w-K2kY `~na>3&;d8b&uJ#'U(N! =ޗ}M+)yf$TA՞8X:?Tttn1DfBń L#C q )`Tf278iF\G .֎0V0&l8G,Yd ccyq23,21Qa䋈 ReXgcU*;+LfԼ72s`f+BqlNNMX\JSw]3,H,m\BR\i2B'lDp?V!g8uP#6wk(A,1kfe U^N7YU@Qp3(I8vqhayGGgœ=DkDxVTښl@CS9fɦ*\!t8y2(S\@yFWa^7h&O,V<"C@g`Yb9|=n$DR 0%,5FILcQH,ISP^Ǐ+`'o(1 y9w?6L^cta:v$0rOQY=$62@*9Բ>)<kDdp՘PQI0y1)R"H5?vBA1IB28=s.kIa:kK;A=y/r6 PzGds̫V3#@LG'LyS+Rc00F2@22="=2!9B hAܘ`OT#dpNOgЈ]eC'!xP'^tO#Hv ».0%=˪t:M:X8UzF9 {lx(q KfM$T2=/ #=2tHk۰'#w͐=gv/>G/DN\' $_ Zw-$4 T䫸RIRq A2=QKhs@?V"#1xOo",K%bHPdvxrar?E@G$T0D|R/U.V~#6rfyDإH}RBx͒Ԥ#{@EX`" I:nuf ʼx!.&2b;9J=8zb7Va^ ;CeeՕWVpr?u%RO1Qs@HϝF9tmI, D d!Lُ&<lj֢{IjM,W@ Rż'8x @7q&* BV]Jc(lLLQhC+Hdi2H ܳ֎rh2h`DY:S`=dS5p)5Sk\I0 t(b%4|J;$C7)9=,D)&$AL2M%3NMW`CU IM.E49'Iτ@~%RN.,ySUIA8u59DAs48A8 f]QFRH`ePJˉ .D [w3 7J,ØhS `5^ʱ<@mL ʲ3;a$GsjtrJDLpQ6$ !y[$ҹ9. ZA7Jz 'jIٰbԟğQ$l栀 1P`7I" XDN^ ;ؑZ!"y)(JTH;Q 8#X7CBMtAT&]#IcHPBLTjh9:TN TU*T %T5昝aj:8"rĤ8ayh! !a, XD皫&#p/ blÐ߯@ꥧ!+:luT='YL+Np*YHC65; a.z׊ r.8De\: pщ VO,qXLNT0X"OH8;=ќ*BK#z}I9 $'92^2)D`]wW #3?wpw?'yY:Y=@?a<@@x}eH8,7#lܜ'kN7TYHa`4IWG It %"QʽBaҊr@9el@G™΁x"k)fȲmU&58NF=% /e8VEFscM)$tVhHcd:̜',fws1=Nb (L܀^eXJIbC,!;bq/L\聱q'*a!n:%eCKJb2Ir͒Bdԫ'C&Di%wl,3b3526&ĉDW~BP*$P'+e Z!a;݄o&ڳ6% D&0yXE | և- $*5&EĄNBIM2:O[Aޥ!*b,ԗ iH3*Hv2IhyY~G{/G>X10Dd gya^lh !P=pd(a)>y/kFTz1 3kd䞩'$CAG GUu,E 8DC`z<=7ھMo&ĘAtA&`Db^AԞ.@\Q:"pDx!l eb$Wi]XLAD`C ـxj ݊HV_ uv/"n@}3U/Rj$b.\HAaz"eH}91S@y>$-$}v#JD K)aJQ4gLzYt aĔB@Id2'J`xy׿(ʟWَ68saG3!DU/I & 1Y2O#Et)q4du1Ցe XF'&w*?ȜgR׉ڑ5%D<8XaPN׈]WT!rg&u=7/;ʖ"ןVƘ~j^gven!d8"%\e/4tQNCWE4?#%N_|Ŕ8P(= ~5X3y% i2Z%#h!)|b; K0 3u(ȓ'%M6 ],3% ?c_)ϛ"Rp$T=?g $ O'M"xƜnH$ R*`T'E' XD]7):IPxtp;VT9E#;E@1cO#~j !R׷1"wʟ0۟#M$UQ@ rw)v8DClE^BPg #SVK<'_U"PdA(Q>BP\xb5 /CڞkW^lb5C~;D̄ Zmc) S1WQRIQ" l!Rt(u ANkhz•wN?%%Nj RCW(`"% ;l(a;9 /脝ScIbva$9jIdOКX%PA|X#'&`l@$C`fH *:2C`$0yDf())%TLg24Eb0=*P P5Jw p.G5P& ^."=#Xd8Z Gr8 |>`'OaL];@*dP'Mƿ'5b Aa9)P3ӏT?>Y\a//U ӄàBits" M仢+i"9(RaFK6k9 $&$CZ9ce!%f%j,2 ܧȒ[y!wX`w |5솓ge,D!׆Y/HM7LPLͺe;T` "N BĢuңG\4/cqc @4$AӻLC{.\q6t!1`<N!Cx>$q>ëu '8`A@GQ#Q.CQdT>;1`@pDHEKeĸ FgˤQh9&ǎa䜡DY~{k@}؇w5QaHJP@A''̀2/>.`~YvzH K1<<|aeG|φa"xfD ACIG+/fG٣foa3@:d7DcN8$ST%,s06:Het"_6qCԶ@gxH?At,G^:b#JBU3 MQS!o.y75bfi fPkf!H}E!Z`O_4LW$R8v*e>(A`8tVPoyQT 0 6_ ;Չ@D(?Cy(qĖbb)GA7o3Dq\2O.1D I0$F&a5OtM0B$ڶ:J4|YdB>`Ɨ0bN҈ #ڹF%F&2FjfvfXB#y!@Lhsp@1B$P>9pgQ#=/(ȓS#$c4\q' HZ'9Q  +q;CQ YR̜2y)/1OV@),N#2Eݝ;KO7)XGJ@2  `+|G P#9ߵLhr{ɍ4Va B2h*'2pE.sBu0QSqZ%@&D+@`pљ!PŴ6YDAցڍ3Z$$cr7!r.2If5Ȥ0 ց?Ncdb&$ &)/^IlF8@>8ba#)BH,F뇕>(q(7BhtSx P x*fBa3#`%$8ގ$@ 1,T2>`,hT0II^NB84}-̥:=eY; A 2DDQv)2"GigAAz! 3dYx|Pa5 턢ddiHdƦ<^L@"ibu5>mFQU wWZcKT0I' Xc_Ֆ. &N'.tfCH\@#rA$1(%H9­G'sPmAxpn{}P0wTH(NI"hC9;1^l&y YXSN{SZ?U:OUJN # X"X *l N(A2% e2x|0Vf1dϞl%`fTxIb^q/;S\fB23e[0œHgU{҈z4p=F'^kdwLN3=\'(g`2qѨHowCQ6^ BHM5x) z՗ 9v]q.0O>G&H@rseFK2G>b *Vc Ƨ(+HZZ^#-V9pmz곸*Ts@p"YGgthdH1A{j5)sDqJX9"i\شgbE lDf͊ #500?KP_'4F';IJS8CEIE,#fȦ"P(1'bAy3vLWM?U;79_ł3:>66gMʠ&D˼p_3<:9p^g))G^lB`o5T3m-8C`g0(5eln͉Hc>ǟvw&Jb D=iA5Qx_uBq'eP@'ʖ%{@ fS,~(CcR`F=(!d"NwPÖa1'T$QVdХ'T'Tp2}e z^ؒVE$YK s'@6@]U|ޙ+΢2q9WIs=Tx٪xe˴י(j5)3,PG"Ph(7Y', q. Ć6<' ^9#_)*AX8y{j|+Wh]*G.2Brc؞xU<=8CWcE'B{fʡ`= j|Rh&3@$XMX#3JX@I 1P0Bd=Py)c) B`78Hsɺ~.8KIC Fa> 4 .5dB;&,xOɀhW@HR.a3/%LL3!9;VC U#!0(8#Z( i=UvGPT(w56`+oHBa@`; E6Ҙmbt?T FNAu8j̃r@HIx,A BE2@c bI+J02od,$qgHD+MF'݆|aDkYf։I%N+୥ ʜ1lrXGFXf*+,4MDDeiMI }teZaR XNz LI8g?"҉bd" 9δDP rL<$22+HJ:e2h`Cٱ&X3Yp,x8& EM<"} ʁ4~OĺN{' 'e[³(zK!t} aLi+`=y@WQz5^("a4ATg4NGmE!˩z)ᾫSc'SFN*;PBAG3ID"C8Bd$gw?D.{'p>b'òz,u f)AGf ϊy8'cM#1BDdGI*R R.DdG5nT"'g?5dϊ𲜴àGy{WcVV5ğ AH"9$OUC˟S{GVr堒KB|W!h2ՄNG@q5@Hf : ~f4u1>>, Z-('Y\&^GK`LePfą$qZAۡՂHVi.LP˼ײ*Jz!DJ:@~M d7(+ 0ȼ\",YLG<9IC#I J #\%3r"LBY9H ӝ⼦01`T 4p^SHGVZ~ N]0!Vw V ')ELC͓h2ˑlj(g( I#e>qHd$S$Badц;,cBH$O$hYL3HGr( 0H rbm % ȩcIGp1XA' #2͂2Nh! #abh'6@#(` @:Q >';C#U,:x@ew9N{NVc0Uz$^p}H|g&e$3}=&P FHR W* pRb>iAK" wZIϋ# H=W1#[s1bBOt IȞb Ff 5N!"OQ&TL8RIMs]BZL9 b2s? W^(dMfys`@{ -gtSFp! Gt'ϊG\aI ѯ Fc $QX7ؖϯ.ň'XHX&<~OQ dxh$5$$pu;s=͗<3R"$Jx4w HI$UCd 3q)C}`Uje#}RS+BiaW*zc.|*1{mX4kЏG:ӧI6X#pz7u`bVb=d&L@LѰrq7 &N98;DT$uH e1!(\=VR%ӽ8x5W19eHa02mҀ\I;y;H|KpH\}Bـ0}R<}V& '5 RNؔ%KXk¨ʉR@%Oqc#3("-3 Հ Yx5%UE cc$b`ɤLŜ<ҁcJ9QL#OII&g($ԛ5x:дARSe8,c]’qꆨ'Hx}]@,v=~iɾ""{LxhKS4\89<ČuPBS"gAc}P:GǺ @vpVeJ;E昤'C{%"|u1=ЉT2v(jNaR~aq("u>%&y DQ@=M, + y"pM+ mB}MXWu3qk2,e'TN7dzT^a㚥u.:GA*pf RdJ=M('RI*`9*qFDǙB|U&q?-#>EaWā;fq4 %u@fulc< >ka'8U`# AJT#" $8RPTaĄ:!LueprԩR 8˜sXƤ&y0/‗1LQHʺ9R83|BN#^;F90݊LB\v;li";RB`,n5du.0T#)#b+7;Cw@ouP#;@Ã14)ClA9@e9@P=ϪxfzأS,26fHӼT@t( "$32 ȡ>H g *`'݈h@d}$T"WC ^#NZfR&Acd1^_4$/B^Z i:f3 ;}i`],VdC TF2\bH96&61'&*'X6P7Z X DOwSۊaVB.2nN4r'jm 9^ DHrx( L α-O3Yy{PuL&_WTl"\RMNle XLY<;$F2;a4MV|c`c`Js5 9a|P-;NO(ɢ+;ŃNPL5ifG,&]e&IC玪< ݑJ S:vNPNDA&{fdBD'g$t&i)eBk$9netR^BUAz_clF6$ܟ1d0^OTqf`I W0`O+PxTF, LʒL~`Au#Afsu/gU@l7:r9$y F>G7$VR^6PEi1g@繧ܰqt锳 ֘*,FX\{؀W* AݲIS͞>& s͞DH"&@ D,41{8՛`DN|Wɪ~ c_ɼ}T& CFL6T2<5@F H!;eBˉ!(*r gMlجi0RB W0Gc74?EX "#US9IN$6 VOR%C;6HPm-f@2瓉%@J<٤^.X 9q*Jb9[u4BS=XAayCQr 8" h`,Dl%D8ExLkDg3Iܬbx#"&̈́ablE9F@K7Qy6`07T֑Ss8!;ݚ"$ז> vJy" 7=Xa臁Ǜ`)@Y$&"པF'z,e^z6!T/rBpr€!0s DE-!]DbLpzh th&fs`̶BGuB"Zd/C| 4䩜S?#2cBLzcI:XBY_S ßf SKt;p/@O1Xh3Ϭ 蓙10NƐD^"4rTBh9315X9J#1D0\rOXuD^HbC'!]bmgL؅Bcî;h"zl8 Ghx gς7R0=P,"<#,%,@x(8„݈3>20qp,=! -ō + >lJΌNvkmu++1<e N#^:1'⒖LuU8zn RQx6ғ(scr[+/o{*fZ08:R^ϊ%8KdHvykk3sQi4L{C`E!ʚYöL]JqS!&w7pO@I]z),>j螮;v]A_54ARE浌NMe@F'Ti u6~nHQx^&"d|<<CC# UtxH]#ó4fBG h>jBwZ#5Ev#$BQgs`!tÄX:@ tI,TtJt`Ccd`b)1 *,*PdIkMq&pSbzj#:L"&֜3uy5ꨟN֏1O siyLafj;[gpbH4c0'x"BXLN{ &`Ϡ|OmD!P!P$#DuCHsfy۪E0Ȏ`'AH;8* ,|QDD$'%oE*Q dDyv8dx8 }oW3gsS@?cr7cyOE;15yS >< "TJB"Yeq`=D&$,\ jW9zuJ,F!Q buBo  +Hw\rn'3739X{<5I@FN UR(%lqAaxS=vÑ6D=i^t & Q-b=َ|^pd~@: 9+yUĄ_Ze#,@VB{s(Χe t$E,I#ZsСҦwL {#^?TBEp0,~ 94 $C?vBPj7AHc5{ѿ4$eM&uY DQd 1"j̥ > r~/`$h@C  mw2?Mgɰ]`썕|5d'f<wx& y$fďQ6IWa_1X 9q s dc8-|W:=͈q/b r0sPR{{Kd+׊v!P49fO 8Ff[gQfKهŜtf3UUCl&.(N8XyjGnNYVxԎ6HH<@4P2[dX@kIᲉ#ΦdOp %l Ʉ"cڣ@G{ƒ)3)˷7E pu1v3HH3ꨈ2|Vq6."l z`2:@zW)rwHarqJE7<:b(D 2\~)L̔;)Y.tߍcr1O.ՕM%8c"0H:=<4> r젨L#5pCVh)g#:kI:!pTYAAl4"P34x)OQ.rt}:0GIF /Vy yD C9zy/UfsbF@’Y ` $ P-9pQr.D*RL9AOTDSVn &"r7082AHY 6%&h!"LǫDoo0pb2&wyp'\RN#ApGufԇ]`{0'  X!(P@? ITf5t? B?`}w[ Bf Ux*dI=H@fCx8z ÚX!2p/ =ְ4;h$a49&6]RiI% 02( ',x=-IW)&5|wH6'71A3o,@e@yO*i{Mbz'\QHVY3 c3~ 0 d O@'I$(!WQĭ>`2hXϫ){g,aj$l,Yx(̿TH;9~i0PR!煓pF8+*?VcIYG4!au탚pW 3̓$qzO_&͍j2VgrD{@ye$GfT ~jꑹ``6`ěABGv' $M/St GTn:`Gl˄@E{x,B#G1 g|SCG5#c;-$dQè>-C%\DsbzYLHc":W̸|X ņ22:§%aW銰) ?PGMଡNQ?a~@DO4"y8:" Q,HvfPCpuHXY6G$ztYF!^'P*=8A2aA] X9+a"L.]:Nej]1QH(JGD>,$9I ]V~%ѴPDP$6*#VU捒.U 1>Y NBnr"&}bffwF3*-N 6yR*^o^c:bORѷ_\(L'D7^tCd5'㠓2,d;wt;6zˁ+ ;XZ`bT0C@.qvႁOTBGK Q0Lgab`| D$2w $Ll='b#,f&0cox9"0}5[ )B渔#wꒀ*udqRg2;tH|JPd|لY&&NIK¨тH4t) 6S7#ϚhBBaXk(`5b|4-"⽘?HR'$XTAWی9lp_A3`W(8KC}AYcc2G?#⚇>_ i#>XI:yM $"=RʉPϵN `1qN WCDjʼEX`&2N}R07\A'B+jٌr.]/HA"dVepYE9&])/zs5f;aڇIK8A!݀׊ɟKD]aQȽ&QL ,mat'c U`CNzF g)aM=ӏ912#ь?`AFL)VZLS+M2@ GʆТnBq0ȎbOa/0{GHP)3əB?TTIݱ( LYqBS3?5-Y+$! /jDO.R G(=tA+ `Lf8ahu@))!>K=y 85G@9Bre~)CV9 MF&¤ !CQ yO g'7!L޼{BQ#rU &"z3^ dbG1dJ*x:!xjC3?aE.iAP2VRU8,@ЙWE0BD%h,=^KE4byQnpTO1DgFt !.ݹ!ebX'yh+l5h#/,;CWVN#$MApevv"|Y<>Ob$a? 0 #"Ns;ʘLu6`eR LIr!!36O'qz5&"(l2q4PW@< H1vamf Xp8 sɲFJD{aFH;/F|XP;m06q'-U$DQR9[>ϊA&@fGOQ@P=O$YS%J u{"K!*jG${+PF8H,%\% ѾsrsYz⣌ _M:E,XMu쥒#rVuJ3\(wT`X&\/Ӏ/);XST0 LX q')9Bk&GKaz = 3Kxw F7`A2>dO%{u20 B0DWAS7AMU08) )2H~&~xdd #дx+0 JpU)I2h I3F">U|>V2  {x`ȱĵI<}z&O;'V$}]˘-$3)W]Lٜa5?,"1Ղ`5;!1U~F~ lyW"$A?p:!: ђyL/?t)kׄ '6ȂtІQ!>0jh[#P I'> LVaFH |wSOlD,R=&Nj0!P#2Ilc/EPQ5~Z䨸 ē?J$=__To Hx9TA1[jHʫ'W? *%0I[g01y ,(Dr;IRhJP<D"LxAfiDUDwXIs瀬]q'lY1oV r0F ϞF1=Y= <'˲1ršY8Hv d4yPcNj baecJ~]bK&tfS l| b#$f(x`ى |TASI14 A^,'Cӟtg3b`!9!,]A@kجZ@%H%8) IUT`ό0ܩ^ҏ~lG#;*B).1` 9  G+ dcD \x&;@f7s(PQ&s4fI/VD~k$ۀdGc H 9cLb7{1 %b yQLLh"rDbCD痕4ҝ EU,dFf=`S-Ġ<Ѥ󬇊} CIe#Q&P}uZpPPOQ\! ;#(CT3]|wbPxa60 ҫ q,d+':U0"Q؟Na?i]"}вX_Վwg)+4 `vM,u݄3@g$/BQ&$Mӷ@11/ dB,wQhI#p="‹hlKE2`pdy'q2 GSF%%ؠŅ¢5,D0A=(i;<1[$sʐfkKO U%bw"C! pꏒe5G!S\Nh' #Gry`;ϩ)I OIOD+X bʅ/y,CEaHbzQi" $ > 2NY j*BQ<ʃ" 0D ٲ!4y!(uT 6D6aDH!`0qתּe "s@j )䲘 ǾYo<rBhqN U+&\x'-M }҉<,!azՐz8|Ym F=T)I NŠ yr=O SI04s4 }Ec]S yӁ ʿ42^3G#9` ZU}3>u6˃C9"@CR8{] +aUDs#ŜѤY tQs%ha$  b}+$ .#:(!Ͽ`U4|T#p=ԙhlX< ϟTz*FYE'H.r7|^xr6%Fdr܆7y܋#BɔP"RH?@KP'#8\(1^Dw[ !=aXd{iQNDglZh]&Y-sLX &D*Սp:9SW b0(^Pqf 2J sa{%i9o,HLq4xd`g (b1L#6̱hG݇.d>N3X {T' Fq졛) D w_,G96#!yQ.%3b) '7LJ ϖ<_mX ߋ*D (qS1!M#'`Jp}фtA_ј~Iw-96|f)%ZotDUv=?%f9"T~{wV"9>M .gIIP0K";bXhT:z|6L^,|1ǔw+{<@A鉑+1,eF8V>%8.BHa&N&J;dJA1SAX92Q]De+R ytMG lL,4rNG3{  @zG͖N`ȸ E4IFKe}Y'* T1•SfCût"5罊i8RDʹ]& H@S  ȓ4KZ3_$f &(ڷ "4BfaNDp0BL[j#mJv)a "DTrA",CVɎ`Wย-PL1|Ih. ݈ЌOaMc% aː*d$a0.\M<1(A=ϗK`7 ?7Qc{hӥlqY :p{xſ0lTYYbr@ake3ϛrzSA^l RO[ zaUAQ~lֱQN586_N)z)Ős=XQ~8\\!-BgT2.DOxd{Nf :s@r9B'o5[#WLqD]?UpAu `' A: G=R$z&fS֔rNfd"K^ø?OIG L!Th̄>,$H z@/F>j@Zi)#Y@P#NFHHARK|ԝR Շ3M} |XJLQaR⛬jo  Aṳ̌ÕqY5!;1 u]xhOSWa)@(24ŕxl/)o<3 $&BrcXs93V? XiSNj>sNJvbJS楗`z{#t B%t% t4NB"x$e,&3=sk?O.abēLikQ:N}@s{gx  4G.a6$m4T&5zBEj"uLT)1AS,' Y,'58)%(WAeOӦ@ 1(HfMUʗ#,8X:"|%(Ĕn!d+^ʀ dv5@ӍH!#G뉪2G*@FyTNJX' lՃB8Po'd4!&8yP:Xݠ!=deP$J cI"4pF`'ʒdXpr$p6zhI''0 =pHy[Uy*ǘLc`C#A&H gyD,E$L oݐq@n V(*>lXeQ"CCg#0k4v9 vg TSUI8^:)NN!Qᴴaȕ'DS-0X2H(2ĝddK"v@D,}"opU!~*96X ~"LJ+ uP~LDe!0<Г&dCއLHa s $gP#Q* NC,HpP$nzЄoqRuxן-Ng%ڧ1$FbcPLM@+?a@ȝ$`Y\Px4K5'ɗH*qY9@\M܈\[ 5" }X@ĂD_Lk#8b<cS 4H( F&CFA $~O'vOΥ1Mb ̥lʜ>j&U&qQح><إ/ 0E JW{"CL ( >⌧_JE̞tGZeg@O}֌ 4Px 0xr " D‡{ E0EVٯcKLeUVI}?+Y]L^I>*HmIX䚉$DYx^,?+2s'ѐ&HELD%&h4D}#OÙpC~.3g>N< 86) {%cT k@L>Bv@ٴ?Q{la++Z H{f C#oH"1ZCY.ެC坠Ǐuω(0G7iD=XE Hk(#W`$!ުɑ8a\G\ؠȓ0p9}YU!ӉRFRY_a=5.?k"3褽lrgB3_e$ҟ(i!_AKzKED⃒f 9gC`"$: c@CP3% N1@A 'MDHfHGvcVc 'ә꠰=*}@s愃@w!s6vAur#g2u X̋v?ݛgC@݋*̧5dE^V1&R2\Hx]/LhY)^yE4^]}I/)_Ja}RKH%y$k纂"5#]x"DOKFP!'-!*&oh9JGTR(D(# 橂@C=^u:^۰u bdBZ17Q3A|ae2" .Td uhA&ef*"Yla?~"u>z$NC(Hz)Lv=H x= K$ެu eĜE>ofdF[ά OrTDBM`2 wBJ}Iv;`=O+O[TBAvRp ؊@j1NA}Kbε&<$d!gİ $}Xy'E8 u_IOW鮈!FB*: `%e~k$o-OmU&d8řꁎ3dsP [CE}xh9| G0X50<'֧yv#,.`̎bjxIr@@{N@ggC+G 3yLBWdXlIqC$th7,Bx015Ӹ'Ω" )3!@UER/ 1a>l?oꊀTE"AN  $t 3:_ %"H$QLxjX, <6YZGb9AO0Q#Z:#z9rd" "%>lRzy~ A|(Iq^lp"̖x˺GӞlhpu_iB~ \j':f8@%2FIdžv'gՓ4hwZKɉ3/ !,&YxOfqg]߰Ik94vqpo (y,HEg<vUGSUzH &WU̐/D@SHV`>* |P ςj%y bZ!P&H=pqgE?dTc7,0I' 1{*d%0.>I)٣!ka^‡h7;Uxm#<1@3Hf"oz"f^&ÇQgI&{{ޯ1zuW%NB&;|0po/sJ^<(ÖW >XMPapL# 35! y+×q9O-֘7Q$EUM:O4؝{dFY}Q6NNJ9ǝXD z8|*&D4SKH -+T}sM?ƕ7#P;q~J(1ayGh@CQ8aXܣ6L!.<DJD#;yr᳑:CF$w5|s)O<_v`VBl!x!"'1 '1@~(,٬J!"e1$O=j/deQbaK<=D/9"2WU ( ݔbyl=9="d+|&1Pg!Dyc#GIB#^> Քș)XLgTL>+`X k)R ^TRJU8CPģX$uL,DzqO i/QNl#Pd 7t>,s`Ry~x8!3I6AD9x񕀋/eɤ>ªR1(Xw{_fK6hv}rD)Y`@p0d Vaxj6;&gA^>"Ϟ 潥[8!Ͳ{YV$wF21T`ovi95G>pgrg9[dgЂFgJgi@Ԓ`FRHL@(DQqЎ cT$0EAWH{ǩP(4>)Y6H1 ݆ٔ8$.LJNvtUāﺖVDs'-3, ,Iْ"z,xg: r|{Y퓘>J~Ո1;8xh2{)$.KDHtUV7/WR}O/)H; zl(G(+("#P嵐@XR;bC~sRP`9Խ .X@t0nTC &#@*(=d0 `6QM2 .kfHxY,]Pz$bYZNX=R"!bFRDA0|]K&# 5>N|GEƮC)E_`McכI(悭Yj/_>.eIzLՖIsPÓT+58puI,i64GUb˓!gN@( x%dpL]4bM9Mʃm|GIx9ߠ}&`}W!+aC—I_%NaOiht̲}EtGChʝ!0&sI.KuK_>*{g#o/s*B9DvU(Iv$も3ۨJ (+NMH' s3\#>3Oʓ@"ʣi2x|DVSXB##%Dq<5,:y6 $MꁑfI 5E7cx uV ?>(̔所$ki0A.>9<y ^Wk1F $0DDF ת3!I aԏS}{h0C~y0+DC 9zTtr gi, d@ƚdCSV/1FR;㘤'_TӢx9. LHE2ꒁVa rtbr8X$I?D&rT)33fDq*tS1/U  !WcK< ׉L`1ğ (@nUA2^lx4BqhfUw*R&C_qatȊ$R<+N~.$k1Nx1=2e ^w\߻@(}T!0SN>Iy{NLj__4ΠCZ*]a(܆`d|o氀AI3نˊAI|@dAc "'lMíh"Ojpw[Hi Ah.rvQZ1!YC$*n<:>'K.a#3@DfϮiE~ykRfZ '%݈D{>t ~l# rO~!=>d|x!tގp8=5}cmʈLY\ݧ_"%V#*` @mwhNAsL*bf , ȱ\!g2 ]ylL2>hwUb Uo3<'#Q<;gj_b @T kɹQ=x 9Ě2exdX2vUlx1ےR|yFi'& ,bgl$YdĉS2\ia}H`e=V">~+|Q2#m'M>D)LԚHYc['͉]|W&FU*Co|( ~A1&1$1Fz`:Xg!j^LDhO`6 ʣV4¢hWGܿf>.~?2vet:bsN*HH6!2˖ ,Dº$uP@Cg|4?5&LlHL16G,x@'tCbWD:`y6d`<Ճ@_#T Nh)<|#ÍfA?;\De!!G?9+l,'I=; CX)M״9W53QR(RQ_p0: bIǂk$Hx5Qʂ%zSyBMPCX;ơ #TRxH){@f9Xe\@ 2Ɠ!ʒ*tM@xW,1I@  GdQ $^ [8qIDĕ$vQLȸPgT,0uRr:[ "=Yy3$ p)pr&3g}T |Ӆ> _`̀> ͫZƲI=(wbbHHdw$U:9 $H>)L,g/G^cK~+L ` 8yzբ",&>H:jKMg3*`{¥ybŨ!A!@:>yj@r؂&FÀ J YXe 1 㯺`0H)0>]$+^^M Âo+a31+#!ZaϓPPD; 2r!j {ko dHSfuUG͍;FD'u748SeYvJ(I;D>%GwdC{f"9lL<<z>o`q6HI1 Wsrl88Z@{T2t &$*r ipuXz1}S!4dA뺔dˣq}ه ăA1P7T#=PneF0fT4PIyKwOw*%2x)6|Ӛ,\< E""R>q^->q=RHS[2SI<=@8ެ8*IVI!ǺԻ> wIN;'2L$H F%xME xLjdPsAȎwrCFAωp,˳LhBܱ)F7BSpOgGG<߳l&axGX USl &UCL258L蘔XY U` Q/ + T533O@$!4(1#؁8g]q ᘘMX&GG1|@pYc~VdCp(Wuy`q)0HT%Ad3xQRJDo xg0ŃC@E,)rfwM㚨| cj%~CՁr͗L% F@S+ uj 7JHE hy s@H Uナ@D dXc,.C0ϻJ;ܓ)w ]em*xgxB śp'E:BypM@:Ӄ4IY$nM^d,p NgGa8yO"`_R8wdŻ9B9P|T?H 3 Jóreyv'M";c*2& 4)'Dx\ p 9㳓}&N%$ G99ǀI]q\K0*JC"Cܑ4 Kѩ>[QjaMR%&ԉ2&7Qɯ_e:x$ O爫hbNF\0I,iG$VeC OmCQ?d"i\pf#kE ffH4b\O??L.23$!)C異WY$ie%Br{BG[?1\FW%&Pz~3$(qګ<3rĸ|Tr$x*@6vJ$msb\y8&N,98g/8G@a9[WV*tA`g(&$Qqb]"rZ(@h`&d GxKG#qfo5S3x@"s's"-"x+v2r}2Z+tW >h0q8mx BQPOǦ>6yWn0)% }#E+ 騊Sf(HS&Y5݅gR级D'L" 5i$ w`ϗ6iU1&#P"ǂdo;'+܎l4rqG7_XLj ;%C: x(%L'=Q#e}1I'4>#P/{(T಄BYɺՑPP?%$s˜JS4@bc 5}#;%pI3Fw3 pneH9 HVZǞ i"-fNdNl!|1LҌd,?4 "mu6|`HSP'`` į4$ȼO&!?; y9 Ƈ1F$0Yx-)bTC ⢡UsY`49SC2 +uyq#͡:  wxPBD|Xf>,! .bcb!>ؿk9"8q>'{UPrL$Ȍ Xh/9jgCB~M*@wH2D|Fо!:y$Mq~!I+*Y$R Eru 2w(&G`EyB@@.>(83 -.\8,fFdP(Lj&r H*$OËԆYDS∺yXaa 9x$OMD42͗-!&1Vfr"f x:$K:B3Oq\~dIwZvMLϞ" s`(uTRnPaYI06:8>k(G;B$D96H}Xh1 ™3™ Flć9F,0uW0xto l<(OxFS{iw1atrHkC;zA@ID&v%DyiCfx匯S/ptB|W k>URbD'AHSj"H9Տ%@I=n@rI%&50 Iٳk*TBY RRhAN- ro,tX ^t:4Tg6H\^[٘ =\x)DN>yI9$V J @">(H>6yԤQ gz$"{EL *X$D,bE3,ɩfbpvNl|ՄT <v@6N8Qǧo"d"\F5@eJ"zkLYP{LƝ9aeʙGj%e(xV*MVd˴#eT,rt ~(dI!yG%sVADĎiATQ#7C"wPC?$l;وܨa$ A?UZD~+A!x~DҔIv{B89nqфQxnx*adx{~/v\9=LWoH}?"׫YE'#g a9C$ꚠh|~l`>#(QSAi"sxƐⴃ!pWG3$XP{X_uFC1d`Ȑ|MEk B՝T1 Fɢ>PuqV˗iD<T@@V`K0`< dBs& N"VduT@ >L$?͂SE᜙SVG0vIT);ͅ0.xy.M3O(- P^|3ǧVVfpՏ01\ PiCŜEwvK9? pvDxA|Ƹ!{exHٯɛƌiO~`~`  H=P'(1(D9<} O ,$P@06qTb!ne(+W#Ƕy3PAlD`30 D`CC SɫFGBpz}UD8]5$`ڰGmU<0䉓^R!w6&FDe!).B% (ĂIgvK@2%cw8RRJ~*(L,=H[Jr*_r@`]m @MO5@tBdBdO,gM"\Fxr5GI&Ώ*!EDVcYOX`{dlV ͺI.(HGj!+&S +!,eTi@H졽X+ԶQ 2 @z-йObGVKC S!3Ar_XHD5x"]~4#H7A;yE,摒fxE+!rlEJ'egŀUh z+L cD@*μ]@E4&?}p䊧yG9T1lG9'}G ♯ 2)]t')t]_t0 vBAd$!փb@aԠ?6l:.O7]*LG%IN]7DLi,Hiݜ NDL2SF!eCINP{ %0.@@QfLluὛD{i `?T*#alL? EWx=ή <9!>ϣjXIi@VSwTD&* ο7=>tz 1<`8DFNqa Iw$+i d c慴F D_\TRH\yɤ +Sxf}(`bUʆ4(WqNb'f xQ.G I3yL\!ɬ%8 K&uJX{ s3zhYP9xa|ӓ zsIq~,#$IV3rΈ˾,05'lx'D<C2 bW3|Qda7(uRT"H|=zId|YS: y`YQ]#(zg[F4z~,LG"ɐRxAEC T,~ϔP0x3#?#aIW(25!Kx<ffJ 3^&L"qk `ÙR2k0M5]W`L1Y:2Iz ꄃTKhu.IPDG\tgk`vbfj"p!ځS}ocOݲ͇ 4+ggUU:F@r+cqIz"M)CXTr A*b,>(bxK?C^ms@r!d&fYKII)02t%,4!<$3fgL&ft(Y?Ͳ^iЩ~dn.ps]=ʛ˯̏rpϨFsՐuѲ(g&M Ho^( T)q,8ڜ|19cl@StTO֙"NLQA<1=5<:r+^TuyN^;$[VAǛP V\0T$^g1PEtDUH9q4.i%&&}YW Ih3D9ߞ%&V,v&N+Rx2K8̎RPsL zF V@@#k+8TB"M1)HDt×s0lDz>i><ԐĽP b4"p`aي0uT $ Tjv碄LaBe0|Y1G1|6w6;p%"6)xxN?]@#Ł1{@R#g@iP8<ɉ 6,>"ıVDg!0o2słDs4f|_uk?/҄y;]}_4-00#fCLvsh>$xr1aւ G"XXAJHrYYɂ?#:_:?tT0Řhx(MHL{: mX?eæ]='¬bx@hj!1]+fF|סaՄ7) s݌ O c[Nx Rφ7#`8EP#(X~L$x$TAWPw! pO. 3)L&%ӟ43ʚ"'ғ6]s`㩭4s0TD94 ppBDn$DE9b|T V ٍqPx $'4 :Iגeԙ.ºX9:m^ެIjOqQ9XR:L\*"$!P[3H'g,#j0 9xڄh'16bRXB39`hx6a8c).`CCOsP4qYmT3 Gra#. $Z"YKU&}Ccq{8`tKfx }3LC08F"@爡esq"_>(2Hzʵn3q6ϐk-i_|=A`&i&[Д T\w1W:)ЎAu2`.كB+LX@w͒2vb*^rdrQSJ%2y'X 2z[ V{LQ;11KQψ?MyGΟՑ&#6@iddBt#0Q;qBuO{tKB#"@_Nܐ-;jB!Bq 8 1h {_5gޣQHr%:ŕ!#JPE$8AXdk9`s7"Q,3a ?ؽbe#E2{,'{aI L2{i{DViñ,2 %pD5Aa(_6};B+MI:NFA"VO05+3oE@b gk;ξD1lj͚l? $$s- X*=$|h(Jj瞬!'p0dV$<}ְO~~fĆQfIQ[݈HI"($ PC,ec5p0sWrDD +ǍA0BI%c o8Fkk僻1:-"cjH=CR%]' 2D\fȞŸ00jchHqK.;)Ӱa9vGE+ Ֆy6{4YDʬ.Cx$8rAۗ@KC],1P%t8D~"7W_-![Z91@Vagn#+L%2L@~WC&_ՊkꞦ@`N4њE¯1(-hY9, F6`b9D# P_V%3y3 :41/EHs2C]8b=QQA~n䂿ZlU$3"BrcI-`gH-/TaHF1TH1V#}T 韊3lC|QhIwQ`A>rCIΊi$Oedĭ|8|в5i;/1:hYDYD$w4/!XDOtt##_)Ꙙ?= 1ʰdIHD;OQ&T+wY"h* )*LFJbX'd퉑Tfdq PuyHYQ͓#Q jJUr+S,djP:3vE%& g!Wfc%xg:xvR2VP"b~Ѵ[< #O]+y,~AL!0xuSBTJSzbEѠ<5\SbF3 w|^;Ǡ.V!2LZt;by5'"W2()νM! L\&]<2ltTal&`Rⱥ5[̕i^PILc ׄ "@& X*I9kc8A. WyykLORyXTc.Ja!wJX;:-AZa՜* ( 1:nPp'hDG~oL^z80 (B1Yd>jxA`{m0`fJ"Y2'98"HSO4"(_``z|l(@ib$N.09 $<q椈 A{ rJ@{J,+f 2sN! Kۄ {\ɻ|p;g3X$^Y {PHxI)9'`A!ⷂgr$bGPJ6KP E*0u,F&k%;\rWבQ><13=/-̼4iӳQEU)|s):H)$yEȼC B@aךR@1 !usA9bB`:T^A:51f1\\IDzg_s̄Uy*UAU-'@FtƑZ@.;|EUn.9do |l$ds3>(ylVY8*aPJ>?u6&GQL}X;+pe/ ?w6i1;T; .JI3i5BE@DS#>$aeQGQ :23^j%gS[9^W7Lc=2#'\k< ^!|~T`3"GϪL/ `lj6 3{#",Bܛ^VgQ)"`3.c캶ꗾW_ 3<Ա9/uwIG@Dڹpmlxγe) I/W̓ ].s%n"D<YM"* +,Sa &㊜Cb`E$؀ڷC]Hc=0%Sbr@ /=͔hrpyJ|RB3GXrĨ~uK'9aY,#f@Pæ07p|M e?W~rѬ;wx",H$3UQ$WJ HT % gxD$e@H}=Q48N6ŘIẁ$O<@3QI;eC2d$H56G'D8"@vI#>iį^#? a Rs CcF28g X=Y^#HA D'Y@*N>/. fDm1El$4 Ag%Tуri:`DN+ 7c9'Vh$B`*nҌx(6;nW,҂D4@ tZEŒM0h3 8QK zX^(H!/pSs 3D_dk!lȌi,& 6Kd=; %w͐@uCQ93>8$|f}jLA0rff/15|R;ߊ904@*z% v`2}LQ `?V[#?u-'D6!fHAr&h# `q0#/3T44 =P%T=l=ϺNab?P#f=uC3p.R T 2*EY&t^"ɿ-d s" "epa^ѠLysH3e{ hDc5BnAYt׌x TSsg~hA;)k=Ej:5 P"~l hV#%9BÙZ{GDdԕedyʆ6ytтU}3n{8eXxТF@M B`1TGOZ l=0p:y$ ˊP+s6XGZ}+,df / 㚢$`tNJ O3W"ά,al(lfe+ugڴLu0!P2'Hr*zX_4q>;f]*ŕGY+i'9V"_3R{'])պdGJ2laCGI9_M $6@Xw|]Sa1G$TB!oA/4$^D?bÇqFGNy#GZM|A }X5D)BD.y'үMA8DCGa?Ye5}u,SP<`<\,'=]vZgwR xBX 9V5p%u?v(拆;>,~DIcy' y.Gj X_': *L*83>ä]ta dzJAPC68;ktל v)uS ƱbD&#ݢeI5"<&=dg^, SȌe`\݂Bˈf{|<vqiwl&9杄7P¤<{xÛ>ICǗwPNeLℿ6Kf$YB?6t!) ) ݆>D=݈:1%&B )g-@lZ@PĽShDK:>C&H 䯜)牎"fC^x>Ԁ<R?a&Ԁ<".lǛ,VBXtQ0ETpvUH %v`cO*@ S!)O1L7i!&IW0!G\WͽژE;8! f)ˬ>皅]?E" [$81TqLYۛH(83QFu6.БAuT%y@II͐&"qFD<_>7. l=LXj(8'}@3 " Pd |eGkג).LK,su1Gi^#Jtg0R ʼ$Lj̼G&yFly`~4z 12qX!"=F(#s3%`b"V GUкE^*2B:l'lXr.*RSN,~ZMX AgSǛb` $oIpj xo_V#O+Ʈ+Mb1 zJ3 9d=Ͳ/uh27}h9#9S, 1S {j2"SPcHPL@KX p5A8b *DrT8J—@ rz|X{Iq3,c:), 8DyH>(I!H,؁Tp VGEB<>i$3YH$wD}E )璩%MDi=U߂+KDDT+Yy)Ĝ9(6`MRD㛭$ sC2$|MI^TQ <%N"rKFx!Xh3AucZc揦O4{ /[]AO!A368qU1B;Q LD#x; س@{^) hD7"{p<՘LPC']3LŗZ4Q l?| \ +-_QCj@rO1&ǓBk&-uA901AȑL?Ry/R`e$y9K:C.9Ma*XxńG&Dd{k=>h9e@݀e )#\28~UlqHv&|n$yʶ>I_bM|,b6ѳ3! Y}hud ġ&)L~\'"j>S݄ I<%}}hc݂2H@LqT:aQ#kK|"/.|xyTIieVq+JƁbݪ;8#( OGT $.}P4&b9)> D(HykPggB zDeNq/4C 1+ȄNU|2@"af 8.d+H"~H2P!P">4fpTN.Tzs`gmY.?)1 <}*axq m$rRqQD$!b"Q;C}Tp|ٰJL#& ]' iUHET,R%z)!cp"pZA=?V" @<3<5  +m9B_qy6`bQ0 VN'8d1#rU0M&W&"c}Wf +蚳UX?-sopi  d8D0=^"&y jK$ \!HUplNG&}# Q͔QP'X"<_5ˆb#Z,QæVEQyh#DJ|1v|ŔX bu Y @ŊÑv36QB t#k#觝>\o)ꤒ!)Ttӹ]hDk%&Ggwp;}Nx %kutGUf>K&Gu8ibJ/s-&z˙tσ'UQTIMRS0㳪\ÏQW'Nz  $^Q% ?5@#iCflDr 2# d]@A޴ie7s IOp@q-&sT82Dd)*,)MybxPP.LGVCHD܈¦y*!QI&%5F O@k >FA>|P@`itS2 .Ip23DBG|& c^l8 L],&S3(I7$σ2E< 0HoHr c$XaωÚ#~hNt0Q!oV^h<=9GWc)L VN9D~ A<4wL gx'O?^ %]vŀ''Px#5H F)~H"O2Ds-!>׸:Lި`v= =( U BNedq`Q(t{6K~0 tP?5BlNM}]gOhg#8Nl*xϛA>`Lђ8sfk敔.X>l"yVD%֒cɖh3yE筢E!3׼c=iD⌮0}QbDC|t4phq<il :7" " h%pW Z 6 ch:$i+rD~~K* 'r>;]JdQY-fM2]<͜Uӄuk~h<)bh%1 8C*$h>BI(~!3|,bvy 0v?%`Oȡ3M>DPX2Dl~!"7woh?9]#P'#tN׹S`ՑI5ݚDW%VP̢(s_0 Ecx?bx$ `jZ@$=VrB'[ʬ;1ꑛ&DZ D.k$R5S/5 +^eRDl18⑘C #j0zy6V'GupfX!bibN'ke_V$78V$Ggw$T(ݐ i-e3 6> Ch c baQQdh k#<@$7R@b2`0ʿU@.*FNIz`>lR!:z01I^`7v>F%(^%'g猩$:" ̲w\,Fz5=&~J@i6d0r@u5|y9c|PcY׿Pu 8Q%aA$c>|YêHYۉ q#×P"CF8ܯGwz9LJiRSekp>`5$ Ibࢋ,LLRDdb<09PAj5~˷F݃ )0u %"K>lARKÄ́p7eB[C3d YüwBDܳJ狳>>.O,'! /(UH$鈚< FBJ eHg h B3;EP (Hfb|0w q#c>$PLddN@Q I؞WwAQ j8,dɠCՌW uA$@v\gBp9wQ 0q231NzBNˤS$PgY DՔE&q N6s<D?®w]e|J;5s6j̹cՉᷡ,pbK@אqvPh!U:<v• 9~/ZDUB0KSxx P q$YBw(d}܂yxs`4,;}uFRsH,7@;Y^܇p!<<_>/6dP`\:yߦ&ś3`#!9{vDŽ{@`RC`@ߤc̑/9\Qe ®@75s؈RXq]@JQ]S0b"x8t 3GgQ!yQZ/#牥@y珊A;]Pg\=;Ͼ(_ ;)_b(ǣCY 8%5;jFBfg&û>zh SÃF#ԓ ZkF&b<n!22>n1Ϟ*耐gXDzPPJhP`;WBkNP1'使u>>F3⌓0e$7|z / ^Y$7001'%wSy"P?G@u拉_&)8i9h9Ն/n ^eӨ/愄X!j̊cߠjEgqR1@X |YD]6z#rlHiyxR DGkڟU!@ngⳇ3~`G 8J&?T\ tCC~nuDd\#A$@VV"9f1u3ؚ2b>wǪ4#ߪLQ N^: 2N=PqQGBDa2ǎ' $ OAd%Ü|(`O=RQC1Î٫$ |U3gOcN%z'z$̋8'"aˣD7#N̐y 5röAzI\R4aK9倝]Imt}QOA友. ;?U@D'oC&Gg#$s8.8b?6`c),aga]#ՇbB9/kBIbDK12sU'Njھ:E06F "(R*c~h(J3p`dC);F=HFHy}ѐb<5fHD} A?2d-_TIx< `|,@[1 JuN.Ny&f5RX1h`>b!f{EDٳ\.rk)5y@dGJa5X,%=U:5IDYdTx|dyŒY*Fe0B;gG̈́1:qc)}0=PeMJDNDc>}.pGUq -Ox~uJ/{JP>guI4H!@gAE }c'&:d06Z>><*X(Vo\.DDѓI%MZ^e#K10"~Eҫf2x 2)"L`LfpDo͏HbN4K]`mòu@8NoO/$21b g.~) I3Qi˖-# XNu3 FU*W\Ӥqd%ӹ'k +pd)ŗ'~)@ 9LAp/xAl  2vz&~ohHl <͌76 3:: χEP%'c8:G %2t|;5lʪ2$3yS'*$xcu~,宂H=X,ϊN` f;@lbHPI|Uq뙢#G ' vD" Mq`Y4^x*.C.@8|XrL̜^e*F/r&Vb5>>=ٰLٝeU+&;$ pmeI2Xy~jhe 1W͎!Q"_枠Bdh#3frpKf'W<:DD54>q O$pre_,S2(򞋭0DzS|TdFw<`(rI2YΣ@>ED)"u%6fL Ր7fhK}eIsoj=1Q '1k5u9GU}F""3FBp54{a&#h+Ip$7ՌvQq" 25H t݈8ĭ@akHi-!(DGsLI]&X'/0yk-2avl4,)#JD `O .a"Dq_e2GBIlY](D3Y9?+=}qh6ć1럪:{I|X8.T|3r3`+NI%f?71w@L< Yg8,AC}cM'QYU~j@1"I":jsaQڻHq`!h#F xM(q xv8Q!;nS2"s# X̡dp9Z3I'RBB7B?&<H}L<j4X*a8=m$51eFCBY!2 Qă`d!EX\T6*D&l^ЕWZ*YcSlT&DO ~{Y^y//|LQaFCS?(,vh!I? QdAQ̈́xjeEY"y)U컝`)a.̤.Me )Õ0Xt[';;T'w,gQelרI0s; \ dHH6m yRagENAX'h\>0;TfSzB26Հ)wՇ@(Qxn=qN؈QpA@_s)st G5G~hJ1fQɂ,JDʜ>" R@0R&x²yO*=$vm AyUM5(&a+#1FM 6f 2h prt*,ltc5<}T}iXݚ䦊JHDMHSm6uS!)WsʔM bZ6}0/$K>): Oq Ϛq'phgNkSK"AQFW"c=|m7X38\LWE&Fqc!,ljٟQ3?TM,`;#TP'X1v}Ut\g qCFܾ>/@a4^gaa9DxG72"CRagdT3|j3(#`LyzFq8"f%0$Lx|j p?}PK!ꎳ^ 1*PA\A"DzdJ%K`FRah!7,3,?%p ,OvPe($#>>*^TrD:JE+N{0~}, (MʈҀwEA,""b.N8jE@L?[sMr.269#gryixf'klZL%RuPta0ΔJK:Rv>(q}uLffRacYۢs2hYa!‚Mb2)t Ow  U eC '|?ON4s>+TdЀ{&M"aАJ@DmQz)8,\t4D`l1Eb^`Caji NJ]L{BRScz}:hVloUS;bu1*C:;9Y39Г2G 2NuH;Y1ֲD "g87@=9<t%>#҅iS݂bO5.NA!R{: Ď̾2y])WlD@樠|I=س9̾.e`wfb!Q{ ? ^~*6 $\٘id]|x+6JŃ({v)#R4Xr;0 6P4J*\/+G]A&A3wh |QC/7)gyYYwA$ϺI # '!Ú69W, cr*)NaqG ? 2#&'0 JEȨhQW3ޘ(?VTI 8̑hBXb@i+6!8΋Ù|$K8`lO͏PF/Ɣ&ƃ7ѝK/楊r'X!K ͺ@#9SxAO>H',PA e* H`|+'SDH]ꅑx(BLFQf|<'U8"\vrݎG)(=eHVO1#)u1="iF]géΊ<y#QPyU}gڜkcʄ<(Ҙ&>^&C8aX#}z,̸V?Tk<? \C`ih{I,=Xy$s*dFkJ6; ա1.W^8 r&5B?T.P&ϻLP~XsMytHy<5BdEDϝ(!-XpBD3.(xQuw$$)@5TƆT2B9UG)4`IHF(k)?j|Y&i ǚwD%u}P:BB09}P,ζV@F;V2/^{"*`#Pg;Dbugt9bJ vB_"C '6%򞖡8C$#~}4v4(HH?[\#B>. v+ xo1c>QO W#2R:}5ݎxCE_s=]pH.‚$MD{{^(a88W$̴+ ` +Q^Z\щ{&r|  IL#=m ˘@#SA;Uڳ^?6'O$|;A3;f3)-y^g؊t4]++&cU"O:#9g!4қ1,UQ(y<ԁ$sCxP y'q~_)JfG#l~8 )ҡyͲ}4e$ j0фZ\Ǽh7\&^`y7n͕ĥGgt9+:搃ٛ) ؀JskGK4hPCU&4sB>X,>"IG0I=DQh=0RQ9Óـa6@YU3;1Dgs]!גp Rs^,[0#b?'mACqe;K>iY_EX2IfJ>("?v9 U׭@y%W/uo09:,#B qX>iQo.Ot=;,F<{$o 9X|V筥$u~D1=W 9 cM34r4Ȉ'܋IjIQ3-r9c4tEAdy2=EyQDKBFlVX QI@>" %Gy=7H J3WQߐʤ 0gA9L:yt$5SWϺ/.kґ)owE>l6 ZP8w@AG$*` rM. dy 13ʀ'1^HA3'H2#g͕$1B\[(-`Ec/ ٘K ʧ!7jD=*qn>@ fIجI纑3) <}T1UßVK/CC(# 4%OШe#`0/~\iRy<CXs͈OC|`*'IB@T&#0pߙ=A/$7}7?;-dKŲRH{ ! Hݓ #AO‘pe$P'(B4QɎ'(d%0F~G C$WL)߫ MKfL 0H˯ .@"ERD8%鈚BuYGgƕ1<{geQ?t0DIPs͛1^rJ>)(9veQ~fAIeVq%P@{daЁŀ9=P~'{3k8AM'Ő>'O|$^L"{cdg@dg(Ŕ{IŌ) G7BfrX,8sX@^A%cD㺡f uU_pWBrulǒ]gG2 JH<"4_C<4DYܓ 9M,_`gŔ> 7H@Y/4/;* Lր#eDa 0 Ŝ(D7a QɈYRpʖ TDyvS#@\wdM|U<:Eq$gwatxLqr>QV<HьA,;&NRƐԼx({A%YϋM`7Q$ HGj0>QJuylNI@Tux(`כt'J<*\E=.`L}K@KǺhdzLhBHF>% `}aeGZ$( Z4I ni93H({JJ܏Ubaj`d"DG5#?UJ]WBtb饗 x < $ FǫGTa("BP~+ =V cߪ$DS=ö:>ʓ y}BOXt!}sX(y7vQ X'Ve<,fKs҂pay\OVԅidYTT4lƋ?hl}U/ ўb#'p4f(#T\GȞs)5"1y!U"ØaC$,w aC!p d{c⺢9sG58L c u`tt@:n[HaD8rHr\@@P!`%Z#׺) g( }˄@f8&pHTy魁 ̄~.Iy4N9%dl% V0yJ!y(컚N6&-F3\`=$^_4eːG 9̸@ Ioq@46 "+EEy ]I}NU S5@ A>:~/3I"DOm3#A!%ǚ$J Gfuƍ1*ԡNt< A%vSRnEΐZg*|PSV%G3>LW ALWN PBITd>lΜI5ךA?vp8H}&~y4KX,"(F"Pff;Axy@1MDz9gyFO?d!㊐2I6_ՙG֤T4 s0gT%hi" DGZ[ 3Pv frP 牊2%PD9ZZ'YԆaJ@3,~l@j0Ћf&JVyLW~ M ,2 *1:% ]!Qa)!,uTM"1lB7aOI4:OXLiك!+HBKWhi!ԷXQ.T'X$'h^H4EA+'݀ A2w6O`6CL D &8d2VH'PuR !=b`]^j{FGQC!#g dT:S} =O>)ɊilC9֌;}٬K] 0IZٓ2yǏ 0Nwb6x ΍酻@Ƀe@' jS.@v:a (ae'01,8S*Y8 i^XG+$zM"r%~7(P2iE:r9c:ç^]Ӝ#3*D#c B:{b\Q2=zjD0j'iDǧhsN\0Cץ`K2'3Lr8$F=mp<{seqEBD 9ɓ-$9;f!>r pM*^' &(BL9iX8701wsD͓ !]`ՐA8$1>]&c8^?$&F8%MR1[,zS*DQBOE"!߶nXÜ(z)1c Ih$I φ02VQ 0Ei2,a# ($$'e`C$7f]hH>e+VY<9xe&>De&&~]'g;iXvv.tǴ6hNy!<ܼGohHML CY'{)ɐTyKꡑ?BD,FL#ESRH(ot02u9$jIԝϻf^ٳ@2_,@n9J`.K+ xhI &'i#XIv82&8#ӿ=hs'I2e !XN O;P TbfqTm /K✞L ĢFK>HP~@$t{,8sDXw7Ф z˜!px꒞y%d'ʓ9@y(]{d^ ^y9W6vSJ'5e?(e)I>(`~4=Ta^`NKՉ+9zg"xs`RĄ^((KР"*$I6&LHx]|XF$PZBh?Y0 ^o_<S`%X#YNQKRVzgՅ9E#D / @'bD GbȲVD]+Fd fz32@@0Y!:(<>f^<~/IП XQ7@H`IsR!]<i)8|sH1?a؆V #Xx,[gTJp$L2/,`H(HdgLaw^9; t-(1Yi*^232cN]ؑ*x|E*,f?[bLdҾȑNy;H4e$qwg!!]I9< r*Eb7͒\\^>f=KKV9%ꩢ2Ie$!Dd`tX/x Okx+R{L| 7(eIP=Д>l hjDMKä{DoAbHILZ3Vp.8P kt#ssHׅ&#1ބtg"ǣL"((q#9J3'"ЃRqFH:GNU a"2v"'jA63oO/xII3"znA͂1k$J`q'ʻ偲 cQ)+A+o@V"%:1a2w0c?^\' P~ʤ*܁!r&mޜS ,1c@ǴOL5_1Da=ٌ㞨'Ӑ+ ('U C!$ҹ~Z"0Qq2.* >N(S I͒| D=SB^cjD)gfHVNM0h}Plb#bNX&\5v<6Ȭ#)N&/oA3s@{D34bo!Ot$$p"̌svJfOC {d_ !$n.E+ b;hIL; (QN5z YL|TpD\_|dyV g4t{V(7A 654Rk#11˕^2I e B5@Z1)C >A)"?򠐉'ⲈMF"`'Q&œz㿹JuR>0m$"AJx&!&$14 pNj1:Dht71WbT05AF]Vi,dϏ#)%*L V<{lHߪ]L|a"X Ryi渌P%ʏW"{y{2$~F(FK{{h>2dO`B' wMtdOq]!$H=wDrC<Xss\n47r&^QIrMZFzV`ÁG4c"Qz[~SXLaW'o@3L`=7?5n `\MjƮ~N lEАjO>ExKn>`7L xRHbU6z~LMM#i걻ȡ$RL~(l>]ӧa$6bth3/3f$`IA;8Q*2'yTEv<PA^Id%b6bo x- g}H4~h'Sa!GpsD#ߊOX)H 8iX3#\4LD|Ԉ g# GIHΜ??f"Fjx4 e<5|qp??WB :OE`"2#~6B LϚRgrv'P .bE"%ǘywgPYPG&W\SOnzyNV2M@4@tRcՙD8Ta#픎T,p~8ܕ,::Q1ڈ'wst^>{i=q6%aX(1ٳP]] D'iP11y@^'fGwR<5 azIe_[Pjḱc\S'nf Q&Q 5,u&w"|7lp{3-Ӝ%W!& $0;v -k:%lã)&}P"`F k`E۳f ׈>h20h^GE0 v!́sLz&wJPՑCÑ<@CF 1dHHC1ggx2T (v~r LA܌~,P+\h*@GX\R p؍3L5C? =RQ0:] FufYEyJ.D85 ,15@Cn0Rcz#}@g沒z&y=0X4 0fXIJ(S]>qL~6abOx!+%h \rKy rx(ORt+>A}SNjK'KGLoꎨHkHR^h1Џ!I<{X#>$ńa=Oi%^< '^2y*qғxe/՞SG?jJzXg!@9(Rpڤ$GSՙO1aPjEޑVF^&`NF$DU+SF.yN+D6 䠃{t+;ޏT4'h)&rJ$h槳)g/'~ |@RXsT$'*"PvN 68_FXG QٙGqTmRA-Ơ3ɨ3,THh3,MZyAp9j@6SLgKx&_&Vg"hC x4dS3몍Rc꣌Zv,!BG|sPuQb@7 D׃@fŸł7) T`W!Cϟ>* E^ 0ez2I1/7.s":Kꐛ43Pxn as*+ % 8+@J$0Ѭ$ٰltb0LyTy(5< |ݔHXH:ʅKG͚aò.TDQ\ fI:* 4&m7%/y DN YFA3|@}sTE DGxe ׃⣽<%#00&AL`CP ќ%(Ȉ39 (@*;k>,()[) {=PvDf ;UdMZ'ODI3KD%C3)9Tu"RSՂe!"2'+ebs(dE5sP9 L':cYE"#K$f|4>o>g>eQ@je<4!].6@a_V@G{(LdyJ3&epP?5Uw0C2e{gG4nMHK,1H%h03TEe$K뜭n70tPz'\1&e(LM ج{, srGuo9PR%;ȰS#U@16R5@<>H "ÐHy;M̞eDL'UbGyEF婀|xgd&OLdzC458{|hRZ !_'M@_4=9lyf>,D&]$jHD,w@ DxXyYlMD얳wRV(zڢPGTcr6Xg&H;C06S҆@Mj``e n(#~b\zP.?6'~#?YXeVt'a2gvcn|QUqeI uA{r1UBw~,u Ayxt!* 3dBK8kj 4)؃j2'ABQv)R^4GG̛z>g@CwfQ\5%2ÜٓLpz*<*F@ha14T ^=Adi"L9mTAS' "9bq"bx|d"hG)'&& 7>^.P@] 7OTo&caN 9ghfAٌ ȳ$BL"ir TI5TA1,Њ#\ܸb{X|eWȤ;&H:<&v e:$ȱ_! 13.T!m rSy;0s6XB);aK-BE8`Bm(2Σ戞/oDcQ7fĤ9A/8q";D%RLcI$؎jXPm`&= RrNʨL̤P!!3TO R?7 zOw" 0v$tq I.1a_'H[)#bn#W`#O'~/I4y[5v0U!QQǼr8癨LxL$_$y!g#.;ϋG%QT?4BQ{He2LD9Ff68CV,՛5"k@ O`q#LmbXAP &@EZ8q%K\(UsjHo6@3j;Jds>SP~hDU#E,hLT$>#XS*V^+E(na&N3j V|xF#٩1!nL;TegՑ$gdp**VH6 f|4e`C6bX$BL9u2@Tj;8!D0@iY'DbtϏJ KLc,yh(͒ 3f$o/S{>n˅wjJ̠>h$ٜҘ e3|CIpxBIn#dDNi.6Y YϋfMdբLd"ZlqqJ${!<!߾yd=[`1aϚs"7("!U'su0 { iXЏY D3G49fr1(ā%ԎQaŭ)9yF;?4QH<@ ;(w&\T{֢](ӛ[a aX4 hSрaD: =|X}ÝV20gH_T FRB$C, T$<2KۚJps=RBoO,HL'uuk'L q!ς 9HIeiĴJ OtnHK^k^Cf [%zRdB,Ք0 w1e9DO$aB@xkh8 ^I;)X*R$4RU +oJ$ '暌q7 w4 G5 j>nD a!9vzRP b<$N ' *G2 EcW{E'>hsꊚEGwi}uC1N(2JQH擆Ÿvw /+\GS0ÉtY7@̟Dg7j' D@v)đL9YZ ofGsSW8P/7f "D@`0H s$M"ƼxuhDKchGz\crʖa'l!yz9xQa3UD8`f 'V ICD1e{, "r,OWbL|T8 uzB)qSN 0Ǜ#Hϋ~91>*1G@@GN눨llD^>vM ,vҞy4Jht(3]$ ʯv Yĕ ;D8鎹+YTGZ}UcՉL{Y&hL6\dIZ4ә#Y@##{|Ќd:IvN]0J5VSH'l,) H8چSx#!cQKHq( @~iLG0H善bG&i3pR8Bx ,%z ϗHcLq]G>o`ü-(dF+xG?6w"x>fRb5&OQV ߺgL@#\w;8POUIC@b|bxbAȞ !JGN?TK' D=r{F(C gaӡxYO$.,H Ƕ{R ;n Y覇U;գP s)A`pl6]7B @G'X2LFEJJ6@Y'8*b4Yy K|~i5Ў[8=A!5y"K+G`@I^{MrEA)[h?V : ."Yk݈f5̪!D=3ֈ%òz_uBfr"&J1 zRrtm^L$p^Caqʖ7WZle!%4#S .h!5ORq`q%+:ˡ'`E9*aI撑k4Xh܂ ;d'&Mad (]@3:EIa'"F#D0y/#"g +R``Q`4He㵒p>(뛍B:X i2=Xh<1M#y }YԄ)n-X_@5ݞY9O#¥?E++P4%A|W O'Ajw}PܑR\PT]!m5d9O4~*a85xY5RAyϒ2Ʊ{geQ=^[r`"x`5#񗈏5VA)I>'\B^>OJO␂~kk'Zq1Y1W ϖ:0蒜KHa nj#TP)11tAιEHncS bϺ%f 5#v̂ RB/kY"gD9QDF9hӄy( dTfR( i0yyE;H4BÏXɀIT&Q䟺g,rs< D!R{/RcH %@P’9~B+d]L6e`8j4f=xw1N:#;!FX͙ ߼E'Dze#d~*xN`xR/ { u/d , $E%@H$`ǿ?'j@BNIPC!ל:|2܈ Lp@8pB~.Yߚd<!.yal:`gM3d9Lu&G>b̗8Gn38rQOD"Y{'L!@"Hz`͔J @+'/0)V sV #?t ·,'$IK 5Ѕ^ɉ#(I1FaĒcTX8/"vVI2H1e =U7@d  8@,-DJJ>؝̀GCkg,H =>J@J!k$H]fD'ip#8bUœ kO"??)S*J_kbŚK]* %Xe.h`` >&R}688֢8zd˨zByW!؏w:ϪI^^r&g d< {=4 C9 :26u`Nh vK,80gx*/bfnHfuqH`G ux 'ń f"VLA@l`*t F AhSlf sP!B2kd sAd/& %~e'!@,3 8<(oEV9g%ٯzҦTe%1퇼U/2! RNP\Kk='4|KܣUĮLC1TxIxJ‡d,4eC+$JŕP H;=B:XčU5!WUCy i6K |M&Aob G6E1ԑ뭠'cB$pIkê 1FKBrDɜ Xk=qT D}iNXQ2~. K 9`9xUJx %LI$vȺS$0͆ a2~ gGl"1^B@6D7(W'psbMm 9A u`^G#cNf6 4 >cWDNBT> XُHrq\whC$2@8U2#_4l@{*>>"2$D'If_,0(p +E-J2,AL#У.EeIC|Y4g{EUI(y"fzw"0i;6+wǫ"$;#A6XQ@lh:r(a@0yʆe(I;W(2 G$6~DbSpY/gWj2{CgI:n2H#?4@G\VglN/d9wrOQRkGőf !KaH"S^nlQ8΁r/=t0}g(tNGYd^1b8ET`AXHM()>DtP.c<̆x8Ncʉ$xpfR,yLeH&2Ff, <&3E'F_A&r:&..NVBV&͞Đ7dh%cg4Ƭ>\OA8>.GW> `OU!P/gH;3a2NO& r0ym3i`vӐ4&"'a逐׃*y.%p) :z I>jSnq'OylcI5G5r;3P!;(HT:WQV@C70M+ B/?b=ńӕ/ irȍ, 9Ls}J ,$0vTrsYPsVFQ,yꀑ%Ki4An)@T%<'sP#_sXBy& ](Ho`)~ɂgFAXI .Q%Xqsput[ɌO]t, LD !,.0gN:To+sH̀NH#ţYg|taO4}R^S $9~3tp<;Q}ĀG6mD=WHb N#i $6qAQ7^7 <5aƤ]c:lCQ|y<6y1^*'k%8>ͦ˓Δ=oENF譨٬̼$S2:'j8` rFza2"8>GUҤl!.d z3EmXgU@"(4g|=B IcچC!E &R-lVr)QiBfPtO0uSpM ̯RP95ZG0é%jt(w?IzJ0,a,c$ u `ffbcAܙ%P#&`G p+T`&N&<Db'xGgL5&Ǫ RQ?Lk#>J%Bǫ?A0M'^X䎢s%%8X)ď6!גzXhSTp:_bxiܙxQ)sOThQ$ܩI2bQmD-v h2O)$Ǒ$O&SəLcqL:U mwnR&8c\BNOuЗ}RC ز3g)?NXN0S<ԢY7]t!T$VN~l1Ϫ >jB dgfW =M@HbJ1V]q0LOՐdp( !_N8 3Jac s4VDi%@Rq/0T O-T4 o&?")3œ ,B@P@~xp3YL5@FGk UD3O3:wJ EY;*Ed@R@ 6!s] iL~l ⺆45T!T8qSxBSlvr'TQʣP (ycGED!evl`LXN1,S\ 0 7dCtSbNG/cspVϪ,TcS﯒&$1L=tf^0ڸ)l?r+4:H,h.`pO_DS|֒vIQ2yJ(o!0z ,q}Q98BS Q"?V H4Bq* ֵBjj8jbMeaMA,j72 7!3S06D0uIgՀfvJiLlDKgN"yk&şQOќX D$ J9 請5&?wOoW;yk${=4>bGnLS|`{r"Lĝo TЂ3)iS+Jg|mR/gdIYhwh0F0x\q筿b8 L5#`uIl i9IR?EQEP8#Ga!0gP1E`"wH:db=wB :9ZHܪ=5%{*b%NQ'!dN1D@ N;vC* sHbD }la}RPĎ)EϿL$6L2cH;a,8yї\^c͞ ה@XAH4g̩\$xI<͎dV[[feaYUrŘj1|sQ yY1QƟ=b2G;c!Avפ @'\(d :ʢbpx=xn,e21Z!`)9 yDuDNX\ s=0sdB_$w;p}Xf!F"rjF'^ {HL(K9aij3@{3Lc Iy`y;ā4 'C?Q& %T i38epq3B*!7d@fsQe884Ft](*sy|&|Y 0]PJMl$y2@̯v0&B5)OG.LV"3M̶pgȓ&5zCS< ܤP̑V>2X'BoLb)S aFg"F,FrwQ;"7\$ߚ5prœ}B;ypcSL= 2hпvEC7&baf.C*Q12yTiuQ%' #H> _`tAfye@0܆OTEOٝ'v6!y&{e 0A=t Yq ǒIDJOdRL1ϻ&RF7] %V&$ Ŀן;tk Ή3r%\)=T̀#goQ ]Mb2Q+UsT1ˀ#˜䢺FJ' Aea# DdkVZd'hAxg10NPc,D O13܉XH*9u"^ДZ6SLbg s1'Px  5~zvD3jwCd' >AK!eˆAXwy/!r!Ǔ5UY s☔&*\e$O@x쒒!T|M'ou(pç`$3/f?Ł#>C>_W$ǟLLU@ I9b$᝺2<ײWCŖAܳ$7 Δ#= r`ca'98},w!T0Ej@v`AIw4ȥ!ٴC\d`bt˳'&)LXG, 55$ E8"8RO!f 9QiOe&͎Sc?DPwǻ|owLV8v(ArѹB̭$1t@crC3  כ3K&i *!V4HbPHDZdD#9f8E]PLnj.Y9F)WNlWL2292^R)Dff:sJhv 8kjGA' u<3PQoTİO$tsk1u)I` %e:4X=}$jLʊ9(]x WA-v *A68j,5QbsK C2 C%3gebFDx;ԑܐԁpт ז|E'.GUlsC)UPc$@'Q%# <^HA@%A!hL !jmBTJA͐^κR~uSitO9E`æ90%FtY%ŕ;LE ePN Q0KZp02,hsP1ڄg4˧1NT4CcE(<(ByrqT>j\vgcn@\P$lV@?@ IՃ| bCg' %dt{aPHy%8]8'LLV! ] x;q$!<ՄJ\nh`BvcMÁa?y/h#cGN|R2rj+r(ꇧט3Ld9?n>O=S̒g{ C-` IB{WO,"P %-M\]MelUAD$6<0!z*9p)xMI$ԿK)*'஌TK:»!Rv6"ܱZ.~:.<ӐK#ȹ/trI|uYux69+m9˯K)0ħfΡCcD .qR|C)@GD9w6   ]S"&نu*t!f"0*вE("0g|XI}GBY=X<JQ |fɽBYK/Up `ϯWzpb G>0*;b8*wQM\cGi/k(0iE%*|]Sj7 ωMAM$!HFeq5O$Gü)zzƝ.'$ˁcyP2㎬T~S i:~ LRDzDOx,p! DD|ǁ2ٓyS1a]O=*lUC6a9Vy&Rx(e^ `#lPB%!*B@KT c}UT 3LDaGs(?UQ(@Fg2횑 cTdH?Y$qBs%I4vg=U.rȳӈfJ ؕ"bZv|A88>n e_H "GnVfR}sDRbCL6HςGP06d q)4tL OTpf戳 41c4F .H"-HFM8DbHīHy8ɞ~R |E:/Asa'DD 0cZ <=\G^z]rr .L~eXC!S(kV )I ۔&ʡ >|P}UE̱;gkhAt`T'AN``80e`~Sy32ˇ4G9QI}P1 ʑ8ZdCQ Ub^7r%$: (Iי${}Y@;Lz8l(A#Eo0B&g"%?4b*o$#sА^g#,;k D$% IBa2:# $2lF^QTLqLmPQ\ g :Bph #莬jQ$ ~FnINo@ M Fn]*'QvyB$W8T%汉%0r~"Ѷ [˹wB_"DNioAf5aׁ2G;\*@] *ԉ J'}DRF"#i"%t,<gAJ*B2h(YI<.ND`_{&9`|tS僚O:uUf&z# b'M; )GVv#|T6RTD@O0ZHɎiv#ÏzCUq5͞0 ;bH Ő yscFH㟙;& )&Ix ?rpp&\'S$\i* [D"!>e f:l@2=sVYsfVG R$Ķ;}ؐY: %a"bB>h11ͪDq"P,g)`M!]!>h)r9c[X$W|1wz;7 @y,ȱ>ɭ!jPѸ&wp-@s gbI˯I^Ę `1µ8_`$k GOI'꣢!Q d}\ ͔hꬠIdLRQa^$b'H#%9") A/eFCpuL-wt-OЃy" 3?BNM'‒ZEzBlPqLCܩb|01QtbpxK(ywAsW>^<̤,h5@Ne#!kQ TSu(( ZI,/0u|^~s%!68) L"P-VC1Ue3!))dԄHI<T6fnI$T/s?V ccTx!J(xzL'T B9þAujLqL>C@SdVXdA $=IX`xhY GT8b!G8O$ 3N> “/y)KFA0!uH{esh$~sLs \>W؋$|NT./U(p(5f;>|Mp}yc=$DSK48']2xU6#g 'y24"q20DKV],fQ$2f]Y3Lè|DuJIQy|8$ gh&̎ e @k]$CRG RcT_8XG #bL T$vUJg%hG'(Bd.2FNГD&4U!c]+C~+ gd Iך27CdƗH$#7.EyxJI/=X2 ӕRGCYx$OZ!5PI"Rff")`OKe S4x2_AdĒo lzUaL9Cp5?udǥD1SuDDQ{\aS'yRD72%@@A=sQ@ HF$J2HI)b{b R+I.N4 FBĉgqI>(ad̞0Gh)1iZ:j8<H ru%';T4ޘHg͈ܜgŘL%͉״s @ =Lxʠ!-l9,8ox/dcks:,pzI>t'TJ?X"9Y=Gm6G\adiЉy4N5$gf2€ɱ4Q"@>XN̰O^S⃵)G40TbXg',Tjlψ_ZH8T"XGY'ȃIlAY4? M9:SH8?^6C2ّ1S$4 yPs;'͂G$D7L$" <C:f@P$u8X& 7JD[HIt e2xD],ģ4 YYF#yՄA0u\pCR`v9p\K6G"qlM`ՆH j^'&Y&?-Ox8{}\H&W+H,=ЊQ,*"=]c Ν{"D{jĐN#(2&of*$?G?[$3`s{Y,5(ޮҌbn%Z wD(gtf)BYpЙ]b$q U`{BGݘ3~(UaxnxOEO3N^zߪI<~JCPI(IdNKUMOVkQcG2A#0 KeTHv!1:YaL<.CIl%y8q$CIŅ7<)DՊ^(y鲢e p ?_f;ǫ&F\~(a>hTtcPJkݒ$ZD2+ GJ:BEbDWЇjvAw֙59f'* O0 ݠSY6! .Ia/!($(L,;lK, qY#pQK/$hr r"ĕ$x_< (iPU$y_1,D9Ha3`h0eSP1Q#LZDŐ lԀ*aǑꃒaxkuI.PN P}RJy x*%dmd`JdX:#;PTvc{`Aqvu/(O[Q&ALh(PN)/ZROrKGFhzC g}$y|EGHs ӏjA(HJ\ O8FntH՘uusɄeɬI(YCr$rdMZ Oi@'hSK(6FҮAot$v,vI`THOiG>u 1eG>rtp;t"[HD@z0$U棒}]*LS1Fi dg{v,DW9fתHfr=>{0ΑtdaI)*D)Ǎ)GaMHC&v)U!X(BFcx$$G4DHp5(!P'3ds(EPoDkA(@M?Uէ,2'v/VXe: v1ZdFϚXJ r!Hs9I 2Lt?̸Aay(Ffx#qG&'N ݚM,P{I6=r q⿐8cfh#<<)g&y8IDϖG!X݊F=03>,Q{5f?VM$X)#ں@,B;.9v""vA?Dq1vT MLTB&&&- ï3C>RS>9N#OT׉nH0I9^K;.e4hEӱ6V:b$vh9dBgC2|ؓEI#bz4e}wa=yI<$IY |1RȖPQ;uB o/KՊNPQgڐcK\шpBrxq+8Icik(*Ȍou E a>)6Bs^'6bV$uNLdlN>VGS,7dBV ^Df^pܢ $ Dj1=m |}ޞ0σ,q1Bucb'"%l6!eKÏFDc3=,),ic9恭:DU%C)$@f6f,# ת'C"|FY8+|_t!/tW$JdQcXvYVlg88$M$Ad!ŀ+F)!Tvrj>k"c)iNJ5UR"'N쀈X#v1]Td@,Q)⨱Xٕ{8 "I4Ly$G#+xPvt`{;Pdq2' GD ,$,"\ՕG9@~IWVϪ+^|XbHyhr:qj)n$:삅5zKr@` Y0"pv{,5phB "0S-G(1Ge; 1I.(0∁VRPḢ׻ s@K@I RQ3HH1.=M,C&" rJ1;8$$kSS?qJi;PHdL63!\]D̥`MG8RGL30|Yz1b{ [&'Hx\Ipq(bbzU(S7;;NT3EJueu㪰9wGqd??#L~t꣸H~j!T@h!F "0ʪ' ?i`Q,vtDv hEc3 V>['c1>h1fL@CI j &#h tf3iOܔ@`# $:C/&2Ahr.c(/nW\1PSR( rȗ$f .rWBXHe2q"oS̀\|a:WvrY*S9S6l ;2rg|R3ʜN$0xXn5!?5FeN L=;F'ڐA }7,^K"Ea#g66a T8㶐bAȯ hAΣŝL=G%(u8b8J$XTcG6X<ĠC ^eta$t굲ȃ׻ 0jDZr#`PaFU%hd`Q5L}I'!?pV 嘅0U S>*c EgC<Тx[2N˴Iy#6ykL0 9ǫ"m##{c{꼌`xH̦vylP "I蛅@$ /v\' !pć|\$Q\!Ȏ6u%BK@{'!XcE?}_2{6P>N>Jv4c&VBqyęT!1{2'( $ЫX3~(` xj10zuao| f +q@@|\:Vφ@kGvp$ .5"\2vo |x*%H>(D Ď7$۫t@P<و7^y:WI3d%GdYEVIy(D5S\'e';aD,Ṣ=X5M2|٘{D C^(A yec.GI LPsqPs*1VX#9)2m22*LIfHX $[)O)Y< !"!ܫ5AAuR@huW!˜&Lo( XgxZ L_%, rlbw!0؁ٟFe 7W 6 Xum;t#8#Ϛ3\F|G7@e$!)= `I8DƷ(: T"{eb9"Qw="D$YP\B_R("NڠP؈8ͺR{i%0,ɻd M!*M|ʉ|QbtJ Iʱ%#j1e-06%IFrb9eE 5iNc3bTL?Tk$IB#D &EUaޫ|8ʴz "$;$/V5;YaX!ӱ\قOW#0Isz ⺈z 9v,?UzEB( (ŕA-kj"@ƄF~(B`b6SO͕A,5ϤUCB3 EZ(@?t Oɞ묙S([H߻&Zm{)8/ df{$0:\%lzHĝ$|=Q NNj9,hOcǦŎOӊ/ xۍ2-ӎLP8""\\f#MUr? ^TgOd¹ 2XJ"Nx/e!pxQvED\bA*B/j1&b(sUL b[0%!hts)hDA[)w̌GYXR~x[sdknb}R hLY3ep Hu`3NGG7,> lg3Œ$9겖j!J~2: )Rxbr$ ͙%(aUrp YȒ6.ro?Ō+: wPb! E8ggUGxc29`s`/e̱#"co 4HSC=yh!㍬>a!q4RMc*t}O+fQX Y=ՐId 15FR!;RZJ`ٌnԩ0?VIcΙ' :Ce LȓU9&*~櫂Sp>!:pd8C܄ @sK ȬB0`& ut5'3d!=T>q@r$xEFN0b7^vk_?u(#X:@8NvdEx&n0`>i1B+$I3HJ+9䜾3|=wzNIhPa`^T f4 HAcc$x.~/T t̹d,w/PO6$'QAòu꼎l#"\Ldu#V‡|dAHfG2KՀ0d$|uHQߟ@#e%Gx|P=%]6hs ^)Ã%CAd gHNH0FIR@׾":=Tv qtKcrAfI ##5BH8KbrN,1ea XJS$g edrM}Y-o\] rpz$3 U7F]CT:3Rg^)]#G#1ɤkjϤuP+R@5C 5沙0I< #I.hIŕ`A!E; ȁOXrI`'fg*,L1X=<X`gDbtu\G_!KIBxjbD (>*`O9Y A+''`3Xˆ]LEu?~)^u(q'_!-#魱1 c2XhsPSi"cYc'^)% "&_Kl@Sb~+aa Ɍ^ja26}X3#N#jJ-r )1ЂVvy) @mK³(]NJ.F淓8 L "!өY +)y$K?3TN'zcޤeCC)q?uTO'tBv\;ՐζE@Ò}mRT^Ǻ!&8?OՀz揚oA3p&h e7X tz'Yx~ru`1̯tT:?ʬu&i'rGE1#nʐث$=C),B=o`-)`x~C3ŎB1+ ϟA4aDH\΅CQwQb!$UC`;&a7v~TM[g,A(|Qѯ-.T>p8H2PԚQ2ЈTTc ,;8)kg`|Mg//͇7 ߋ"aFufsx5r:> 9޴IMy>c[Y"3n ecu N(?<*D2:4(!<gEJ)$|Ԉ mA e/"#I\aV\$%Xd}W{y94w .Q&h$='̚xE⠭Aað<؉@#4(^Q96 \,}r͛ ,|W y9AL>&_XXGfZLjNR/Xj#g$$Bz9Hx\접32!$<4uCp%+(yqTBe%ݨRf1r͉8D(͘~nxh>飆wŀ.& LhC>ꅑwRJSb0qkϊEtUCFd@Aa#xFcfsf/d:z(4 OP|QyLRDuC4ȜS ~_sՌu$4jz,"F"YDPEhy{52h&)_82>&&L+xlr貀s 4E±=Vi2*Kϋ#5'h 1xB:y>"z(/z9tƧKS`ncdC,0{lŌ=m hPD1 WyO{@:]@q8T;LxH`»٥L ,By%U!_]DF8!aq OvRL#͔83jCWnP4H<ꆌcr=P&:JR8<3Ž<>K&12{IiIIcyL9z Bl;&tACƩdS ~68} 4\'G!Ŋ<4j,k sTDC .ZG  9dQB y>(FFw77ňX_u$̗HA4 W4LdXJI(;,63dAMt;kD( q/ M,%/2BΣ8EqM$K(6#-1B'9 FK"X;I789"='>>*HrPL,plq_7V_N?_|]6`iqHK$I.++!Fч$l9`<<$@A&JI]&$)x~.V?UJv<4Q`e3ߋ8E,*" Xu(Ii`d'dF]ie z0Wj"GLn +jAtO XLA ANQVFN&!ybd;,c5 :>|a`/XB:{bx-p3BQx&"!.DMM4W#j5#P5vGJRP'-v !8愢JdZJ椬8`(Qw Z f4I%:;GH@ !Cⵒl1Y68@“43s6d B!)q2gb|QR Y e+3@CqLJ &= !1`8Ah&+fkbU9(Gb*FDA9OУAZep4?㺌bLdE,\2>8taX]'B"LfaQl'x%\-!Jr%fw~jNMy}X3;FXBf;6HiEh' G¿5IB Y@{3YQ!#Q$0$[xf@aŏVa :zy*B.}NiJW%ARx1XQ2SI'_2\~j;@ |4 51MeβǮD` Ǎ܍LVHb"t`rl(^ .# '<8=O5'zF,4 LX>͚b"{ON wqfgՂgw\Tc{EPpr;s;yhrRD(Lp*%:rIQ63(>]Eg*q+'I^LBS%rbqϊNGBf0P Fv ei P$v#"fͅ9Y inGhc#svPccUy;?VVx$|ٖye2,TNze Ry4*3xA=x,*r.1Md2T2MRNg ê$`فvdp~k k0b*'L(?E]#!rE;dħ\$8{ 3VZ"N&"2 Xyob'8sRK)PYq'%Dg[!ߺ*yZ>:<]0I՞&#X1^*2W}q9 AL! 3!^?UH  /SC*(Lyqz 8>lޢlb5`2qДs9*V?g!fq$99C54^ xMH^k/9c+, Ul8TylFu!db8cd zu;R{(JA=F9ȪLlM u5j_ ز)\A&FX'e/5EcNs`e6B%TPwV뱞1m3nnTRQQ 7()HKe(Sbe If읒̏#?% Y BRNOT` $~IZȻeLo(>BxG-U> G^3uH%θ\YJIPM ($TD ArX#;V G H\,0{`9*M ]r`|BnLfvPwH͆YN'FD(4@3jtMjr&9 HEF"&5kua9Ftİ5v#wy/3ҘPoIә"S/}   68gwx Sv6ď=wENC03oNё\:TB%^ `p'D9?Qϊ(%"j8粑}N&.=SBaS7XYw&=Xf2aWb:w|zڠHv" ;3P2 avVLPQwf48('#6%IrU%\"s^%PHt8^(eD_0rz$IBj#Ou/? =&6/a \.P\/\U *eIrj Ib/ZIYiP!r `OkN*&I,, ҳ EjIT ʣ0-A"v fG'(pwA:xiH iRciSHj ^Dn8|Qvb ( ITYL~1uD!ʯXJFfHv=_RNÎ_`?Tp%2,DB`z':T'ϋ)rPt '#`i'3D*aN`M!CPs"!HYh?RHJ 0Ȩu`*&0DN}Q 9iXtЬNO4 Y6ÄZst0Y${׈LQ̕)? (dEI'(!w^T ttIe1\"< = |T0k^  /$>i1y9G\E9X,9}Y+ R98* 1Q(pB9*!$Xk% 1̡P#/s8!/*̮7I$.vgFy<#DG\u,^~jzp;B,kgn)@׊(#rx h̶rSJ,Lcc>w,*&fK{,BJ5:Ph=4 1W P&8+yTA%ryƏrD=dlDK&_:[@@R@g4RA 7x:nLG(vaƈ7F*6HS"%a5DI P@p8 e0ys@ ]Fwa a>)"`IrKd(ɉ*FA+hL~Il%bA p^zhڏc5c갳=:*1=PC#@U2(g``vg™\agy,$=U"oR̎l\T0a 1ZJn 'g1 an\8~*2;y/SVDXL4c\Hʼn o&$kuWbkDJ0F2?7%5e / d<]2qP9ix\} 2V'.kҔj. >ix<gx9$@ P=ϑL6M\ VaGhǚ@!E+P1RX3خkM_fIKl˹GԈ(ecAfI#ߕбÖ,Yyb5<kBHS>'W42} g\tؖU2D6ZqTfEqT'ꩥ U,FD6J >Љvc0U yfQyj#'8"T(sH98ڵOu3dD+<1r2|MQR!K0DCők֘rA|{))\> I9œ8Ψ WdPi,˱kR@\NG5Ae;`y(H8$@5 yg@iD썌T`dݘ;'1o>TXș/ގhcBd՟6DoJP@q`Nals#I4@!{ K"^G,&|F%yZ]E6C'5~J s#$J\cY I0e9T3O^hIF;v'W"f\8F{L]h=lR/ G3z06FXASI&HCݘXx,Ce,e'9IJ0A)^0DH,%#|O* )U8O^i'3G& Ns4ֲR>Ɵ,XM" 3dGFjOel0D& +Ŕ!X&3E0G d{FV7r12% mBFwMYI[㓙,buE“uRAf9u$K=u^5Ϻ,Pd\IL!$\ 8 d"Cd1W'@}l喺 49f8b GYK{T!\apTbP% $_ !q6 {9 Hvkq#9Ʃ-q` OY2Hua)Ku ;pJ#*S"<QK \93I)` Y]= K{|S.n2R@QYe&zD /,F/6 ptP?س8k,TVλ7D.)%[D$ B3̧פsQ\LJ8GyHX0"h7s*9z>k.Gv0D"O4!'^p)( ׫$( )]e /9v"$I OUXig!!?gs&G8\Ok1 3zc%dIPʘG ˃?t94,G`,<h@Ch'l^]8ܗꡤKMI/3hq@ %?Vj0HSp3HrLQWBI ₳ՄY _xI'(E2oV0~ݞ#=Ry$5N,4{,^ `P#9ܲÒX6fcu( ݣ)e8_T23f-8J 2HEX(ɓUBH($9~vPH.J¾}(pc(HL'E&DEevGp+a'<\:&|]p2FPdI`5!w٨$iUiNlIb0 g-ob4vךSYˆl6(d̙H^".i%yC(g?*\ȤR8dkF$: ؟R<$0op'n⠈LȨJ!* !($ŅDhg#4) WNAHw`O/K#BsT%uL&\ ͖.e w3a#O>A.wIV ,s>$lyUyRok}TX|&yBRQҎŠF2Bi&yJBA!2{“h9J@ t+$P*2 ~(9;jO#&=7hlIȘv}L%Z"B`Ŕ` sVjvi s0\XPd;p`H$`%F X("G4JQL6JaOu^'?H$ٟVUnqP9(})1E<^I̳TIȂ'4,ØXbj` 쨾kI"us`@I"cݛOtQ9+68F=&D#J†#,'`5LeXPoooJs:2J䬱')ONwcPb"l<|ٮz}5`z02urGtbTAR>og☤%I()< ;hb:ܬ#'KJFhcR~#SY\CYIsl P/z$K0qT禂aϪFEȍTb|a=yX)7'dF$)& ^1ÿ.O ʼeºK')Y;8J3&O`5lZMPYT њLUGm*<`VwXZ݅?Vf0J<fȐ3e ~)4Z"LI> d yc䍚q].w^ xUadA>R-"^ ^v,V?Ƒ&T$say0 `e;BCPOD3e2^RFbFBf'/`V 9 /uqO8X| XE 'g9j$?Mdn;.)*c?x%$A&6&zhv!rbIxFyˎNGHDÌ?gJj8,`cLC e$vp8baM0bs)T$q}YЈf+1؝x|Q5Ǹ.|#$O.~ ˅e99зhs䙪WBg, "z"laPBs@(deR{)ؠqEN>;HUj9* sԌpP')B1LٵH!UHS~iK =X⬅͂(sʓ%TxLH'I,ff%gr`u,z =lŽz]I@@q}ődX) Rws$^ 2Axl?';[/t"P;ڀ0rI#@!-pc{YИ9 (>AI,HaDNaX$Bq\'"1'Xx~.B}3vea'T$~l|iVq<^`d;Z8a\QAFLꣁ=ƅERLAńD eނj#07g :P TF"p#I)NM @ziJLe'ݚ#ىRX=`O^,I eW5G>Z B`Oq&N~:(8W⇃e,C|sj,Dm$(' 9U 8R @%?wY@*s`&3W*%O@B3T]{r] cg$P TIݢ'1!-? z1Rz&C6E6gr&)x0^jXGe|#ߪrz F x kʱMLB=ԕ>w:bcF!lDh ,FR,Q5|< #Ȅv<cY@H8 ur t`ʡ$L!K8׺' l+S0F݁^$%5~jAEvSn"1Ӈ@Y|x0OQ&kPL c"PpivLgk1<&Q)LcJ!4+9!A a*dyȻXX^*ϩY9L(i Cc'Gnp,GSAcz^sBxL μTFPg<҅K+wrSPpOF6:mZe"?#!{(S5'lI&=у;qI̼@ @uD.TYT.Bh]&yDv)ɬE4Մ22B'J ,p 20F݂E"aXYez>,:r(a vI&O'1 I:2"i#_ ^;5+# `tzD2lʥI}VȌbVrP_#{<a8AR0mބu !go@+y}ﵢ? htLW& $|eQi#/OwC]11' }VCE/Nh:b gA&G9aA"DhbR214 DudH|Qr3sOYI?5k#ً!3/UɐƞʈJ K`iqߋ ((13!<Ɂ?4O.^U60,^C] V9yd8ܚx5( ˼E{&G9Pdy!QLN75ZG4 񣮴cLh;O;/-a9fOBL(QЗC#=YвGS@(ХV%Țpu6椓aF3dR=yb2Bw )؅`$fc4!M 1)+HeFDGT!| p`׽R6YaOA(`l Րb6fnrK6p5"HX134yN~<NQJa(TE9@)a]j5`:PHG=xd.RRkbXwO`D)S,8dHͼA別NPAT;`iT3&sJ1IrEy YsxHa?4U2ĈW,H>DFf( H5A!@h@JI]=Ӿ"w uL,< y⊡p`UTQ338Xxg!H)/N =`35Փ+VsR<XRR?u"$ //q'#TA71A@J35BcR]:G(#9,:7 %`@4; ?9ެ,}:}*B%thq?Y 3xvY"w;*($4FqjW㔲3g?7JX'ǚAL?:"8OW'&{ARLNO`늬qQ89be!g3]7h僼M7<~aȐBOO11eDʩ XG6SQݓ 8=C84Tb6&J,iř=v(6OA)1'М9jٗIDo{$5[cIY7yfs]J^Ha13`Or,@?$sP#9KH .9άOD&7δu ]CpA9G;a 9HMyH:B"B F`L2ʑj†'ňg(&x49sr1C\t. #$xsPD&N*0$+搔}%Y|V~I!@H:^(H yo/>Py[.} )%{S8q:.3*`;Q89 $'v%WQ$*B8:*i%FYt4(1<fq8U~,DuL5#[-#c!4~,$k1Ȃw\D +|YK5|?OCm =^Po6 U!猞.rmI EŀxӤ?2 O*a49u̐2ĀIw+čCc 2Q2LlZFW9݀Ү҂ ~(7AʼnvvowIC#y9czI,?>)/2"(;>i5#'Dy:ua 4D . L]ak%:@,lHs43"!>3NuR94 FC@J0xX&C5RAIqxFa<4*Dyt= *H}zJ|͖FҌB00 ;XJ$"d8IRFI))vXu~,|̞haJ88ܤEy&r]a%mVCB( ??|\R(|pI ez5QId*f J3#ۤI 5qz^:,ՈpVe|B3`(F";!<]K*Aـ g0Bs5X$sDTi(T0~*Z yOWS; !;Q vmFY$*3ɚh㷫/Q؁(hc)È 7 ?yB]+[aڴ*&G' l!>&_ ?9Xla=!?ؤ!?5TeH=I20L 1{-&u+LwDG%Tiʼn!Tv< x@qX$`$!r]&Is&pps8ےaGa׽ o1rO@p %$q&@ %ꢓJLayA5cRE>p5+@45 0gR ΋8A+PCu!E'TFVLY$"PߊC!xl"Uq8ܐNOp*3DSY{$ \lЀB"';{[ k|V̝rELX9Rbñ4S!ag2㖥Q~jyYirMQsXIR? r(3T!wCwԣ!!ߊ.H^o/[9]$Ix%jR|aHbZ!QDs?b'AϘ,10ysT8땍 <ˬᗩ?ҡuh8đBߪDO O;dອ>-8:>}wXGgQɑ~; $;b,%x%DRJ2uw%e#( </vXIYU:^Q6z;FTˆ<,@DxvRsPIbG~',Mt|\@!!@wTMRߌA l) Sp0 &|rjfh(t^NNiB2؉B2L PJbDk5(E\Hޜd<'˫*%6KfOV20#ǃHN%6!t2>f1lUNuFh JUWrVL yDaD@$, 骔q'T!\H%D$f6ɏczs@@NunĜ=ag9 f ,LLs6Rgyy87x0dO$f4AG'ȈdyC!2sp䕂rd$DDHP;HR!I <ō J3Yh.LȠ)Dt ,}EP(7#i u>'ٴЎgzKXFSʛiQpu({ځDXrxȉAD46hyh4\c`HpVxp_4yđ%LH7N?va2BYI%Pؓ!DZ-옫&!&:%NJvdANd;tP\"#aBKS$!Pq CXdE7ouaN}6B4/"OlPaI"@Ry8!jt$HԆ<߂`gE1wgI 6ܸCa;1 DO.=R$yƀky&0.C2D, y}>na'ua9O2ĝHor3:46c~fTPmf(X3J7$+HIX9z_,u**cl!*!>..L,vCD?W2=KȮA% Gzg29d#\Jy54ı>*Bܖ"*y;8$8=ىxe{j)9,id-}X𜧸Uɏ⽉.w 3'" c0rJXNN噰j`!1՝*tw͙σj IQx|6nhg 汁5pG' Nx$:i8puxܪG"tDEIh BHeL"*c$<͐%"1^jBr@|5 r3sdmIo^x8@i&ZtK:vc1JS[aʠŕ~(\4(2dk Grx<dL6 &9R >i$@1mD3* R#_t2.8:~5@e1, UW%ɶwgIQLuE0S9桁W/?@SPHsH80v92vnn'f sX xSϢ@HNV^@5P``&.{qO >͕$=6)%#Y皢e?q@cq9r5|Bx@.$b$87X&aGD#͖ȽԎu:袱+4ɨ B;&gЁHTq^"]ϋ Yu4t${A 4, CX$?oTJ g4#(ԋdey=Ya 7{8 15 b2vS77`"xBKva.V8'{[2$q@*A@Dn J ﺼj 3 D !qؾ5D1|XM ]=5{ex!)(@88@C38LϜ&# awt`0lQ c>9|W'txGn2pnDV@8rl䔮XPՈH0&"KpOl͘91\лQpx!18ܻX/ țbĨ5͓ŀ]T?ګ {h{cv;W))vQu4 OaT!"I"Y_RWC`6h!jpA}j4D.=S|2 {AzwX.{t-4v81?47N? Qy8(:~V-qBV4FT`˜áFg's(YYd/cFI˜PDp׆#݃?$ &HkR]%pMlCHs3ȵx,]c+%I\JUD>."pH"bH"zyֶD!Kك)NKdj9xfIC3fNz$Du#dDmR.葭^O2 ػ(,2}Rgwe"< !`s">jE=V/"]AsPe hx5W 4c9^f&g g UeA,`9:~l<|D׃zQ9a2Q#33u"f'h]O#>#HKaʘJ &ub }'Y=X %*X f%^ɫ'`I Rx I¦GݕoDi b c D*M#/ KC'쓾=@ Sau3jfP l$nLRw1GXdx5 g _#Ag#DI2H߻qp qg oS*Xvُ1`SՅ<%zFE0d0N;0I]̍:Rj@֨@[粦H:mI` /0yhZH `BD;B$c6`6%D/p*  V(_4X0_` u-gLt4|CY#R9D`A!C6p0fekgR)RGGz= 6QBUc-ʱ2DSм) P.2O$e7f?L@iBˌ`ZK<B{|>)jo (ǏmsQFPO?|\(*aIجQ+3!e*EnʬJM"#a`pj:Ly(!fakD&!pMEILDb(Dh͞$׻b)#ݙHD"$@D"A:g?4Y\\s,L9^8"I54 CJfG)6LsNDt`q]L13;0O: EtA#TwehmeȦV}(cj>HF|Y%Bu;\22f8ti # l>S(gؚ`JWq Ŗ ßJ0'TΦ[ez B1Nt4pY(N<͚Do!^+Pbq$ݠLMgj _j *Z>j)j ]:Ykɫŏƒ'Bx?T\Jǝ\@,YV4J3Jd17lm枔er%*@$ؘ3'xMa;{񴈲G GwSCR 9, 4/bPktUQ1NtQQ9?6DúK&CuXOFFuݍ!9sJ0 yI1D4N&WkYǻ0X|t>"P^o g 4:wH:B3a+d{ %t| #|UyP dX&2e=g $p"#Iܪ\kU̘>I5LD'bܭE*yXOݞ Nc @9cIh7Ac6N \lPW&DGQLLBP`f<>:O619u&Ât}Ճmu|N@$I.!Nb)!TFYCzE"K( J"X vNTl(0}Ǔb Cf!gt@d0X4(!SRԏkY $8(9 {\|m)UFNS׊C "~ $ A8+Se?Gq+, YdBO$XGw$Iꤺ·:WȇXA%5PHg;] )Z8qRgy}Ț* ct$G#ʆ2s$6K1f>$.HcA9\(_՜ce|-rtٚ1Ҍ;6e"[0Uːak(0SULgOSg!٣;?5eB1,'ʼnA$gk ԇ3 { show "o": "Ø" it } world } world } typst-0.8.0.2/test/skip/compiler/show-text-07.out0000644000000000000000000000540207346545000017712 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-07.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (Content [ SoftBreak , Code "typ/compiler/show-text-07.typ" ( line 4 , column 4 ) (Show (Just (Literal (String "World"))) (Block (Content [ Text "\127758" ]))) , SoftBreak , Code "typ/compiler/show-text-07.typ" ( line 5 , column 4 ) (Ident (Identifier "it")) , ParBreak ])))) , ParBreak , Text "World" , SoftBreak , BulletListItem [ Text "World" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [World ]), text(body: [ ]), text(body: [ ]), list(children: ({ text(body: [🌎]), parbreak() })), parbreak() }) typst-0.8.0.2/test/skip/compiler/show-text-07.typ0000644000000000000000000000015107346545000017713 0ustar0000000000000000// Replace worlds but only in lists. #show list: it => [ #show "World": [🌎] #it ] World - World typst-0.8.0.2/test/typ/bugs/0000755000000000000000000000000007346545000013766 5ustar0000000000000000typst-0.8.0.2/test/typ/bugs/args-sink-00.out0000644000000000000000000000517207346545000016637 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/args-sink-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/args-sink-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/args-sink-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/args-sink-00.typ" ( line 2 , column 2 ) (LetFunc (Identifier "foo") [ SinkParam (Just (Identifier "body")) ] (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "body"))) []) ])) , SoftBreak , Code "typ/bugs/args-sink-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "foo")) [ KeyValArg (Identifier "a") (Literal (String "1")) , KeyValArg (Identifier "b") (Literal (String "2")) , NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) , NormalArg (Literal (Int 4)) , NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [(1, 2, 3, 4, 5, 6)]), parbreak() }) typst-0.8.0.2/test/typ/bugs/args-sink-00.typ0000644000000000000000000000011307346545000016632 0ustar0000000000000000#let foo(..body) = repr(body.pos()) #foo(a: "1", b: "2", 1, 2, 3, 4, 5, 6) typst-0.8.0.2/test/typ/bugs/args-underscore-00.out0000644000000000000000000000466107346545000020046 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/args-underscore-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/args-underscore-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/args-underscore-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/args-underscore-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (FuncCall (FieldAccess (Ident (Identifier "map")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (FuncExpr [ SkipParam ] (Block (CodeBlock []))) ])) []) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/bugs/args-underscore-00.typ0000644000000000000000000000004707346545000020045 0ustar0000000000000000#test((1, 2, 3).map(_ => {}).len(), 3) typst-0.8.0.2/test/typ/bugs/columns-1-00.out0000644000000000000000000000550107346545000016553 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/columns-1-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/columns-1-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/columns-1-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/columns-1-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 70.0 Pt)) ]) , ParBreak , Text "Hallo" , SoftBreak , Code "typ/bugs/columns-1-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "columns")) [ NormalArg (Literal (Int 2)) , BlockArg [ SoftBreak , Heading 1 [ Text "A" ] , Text "Text" , SoftBreak , Heading 1 [ Text "B" ] , Text "Text" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Hallo ]), columns(body: { text(body: [ ]), heading(body: text(body: [A]), level: 1), text(body: [Text ]), heading(body: text(body: [B]), level: 1), text(body: [Text]), parbreak() }, count: 2), parbreak() }) typst-0.8.0.2/test/typ/bugs/columns-1-00.typ0000644000000000000000000000011007346545000016547 0ustar0000000000000000#set page(height: 70pt) Hallo #columns(2)[ = A Text = B Text ] typst-0.8.0.2/test/typ/bugs/flow-1-00.out0000644000000000000000000000752407346545000016051 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/flow-1-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/flow-1-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/flow-1-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/flow-1-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 70.0 Pt)) ]) , SoftBreak , Code "typ/bugs/flow-1-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "block")) [ BlockArg [ Text "This" , Space , Text "file" , Space , Text "tests" , Space , Text "a" , Space , Text "bug" , Space , Text "where" , Space , Text "an" , Space , Text "almost" , Space , Text "empty" , Space , Text "page" , Space , Text "occurs" , Text "." ] ]) , SoftBreak , Code "typ/bugs/flow-1-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Text "The" , Space , Text "text" , Space , Text "in" , Space , Text "this" , Space , Text "second" , Space , Text "block" , Space , Text "was" , Space , Text "torn" , Space , Text "apart" , Space , Text "and" , Space , Text "split" , Space , Text "up" , Space , Text "for" , SoftBreak , Text "some" , Space , Text "reason" , Space , Text "beyond" , Space , Text "my" , Space , Text "knowledge" , Text "." , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), block(body: text(body: [This file tests a bug where an almost empty page occurs.])), text(body: [ ]), block(body: { text(body: [ The text in this second block was torn apart and split up for some reason beyond my knowledge.]), parbreak() }), parbreak() }) typst-0.8.0.2/test/typ/bugs/flow-1-00.typ0000644000000000000000000000030607346545000016045 0ustar0000000000000000#set page(height: 70pt) #block[This file tests a bug where an almost empty page occurs.] #block[ The text in this second block was torn apart and split up for some reason beyond my knowledge. ] typst-0.8.0.2/test/typ/bugs/flow-2-00.out0000644000000000000000000000637107346545000016051 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/flow-2-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/flow-2-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/flow-2-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/flow-2-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/bugs/flow-2-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 19.0 Pt)) ]) , SoftBreak , Code "typ/bugs/flow-2-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , SoftBreak , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , Space , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), v(amount: 19.0pt), text(body: [ ]), block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), parbreak() }), parbreak() }) typst-0.8.0.2/test/typ/bugs/flow-2-00.typ0000644000000000000000000000021207346545000016042 0ustar0000000000000000#set page(height: 60pt) #v(19pt) #block[ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. ] typst-0.8.0.2/test/typ/bugs/flow-3-00.out0000644000000000000000000000747007346545000016053 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/flow-3-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/flow-3-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/flow-3-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/flow-3-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/bugs/flow-3-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "columns")) [ NormalArg (Literal (Int 2)) , BlockArg [ SoftBreak , Text "Text" , SoftBreak , Code "typ/bugs/flow-3-00.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 12.0 Pt)) ]) , SoftBreak , Text "Hi" , SoftBreak , Code "typ/bugs/flow-3-00.typ" ( line 7 , column 4 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , SoftBreak , Text "At" , Space , Text "column" , Space , Text "break" , Text "." , ParBreak ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), rect(body: columns(body: { text(body: [ Text ]), v(amount: 12.0pt), text(body: [ Hi ]), v(amount: 10.0pt, weak: true), text(body: [ At column break.]), parbreak() }, count: 2), inset: 0.0pt), parbreak() }) typst-0.8.0.2/test/typ/bugs/flow-3-00.typ0000644000000000000000000000017207346545000016050 0ustar0000000000000000#set page(height: 60pt) #rect(inset: 0pt, columns(2)[ Text #v(12pt) Hi #v(10pt, weak: true) At column break. ]) typst-0.8.0.2/test/typ/bugs/flow-4-00.out0000644000000000000000000000444707346545000016055 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/flow-4-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/flow-4-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/flow-4-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/flow-4-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 105.0 Pt)) ]) , SoftBreak , Code "typ/bugs/flow-4-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "block")) [ NormalArg (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), block(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), parbreak() }) typst-0.8.0.2/test/typ/bugs/flow-4-00.typ0000644000000000000000000000005307346545000016047 0ustar0000000000000000#set page(height: 105pt) #block(lorem(20)) typst-0.8.0.2/test/typ/bugs/grid-1-00.out0000644000000000000000000000712107346545000016020 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/grid-1-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/grid-1-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/grid-1-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/grid-1-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 150.0 Pt)) ]) , SoftBreak , Code "typ/bugs/grid-1-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.5 Cm)) , Reg (Literal Auto) ]) , KeyValArg (Identifier "rows") (Array [ Reg (Literal Auto) , Reg (Literal Auto) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), table(children: (rect(fill: rgb(100%,25%,21%,100%), width: 100%), rect(fill: rgb(0%,45%,85%,100%), width: 100%), rect(fill: rgb(18%,80%,25%,100%), height: 50%, width: 100%)), columns: (1.5cm, auto), rows: (auto, auto)), parbreak() }) typst-0.8.0.2/test/typ/bugs/grid-1-00.typ0000644000000000000000000000030407346545000016021 0ustar0000000000000000#set page(height: 150pt) #table( columns: (1.5cm, auto), rows: (auto, auto), rect(width: 100%, fill: red), rect(width: 100%, fill: blue), rect(width: 100%, height: 50%, fill: green), ) typst-0.8.0.2/test/typ/bugs/grid-1-01.out0000644000000000000000000000612507346545000016024 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/grid-1-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/grid-1-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/grid-1-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/grid-1-01.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) , SoftBreak , BulletListItem [ Code "typ/bugs/grid-1-01.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) , SoftBreak , BulletListItem [ Code "typ/bugs/grid-1-01.typ" ( line 4 , column 6 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) , ParBreak ] ] ] --- evaluated --- document(body: { text(body: [ ]), rect(height: 1.0em, width: 100%), text(body: [ ]), list(children: ({ rect(height: 1.0em, width: 100%), text(body: [ ]), list(children: ({ rect(height: 1.0em, width: 100%), parbreak() })) })) }) typst-0.8.0.2/test/typ/bugs/grid-1-01.typ0000644000000000000000000000014607346545000016026 0ustar0000000000000000#rect(width: 100%, height: 1em) - #rect(width: 100%, height: 1em) - #rect(width: 100%, height: 1em) typst-0.8.0.2/test/typ/bugs/grid-2-00.out0000644000000000000000000001470107346545000016023 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/grid-2-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/grid-2-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/grid-2-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/grid-2-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/bugs/grid-2-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 2.0 Cm)) , Reg (Literal Auto) ]) , KeyValArg (Identifier "rows") (Array [ Reg (Literal Auto) , Reg (Literal Auto) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 80.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (Block (Content [ Text "hello" , Space , HardBreak , Text "darkness" , Space , Code "typ/bugs/grid-2-00.typ" ( line 9 , column 22 ) (Ident (Identifier "parbreak")) , Space , Text "my" , Space , HardBreak , Text "old" , Space , HardBreak , Text "friend" , Space , HardBreak , Text "I" ])) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , NormalArg (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , NormalArg (Array [ Reg (Literal (Numeric 100.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , NormalArg (Array [ Reg (Literal (Numeric 100.0 Percent)) , Reg (Literal (Numeric 20.0 Percent)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (rect(fill: rgb(100%,25%,21%,100%), width: 100%), rect(fill: rgb(0%,45%,85%,100%), width: 100%), rect(fill: rgb(18%,80%,25%,100%), height: 80%, width: 100%), { text(body: [hello ]), linebreak(), text(body: [darkness ]), text(body: [ my ]), linebreak(), text(body: [old ]), linebreak(), text(body: [friend ]), linebreak(), text(body: [I]) }, rect(fill: rgb(0%,45%,85%,100%), height: 20%, width: 100%), polygon(fill: rgb(100%,25%,21%,100%), vertices: ((0%, 0%), (100%, 0%), (100%, 20%)))), columns: (2.0cm, auto), rows: (auto, auto)), parbreak() }) typst-0.8.0.2/test/typ/bugs/grid-2-00.typ0000644000000000000000000000053507346545000016030 0ustar0000000000000000#set page(height: 100pt) #grid( columns: (2cm, auto), rows: (auto, auto), rect(width: 100%, fill: red), rect(width: 100%, fill: blue), rect(width: 100%, height: 80%, fill: green), [hello \ darkness #parbreak my \ old \ friend \ I], rect(width: 100%, height: 20%, fill: blue), polygon(fill: red, (0%, 0%), (100%, 0%), (100%, 20%)) ) typst-0.8.0.2/test/typ/bugs/grid-2-01.out0000644000000000000000000000467007346545000016030 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/grid-2-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/grid-2-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/grid-2-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/grid-2-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/bugs/grid-2-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 5)) ]) , SoftBreak , BulletListItem [ Code "typ/bugs/grid-2-01.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 5)) ]) , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet,]), text(body: [ ]), list(children: ({ text(body: [Lorem ipsum dolor sit amet,]), parbreak() })) }) typst-0.8.0.2/test/typ/bugs/grid-2-01.typ0000644000000000000000000000005607346545000016027 0ustar0000000000000000#set page(height: 60pt) #lorem(5) - #lorem(5) typst-0.8.0.2/test/typ/bugs/grid-3-00.out0000644000000000000000000000464107346545000016026 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/grid-3-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/grid-3-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/grid-3-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/grid-3-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 70.0 Pt)) ]) , SoftBreak , Code "typ/bugs/grid-3-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 40.0 Pt)) ]) , SoftBreak , Text "The" , Space , Text "following" , Text ":" , SoftBreak , EnumListItem Nothing [ Text "A" ] , SoftBreak , EnumListItem Nothing [ Text "B" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), v(amount: 40.0pt), text(body: [ The following: ]), enum(children: (text(body: [A]), { text(body: [B]), parbreak() })) }) typst-0.8.0.2/test/typ/bugs/grid-3-00.typ0000644000000000000000000000007007346545000016023 0ustar0000000000000000#set page(height: 70pt) #v(40pt) The following: + A + B typst-0.8.0.2/test/typ/bugs/math-realize-00.out0000644000000000000000000001777107346545000017333 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/math-realize-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/math-realize-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/math-realize-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/math-realize-00.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "my"))) (Block (Content [ Equation False [ Code "typ/bugs/math-realize-00.typ" ( line 2 , column 12 ) (Ident (Identifier "pi")) ] ]))) , SoftBreak , Code "typ/bugs/math-realize-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "f1"))) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "baseline") (Literal (Numeric 10.0 Pt)) , NormalArg (Block (Content [ Text "f" ])) ])) , SoftBreak , Code "typ/bugs/math-realize-00.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "f2"))) (FuncCall (Ident (Identifier "style")) [ NormalArg (FuncExpr [ NormalParam (Identifier "sty") ] (Ident (Identifier "f1"))) ])) , SoftBreak , Code "typ/bugs/math-realize-00.typ" ( line 5 , column 2 ) (Show (Just (FieldAccess (Ident (Identifier "vec")) (Ident (Identifier "math")))) (Block (Content [ Text "nope" ]))) , ParBreak , Equation True [ Code "typ/bugs/math-realize-00.typ" ( line 7 , column 3 ) (Ident (Identifier "pi")) , Text "a" ] , SoftBreak , Equation True [ Code "typ/bugs/math-realize-00.typ" ( line 8 , column 3 ) (Ident (Identifier "my")) , Text "a" ] , SoftBreak , Equation True [ Text "1" , Text "+" , Code "typ/bugs/math-realize-00.typ" ( line 9 , column 7 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MFrac (Text "x") (Text "2") ] ]) , Text "+" , Code "typ/bugs/math-realize-00.typ" ( line 9 , column 19 ) (FuncCall (Ident (Identifier "sqrt")) [ NormalArg (FuncCall (Ident (Identifier "hide")) [ NormalArg (Block (Content [ Equation False [ MFrac (Text "x") (Text "2") ] ])) ]) ]) ] , SoftBreak , Equation True [ Text "a" , Text "x" , Code "typ/bugs/math-realize-00.typ" ( line 10 , column 8 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "url")) , NormalArg (Block (Content [ Equation False [ Text "+" , Text "b" ] ])) ]) ] , SoftBreak , Equation True [ Text "f" , Code "typ/bugs/math-realize-00.typ" ( line 11 , column 5 ) (Ident (Identifier "f1")) , Code "typ/bugs/math-realize-00.typ" ( line 11 , column 8 ) (Ident (Identifier "f2")) ] , SoftBreak , Equation True [ Code "typ/bugs/math-realize-00.typ" ( line 12 , column 3 ) (FuncCall (Ident (Identifier "vec")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" ] ]) , Code "typ/bugs/math-realize-00.typ" ( line 12 , column 12 ) (Ident (Identifier "convolve")) , Text "2" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), math.equation(block: true, body: { text(body: [π]), text(body: [a]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { math.equation(block: false, body: text(body: [π]), numbering: none), text(body: [a]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [1]), text(body: [+]), math.sqrt(radicand: math.frac(denom: text(body: [2]), num: text(body: [x]))), text(body: [+]), math.sqrt(radicand: hide(body: math.equation(block: false, body: math.frac(denom: text(body: [2]), num: text(body: [x])), numbering: none))) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [a]), text(body: [x]), link(body: math.equation(block: false, body: { text(body: [+]), text(body: [b]) }, numbering: none), dest: "url") }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [f]), box(baseline: 10.0pt, body: text(body: [f])), box(baseline: 10.0pt, body: text(body: [f])) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [nope]), text(body: [∗]), text(body: [2]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/bugs/math-realize-00.typ0000644000000000000000000000033007346545000017317 0ustar0000000000000000#let my = $pi$ #let f1 = box(baseline: 10pt, [f]) #let f2 = style(sty => f1) #show math.vec: [nope] $ pi a $ $ my a $ $ 1 + sqrt(x/2) + sqrt(#hide($x/2$)) $ $ a x #link("url", $+ b$) $ $ f f1 f2 $ $ vec(1,2) * 2 $ typst-0.8.0.2/test/typ/bugs/math-realize-01.out0000644000000000000000000001462707346545000017331 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/math-realize-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/math-realize-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/math-realize-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MAttach Nothing (Just (Text "2")) (Text "x") , Code "typ/bugs/math-realize-01.typ" ( line 2 , column 8 ) (FuncCall (Ident (Identifier "hide")) [ BlockArg [ Equation False [ MGroup (Just "(") (Just ")") [ Code "typ/bugs/math-realize-01.typ" ( line 2 , column 15 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "gt"))) , Code "typ/bugs/math-realize-01.typ" ( line 2 , column 18 ) (FieldAccess (Ident (Identifier "alt")) (Ident (Identifier "phi"))) ] , Code "typ/bugs/math-realize-01.typ" ( line 2 , column 27 ) (Ident (Identifier "union")) , MAttach Nothing (Just (Text "2")) (Text "y") , Text "0" ] ] ]) , MAttach Nothing (Just (Text "2")) (Text "z") ] , SoftBreak , Text "Hello" , Space , Code "typ/bugs/math-realize-01.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "hide")) [ BlockArg [ Text "there" , Space , Equation False [ Text "x" ] ] ]) , SoftBreak , Text "and" , Space , Code "typ/bugs/math-realize-01.typ" ( line 4 , column 6 ) (FuncCall (Ident (Identifier "hide")) [ BlockArg [ Equation True [ MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ] , Code "typ/bugs/math-realize-01.typ" ( line 4 , column 18 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , MAttach Nothing (Just (Text "2")) (Text "x") ] ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: none, base: text(body: [x]), t: text(body: [2])), hide(body: math.equation(block: false, body: { math.lr(body: ({ [(], text(body: [≥]), text(body: [ϕ]), [)] })), text(body: [∪]), math.attach(b: none, base: text(body: [y]), t: text(body: [2])), text(body: [0]) }, numbering: none)), math.attach(b: none, base: text(body: [z]), t: text(body: [2])) }, numbering: none), text(body: [ Hello ]), hide(body: { text(body: [there ]), math.equation(block: false, body: text(body: [x]), numbering: none) }), text(body: [ and ]), hide(body: math.equation(block: true, body: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })), text(body: [≔]), math.attach(b: none, base: text(body: [x]), t: text(body: [2])) }, numbering: none)), parbreak() }) typst-0.8.0.2/test/typ/bugs/math-realize-01.typ0000644000000000000000000000014107346545000017320 0ustar0000000000000000$ x^2 #hide[$(>= phi.alt) union y^2 0$] z^2 $ Hello #hide[there $x$] and #hide[$ f(x) := x^2 $] typst-0.8.0.2/test/typ/bugs/math-realize-02.out0000644000000000000000000005331707346545000017331 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/math-realize-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/math-realize-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/math-realize-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/bugs/math-realize-02.typ" ( line 3 , column 2 ) (LetFunc (Identifier "foo") [ NormalParam (Identifier "v1") , NormalParam (Identifier "v2") ] (Block (CodeBlock [ Block (Content [ Equation False [ Code "typ/bugs/math-realize-02.typ" ( line 6 , column 4 ) (Ident (Identifier "v1")) , MAttach Nothing (Just (Text "2")) (Code "typ/bugs/math-realize-02.typ" ( line 6 , column 7 ) (Ident (Identifier "v2"))) ] ]) ]))) , SoftBreak , Code "typ/bugs/math-realize-02.typ" ( line 8 , column 2 ) (LetFunc (Identifier "bar") [ NormalParam (Identifier "v1") , NormalParam (Identifier "v2") ] (Block (CodeBlock [ Block (Content [ Equation True [ Code "typ/bugs/math-realize-02.typ" ( line 11 , column 5 ) (Ident (Identifier "v1")) , MAttach Nothing (Just (Text "2")) (Code "typ/bugs/math-realize-02.typ" ( line 11 , column 8 ) (Ident (Identifier "v2"))) ] ]) ]))) , SoftBreak , Code "typ/bugs/math-realize-02.typ" ( line 13 , column 2 ) (LetFunc (Identifier "baz") [ SinkParam (Just (Identifier "sink")) ] (Block (CodeBlock [ FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "sink"))) [])) [ NormalArg (FuncExpr [ NormalParam (Identifier "x") ] (Block (Content [ Equation False [ Code "typ/bugs/math-realize-02.typ" ( line 15 , column 24 ) (FuncCall (Ident (Identifier "hat")) [ NormalArg (Ident (Identifier "x")) ]) ] ]))) ])) [ NormalArg (FieldAccess (Ident (Identifier "and")) (Ident (Identifier "sym"))) ] ]))) , ParBreak , Text "Inline" , Space , Equation False [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 18 , column 11 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 18 , column 15 ) (Ident (Identifier "alpha")) ] , BlockArg [ MGroup (Just "(") (Just ")") [ Text "M" , Text "+" , Code "typ/bugs/math-realize-02.typ" ( line 18 , column 25 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Text "a" ] , BlockArg [ Text "b" ] ]) ] ] ]) ] , Text "." , ParBreak , Text "Inline" , Space , Equation False [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 20 , column 11 ) (FuncCall (Ident (Identifier "bar")) [ BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 20 , column 15 ) (Ident (Identifier "alpha")) ] , BlockArg [ MGroup (Just "(") (Just ")") [ Text "M" , Text "+" , Code "typ/bugs/math-realize-02.typ" ( line 20 , column 25 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Text "a" ] , BlockArg [ Text "b" ] ]) ] ] ]) ] , Text "." , ParBreak , Text "Inline" , Space , Equation False [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 22 , column 11 ) (FuncCall (Ident (Identifier "baz")) [ BlockArg [ Text "x" ] , BlockArg [ Text "y" ] , BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 22 , column 19 ) (FuncCall (Ident (Identifier "baz")) [ BlockArg [ Text "u" ] , BlockArg [ Text "v" ] ]) ] ]) ] , Text "." , ParBreak , Equation True [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 24 , column 5 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 24 , column 9 ) (Ident (Identifier "alpha")) ] , BlockArg [ MGroup (Just "(") (Just ")") [ Text "M" , Text "+" , Code "typ/bugs/math-realize-02.typ" ( line 24 , column 19 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Text "a" ] , BlockArg [ Text "b" ] ]) ] ] ]) ] , SoftBreak , Equation True [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 25 , column 5 ) (FuncCall (Ident (Identifier "bar")) [ BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 25 , column 9 ) (Ident (Identifier "alpha")) ] , BlockArg [ MGroup (Just "(") (Just ")") [ Text "M" , Text "+" , Code "typ/bugs/math-realize-02.typ" ( line 25 , column 19 ) (FuncCall (Ident (Identifier "foo")) [ BlockArg [ Text "a" ] , BlockArg [ Text "b" ] ]) ] ] ]) ] , SoftBreak , Equation True [ Text "2" , Code "typ/bugs/math-realize-02.typ" ( line 26 , column 5 ) (FuncCall (Ident (Identifier "baz")) [ BlockArg [ Text "x" ] , BlockArg [ Text "y" ] , BlockArg [ Code "typ/bugs/math-realize-02.typ" ( line 26 , column 13 ) (FuncCall (Ident (Identifier "baz")) [ BlockArg [ Text "u" ] , BlockArg [ Text "v" ] ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Inline ]), math.equation(block: false, body: { text(body: [2]), math.equation(block: false, body: { text(body: [α]), math.attach(b: none, base: math.lr(body: ({ [(], text(body: [M]), text(body: [+]), math.equation(block: false, body: { text(body: [a]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])) }, numbering: none), [)] })), t: text(body: [2])) }, numbering: none) }, numbering: none), text(body: [.]), parbreak(), text(body: [Inline ]), math.equation(block: false, body: { text(body: [2]), math.equation(block: true, body: { text(body: [α]), math.attach(b: none, base: math.lr(body: ({ [(], text(body: [M]), text(body: [+]), math.equation(block: false, body: { text(body: [a]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])) }, numbering: none), [)] })), t: text(body: [2])) }, numbering: none) }, numbering: none), text(body: [.]), parbreak(), text(body: [Inline ]), math.equation(block: false, body: { text(body: [2]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [x])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [y])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: { math.equation(block: false, body: math.accent(accent: ^, base: text(body: [u])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [v])), numbering: none) }), numbering: none) }, numbering: none), text(body: [.]), parbreak(), math.equation(block: true, body: { text(body: [2]), math.equation(block: false, body: { text(body: [α]), math.attach(b: none, base: math.lr(body: ({ [(], text(body: [M]), text(body: [+]), math.equation(block: false, body: { text(body: [a]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])) }, numbering: none), [)] })), t: text(body: [2])) }, numbering: none) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [2]), math.equation(block: true, body: { text(body: [α]), math.attach(b: none, base: math.lr(body: ({ [(], text(body: [M]), text(body: [+]), math.equation(block: false, body: { text(body: [a]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])) }, numbering: none), [)] })), t: text(body: [2])) }, numbering: none) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [2]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [x])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [y])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: { math.equation(block: false, body: math.accent(accent: ^, base: text(body: [u])), numbering: none), text(body: [∧]), math.equation(block: false, body: math.accent(accent: ^, base: text(body: [v])), numbering: none) }), numbering: none) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/bugs/math-realize-02.typ0000644000000000000000000000124207346545000017324 0ustar0000000000000000// Test equations can embed equation pieces built by functions #let foo(v1, v2) = { // Return an equation piece that would've been rendered in // inline style if the piece is not embedded $v1 v2^2$ } #let bar(v1, v2) = { // Return an equation piece that would've been rendered in // block style if the piece is not embedded $ v1 v2^2 $ } #let baz(..sink) = { // Return an equation piece built by joining arrays sink.pos().map(x => $hat(#x)$).join(sym.and) } Inline $2 foo(alpha, (M+foo(a, b)))$. Inline $2 bar(alpha, (M+foo(a, b)))$. Inline $2 baz(x,y,baz(u, v))$. $ 2 foo(alpha, (M+foo(a, b))) $ $ 2 bar(alpha, (M+foo(a, b))) $ $ 2 baz(x,y,baz(u, v)) $ typst-0.8.0.2/test/typ/bugs/parameter-pattern-00.out0000644000000000000000000000575007346545000020376 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/parameter-pattern-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/parameter-pattern-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/parameter-pattern-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/parameter-pattern-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) ])) [ NormalArg (FuncExpr [ DestructuringParam [ Simple Nothing , Simple (Just (Identifier "x")) ] ] (Ident (Identifier "x"))) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/bugs/parameter-pattern-00.typ0000644000000000000000000000007607346545000020377 0ustar0000000000000000#test((1, 2, 3).zip((1, 2, 3)).map(((_, x)) => x), (1, 2, 3)) typst-0.8.0.2/test/typ/bugs/place-base-00.out0000644000000000000000000000732707346545000016741 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/place-base-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/place-base-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/place-base-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/place-base-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/bugs/place-base-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "right")) , KeyValArg (Identifier "dx") (Negated (Literal (Numeric 70.0 Percent))) , KeyValArg (Identifier "dy") (Literal (Numeric 20.0 Percent)) , NormalArg (Block (Content [ Text "First" ])) ]) , SoftBreak , Code "typ/bugs/place-base-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "left")) , KeyValArg (Identifier "dx") (Literal (Numeric 20.0 Percent)) , KeyValArg (Identifier "dy") (Literal (Numeric 60.0 Percent)) , NormalArg (Block (Content [ Text "Second" ])) ]) , SoftBreak , Code "typ/bugs/place-base-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , KeyValArg (Identifier "dx") (Literal (Numeric 25.0 Percent)) , KeyValArg (Identifier "dy") (Literal (Numeric 25.0 Percent)) , NormalArg (Block (Content [ Text "Third" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), place(alignment: right, body: text(body: [First]), dx: -70%, dy: 20%), text(body: [ ]), place(alignment: left, body: text(body: [Second]), dx: 20%, dy: 60%), text(body: [ ]), place(alignment: Axes(center, horizon), body: text(body: [Third]), dx: 25%, dy: 25%), parbreak() }) typst-0.8.0.2/test/typ/bugs/place-base-00.typ0000644000000000000000000000025407346545000016736 0ustar0000000000000000#set page(height: 80pt, margin: 0pt) #place(right, dx: -70%, dy: 20%, [First]) #place(left, dx: 20%, dy: 60%, [Second]) #place(center + horizon, dx: 25%, dy: 25%, [Third]) typst-0.8.0.2/test/typ/bugs/smartquotes-in-outline-00.out0000644000000000000000000000475107346545000021413 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/smartquotes-in-outline-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/smartquotes-in-outline-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/smartquotes-in-outline-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/smartquotes-in-outline-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 15.0 Em)) ]) , SoftBreak , Code "typ/bugs/smartquotes-in-outline-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak , Heading 1 [ Quote '"' , Text "This" , Quote '"' , Space , Quote '"' , Text "is" , Quote '"' , Space , Quote '"' , Text "a" , Quote '"' , Space , Quote '"' , Text "test" , Quote '"' ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), outline(), parbreak(), heading(body: text(body: [“This” “is” “a” “test”]), level: 1) }) typst-0.8.0.2/test/typ/bugs/smartquotes-in-outline-00.typ0000644000000000000000000000007407346545000021412 0ustar0000000000000000#set page(width: 15em) #outline() = "This" "is" "a" "test" typst-0.8.0.2/test/typ/bugs/square-base-00.out0000644000000000000000000000477707346545000017163 0ustar0000000000000000--- parse tree --- [ Code "typ/bugs/square-base-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/bugs/square-base-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/bugs/square-base-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/bugs/square-base-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) ]) , SoftBreak , Code "typ/bugs/square-base-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 60.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 80.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), square(body: rect(height: 80%, width: 60%), width: 40%), parbreak() }) typst-0.8.0.2/test/typ/bugs/square-base-00.typ0000644000000000000000000000011307346545000017144 0ustar0000000000000000#set page(height: 80pt) #square(width: 40%, rect(width: 60%, height: 80%)) typst-0.8.0.2/test/typ/0000755000000000000000000000000007346545000013026 5ustar0000000000000000typst-0.8.0.2/test/typ/coma-00.out0000644000000000000000000002400307346545000014712 0ustar0000000000000000--- parse tree --- [ Code "typ/coma-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/coma-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/coma-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/coma-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 450.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 1.0 Cm)) ]) , ParBreak , Strong [ Text "Technische" , Space , Text "Universit\228t" , Space , Text "Berlin" ] , Space , Code "typ/coma-00.typ" ( line 4 , column 34 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Strong [ Text "WiSe" , Space , Text "2019" , Text "/" , Text "2020" ] , Space , HardBreak , Strong [ Text "Fakult\228t" , Space , Text "II," , Space , Text "Institut" , Space , Text "for" , Space , Text "Mathematik" ] , Space , Code "typ/coma-00.typ" ( line 5 , column 41 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "Woche" , Space , Text "3" , Space , HardBreak , Text "Sekretariat" , Space , Text "MA" , Space , HardBreak , Text "Dr" , Text "." , Space , Text "Max" , Space , Text "Mustermann" , Space , HardBreak , Text "Ola" , Space , Text "Nordmann," , Space , Text "John" , Space , Text "Doe" , ParBreak , Code "typ/coma-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Mm)) ]) , SoftBreak , Code "typ/coma-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ SoftBreak , Code "typ/coma-00.typ" ( line 12 , column 4 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "leading") (Literal (Numeric 3.0 Mm)) ]) , SoftBreak , Code "typ/coma-00.typ" ( line 13 , column 4 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 1.2 Em)) , BlockArg [ Strong [ Text "3" , Text "." , Space , Text "\220bungsblatt" , Space , Text "Computerorientierte" , Space , Text "Mathematik" , Space , Text "II" ] ] ]) , Space , HardBreak , Strong [ Text "Abgabe" , Text ":" , Space , Text "03" , Text "." , Text "05" , Text "." , Text "2019" ] , Space , Text "(" , Text "bis" , Space , Text "10" , Text ":" , Text "10" , Space , Text "Uhr" , Space , Text "in" , Space , Text "MA" , Space , Text "001)" , Space , HardBreak , Strong [ Text "Alle" , Space , Text "Antworten" , Space , Text "sind" , Space , Text "zu" , Space , Text "beweisen" , Text "." ] , ParBreak ] ]) , ParBreak , Strong [ Text "1" , Text "." , Space , Text "Aufgabe" ] , Space , Code "typ/coma-00.typ" ( line 18 , column 15 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "(" , Text "1" , Space , Text "+" , Space , Text "1" , Space , Text "+" , Space , Text "2" , Space , Text "Punkte)" , ParBreak , Text "Ein" , Space , Emph [ Text "Bin\228rbaum" ] , Space , Text "ist" , Space , Text "ein" , Space , Text "Wurzelbaum," , Space , Text "in" , Space , Text "dem" , Space , Text "jeder" , Space , Text "Knoten" , Space , Text "\8804" , Space , Text "2" , Space , Text "Kinder" , Space , Text "hat" , Text "." , SoftBreak , Text "Die" , Space , Text "Tiefe" , Space , Text "eines" , Space , Text "Knotens" , Space , Emph [ Text "v" ] , Space , Text "ist" , Space , Text "die" , Space , Text "L\228nge" , Space , Text "des" , Space , Text "eindeutigen" , Space , Text "Weges" , Space , Text "von" , Space , Text "der" , Space , Text "Wurzel" , SoftBreak , Text "zu" , Space , Emph [ Text "v" ] , Text "," , Space , Text "und" , Space , Text "die" , Space , Text "H\246he" , Space , Text "von" , Space , Emph [ Text "v" ] , Space , Text "ist" , Space , Text "die" , Space , Text "L\228nge" , Space , Text "eines" , Space , Text "l\228ngsten" , Space , Text "(" , Text "absteigenden)" , Space , Text "Weges" , SoftBreak , Text "von" , Space , Emph [ Text "v" ] , Space , Text "zu" , Space , Text "einem" , Space , Text "Blatt" , Text "." , Space , Text "Die" , Space , Text "H\246he" , Space , Text "des" , Space , Text "Baumes" , Space , Text "ist" , Space , Text "die" , Space , Text "H\246he" , Space , Text "der" , Space , Text "Wurzel" , Text "." , ParBreak , Code "typ/coma-00.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/graph.png")) , KeyValArg (Identifier "width") (Literal (Numeric 75.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), strong(body: text(body: [Technische Universität Berlin])), text(body: [ ]), h(amount: 1.0fr), text(body: [ ]), strong(body: text(body: [WiSe 2019/2020])), text(body: [ ]), linebreak(), strong(body: text(body: [Fakultät II, Institut for Mathematik])), text(body: [ ]), h(amount: 1.0fr), text(body: [ Woche 3 ]), linebreak(), text(body: [Sekretariat MA ]), linebreak(), text(body: [Dr. Max Mustermann ]), linebreak(), text(body: [Ola Nordmann, John Doe]), parbreak(), v(amount: 3.0mm), text(body: [ ]), align(alignment: center, body: { text(body: [ ]), text(body: [ ]), text(body: strong(body: text(body: [3. Übungsblatt Computerorientierte Mathematik II])), size: 1.2em), text(body: [ ]), linebreak(), strong(body: text(body: [Abgabe: 03.05.2019])), text(body: [ (bis 10:10 Uhr in MA 001) ]), linebreak(), strong(body: text(body: [Alle Antworten sind zu beweisen.])), parbreak() }), parbreak(), strong(body: text(body: [1. Aufgabe])), text(body: [ ]), h(amount: 1.0fr), text(body: [ (1 + 1 + 2 Punkte)]), parbreak(), text(body: [Ein ]), emph(body: text(body: [Binärbaum])), text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens ]), emph(body: text(body: [v])), text(body: [ ist die Länge des eindeutigen Weges von der Wurzel zu ]), emph(body: text(body: [v])), text(body: [, und die Höhe von ]), emph(body: text(body: [v])), text(body: [ ist die Länge eines längsten (absteigenden) Weges von ]), emph(body: text(body: [v])), text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), parbreak(), align(alignment: center, body: image(source: "/graph.png", width: 75%)), parbreak() }) typst-0.8.0.2/test/typ/coma-00.typ0000644000000000000000000000147207346545000014724 0ustar0000000000000000#set page(width: 450pt, margin: 1cm) *Technische Universität Berlin* #h(1fr) *WiSe 2019/2020* \ *Fakultät II, Institut for Mathematik* #h(1fr) Woche 3 \ Sekretariat MA \ Dr. Max Mustermann \ Ola Nordmann, John Doe #v(3mm) #align(center)[ #set par(leading: 3mm) #text(1.2em)[*3. Übungsblatt Computerorientierte Mathematik II*] \ *Abgabe: 03.05.2019* (bis 10:10 Uhr in MA 001) \ *Alle Antworten sind zu beweisen.* ] *1. Aufgabe* #h(1fr) (1 + 1 + 2 Punkte) Ein _Binärbaum_ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens _v_ ist die Länge des eindeutigen Weges von der Wurzel zu _v_, und die Höhe von _v_ ist die Länge eines längsten (absteigenden) Weges von _v_ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel. #align(center, image("/graph.png", width: 75%)) typst-0.8.0.2/test/typ/compiler/0000755000000000000000000000000007346545000014640 5ustar0000000000000000typst-0.8.0.2/test/typ/compiler/array-00.out0000644000000000000000000000602407346545000016726 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/array-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 150.0 Pt)) ]) , ParBreak , Comment , Code "typ/compiler/array-00.typ" ( line 7 , column 2 ) (Array []) , ParBreak , Comment , Code "typ/compiler/array-00.typ" ( line 10 , column 2 ) (Literal (Int 1)) , ParBreak , Comment , Code "typ/compiler/array-00.typ" ( line 13 , column 2 ) (Array [ Reg (Negated (Literal (Int 1))) ]) , ParBreak , Comment , Code "typ/compiler/array-00.typ" ( line 16 , column 2 ) (Array [ Reg (Literal (Boolean True)) , Reg (Literal (Boolean False)) ]) , ParBreak , Comment , Code "typ/compiler/array-00.typ" ( line 19 , column 2 ) (Array [ Reg (Literal (String "1")) , Reg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "002")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [()]), parbreak(), text(body: [1]), parbreak(), text(body: [(-1)]), parbreak(), text(body: [(true, false)]), parbreak(), text(body: [("1", rgb(0%,0%,0%,100%))]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-00.typ0000644000000000000000000000041307346545000016727 0ustar0000000000000000// Ref: true #set page(width: 150pt) // Empty. #() // Not an array, just a parenthesized expression. #(1) // One item and trailing comma. #(-1,) // No trailing comma. #(true, false) // Multiple lines and items and trailing comma. #("1" , rgb("002") ,) typst-0.8.0.2/test/typ/compiler/array-01.out0000644000000000000000000000504707346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Array [])) []) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compiler/array-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Array [ Reg (Literal (String "A")) , Reg (Literal (String "B")) , Reg (Literal (String "C")) ])) []) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-01.typ0000644000000000000000000000011607346545000016730 0ustar0000000000000000// Test the `len` method. #test(().len(), 0) #test(("A", "B", "C").len(), 3) typst-0.8.0.2/test/typ/compiler/array-02.out0000644000000000000000000000557107346545000016736 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-02.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "array"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) , Assign (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 1)) ]) (Plus (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 1)) ]) (Plus (Literal (Int 5)) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 0)) ]))) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "array")) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 8)) ]) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-02.typ0000644000000000000000000000016407346545000016734 0ustar0000000000000000// Test lvalue and rvalue access. #{ let array = (1, 2) array.at(1) += 5 + array.at(0) test(array, (1, 8)) } typst-0.8.0.2/test/typ/compiler/array-03.out0000644000000000000000000000605107346545000016731 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-03.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "array"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) , Assign (FuncCall (FieldAccess (Ident (Identifier "first")) (Ident (Identifier "array"))) []) (Literal (Int 7)) , Assign (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 1)) ]) (Times (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 1)) ]) (Literal (Int 8))) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "array")) , NormalArg (Array [ Reg (Literal (Int 7)) , Reg (Literal (Int 16)) , Reg (Literal (Int 3)) ]) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-03.typ0000644000000000000000000000020007346545000016724 0ustar0000000000000000// Test different lvalue method. #{ let array = (1, 2, 3) array.first() = 7 array.at(1) *= 8 test(array, (7, 16, 3)) } typst-0.8.0.2/test/typ/compiler/array-04.out0000644000000000000000000000002107346545000016721 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-04.typ0000644000000000000000000000021707346545000016735 0ustar0000000000000000// Test rvalue out of bounds. // Error: 2-17 array index out of bounds (index: 5, len: 3) and no default value was specified #(1, 2, 3).at(5) typst-0.8.0.2/test/typ/compiler/array-05.out0000644000000000000000000000002107346545000016722 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-05.typ0000644000000000000000000000025707346545000016742 0ustar0000000000000000// Test lvalue out of bounds. #{ let array = (1, 2, 3) // Error: 3-14 array index out of bounds (index: 3, len: 3) and no default value was specified array.at(3) = 5 } typst-0.8.0.2/test/typ/compiler/array-06.out0000644000000000000000000000570707346545000016743 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-06.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Literal (Int 2)) , KeyValArg (Identifier "default") (Literal (Int 5)) ]) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compiler/array-06.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Literal (Int 3)) , KeyValArg (Identifier "default") (Literal (Int 5)) ]) , NormalArg (Literal (Int 5)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-06.typ0000644000000000000000000000014407346545000016736 0ustar0000000000000000// Test default value. #test((1, 2, 3).at(2, default: 5), 3) #test((1, 2, 3).at(3, default: 5), 5) typst-0.8.0.2/test/typ/compiler/array-07.out0000644000000000000000000000002107346545000016724 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-07.typ0000644000000000000000000000016207346545000016737 0ustar0000000000000000// Test bad lvalue. // Error: 2:3-2:14 cannot mutate a temporary value #let array = (1, 2, 3) #(array.len() = 4) typst-0.8.0.2/test/typ/compiler/array-08.out0000644000000000000000000000002107346545000016725 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-08.typ0000644000000000000000000000016307346545000016741 0ustar0000000000000000// Test bad lvalue. // Error: 2:3-2:15 type array has no method `yolo` #let array = (1, 2, 3) #(array.yolo() = 4) typst-0.8.0.2/test/typ/compiler/array-09.out0000644000000000000000000000774507346545000016752 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-09.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "array"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 1)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Negated (Literal (Int 1))) ]) , NormalArg (Literal (Int 4)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Negated (Literal (Int 2))) ]) , NormalArg (Literal (Int 3)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Negated (Literal (Int 3))) ]) , NormalArg (Literal (Int 2)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "array"))) [ NormalArg (Negated (Literal (Int 4))) ]) , NormalArg (Literal (Int 1)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-09.typ0000644000000000000000000000026207346545000016742 0ustar0000000000000000// Test negative indices. #{ let array = (1, 2, 3, 4) test(array.at(0), 1) test(array.at(-1), 4) test(array.at(-2), 3) test(array.at(-3), 2) test(array.at(-4), 1) } typst-0.8.0.2/test/typ/compiler/array-10.out0000644000000000000000000000704507346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-10.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "first")) (Array [ Reg (Literal (Int 1)) ])) []) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/array-10.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Array [ Reg (Literal (Int 2)) ])) []) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/array-10.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "first")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) []) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/array-10.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) []) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-10.typ0000644000000000000000000000021407346545000016727 0ustar0000000000000000// The the `first` and `last` methods. #test((1,).first(), 1) #test((2,).last(), 2) #test((1, 2, 3).first(), 1) #test((1, 2, 3).last(), 3) typst-0.8.0.2/test/typ/compiler/array-11.out0000644000000000000000000000002107346545000016717 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-11.typ0000644000000000000000000000005307346545000016731 0ustar0000000000000000// Error: 2-12 array is empty #().first() typst-0.8.0.2/test/typ/compiler/array-12.out0000644000000000000000000000002107346545000016720 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-12.typ0000644000000000000000000000005207346545000016731 0ustar0000000000000000// Error: 2-11 array is empty #().last() typst-0.8.0.2/test/typ/compiler/array-13.out0000644000000000000000000001025307346545000016731 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-13.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-13.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-13.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-13.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "tasks"))) (Dict [ Reg ( Ident (Identifier "a") , Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ] ) , Reg ( Ident (Identifier "b") , Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ] ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "pop")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "tasks"))) [ NormalArg (Literal (String "a")) ])) []) , NormalArg (Literal (Int 3)) ] , FuncCall (FieldAccess (Ident (Identifier "push")) (FieldAccess (Ident (Identifier "b")) (Ident (Identifier "tasks")))) [ NormalArg (Literal (Int 7)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "a")) (Ident (Identifier "tasks"))) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "tasks"))) [ NormalArg (Literal (String "b")) ]) , NormalArg (Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) , Reg (Literal (Int 7)) ]) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-13.typ0000644000000000000000000000030407346545000016732 0ustar0000000000000000// Test the `push` and `pop` methods. #{ let tasks = (a: (1, 2, 3), b: (4, 5, 6)) test(tasks.at("a").pop(), 3) tasks.b.push(7) test(tasks.a, (1, 2)) test(tasks.at("b"), (4, 5, 6, 7)) } typst-0.8.0.2/test/typ/compiler/array-14.out0000644000000000000000000000642207346545000016735 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-14.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-14.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-14.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-14.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "array"))) (Array [ Reg (Literal (Int 0)) , Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) ]) , FuncCall (FieldAccess (Ident (Identifier "insert")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 3)) , NormalArg (Literal (Int 3)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "array")) , NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 6)) ]) ] , FuncCall (FieldAccess (Ident (Identifier "remove")) (Ident (Identifier "array"))) [ NormalArg (Literal (Int 1)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "array")) , NormalArg (Array [ Reg (Literal (Int 0)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) ]) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [1]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-14.typ0000644000000000000000000000025507346545000016740 0ustar0000000000000000// Test the `insert` and `remove` methods. #{ let array = (0, 1, 2, 4, 5) array.insert(3, 3) test(array, range(6)) array.remove(1) test(array, (0, 2, 3, 4, 5)) } typst-0.8.0.2/test/typ/compiler/array-15.out0000644000000000000000000000002107346545000016723 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-15.typ0000644000000000000000000000012107346545000016731 0ustar0000000000000000// Error: 2:16-2:18 missing argument: index #let numbers = () #numbers.insert() typst-0.8.0.2/test/typ/compiler/array-16.out0000644000000000000000000001631507346545000016741 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-16.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-16.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-16.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-16.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ])) [ NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 6)) ]) , NormalArg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ])) [ NormalArg (Literal (Int 4)) , KeyValArg (Identifier "count") (Literal (Int 3)) ]) , NormalArg (Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ])) [ NormalArg (Negated (Literal (Int 5))) , KeyValArg (Identifier "count") (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Literal (Int 2)) , NormalArg (Negated (Literal (Int 2))) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Negated (Literal (Int 2))) , NormalArg (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Literal (Int 2)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (Negated (Literal (Int 3))) , NormalArg (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) ]) , SoftBreak , Code "typ/compiler/array-16.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "slice")) (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "ABCD"))) [ NormalArg (Literal (String "")) ])) [ NormalArg (Literal (Int 1)) , NormalArg (Negated (Literal (Int 1))) ])) [ NormalArg (Literal (String "-")) ]) , NormalArg (Literal (String "A-B-C-D")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-16.typ0000644000000000000000000000055707346545000016747 0ustar0000000000000000// Test the `slice` method. #test((1, 2, 3, 4).slice(2), (3, 4)) #test(range(10).slice(2, 6), (2, 3, 4, 5)) #test(range(10).slice(4, count: 3), (4, 5, 6)) #test(range(10).slice(-5, count: 2), (5, 6)) #test((1, 2, 3).slice(2, -2), ()) #test((1, 2, 3).slice(-2, 2), (2,)) #test((1, 2, 3).slice(-3, 2), (1, 2)) #test("ABCD".split("").slice(1, -1).join("-"), "A-B-C-D") typst-0.8.0.2/test/typ/compiler/array-17.out0000644000000000000000000000002107346545000016725 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-17.typ0000644000000000000000000000013507346545000016740 0ustar0000000000000000// Error: 2-30 array index out of bounds (index: 12, len: 10) #range(10).slice(9, count: 3) typst-0.8.0.2/test/typ/compiler/array-18.out0000644000000000000000000000002107346545000016726 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-18.typ0000644000000000000000000000012607346545000016741 0ustar0000000000000000// Error: 2-24 array index out of bounds (index: -4, len: 3) #(1, 2, 3).slice(0, -4) typst-0.8.0.2/test/typ/compiler/array-19.out0000644000000000000000000001026007346545000016735 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-19.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-19.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-19.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-19.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "position")) (Array [ Reg (Literal (String "Hi")) , Reg (Literal (String "\10084\65039")) , Reg (Literal (String "Love")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Equals (Ident (Identifier "s")) (Literal (String "\10084\65039")))) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/array-19.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "position")) (Array [ Reg (Literal (String "Bye")) , Reg (Literal (String "\128152")) , Reg (Literal (String "Apart")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Equals (Ident (Identifier "s")) (Literal (String "\10084\65039")))) ]) , NormalArg (Literal None) ]) , SoftBreak , Code "typ/compiler/array-19.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "position")) (Array [ Reg (Literal (String "A")) , Reg (Literal (String "B")) , Reg (Literal (String "CDEF")) , Reg (Literal (String "G")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "v") ] (GreaterThan (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "v"))) []) (Literal (Int 2)))) ]) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-19.typ0000644000000000000000000000034007346545000016740 0ustar0000000000000000// Test the `position` method. #test(("Hi", "❤️", "Love").position(s => s == "❤️"), 1) #test(("Bye", "💘", "Apart").position(s => s == "❤️"), none) #test(("A", "B", "CDEF", "G").position(v => v.len() > 2), 2) typst-0.8.0.2/test/typ/compiler/array-20.out0000644000000000000000000000753507346545000016740 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-20.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-20.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-20.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-20.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "filter")) (Array [])) [ NormalArg (FieldAccess (Ident (Identifier "even")) (Ident (Identifier "calc"))) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-20.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "filter")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) [ NormalArg (FieldAccess (Ident (Identifier "even")) (Ident (Identifier "calc"))) ]) , NormalArg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 4)) ]) ]) , SoftBreak , Code "typ/compiler/array-20.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "filter")) (Array [ Reg (Literal (Int 7)) , Reg (Literal (Int 3)) , Reg (Literal (Int 2)) , Reg (Literal (Int 5)) , Reg (Literal (Int 1)) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "x") ] (LessThan (Ident (Identifier "x")) (Literal (Int 5)))) ]) , NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 2)) , Reg (Literal (Int 1)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-20.typ0000644000000000000000000000024107346545000016730 0ustar0000000000000000// Test the `filter` method. #test(().filter(calc.even), ()) #test((1, 2, 3, 4).filter(calc.even), (2, 4)) #test((7, 3, 2, 5, 1).filter(x => x < 5), (3, 2, 1)) typst-0.8.0.2/test/typ/compiler/array-21.out0000644000000000000000000000554007346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-21.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-21.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-21.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-21.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "map")) (Array [])) [ NormalArg (FuncExpr [ NormalParam (Identifier "x") ] (Times (Ident (Identifier "x")) (Literal (Int 2)))) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-21.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "map")) (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "x") ] (Times (Ident (Identifier "x")) (Literal (Int 2)))) ]) , NormalArg (Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 6)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-21.typ0000644000000000000000000000013707346545000016735 0ustar0000000000000000// Test the `map` method. #test(().map(x => x * 2), ()) #test((2, 3).map(x => x * 2), (4, 6)) typst-0.8.0.2/test/typ/compiler/array-22.out0000644000000000000000000000572507346545000016741 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-22.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-22.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-22.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-22.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "fold")) (Array [])) [ NormalArg (Literal (String "hi")) , NormalArg (Ident (Identifier "grid")) ]) , NormalArg (Literal (String "hi")) ]) , SoftBreak , Code "typ/compiler/array-22.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "fold")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) [ NormalArg (Literal (Int 0)) , NormalArg (FuncExpr [ NormalParam (Identifier "s") , NormalParam (Identifier "x") ] (Plus (Ident (Identifier "s")) (Ident (Identifier "x")))) ]) , NormalArg (Literal (Int 10)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-22.typ0000644000000000000000000000015607346545000016737 0ustar0000000000000000// Test the `fold` method. #test(().fold("hi", grid), "hi") #test((1, 2, 3, 4).fold(0, (s, x) => s + x), 10) typst-0.8.0.2/test/typ/compiler/array-23.out0000644000000000000000000000002107346545000016722 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-23.typ0000644000000000000000000000010407346545000016731 0ustar0000000000000000// Error: 20-22 unexpected argument #(1, 2, 3).fold(0, () => none) typst-0.8.0.2/test/typ/compiler/array-24.out0000644000000000000000000000602307346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-24.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-24.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-24.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-24.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sum")) (Array [])) [ KeyValArg (Identifier "default") (Literal (Int 0)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compiler/array-24.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sum")) (Array [])) [ KeyValArg (Identifier "default") (Block (Content [])) ]) , NormalArg (Block (Content [])) ]) , SoftBreak , Code "typ/compiler/array-24.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sum")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) []) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-24.typ0000644000000000000000000000016107346545000016735 0ustar0000000000000000// Test the `sum` method. #test(().sum(default: 0), 0) #test(().sum(default: []), []) #test((1, 2, 3).sum(), 6) typst-0.8.0.2/test/typ/compiler/array-25.out0000644000000000000000000000002107346545000016724 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-25.typ0000644000000000000000000000011607346545000016736 0ustar0000000000000000// Error: 2-10 cannot calculate sum of empty array with no default #().sum() typst-0.8.0.2/test/typ/compiler/array-26.out0000644000000000000000000000707207346545000016742 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-26.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-26.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-26.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-26.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "product")) (Array [])) [ KeyValArg (Identifier "default") (Literal (Int 0)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compiler/array-26.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "product")) (Array [])) [ KeyValArg (Identifier "default") (Block (Content [])) ]) , NormalArg (Block (Content [])) ]) , SoftBreak , Code "typ/compiler/array-26.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "product")) (Array [ Reg (Block (Content [ Text "ab" ])) , Reg (Literal (Int 3)) ])) []) , NormalArg (Times (Block (Content [ Text "ab" ])) (Literal (Int 3))) ]) , SoftBreak , Code "typ/compiler/array-26.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "product")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ])) []) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-26.typ0000644000000000000000000000024407346545000016741 0ustar0000000000000000// Test the `product` method. #test(().product(default: 0), 0) #test(().product(default: []), []) #test(([ab], 3).product(), [ab]*3) #test((1, 2, 3).product(), 6) typst-0.8.0.2/test/typ/compiler/array-27.out0000644000000000000000000000002107346545000016726 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-27.typ0000644000000000000000000000012607346545000016741 0ustar0000000000000000// Error: 2-14 cannot calculate product of empty array with no default #().product() typst-0.8.0.2/test/typ/compiler/array-28.out0000644000000000000000000000440007346545000016734 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-28.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-28.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-28.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-28.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rev")) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 3)) ])) []) , NormalArg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 1)) , Reg (Literal (Int 0)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-28.typ0000644000000000000000000000007407346545000016744 0ustar0000000000000000// Test the `rev` method. #test(range(3).rev(), (2, 1, 0)) typst-0.8.0.2/test/typ/compiler/array-29.out0000644000000000000000000000733307346545000016745 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-29.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-29.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-29.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-29.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "join")) (Array [])) []) , NormalArg (Literal None) ]) , SoftBreak , Code "typ/compiler/array-29.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "join")) (Array [ Reg (Literal (Int 1)) ])) []) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/array-29.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "join")) (Array [ Reg (Literal (String "a")) , Reg (Literal (String "b")) , Reg (Literal (String "c")) ])) []) , NormalArg (Literal (String "abc")) ]) , SoftBreak , Code "typ/compiler/array-29.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Plus (Literal (String "(")) (FuncCall (FieldAccess (Ident (Identifier "join")) (Array [ Reg (Literal (String "a")) , Reg (Literal (String "b")) , Reg (Literal (String "c")) ])) [ NormalArg (Literal (String ", ")) ])) (Literal (String ")"))) , NormalArg (Literal (String "(a, b, c)")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-29.typ0000644000000000000000000000025107346545000016742 0ustar0000000000000000// Test the `join` method. #test(().join(), none) #test((1,).join(), 1) #test(("a", "b", "c").join(), "abc") #test("(" + ("a", "b", "c").join(", ") + ")", "(a, b, c)") typst-0.8.0.2/test/typ/compiler/array-30.out0000644000000000000000000000002107346545000016720 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-30.typ0000644000000000000000000000010707346545000016732 0ustar0000000000000000// Error: 2-22 cannot join boolean with boolean #(true, false).join() typst-0.8.0.2/test/typ/compiler/array-31.out0000644000000000000000000000002107346545000016721 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-31.typ0000644000000000000000000000010407346545000016730 0ustar0000000000000000// Error: 2-20 cannot join string with integer #("a", "b").join(1) typst-0.8.0.2/test/typ/compiler/array-32.out0000644000000000000000000000466707346545000016746 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-32.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-32.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-32.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/array-32.typ" ( line 4 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "join")) (Array [ Reg (Block (Content [ Text "One" ])) , Reg (Block (Content [ Text "Two" ])) , Reg (Block (Content [ Text "Three" ])) ])) [ NormalArg (Block (Content [ Text "," , Space ])) , KeyValArg (Identifier "last") (Block (Content [ Space , Text "and" , Space ])) ]) , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [One]), text(body: [, ]), text(body: [Two]), text(body: [ and ]), text(body: [Three]), text(body: [.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-32.typ0000644000000000000000000000013307346545000016733 0ustar0000000000000000// Test joining content. // Ref: true #([One], [Two], [Three]).join([, ], last: [ and ]). typst-0.8.0.2/test/typ/compiler/array-33.out0000644000000000000000000002415207346545000016736 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-33.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-33.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-33.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-33.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [])) []) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [])) [ KeyValArg (Identifier "key") (FuncExpr [ NormalParam (Identifier "x") ] (Ident (Identifier "x"))) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Times (Array [ Reg (Literal (Boolean True)) , Reg (Literal (Boolean False)) ]) (Literal (Int 10)))) []) , NormalArg (Plus (Times (Array [ Reg (Literal (Boolean False)) ]) (Literal (Int 10))) (Times (Array [ Reg (Literal (Boolean True)) ]) (Literal (Int 10)))) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (String "it")) , Reg (Literal (String "the")) , Reg (Literal (String "hi")) , Reg (Literal (String "text")) ])) []) , NormalArg (Array [ Reg (Literal (String "hi")) , Reg (Literal (String "it")) , Reg (Literal (String "text")) , Reg (Literal (String "the")) ]) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (String "I")) , Reg (Literal (String "the")) , Reg (Literal (String "hi")) , Reg (Literal (String "text")) ])) [ KeyValArg (Identifier "key") (FuncExpr [ NormalParam (Identifier "x") ] (Ident (Identifier "x"))) ]) , NormalArg (Array [ Reg (Literal (String "I")) , Reg (Literal (String "hi")) , Reg (Literal (String "text")) , Reg (Literal (String "the")) ]) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (String "I")) , Reg (Literal (String "the")) , Reg (Literal (String "hi")) , Reg (Literal (String "text")) ])) [ KeyValArg (Identifier "key") (FuncExpr [ NormalParam (Identifier "x") ] (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "x"))) [])) ]) , NormalArg (Array [ Reg (Literal (String "I")) , Reg (Literal (String "hi")) , Reg (Literal (String "the")) , Reg (Literal (String "text")) ]) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 1)) , Reg (Literal (Int 3)) , Reg (Literal (Int 10)) , Reg (Literal (Int 5)) , Reg (Literal (Int 8)) , Reg (Literal (Int 6)) , Reg (Negated (Literal (Int 7))) , Reg (Literal (Int 2)) ])) []) , NormalArg (Array [ Reg (Negated (Literal (Int 7))) , Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) , Reg (Literal (Int 8)) , Reg (Literal (Int 10)) ]) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 1)) , Reg (Literal (Int 3)) , Reg (Negated (Literal (Int 10))) , Reg (Negated (Literal (Int 5))) , Reg (Literal (Int 8)) , Reg (Literal (Int 6)) , Reg (Negated (Literal (Int 7))) , Reg (Literal (Int 2)) ])) [ KeyValArg (Identifier "key") (FuncExpr [ NormalParam (Identifier "x") ] (Ident (Identifier "x"))) ]) , NormalArg (Array [ Reg (Negated (Literal (Int 10))) , Reg (Negated (Literal (Int 7))) , Reg (Negated (Literal (Int 5))) , Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 6)) , Reg (Literal (Int 8)) ]) ]) , SoftBreak , Code "typ/compiler/array-33.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "sorted")) (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 1)) , Reg (Literal (Int 3)) , Reg (Negated (Literal (Int 10))) , Reg (Negated (Literal (Int 5))) , Reg (Literal (Int 8)) , Reg (Literal (Int 6)) , Reg (Negated (Literal (Int 7))) , Reg (Literal (Int 2)) ])) [ KeyValArg (Identifier "key") (FuncExpr [ NormalParam (Identifier "x") ] (Times (Ident (Identifier "x")) (Ident (Identifier "x")))) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Negated (Literal (Int 5))) , Reg (Literal (Int 6)) , Reg (Negated (Literal (Int 7))) , Reg (Literal (Int 8)) , Reg (Negated (Literal (Int 10))) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-33.typ0000644000000000000000000000122607346545000016740 0ustar0000000000000000// Test the `sorted` method. #test(().sorted(), ()) #test(().sorted(key: x => x), ()) #test(((true, false) * 10).sorted(), (false,) * 10 + (true,) * 10) #test(("it", "the", "hi", "text").sorted(), ("hi", "it", "text", "the")) #test(("I", "the", "hi", "text").sorted(key: x => x), ("I", "hi", "text", "the")) #test(("I", "the", "hi", "text").sorted(key: x => x.len()), ("I", "hi", "the", "text")) #test((2, 1, 3, 10, 5, 8, 6, -7, 2).sorted(), (-7, 1, 2, 2, 3, 5, 6, 8, 10)) #test((2, 1, 3, -10, -5, 8, 6, -7, 2).sorted(key: x => x), (-10, -7, -5, 1, 2, 2, 3, 6, 8)) #test((2, 1, 3, -10, -5, 8, 6, -7, 2).sorted(key: x => x * x), (1, 2, 2, 3, -5, 6, -7, 8, -10)) typst-0.8.0.2/test/typ/compiler/array-34.out0000644000000000000000000001442107346545000016735 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/array-34.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/array-34.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/array-34.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/array-34.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [])) [ NormalArg (Array []) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) ])) [ NormalArg (Array []) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) ])) [ NormalArg (Array [ Reg (Literal (Int 2)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) ]) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) [ NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 3)) ]) , Reg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 4)) ]) ]) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) [ NormalArg (Array [ Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 5)) ]) , Reg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 6)) ]) ]) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) , Reg (Literal (Int 3)) ])) [ NormalArg (Array [ Reg (Literal (Int 4)) , Reg (Literal (Int 5)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) , Reg (Literal (Int 4)) ]) , Reg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 5)) ]) ]) ]) , SoftBreak , Code "typ/compiler/array-34.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "zip")) (Array [ Reg (Literal (Int 1)) , Reg (Literal (String "hi")) ])) [ NormalArg (Array [ Reg (Literal (Boolean True)) , Reg (Literal (Boolean False)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Boolean True)) ]) , Reg (Array [ Reg (Literal (String "hi")) , Reg (Literal (Boolean False)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/array-34.typ0000644000000000000000000000047707346545000016750 0ustar0000000000000000// Test the `zip` method. #test(().zip(()), ()) #test((1,).zip(()), ()) #test((1,).zip((2,)), ((1, 2),)) #test((1, 2).zip((3, 4)), ((1, 3), (2, 4))) #test((1, 2, 3, 4).zip((5, 6)), ((1, 5), (2, 6))) #test(((1, 2), 3).zip((4, 5)), (((1, 2), 4), (3, 5))) #test((1, "hi").zip((true, false)), ((1, true), ("hi", false))) typst-0.8.0.2/test/typ/compiler/array-35.out0000644000000000000000000000002107346545000016725 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-35.typ0000644000000000000000000000011507346545000016736 0ustar0000000000000000// Error: 32-37 cannot divide by zero #(1, 2, 0, 3).sorted(key: x => 5 / x) typst-0.8.0.2/test/typ/compiler/array-36.out0000644000000000000000000000002107346545000016726 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-36.typ0000644000000000000000000000011307346545000016735 0ustar0000000000000000// Error: 2-26 cannot order content and content #([Hi], [There]).sorted() typst-0.8.0.2/test/typ/compiler/array-37.out0000644000000000000000000000002107346545000016727 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-37.typ0000644000000000000000000000016307346545000016743 0ustar0000000000000000// Error: 2-18 array index out of bounds (index: -4, len: 3) and no default value was specified #(1, 2, 3).at(-4) typst-0.8.0.2/test/typ/compiler/array-38.out0000644000000000000000000000002107346545000016730 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/array-38.typ0000644000000000000000000000113107346545000016740 0ustar0000000000000000// Error: 4 expected closing paren #{(} // Error: 3-4 unexpected closing paren #{)} // Error: 4-6 unexpected end of block comment #(1*/2) // Error: 6-8 invalid number suffix: u #(1, 1u 2) // Error: 3-4 unexpected comma #(,1) // Missing expression makes named pair incomplete, making this an empty array. // Error: 5 expected expression #(a:) // Named pair after this is already identified as an array. // Error: 6-10 expected expression, found named pair #(1, b: 2) // Keyed pair after this is already identified as an array. // Error: 6-14 expected expression, found keyed pair #(1, "key": 2) typst-0.8.0.2/test/typ/compiler/bench-00.out0000644000000000000000000003033107346545000016665 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/bench-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/bench-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/bench-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/bench-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 450.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 1.0 Cm)) ]) , ParBreak , Comment , Code "typ/compiler/bench-00.typ" ( line 8 , column 2 ) (Let (BasicBind (Just (Identifier "city"))) (Literal (String "Berlin"))) , ParBreak , Comment , Comment , Comment , Code "typ/compiler/bench-00.typ" ( line 13 , column 2 ) (Let (BasicBind (Just (Identifier "university"))) (Block (Content [ Strong [ Text "Technische" , Space , Text "Universit\228t" , Space , Code "typ/compiler/bench-00.typ" ( line 13 , column 45 ) (Ident (Identifier "city")) ] ]))) , SoftBreak , Code "typ/compiler/bench-00.typ" ( line 14 , column 2 ) (Let (BasicBind (Just (Identifier "faculty"))) (Block (Content [ Strong [ Text "Fakult\228t" , Space , Text "II," , Space , Text "Institut" , Space , Text "for" , Space , Text "Mathematik" ] ]))) , ParBreak , Comment , Comment , Comment , Code "typ/compiler/bench-00.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "box")) [ BlockArg [ SoftBreak , Comment , Space , Code "typ/compiler/bench-00.typ" ( line 21 , column 4 ) (Ident (Identifier "university")) , Space , HardBreak , Code "typ/compiler/bench-00.typ" ( line 22 , column 4 ) (Ident (Identifier "faculty")) , Space , HardBreak , Text "Sekretariat" , Space , Text "MA" , Space , HardBreak , Text "Dr" , Text "." , Space , Text "Max" , Space , Text "Mustermann" , Space , HardBreak , Text "Ola" , Space , Text "Nordmann," , Space , Text "John" , Space , Text "Doe" , ParBreak ] ]) , SoftBreak , Code "typ/compiler/bench-00.typ" ( line 27 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , NormalArg (FuncCall (Ident (Identifier "box")) [ BlockArg [ Strong [ Text "WiSe" , Space , Text "2019" , Text "/" , Text "2020" ] , Space , HardBreak , Text "Woche" , Space , Text "3" ] ]) ]) , ParBreak , Comment , Code "typ/compiler/bench-00.typ" ( line 30 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 6.0 Mm)) ]) , ParBreak , Comment , Comment , Code "typ/compiler/bench-00.typ" ( line 34 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ SoftBreak , Comment , Space , Heading 4 [ Text "3" , Text "." , Space , Text "\220bungsblatt" , Space , Text "Computerorientierte" , Space , Text "Mathematik" , Space , Text "II" , Space , Code "typ/compiler/bench-00.typ" ( line 36 , column 58 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 4.0 Mm)) ]) ] , Strong [ Text "Abgabe" , Text ":" , Space , Text "03" , Text "." , Text "05" , Text "." , Text "2019" ] , Space , Text "(" , Text "bis" , Space , Text "10" , Text ":" , Text "10" , Space , Text "Uhr" , Space , Text "in" , Space , Text "MA" , Space , Text "001)" , Space , Code "typ/compiler/bench-00.typ" ( line 37 , column 51 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 4.0 Mm)) ]) , SoftBreak , Strong [ Text "Alle" , Space , Text "Antworten" , Space , Text "sind" , Space , Text "zu" , Space , Text "beweisen" , Text "." ] , ParBreak ] ]) , ParBreak , Strong [ Text "1" , Text "." , Space , Text "Aufgabe" ] , Space , Code "typ/compiler/bench-00.typ" ( line 41 , column 15 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , BlockArg [ Text "(" , Text "1" , Space , Text "+" , Space , Text "1" , Space , Text "+" , Space , Text "2" , Space , Text "Punkte)" ] ]) , ParBreak , Text "Ein" , Space , Emph [ Text "Bin\228rbaum" ] , Space , Text "ist" , Space , Text "ein" , Space , Text "Wurzelbaum," , Space , Text "in" , Space , Text "dem" , Space , Text "jeder" , Space , Text "Knoten" , Space , Text "\8804" , Space , Text "2" , Space , Text "Kinder" , Space , Text "hat" , Text "." , SoftBreak , Text "Die" , Space , Text "Tiefe" , Space , Text "eines" , Space , Text "Knotens" , Space , Emph [ Text "v" ] , Space , Text "ist" , Space , Text "die" , Space , Text "L\228nge" , Space , Text "des" , Space , Text "eindeutigen" , Space , Text "Weges" , Space , Text "von" , Space , Text "der" , Space , Text "Wurzel" , SoftBreak , Text "zu" , Space , Emph [ Text "v" ] , Text "," , Space , Text "und" , Space , Text "die" , Space , Text "H\246he" , Space , Text "von" , Space , Emph [ Text "v" ] , Space , Text "ist" , Space , Text "die" , Space , Text "L\228nge" , Space , Text "eines" , Space , Text "l\228ngsten" , Space , Text "(" , Text "absteigenden)" , Space , Text "Weges" , SoftBreak , Text "von" , Space , Emph [ Text "v" ] , Space , Text "zu" , Space , Text "einem" , Space , Text "Blatt" , Text "." , Space , Text "Die" , Space , Text "H\246he" , Space , Text "des" , Space , Text "Baumes" , Space , Text "ist" , Space , Text "die" , Space , Text "H\246he" , Space , Text "der" , Space , Text "Wurzel" , Text "." , ParBreak , Code "typ/compiler/bench-00.typ" ( line 48 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 6.0 Mm)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), text(body: [ ]), parbreak(), box(body: { text(body: [ ]), text(body: [ ]), strong(body: { text(body: [Technische Universität ]), text(body: [Berlin]) }), text(body: [ ]), linebreak(), strong(body: text(body: [Fakultät II, Institut for Mathematik])), text(body: [ ]), linebreak(), text(body: [Sekretariat MA ]), linebreak(), text(body: [Dr. Max Mustermann ]), linebreak(), text(body: [Ola Nordmann, John Doe]), parbreak() }), text(body: [ ]), align(alignment: right, body: box(body: { strong(body: text(body: [WiSe 2019/2020])), text(body: [ ]), linebreak(), text(body: [Woche 3]) })), parbreak(), v(amount: 6.0mm), parbreak(), align(alignment: center, body: { text(body: [ ]), text(body: [ ]), heading(body: { text(body: [3. Übungsblatt Computerorientierte Mathematik II ]), v(amount: 4.0mm) }, level: 4), strong(body: text(body: [Abgabe: 03.05.2019])), text(body: [ (bis 10:10 Uhr in MA 001) ]), v(amount: 4.0mm), text(body: [ ]), strong(body: text(body: [Alle Antworten sind zu beweisen.])), parbreak() }), parbreak(), strong(body: text(body: [1. Aufgabe])), text(body: [ ]), align(alignment: right, body: text(body: [(1 + 1 + 2 Punkte)])), parbreak(), text(body: [Ein ]), emph(body: text(body: [Binärbaum])), text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens ]), emph(body: text(body: [v])), text(body: [ ist die Länge des eindeutigen Weges von der Wurzel zu ]), emph(body: text(body: [v])), text(body: [, und die Höhe von ]), emph(body: text(body: [v])), text(body: [ ist die Länge eines längsten (absteigenden) Weges von ]), emph(body: text(body: [v])), text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), parbreak(), v(amount: 6.0mm), parbreak() }) typst-0.8.0.2/test/typ/compiler/bench-00.typ0000644000000000000000000000314207346545000016672 0ustar0000000000000000// Ref: false // Configuration with `page` and `font` functions. #set page(width: 450pt, margin: 1cm) // There are variables and they can take normal values like strings, ... #let city = "Berlin" // ... but also "content" values. While these contain markup, // they are also values and can be summed, stored in arrays etc. // There are also more standard control flow structures, like #if and #for. #let university = [*Technische Universität #city*] #let faculty = [*Fakultät II, Institut for Mathematik*] // The `box` function just places content into a rectangular container. When // the only argument to a function is a content block, the parentheses can be // omitted (i.e. `f[a]` is the same as `f([a])`). #box[ // Backslash adds a forced line break. #university \ #faculty \ Sekretariat MA \ Dr. Max Mustermann \ Ola Nordmann, John Doe ] #align(right, box[*WiSe 2019/2020* \ Woche 3]) // Adds vertical spacing. #v(6mm) // If the last argument to a function is a content block, we can also place it // behind the parentheses. #align(center)[ // Markdown-like syntax for headings. ==== 3. Übungsblatt Computerorientierte Mathematik II #v(4mm) *Abgabe: 03.05.2019* (bis 10:10 Uhr in MA 001) #v(4mm) *Alle Antworten sind zu beweisen.* ] *1. Aufgabe* #align(right)[(1 + 1 + 2 Punkte)] Ein _Binärbaum_ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens _v_ ist die Länge des eindeutigen Weges von der Wurzel zu _v_, und die Höhe von _v_ ist die Länge eines längsten (absteigenden) Weges von _v_ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel. #v(6mm) typst-0.8.0.2/test/typ/compiler/block-00.out0000644000000000000000000000647107346545000016710 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/block-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/block-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/block-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/block-00.typ" ( line 5 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "parts"))) (Array [ Reg (Literal (String "my fri")) , Reg (Literal (String "end.")) ]) , Block (Content [ Text "Hello," , Space ]) , For (BasicBind (Just (Identifier "s"))) (Ident (Identifier "parts")) (Block (Content [ Code "typ/compiler/block-00.typ" ( line 8 , column 20 ) (Ident (Identifier "s")) ])) ])) , ParBreak , Comment , Code "typ/compiler/block-00.typ" ( line 12 , column 2 ) (Block (CodeBlock [ Block (Content [ Text "How" ]) , If [ ( Literal (Boolean True) , Block (CodeBlock [ Literal (String " are") ]) ) ] , Block (Content [ Space ]) , If [ ( Literal (Boolean False) , Block (Content [ Text "Nope" ]) ) ] , Plus (Block (Content [ Text "you" ])) (Literal (String "?")) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Hello, ]), text(body: [my fri]), text(body: [end.]), parbreak(), text(body: [How]), text(body: [ are]), text(body: [ ]), text(body: [you]), text(body: [?]), parbreak() }) typst-0.8.0.2/test/typ/compiler/block-00.typ0000644000000000000000000000042407346545000016705 0ustar0000000000000000// Ref: true // Evaluates to join of none, [My ] and the two loop bodies. #{ let parts = ("my fri", "end.") [Hello, ] for s in parts [#s] } // Evaluates to join of the content and strings. #{ [How] if true { " are" } [ ] if false [Nope] [you] + "?" } typst-0.8.0.2/test/typ/compiler/block-01.out0000644000000000000000000001017007346545000016700 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/block-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/block-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/block-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/block-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [])) , NormalArg (Literal None) ]) , ParBreak , Comment , Code "typ/compiler/block-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Let (BasicBind (Just (Identifier "v"))) (Literal (Int 0)) ])) , NormalArg (Literal None) ]) , ParBreak , Comment , Code "typ/compiler/block-01.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Literal (String "hello") ])) , NormalArg (Literal (String "hello")) ]) , ParBreak , Comment , Code "typ/compiler/block-01.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal (String "m")) , Plus (Ident (Identifier "x")) (Literal (String "y")) ])) , NormalArg (Literal (String "my")) ]) , ParBreak , Comment , Code "typ/compiler/block-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal (Int 1)) , Let (BasicBind (Just (Identifier "y"))) (Literal (Int 2)) , Plus (Ident (Identifier "x")) (Ident (Identifier "y")) ])) , NormalArg (Literal (Int 3)) ]) , ParBreak , Comment , Code "typ/compiler/block-01.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ FuncCall (Ident (Identifier "type")) [ NormalArg (Literal (String "")) ] , Literal None ])) , NormalArg (Literal (String "string")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/block-01.typ0000644000000000000000000000061507346545000016710 0ustar0000000000000000// Nothing evaluates to none. #test({}, none) // Let evaluates to none. #test({ let v = 0 }, none) // Evaluates to single expression. #test({ "hello" }, "hello") // Evaluates to string. #test({ let x = "m"; x + "y" }, "my") // Evaluated to int. #test({ let x = 1 let y = 2 x + y }, 3) // String is joined with trailing none, evaluates to string. #test({ type("") none }, "string") typst-0.8.0.2/test/typ/compiler/block-02.out0000644000000000000000000000002107346545000016673 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-02.typ0000644000000000000000000000014707346545000016711 0ustar0000000000000000// Some things can't be joined. #{ [A] // Error: 3-4 cannot join content with integer 1 [B] } typst-0.8.0.2/test/typ/compiler/block-03.out0000644000000000000000000000002107346545000016674 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-03.typ0000644000000000000000000000016107346545000016706 0ustar0000000000000000// Block directly in markup also creates a scope. #{ let x = 1 } // Error: 7-8 unknown variable: x #test(x, 1) typst-0.8.0.2/test/typ/compiler/block-04.out0000644000000000000000000000002107346545000016675 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-04.typ0000644000000000000000000000017707346545000016716 0ustar0000000000000000// Block in expression does create a scope. #let a = { let b = 1 b } #test(a, 1) // Error: 3-4 unknown variable: b #{b} typst-0.8.0.2/test/typ/compiler/block-05.out0000644000000000000000000000002107346545000016676 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-05.typ0000644000000000000000000000016507346545000016714 0ustar0000000000000000// Double block creates a scope. #{{ import "module.typ": b test(b, 1) }} // Error: 2-3 unknown variable: b #b typst-0.8.0.2/test/typ/compiler/block-06.out0000644000000000000000000000632307346545000016712 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/block-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/block-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/block-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/block-06.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "a"))) (Literal (String "a1")) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "a"))) (Literal (String "a2")) , Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (String "a2")) ] , Let (BasicBind (Just (Identifier "a"))) (Literal (String "a3")) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (String "a3")) ] ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (String "a2")) ] ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (String "a1")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/block-06.typ0000644000000000000000000000026207346545000016713 0ustar0000000000000000// Multiple nested scopes. #{ let a = "a1" { let a = "a2" { test(a, "a2") let a = "a3" test(a, "a3") } test(a, "a2") } test(a, "a1") } typst-0.8.0.2/test/typ/compiler/block-07.out0000644000000000000000000000002107346545000016700 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-07.typ0000644000000000000000000000013407346545000016712 0ustar0000000000000000// Content blocks also create a scope. #[#let x = 1] // Error: 2-3 unknown variable: x #x typst-0.8.0.2/test/typ/compiler/block-08.out0000644000000000000000000000002107346545000016701 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-08.typ0000644000000000000000000000077607346545000016727 0ustar0000000000000000// Multiple unseparated expressions in one line. // Error: 2-4 invalid number suffix: u #1u // Should output `1`. // Error: 4 expected semicolon or line break #{1 2} // Should output `2`. // Error: 13 expected semicolon or line break // Error: 23 expected semicolon or line break #{let x = -1 let y = 3 x + y} // Should output `3`. #{ // Error: 6 expected identifier // Error: 10 expected block for "v" // Error: 8 expected keyword `in` // Error: 22 expected block for v let z = 1 + 2 z } typst-0.8.0.2/test/typ/compiler/block-09.out0000644000000000000000000000002107346545000016702 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-09.typ0000644000000000000000000000004707346545000016717 0ustar0000000000000000// Error: 3 expected closing brace #{ typst-0.8.0.2/test/typ/compiler/block-10.out0000644000000000000000000000002107346545000016672 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/block-10.typ0000644000000000000000000000005207346545000016703 0ustar0000000000000000// Error: 2-3 unexpected closing brace #} typst-0.8.0.2/test/typ/compiler/break-continue-00.out0000644000000000000000000000675007346545000020524 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/break-continue-00.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "var"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/break-continue-00.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "error"))) (Literal (Boolean False))) , ParBreak , Code "typ/compiler/break-continue-00.typ" ( line 7 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ]) (Block (CodeBlock [ Assign (Ident (Identifier "var")) (Plus (Ident (Identifier "var")) (Ident (Identifier "i"))) , If [ ( GreaterThan (Ident (Identifier "i")) (Literal (Int 5)) , Block (CodeBlock [ Break , Assign (Ident (Identifier "error")) (Literal (Boolean True)) ]) ) ] ]))) , ParBreak , Code "typ/compiler/break-continue-00.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "var")) , NormalArg (Literal (Int 21)) ]) , SoftBreak , Code "typ/compiler/break-continue-00.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "error")) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-00.typ0000644000000000000000000000024507346545000020522 0ustar0000000000000000// Test break. #let var = 0 #let error = false #for i in range(10) { var += i if i > 5 { break error = true } } #test(var, 21) #test(error, false) typst-0.8.0.2/test/typ/compiler/break-continue-01.out0000644000000000000000000000571107346545000020521 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/break-continue-01.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/break-continue-01.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (While (Literal (Boolean True)) (Block (CodeBlock [ Assign (Ident (Identifier "i")) (Plus (Ident (Identifier "i")) (Literal (Int 1))) , FuncCall (Ident (Identifier "str")) [ NormalArg (Ident (Identifier "i")) ] , If [ ( GreaterThanOrEqual (Ident (Identifier "i")) (Literal (Int 5)) , Block (CodeBlock [ Literal (String ".") , Break ]) ) ] ])))) , ParBreak , Code "typ/compiler/break-continue-01.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (String "12345.")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-01.typ0000644000000000000000000000021307346545000020516 0ustar0000000000000000// Test joining with break. #let i = 0 #let x = while true { i += 1 str(i) if i >= 5 { "." break } } #test(x, "12345.") typst-0.8.0.2/test/typ/compiler/break-continue-02.out0000644000000000000000000000654607346545000020531 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/break-continue-02.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/break-continue-02.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (Int 0))) , ParBreak , Code "typ/compiler/break-continue-02.typ" ( line 7 , column 2 ) (While (LessThan (Ident (Identifier "x")) (Literal (Int 8))) (Block (CodeBlock [ Assign (Ident (Identifier "i")) (Plus (Ident (Identifier "i")) (Literal (Int 1))) , If [ ( Equals (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Ident (Identifier "i")) , NormalArg (Literal (Int 3)) ]) (Literal (Int 0)) , Block (CodeBlock [ Continue ]) ) ] , Assign (Ident (Identifier "x")) (Plus (Ident (Identifier "x")) (Ident (Identifier "i"))) ]))) , ParBreak , Comment , Code "typ/compiler/break-continue-02.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 12)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-02.typ0000644000000000000000000000027207346545000020524 0ustar0000000000000000// Test continue. #let i = 0 #let x = 0 #while x < 8 { i += 1 if calc.rem(i, 3) == 0 { continue } x += i } // If continue did not work, this would equal 10. #test(x, 12) typst-0.8.0.2/test/typ/compiler/break-continue-03.out0000644000000000000000000000612207346545000020520 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/break-continue-03.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 5)) ]) (Block (CodeBlock [ Literal (String "a") , If [ ( Equals (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Ident (Identifier "i")) , NormalArg (Literal (Int 3)) ]) (Literal (Int 0)) , Block (CodeBlock [ Literal (String "_") , Continue ]) ) ] , FuncCall (Ident (Identifier "str")) [ NormalArg (Ident (Identifier "i")) ] ])))) , ParBreak , Code "typ/compiler/break-continue-03.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (String "a_a1a2a_a4")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-03.typ0000644000000000000000000000023307346545000020522 0ustar0000000000000000// Test joining with continue. #let x = for i in range(5) { "a" if calc.rem(i, 3) == 0 { "_" continue } str(i) } #test(x, "a_a1a2a_a4") typst-0.8.0.2/test/typ/compiler/break-continue-04.out0000644000000000000000000000002107346545000020511 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/break-continue-04.typ0000644000000000000000000000020207346545000020517 0ustar0000000000000000// Test break outside of loop. #let f() = { // Error: 3-8 cannot break outside of loop break } #for i in range(1) { f() } typst-0.8.0.2/test/typ/compiler/break-continue-05.out0000644000000000000000000000551207346545000020524 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/break-continue-05.typ" ( line 3 , column 2 ) (LetFunc (Identifier "identity") [ NormalParam (Identifier "x") ] (Ident (Identifier "x"))) , SoftBreak , Code "typ/compiler/break-continue-05.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "out"))) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 5)) ]) (Block (CodeBlock [ Literal (String "A") , FuncCall (Ident (Identifier "identity")) [ NormalArg (Block (CodeBlock [ Literal (String "B") , Break ])) ] , Literal (String "C") ])))) , ParBreak , Code "typ/compiler/break-continue-05.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "out")) , NormalArg (Literal (String "AB")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-05.typ0000644000000000000000000000023107346545000020522 0ustar0000000000000000// Test break in function call. #let identity(x) = x #let out = for i in range(5) { "A" identity({ "B" break }) "C" } #test(out, "AB") typst-0.8.0.2/test/typ/compiler/break-continue-06.out0000644000000000000000000000002107346545000020513 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/break-continue-06.typ0000644000000000000000000000015207346545000020525 0ustar0000000000000000// Test continue outside of loop. // Error: 12-20 cannot continue outside of loop #let x = { continue } typst-0.8.0.2/test/typ/compiler/break-continue-07.out0000644000000000000000000000002107346545000020514 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/break-continue-07.typ0000644000000000000000000000007207346545000020527 0ustar0000000000000000// Error: 2-10 cannot continue outside of loop #continue typst-0.8.0.2/test/typ/compiler/break-continue-08.out0000644000000000000000000000477707346545000020543 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/break-continue-08.typ" ( line 4 , column 2 ) (For (BasicBind Nothing) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ]) (Block (CodeBlock [ Block (Content [ Text "Hello" , Space ]) , Block (Content [ Text "World" , Space , Code "typ/compiler/break-continue-08.typ" ( line 6 , column 11 ) (Block (CodeBlock [ Block (Content [ Text "\127758" ]) , Break ])) ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello ]), text(body: [World ]), text(body: [🌎]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-08.typ0000644000000000000000000000017407346545000020533 0ustar0000000000000000// Ref: true // Should output `Hello World 🌎`. #for _ in range(10) { [Hello ] [World #{ [🌎] break }] } typst-0.8.0.2/test/typ/compiler/break-continue-09.out0000644000000000000000000001351607346545000020533 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Code "typ/compiler/break-continue-09.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "color"))) (Array [ Reg (Ident (Identifier "red")) , Reg (Ident (Identifier "blue")) , Reg (Ident (Identifier "green")) , Reg (Ident (Identifier "yellow")) ]) (Block (Content [ SoftBreak , Code "typ/compiler/break-continue-09.typ" ( line 6 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) ]) , SoftBreak , Code "typ/compiler/break-continue-09.typ" ( line 7 , column 4 ) (Show Nothing (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "color")) , NormalArg (Ident (Identifier "it")) ]))) , SoftBreak , Code "typ/compiler/break-continue-09.typ" ( line 8 , column 4 ) (FuncCall (Ident (Identifier "smallcaps")) [ NormalArg (If [ ( Not (Equals (Ident (Identifier "color")) (Ident (Identifier "green"))) , Block (Content [ SoftBreak , Text "Some" , ParBreak ]) ) , ( Literal (Boolean True) , Block (Content [ SoftBreak , Text "Last" , SoftBreak , Code "typ/compiler/break-continue-09.typ" ( line 12 , column 6 ) Break , ParBreak ]) ) ]) ]) , ParBreak ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: "Roboto"), text(body: { text(body: [ ], font: "Roboto"), smallcaps(body: { text(body: [ Some], font: "Roboto"), parbreak() }), parbreak() }, fill: rgb(100%,25%,21%,100%), font: "Roboto"), text(body: [ ], font: "Roboto"), text(body: [ ], font: "Roboto"), text(body: { text(body: [ ], font: "Roboto"), smallcaps(body: { text(body: [ Some], font: "Roboto"), parbreak() }), parbreak() }, fill: rgb(0%,45%,85%,100%), font: "Roboto"), text(body: [ ], font: "Roboto"), text(body: [ ], font: "Roboto"), text(body: { text(body: [ ], font: "Roboto"), smallcaps(body: { text(body: [ Last ], font: "Roboto"), parbreak() }), parbreak() }, fill: rgb(18%,80%,25%,100%), font: "Roboto"), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-09.typ0000644000000000000000000000046407346545000020536 0ustar0000000000000000// Ref: true // Should output `Some` in red, `Some` in blue and `Last` in green. // Everything should be in smallcaps. #for color in (red, blue, green, yellow) [ #set text(font: "Roboto") #show: it => text(fill: color, it) #smallcaps(if color != green [ Some ] else [ Last #break ]) ] typst-0.8.0.2/test/typ/compiler/break-continue-10.out0000644000000000000000000000446107346545000020522 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Code "typ/compiler/break-continue-10.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ]) (Block (CodeBlock [ Block (Content [ Text "Hello" ]) , Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) , SpreadArg Break ] , Block (Content [ Text "Not" , Space , Text "happening" ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello]), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-10.typ0000644000000000000000000000022607346545000020522 0ustar0000000000000000// Ref: true // Test break in set rule. // Should output `Hi` in blue. #for i in range(10) { [Hello] set text(blue, ..break) [Not happening] } typst-0.8.0.2/test/typ/compiler/break-continue-11.out0000644000000000000000000001121307346545000020514 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/break-continue-11.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/break-continue-11.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/break-continue-11.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/break-continue-11.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "table")) [ NormalArg (Block (CodeBlock [ Block (Content [ Text "A" ]) , Break ])) , NormalArg (For (BasicBind Nothing) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 3)) ]) (Block (Content [ Text "B" ]))) ] ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), table(children: (text(body: [A]), { text(body: [B]), text(body: [B]), text(body: [B]) })), parbreak() }) typst-0.8.0.2/test/typ/compiler/break-continue-11.typ0000644000000000000000000000021107346545000020515 0ustar0000000000000000// Test second block during break flow. // Ref: true #for i in range(10) { table( { [A]; break }, for _ in range(3) [B] ) } typst-0.8.0.2/test/typ/compiler/call-00.out0000644000000000000000000001333707346545000016530 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/call-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/call-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/call-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/call-00.typ" ( line 5 , column 2 ) (LetFunc (Identifier "f") [] (Block (CodeBlock []))) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 6 , column 2 ) (Block (Content [ Code "typ/compiler/call-00.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "f")) []) , Strong [ Text "Bold" ] ])) , ParBreak , Comment , Code "typ/compiler/call-00.typ" ( line 9 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") , NormalParam (Identifier "body") ] (FuncExpr [ NormalParam (Identifier "y") ] (Plus (Plus (Block (Content [ Code "typ/compiler/call-00.typ" ( line 9 , column 28 ) (Ident (Identifier "x")) ])) (Ident (Identifier "body"))) (Block (Content [ Code "typ/compiler/call-00.typ" ( line 9 , column 42 ) (Ident (Identifier "y")) ]))))) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 10 , column 2 ) (FuncCall (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , BlockArg [ Text "2" ] ]) [ NormalArg (Literal (Int 3)) ]) , ParBreak , Comment , Code "typ/compiler/call-00.typ" ( line 13 , column 2 ) (Ident (Identifier "test")) , Space , Text "(" , Text "it)" , ParBreak , Code "typ/compiler/call-00.typ" ( line 15 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "body") ] (Ident (Identifier "body"))) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "f")) [ BlockArg [ Text "A" ] ]) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "f")) [ BlockArg [ Text "A" ] ]) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "f")) [ NormalArg (Block (Content [ Text "A" ])) ]) , ParBreak , Code "typ/compiler/call-00.typ" ( line 20 , column 2 ) (LetFunc (Identifier "g") [ NormalParam (Identifier "a") , NormalParam (Identifier "b") ] (Plus (Ident (Identifier "a")) (Ident (Identifier "b")))) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "g")) [ BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "g")) [ NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) ]) , SoftBreak , Code "typ/compiler/call-00.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "g")) [ BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), strong(body: text(body: [Bold])), parbreak(), text(body: [ ]), text(body: [1]), text(body: [2]), text(body: [3]), parbreak(), text(body: [ (it)]), parbreak(), text(body: [ ]), text(body: [A]), text(body: [ ]), text(body: [A]), text(body: [ ]), text(body: [A]), parbreak(), text(body: [ ]), text(body: [A]), text(body: [B]), text(body: [ ]), text(body: [A]), text(body: [B]), text(body: [ ]), text(body: [A]), text(body: [B]), parbreak() }) typst-0.8.0.2/test/typ/compiler/call-00.typ0000644000000000000000000000046307346545000016531 0ustar0000000000000000// Ref: true // Omitted space. #let f() = {} #[#f()*Bold*] // Call return value of function with body. #let f(x, body) = (y) => [#x] + body + [#y] #f(1)[2](3) // Don't parse this as a function. #test (it) #let f(body) = body #f[A] #f()[A] #f([A]) #let g(a, b) = a + b #g[A][B] #g([A], [B]) #g()[A][B] typst-0.8.0.2/test/typ/compiler/call-01.out0000644000000000000000000000717107346545000016530 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/call-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/call-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/call-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/call-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (Int 1)) (Literal (Int 1))) , NormalArg (Literal (Int 2)) ]) , ParBreak , Comment , Code "typ/compiler/call-01.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "alias"))) (Ident (Identifier "type"))) , SoftBreak , Code "typ/compiler/call-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "alias")) [ NormalArg (Ident (Identifier "alias")) ]) , NormalArg (Literal (String "function")) ]) , ParBreak , Comment , Code "typ/compiler/call-01.typ" ( line 10 , column 2 ) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Literal (String "hi")) ]) , NormalArg (Literal (String "string")) ] , LetFunc (Identifier "adder") [ NormalParam (Identifier "dx") ] (FuncExpr [ NormalParam (Identifier "x") ] (Plus (Ident (Identifier "x")) (Ident (Identifier "dx")))) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (Ident (Identifier "adder")) [ NormalArg (Literal (Int 2)) ]) [ NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (Int 7)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/call-01.typ0000644000000000000000000000046307346545000016532 0ustar0000000000000000// Trailing comma. #test(1 + 1, 2,) // Call function assigned to variable. #let alias = type #test(alias(alias), "function") // Callee expressions. #{ // Wrapped in parens. test((type)("hi"), "string") // Call the return value of a function. let adder(dx) = x => x + dx test(adder(2)(5), 7) } typst-0.8.0.2/test/typ/compiler/call-02.out0000644000000000000000000000002107346545000016514 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-02.typ0000644000000000000000000000012607346545000016527 0ustar0000000000000000// Error: 26-30 duplicate argument: font #set text(font: "Arial", font: "Helvetica") typst-0.8.0.2/test/typ/compiler/call-03.out0000644000000000000000000000002107346545000016515 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-03.typ0000644000000000000000000000007007346545000016526 0ustar0000000000000000// Error: 2-6 expected function, found boolean #true() typst-0.8.0.2/test/typ/compiler/call-04.out0000644000000000000000000000002107346545000016516 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-04.typ0000644000000000000000000000010207346545000016523 0ustar0000000000000000#let x = "x" // Error: 2-3 expected function, found string #x() typst-0.8.0.2/test/typ/compiler/call-05.out0000644000000000000000000000002107346545000016517 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-05.typ0000644000000000000000000000011007346545000016523 0ustar0000000000000000#let f(x) = x // Error: 2-6 expected function, found integer #f(1)(2) typst-0.8.0.2/test/typ/compiler/call-06.out0000644000000000000000000000002107346545000016520 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-06.typ0000644000000000000000000000011007346545000016524 0ustar0000000000000000#let f(x) = x // Error: 2-6 expected function, found content #f[1](2) typst-0.8.0.2/test/typ/compiler/call-07.out0000644000000000000000000000002107346545000016521 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-07.typ0000644000000000000000000000071007346545000016533 0ustar0000000000000000// Error: 7 expected expression // Error: 8 expected expression #func(:) // Error: 10-12 unexpected end of block comment #func(a:1*/) // Error: 8 expected comma #func(1 2) // Error: 7-8 expected identifier, found integer // Error: 9 expected expression #func(1:) // Error: 7-8 expected identifier, found integer #func(1:2) // Error: 7-12 expected identifier, found string #func("abc": 2) // Error: 7-10 expected identifier, found group #func((x):1) typst-0.8.0.2/test/typ/compiler/call-08.out0000644000000000000000000000002107346545000016522 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-08.typ0000644000000000000000000000006307346545000016535 0ustar0000000000000000// Error: 2:1 expected closing bracket #func[`a]` typst-0.8.0.2/test/typ/compiler/call-09.out0000644000000000000000000000002107346545000016523 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-09.typ0000644000000000000000000000005507346545000016537 0ustar0000000000000000// Error: 8 expected closing paren #{func(} typst-0.8.0.2/test/typ/compiler/call-10.out0000644000000000000000000000002107346545000016513 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/call-10.typ0000644000000000000000000000004607346545000016527 0ustar0000000000000000// Error: 2:1 expected quote #func("] typst-0.8.0.2/test/typ/compiler/closure-00.out0000644000000000000000000000412507346545000017264 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/closure-00.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (String "x"))) , ParBreak , Comment , Code "typ/compiler/closure-00.typ" ( line 8 , column 2 ) (FuncExpr [ NormalParam (Identifier "x") ] (Ident (Identifier "y"))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-00.typ0000644000000000000000000000015407346545000017267 0ustar0000000000000000// Don't parse closure directly in content. // Ref: true #let x = "x" // Should output `x => y`. #x => y typst-0.8.0.2/test/typ/compiler/closure-01.out0000644000000000000000000000462207346545000017267 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-01.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "adder"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Plus (Ident (Identifier "x")) (Ident (Identifier "y")))) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "adder")) [ NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 5)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-01.typ0000644000000000000000000000013607346545000017270 0ustar0000000000000000// Basic closure without captures. #{ let adder = (x, y) => x + y test(adder(2, 3), 5) } typst-0.8.0.2/test/typ/compiler/closure-02.out0000644000000000000000000000641707346545000017274 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/closure-02.typ" ( line 4 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "chain"))) (FuncExpr [ NormalParam (Identifier "f") , NormalParam (Identifier "g") ] (FuncExpr [ NormalParam (Identifier "x") ] (FuncCall (Ident (Identifier "f")) [ NormalArg (FuncCall (Ident (Identifier "g")) [ NormalArg (Ident (Identifier "x")) ]) ]))) , Let (BasicBind (Just (Identifier "f"))) (FuncExpr [ NormalParam (Identifier "x") ] (Plus (Ident (Identifier "x")) (Literal (Int 1)))) , Let (BasicBind (Just (Identifier "g"))) (FuncExpr [ NormalParam (Identifier "x") ] (Times (Literal (Int 2)) (Ident (Identifier "x")))) , Let (BasicBind (Just (Identifier "h"))) (FuncCall (Ident (Identifier "chain")) [ NormalArg (Ident (Identifier "f")) , NormalArg (Ident (Identifier "g")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 5)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-02.typ0000644000000000000000000000034207346545000017270 0ustar0000000000000000// Pass closure as argument and return closure. // Also uses shorthand syntax for a single argument. #{ let chain = (f, g) => (x) => f(g(x)) let f = x => x + 1 let g = x => 2 * x let h = chain(f, g) test(h(2), 5) } typst-0.8.0.2/test/typ/compiler/closure-03.out0000644000000000000000000000651507346545000017274 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-03.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "mark"))) (Literal (String "!")) , Let (BasicBind (Just (Identifier "greet"))) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "hi"))) (Literal (String "Hi")) , FuncExpr [ NormalParam (Identifier "name") ] (Block (CodeBlock [ Plus (Plus (Plus (Ident (Identifier "hi")) (Literal (String ", "))) (Ident (Identifier "name"))) (Ident (Identifier "mark")) ])) ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "greet")) [ NormalArg (Literal (String "Typst")) ]) , NormalArg (Literal (String "Hi, Typst!")) ] , Assign (Ident (Identifier "mark")) (Literal (String "?")) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "greet")) [ NormalArg (Literal (String "Typst")) ]) , NormalArg (Literal (String "Hi, Typst!")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-03.typ0000644000000000000000000000046207346545000017274 0ustar0000000000000000// Capture environment. #{ let mark = "!" let greet = { let hi = "Hi" name => { hi + ", " + name + mark } } test(greet("Typst"), "Hi, Typst!") // Changing the captured variable after the closure definition has no effect. mark = "?" test(greet("Typst"), "Hi, Typst!") } typst-0.8.0.2/test/typ/compiler/closure-04.out0000644000000000000000000000467507346545000017302 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-04.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal (Int 1)) , LetFunc (Identifier "f") [] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Plus (Ident (Identifier "x")) (Literal (Int 2))) , Ident (Identifier "x") ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (Int 3)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-04.typ0000644000000000000000000000014207346545000017270 0ustar0000000000000000// Redefined variable. #{ let x = 1 let f() = { let x = x + 2 x } test(f(), 3) } typst-0.8.0.2/test/typ/compiler/closure-05.out0000644000000000000000000000472207346545000017274 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-05.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "b"))) (Literal (String "module.typ")) , LetFunc (Identifier "f") [] (Block (CodeBlock [ Import (Ident (Identifier "b")) (SomeIdentifiers [ ( Identifier "b" , Nothing ) ]) , Ident (Identifier "b") ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (Int 1)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-05.typ0000644000000000000000000000015007346545000017270 0ustar0000000000000000// Import bindings. #{ let b = "module.typ" let f() = { import b: b b } test(f(), 1) } typst-0.8.0.2/test/typ/compiler/closure-06.out0000644000000000000000000000567007346545000017300 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-06.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "v"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) , LetFunc (Identifier "f") [] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "s"))) (Literal (Int 0)) , For (BasicBind (Just (Identifier "v"))) (Ident (Identifier "v")) (Block (CodeBlock [ Assign (Ident (Identifier "s")) (Plus (Ident (Identifier "s")) (Ident (Identifier "v"))) ])) , Ident (Identifier "s") ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (Int 6)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-06.typ0000644000000000000000000000017707346545000017302 0ustar0000000000000000// For loop bindings. #{ let v = (1, 2, 3) let f() = { let s = 0 for v in v { s += v } s } test(f(), 6) } typst-0.8.0.2/test/typ/compiler/closure-07.out0000644000000000000000000000460307346545000017274 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-07.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "g"))) (Literal (String "hi")) , LetFunc (Identifier "f") [] (Block (CodeBlock [ LetFunc (Identifier "g") [] (Literal (String "bye")) , FuncCall (Ident (Identifier "g")) [] ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (String "bye")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-07.typ0000644000000000000000000000016107346545000017274 0ustar0000000000000000// Let + closure bindings. #{ let g = "hi" let f() = { let g() = "bye" g() } test(f(), "bye") } typst-0.8.0.2/test/typ/compiler/closure-08.out0000644000000000000000000000552107346545000017275 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/closure-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/closure-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/closure-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/closure-08.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal (Int 5)) , LetFunc (Identifier "g") [] (Block (CodeBlock [ LetFunc (Identifier "f") [ NormalParam (Identifier "x") , DefaultParam (Identifier "y") (Ident (Identifier "x")) ] (Plus (Ident (Identifier "x")) (Ident (Identifier "y"))) , Ident (Identifier "f") ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (Ident (Identifier "g")) []) [ NormalArg (Literal (Int 8)) ]) , NormalArg (Literal (Int 13)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [❌(]), text(body: [16]), text(body: [ /= ]), text(body: [13]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compiler/closure-08.typ0000644000000000000000000000016007346545000017274 0ustar0000000000000000// Parameter bindings. #{ let x = 5 let g() = { let f(x, y: x) = x + y f } test(g()(8), 13) } typst-0.8.0.2/test/typ/compiler/closure-09.out0000644000000000000000000000002107346545000017264 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-09.typ0000644000000000000000000000016007346545000017275 0ustar0000000000000000// Don't leak environment. #{ // Error: 16-17 unknown variable: x let func() = x let x = "hi" func() } typst-0.8.0.2/test/typ/compiler/closure-10.out0000644000000000000000000000002107346545000017254 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-10.typ0000644000000000000000000000032007346545000017263 0ustar0000000000000000// Too few arguments. #{ let types(x, y) = "[" + type(x) + ", " + type(y) + "]" test(types(14%, 12pt), "[ratio, length]") // Error: 13-21 missing argument: y test(types("nope"), "[string, none]") } typst-0.8.0.2/test/typ/compiler/closure-11.out0000644000000000000000000000002107346545000017255 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-11.typ0000644000000000000000000000015507346545000017272 0ustar0000000000000000// Too many arguments. #{ let f(x) = x + 1 // Error: 8-13 unexpected argument f(1, "two", () => x) } typst-0.8.0.2/test/typ/compiler/closure-12.out0000644000000000000000000000002107346545000017256 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-12.typ0000644000000000000000000000051007346545000017266 0ustar0000000000000000// Named arguments. #{ let greet(name, birthday: false) = { if birthday { "Happy Birthday, " } else { "Hey, " } + name + "!" } test(greet("Typst"), "Hey, Typst!") test(greet("Typst", birthday: true), "Happy Birthday, Typst!") // Error: 23-35 unexpected argument: whatever test(greet("Typst", whatever: 10)) } typst-0.8.0.2/test/typ/compiler/closure-13.out0000644000000000000000000000002107346545000017257 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-13.typ0000644000000000000000000000111607346545000017272 0ustar0000000000000000// Parameter unpacking. #let f((a, b), ..c) = (a, b, c) #test(f((1, 2), 3, 4), (1, 2, (3, 4))) #let f((k: a, b), c: 3, (d,)) = (a, b, c, d) #test(f((k: 1, b: 2), (4,)), (1, 2, 3, 4)) // Error: 22-23 duplicate parameter: a #let f((a: b), (c,), a) = none // Error: 8-14 expected identifier, found array #let f((a, b): 0) = none // Error: 10-19 expected identifier, found destructuring pattern #let f(..(a, b: c)) = none // Error: 10-16 expected identifier, found array #let f(..(a, b)) = none // Error: 10-19 expected identifier, found destructuring pattern #let f(..(a, b: c)) = none typst-0.8.0.2/test/typ/compiler/closure-14.out0000644000000000000000000000002107346545000017260 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-14.typ0000644000000000000000000000007407346545000017275 0ustar0000000000000000// Error: 11-12 duplicate parameter: x #let f(x, x) = none typst-0.8.0.2/test/typ/compiler/closure-15.out0000644000000000000000000000002107346545000017261 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-15.typ0000644000000000000000000000024207346545000017273 0ustar0000000000000000// Error: 14-15 duplicate parameter: a // Error: 23-24 duplicate parameter: b // Error: 35-36 duplicate parameter: b #let f(a, b, a: none, b: none, c, b) = none typst-0.8.0.2/test/typ/compiler/closure-16.out0000644000000000000000000000002107346545000017262 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-16.typ0000644000000000000000000000007607346545000017301 0ustar0000000000000000// Error: 13-14 duplicate parameter: a #let f(a, ..a) = none typst-0.8.0.2/test/typ/compiler/closure-17.out0000644000000000000000000000002107346545000017263 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-17.typ0000644000000000000000000000015607346545000017301 0ustar0000000000000000// Error: 7-17 expected identifier, named pair or argument sink, found keyed pair #((a, "named": b) => none) typst-0.8.0.2/test/typ/compiler/closure-18.out0000644000000000000000000000002107346545000017264 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-18.typ0000644000000000000000000000011407346545000017274 0ustar0000000000000000// Error: 10-15 expected identifier, found string #let foo("key": b) = key typst-0.8.0.2/test/typ/compiler/closure-19.out0000644000000000000000000000002107346545000017265 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-19.typ0000644000000000000000000000011307346545000017274 0ustar0000000000000000// Error: 10-14 expected identifier, found `none` #let foo(none: b) = key typst-0.8.0.2/test/typ/compiler/closure-20.out0000644000000000000000000000002107346545000017255 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/closure-20.typ0000644000000000000000000000006207346545000017267 0ustar0000000000000000// Error: 11 expected comma #let foo(_: 3) = none typst-0.8.0.2/test/typ/compiler/color-00.out0000644000000000000000000002116607346545000016732 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/color-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/color-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/color-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/color-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "c"))) (FuncCall (Ident (Identifier "cmyk")) [ NormalArg (Literal (Numeric 50.0 Percent)) , NormalArg (Literal (Numeric 64.0 Percent)) , NormalArg (Literal (Numeric 16.0 Percent)) , NormalArg (Literal (Numeric 17.0 Percent)) ])) , SoftBreak , Code "typ/compiler/color-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "cmyk")) [ NormalArg (Literal (Numeric 69.0 Percent)) , NormalArg (Literal (Numeric 11.0 Percent)) , NormalArg (Literal (Numeric 69.0 Percent)) , NormalArg (Literal (Numeric 41.0 Percent)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "c")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "fill") (FuncCall (FieldAccess (Ident (Identifier "negate")) (Ident (Identifier "c"))) []) ]) ]) , ParBreak , Code "typ/compiler/color-00.typ" ( line 12 , column 2 ) (For (BasicBind (Just (Identifier "x"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 11)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 9.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (FieldAccess (Ident (Identifier "lighten")) (Ident (Identifier "c"))) [ NormalArg (Times (Ident (Identifier "x")) (Literal (Numeric 10.0 Percent))) ]) ]) ] ]))) , SoftBreak , Code "typ/compiler/color-00.typ" ( line 15 , column 2 ) (For (BasicBind (Just (Identifier "x"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 11)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 9.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (FieldAccess (Ident (Identifier "darken")) (Ident (Identifier "c"))) [ NormalArg (Times (Ident (Identifier "x")) (Literal (Numeric 10.0 Percent))) ]) ]) ] ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), stack(children: (rect(fill: cmyk(69%,11%,69%,41%), width: 1.0cm), rect(fill: cmyk(50%,64%,16%,17%), width: 1.0cm), rect(fill: cmyk(50%,36%,84%,17%), width: 1.0cm)), dir: ltr, spacing: 1.0fr), parbreak(), box(body: square(fill: cmyk(50%,64%,16%,17%), size: 9.0pt)), box(body: square(fill: cmyk(55%,67%,24%,25%), size: 9.0pt)), box(body: square(fill: cmyk(60%,71%,32%,33%), size: 9.0pt)), box(body: square(fill: cmyk(65%,74%,41%,41%), size: 9.0pt)), box(body: square(fill: cmyk(70%,78%,49%,50%), size: 9.0pt)), box(body: square(fill: cmyk(75%,82%,58%,58%), size: 9.0pt)), box(body: square(fill: cmyk(80%,85%,66%,66%), size: 9.0pt)), box(body: square(fill: cmyk(85%,89%,74%,75%), size: 9.0pt)), box(body: square(fill: cmyk(90%,92%,83%,83%), size: 9.0pt)), box(body: square(fill: cmyk(95%,96%,91%,91%), size: 9.0pt)), box(body: square(fill: cmyk(100%,100%,100%,100%), size: 9.0pt)), text(body: [ ]), box(body: square(fill: cmyk(50%,64%,16%,17%), size: 9.0pt)), box(body: square(fill: cmyk(45%,57%,14%,15%), size: 9.0pt)), box(body: square(fill: cmyk(40%,51%,12%,13%), size: 9.0pt)), box(body: square(fill: cmyk(35%,44%,11%,11%), size: 9.0pt)), box(body: square(fill: cmyk(30%,38%,9%,10%), size: 9.0pt)), box(body: square(fill: cmyk(25%,32%,8%,8%), size: 9.0pt)), box(body: square(fill: cmyk(20%,25%,6%,6%), size: 9.0pt)), box(body: square(fill: cmyk(15%,19%,4%,5%), size: 9.0pt)), box(body: square(fill: cmyk(10%,12%,3%,3%), size: 9.0pt)), box(body: square(fill: cmyk(5%,6%,1%,1%), size: 9.0pt)), box(body: square(fill: cmyk(0%,0%,0%,0%), size: 9.0pt)), parbreak() }) typst-0.8.0.2/test/typ/compiler/color-00.typ0000644000000000000000000000057307346545000016736 0ustar0000000000000000// Test CMYK color conversion. #let c = cmyk(50%, 64%, 16%, 17%) #stack( dir: ltr, spacing: 1fr, rect(width: 1cm, fill: cmyk(69%, 11%, 69%, 41%)), rect(width: 1cm, fill: c), rect(width: 1cm, fill: c.negate()), ) #for x in range(0, 11) { box(square(size: 9pt, fill: c.lighten(x * 10%))) } #for x in range(0, 11) { box(square(size: 9pt, fill: c.darken(x * 10%))) } typst-0.8.0.2/test/typ/compiler/color-01.out0000644000000000000000000000737007346545000016734 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/color-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/color-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/color-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/color-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lighten")) (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 20.0 Percent)) ])) [ NormalArg (Literal (Numeric 50.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 60.0 Percent)) ]) ]) , SoftBreak , Code "typ/compiler/color-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "darken")) (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 80.0 Percent)) ])) [ NormalArg (Literal (Numeric 20.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 63.9 Percent)) ]) ]) , SoftBreak , Code "typ/compiler/color-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "negate")) (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 80.0 Percent)) ])) []) , NormalArg (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 20.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [luma(64%)]), text(body: [ /= ]), text(body: [luma(63%)]), text(body: [)]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/color-01.typ0000644000000000000000000000024707346545000016735 0ustar0000000000000000// Test gray color modification. // Ref: false #test(luma(20%).lighten(50%), luma(60%)) #test(luma(80%).darken(20%), luma(63.9%)) #test(luma(80%).negate(), luma(20%)) typst-0.8.0.2/test/typ/compiler/comment-00.out0000644000000000000000000000503607346545000017254 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/comment-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/comment-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/comment-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Comment , Text "B" , ParBreak , Comment , Text "C" , Comment , Text "D" , ParBreak , Comment , Code "typ/compiler/comment-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "integer")) ]) , ParBreak , Comment , Comment , SoftBreak , Comment , Comment , ParBreak , Text "E" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), text(body: [B]), parbreak(), text(body: [C]), text(body: [D]), parbreak(), text(body: [✅]), parbreak(), text(body: [ ]), parbreak(), text(body: [E]), parbreak() }) typst-0.8.0.2/test/typ/compiler/comment-00.typ0000644000000000000000000000043707346545000017261 0ustar0000000000000000// Line comment acts as spacing. A// you B // Block comment does not act as spacing, nested block comments. C/* /* */ */D // Works in code. #test(type(/*1*/ 1) // , "integer") // End of block comment in line comment. // Hello */ // Nested line comment. /*//*/ Still comment. */ E typst-0.8.0.2/test/typ/compiler/comment-01.out0000644000000000000000000000002107346545000017242 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/comment-01.typ0000644000000000000000000000017407346545000017260 0ustar0000000000000000// End should not appear without start. // Error: 7-9 unexpected end of block comment /* */ */ // Unterminated is okay. /* typst-0.8.0.2/test/typ/compiler/construct-00.out0000644000000000000000000000510507346545000017633 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/construct-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/construct-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/construct-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/construct-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "leading") (Literal (Numeric 2.0 Pt)) ]) , SoftBreak , Code "typ/compiler/construct-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "list")) [ KeyValArg (Identifier "body-indent") (Literal (Numeric 20.0 Pt)) , NormalArg (Block (Content [ Text "First" ])) , NormalArg (FuncCall (Ident (Identifier "list")) [ BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(body-indent: 20.0pt, children: (text(body: [First]), list(children: (text(body: [A]), text(body: [B]))))), parbreak() }) typst-0.8.0.2/test/typ/compiler/construct-00.typ0000644000000000000000000000026407346545000017641 0ustar0000000000000000// Ensure that constructor styles aren't passed down the tree. // The inner list should have no extra indent. #set par(leading: 2pt) #list(body-indent: 20pt, [First], list[A][B]) typst-0.8.0.2/test/typ/compiler/construct-01.out0000644000000000000000000000636607346545000017646 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/construct-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/construct-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/construct-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Code "typ/compiler/construct-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (Block (Content [ Text ">" ])) ]) , SoftBreak , Code "typ/compiler/construct-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (Block (Content [ EnDash ])) , BlockArg [ SoftBreak , Code "typ/compiler/construct-01.typ" ( line 7 , column 4 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "inset") (Literal (Numeric 4.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "list")) [ BlockArg [ Text "A" ] ]) ]) , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(children: ({ text(body: [ ]), rect(body: list(children: (text(body: [A])), marker: text(body: [>])), fill: rgb(18%,80%,25%,100%), inset: 4.0pt, width: 2.0cm), parbreak() }), marker: text(body: [–])), parbreak() }) typst-0.8.0.2/test/typ/compiler/construct-01.typ0000644000000000000000000000037607346545000017646 0ustar0000000000000000// Ensure that constructor styles win, but not over outer styles. // The outer paragraph should be right-aligned, // but the B should be center-aligned. #set list(marker: [>]) #list(marker: [--])[ #rect(width: 2cm, fill: green, inset: 4pt, list[A]) ] typst-0.8.0.2/test/typ/compiler/construct-02.out0000644000000000000000000000550307346545000017637 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/construct-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/construct-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/construct-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/construct-02.typ" ( line 4 , column 2 ) (Block (Content [ Code "typ/compiler/construct-02.typ" ( line 4 , column 4 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "yellow")) ]) , Code "typ/compiler/construct-02.typ" ( line 4 , column 28 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 1.0 Em)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 5.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "rect")) []) ]) ]) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: rect(body: rect(fill: rgb(100%,86%,0%,100%)), fill: rgb(100%,86%,0%,100%), inset: 5.0pt), size: 1.0em), parbreak() }) typst-0.8.0.2/test/typ/compiler/construct-02.typ0000644000000000000000000000022107346545000017634 0ustar0000000000000000// The inner rectangle should also be yellow here. // (and therefore invisible) #[#set rect(fill: yellow);#text(1em, rect(inset: 5pt, rect()))] typst-0.8.0.2/test/typ/compiler/construct-03.out0000644000000000000000000000463407346545000017644 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/construct-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/construct-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/construct-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Code "typ/compiler/construct-03.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "yellow")) , KeyValArg (Identifier "inset") (Literal (Numeric 5.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "rect")) []) ]) ]) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A ]), box(body: rect(body: rect(), fill: rgb(100%,86%,0%,100%), inset: 5.0pt)), text(body: [ B]), parbreak() }) typst-0.8.0.2/test/typ/compiler/construct-03.typ0000644000000000000000000000014407346545000017641 0ustar0000000000000000// The inner rectangle should not be yellow here. A #box(rect(fill: yellow, inset: 5pt, rect())) B typst-0.8.0.2/test/typ/compiler/construct-04.out0000644000000000000000000000474707346545000017652 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/construct-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/construct-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/construct-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/construct-04.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "enum"))) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) ])) , SoftBreak , Code "typ/compiler/construct-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (Literal (String "(a)")) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (FuncCall (Ident (Identifier "enum")) [ BlockArg [ Text "B" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), enum(children: (text(body: [A]), enum(children: (text(body: [B])))), numbering: "(a)"), parbreak() }) typst-0.8.0.2/test/typ/compiler/construct-04.typ0000644000000000000000000000022707346545000017644 0ustar0000000000000000// The constructor property should still work // when there are recursive show rules. #show enum: set text(blue) #enum(numbering: "(a)", [A], enum[B]) typst-0.8.0.2/test/typ/compiler/dict-00.out0000644000000000000000000000620607346545000016535 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/dict-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/dict-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/dict-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/dict-00.typ" ( line 5 , column 2 ) (Dict []) , ParBreak , Comment , Code "typ/compiler/dict-00.typ" ( line 8 , column 2 ) (Let (BasicBind (Just (Identifier "dict"))) (Dict [ Reg ( Ident (Identifier "normal") , Literal (Int 1) ) , Reg ( Literal (String "spacy key") , Literal (Int 2) ) ])) , SoftBreak , Code "typ/compiler/dict-00.typ" ( line 9 , column 2 ) (Ident (Identifier "dict")) , ParBreak , Code "typ/compiler/dict-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "normal")) (Ident (Identifier "dict"))) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/dict-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "dict"))) [ NormalArg (Literal (String "spacy key")) ]) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [()]), parbreak(), text(body: [ ]), text(body: [(normal: 1, spacy key: 2)]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/dict-00.typ0000644000000000000000000000023707346545000016540 0ustar0000000000000000// Ref: true // Empty #(:) // Two pairs and string key. #let dict = (normal: 1, "spacy key": 2) #dict #test(dict.normal, 1) #test(dict.at("spacy key"), 2) typst-0.8.0.2/test/typ/compiler/dict-01.out0000644000000000000000000001164307346545000016537 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/dict-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/dict-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/dict-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/dict-01.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "dict"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Literal (String "b b") , Literal (Int 1) ) ]) , Assign (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "dict"))) [ NormalArg (Literal (String "b b")) ]) (Plus (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "dict"))) [ NormalArg (Literal (String "b b")) ]) (Literal (Int 1))) , Assign (FieldAccess (Ident (Identifier "state")) (Ident (Identifier "dict"))) (Dict [ Reg ( Ident (Identifier "ok") , Literal (Boolean True) ) , Reg ( Ident (Identifier "err") , Literal (Boolean False) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "dict")) , NormalArg (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Literal (String "b b") , Literal (Int 2) ) , Reg ( Ident (Identifier "state") , Dict [ Reg ( Ident (Identifier "ok") , Literal (Boolean True) ) , Reg ( Ident (Identifier "err") , Literal (Boolean False) ) ] ) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "ok")) (FieldAccess (Ident (Identifier "state")) (Ident (Identifier "dict")))) , NormalArg (Literal (Boolean True)) ] , Assign (FieldAccess (Ident (Identifier "ok")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "dict"))) [ NormalArg (Literal (String "state")) ])) (Literal (Boolean False)) , FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "ok")) (FieldAccess (Ident (Identifier "state")) (Ident (Identifier "dict")))) , NormalArg (Literal (Boolean False)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "err")) (FieldAccess (Ident (Identifier "state")) (Ident (Identifier "dict")))) , NormalArg (Literal (Boolean False)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/dict-01.typ0000644000000000000000000000046507346545000016544 0ustar0000000000000000// Test lvalue and rvalue access. #{ let dict = (a: 1, "b b": 1) dict.at("b b") += 1 dict.state = (ok: true, err: false) test(dict, (a: 1, "b b": 2, state: (ok: true, err: false))) test(dict.state.ok, true) dict.at("state").ok = false test(dict.state.ok, false) test(dict.state.err, false) } typst-0.8.0.2/test/typ/compiler/dict-02.out0000644000000000000000000000002107346545000016524 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-02.typ0000644000000000000000000000025407346545000016541 0ustar0000000000000000// Test rvalue missing key. #{ let dict = (a: 1, b: 2) // Error: 11-23 dictionary does not contain key "c" and no default value was specified let x = dict.at("c") } typst-0.8.0.2/test/typ/compiler/dict-03.out0000644000000000000000000000573607346545000016547 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/dict-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/dict-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/dict-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/dict-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) [ NormalArg (Literal (String "b")) , KeyValArg (Identifier "default") (Literal (Int 3)) ]) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/dict-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) [ NormalArg (Literal (String "c")) , KeyValArg (Identifier "default") (Literal (Int 3)) ]) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/dict-03.typ0000644000000000000000000000015607346545000016543 0ustar0000000000000000// Test default value. #test((a: 1, b: 2).at("b", default: 3), 2) #test((a: 1, b: 2).at("c", default: 3), 3) typst-0.8.0.2/test/typ/compiler/dict-04.out0000644000000000000000000000002107346545000016526 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-04.typ0000644000000000000000000000026507346545000016545 0ustar0000000000000000// Missing lvalue is not automatically none-initialized. #{ let dict = (:) // Error: 3-9 dictionary does not contain key "b" and no default value was specified dict.b += 1 } typst-0.8.0.2/test/typ/compiler/dict-05.out0000644000000000000000000001340307346545000016537 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/dict-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/dict-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/dict-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/dict-05.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "dict"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 3) ) , Reg ( Ident (Identifier "c") , Literal (Int 2) ) , Reg ( Ident (Identifier "b") , Literal (Int 1) ) ])) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "c")) (Ident (Identifier "dict"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "dict"))) []) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "values")) (Ident (Identifier "dict"))) []) , NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 2)) , Reg (Literal (Int 1)) ]) ]) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "pairs")) (Ident (Identifier "dict"))) [])) [ NormalArg (FuncExpr [ NormalParam (Identifier "p") ] (Plus (FuncCall (FieldAccess (Ident (Identifier "first")) (Ident (Identifier "p"))) []) (FuncCall (Ident (Identifier "str")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Ident (Identifier "p"))) []) ]))) ])) []) , NormalArg (Literal (String "a3c2b1")) ]) , ParBreak , Code "typ/compiler/dict-05.typ" ( line 9 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "remove")) (Ident (Identifier "dict"))) [ NormalArg (Literal (String "c")) ]) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "c")) (Ident (Identifier "dict"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/dict-05.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "dict")) , NormalArg (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 3) ) , Reg ( Ident (Identifier "b") , Literal (Int 1) ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [2]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/dict-05.typ0000644000000000000000000000043207346545000016542 0ustar0000000000000000// Test dictionary methods. #let dict = (a: 3, c: 2, b: 1) #test("c" in dict, true) #test(dict.len(), 3) #test(dict.values(), (3, 2, 1)) #test(dict.pairs().map(p => p.first() + str(p.last())).join(), "a3c2b1") #dict.remove("c") #test("c" in dict, false) #test(dict, (a: 3, b: 1)) typst-0.8.0.2/test/typ/compiler/dict-06.out0000644000000000000000000000002107346545000016530 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-06.typ0000644000000000000000000000010707346545000016542 0ustar0000000000000000// Error: 24-29 duplicate key: first #(first: 1, second: 2, first: 3) typst-0.8.0.2/test/typ/compiler/dict-07.out0000644000000000000000000000002107346545000016531 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-07.typ0000644000000000000000000000007207346545000016544 0ustar0000000000000000// Error: 17-20 duplicate key: a #(a: 1, "b": 2, "a": 3) typst-0.8.0.2/test/typ/compiler/dict-08.out0000644000000000000000000000002107346545000016532 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-08.typ0000644000000000000000000000073507346545000016553 0ustar0000000000000000// Simple expression after already being identified as a dictionary. // Error: 9-10 expected named or keyed pair, found identifier #(a: 1, b) // Identified as dictionary due to initial colon. // Error: 4-5 expected named or keyed pair, found integer // Error: 5 expected comma // Error: 12-16 expected identifier or string, found boolean // Error: 17 expected expression #(:1 b:"", true:) // Error: 3-8 expected identifier or string, found binary expression #(a + b: "hey") typst-0.8.0.2/test/typ/compiler/dict-09.out0000644000000000000000000000002107346545000016533 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-09.typ0000644000000000000000000000011707346545000016546 0ustar0000000000000000// Error: 3-15 cannot mutate a temporary value #((key: "val").other = "some") typst-0.8.0.2/test/typ/compiler/dict-10.out0000644000000000000000000000002107346545000016523 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/dict-10.typ0000644000000000000000000000014507346545000016537 0ustar0000000000000000#{ let object = none // Error: 3-9 expected dictionary, found none object.property = "value" } typst-0.8.0.2/test/typ/compiler/field-00.out0000644000000000000000000000561107346545000016674 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/field-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/field-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/field-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/field-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "dict"))) (Dict [ Reg ( Ident (Identifier "nothing") , Literal (String "ness") ) , Reg ( Ident (Identifier "hello") , Literal (String "world") ) ])) , SoftBreak , Code "typ/compiler/field-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "nothing")) (Ident (Identifier "dict"))) , NormalArg (Literal (String "ness")) ]) , SoftBreak , Code "typ/compiler/field-00.typ" ( line 5 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "world"))) (FieldAccess (Ident (Identifier "hello")) (Ident (Identifier "dict"))) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "world")) , NormalArg (Literal (String "world")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/field-00.typ0000644000000000000000000000024307346545000016675 0ustar0000000000000000// Test field on dictionary. #let dict = (nothing: "ness", hello: "world") #test(dict.nothing, "ness") #{ let world = dict .hello test(world, "world") } typst-0.8.0.2/test/typ/compiler/field-01.out0000644000000000000000000000507007346545000016674 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/field-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/field-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/field-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/field-01.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (FieldAccess (Ident (Identifier "children")) (Ident (Identifier "it")))) []) , NormalArg (Literal (Int 3)) ] ])))) , ParBreak , BulletListItem [ Text "A" ] , SoftBreak , BulletListItem [ Text "B" ] , SoftBreak , BulletListItem [ Text "C" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [✅]) }) typst-0.8.0.2/test/typ/compiler/field-01.typ0000644000000000000000000000013507346545000016676 0ustar0000000000000000// Test fields on elements. #show list: it => { test(it.children.len(), 3) } - A - B - C typst-0.8.0.2/test/typ/compiler/field-02.out0000644000000000000000000000433407346545000016677 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/field-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/field-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/field-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/field-02.typ" ( line 3 , column 2 ) (FieldAccess (Ident (Identifier "item")) (Ident (Identifier "enum"))) , SoftBreak , Code "typ/compiler/field-02.typ" ( line 4 , column 2 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "assert"))) , SoftBreak , Code "typ/compiler/field-02.typ" ( line 5 , column 2 ) (FieldAccess (Ident (Identifier "ne")) (Ident (Identifier "assert"))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compiler/field-02.typ0000644000000000000000000000010507346545000016674 0ustar0000000000000000// Test fields on function scopes. #enum.item #assert.eq #assert.ne typst-0.8.0.2/test/typ/compiler/field-03.out0000644000000000000000000000002107346545000016665 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-03.typ0000644000000000000000000000012307346545000016675 0ustar0000000000000000// Error: 9-16 function `assert` does not contain field `invalid` #assert.invalid typst-0.8.0.2/test/typ/compiler/field-04.out0000644000000000000000000000002107346545000016666 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-04.typ0000644000000000000000000000011707346545000016701 0ustar0000000000000000// Error: 7-14 function `enum` does not contain field `invalid` #enum.invalid typst-0.8.0.2/test/typ/compiler/field-05.out0000644000000000000000000000002107346545000016667 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-05.typ0000644000000000000000000000012107346545000016675 0ustar0000000000000000// Error: 7-14 function `enum` does not contain field `invalid` #enum.invalid() typst-0.8.0.2/test/typ/compiler/field-06.out0000644000000000000000000000002107346545000016670 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-06.typ0000644000000000000000000000017007346545000016702 0ustar0000000000000000// Closures cannot have fields. #let f(x) = x // Error: 4-11 cannot access fields on user-defined functions #f.invalid typst-0.8.0.2/test/typ/compiler/field-07.out0000644000000000000000000000002107346545000016671 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-07.typ0000644000000000000000000000015207346545000016703 0ustar0000000000000000// Error: 6-13 dictionary does not contain key "invalid" and no default value was specified #(:).invalid typst-0.8.0.2/test/typ/compiler/field-08.out0000644000000000000000000000002107346545000016672 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-08.typ0000644000000000000000000000007707346545000016712 0ustar0000000000000000// Error: 8-10 cannot access fields on type boolean #false.ok typst-0.8.0.2/test/typ/compiler/field-09.out0000644000000000000000000000002107346545000016673 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-09.typ0000644000000000000000000000017107346545000016706 0ustar0000000000000000// Error: 25-28 content does not contain field "fun" and no default value was specified #show heading: it => it.fun = A typst-0.8.0.2/test/typ/compiler/field-10.out0000644000000000000000000000002107346545000016663 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/field-10.typ0000644000000000000000000000010207346545000016670 0ustar0000000000000000// Error: 9-13 cannot access fields on type boolean #{false.true} typst-0.8.0.2/test/typ/compiler/for-00.out0000644000000000000000000002304307346545000016376 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/for-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/for-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/for-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/for-00.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "x"))) (Array []) (Block (Content [ Text "Nope" ]))) , ParBreak , Comment , Comment , Code "typ/compiler/for-00.typ" ( line 9 , column 2 ) (For (DestructuringBind [ Simple (Just (Identifier "k")) , Simple (Just (Identifier "v")) ]) (Dict [ Reg ( Ident (Identifier "Name") , Literal (String "Typst") ) , Reg ( Ident (Identifier "Age") , Literal (Int 2) ) ]) (Block (Content [ SoftBreak , Code "typ/compiler/for-00.typ" ( line 10 , column 4 ) (Ident (Identifier "k")) , Text ":" , Space , Code "typ/compiler/for-00.typ" ( line 10 , column 8 ) (Ident (Identifier "v")) , Text "." , ParBreak ]))) , ParBreak , Comment , Comment , Code "typ/compiler/for-00.typ" ( line 15 , column 2 ) (Block (CodeBlock [ Literal (String "[") , For (BasicBind (Just (Identifier "v"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) (Block (CodeBlock [ If [ ( GreaterThan (Ident (Identifier "v")) (Literal (Int 1)) , Block (Content [ Text "," , Space ]) ) ] , Block (Content [ Code "typ/compiler/for-00.typ" ( line 19 , column 7 ) (Ident (Identifier "v")) ]) , If [ ( Equals (Ident (Identifier "v")) (Literal (Int 1)) , Block (Content [ Text "st" ]) ) ] , If [ ( Equals (Ident (Identifier "v")) (Literal (Int 2)) , Block (Content [ Text "nd" ]) ) ] , If [ ( Equals (Ident (Identifier "v")) (Literal (Int 3)) , Block (Content [ Text "rd" ]) ) ] , If [ ( GreaterThanOrEqual (Ident (Identifier "v")) (Literal (Int 4)) , Block (Content [ Text "th" ]) ) ] ])) , Literal (String "]") ])) , ParBreak , Comment , Comment , Code "typ/compiler/for-00.typ" ( line 30 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) , Reg (Literal (Int 7)) ]) (Block (Content [ Code "typ/compiler/for-00.typ" ( line 30 , column 35 ) (If [ ( And (GreaterThanOrEqual (Ident (Identifier "v")) (Literal (Int 2))) (LessThanOrEqual (Ident (Identifier "v")) (Literal (Int 5))) , Block (CodeBlock [ FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "v")) ] ]) ) ]) ]))) , ParBreak , Comment , Code "typ/compiler/for-00.typ" ( line 33 , column 2 ) (LetFunc (Identifier "f1") [ SinkParam (Just (Identifier "args")) ] (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "args"))) [])) [ NormalArg (Ident (Identifier "repr")) ])) , SoftBreak , Code "typ/compiler/for-00.typ" ( line 34 , column 2 ) (LetFunc (Identifier "f2") [ SinkParam (Just (Identifier "args")) ] (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "pairs")) (FuncCall (FieldAccess (Ident (Identifier "named")) (Ident (Identifier "args"))) [])) [])) [ NormalArg (FuncExpr [ NormalParam (Identifier "p") ] (Plus (Plus (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "first")) (Ident (Identifier "p"))) []) ]) (Literal (String ": "))) (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Ident (Identifier "p"))) []) ]))) ])) , SoftBreak , Code "typ/compiler/for-00.typ" ( line 35 , column 2 ) (LetFunc (Identifier "f") [ SinkParam (Just (Identifier "args")) ] (FuncCall (FieldAccess (Ident (Identifier "join")) (Plus (FuncCall (Ident (Identifier "f1")) [ SpreadArg (Ident (Identifier "args")) ]) (FuncCall (Ident (Identifier "f2")) [ SpreadArg (Ident (Identifier "args")) ]))) [ NormalArg (Literal (String ", ")) ])) , SoftBreak , Code "typ/compiler/for-00.typ" ( line 36 , column 2 ) (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , KeyValArg (Identifier "a") (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [ ]), text(body: [Name]), text(body: [: ]), text(body: [Typst]), text(body: [.]), parbreak(), text(body: [ ]), text(body: [Age]), text(body: [: ]), text(body: [2]), text(body: [.]), parbreak(), parbreak(), text(body: [[]), text(body: [1]), text(body: [st]), text(body: [, ]), text(body: [2]), text(body: [nd]), text(body: [, ]), text(body: [3]), text(body: [rd]), text(body: [, ]), text(body: [4]), text(body: [th]), text(body: []]), parbreak(), text(body: [2]), text(body: [3]), text(body: [4]), text(body: [5]), parbreak(), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [1, "a": 2]), parbreak() }) typst-0.8.0.2/test/typ/compiler/for-00.typ0000644000000000000000000000134507346545000016404 0ustar0000000000000000// Ref: true // Empty array. #for x in () [Nope] // Dictionary is traversed in insertion order. // Should output `Name: Typst. Age: 2.`. #for (k, v) in (Name: "Typst", Age: 2) [ #k: #v. ] // Block body. // Should output `[1st, 2nd, 3rd, 4th]`. #{ "[" for v in (1, 2, 3, 4) { if v > 1 [, ] [#v] if v == 1 [st] if v == 2 [nd] if v == 3 [rd] if v >= 4 [th] } "]" } // Content block body. // Should output `2345`. #for v in (1, 2, 3, 4, 5, 6, 7) [#if v >= 2 and v <= 5 { repr(v) }] // Map captured arguments. #let f1(..args) = args.pos().map(repr) #let f2(..args) = args.named().pairs().map(p => repr(p.first()) + ": " + repr(p.last())) #let f(..args) = (f1(..args) + f2(..args)).join(", ") #f(1, a: 2) typst-0.8.0.2/test/typ/compiler/for-01.out0000644000000000000000000001753607346545000016411 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/for-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/for-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/for-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/for-01.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "out"))) (Array [])) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) (Block (CodeBlock [ Assign (Ident (Identifier "out")) (Plus (Ident (Identifier "out")) (Array [ Reg (Ident (Identifier "v")) ])) ]))) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 10 , column 2 ) (For (DestructuringBind [ Simple (Just (Identifier "i")) , Simple (Just (Identifier "v")) ]) (FuncCall (FieldAccess (Ident (Identifier "enumerate")) (Array [ Reg (Literal (String "1")) , Reg (Literal (String "2")) , Reg (Literal (String "3")) ])) []) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (Plus (Ident (Identifier "i")) (Literal (Int 1))) ]) , NormalArg (Ident (Identifier "v")) ] ]))) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 15 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 4) ) , Reg ( Ident (Identifier "b") , Literal (Int 5) ) ]) (Block (CodeBlock [ Assign (Ident (Identifier "out")) (Plus (Ident (Identifier "out")) (Array [ Reg (Ident (Identifier "v")) ])) ]))) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 20 , column 2 ) (For (DestructuringBind [ Simple (Just (Identifier "k")) , Simple (Just (Identifier "v")) ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 6) ) , Reg ( Ident (Identifier "b") , Literal (Int 7) ) ]) (Block (CodeBlock [ Assign (Ident (Identifier "out")) (Plus (Ident (Identifier "out")) (Array [ Reg (Ident (Identifier "k")) ])) , Assign (Ident (Identifier "out")) (Plus (Ident (Identifier "out")) (Array [ Reg (Ident (Identifier "v")) ])) ]))) , ParBreak , Code "typ/compiler/for-01.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "out")) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Array [ Reg (Literal (String "a")) , Reg (Literal (Int 4)) ]) , Reg (Array [ Reg (Literal (String "b")) , Reg (Literal (Int 5)) ]) , Reg (Literal (String "a")) , Reg (Literal (Int 6)) , Reg (Literal (String "b")) , Reg (Literal (Int 7)) ]) ]) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 28 , column 2 ) (Let (BasicBind (Just (Identifier "first"))) (Literal (Boolean True))) , SoftBreak , Code "typ/compiler/for-01.typ" ( line 29 , column 2 ) (Let (BasicBind (Just (Identifier "joined"))) (For (BasicBind (Just (Identifier "c"))) (Literal (String "abc\128105\8205\128105\8205\128102\8205\128102")) (Block (CodeBlock [ If [ ( Not (Ident (Identifier "first")) , Block (CodeBlock [ Literal (String ", ") ]) ) ] , Assign (Ident (Identifier "first")) (Literal (Boolean False)) , Ident (Identifier "c") ])))) , ParBreak , Code "typ/compiler/for-01.typ" ( line 35 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "joined")) , NormalArg (Literal (String "a, b, c, \128105\8205\128105\8205\128102\8205\128102")) ]) , ParBreak , Comment , Code "typ/compiler/for-01.typ" ( line 38 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (For (BasicBind (Just (Identifier "v"))) (Literal (String "")) (Block (Content []))) , NormalArg (Literal None) ]) , SoftBreak , Code "typ/compiler/for-01.typ" ( line 39 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (For (BasicBind (Just (Identifier "v"))) (Literal (String "1")) (Block (Content []))) ]) , NormalArg (Literal (String "content")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), parbreak(), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak(), parbreak(), parbreak(), text(body: [✅]), parbreak(), text(body: [ ]), parbreak(), text(body: [❌(]), text(body: ["a, b, c, 👩, ‍, 👩, ‍, 👦, ‍, 👦"]), text(body: [ /= ]), text(body: ["a, b, c, 👩‍👩‍👦‍👦"]), text(body: [)]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/for-01.typ0000644000000000000000000000126107346545000016402 0ustar0000000000000000#let out = () // Values of array. #for v in (1, 2, 3) { out += (v,) } // Indices and values of array. #for (i, v) in ("1", "2", "3").enumerate() { test(repr(i + 1), v) } // Pairs of dictionary. #for v in (a: 4, b: 5) { out += (v,) } // Keys and values of dictionary. #for (k, v) in (a: 6, b: 7) { out += (k,) out += (v,) } #test(out, (1, 2, 3, ("a", 4), ("b", 5), "a", 6, "b", 7)) // Grapheme clusters of string. #let first = true #let joined = for c in "abc👩‍👩‍👦‍👦" { if not first { ", " } first = false c } #test(joined, "a, b, c, 👩‍👩‍👦‍👦") // Return value. #test(for v in "" [], none) #test(type(for v in "1" []), "content") typst-0.8.0.2/test/typ/compiler/for-02.out0000644000000000000000000000002107346545000016367 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/for-02.typ0000644000000000000000000000012607346545000016402 0ustar0000000000000000// Uniterable expression. // Error: 11-15 cannot loop over boolean #for v in true {} typst-0.8.0.2/test/typ/compiler/for-03.out0000644000000000000000000000002107346545000016370 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/for-03.typ0000644000000000000000000000016707346545000016410 0ustar0000000000000000// Keys and values of strings. // Error: 6-12 cannot destructure values of string #for (k, v) in "hi" { dont-care } typst-0.8.0.2/test/typ/compiler/for-04.out0000644000000000000000000000002107346545000016371 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/for-04.typ0000644000000000000000000000120607346545000016404 0ustar0000000000000000// Destructuring without parentheses. // Error: 7 expected keyword `in`. did you mean to use a destructuring pattern? #for k, v in (a: 4, b: 5) { dont-care } // Error: 5 expected identifier #for // Error: 5 expected identifier #for// // Error: 6 expected identifier #{for} // Error: 7 expected keyword `in` #for v // Error: 10 expected expression #for v in // Error: 15 expected block #for v in iter // Error: 5 expected identifier #for v in iter {} // Error: 6 expected identifier // Error: 10 expected block A#for "v" thing // Error: 5 expected identifier #for "v" in iter {} // Error: 7 expected keyword `in` #for a + b in iter {} typst-0.8.0.2/test/typ/compiler/highlight-00.out0000644000000000000000000000655507346545000017570 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/highlight-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/highlight-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/highlight-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/highlight-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , ParBreak , RawBlock "typ" "#set hello()\n#set hello()\n#set hello.world()\n#set hello.my.world()\n#let foo(x) = x * 2\n#show heading: func\n#show module.func: func\n#show module.func: it => {}\n#foo(ident: ident)\n#hello\n#hello()\n#box[]\n#hello.world\n#hello.world()\n#hello().world()\n#hello.my.world\n#hello.my.world()\n#hello.my().world\n#hello.my().world()\n#{ hello }\n#{ hello() }\n#{ hello.world() }\n$ hello $\n$ hello() $\n$ box[] $\n$ hello.world $\n$ hello.world() $\n$ hello.my.world() $\n$ f_zeta(x), f_zeta(x)/1 $\n$ emph(hello.my.world()) $\n$ emph(hello.my().world) $\n$ emph(hello.my().world()) $\n$ #hello $\n$ #hello() $\n$ #hello.world $\n$ #hello.world() $\n$ #box[] $\n#if foo []\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), raw(block: true, lang: "typ", text: "#set hello()\n#set hello()\n#set hello.world()\n#set hello.my.world()\n#let foo(x) = x * 2\n#show heading: func\n#show module.func: func\n#show module.func: it => {}\n#foo(ident: ident)\n#hello\n#hello()\n#box[]\n#hello.world\n#hello.world()\n#hello().world()\n#hello.my.world\n#hello.my.world()\n#hello.my().world\n#hello.my().world()\n#{ hello }\n#{ hello() }\n#{ hello.world() }\n$ hello $\n$ hello() $\n$ box[] $\n$ hello.world $\n$ hello.world() $\n$ hello.my.world() $\n$ f_zeta(x), f_zeta(x)/1 $\n$ emph(hello.my.world()) $\n$ emph(hello.my().world) $\n$ emph(hello.my().world()) $\n$ #hello $\n$ #hello() $\n$ #hello.world $\n$ #hello.world() $\n$ #box[] $\n#if foo []\n"), parbreak() }) typst-0.8.0.2/test/typ/compiler/highlight-00.typ0000644000000000000000000000124307346545000017562 0ustar0000000000000000#set page(width: auto) ```typ #set hello() #set hello() #set hello.world() #set hello.my.world() #let foo(x) = x * 2 #show heading: func #show module.func: func #show module.func: it => {} #foo(ident: ident) #hello #hello() #box[] #hello.world #hello.world() #hello().world() #hello.my.world #hello.my.world() #hello.my().world #hello.my().world() #{ hello } #{ hello() } #{ hello.world() } $ hello $ $ hello() $ $ box[] $ $ hello.world $ $ hello.world() $ $ hello.my.world() $ $ f_zeta(x), f_zeta(x)/1 $ $ emph(hello.my.world()) $ $ emph(hello.my().world) $ $ emph(hello.my().world()) $ $ #hello $ $ #hello() $ $ #hello.world $ $ #hello.world() $ $ #box[] $ #if foo [] ``` typst-0.8.0.2/test/typ/compiler/hint-00.out0000644000000000000000000000002107346545000016541 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/hint-00.typ0000644000000000000000000000016607346545000016560 0ustar0000000000000000// Error: 1:17-1:19 expected length, found integer: a length needs a unit – did you mean 12pt? #set text(size: 12) typst-0.8.0.2/test/typ/compiler/hint-01.out0000644000000000000000000000002107346545000016542 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/hint-01.typ0000644000000000000000000000024707346545000016561 0ustar0000000000000000#{ let a = 2 a = 1-a a = a -1 // Error: 7-10 unknown variable: a-1 – if you meant to use subtraction, try adding spaces around the minus sign. a = a-1 } typst-0.8.0.2/test/typ/compiler/hint-02.out0000644000000000000000000000002107346545000016543 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/hint-02.typ0000644000000000000000000000020307346545000016552 0ustar0000000000000000#{ // Error: 3-6 unknown variable: a-1 – if you meant to use subtraction, try adding spaces around the minus sign. a-1 = 2 } typst-0.8.0.2/test/typ/compiler/if-00.out0000644000000000000000000000503007346545000016202 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/if-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/if-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/if-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/if-00.typ" ( line 3 , column 2 ) (If [ ( LessThan (Literal (Int 1)) (Literal (Int 2)) , Block (Content [ SoftBreak , Text "One" , Text "." , ParBreak ]) ) ]) , ParBreak , Code "typ/compiler/if-00.typ" ( line 7 , column 2 ) (If [ ( Equals (Literal (Boolean True)) (Literal (Boolean False)) , Block (Content [ SoftBreak , Text "{Bad}," , Space , Text "but" , Space , Text "we" , Space , Text "{dont" , Text "-" , Text "care}!" , ParBreak ]) ) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ One.]), parbreak(), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/if-00.typ0000644000000000000000000000015007346545000016205 0ustar0000000000000000// Test condition evaluation. #if 1 < 2 [ One. ] #if true == false [ {Bad}, but we {dont-care}! ] typst-0.8.0.2/test/typ/compiler/if-01.out0000644000000000000000000001171307346545000016210 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/if-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/if-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/if-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/if-01.typ" ( line 3 , column 2 ) (If [ ( Block (CodeBlock [ Literal (Boolean True) ]) , Block (Content [ SoftBreak , Text "One" , Text "." , ParBreak ]) ) ]) , ParBreak , Comment , Code "typ/compiler/if-01.typ" ( line 8 , column 2 ) (If [ ( Not (Equals (Block (Content [])) (Literal None)) , Block (Content [ SoftBreak , Text "Two" , Text "." , ParBreak ]) ) ]) , ParBreak , Comment , Code "typ/compiler/if-01.typ" ( line 13 , column 2 ) (If [ ( Equals (Plus (Literal (Int 1)) (Literal (Int 1))) (Literal (Int 1)) , Block (Content [ SoftBreak , Text "Nope" , Text "." , ParBreak ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "Three.") ]) ) ]) , ParBreak , Comment , Code "typ/compiler/if-01.typ" ( line 23 , column 2 ) (If [ ( Literal (Boolean False) , Block (Content [ SoftBreak , Text "Bad" , Text "." , ParBreak ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "point"))) (Literal (String ".")) , Plus (Literal (String "Four")) (Ident (Identifier "point")) ]) ) ]) , ParBreak , Comment , Code "typ/compiler/if-01.typ" ( line 31 , column 2 ) (Block (CodeBlock [ If [ ( Equals (Literal (String "content")) (FuncCall (Ident (Identifier "type")) [ BlockArg [ Text "b" ] ]) , Block (Content [ Text "Fi" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "Nope" ]) ) ] , If [ ( Equals (Literal (String "content")) (Ident (Identifier "type")) , Block (Content [ Text "Nope" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "ve" , Text "." ]) ) ] ])) , ParBreak , Code "typ/compiler/if-01.typ" ( line 36 , column 2 ) (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 3))) , SoftBreak , Code "typ/compiler/if-01.typ" ( line 37 , column 2 ) (If [ ( LessThan (Ident (Identifier "i")) (Literal (Int 2)) , Block (Content [ SoftBreak , Text "Five" , Text "." , ParBreak ]) ) , ( LessThan (Ident (Identifier "i")) (Literal (Int 4)) , Block (Content [ SoftBreak , Text "Six" , Text "." , ParBreak ]) ) , ( Literal (Boolean True) , Block (Content [ SoftBreak , Text "Seven" , Text "." , ParBreak ]) ) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ One.]), parbreak(), parbreak(), text(body: [ Two.]), parbreak(), parbreak(), text(body: [Three.]), parbreak(), text(body: [Four.]), parbreak(), text(body: [Fi]), text(body: [ve.]), parbreak(), text(body: [ ]), text(body: [ Six.]), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/if-01.typ0000644000000000000000000000077607346545000016224 0ustar0000000000000000// Braced condition. #if {true} [ One. ] // Content block in condition. #if [] != none [ Two. ] // Multi-line condition with parens. #if ( 1 + 1 == 1 ) [ Nope. ] else { "Three." } // Multiline. #if false [ Bad. ] else { let point = "." "Four" + point } // Content block can be argument or body depending on whitespace. #{ if "content" == type[b] [Fi] else [Nope] if "content" == type [Nope] else [ve.] } #let i = 3 #if i < 2 [ Five. ] else if i < 4 [ Six. ] else [ Seven. ] typst-0.8.0.2/test/typ/compiler/if-02.out0000644000000000000000000001067107346545000016213 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/if-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/if-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/if-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/if-02.typ" ( line 5 , column 2 ) (LetFunc (Identifier "nth") [ NormalParam (Identifier "n") ] (Block (CodeBlock [ FuncCall (Ident (Identifier "str")) [ NormalArg (Ident (Identifier "n")) ] , If [ ( Equals (Ident (Identifier "n")) (Literal (Int 1)) , Block (CodeBlock [ Literal (String "st") ]) ) , ( Equals (Ident (Identifier "n")) (Literal (Int 2)) , Block (CodeBlock [ Literal (String "nd") ]) ) , ( Equals (Ident (Identifier "n")) (Literal (Int 3)) , Block (CodeBlock [ Literal (String "rd") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "th") ]) ) ] ]))) , ParBreak , Code "typ/compiler/if-02.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "nth")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "1st")) ]) , SoftBreak , Code "typ/compiler/if-02.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "nth")) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (String "2nd")) ]) , SoftBreak , Code "typ/compiler/if-02.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "nth")) [ NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (String "3rd")) ]) , SoftBreak , Code "typ/compiler/if-02.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "nth")) [ NormalArg (Literal (Int 4)) ]) , NormalArg (Literal (String "4th")) ]) , SoftBreak , Code "typ/compiler/if-02.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "nth")) [ NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (String "5th")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/if-02.typ0000644000000000000000000000037707346545000016222 0ustar0000000000000000// Test else if. // Ref: false #let nth(n) = { str(n) if n == 1 { "st" } else if n == 2 { "nd" } else if n == 3 { "rd" } else { "th" } } #test(nth(1), "1st") #test(nth(2), "2nd") #test(nth(3), "3rd") #test(nth(4), "4th") #test(nth(5), "5th") typst-0.8.0.2/test/typ/compiler/if-03.out0000644000000000000000000000706207346545000016214 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/if-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/if-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/if-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/if-03.typ" ( line 5 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal (Int 1)) , Let (BasicBind (Just (Identifier "y"))) (Literal (Int 2)) , Let (BasicBind (Just (Identifier "z"))) (Literal None) , Assign (Ident (Identifier "z")) (If [ ( LessThan (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (CodeBlock [ Literal (String "ok") ]) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "z")) , NormalArg (Literal (String "ok")) ] , Assign (Ident (Identifier "z")) (If [ ( GreaterThan (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (CodeBlock [ Literal (String "bad") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "ok") ]) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "z")) , NormalArg (Literal (String "ok")) ] , Assign (Ident (Identifier "z")) (If [ ( GreaterThan (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (CodeBlock [ Literal (String "bad") ]) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "z")) , NormalArg (Literal None) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/if-03.typ0000644000000000000000000000046307346545000016217 0ustar0000000000000000// Value of if expressions. // Ref: false #{ let x = 1 let y = 2 let z // Returns if branch. z = if x < y { "ok" } test(z, "ok") // Returns else branch. z = if x > y { "bad" } else { "ok" } test(z, "ok") // Missing else evaluates to none. z = if x > y { "bad" } test(z, none) } typst-0.8.0.2/test/typ/compiler/if-04.out0000644000000000000000000000002107346545000016201 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/if-04.typ0000644000000000000000000000023707346545000016217 0ustar0000000000000000// Condition must be boolean. // If it isn't, neither branch is evaluated. // Error: 5-14 expected boolean, found string #if "a" + "b" { nope } else { nope } typst-0.8.0.2/test/typ/compiler/if-05.out0000644000000000000000000000002107346545000016202 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/if-05.typ0000644000000000000000000000015007346545000016212 0ustar0000000000000000// Make sure that we don't complain twice. // Error: 5-12 cannot add integer and string #if 1 + "2" {} typst-0.8.0.2/test/typ/compiler/if-06.out0000644000000000000000000000002107346545000016203 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/if-06.typ0000644000000000000000000000066107346545000016222 0ustar0000000000000000// Error: 4 expected expression #if // Error: 5 expected expression #{if} // Error: 6 expected block #if x // Error: 2-6 unexpected keyword `else` #else {} // Should output `x`. // Error: 4 expected expression #if x {} // Should output `something`. // Error: 6 expected block #if x something // Should output `A thing.` // Error: 19 expected block A#if false {} else thing #if a []else [b] #if a [] else [b] #if a {} else [b] typst-0.8.0.2/test/typ/compiler/import-00.out0000644000000000000000000000617107346545000017125 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Comment , Code "typ/compiler/import-00.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "value"))) (Block (Content [ Text "foo" ]))) , ParBreak , Comment , Code "typ/compiler/import-00.typ" ( line 9 , column 2 ) (Import (Literal (String "module.typ")) (SomeIdentifiers [ ( Identifier "fn" , Nothing ) , ( Identifier "value" , Nothing ) ])) , SoftBreak , Code "typ/compiler/import-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "fn")) [ BlockArg [ Text "Like" , Space , Text "and" , Space , Text "Subscribe!" ] ]) , SoftBreak , Code "typ/compiler/import-00.typ" ( line 11 , column 2 ) (Ident (Identifier "value")) , ParBreak , Comment , Comment , Code "typ/compiler/import-00.typ" ( line 15 , column 2 ) (Import (Literal (String "module.typ")) (SomeIdentifiers [ ( Identifier "a" , Nothing ) , ( Identifier "c" , Nothing ) ])) , Text "bye" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [ ]), rect(body: text(body: [Like and Subscribe!]), fill: rgb(18%,80%,25%,100%), inset: 5.0pt), text(body: [ ]), text(body: [hi]), parbreak(), text(body: [bye]), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-00.typ0000644000000000000000000000042707346545000017130 0ustar0000000000000000// Test basic syntax and semantics. // Ref: true // Test that this will be overwritten. #let value = [foo] // Import multiple things. #import "module.typ": fn, value #fn[Like and Subscribe!] #value // Should output `bye`. // Stop at semicolon. #import "module.typ": a, c;bye typst-0.8.0.2/test/typ/compiler/import-01.out0000644000000000000000000000612307346545000017123 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/import-01.typ" ( line 3 , column 2 ) (Import (Literal (String "module.typ")) (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , SoftBreak , Code "typ/compiler/import-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "item")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 3)) ]) , ParBreak , Comment , Text "{" , SoftBreak , Text "import" , Space , Quote '"' , Text "module" , Text "." , Text "typ" , Quote '"' , Text ":" , Space , Text "b" , SoftBreak , Text "test" , Text "(" , Text "b," , Space , Text "1)" , SoftBreak , Text "}" , ParBreak , Comment , Code "typ/compiler/import-01.typ" ( line 13 , column 2 ) (Import (Literal (String "module.typ")) AllIdentifiers) , ParBreak , Comment , Code "typ/compiler/import-01.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "d")) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [{ import “module.typ”: b test(b, 1) }]), parbreak(), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-01.typ0000644000000000000000000000031207346545000017122 0ustar0000000000000000// An item import. #import "module.typ": item #test(item(1, 2), 3) // Code mode { import "module.typ": b test(b, 1) } // A wildcard import. #import "module.typ": * // It exists now! #test(d, 3) typst-0.8.0.2/test/typ/compiler/import-02.out0000644000000000000000000000663107346545000017130 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/import-02.typ" ( line 5 , column 2 ) (Import (Ident (Identifier "enum")) (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , SoftBreak , Code "typ/compiler/import-02.typ" ( line 6 , column 2 ) (Import (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "assert"))) [ NormalArg (Literal (Boolean True)) ]) AllIdentifiers) , ParBreak , Code "typ/compiler/import-02.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "enum")) [ NormalArg (FuncCall (Ident (Identifier "item")) [ NormalArg (Literal (Int 1)) , BlockArg [ Text "First" ] ]) , NormalArg (FuncCall (Ident (Identifier "item")) [ NormalArg (Literal (Int 5)) , BlockArg [ Text "Fifth" ] ]) ]) , SoftBreak , Code "typ/compiler/import-02.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "eq")) [ NormalArg (Literal (Int 10)) , NormalArg (Literal (Int 10)) ]) , SoftBreak , Code "typ/compiler/import-02.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "ne")) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), enum(children: (enum.item(body: text(body: [First]), number: 1), enum.item(body: text(body: [Fifth]), number: 5))), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-02.typ0000644000000000000000000000025407346545000017130 0ustar0000000000000000// Test importing from function scopes. // Ref: true #import enum: item #import assert.with(true): * #enum( item(1)[First], item(5)[Fifth] ) #eq(10, 10) #ne(5, 6) typst-0.8.0.2/test/typ/compiler/import-03.out0000644000000000000000000000607707346545000017135 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/import-03.typ" ( line 3 , column 2 ) (Import (Literal (String "module.typ")) (NoIdentifiers Nothing)) , SoftBreak , Code "typ/compiler/import-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "b")) (Ident (Identifier "module"))) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/import-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "item")) (Ident (Identifier "module"))) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compiler/import-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "push")) (Ident (Identifier "module"))) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-03.typ0000644000000000000000000000020007346545000017120 0ustar0000000000000000// A module import without items. #import "module.typ" #test(module.b, 1) #test(module.item(1, 2), 3) #test(module.push(2), 3) typst-0.8.0.2/test/typ/compiler/import-04.out0000644000000000000000000000002107346545000017115 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-04.typ0000644000000000000000000000043707346545000017135 0ustar0000000000000000// Edge case for module access that isn't fixed. #import "module.typ" // Works because the method name isn't categorized as mutating. #test((module,).at(0).item(1, 2), 3) // Doesn't work because of mutating name. // Error: 2-11 cannot mutate a temporary value #(module,).at(0).push() typst-0.8.0.2/test/typ/compiler/import-05.out0000644000000000000000000000412507346545000017127 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/import-05.typ" ( line 3 , column 2 ) (Import (Literal (String "module.typ")) AllIdentifiers) , ParBreak , Comment , Code "typ/compiler/import-05.typ" ( line 6 , column 2 ) (Import (Literal (String "module.typ")) (SomeIdentifiers [ ( Identifier "a" , Nothing ) , ( Identifier "c" , Nothing ) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-05.typ0000644000000000000000000000016207346545000017131 0ustar0000000000000000// Who needs whitespace anyways? #import"module.typ":* // Allow the trailing comma. #import "module.typ": a, c, typst-0.8.0.2/test/typ/compiler/import-06.out0000644000000000000000000000555007346545000017133 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/import-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/import-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/import-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/import-06.typ" ( line 3 , column 2 ) (Import (Ident (Identifier "enum")) (NoIdentifiers Nothing)) , SoftBreak , Code "typ/compiler/import-06.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "d"))) (Dict [ Reg ( Ident (Identifier "e") , Ident (Identifier "enum") ) ])) , SoftBreak , Code "typ/compiler/import-06.typ" ( line 5 , column 2 ) (Import (FieldAccess (Ident (Identifier "e")) (Ident (Identifier "d"))) (NoIdentifiers Nothing)) , SoftBreak , Code "typ/compiler/import-06.typ" ( line 6 , column 2 ) (Import (FieldAccess (Ident (Identifier "e")) (Ident (Identifier "d"))) (SomeIdentifiers [ ( Identifier "item" , Nothing ) ])) , ParBreak , Code "typ/compiler/import-06.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "item")) [ NormalArg (Literal (Int 2)) , BlockArg [ Text "a" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), enum.item(body: text(body: [a]), number: 2), parbreak() }) typst-0.8.0.2/test/typ/compiler/import-06.typ0000644000000000000000000000020507346545000017130 0ustar0000000000000000// Usual importing syntax also works for function scopes #import enum #let d = (e: enum) #import d.e #import d.e: item #item(2)[a] typst-0.8.0.2/test/typ/compiler/import-07.out0000644000000000000000000000002107346545000017120 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-07.typ0000644000000000000000000000016407346545000017135 0ustar0000000000000000// Can't import from closures. #let f(x) = x // Error: 9-10 cannot import from user-defined functions #import f: x typst-0.8.0.2/test/typ/compiler/import-08.out0000644000000000000000000000002107346545000017121 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-08.typ0000644000000000000000000000021707346545000017135 0ustar0000000000000000// Can't import from closures, despite modifiers. #let f(x) = x // Error: 9-18 cannot import from user-defined functions #import f.with(5): x typst-0.8.0.2/test/typ/compiler/import-09.out0000644000000000000000000000002107346545000017122 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-09.typ0000644000000000000000000000011707346545000017135 0ustar0000000000000000// Error: 9-18 cannot import from user-defined functions #import () => {5}: x typst-0.8.0.2/test/typ/compiler/import-10.out0000644000000000000000000000002107346545000017112 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-10.typ0000644000000000000000000000012607346545000017125 0ustar0000000000000000// Error: 9-10 expected path, module or function, found integer #import 5: something typst-0.8.0.2/test/typ/compiler/import-11.out0000644000000000000000000000002107346545000017113 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-11.typ0000644000000000000000000000010607346545000017124 0ustar0000000000000000// Error: 9-11 failed to load file (is a directory) #import "": name typst-0.8.0.2/test/typ/compiler/import-12.out0000644000000000000000000000002107346545000017114 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-12.typ0000644000000000000000000000013007346545000017122 0ustar0000000000000000// Error: 9-20 file not found (searched at typ/compiler/lib/0.2.1) #import "lib/0.2.1" typst-0.8.0.2/test/typ/compiler/import-13.out0000644000000000000000000000002107346545000017115 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-13.typ0000644000000000000000000000012507346545000017127 0ustar0000000000000000// Some non-text stuff. // Error: 9-21 file is not valid utf-8 #import "/rhino.png" typst-0.8.0.2/test/typ/compiler/import-14.out0000644000000000000000000000002107346545000017116 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-14.typ0000644000000000000000000000013407346545000017130 0ustar0000000000000000// Unresolved import. // Error: 23-35 unresolved import #import "module.typ": non_existing typst-0.8.0.2/test/typ/compiler/import-15.out0000644000000000000000000000002107346545000017117 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-15.typ0000644000000000000000000000013107346545000017126 0ustar0000000000000000// Cyclic import of this very file. // Error: 9-23 cyclic import #import "./import.typ" typst-0.8.0.2/test/typ/compiler/import-16.out0000644000000000000000000000002107346545000017120 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-16.typ0000644000000000000000000000013307346545000017131 0ustar0000000000000000// Cyclic import in other file. #import "./modules/cycle1.typ": * This is never reached. typst-0.8.0.2/test/typ/compiler/import-17.out0000644000000000000000000000002107346545000017121 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-17.typ0000644000000000000000000000005107346545000017131 0ustar0000000000000000// Error: 8 expected expression #import typst-0.8.0.2/test/typ/compiler/import-18.out0000644000000000000000000000002107346545000017122 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-18.typ0000644000000000000000000000010307346545000017130 0ustar0000000000000000// Error: 26-29 unexpected string #import "module.typ": a, "b", c typst-0.8.0.2/test/typ/compiler/import-19.out0000644000000000000000000000002107346545000017123 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-19.typ0000644000000000000000000000010007346545000017126 0ustar0000000000000000// Error: 23-24 unexpected equals sign #import "module.typ": = typst-0.8.0.2/test/typ/compiler/import-20.out0000644000000000000000000000002107346545000017113 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-20.typ0000644000000000000000000000014307346545000017125 0ustar0000000000000000// An additional trailing comma. // Error: 31-32 unexpected comma #import "module.typ": a, b, c,, typst-0.8.0.2/test/typ/compiler/import-21.out0000644000000000000000000000002107346545000017114 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-21.typ0000644000000000000000000000011307346545000017123 0ustar0000000000000000// Error: 2:2 expected semicolon or line break #import "module.typ "stuff typst-0.8.0.2/test/typ/compiler/import-22.out0000644000000000000000000000002107346545000017115 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-22.typ0000644000000000000000000000012607346545000017130 0ustar0000000000000000// A star in the list. // Error: 26-27 unexpected star #import "module.typ": a, *, b typst-0.8.0.2/test/typ/compiler/import-23.out0000644000000000000000000000002107346545000017116 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-23.typ0000644000000000000000000000014307346545000017130 0ustar0000000000000000// An item after a star. // Error: 24 expected semicolon or line break #import "module.typ": *, a typst-0.8.0.2/test/typ/compiler/import-24.out0000644000000000000000000000002107346545000017117 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-24.typ0000644000000000000000000000012607346545000017132 0ustar0000000000000000// Error: 14-15 unexpected colon // Error: 16-17 unexpected integer #import "": a: 1 typst-0.8.0.2/test/typ/compiler/import-25.out0000644000000000000000000000002107346545000017120 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/import-25.typ0000644000000000000000000000005407346545000017133 0ustar0000000000000000// Error: 14 expected comma #import "": a b typst-0.8.0.2/test/typ/compiler/include-00.out0000644000000000000000000001041507346545000017232 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/include-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/include-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/include-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/include-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , ParBreak , Heading 1 [ Text "Document" ] , Comment , Code "typ/compiler/include-00.typ" ( line 7 , column 2 ) (Include (Literal (String "modules/chap1.typ"))) , ParBreak , Comment , Code "typ/compiler/include-00.typ" ( line 10 , column 2 ) (Let (BasicBind (Just (Identifier "chap2"))) (Include (Plus (Plus (Literal (String "modu")) (Literal (String "les/chap"))) (Literal (String "2.typ"))))) , ParBreak , EnDash , Space , Emph [ Text "Intermission" ] , Space , EnDash , SoftBreak , Code "typ/compiler/include-00.typ" ( line 13 , column 2 ) (Ident (Identifier "chap2")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), heading(body: text(body: [Document]), level: 1), text(body: [ ]), parbreak(), heading(body: text(body: [Chapter 1]), level: 2), text(body: [Klaus]), text(body: [ stood in a field of wheat. There was nothing of particular interest about the field ]), text(body: [Klaus]), text(body: [ just casually surveyed for any paths on which the corn would not totally ruin his semi-new outdorsy jacket but then again, most of us spend considerable time in non-descript environments.]), parbreak(), parbreak(), parbreak(), text(body: [– ]), emph(body: text(body: [Intermission])), text(body: [ – ]), text(body: [ ]), parbreak(), heading(body: text(body: [Chapter 2]), level: 2), text(body: [Their motivations, however, were pretty descript, so to speak. ]), text(body: [Klaus]), text(body: [ had not yet conceptualized their consequences, but that should change pretty quickly. ]), text(body: [Klaus]), text(body: [ approached the center of the field and picked up a 4-foot long disk made from what could only be cow manure. The hair on the back of ]), text(body: [Klaus]), text(body: [” neck bristled as he stared at the unusual sight. After studying the object for a while, he promptly popped the question, “How much?”]), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/include-00.typ0000644000000000000000000000030407346545000017233 0ustar0000000000000000#set page(width: 200pt) = Document // Include a file #include "modules/chap1.typ" // Expression as a file name. #let chap2 = include "modu" + "les/chap" + "2.typ" -- _Intermission_ -- #chap2 typst-0.8.0.2/test/typ/compiler/include-01.out0000644000000000000000000000002107346545000017223 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/include-01.typ0000644000000000000000000000017207346545000017237 0ustar0000000000000000#{ // Error: 19-38 file not found (searched at typ/compiler/modules/chap3.typ) let x = include "modules/chap3.typ" } typst-0.8.0.2/test/typ/compiler/include-02.out0000644000000000000000000000002107346545000017224 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/include-02.typ0000644000000000000000000000021007346545000017231 0ustar0000000000000000#include "modules/chap1.typ" // The variables of the file should not appear in this scope. // Error: 2-6 unknown variable: name #name typst-0.8.0.2/test/typ/compiler/include-03.out0000644000000000000000000000002107346545000017225 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/include-03.typ0000644000000000000000000000010307346545000017233 0ustar0000000000000000// Error: 18 expected semicolon or line break #include "hi.typ" Hi typst-0.8.0.2/test/typ/compiler/label-00.out0000644000000000000000000000563507346545000016676 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/label-00.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 10.0 Pt)) ])) , SoftBreak , Code "typ/compiler/label-00.typ" ( line 4 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "label") (Label "intro") ])) (Ident (Identifier "underline"))) , ParBreak , Heading 1 [ Text "Introduction" ] , Code "typ/compiler/label-00.typ" ( line 6 , column 16 ) (Label "intro") , SoftBreak , Text "The" , Space , Text "beginning" , Text "." , ParBreak , Heading 1 [ Text "Conclusion" ] , Text "The" , Space , Text "end" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), heading(body: text(body: [Introduction]), level: 1), , text(body: [ The beginning.]), parbreak(), heading(body: text(body: [Conclusion]), level: 1), text(body: [The end.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/label-00.typ0000644000000000000000000000024707346545000016675 0ustar0000000000000000// Test labelled headings. #show heading: set text(10pt) #show heading.where(label: ): underline = Introduction The beginning. = Conclusion The end. typst-0.8.0.2/test/typ/compiler/label-01.out0000644000000000000000000000567507346545000016703 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/label-01.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "strong"))) [ KeyValArg (Identifier "label") (Label "v") ])) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ])) , ParBreak , Code "typ/compiler/label-01.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Block (Content [ Strong [ Text "A" ] ]))) , SoftBreak , Code "typ/compiler/label-01.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "b"))) (Block (Content [ Strong [ Text "B" ] ]))) , SoftBreak , Code "typ/compiler/label-01.typ" ( line 7 , column 2 ) (Ident (Identifier "a")) , Space , Code "typ/compiler/label-01.typ" ( line 7 , column 4 ) (Label "v") , Code "typ/compiler/label-01.typ" ( line 7 , column 9 ) (Ident (Identifier "b")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ ]), text(body: [ ]), strong(body: text(body: [A])), text(body: [ ]), , strong(body: text(body: [B])), parbreak() }) typst-0.8.0.2/test/typ/compiler/label-01.typ0000644000000000000000000000017007346545000016671 0ustar0000000000000000// Test label after expression. #show strong.where(label: ): set text(red) #let a = [*A*] #let b = [*B*] #a #b typst-0.8.0.2/test/typ/compiler/label-03.out0000644000000000000000000000571407346545000016677 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/label-03.typ" ( line 3 , column 2 ) (Show (Just (Label "red")) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/compiler/label-03.typ" ( line 4 , column 2 ) (Show (Just (Label "blue")) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) ])) , ParBreak , Strong [ Text "A" ] , Space , Strong [ Text "B" ] , Space , Code "typ/compiler/label-03.typ" ( line 6 , column 9 ) (Label "red") , Strong [ Text "C" ] , Space , Code "typ/compiler/label-03.typ" ( line 6 , column 20 ) (FuncCall (Ident (Identifier "label")) [ NormalArg (Plus (Literal (String "bl")) (Literal (String "ue"))) ]) , Space , Strong [ Text "D" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), strong(body: text(body: [A])), text(body: [ ]), strong(body: text(body: [B])), text(body: [ ]), , strong(body: text(body: [C])), text(body: [ ]), , text(body: [ ]), strong(body: text(body: [D])), parbreak() }) typst-0.8.0.2/test/typ/compiler/label-03.typ0000644000000000000000000000022007346545000016667 0ustar0000000000000000// Test abusing dynamic labels for styling. #show : set text(red) #show : set text(blue) *A* *B* *C* #label("bl" + "ue") *D* typst-0.8.0.2/test/typ/compiler/label-04.out0000644000000000000000000000471007346545000016673 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/label-04.typ" ( line 3 , column 2 ) (Show (Just (Label "hide")) (Literal None)) , ParBreak , Emph [ Text "Hidden" ] , SoftBreak , Code "typ/compiler/label-04.typ" ( line 6 , column 1 ) (Label "hide") , ParBreak , Emph [ Text "Hidden" ] , ParBreak , Code "typ/compiler/label-04.typ" ( line 10 , column 1 ) (Label "hide") , SoftBreak , Emph [ Text "Visible" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), emph(body: text(body: [Hidden])), text(body: [ ]), , parbreak(), emph(body: text(body: [Hidden])), parbreak(), , text(body: [ ]), emph(body: text(body: [Visible])), parbreak() }) typst-0.8.0.2/test/typ/compiler/label-04.typ0000644000000000000000000000014607346545000016677 0ustar0000000000000000// Test that label ignores parbreak. #show : none _Hidden_ _Hidden_ _Visible_ typst-0.8.0.2/test/typ/compiler/label-05.out0000644000000000000000000000532207346545000016674 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/label-05.typ" ( line 3 , column 2 ) (Show (Just (Label "strike")) (Ident (Identifier "strike"))) , SoftBreak , Strong [ Text "This" , Space , Text "is" ] , Space , Code "typ/compiler/label-05.typ" ( line 4 , column 12 ) (Block (Content [ Code "typ/compiler/label-05.typ" ( line 4 , column 13 ) (Label "strike") ])) , Space , Strong [ Text "protected" , Text "." ] , SoftBreak , Strong [ Text "This" , Space , Text "is" , Space , Text "not" , Text "." ] , Space , Code "typ/compiler/label-05.typ" ( line 5 , column 16 ) (Label "strike") , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), strong(body: text(body: [This is])), text(body: [ ]), , text(body: [ ]), strong(body: text(body: [protected.])), text(body: [ ]), strong(body: text(body: [This is not.])), text(body: [ ]), , parbreak() }) typst-0.8.0.2/test/typ/compiler/label-05.typ0000644000000000000000000000021307346545000016673 0ustar0000000000000000// Test that label only works within one content block. #show : strike *This is* #[] *protected.* *This is not.* typst-0.8.0.2/test/typ/compiler/label-06.out0000644000000000000000000000420607346545000016675 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/label-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/label-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/label-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "1" , Space , Text "<" , Space , Text "2" , Space , Text "is" , Space , Code "typ/compiler/label-06.typ" ( line 3 , column 11 ) (If [ ( LessThan (Literal (Int 1)) (Literal (Int 2)) , Block (Content [ Text "not" ]) ) ]) , Space , Text "a" , Space , Text "label" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [1 < 2 is ]), text(body: [not]), text(body: [ a label.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/label-06.typ0000644000000000000000000000011107346545000016671 0ustar0000000000000000// Test that incomplete label is text. 1 < 2 is #if 1 < 2 [not] a label. typst-0.8.0.2/test/typ/compiler/let-00.out0000644000000000000000000000712607346545000016400 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/let-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Literal None)) , SoftBreak , Code "typ/compiler/let-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal None) ]) , ParBreak , Comment , Code "typ/compiler/let-00.typ" ( line 7 , column 2 ) (Let (BasicBind (Just (Identifier "z"))) (Literal (Int 1))) , SoftBreak , Code "typ/compiler/let-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "z")) , NormalArg (Literal (Int 1)) ]) , ParBreak , Comment , Code "typ/compiler/let-00.typ" ( line 11 , column 2 ) (Let (BasicBind (Just (Identifier "fill"))) (Ident (Identifier "green"))) , SoftBreak , Code "typ/compiler/let-00.typ" ( line 12 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "body") ] (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "fill")) , KeyValArg (Identifier "inset") (Literal (Numeric 5.0 Pt)) , NormalArg (Ident (Identifier "body")) ])) , SoftBreak , Code "typ/compiler/let-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "f")) [ BlockArg [ Text "Hi!" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [ ]), rect(body: text(body: [Hi!]), fill: rgb(18%,80%,25%,100%), inset: 5.0pt, width: 2.0cm), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-00.typ0000644000000000000000000000037407346545000016403 0ustar0000000000000000// Automatically initialized with none. #let x #test(x, none) // Manually initialized with one. #let z = 1 #test(z, 1) // Syntax sugar for function definitions. #let fill = green #let f(body) = rect(width: 2cm, fill: fill, inset: 5pt, body) #f[Hi!] typst-0.8.0.2/test/typ/compiler/let-01.out0000644000000000000000000000637407346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/let-01.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "v1"))) (Literal (Int 1))) , SoftBreak , Text "One" , ParBreak , Comment , Code "typ/compiler/let-01.typ" ( line 9 , column 2 ) (Let (BasicBind (Just (Identifier "v2"))) (Literal (Int 2))) , Space , Text "Two" , ParBreak , Comment , Code "typ/compiler/let-01.typ" ( line 12 , column 2 ) (Let (BasicBind (Just (Identifier "v3"))) (Literal (Int 3))) , SoftBreak , Text "Three" , ParBreak , Code "typ/compiler/let-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "v1")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-01.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "v2")) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/let-01.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "v3")) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ One]), parbreak(), text(body: [ Two]), parbreak(), text(body: [ Three]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-01.typ0000644000000000000000000000032407346545000016377 0ustar0000000000000000// Termination. // Terminated by line break. #let v1 = 1 One // Terminated by semicolon. #let v2 = 2; Two // Terminated by semicolon and line break. #let v3 = 3; Three #test(v1, 1) #test(v2, 2) #test(v3, 3) typst-0.8.0.2/test/typ/compiler/let-02.out0000644000000000000000000000360107346545000016374 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-02.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-02.typ0000644000000000000000000000010407346545000016374 0ustar0000000000000000// Test parenthesised assignments. // Ref: false #let (a) = (1, 2) typst-0.8.0.2/test/typ/compiler/let-03.out0000644000000000000000000000502107346545000016373 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-03.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Simple (Just (Identifier "b")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) , SoftBreak , Code "typ/compiler/let-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-03.typ0000644000000000000000000000012507346545000016400 0ustar0000000000000000// Ref: false // Simple destructuring. #let (a, b) = (1, 2) #test(a, 1) #test(b, 2) typst-0.8.0.2/test/typ/compiler/let-04.out0000644000000000000000000000422107346545000016375 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/let-04.typ" ( line 3 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) ]) (Array [ Reg (Literal (Int 1)) ])) , SoftBreak , Code "typ/compiler/let-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-04.typ0000644000000000000000000000005407346545000016402 0ustar0000000000000000// Ref: false #let (a,) = (1,) #test(a, 1) typst-0.8.0.2/test/typ/compiler/let-05.out0000644000000000000000000000525107346545000016402 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-05.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Simple Nothing , Simple (Just (Identifier "c")) , Simple Nothing ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) , SoftBreak , Code "typ/compiler/let-05.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-05.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-05.typ0000644000000000000000000000016507346545000016406 0ustar0000000000000000// Ref: false // Destructuring with multiple placeholders. #let (a, _, c, _) = (1, 2, 3, 4) #test(a, 1) #test(c, 3) typst-0.8.0.2/test/typ/compiler/let-06.out0000644000000000000000000000625007346545000016403 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-06.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Simple (Just (Identifier "b")) , Sink (Just (Identifier "c")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ])) , SoftBreak , Code "typ/compiler/let-06.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-06.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/let-06.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-06.typ0000644000000000000000000000020207346545000016377 0ustar0000000000000000// Ref: false // Destructuring with a sink. #let (a, b, ..c) = (1, 2, 3, 4, 5, 6) #test(a, 1) #test(b, 2) #test(c, (3, 4, 5, 6)) typst-0.8.0.2/test/typ/compiler/let-07.out0000644000000000000000000000625007346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-07.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Sink (Just (Identifier "b")) , Simple (Just (Identifier "c")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) , Reg (Literal (Int 6)) ])) , SoftBreak , Code "typ/compiler/let-07.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-07.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) , Reg (Literal (Int 5)) ]) ]) , SoftBreak , Code "typ/compiler/let-07.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-07.typ0000644000000000000000000000022007346545000016400 0ustar0000000000000000// Ref: false // Destructuring with a sink in the middle. #let (a, ..b, c) = (1, 2, 3, 4, 5, 6) #test(a, 1) #test(b, (2, 3, 4, 5)) #test(c, 6) typst-0.8.0.2/test/typ/compiler/let-08.out0000644000000000000000000000550407346545000016406 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-08.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Sink (Just (Identifier "a")) , Simple (Just (Identifier "b")) , Simple (Just (Identifier "c")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) , SoftBreak , Code "typ/compiler/let-08.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/let-08.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-08.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-08.typ0000644000000000000000000000016307346545000016407 0ustar0000000000000000// Ref: false // Destructuring with an empty sink. #let (..a, b, c) = (1, 2) #test(a, ()) #test(b, 1) #test(c, 2) typst-0.8.0.2/test/typ/compiler/let-09.out0000644000000000000000000000550407346545000016407 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-09.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Sink (Just (Identifier "b")) , Simple (Just (Identifier "c")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) , SoftBreak , Code "typ/compiler/let-09.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-09.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/let-09.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-09.typ0000644000000000000000000000016307346545000016410 0ustar0000000000000000// Ref: false // Destructuring with an empty sink. #let (a, ..b, c) = (1, 2) #test(a, 1) #test(b, ()) #test(c, 2) typst-0.8.0.2/test/typ/compiler/let-10.out0000644000000000000000000000550407346545000016377 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-10.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Simple (Just (Identifier "b")) , Sink (Just (Identifier "c")) ]) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ])) , SoftBreak , Code "typ/compiler/let-10.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-10.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/let-10.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Array []) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-10.typ0000644000000000000000000000016307346545000016400 0ustar0000000000000000// Ref: false // Destructuring with an empty sink. #let (a, b, ..c) = (1, 2) #test(a, 1) #test(b, 2) #test(c, ()) typst-0.8.0.2/test/typ/compiler/let-11.out0000644000000000000000000000414607346545000016401 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-11.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-11.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-11.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-11.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Sink (Just (Identifier "a")) ]) (Array [])) , SoftBreak , Code "typ/compiler/let-11.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Array []) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-11.typ0000644000000000000000000000014107346545000016375 0ustar0000000000000000// Ref: false // Destructuring with an empty sink and empty array. #let (..a) = () #test(a, ()) typst-0.8.0.2/test/typ/compiler/let-12.out0000644000000000000000000000002107346545000016366 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-12.typ0000644000000000000000000000121107346545000016375 0ustar0000000000000000// Ref: false // Destructuring with unnamed sink. #let (a, .., b) = (1, 2, 3, 4) #test(a, 1) #test(b, 4) // Error: 10-11 at most one binding per identifier is allowed #let (a, a) = (1, 2) // Error: 12-15 at most one destructuring sink is allowed #let (..a, ..a) = (1, 2) // Error: 12-13 at most one binding per identifier is allowed #let (a, ..a) = (1, 2) // Error: 13-14 at most one binding per identifier is allowed #let (a: a, a) = (a: 1, b: 2) // Error: 13-20 expected identifier, found function call #let (a, b: b.at(0)) = (a: 1, b: 2) // Error: 7-14 expected identifier or destructuring sink, found function call #let (a.at(0),) = (1,) typst-0.8.0.2/test/typ/compiler/let-13.out0000644000000000000000000000002107346545000016367 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-13.typ0000644000000000000000000000011407346545000016377 0ustar0000000000000000// Error: 13-14 not enough elements to destructure #let (a, b, c) = (1, 2) typst-0.8.0.2/test/typ/compiler/let-14.out0000644000000000000000000000002107346545000016370 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-14.typ0000644000000000000000000000012007346545000016375 0ustar0000000000000000// Error: 6-20 not enough elements to destructure #let (..a, b, c, d) = (1, 2) typst-0.8.0.2/test/typ/compiler/let-15.out0000644000000000000000000000002107346545000016371 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-15.typ0000644000000000000000000000007607346545000016410 0ustar0000000000000000// Error: 6-12 cannot destructure boolean #let (a, b) = true typst-0.8.0.2/test/typ/compiler/let-16.out0000644000000000000000000000601707346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-16.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-16.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-16.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-16.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ WithKey (Identifier "a") (Just (Identifier "a")) , Simple (Just (Identifier "b")) , WithKey (Identifier "x") (Just (Identifier "c")) ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "x") , Literal (Int 3) ) ])) , SoftBreak , Code "typ/compiler/let-16.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compiler/let-16.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compiler/let-16.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "c")) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-16.typ0000644000000000000000000000016607346545000016411 0ustar0000000000000000// Ref: false // Simple destructuring. #let (a: a, b, x: c) = (a: 1, b: 2, x: 3) #test(a, 1) #test(b, 2) #test(c, 3) typst-0.8.0.2/test/typ/compiler/let-17.out0000644000000000000000000000502407346545000016403 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-17.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-17.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-17.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-17.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ WithKey (Identifier "a") Nothing , Sink (Just (Identifier "b")) ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , SoftBreak , Code "typ/compiler/let-17.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-17.typ0000644000000000000000000000015207346545000016405 0ustar0000000000000000// Ref: false // Destructuring with a sink. #let (a: _, ..b) = (a: 1, b: 2, c: 3) #test(b, (b: 2, c: 3)) typst-0.8.0.2/test/typ/compiler/let-18.out0000644000000000000000000000474407346545000016414 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-18.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-18.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-18.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-18.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ WithKey (Identifier "a") Nothing , Sink (Just (Identifier "b")) , WithKey (Identifier "c") Nothing ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , SoftBreak , Code "typ/compiler/let-18.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-18.typ0000644000000000000000000000017007346545000016406 0ustar0000000000000000// Ref: false // Destructuring with a sink in the middle. #let (a: _, ..b, c: _) = (a: 1, b: 2, c: 3) #test(b, (b: 2)) typst-0.8.0.2/test/typ/compiler/let-19.out0000644000000000000000000000433607346545000016412 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-19.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-19.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-19.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-19.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ WithKey (Identifier "a") Nothing , Sink (Just (Identifier "b")) ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , SoftBreak , Code "typ/compiler/let-19.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "b")) , NormalArg (Dict []) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-19.typ0000644000000000000000000000013407346545000016407 0ustar0000000000000000// Ref: false // Destructuring with an empty sink. #let (a: _, ..b) = (a: 1) #test(b, (:)) typst-0.8.0.2/test/typ/compiler/let-20.out0000644000000000000000000000414407346545000016377 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-20.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-20.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-20.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-20.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Sink (Just (Identifier "a")) ]) (Dict [])) , SoftBreak , Code "typ/compiler/let-20.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Dict []) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-20.typ0000644000000000000000000000014207346545000016376 0ustar0000000000000000// Ref: false // Destructuring with an empty sink and empty dict. #let (..a) = (:) #test(a, (:)) typst-0.8.0.2/test/typ/compiler/let-21.out0000644000000000000000000000443707346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/let-21.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/let-21.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/let-21.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/let-21.typ" ( line 4 , column 2 ) (Let (DestructuringBind [ Simple (Just (Identifier "a")) , Sink Nothing ]) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) , SoftBreak , Code "typ/compiler/let-21.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "a")) , NormalArg (Literal (Int 1)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/let-21.typ0000644000000000000000000000013307346545000016377 0ustar0000000000000000// Ref: false // Destructuring with unnamed sink. #let (a, ..) = (a: 1, b: 2) #test(a, 1) typst-0.8.0.2/test/typ/compiler/let-22.out0000644000000000000000000000002107346545000016367 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-22.typ0000644000000000000000000000016607346545000016406 0ustar0000000000000000// Trailing placeholders. // Error: 10-11 not enough elements to destructure #let (a, _, _, _, _) = (1,) #test(a, 1) typst-0.8.0.2/test/typ/compiler/let-23.out0000644000000000000000000000002107346545000016370 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-23.typ0000644000000000000000000000021107346545000016376 0ustar0000000000000000// Error: 10-13 expected identifier, found string // Error: 18-19 expected identifier, found integer #let (a: "a", b: 2) = (a: 1, b: 2) typst-0.8.0.2/test/typ/compiler/let-24.out0000644000000000000000000000002107346545000016371 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-24.typ0000644000000000000000000000012007346545000016376 0ustar0000000000000000// Error: 10-11 destructuring key not found in dictionary #let (a, b) = (a: 1) typst-0.8.0.2/test/typ/compiler/let-25.out0000644000000000000000000000002107346545000016372 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-25.typ0000644000000000000000000000012307346545000016402 0ustar0000000000000000// Error: 10-11 destructuring key not found in dictionary #let (a, b: b) = (a: 1) typst-0.8.0.2/test/typ/compiler/let-26.out0000644000000000000000000000002107346545000016373 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-26.typ0000644000000000000000000000013307346545000016404 0ustar0000000000000000// Error: 7-11 cannot destructure named elements from an array #let (a: a, b) = (1, 2, 3) typst-0.8.0.2/test/typ/compiler/let-27.out0000644000000000000000000000002107346545000016374 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-27.typ0000644000000000000000000000126007346545000016407 0ustar0000000000000000// Error: 5 expected identifier #let // Error: 6 expected identifier #{let} // Error: 5 expected identifier // Error: 5 expected semicolon or line break #let "v" // Error: 7 expected semicolon or line break #let v 1 // Error: 9 expected expression #let v = // Error: 5 expected identifier // Error: 5 expected semicolon or line break #let "v" = 1 // Terminated because expression ends. // Error: 12 expected semicolon or line break #let v4 = 4 Four // Terminated by semicolon even though we are in a paren group. // Error: 18 expected expression // Error: 18 expected closing paren #let v5 = (1, 2 + ; Five // Error: 9-13 expected identifier, found boolean #let (..true) = false typst-0.8.0.2/test/typ/compiler/let-28.out0000644000000000000000000000002107346545000016375 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-28.typ0000644000000000000000000000045707346545000016417 0ustar0000000000000000#let _ = 4 #for _ in range(2) [] // Error: 2-3 unexpected underscore #_ // Error: 8-9 unexpected underscore #lorem(_) // Error: 3-4 expected expression, found underscore #(_,) // Error: 3-4 expected expression, found underscore #{_} // Error: 8-9 expected expression, found underscore #{ 1 + _ } typst-0.8.0.2/test/typ/compiler/let-29.out0000644000000000000000000000002107346545000016376 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/let-29.typ0000644000000000000000000000014007346545000016405 0ustar0000000000000000// Error: 13 expected equals sign #let func(x) // Error: 15 expected expression #let func(x) = typst-0.8.0.2/test/typ/compiler/methods-00.out0000644000000000000000000000421007346545000017246 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/methods-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/methods-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/methods-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/methods-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "Hi there"))) []) , NormalArg (Array [ Reg (Literal (String "Hi")) , Reg (Literal (String "there")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/methods-00.typ0000644000000000000000000000011707346545000017255 0ustar0000000000000000// Test whitespace around dot. #test( "Hi there" . split() , ("Hi", "there")) typst-0.8.0.2/test/typ/compiler/methods-01.out0000644000000000000000000000704307346545000017256 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/methods-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/methods-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/methods-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/methods-01.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "matrix"))) (Array [ Reg (Array [ Reg (Array [ Reg (Literal (Int 1)) ]) , Reg (Array [ Reg (Literal (Int 2)) ]) ]) , Reg (Array [ Reg (Array [ Reg (Literal (Int 3)) ]) , Reg (Array [ Reg (Literal (Int 4)) ]) ]) ]) , FuncCall (FieldAccess (Ident (Identifier "push")) (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "matrix"))) [ NormalArg (Literal (Int 1)) ])) [ NormalArg (Literal (Int 0)) ])) [ NormalArg (Literal (Int 5)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "matrix")) , NormalArg (Array [ Reg (Array [ Reg (Array [ Reg (Literal (Int 1)) ]) , Reg (Array [ Reg (Literal (Int 2)) ]) ]) , Reg (Array [ Reg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 5)) ]) , Reg (Array [ Reg (Literal (Int 4)) ]) ]) ]) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/methods-01.typ0000644000000000000000000000023607346545000017260 0ustar0000000000000000// Test mutating indexed value. #{ let matrix = (((1,), (2,)), ((3,), (4,))) matrix.at(1).at(0).push(5) test(matrix, (((1,), (2,)), ((3, 5), (4,)))) } typst-0.8.0.2/test/typ/compiler/methods-02.out0000644000000000000000000001022607346545000017254 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/methods-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/methods-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/methods-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/methods-02.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "rewritten"))) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "filter")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "Hello. This is a sentence. And one more."))) [ NormalArg (Literal (String ".")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (FuncCall (FieldAccess (Ident (Identifier "trim")) (Ident (Identifier "s"))) [])) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Not (Equals (Ident (Identifier "s")) (Literal (String ""))))) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Plus (Ident (Identifier "s")) (Literal (String "!")))) ])) [ NormalArg (Literal (String "\n ")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "rewritten")) , NormalArg (Literal (String "Hello!\n This is a sentence!\n And one more!")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/methods-02.typ0000644000000000000000000000042707346545000017263 0ustar0000000000000000// Test multiline chain in code block. #{ let rewritten = "Hello. This is a sentence. And one more." .split(".") .map(s => s.trim()) .filter(s => s != "") .map(s => s + "!") .join("\n ") test(rewritten, "Hello!\n This is a sentence!\n And one more!") } typst-0.8.0.2/test/typ/compiler/methods-03.out0000644000000000000000000000002107346545000017245 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/methods-03.typ0000644000000000000000000000012407346545000017256 0ustar0000000000000000// Error: 2:2-2:15 type array has no method `fun` #let numbers = () #numbers.fun() typst-0.8.0.2/test/typ/compiler/methods-04.out0000644000000000000000000000002107346545000017246 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/methods-04.typ0000644000000000000000000000020207346545000017254 0ustar0000000000000000// Error: 2:2-2:43 cannot mutate a temporary value #let numbers = (1, 2, 3) #numbers.map(v => v / 2).sorted().map(str).remove(4) typst-0.8.0.2/test/typ/compiler/methods-05.out0000644000000000000000000000002107346545000017247 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/methods-05.typ0000644000000000000000000000014507346545000017263 0ustar0000000000000000// Error: 2:3-2:19 cannot mutate a temporary value #let numbers = (1, 2, 3) #(numbers.sorted() = 1) typst-0.8.0.2/test/typ/compiler/methods-06.out0000644000000000000000000000002107346545000017250 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/methods-06.typ0000644000000000000000000000007107346545000017262 0ustar0000000000000000// Error: 2-5 cannot mutate a constant: box #box.push(1) typst-0.8.0.2/test/typ/compiler/module.out0000644000000000000000000000743007346545000016662 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/module.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/module.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/module.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/module.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Literal None)) , SoftBreak , Code "typ/compiler/module.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "b"))) (Literal (Int 1))) , SoftBreak , Code "typ/compiler/module.typ" ( line 7 , column 2 ) (Let (BasicBind (Just (Identifier "c"))) (Literal (Int 2))) , SoftBreak , Code "typ/compiler/module.typ" ( line 8 , column 2 ) (Let (BasicBind (Just (Identifier "d"))) (Literal (Int 3))) , SoftBreak , Code "typ/compiler/module.typ" ( line 9 , column 2 ) (Let (BasicBind (Just (Identifier "value"))) (Block (Content [ Text "hi" ]))) , SoftBreak , Code "typ/compiler/module.typ" ( line 10 , column 2 ) (LetFunc (Identifier "item") [ NormalParam (Identifier "a") , NormalParam (Identifier "b") ] (Plus (Ident (Identifier "a")) (Ident (Identifier "b")))) , SoftBreak , Code "typ/compiler/module.typ" ( line 11 , column 2 ) (LetFunc (Identifier "push") [ NormalParam (Identifier "a") ] (Plus (Ident (Identifier "a")) (Literal (Int 1)))) , SoftBreak , Code "typ/compiler/module.typ" ( line 12 , column 2 ) (Let (BasicBind (Just (Identifier "fn"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "rect"))) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "inset") (Literal (Numeric 5.0 Pt)) ])) , ParBreak , Text "Some" , Space , Emph [ Text "includable" ] , Space , Text "text" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Some ]), emph(body: text(body: [includable])), text(body: [ text.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/module.typ0000644000000000000000000000035307346545000016664 0ustar0000000000000000// A file to import in import / include tests. // Ref: false #let a #let b = 1 #let c = 2 #let d = 3 #let value = [hi] #let item(a, b) = a + b #let push(a) = a + 1 #let fn = rect.with(fill: green, inset: 5pt) Some _includable_ text. typst-0.8.0.2/test/typ/compiler/modules/0000755000000000000000000000000007346545000016310 5ustar0000000000000000typst-0.8.0.2/test/typ/compiler/modules/chap1.out0000644000000000000000000000744507346545000020047 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/modules/chap1.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/modules/chap1.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/modules/chap1.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/modules/chap1.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "name"))) (Literal (String "Klaus"))) , ParBreak , Heading 2 [ Text "Chapter" , Space , Text "1" ] , Code "typ/compiler/modules/chap1.typ" ( line 7 , column 2 ) (Ident (Identifier "name")) , Space , Text "stood" , Space , Text "in" , Space , Text "a" , Space , Text "field" , Space , Text "of" , Space , Text "wheat" , Text "." , Space , Text "There" , Space , Text "was" , Space , Text "nothing" , Space , Text "of" , Space , Text "particular" , Space , Text "interest" , Space , Text "about" , SoftBreak , Text "the" , Space , Text "field" , Space , Code "typ/compiler/modules/chap1.typ" ( line 8 , column 12 ) (Ident (Identifier "name")) , Space , Text "just" , Space , Text "casually" , Space , Text "surveyed" , Space , Text "for" , Space , Text "any" , Space , Text "paths" , Space , Text "on" , Space , Text "which" , Space , Text "the" , Space , Text "corn" , Space , Text "would" , Space , Text "not" , SoftBreak , Text "totally" , Space , Text "ruin" , Space , Text "his" , Space , Text "semi" , Text "-" , Text "new" , Space , Text "outdorsy" , Space , Text "jacket" , Space , Text "but" , Space , Text "then" , Space , Text "again," , Space , Text "most" , Space , Text "of" , Space , Text "us" , Space , Text "spend" , SoftBreak , Text "considerable" , Space , Text "time" , Space , Text "in" , Space , Text "non" , Text "-" , Text "descript" , Space , Text "environments" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), heading(body: text(body: [Chapter 1]), level: 2), text(body: [Klaus]), text(body: [ stood in a field of wheat. There was nothing of particular interest about the field ]), text(body: [Klaus]), text(body: [ just casually surveyed for any paths on which the corn would not totally ruin his semi-new outdorsy jacket but then again, most of us spend considerable time in non-descript environments.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/modules/chap1.typ0000644000000000000000000000051507346545000020043 0ustar0000000000000000// Ref: false #let name = "Klaus" == Chapter 1 #name stood in a field of wheat. There was nothing of particular interest about the field #name just casually surveyed for any paths on which the corn would not totally ruin his semi-new outdorsy jacket but then again, most of us spend considerable time in non-descript environments. typst-0.8.0.2/test/typ/compiler/modules/chap2.out0000644000000000000000000001141407346545000020037 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/modules/chap2.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/modules/chap2.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/modules/chap2.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/modules/chap2.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "name"))) (Literal (String "Klaus"))) , ParBreak , Heading 2 [ Text "Chapter" , Space , Text "2" ] , Text "Their" , Space , Text "motivations," , Space , Text "however," , Space , Text "were" , Space , Text "pretty" , Space , Text "descript," , Space , Text "so" , Space , Text "to" , Space , Text "speak" , Text "." , Space , Code "typ/compiler/modules/chap2.typ" ( line 7 , column 65 ) (Ident (Identifier "name")) , Space , Text "had" , Space , Text "not" , Space , Text "yet" , SoftBreak , Text "conceptualized" , Space , Text "their" , Space , Text "consequences," , Space , Text "but" , Space , Text "that" , Space , Text "should" , Space , Text "change" , Space , Text "pretty" , Space , Text "quickly" , Text "." , Space , Code "typ/compiler/modules/chap2.typ" ( line 8 , column 76 ) (Ident (Identifier "name")) , SoftBreak , Text "approached" , Space , Text "the" , Space , Text "center" , Space , Text "of" , Space , Text "the" , Space , Text "field" , Space , Text "and" , Space , Text "picked" , Space , Text "up" , Space , Text "a" , Space , Text "4" , Text "-" , Text "foot" , Space , Text "long" , Space , Text "disk" , Space , Text "made" , Space , Text "from" , SoftBreak , Text "what" , Space , Text "could" , Space , Text "only" , Space , Text "be" , Space , Text "cow" , Space , Text "manure" , Text "." , Space , Text "The" , Space , Text "hair" , Space , Text "on" , Space , Text "the" , Space , Text "back" , Space , Text "of" , Space , Code "typ/compiler/modules/chap2.typ" ( line 10 , column 57 ) (Ident (Identifier "name")) , Quote '\'' , Space , Text "neck" , Space , Text "bristled" , Space , Text "as" , SoftBreak , Text "he" , Space , Text "stared" , Space , Text "at" , Space , Text "the" , Space , Text "unusual" , Space , Text "sight" , Text "." , Space , Text "After" , Space , Text "studying" , Space , Text "the" , Space , Text "object" , Space , Text "for" , Space , Text "a" , Space , Text "while," , Space , Text "he" , SoftBreak , Text "promptly" , Space , Text "popped" , Space , Text "the" , Space , Text "question," , Space , Quote '"' , Text "How" , Space , Text "much?" , Quote '"' , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), heading(body: text(body: [Chapter 2]), level: 2), text(body: [Their motivations, however, were pretty descript, so to speak. ]), text(body: [Klaus]), text(body: [ had not yet conceptualized their consequences, but that should change pretty quickly. ]), text(body: [Klaus]), text(body: [ approached the center of the field and picked up a 4-foot long disk made from what could only be cow manure. The hair on the back of ]), text(body: [Klaus]), text(body: [” neck bristled as he stared at the unusual sight. After studying the object for a while, he promptly popped the question, “How much?”]), parbreak() }) typst-0.8.0.2/test/typ/compiler/modules/chap2.typ0000644000000000000000000000074307346545000020047 0ustar0000000000000000// Ref: false #let name = "Klaus" == Chapter 2 Their motivations, however, were pretty descript, so to speak. #name had not yet conceptualized their consequences, but that should change pretty quickly. #name approached the center of the field and picked up a 4-foot long disk made from what could only be cow manure. The hair on the back of #name' neck bristled as he stared at the unusual sight. After studying the object for a while, he promptly popped the question, "How much?" typst-0.8.0.2/test/typ/compiler/modules/cycle1.out0000644000000000000000000000002107346545000020212 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/modules/cycle1.typ0000644000000000000000000000016007346545000020223 0ustar0000000000000000// Ref: false #import "cycle2.typ": * #let inaccessible = "wow" This is the first element of an import cycle. typst-0.8.0.2/test/typ/compiler/modules/cycle2.out0000644000000000000000000000002107346545000020213 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/modules/cycle2.typ0000644000000000000000000000015707346545000020232 0ustar0000000000000000// Ref: false #import "cycle1.typ": * #let val = "much cycle" This is the second element of an import cycle. typst-0.8.0.2/test/typ/compiler/ops-00.out0000644000000000000000000000377607346545000016424 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/ops-00.typ" ( line 4 , column 2 ) (Plus (Block (Content [ Strong [ Text "Hello" ] , Space ])) (Block (Content [ Text "world!" ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), strong(body: text(body: [Hello])), text(body: [ ]), text(body: [world!]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-00.typ0000644000000000000000000000007707346545000016420 0ustar0000000000000000// Test adding content. // Ref: true #([*Hello* ] + [world!]) typst-0.8.0.2/test/typ/compiler/ops-01.out0000644000000000000000000001745207346545000016421 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/ops-01.typ" ( line 5 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Float 3.14)) , Reg (Literal (Numeric 12.0 Pt)) , Reg (Literal (Numeric 45.0 Deg)) , Reg (Literal (Numeric 90.0 Percent)) , Reg (Plus (Literal (Numeric 13.0 Percent)) (Literal (Numeric 10.0 Pt))) , Reg (Literal (Numeric 6.3 Fr)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "v")) , NormalArg (Ident (Identifier "v")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Negated (Ident (Identifier "v"))) , NormalArg (Times (Negated (Literal (Int 1))) (Ident (Identifier "v"))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Negated (Negated (Ident (Identifier "v")))) , NormalArg (Ident (Identifier "v")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Negated (Negated (Negated (Ident (Identifier "v"))))) , NormalArg (Negated (Ident (Identifier "v"))) ] ]))) , ParBreak , Code "typ/compiler/ops-01.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Negated (Plus (Literal (Int 4)) (Literal (Int 2)))) , NormalArg (Minus (Literal (Int 6)) (Literal (Int 12))) ]) , ParBreak , Comment , Code "typ/compiler/ops-01.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (Int 2)) (Literal (Int 4))) , NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (String "a")) (Literal (String "b"))) , NormalArg (Literal (String "ab")) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (String "a")) (If [ ( Literal (Boolean False) , Block (CodeBlock [ Literal (String "b") ]) ) ])) , NormalArg (Literal (String "a")) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (String "a")) (If [ ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "b") ]) ) ])) , NormalArg (Literal (String "ab")) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Times (Literal (Int 13)) (Literal (String "a"))) (Literal (String "bbbbbb"))) , NormalArg (Literal (String "aaaaaaaaaaaaabbbbbb")) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) ]) (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) ]) , SoftBreak , Code "typ/compiler/ops-01.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ]) (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , NormalArg (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-01.typ0000644000000000000000000000100707346545000016413 0ustar0000000000000000// Test math operators. // Test plus and minus. #for v in (1, 3.14, 12pt, 45deg, 90%, 13% + 10pt, 6.3fr) { // Test plus. test(+v, v) // Test minus. test(-v, -1 * v) test(--v, v) // Test combination. test(-++ --v, -v) } #test(-(4 + 2), 6-12) // Addition. #test(2 + 4, 6) #test("a" + "b", "ab") #test("a" + if false { "b" }, "a") #test("a" + if true { "b" }, "ab") #test(13 * "a" + "bbbbbb", "aaaaaaaaaaaaabbbbbb") #test((1, 2) + (3, 4), (1, 2, 3, 4)) #test((a: 1) + (b: 2, c: 3), (a: 1, b: 2, c: 3)) typst-0.8.0.2/test/typ/compiler/ops-02.out0000644000000000000000000000002107346545000016402 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-02.typ0000644000000000000000000000007607346545000016421 0ustar0000000000000000// Error: 3-26 value is too large #(9223372036854775807 + 1) typst-0.8.0.2/test/typ/compiler/ops-03.out0000644000000000000000000006265207346545000016425 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Literal (Int 1)) (Literal (Int 4))) , NormalArg (Times (Literal (Int 3)) (Negated (Literal (Int 1)))) ]) , SoftBreak , Code "typ/compiler/ops-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Literal (Numeric 4.0 Cm)) (Literal (Numeric 2.0 Cm))) , NormalArg (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "typ/compiler/ops-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (ToPower (Minus (Literal (Int 2)) (Literal (Float 1.0e-2))) (Literal (Int 1))) , NormalArg (Literal (Float 99.99)) ]) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Times (Literal (Int 2)) (Literal (Int 4))) , NormalArg (Literal (Int 8)) ]) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Literal (Numeric 12.0 Pt)) (Literal (Float 0.4))) , NormalArg (Literal (Numeric 30.0 Pt)) ]) , SoftBreak , Code "typ/compiler/ops-03.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Literal (Int 7)) (Literal (Int 2))) , NormalArg (Literal (Float 3.5)) ]) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Minus (Literal (Int 3)) (Times (Literal (Int 4)) (Literal (Int 5)))) (Negated (Literal (Int 10)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-03.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Literal None) , Assign (Ident (Identifier "x")) (And (GreaterThanOrEqual (Plus (Literal (Int 1)) (Times (Literal (Int 4)) (Literal (Int 5)))) (Literal (Int 21))) (Block (CodeBlock [ Assign (Ident (Identifier "x")) (Literal (String "a")) , Equals (Plus (Ident (Identifier "x")) (Literal (String "b"))) (Literal (String "ab")) ]))) , Ident (Identifier "x") ])) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (If [ ( Literal (Boolean True) , Block (CodeBlock [ Literal (Int 1) ]) ) ]) (Literal (Int 2))) , NormalArg (Literal (Int 3)) ]) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 24 , column 2 ) (Let (BasicBind (Just (Identifier "nums"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Float 3.14)) , Reg (Literal (Numeric 12.0 Pt)) , Reg (Literal (Numeric 3.0 Em)) , Reg (Plus (Literal (Numeric 12.0 Pt)) (Literal (Numeric 3.0 Em))) , Reg (Literal (Numeric 45.0 Deg)) , Reg (Literal (Numeric 90.0 Percent)) , Reg (Plus (Literal (Numeric 13.0 Percent)) (Literal (Numeric 10.0 Pt))) , Reg (Plus (Plus (Literal (Numeric 5.0 Percent)) (Literal (Numeric 1.0 Em))) (Literal (Numeric 3.0 Pt))) , Reg (Literal (Numeric 2.3 Fr)) ])) , ParBreak , Code "typ/compiler/ops-03.typ" ( line 33 , column 2 ) (For (BasicBind (Just (Identifier "v"))) (Ident (Identifier "nums")) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) (Ident (Identifier "v"))) , NormalArg (Ident (Identifier "v")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Minus (Ident (Identifier "v")) (Ident (Identifier "v"))) (Ident (Identifier "v"))) , NormalArg (Negated (Ident (Identifier "v"))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Minus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Int 0)) (Ident (Identifier "v"))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Int 2)) (Ident (Identifier "v"))) ] , If [ ( Not (Equals (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "v")) ]) (Literal (String "integer"))) , Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Times (Literal (Float 2.0)) (Ident (Identifier "v"))) ] ]) ) ] , If [ ( And (Not (InCollection (Literal (String "relative")) (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "v")) ]))) (Or (Not (InCollection (Literal (String "pt")) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "v")) ]))) (Not (InCollection (Literal (String "em")) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "v")) ])))) , Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Ident (Identifier "v")) (Ident (Identifier "v"))) , NormalArg (Literal (Float 1.0)) ] ]) ) ] ]))) , ParBreak , Comment , Comment , Comment , Comment , Code "typ/compiler/ops-03.typ" ( line 56 , column 2 ) (Let (BasicBind (Just (Identifier "dims"))) (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 1.0 Em)) , Reg (Plus (Literal (Numeric 10.0 Pt)) (Literal (Numeric 1.0 Em))) , Reg (Literal (Numeric 30.0 Percent)) , Reg (Plus (Literal (Numeric 50.0 Percent)) (Literal (Numeric 3.0 Cm))) , Reg (Plus (Plus (Literal (Numeric 40.0 Percent)) (Literal (Numeric 2.0 Em))) (Literal (Numeric 1.0 Cm))) ])) , SoftBreak , Code "typ/compiler/ops-03.typ" ( line 57 , column 2 ) (For (BasicBind (Just (Identifier "a"))) (Ident (Identifier "dims")) (Block (CodeBlock [ For (BasicBind (Just (Identifier "b"))) (Ident (Identifier "dims")) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Plus (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Minus (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) ] ])) , For (BasicBind (Just (Identifier "b"))) (Array [ Reg (Literal (Int 7)) , Reg (Literal (Float 3.14)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Times (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Times (Ident (Identifier "b")) (Ident (Identifier "a"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Divided (Ident (Identifier "a")) (Ident (Identifier "b"))) ]) , NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "a")) ]) ] ])) ]))) , ParBreak , Comment , Code "typ/compiler/ops-03.typ" ( line 70 , column 2 ) (For (BasicBind (Just (Identifier "a"))) (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Em)) , Reg (Literal (Numeric 0.0 Percent)) ]) (Block (CodeBlock [ For (BasicBind (Just (Identifier "b"))) (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 10.0 Em)) , Reg (Literal (Numeric 10.0 Percent)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Times (Literal (Int 2)) (Ident (Identifier "b"))) (Ident (Identifier "b"))) , NormalArg (Literal (Int 2)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Plus (Ident (Identifier "a")) (Times (Ident (Identifier "b")) (Literal (Int 2)))) (Ident (Identifier "b"))) , NormalArg (Literal (Int 2)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Divided (Ident (Identifier "b")) (Plus (Times (Ident (Identifier "b")) (Literal (Int 2))) (Ident (Identifier "a")))) , NormalArg (Literal (Float 0.5)) ] ])) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [1.0]), text(body: [ /= ]), text(body: [99.99]), text(body: [)]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), parbreak(), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [((12.0pt + 3.0em) + (12.0pt + 3.0em)) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [12.0pt + 3.0em]), text(body: [)]), text(body: [❌(]), text(body: [((12.0pt + 3.0em) + (-12.0pt + -3.0em)) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [-12.0pt + -3.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (-12.0pt + -3.0em)]), text(body: [ /= ]), text(body: [0.0pt + 0.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), text(body: [ /= ]), text(body: [24.0pt + 6.0em]), text(body: [)]), text(body: [❌(]), text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), text(body: [ /= ]), text(body: [24.0pt + 6.0em]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [((10.0pt + 13%) + (10.0pt + 13%)) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [10.0pt + 13%]), text(body: [)]), text(body: [❌(]), text(body: [((10.0pt + 13%) + (-10.0pt + -13%)) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [-10.0pt + -13%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (-10.0pt + -13%)]), text(body: [ /= ]), text(body: [0.0pt + 0%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), text(body: [ /= ]), text(body: [20.0pt + 26%]), text(body: [)]), text(body: [❌(]), text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), text(body: [ /= ]), text(body: [20.0pt + 26%]), text(body: [)]), text(body: [✅]), text(body: [❌(]), text(body: [(((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(1.0em + 5%) + 3.0pt]), text(body: [)]), text(body: [❌(]), text(body: [(((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(-1.0em + -5%) + -3.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)]), text(body: [ /= ]), text(body: [(0.0em + 0%) + 0.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), text(body: [ /= ]), text(body: [(2.0em + 10%) + 6.0pt]), text(body: [)]), text(body: [❌(]), text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), text(body: [ /= ]), text(body: [(2.0em + 10%) + 6.0pt]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [1.0fr]), text(body: [ /= ]), text(body: [1.0]), text(body: [)]), parbreak(), text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [200%]), text(body: [ /= ]), text(body: [2]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [❌(]), text(body: [200%]), text(body: [ /= ]), text(body: [2]), text(body: [)]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-03.typ0000644000000000000000000000276107346545000016425 0ustar0000000000000000// Subtraction. #test(1-4, 3*-1) #test(4cm - 2cm, 2cm) #test(1e+2-1e-2, 99.99) // Multiplication. #test(2 * 4, 8) // Division. #test(12pt/.4, 30pt) #test(7 / 2, 3.5) // Combination. #test(3-4 * 5 < -10, true) #test({ let x; x = 1 + 4*5 >= 21 and { x = "a"; x + "b" == "ab" }; x }, true) // With block. #test(if true { 1 } + 2, 3) // Mathematical identities. #let nums = ( 1, 3.14, 12pt, 3em, 12pt + 3em, 45deg, 90%, 13% + 10pt, 5% + 1em + 3pt, 2.3fr, ) #for v in nums { // Test plus and minus. test(v + v - v, v) test(v - v - v, -v) // Test plus/minus and multiplication. test(v - v, 0 * v) test(v + v, 2 * v) // Integer addition does not give a float. if type(v) != "integer" { test(v + v, 2.0 * v) } if "relative" not in type(v) and ("pt" not in repr(v) or "em" not in repr(v)) { test(v / v, 1.0) } } // Make sure length, ratio and relative length // - can all be added to / subtracted from each other, // - multiplied with integers and floats, // - divided by integers and floats. #let dims = (10pt, 1em, 10pt + 1em, 30%, 50% + 3cm, 40% + 2em + 1cm) #for a in dims { for b in dims { test(type(a + b), type(a - b)) } for b in (7, 3.14) { test(type(a * b), type(a)) test(type(b * a), type(a)) test(type(a / b), type(a)) } } // Test division of different numeric types with zero components. #for a in (0pt, 0em, 0%) { for b in (10pt, 10em, 10%) { test((2 * b) / b, 2) test((a + b * 2) / b, 2) test(b / (b * 2 + a), 0.5) } } typst-0.8.0.2/test/typ/compiler/ops-04.out0000644000000000000000000000473707346545000016426 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Literal (Int 16)) , NormalArg (Literal (Int 16)) ]) , SoftBreak , Code "typ/compiler/ops-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Literal (Int 13)) , NormalArg (Literal (Int 13)) ]) , SoftBreak , Code "typ/compiler/ops-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (Int 10)) (Literal (Int 10))) , NormalArg (Literal (Int 20)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-04.typ0000644000000000000000000000014207346545000016415 0ustar0000000000000000// Test numbers with alternative bases. #test(0x10, 16) #test(0b1101, 13) #test(0xA + 0xa, 0x14) typst-0.8.0.2/test/typ/compiler/ops-05.out0000644000000000000000000000002107346545000016405 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-05.typ0000644000000000000000000000006307346545000016420 0ustar0000000000000000// Error: 2-7 invalid binary number: 0b123 #0b123 typst-0.8.0.2/test/typ/compiler/ops-06.out0000644000000000000000000000002107346545000016406 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-06.typ0000644000000000000000000000007207346545000016421 0ustar0000000000000000// Error: 2-8 invalid hexadecimal number: 0x123z #0x123z typst-0.8.0.2/test/typ/compiler/ops-07.out0000644000000000000000000001311007346545000016412 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/ops-07.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (Literal (Boolean True))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (Literal (Boolean False))) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "typ/compiler/ops-07.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Literal (Boolean False)) (Literal (Boolean False))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Literal (Boolean False)) (Literal (Boolean True))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Literal (Boolean True)) (Literal (Boolean False))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Literal (Boolean True)) (Literal (Boolean True))) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "typ/compiler/ops-07.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Or (Literal (Boolean False)) (Literal (Boolean False))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Or (Literal (Boolean False)) (Literal (Boolean True))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Or (Literal (Boolean True)) (Literal (Boolean False))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Or (Literal (Boolean True)) (Literal (Boolean True))) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "typ/compiler/ops-07.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Literal (Boolean False)) (Ident (Identifier "dont-care"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-07.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Or (Literal (Boolean True)) (Ident (Identifier "dont-care"))) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-07.typ0000644000000000000000000000064007346545000016423 0ustar0000000000000000// Test boolean operators. // Test not. #test(not true, false) #test(not false, true) // And. #test(false and false, false) #test(false and true, false) #test(true and false, false) #test(true and true, true) // Or. #test(false or false, false) #test(false or true, true) #test(true or false, true) #test(true or true, true) // Short-circuiting. #test(false and dont-care, false) #test(true or dont-care, true) typst-0.8.0.2/test/typ/compiler/ops-08.out0000644000000000000000000002233207346545000016421 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/ops-08.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Int 1)) (Literal (String "hi"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Int 1)) (Literal (Float 1.0))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Numeric 30.0 Percent)) (Plus (Literal (Numeric 30.0 Percent)) (Literal (Numeric 0.0 Cm)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Numeric 1.0 In)) (Plus (Literal (Numeric 0.0 Percent)) (Literal (Numeric 72.0 Pt)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Numeric 30.0 Percent)) (Plus (Literal (Numeric 30.0 Percent)) (Literal (Numeric 1.0 Cm)))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (String "ab")) (Plus (Literal (String "a")) (Literal (String "b")))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Array []) (Array [ Reg (Literal (Int 1)) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) (Plus (Array [ Reg (Literal (Int 1)) , Reg (Literal (Float 2.0)) ]) (Array [ Reg (Literal (Int 3)) ]))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Dict []) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Dict [ Reg ( Ident (Identifier "a") , Minus (Literal (Int 2)) (Literal (Float 1.0)) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) , Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (Equals (Literal (String "a")) (Literal (String "a")))) , NormalArg (Literal (Boolean False)) ]) , ParBreak , Comment , Code "typ/compiler/ops-08.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Ident (Identifier "test")) (Ident (Identifier "test"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (FuncExpr [] (Block (CodeBlock []))) (FuncExpr [] (Block (CodeBlock [])))) , NormalArg (Literal (Boolean False)) ]) , ParBreak , Comment , Code "typ/compiler/ops-08.typ" ( line 22 , column 2 ) (Let (BasicBind (Just (Identifier "t"))) (Block (Content [ Text "a" ]))) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Ident (Identifier "t")) (Ident (Identifier "t"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Block (Content [])) (Block (Content []))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Block (Content [ Text "a" ])) (Block (Content [ Text "a" ]))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (FuncCall (Ident (Identifier "grid")) [ BlockArg [ Text "a" ] ]) (FuncCall (Ident (Identifier "grid")) [ BlockArg [ Text "a" ] ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-08.typ" ( line 27 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (FuncCall (Ident (Identifier "grid")) [ BlockArg [ Text "a" ] ]) (FuncCall (Ident (Identifier "grid")) [ BlockArg [ Text "b" ] ])) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [❌(]), text(body: [false]), text(body: [ /= ]), text(body: [true]), text(body: [)]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-08.typ0000644000000000000000000000125007346545000016422 0ustar0000000000000000// Test equality operators. // Most things compare by value. #test(1 == "hi", false) #test(1 == 1.0, true) #test(30% == 30% + 0cm, true) #test(1in == 0% + 72pt, true) #test(30% == 30% + 1cm, false) #test("ab" == "a" + "b", true) #test(() == (1,), false) #test((1, 2, 3) == (1, 2.0) + (3,), true) #test((:) == (a: 1), false) #test((a: 2 - 1.0, b: 2) == (b: 2, a: 1), true) #test("a" != "a", false) // Functions compare by identity. #test(test == test, true) #test((() => {}) == (() => {}), false) // Content compares field by field. #let t = [a] #test(t == t, true) #test([] == [], true) #test([a] == [a], true) #test(grid[a] == grid[a], true) #test(grid[a] == grid[b], false) typst-0.8.0.2/test/typ/compiler/ops-09.out0000644000000000000000000001236407346545000016426 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Times (Literal (Int 13)) (Literal (Int 3))) (Times (Literal (Int 14)) (Literal (Int 4)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Literal (Int 5)) (Literal (Int 10))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (GreaterThan (Literal (Int 5)) (Literal (Int 5))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThanOrEqual (Literal (Int 5)) (Literal (Int 5))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThanOrEqual (Literal (Int 5)) (Literal (Int 4))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Literal (Numeric 45.0 Deg)) (Literal (Numeric 1.0 Rad))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Literal (Numeric 10.0 Percent)) (Literal (Numeric 20.0 Percent))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Literal (Numeric 50.0 Percent)) (Plus (Literal (Numeric 40.0 Percent)) (Literal (Numeric 0.0 Pt)))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Plus (Literal (Numeric 40.0 Percent)) (Literal (Numeric 0.0 Pt))) (Plus (Literal (Numeric 50.0 Percent)) (Literal (Numeric 0.0 Pt)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-09.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (LessThan (Literal (Numeric 1.0 Em)) (Literal (Numeric 2.0 Em))) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-09.typ0000644000000000000000000000042707346545000016430 0ustar0000000000000000// Test comparison operators. #test(13 * 3 < 14 * 4, true) #test(5 < 10, true) #test(5 > 5, false) #test(5 <= 5, true) #test(5 <= 4, false) #test(45deg < 1rad, true) #test(10% < 20%, true) #test(50% < 40% + 0pt, false) #test(40% + 0pt < 50% + 0pt, true) #test(1em < 2em, true) typst-0.8.0.2/test/typ/compiler/ops-10.out0000644000000000000000000001234607346545000016416 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 5 , column 2 ) (Assign (Ident (Identifier "x")) (Literal (Int 10))) , Space , Code "typ/compiler/ops-10.typ" ( line 5 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 10)) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 6 , column 2 ) (Assign (Ident (Identifier "x")) (Minus (Ident (Identifier "x")) (Literal (Int 5)))) , Space , Code "typ/compiler/ops-10.typ" ( line 6 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 7 , column 2 ) (Assign (Ident (Identifier "x")) (Plus (Ident (Identifier "x")) (Literal (Int 1)))) , Space , Code "typ/compiler/ops-10.typ" ( line 7 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 8 , column 2 ) (Assign (Ident (Identifier "x")) (Times (Ident (Identifier "x")) (Ident (Identifier "x")))) , Space , Code "typ/compiler/ops-10.typ" ( line 8 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 36)) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 9 , column 2 ) (Assign (Ident (Identifier "x")) (Divided (Ident (Identifier "x")) (Literal (Float 2.0)))) , Space , Code "typ/compiler/ops-10.typ" ( line 9 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Float 18.0)) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 10 , column 2 ) (Assign (Ident (Identifier "x")) (Literal (String "some"))) , Space , Code "typ/compiler/ops-10.typ" ( line 10 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (String "some")) ]) , SoftBreak , Code "typ/compiler/ops-10.typ" ( line 11 , column 2 ) (Assign (Ident (Identifier "x")) (Plus (Ident (Identifier "x")) (Literal (String "thing")))) , Space , Code "typ/compiler/ops-10.typ" ( line 11 , column 18 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (String "something")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-10.typ0000644000000000000000000000040307346545000016412 0ustar0000000000000000// Test assignment operators. #let x = 0 #(x = 10) #test(x, 10) #(x -= 5) #test(x, 5) #(x += 1) #test(x, 6) #(x *= x) #test(x, 36) #(x /= 2.0) #test(x, 18.0) #(x = "some") #test(x, "some") #(x += "thing") #test(x, "something") typst-0.8.0.2/test/typ/compiler/ops-11.out0000644000000000000000000000014407346545000016410 0ustar0000000000000000"typ/compiler/ops-11.typ" (line 19, column 5): unexpected ":" expecting "//", "/*", operator or ")" typst-0.8.0.2/test/typ/compiler/ops-11.typ0000644000000000000000000000115507346545000016420 0ustar0000000000000000// Test destructuring assignments. #let a = none #let b = none #let c = none #((a,) = (1,)) #test(a, 1) #((_, a, b, _) = (1, 2, 3, 4)) #test(a, 2) #test(b, 3) #((a, b, ..c) = (1, 2, 3, 4, 5, 6)) #test(a, 1) #test(b, 2) #test(c, (3, 4, 5, 6)) #((a: a, b, x: c) = (a: 1, b: 2, x: 3)) #test(a, 1) #test(b, 2) #test(c, 3) #let a = (1, 2) #((a: a.at(0), b) = (a: 3, b: 4)) #test(a, (3, 2)) #test(b, 4) #let a = (1, 2) #((a.at(0), b) = (3, 4)) #test(a, (3, 2)) #test(b, 4) #((a, ..b) = (1, 2, 3, 4)) #test(a, 1) #test(b, (2, 3, 4)) #let a = (1, 2) #((b, ..a.at(0)) = (1, 2, 3, 4)) #test(a, ((2, 3, 4), 2)) #test(b, 1) typst-0.8.0.2/test/typ/compiler/ops-12.out0000644000000000000000000000002107346545000016403 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-12.typ0000644000000000000000000000007007346545000016414 0ustar0000000000000000// Error: 3-6 cannot mutate a constant: box #(box = 1) typst-0.8.0.2/test/typ/compiler/ops-13.out0000644000000000000000000001370507346545000016421 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-13.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-13.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-13.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-13.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "hi")) (Literal (String "worship"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "hi")) (Array [ Reg (Literal (String "we")) , Reg (Literal (String "hi")) , Reg (Literal (String "bye")) ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "Hey")) (Literal (String "abHeyCd"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "Hey")) (Literal (String "abheyCd"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (Int 5)) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (Int 12)) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "")) (Array [])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "key")) (Dict [ Reg ( Ident (Identifier "key") , Literal (String "value") ) ])) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "value")) (Dict [ Reg ( Ident (Identifier "key") , Literal (String "value") ) ])) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (InCollection (Literal (String "Hey")) (Literal (String "abheyCd")))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-13.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (InCollection (Literal (String "a")) (Literal (String "abc")))) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-13.typ0000644000000000000000000000062507346545000016423 0ustar0000000000000000// Test `in` operator. #test("hi" in "worship", true) #test("hi" in ("we", "hi", "bye"), true) #test("Hey" in "abHeyCd", true) #test("Hey" in "abheyCd", false) #test(5 in range(10), true) #test(12 in range(10), false) #test("" in (), false) #test("key" in (key: "value"), true) #test("value" in (key: "value"), false) #test("Hey" not in "abheyCd", true) #test("a" not /* fun comment? */ in "abc", false) typst-0.8.0.2/test/typ/compiler/ops-14.out0000644000000000000000000000002107346545000016405 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-14.typ0000644000000000000000000000005707346545000016423 0ustar0000000000000000// Error: 10 expected keyword `in` #("a" not) typst-0.8.0.2/test/typ/compiler/ops-15.out0000644000000000000000000001404307346545000016417 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-15.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-15.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-15.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/compiler/ops-15.typ" ( line 5 , column 2 ) (LetFunc (Identifier "add") [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Plus (Ident (Identifier "x")) (Ident (Identifier "y")))) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "add"))) [ NormalArg (Literal (Int 2)) ]) [ NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (FieldAccess (Ident (Identifier "with")) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "add"))) [ NormalArg (Literal (Int 2)) ])) [ NormalArg (Literal (Int 3)) ]) []) , NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "add"))) [ NormalArg (Literal (Int 2)) ]) [ NormalArg (Literal (Int 4)) ]) , NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FuncCall (FieldAccess (Ident (Identifier "with")) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "add"))) [ NormalArg (Literal (Int 2)) ])) [ NormalArg (Literal (Int 3)) ]) []) , NormalArg (Literal (Int 5)) ]) , ParBreak , Comment , Code "typ/compiler/ops-15.typ" ( line 12 , column 2 ) (LetFunc (Identifier "inc") [ NormalParam (Identifier "x") , DefaultParam (Identifier "y") (Literal (Int 1)) ] (Plus (Ident (Identifier "x")) (Ident (Identifier "y")))) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "inc")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (Int 2)) ]) , ParBreak , Code "typ/compiler/ops-15.typ" ( line 15 , column 2 ) (Let (BasicBind (Just (Identifier "inc2"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "inc"))) [ KeyValArg (Identifier "y") (Literal (Int 2)) ])) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "inc2")) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 4)) ]) , SoftBreak , Code "typ/compiler/ops-15.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "inc2")) [ NormalArg (Literal (Int 2)) , KeyValArg (Identifier "y") (Literal (Int 4)) ]) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-15.typ0000644000000000000000000000055107346545000016423 0ustar0000000000000000// Test `with` method. // Apply positional arguments. #let add(x, y) = x + y #test(add.with(2)(3), 5) #test(add.with(2).with(3)(), 5) #test((add.with(2))(4), 6) #test((add.with(2).with(3))(), 5) // Make sure that named arguments are overridable. #let inc(x, y: 1) = x + y #test(inc(1), 2) #let inc2 = inc.with(y: 2) #test(inc2(2), 4) #test(inc2(2, y: 4), 6) typst-0.8.0.2/test/typ/compiler/ops-assoc-00.out0000644000000000000000000000601507346545000017517 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-assoc-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-assoc-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-assoc-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-assoc-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Divided (Divided (Literal (Int 10)) (Literal (Int 2))) (Literal (Int 2))) (Divided (Divided (Literal (Int 10)) (Literal (Int 2))) (Literal (Int 2)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-assoc-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Divided (Divided (Literal (Int 10)) (Literal (Int 2))) (Literal (Int 2))) (Divided (Literal (Int 10)) (Divided (Literal (Int 2)) (Literal (Int 2))))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/ops-assoc-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Times (Divided (Literal (Int 1)) (Literal (Int 2))) (Literal (Int 3))) , NormalArg (Literal (Float 1.5)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-assoc-00.typ0000644000000000000000000000022007346545000017514 0ustar0000000000000000// Math operators are left-associative. #test(10 / 2 / 2 == (10 / 2) / 2, true) #test(10 / 2 / 2 == 10 / (2 / 2), false) #test(1 / 2 * 3, 1.5) typst-0.8.0.2/test/typ/compiler/ops-assoc-01.out0000644000000000000000000000446007346545000017522 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-assoc-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-assoc-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-assoc-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "{" , SoftBreak , Text "let" , Space , Text "x" , Space , Text "=" , Space , Text "1" , SoftBreak , Text "let" , Space , Text "y" , Space , Text "=" , Space , Text "2" , SoftBreak , Text "x" , Space , Text "=" , Space , Text "y" , Space , Text "=" , Space , Quote '"' , Text "ok" , Quote '"' , SoftBreak , Text "test" , Text "(" , Text "x," , Space , Text "none)" , SoftBreak , Text "test" , Text "(" , Text "y," , Space , Quote '"' , Text "ok" , Quote '"' , Text ")" , SoftBreak , Text "}" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [{ let x = 1 let y = 2 x = y = “ok” test(x, none) test(y, “ok”) }]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-assoc-01.typ0000644000000000000000000000015707346545000017526 0ustar0000000000000000// Assignment is right-associative. { let x = 1 let y = 2 x = y = "ok" test(x, none) test(y, "ok") } typst-0.8.0.2/test/typ/compiler/ops-invalid-00.out0000644000000000000000000000002107346545000020024 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-00.typ0000644000000000000000000000004607346545000020040 0ustar0000000000000000// Error: 4 expected expression #(-) typst-0.8.0.2/test/typ/compiler/ops-invalid-01.out0000644000000000000000000000002107346545000020025 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-01.typ0000644000000000000000000000006107346545000020036 0ustar0000000000000000// Error: 10 expected expression #test({1+}, 1) typst-0.8.0.2/test/typ/compiler/ops-invalid-02.out0000644000000000000000000000002107346545000020026 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-02.typ0000644000000000000000000000006107346545000020037 0ustar0000000000000000// Error: 10 expected expression #test({2*}, 2) typst-0.8.0.2/test/typ/compiler/ops-invalid-03.out0000644000000000000000000000002107346545000020027 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-03.typ0000644000000000000000000000007207346545000020042 0ustar0000000000000000// Error: 3-13 cannot apply '+' to content #(+([] + [])) typst-0.8.0.2/test/typ/compiler/ops-invalid-04.out0000644000000000000000000000002107346545000020030 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-04.typ0000644000000000000000000000006107346545000020041 0ustar0000000000000000// Error: 3-6 cannot apply '-' to string #(-"") typst-0.8.0.2/test/typ/compiler/ops-invalid-05.out0000644000000000000000000000002107346545000020031 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-05.typ0000644000000000000000000000006507346545000020046 0ustar0000000000000000// Error: 3-9 cannot apply 'not' to array #(not ()) typst-0.8.0.2/test/typ/compiler/ops-invalid-06.out0000644000000000000000000000002107346545000020032 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-06.typ0000644000000000000000000000012307346545000020042 0ustar0000000000000000// Error: 3-19 cannot apply '<=' to relative length and ratio #(30% + 1pt <= 40%) typst-0.8.0.2/test/typ/compiler/ops-invalid-07.out0000644000000000000000000000002107346545000020033 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-07.typ0000644000000000000000000000010607346545000020044 0ustar0000000000000000// Error: 3-14 cannot apply '<=' to length and length #(1em <= 10pt) typst-0.8.0.2/test/typ/compiler/ops-invalid-08.out0000644000000000000000000000002107346545000020034 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-08.typ0000644000000000000000000000006307346545000020047 0ustar0000000000000000// Error: 3-12 cannot divide by zero #(1.2 / 0.0) typst-0.8.0.2/test/typ/compiler/ops-invalid-09.out0000644000000000000000000000002107346545000020035 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-09.typ0000644000000000000000000000005607346545000020052 0ustar0000000000000000// Error: 3-8 cannot divide by zero #(1 / 0) typst-0.8.0.2/test/typ/compiler/ops-invalid-10.out0000644000000000000000000000002107346545000020025 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-10.typ0000644000000000000000000000006607346545000020043 0ustar0000000000000000// Error: 3-15 cannot divide by zero #(15deg / 0deg) typst-0.8.0.2/test/typ/compiler/ops-invalid-11.out0000644000000000000000000000002107346545000020026 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-11.typ0000644000000000000000000000015107346545000020037 0ustar0000000000000000// Special messages for +, -, * and /. // Error: 3-10 cannot add integer and string #(1 + "2", 40% - 1) typst-0.8.0.2/test/typ/compiler/ops-invalid-12.out0000644000000000000000000000002107346545000020027 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-12.typ0000644000000000000000000000011007346545000020033 0ustar0000000000000000// Error: 15-23 cannot add integer and string #{ let x = 1; x += "2" } typst-0.8.0.2/test/typ/compiler/ops-invalid-13.out0000644000000000000000000000002107346545000020030 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-13.typ0000644000000000000000000000007507346545000020046 0ustar0000000000000000// Error: 4-13 cannot divide ratio by length #( 10% / 5pt ) typst-0.8.0.2/test/typ/compiler/ops-invalid-14.out0000644000000000000000000000002107346545000020031 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-14.typ0000644000000000000000000000007507346545000020047 0ustar0000000000000000// Error: 3-12 cannot divide these two lengths #(1em / 5pt) typst-0.8.0.2/test/typ/compiler/ops-invalid-15.out0000644000000000000000000000002107346545000020032 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-15.typ0000644000000000000000000000011307346545000020041 0ustar0000000000000000// Error: 3-19 cannot divide relative length by ratio #((10% + 1pt) / 5%) typst-0.8.0.2/test/typ/compiler/ops-invalid-16.out0000644000000000000000000000002107346545000020033 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-16.typ0000644000000000000000000000012607346545000020046 0ustar0000000000000000// Error: 3-28 cannot divide these two relative lengths #((10% + 1pt) / (20% + 1pt)) typst-0.8.0.2/test/typ/compiler/ops-invalid-17.out0000644000000000000000000000002107346545000020034 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-17.typ0000644000000000000000000000011207346545000020042 0ustar0000000000000000// Error: 13-20 cannot subtract integer from ratio #((1234567, 40% - 1)) typst-0.8.0.2/test/typ/compiler/ops-invalid-18.out0000644000000000000000000000002107346545000020035 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-18.typ0000644000000000000000000000010107346545000020041 0ustar0000000000000000// Error: 3-11 cannot multiply integer with boolean #(2 * true) typst-0.8.0.2/test/typ/compiler/ops-invalid-19.out0000644000000000000000000000002107346545000020036 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-19.typ0000644000000000000000000000007407346545000020053 0ustar0000000000000000// Error: 3-11 cannot divide integer by length #(3 / 12pt) typst-0.8.0.2/test/typ/compiler/ops-invalid-20.out0000644000000000000000000000002107346545000020026 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-20.typ0000644000000000000000000000007607346545000020045 0ustar0000000000000000// Error: 3-10 cannot repeat this string -1 times #(-1 * "") typst-0.8.0.2/test/typ/compiler/ops-invalid-21.out0000644000000000000000000000002107346545000020027 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-21.typ0000644000000000000000000000022007346545000020035 0ustar0000000000000000#{ let x = 2 for _ in range(61) { (x) *= 2 } // Error: 3-17 cannot repeat this string 4611686018427387904 times x * "abcdefgh" } typst-0.8.0.2/test/typ/compiler/ops-invalid-22.out0000644000000000000000000000002107346545000020030 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-22.typ0000644000000000000000000000005707346545000020046 0ustar0000000000000000// Error: 4-5 unknown variable: x #((x) = "") typst-0.8.0.2/test/typ/compiler/ops-invalid-23.out0000644000000000000000000000002107346545000020031 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-23.typ0000644000000000000000000000006207346545000020043 0ustar0000000000000000// Error: 4-5 unknown variable: x #((x,) = (1,)) typst-0.8.0.2/test/typ/compiler/ops-invalid-24.out0000644000000000000000000000002107346545000020032 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-24.typ0000644000000000000000000000007507346545000020050 0ustar0000000000000000// Error: 3-8 cannot mutate a temporary value #(1 + 2 += 3) typst-0.8.0.2/test/typ/compiler/ops-invalid-25.out0000644000000000000000000000002107346545000020033 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-25.typ0000644000000000000000000000011607346545000020045 0ustar0000000000000000// Error: 2:3-2:8 cannot apply 'not' to string #let x = "Hey" #(not x = "a") typst-0.8.0.2/test/typ/compiler/ops-invalid-26.out0000644000000000000000000000002107346545000020034 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-26.typ0000644000000000000000000000006107346545000020045 0ustar0000000000000000// Error: 7-8 unknown variable: x #(1 + x += 3) typst-0.8.0.2/test/typ/compiler/ops-invalid-27.out0000644000000000000000000000002107346545000020035 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-27.typ0000644000000000000000000000005407346545000020050 0ustar0000000000000000// Error: 3-4 unknown variable: z #(z = 1) typst-0.8.0.2/test/typ/compiler/ops-invalid-28.out0000644000000000000000000000002107346545000020036 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-invalid-28.typ0000644000000000000000000000007507346545000020054 0ustar0000000000000000// Error: 3-7 cannot mutate a constant: rect #(rect = "hi") typst-0.8.0.2/test/typ/compiler/ops-invalid-29.out0000644000000000000000000000405107346545000020046 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-invalid-29.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-invalid-29.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-invalid-29.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/ops-invalid-29.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "rect"))) (Literal (String ""))) , SoftBreak , Code "typ/compiler/ops-invalid-29.typ" ( line 5 , column 2 ) (Assign (Ident (Identifier "rect")) (Literal (String "hi"))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-invalid-29.typ0000644000000000000000000000022007346545000020045 0ustar0000000000000000// Works if we define rect beforehand // (since then it doesn't resolve to the standard library version anymore). #let rect = "" #(rect = "hi") typst-0.8.0.2/test/typ/compiler/ops-prec-00.out0000644000000000000000000000625007346545000017341 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-prec-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-prec-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-prec-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-prec-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Plus (Literal (Int 1)) (Times (Literal (Int 2)) (Negated (Literal (Int 3))))) , NormalArg (Negated (Literal (Int 5))) ]) , ParBreak , Comment , Code "typ/compiler/ops-prec-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Equals (Literal (Int 3)) (Minus (Literal (Int 5)) (Literal (Int 2)))) , NormalArg (Literal (Boolean True)) ]) , ParBreak , Comment , Code "typ/compiler/ops-prec-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (And (Equals (Literal (String "a")) (Literal (String "a"))) (LessThan (Literal (Int 2)) (Literal (Int 3)))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/ops-prec-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (Equals (Literal (String "b")) (Literal (String "b")))) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-prec-00.typ0000644000000000000000000000037207346545000017345 0ustar0000000000000000// Multiplication binds stronger than addition. #test(1+2*-3, -5) // Subtraction binds stronger than comparison. #test(3 == 5 - 2, true) // Boolean operations bind stronger than '=='. #test("a" == "a" and 2 < 3, true) #test(not "b" == "b", false) typst-0.8.0.2/test/typ/compiler/ops-prec-01.out0000644000000000000000000000002107346545000017330 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-prec-01.typ0000644000000000000000000000020707346545000017343 0ustar0000000000000000// Assignment binds stronger than boolean operations. // Error: 2:3-2:8 cannot mutate a temporary value #let x = false #(not x = "a") typst-0.8.0.2/test/typ/compiler/ops-prec-02.out0000644000000000000000000000002107346545000017331 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-prec-02.typ0000644000000000000000000000016307346545000017345 0ustar0000000000000000// Precedence doesn't matter for chained unary operators. // Error: 3-12 cannot apply '-' to boolean #(-not true) typst-0.8.0.2/test/typ/compiler/ops-prec-03.out0000644000000000000000000000430207346545000017340 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/ops-prec-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/ops-prec-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/ops-prec-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/ops-prec-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Not (InCollection (Negated (Literal (Int 1))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]))) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/ops-prec-03.typ0000644000000000000000000000010007346545000017335 0ustar0000000000000000// Not in handles precedence. #test(-1 not in (1, 2, 3), true) typst-0.8.0.2/test/typ/compiler/ops-prec-04.out0000644000000000000000000000002107346545000017333 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/ops-prec-04.typ0000644000000000000000000000017607346545000017353 0ustar0000000000000000// Parentheses override precedence. #test((1), 1) #test((1+2)*-3, -9) // Error: 14 expected closing paren #test({(1 + 1}, 2) typst-0.8.0.2/test/typ/compiler/recursion-00.out0000644000000000000000000000602407346545000017621 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/recursion-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/recursion-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/recursion-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/recursion-00.typ" ( line 3 , column 2 ) (LetFunc (Identifier "fib") [ NormalParam (Identifier "n") ] (Block (CodeBlock [ If [ ( LessThanOrEqual (Ident (Identifier "n")) (Literal (Int 2)) , Block (CodeBlock [ Literal (Int 1) ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Plus (FuncCall (Ident (Identifier "fib")) [ NormalArg (Minus (Ident (Identifier "n")) (Literal (Int 1))) ]) (FuncCall (Ident (Identifier "fib")) [ NormalArg (Minus (Ident (Identifier "n")) (Literal (Int 2))) ]) ]) ) ] ]))) , ParBreak , Code "typ/compiler/recursion-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "fib")) [ NormalArg (Literal (Int 10)) ]) , NormalArg (Literal (Int 55)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/recursion-00.typ0000644000000000000000000000020307346545000017617 0ustar0000000000000000// Test with named function. #let fib(n) = { if n <= 2 { 1 } else { fib(n - 1) + fib(n - 2) } } #test(fib(10), 55) typst-0.8.0.2/test/typ/compiler/recursion-01.out0000644000000000000000000000002107346545000017611 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/recursion-01.typ0000644000000000000000000000014407346545000017624 0ustar0000000000000000// Test with unnamed function. // Error: 17-18 unknown variable: f #let f = (n) => f(n - 1) #f(10) typst-0.8.0.2/test/typ/compiler/recursion-02.out0000644000000000000000000000464407346545000017631 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/recursion-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/recursion-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/recursion-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/recursion-02.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "f"))) (Literal (Int 10))) , SoftBreak , Code "typ/compiler/recursion-02.typ" ( line 4 , column 2 ) (LetFunc (Identifier "f") [] (Ident (Identifier "f"))) , SoftBreak , Code "typ/compiler/recursion-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) ]) , NormalArg (Literal (String "function")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/recursion-02.typ0000644000000000000000000000013607346545000017626 0ustar0000000000000000// Test capturing with named function. #let f = 10 #let f() = f #test(type(f()), "function") typst-0.8.0.2/test/typ/compiler/recursion-03.out0000644000000000000000000000471307346545000017627 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/recursion-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/recursion-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/recursion-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/recursion-03.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "f"))) (Literal (Int 10))) , SoftBreak , Code "typ/compiler/recursion-03.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "f"))) (FuncExpr [] (Ident (Identifier "f")))) , SoftBreak , Code "typ/compiler/recursion-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) ]) , NormalArg (Literal (String "integer")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/recursion-03.typ0000644000000000000000000000014307346545000017625 0ustar0000000000000000// Test capturing with unnamed function. #let f = 10 #let f = () => f #test(type(f()), "integer") typst-0.8.0.2/test/typ/compiler/recursion-04.out0000644000000000000000000000002107346545000017614 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/recursion-04.typ0000644000000000000000000000012707346545000017630 0ustar0000000000000000// Error: 15-21 maximum function call depth exceeded #let rec(n) = rec(n) + 1 #rec(1) typst-0.8.0.2/test/typ/compiler/recursion-05.out0000644000000000000000000000540407346545000017627 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/recursion-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/recursion-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/recursion-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/recursion-05.typ" ( line 2 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") ] (Literal (String "hello"))) , SoftBreak , Code "typ/compiler/recursion-05.typ" ( line 3 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") ] (If [ ( Not (Equals (Ident (Identifier "x")) (Literal None)) , Block (CodeBlock [ FuncCall (Ident (Identifier "f")) [ NormalArg (Literal None) ] ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "world") ]) ) ])) , SoftBreak , Code "typ/compiler/recursion-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "world")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/recursion-05.typ0000644000000000000000000000013707346545000017632 0ustar0000000000000000#let f(x) = "hello" #let f(x) = if x != none { f(none) } else { "world" } #test(f(1), "world") typst-0.8.0.2/test/typ/compiler/repr-00.out0000644000000000000000000000466607346545000016572 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/repr-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/repr-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/repr-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/repr-00.typ" ( line 3 , column 2 ) (Literal Auto) , Space , HardBreak , Code "typ/compiler/repr-00.typ" ( line 4 , column 2 ) (Literal None) , Space , Text "(" , Text "empty)" , Space , HardBreak , Code "typ/compiler/repr-00.typ" ( line 5 , column 2 ) (Literal (Boolean True)) , Space , HardBreak , Code "typ/compiler/repr-00.typ" ( line 6 , column 2 ) (Literal (Boolean False)) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [auto]), text(body: [ ]), linebreak(), text(body: [ (empty) ]), linebreak(), text(body: [true]), text(body: [ ]), linebreak(), text(body: [false]), parbreak() }) typst-0.8.0.2/test/typ/compiler/repr-00.typ0000644000000000000000000000007307346545000016563 0ustar0000000000000000// Literal values. #auto \ #none (empty) \ #true \ #false typst-0.8.0.2/test/typ/compiler/repr-01.out0000644000000000000000000001065707346545000016570 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/repr-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/repr-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/repr-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/repr-01.typ" ( line 3 , column 2 ) (Literal (Int 1)) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 4 , column 2 ) (Literal (Float 1.0e-4)) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 5 , column 2 ) (Literal (Float 3.15)) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 6 , column 2 ) (Literal (Float 1.0e-10)) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 7 , column 2 ) (Literal (Numeric 50.368 Percent)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 8 , column 2 ) (Literal (Numeric 1.2345e-6 Pt)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 9 , column 2 ) (Literal (Numeric 4.5 Cm)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 10 , column 2 ) (Literal (Numeric 120.0 Pt)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 11 , column 2 ) (Literal (Numeric 2.5 Rad)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 12 , column 2 ) (Literal (Numeric 45.0 Deg)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 13 , column 2 ) (Literal (Numeric 1.7 Em)) , HardBreak , Code "typ/compiler/repr-01.typ" ( line 14 , column 2 ) (Plus (Literal (Numeric 1.0 Cm)) (Literal (Numeric 0.0 Em))) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 15 , column 2 ) (Plus (Literal (Numeric 2.0 Em)) (Literal (Numeric 10.0 Pt))) , Space , HardBreak , Code "typ/compiler/repr-01.typ" ( line 16 , column 2 ) (Literal (Numeric 2.3 Fr)) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [1]), text(body: [ ]), linebreak(), text(body: [1.0e-4]), text(body: [ ]), linebreak(), text(body: [3.15]), text(body: [ ]), linebreak(), text(body: [1.0e-10]), text(body: [ ]), linebreak(), text(body: [50%]), linebreak(), text(body: [1.2345e-6pt]), linebreak(), text(body: [4.5cm]), linebreak(), text(body: [120.0pt]), linebreak(), text(body: [143.2394487827058deg]), linebreak(), text(body: [45.0deg]), linebreak(), text(body: [1.7em]), linebreak(), text(body: [1.0cm]), text(body: [ ]), linebreak(), text(body: [2.0em + 10.0pt]), text(body: [ ]), linebreak(), text(body: [2.3fr]), parbreak() }) typst-0.8.0.2/test/typ/compiler/repr-01.typ0000644000000000000000000000025007346545000016561 0ustar0000000000000000// Numerical values. #1 \ #1.0e-4 \ #3.15 \ #1e-10 \ #50.368% \ #0.0000012345pt \ #4.5cm \ #12e1pt \ #2.5rad \ #45deg \ #1.7em \ #(1cm + 0em) \ #(2em + 10pt) \ #2.3fr typst-0.8.0.2/test/typ/compiler/repr-02.out0000644000000000000000000001112307346545000016556 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/repr-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/repr-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/repr-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/repr-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 0.8 Em)) ]) , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "f7a205")) ]) , Space , HardBreak , Code "typ/compiler/repr-02.typ" ( line 5 , column 2 ) (Plus (Literal (Numeric 2.0 Pt)) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "f7a205")) ])) , ParBreak , Comment , Code "typ/compiler/repr-02.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "raw")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (Literal (String "hi")) ]) , KeyValArg (Identifier "lang") (Literal (String "typc")) ]) , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Literal (String "a\n[]\"\128640string")) ]) , ParBreak , Comment , Code "typ/compiler/repr-02.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "raw")) [ KeyValArg (Identifier "lang") (Literal (String "typc")) , NormalArg (FuncCall (Ident (Identifier "repr")) [ BlockArg [ Strong [ Text "Hey" ] ] ]) ]) , ParBreak , Comment , Text "Nothing" , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 16 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") ] (Ident (Identifier "x"))) , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 17 , column 2 ) (Ident (Identifier "f")) , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 18 , column 2 ) (Ident (Identifier "rect")) , SoftBreak , Code "typ/compiler/repr-02.typ" ( line 19 , column 2 ) (FuncExpr [] (Literal None)) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], size: 0.8em), text(body: [rgb(96%,63%,1%,100%)], size: 0.8em), text(body: [ ], size: 0.8em), linebreak(), text(body: [(thickness: 2.0pt, color: rgb(96%,63%,1%,100%))], size: 0.8em), parbreak(), raw(lang: "typc", text: "\"hi\""), text(body: [ ], size: 0.8em), text(body: ["a\n[]\"🚀string"], size: 0.8em), parbreak(), raw(lang: "typc", text: "strong(body: text(body: [Hey], \n size: 0.8em))"), parbreak(), text(body: [Nothing ], size: 0.8em), text(body: [ ], size: 0.8em), text(body: [ ], size: 0.8em), text(body: [ ], size: 0.8em), parbreak() }) typst-0.8.0.2/test/typ/compiler/repr-02.typ0000644000000000000000000000044007346545000016563 0ustar0000000000000000// Colors and strokes. #set text(0.8em) #rgb("f7a205") \ #(2pt + rgb("f7a205")) // Strings and escaping. #raw(repr("hi"), lang: "typc") #repr("a\n[]\"\u{1F680}string") // Content. #raw(lang: "typc", repr[*Hey*]) // Functions are invisible. Nothing #let f(x) = x #f #rect #(() => none) typst-0.8.0.2/test/typ/compiler/return-00.out0000644000000000000000000000446007346545000017131 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/return-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/return-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/return-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/return-00.typ" ( line 3 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") ] (Block (CodeBlock [ Return (Just (Plus (Ident (Identifier "x")) (Literal (Int 1)))) ]))) , ParBreak , Code "typ/compiler/return-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/return-00.typ0000644000000000000000000000011307346545000017125 0ustar0000000000000000// Test return with value. #let f(x) = { return x + 1 } #test(f(1), 2) typst-0.8.0.2/test/typ/compiler/return-01.out0000644000000000000000000000707707346545000017141 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/return-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/return-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/return-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/return-01.typ" ( line 4 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "x") ] (Block (CodeBlock [ Literal (String "a") , If [ ( Equals (Ident (Identifier "x")) (Literal (Int 0)) , Block (CodeBlock [ Return (Just (Literal (String "b"))) ]) ) , ( Equals (Ident (Identifier "x")) (Literal (Int 1)) , Block (CodeBlock [ Literal (String "c") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "d") , Return Nothing , Literal (String "e") ]) ) ] ]))) , ParBreak , Code "typ/compiler/return-01.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (String "b")) ]) , SoftBreak , Code "typ/compiler/return-01.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "ac")) ]) , SoftBreak , Code "typ/compiler/return-01.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (String "ad")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/return-01.typ0000644000000000000000000000031707346545000017134 0ustar0000000000000000// Test return with joining. #let f(x) = { "a" if x == 0 { return "b" } else if x == 1 { "c" } else { "d" return "e" } } #test(f(0), "b") #test(f(1), "ac") #test(f(2), "ad") typst-0.8.0.2/test/typ/compiler/return-02.out0000644000000000000000000000634707346545000017141 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/return-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/return-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/return-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/return-02.typ" ( line 5 , column 2 ) (LetFunc (Identifier "f") [ NormalParam (Identifier "text") , DefaultParam (Identifier "caption") (Literal None) ] (Block (CodeBlock [ Ident (Identifier "text") , If [ ( Equals (Ident (Identifier "caption")) (Literal None) , Block (Content [ Text "." , Code "typ/compiler/return-02.typ" ( line 7 , column 26 ) (Return Nothing) ]) ) ] , Block (Content [ Text "," , Space ]) , FuncCall (Ident (Identifier "emph")) [ NormalArg (Ident (Identifier "caption")) ] , Block (Content [ Text "." ]) ]))) , ParBreak , Code "typ/compiler/return-02.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "f")) [ KeyValArg (Identifier "caption") (Block (Content [ Text "with" , Space , Text "caption" ])) , BlockArg [ Text "My" , Space , Text "figure" ] ]) , ParBreak , Code "typ/compiler/return-02.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "f")) [ BlockArg [ Text "My" , Space , Text "other" , Space , Text "figure" ] ]) , ParBreak ] "typ/compiler/return-02.typ" (line 13, column 2): unexpected end of input text is not an element function typst-0.8.0.2/test/typ/compiler/return-02.typ0000644000000000000000000000033507346545000017135 0ustar0000000000000000// Test return with joining and content. // Ref: true #let f(text, caption: none) = { text if caption == none [\.#return] [, ] emph(caption) [\.] } #f(caption: [with caption])[My figure] #f[My other figure] typst-0.8.0.2/test/typ/compiler/return-03.out0000644000000000000000000000002107346545000017121 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/return-03.typ0000644000000000000000000000017007346545000017133 0ustar0000000000000000// Test return outside of function. #for x in range(5) { // Error: 3-9 cannot return outside of function return } typst-0.8.0.2/test/typ/compiler/return-04.out0000644000000000000000000000644107346545000017136 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/return-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/return-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/return-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/return-04.typ" ( line 3 , column 2 ) (LetFunc (Identifier "sum") [ SinkParam (Just (Identifier "args")) ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "s"))) (Literal (Int 0)) , For (BasicBind (Just (Identifier "v"))) (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "args"))) []) (Block (CodeBlock [ Assign (Ident (Identifier "s")) (Plus (Ident (Identifier "s")) (Ident (Identifier "v"))) ])) , Ident (Identifier "s") ]))) , ParBreak , Code "typ/compiler/return-04.typ" ( line 11 , column 2 ) (LetFunc (Identifier "f") [] (Block (CodeBlock [ FuncCall (Ident (Identifier "sum")) [ SpreadArg (Return Nothing) , NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) ] , Literal (String "nope") ]))) , ParBreak , Code "typ/compiler/return-04.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (Int 6)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/return-04.typ0000644000000000000000000000030507346545000017134 0ustar0000000000000000// Test that the expression is evaluated to the end. #let sum(..args) = { let s = 0 for v in args.pos() { s += v } s } #let f() = { sum(..return, 1, 2, 3) "nope" } #test(f(), 6) typst-0.8.0.2/test/typ/compiler/return-05.out0000644000000000000000000000566607346545000017147 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/return-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/return-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/return-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/return-05.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (Int 3))) , SoftBreak , Code "typ/compiler/return-05.typ" ( line 4 , column 2 ) (LetFunc (Identifier "f") [] (Block (Content [ SoftBreak , Text "Hello" , Space , Text "\128512" , SoftBreak , Code "typ/compiler/return-05.typ" ( line 6 , column 4 ) (Return (Just (Literal (String "nope")))) , SoftBreak , Text "World" , ParBreak ]))) , ParBreak , Code "typ/compiler/return-05.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) []) , NormalArg (Literal (String "nope")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [❌(]), text(body: [{ text(body: [ Hello 😀 ]), text(body: [nope]), text(body: [ World]), parbreak() }]), text(body: [ /= ]), text(body: ["nope"]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compiler/return-05.typ0000644000000000000000000000016707346545000017143 0ustar0000000000000000// Test value return from content. #let x = 3 #let f() = [ Hello 😀 #return "nope" World ] #test(f(), "nope") typst-0.8.0.2/test/typ/compiler/set-00.out0000644000000000000000000000413407346545000016403 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/set-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Block (Content [ Text "World" ]))) , SoftBreak , Text "Hello" , Space , Strong [ Code "typ/compiler/set-00.typ" ( line 4 , column 9 ) (Ident (Identifier "x")) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hello ]), strong(body: text(body: [World])), parbreak() }) typst-0.8.0.2/test/typ/compiler/set-00.typ0000644000000000000000000000012707346545000016406 0ustar0000000000000000// Test that text is affected by instantiation-site bold. #let x = [World] Hello *#x* typst-0.8.0.2/test/typ/compiler/set-01.out0000644000000000000000000000712207346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/set-01.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "fruit"))) (Block (Content [ SoftBreak , BulletListItem [ Text "Apple" ] , SoftBreak , BulletListItem [ Text "Orange" ] , SoftBreak , Code "typ/compiler/set-01.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "list")) [ KeyValArg (Identifier "body-indent") (Literal (Numeric 20.0 Pt)) , BlockArg [ Text "Pear" ] ]) , ParBreak ]))) , ParBreak , BulletListItem [ Text "Fruit" ] , SoftBreak , Code "typ/compiler/set-01.typ" ( line 10 , column 2 ) (Block (Content [ Code "typ/compiler/set-01.typ" ( line 10 , column 4 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "indent") (Literal (Numeric 10.0 Pt)) ]) , SoftBreak , Code "typ/compiler/set-01.typ" ( line 11 , column 3 ) (Ident (Identifier "fruit")) ])) , SoftBreak , BulletListItem [ Text "No" , Space , Text "more" , Space , Text "fruit" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), list(children: (text(body: [Fruit]))), text(body: [ ]), text(body: [ ]), list(children: (text(body: [Apple]), text(body: [Orange]))), list(body-indent: 20.0pt, children: (text(body: [Pear]))), parbreak(), text(body: [ ]), list(children: ({ text(body: [No more fruit]), parbreak() }), indent: 10.0pt) }) typst-0.8.0.2/test/typ/compiler/set-01.typ0000644000000000000000000000027007346545000016406 0ustar0000000000000000// Test that lists are affected by correct indents. #let fruit = [ - Apple - Orange #list(body-indent: 20pt)[Pear] ] - Fruit #[#set list(indent: 10pt) #fruit] - No more fruit typst-0.8.0.2/test/typ/compiler/set-02.out0000644000000000000000000000732407346545000016411 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compiler/set-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 4.0 Pt)) ]) , SoftBreak , Code "typ/compiler/set-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "style") (Literal (String "italic")) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , SoftBreak , Code "typ/compiler/set-02.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Block (Content [ Text "And" , Space , Text "the" , Space , Text "red" , Space , Code "typ/compiler/set-02.typ" ( line 6 , column 24 ) (FuncCall (Ident (Identifier "parbreak")) []) , Space , Text "lay" , Space , Text "silent!" ]))) , SoftBreak , Code "typ/compiler/set-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , NormalArg (Ident (Identifier "x")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], fill: rgb(13%,61%,67%,100%), style: "italic"), text(body: [ ], fill: rgb(13%,61%,67%,100%), style: "italic"), text(body: { text(body: [And the red ], fill: rgb(13%,61%,67%,100%), style: "italic"), parbreak(), text(body: [ lay silent!], fill: rgb(13%,61%,67%,100%), style: "italic") }, fill: rgb(100%,25%,21%,100%), style: "italic"), parbreak() }) typst-0.8.0.2/test/typ/compiler/set-02.typ0000644000000000000000000000040207346545000016404 0ustar0000000000000000// Test that that block spacing and text style are respected from // the outside, but the more specific fill is respected. #set block(spacing: 4pt) #set text(style: "italic", fill: eastern) #let x = [And the red #parbreak() lay silent!] #text(fill: red, x) typst-0.8.0.2/test/typ/compiler/set-03.out0000644000000000000000000000456707346545000016420 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/set-03.typ" ( line 3 , column 2 ) (Block (CodeBlock [ If [ ( Literal (Boolean True) , Block (CodeBlock [ Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) ] , Block (Content [ Text "Blue" , Space ]) ]) ) ] , Block (Content [ Text "Not" , Space , Text "blue" ]) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Blue ], color: rgb(0%,45%,85%,100%)), text(body: [Not blue]), parbreak() }) typst-0.8.0.2/test/typ/compiler/set-03.typ0000644000000000000000000000015207346545000016407 0ustar0000000000000000// Test that scoping works as expected. #{ if true { set text(blue) [Blue ] } [Not blue] } typst-0.8.0.2/test/typ/compiler/set-04.out0000644000000000000000000000741407346545000016413 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/set-04.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "choice"))) (Array [ Reg (Literal (String "monkey.svg")) , Reg (Literal (String "rhino.png")) , Reg (Literal (String "tiger.jpg")) ])) , SoftBreak , Code "typ/compiler/set-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (FuncExpr [ NormalParam (Identifier "n") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "path"))) (Plus (Literal (String "/")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "choice"))) [ NormalArg (Minus (Ident (Identifier "n")) (Literal (Int 1))) ])) , FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Negated (Literal (Numeric 0.15 Em))) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Ident (Identifier "path")) , KeyValArg (Identifier "width") (Literal (Numeric 1.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) ] ]))) ]) , ParBreak , EnumListItem Nothing [ Text "Monkey" ] , SoftBreak , EnumListItem Nothing [ Text "Rhino" ] , SoftBreak , EnumListItem Nothing [ Text "Tiger" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), enum(children: (text(body: [Monkey]), text(body: [Rhino]), { text(body: [Tiger]), parbreak() }), numbering: ) }) typst-0.8.0.2/test/typ/compiler/set-04.typ0000644000000000000000000000040007346545000016404 0ustar0000000000000000// Test relative path resolving in layout phase. #let choice = ("monkey.svg", "rhino.png", "tiger.jpg") #set enum(numbering: n => { let path = "/" + choice.at(n - 1) move(dy: -0.15em, image(path, width: 1em, height: 1em)) }) + Monkey + Rhino + Tiger typst-0.8.0.2/test/typ/compiler/set-05.out0000644000000000000000000000567007346545000016416 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/set-05.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "ref"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ If [ ( Equals (FieldAccess (Ident (Identifier "target")) (Ident (Identifier "it"))) (Label "unknown") , Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ] ) ] , Plus (Literal (String "@")) (FuncCall (Ident (Identifier "str")) [ NormalArg (FieldAccess (Ident (Identifier "target")) (Ident (Identifier "it"))) ]) ])))) , ParBreak , Ref "hello" (Literal Auto) , Space , Text "from" , Space , Text "the" , Space , Ref "unknown" (Literal Auto) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [@]), text(body: [ from the ]), text(body: [@]), parbreak() }) typst-0.8.0.2/test/typ/compiler/set-05.typ0000644000000000000000000000021207346545000016406 0ustar0000000000000000// Test conditional set. #show ref: it => { set text(red) if it.target == "@" + str(it.target) } @hello from the @unknown typst-0.8.0.2/test/typ/compiler/set-06.out0000644000000000000000000000002107346545000016400 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/set-06.typ0000644000000000000000000000011107346545000016405 0ustar0000000000000000// Error: 19-24 expected boolean, found integer #set text(red) if 1 + 2 typst-0.8.0.2/test/typ/compiler/set-07.out0000644000000000000000000000002107346545000016401 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/set-07.typ0000644000000000000000000000014407346545000016414 0ustar0000000000000000// Error: 12-26 set is only allowed directly in code and content blocks #{ let x = set text(blue) } typst-0.8.0.2/test/typ/compiler/set-08.out0000644000000000000000000000375107346545000016417 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/set-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/set-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/set-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/set-08.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Minus (Literal (Numeric 1.0 Mm)) (Literal (Numeric 0.0 Mm))) ]) , SoftBreak , Text "foo" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ foo]), parbreak() }) typst-0.8.0.2/test/typ/compiler/set-08.typ0000644000000000000000000000003707346545000016416 0ustar0000000000000000#set page(margin: 1mm-0mm) foo typst-0.8.0.2/test/typ/compiler/shorthand-00.out0000644000000000000000000000357007346545000017605 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/shorthand-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/shorthand-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/shorthand-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "The" , Space , Text "non" , Text "-" , Text "breaking" , Nbsp , Text "space" , Space , Text "does" , Space , Text "work" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ The non-breaking space does work.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/shorthand-00.typ0000644000000000000000000000004307346545000017602 0ustar0000000000000000The non-breaking~space does work. typst-0.8.0.2/test/typ/compiler/shorthand-01.out0000644000000000000000000000435507346545000017610 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/shorthand-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/shorthand-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/shorthand-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Code "typ/compiler/shorthand-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) ]) , SoftBreak , Text "a" , Space , Text "b" , Space , HardBreak , Text "a" , Nbsp , Text "b" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ a b ], font: "New Computer Modern"), linebreak(), text(body: [a b], font: "New Computer Modern"), parbreak() }) typst-0.8.0.2/test/typ/compiler/shorthand-01.typ0000644000000000000000000000024507346545000017607 0ustar0000000000000000// Make sure non-breaking and normal space always // have the same width. Even if the font decided // differently. #set text(font: "New Computer Modern") a b \ a~b typst-0.8.0.2/test/typ/compiler/shorthand-02.out0000644000000000000000000000406007346545000017602 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/shorthand-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/shorthand-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/shorthand-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , BulletListItem [ Text "En" , Space , Text "dash" , Text ":" , Space , EnDash ] , SoftBreak , BulletListItem [ Text "Em" , Space , Text "dash" , Text ":" , Space , EmDash , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: (text(body: [En dash: –]), { text(body: [Em dash: —]), parbreak() })) }) typst-0.8.0.2/test/typ/compiler/shorthand-02.typ0000644000000000000000000000003607346545000017606 0ustar0000000000000000- En dash: -- - Em dash: --- typst-0.8.0.2/test/typ/compiler/shorthand-03.out0000644000000000000000000000430207346545000017602 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/shorthand-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/shorthand-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/shorthand-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/shorthand-03.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) ]) , SoftBreak , Text "A" , Ellipsis , Space , Text "vs" , Space , Code "typ/compiler/shorthand-03.typ" ( line 3 , column 10 ) (Literal (String "A...")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ A… vs ], font: "Roboto"), text(body: [A...], font: "Roboto"), parbreak() }) typst-0.8.0.2/test/typ/compiler/shorthand-03.typ0000644000000000000000000000005207346545000017605 0ustar0000000000000000#set text(font: "Roboto") A... vs #"A..." typst-0.8.0.2/test/typ/compiler/show-bare-00.out0000644000000000000000000001201207346545000017471 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-bare-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-bare-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-bare-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/show-bare-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 130.0 Pt)) ]) , SoftBreak , Code "typ/compiler/show-bare-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 0.7 Em)) ]) , ParBreak , Code "typ/compiler/show-bare-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ SoftBreak , Code "typ/compiler/show-bare-00.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 1.3 Em)) , BlockArg [ Strong [ Text "Essay" , Space , Text "on" , Space , Text "typography" ] ] ]) , Space , HardBreak , Text "T" , Text "." , Space , Text "Ypst" , ParBreak ] ]) , ParBreak , Code "typ/compiler/show-bare-00.typ" ( line 10 , column 2 ) (Show Nothing (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "columns"))) [ NormalArg (Literal (Int 2)) ])) , SoftBreak , Text "Great" , Space , Text "typography" , Space , Text "is" , Space , Text "at" , Space , Text "the" , Space , Text "essence" , Space , Text "of" , Space , Text "great" , Space , Text "storytelling" , Text "." , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "medium" , Space , Text "that" , SoftBreak , Text "transports" , Space , Text "meaning" , Space , Text "from" , Space , Text "parchment" , Space , Text "to" , Space , Text "reader," , Space , Text "the" , Space , Text "wave" , Space , Text "that" , Space , Text "sparks" , Space , Text "a" , Space , Text "flame" , SoftBreak , Text "in" , Space , Text "booklovers" , Space , Text "and" , Space , Text "the" , Space , Text "great" , Space , Text "fulfiller" , Space , Text "of" , Space , Text "human" , Space , Text "need" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), align(alignment: center, body: { text(body: [ ], size: 0.7em), text(body: strong(body: text(body: [Essay on typography], size: 0.7em)), size: 1.3em), text(body: [ ], size: 0.7em), linebreak(), text(body: [T. Ypst], size: 0.7em), parbreak() }), parbreak(), columns(body: { text(body: [ Great typography is at the essence of great storytelling. It is the medium that transports meaning from parchment to reader, the wave that sparks a flame in booklovers and the great fulfiller of human need.], size: 0.7em), parbreak() }, count: 2) }) typst-0.8.0.2/test/typ/compiler/show-bare-00.typ0000644000000000000000000000052707346545000017506 0ustar0000000000000000#set page(height: 130pt) #set text(0.7em) #align(center)[ #text(1.3em)[*Essay on typography*] \ T. Ypst ] #show: columns.with(2) Great typography is at the essence of great storytelling. It is the medium that transports meaning from parchment to reader, the wave that sparks a flame in booklovers and the great fulfiller of human need. typst-0.8.0.2/test/typ/compiler/show-bare-01.out0000644000000000000000000000547307346545000017507 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-bare-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-bare-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-bare-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Code "typ/compiler/show-bare-01.typ" ( line 3 , column 4 ) (Block (Content [ Emph [ Text "B" , Space , Code "typ/compiler/show-bare-01.typ" ( line 3 , column 9 ) (Show Nothing (FuncExpr [ NormalParam (Identifier "c") ] (Block (Content [ Strong [ Code "typ/compiler/show-bare-01.typ" ( line 3 , column 23 ) (Ident (Identifier "c")) ] ])))) , Space , Text "C" ] ])) , Space , Text "D" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A ]), emph(body: { text(body: [B ]), strong(body: text(body: [ C])) }), text(body: [ D]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-bare-01.typ0000644000000000000000000000010607346545000017500 0ustar0000000000000000// Test bare show in content block. A #[_B #show: c => [*#c*]; C_] D typst-0.8.0.2/test/typ/compiler/show-bare-02.out0000644000000000000000000000517407346545000017506 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-bare-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-bare-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-bare-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-bare-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "size") (Literal (Numeric 1.5 Em)) ]) , SoftBreak , Code "typ/compiler/show-bare-02.typ" ( line 4 , column 2 ) (Show Nothing (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "text"))) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ])) , SoftBreak , Text "Forest" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], fill: rgb(13%,61%,67%,100%), size: 1.5em), text(body: { text(body: [ Forest], fill: rgb(13%,61%,67%,100%), size: 1.5em), parbreak() }, fill: rgb(100%,25%,21%,100%)) }) typst-0.8.0.2/test/typ/compiler/show-bare-02.typ0000644000000000000000000000014407346545000017503 0ustar0000000000000000// Test style precedence. #set text(fill: eastern, size: 1.5em) #show: text.with(fill: red) Forest typst-0.8.0.2/test/typ/compiler/show-bare-03.out0000644000000000000000000000355307346545000017506 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-bare-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-bare-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-bare-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/show-bare-03.typ" ( line 2 , column 2 ) (Show Nothing (Block (Content [ Text "Shown" ]))) , SoftBreak , Text "Ignored" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Shown]) }) typst-0.8.0.2/test/typ/compiler/show-bare-03.typ0000644000000000000000000000003007346545000017476 0ustar0000000000000000#show: [Shown] Ignored typst-0.8.0.2/test/typ/compiler/show-bare-04.out0000644000000000000000000000002107346545000017472 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-bare-04.typ0000644000000000000000000000014507346545000017506 0ustar0000000000000000// Error: 4-19 show is only allowed directly in code and content blocks #((show: body => 2) * body) typst-0.8.0.2/test/typ/compiler/show-bare-05.out0000644000000000000000000000002107346545000017473 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-bare-05.typ0000644000000000000000000000005307346545000017505 0ustar0000000000000000// Error: 6 expected colon #show it => {} typst-0.8.0.2/test/typ/compiler/show-bare-06.out0000644000000000000000000000002107346545000017474 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-bare-06.typ0000644000000000000000000000004407346545000017506 0ustar0000000000000000// Error: 6 expected colon #show it typst-0.8.0.2/test/typ/compiler/show-node-00.out0000644000000000000000000000573507346545000017523 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-node-00.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncExpr [ NormalParam (Identifier "it") ] (Plus (Plus (Literal (String "(")) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FieldAccess (Ident (Identifier "children")) (Ident (Identifier "it")))) [ NormalArg (FuncExpr [ NormalParam (Identifier "v") ] (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "v")))) ])) [ NormalArg (Literal (String ", ")) ])) (Literal (String ")"))))) , ParBreak , BulletListItem [ Text "A" , SoftBreak , BulletListItem [ Text "B" ] , SoftBreak , BulletListItem [ Text "C" ] ] , SoftBreak , BulletListItem [ Text "D" ] , SoftBreak , BulletListItem [ Text "E" , ParBreak ] ] "typ/compiler/show-node-00.typ" (line 3, column 2): unexpected end of input Content does not have a method "body" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/compiler/show-node-00.typ0000644000000000000000000000016307346545000017516 0ustar0000000000000000// Override lists. #show list: it => "(" + it.children.map(v => v.body).join(", ") + ")" - A - B - C - D - E typst-0.8.0.2/test/typ/compiler/show-node-01.out0000644000000000000000000000500207346545000017507 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-node-01.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Block (Content [ Text "B" ]))) , SoftBreak , Code "typ/compiler/show-node-01.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "weight") (Literal (Int 400)) ])) , SoftBreak , Text "A" , Space , Code "typ/compiler/show-node-01.typ" ( line 5 , column 4 ) (Block (Content [ Heading 1 [ Text "Heading" ] ])) , Space , Text "C" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ A ]), text(body: [B]), text(body: [ C]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-node-01.typ0000644000000000000000000000015207346545000017515 0ustar0000000000000000// Test full reset. #show heading: [B] #show heading: set text(size: 10pt, weight: 400) A #[= Heading] C typst-0.8.0.2/test/typ/compiler/show-node-02.out0000644000000000000000000000436207346545000017520 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-node-02.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Literal None)) , ParBreak , Text "Where" , Space , Text "is" , SoftBreak , Heading 1 [ Text "There" , Space , Text "are" , Space , Text "no" , Space , Text "headings" , Space , Text "around" , Space , Text "here!" ] , Text "my" , Space , Text "heading?" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Where is ]), text(body: [my heading?]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-node-02.typ0000644000000000000000000000014607346545000017521 0ustar0000000000000000// Test full removal. #show heading: none Where is = There are no headings around here! my heading? typst-0.8.0.2/test/typ/compiler/show-node-03.out0000644000000000000000000001525507346545000017524 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-node-03.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "block")) [ NormalArg (Block (CodeBlock [ Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 10.0 Pt)) ] , FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Negated (Literal (Numeric 1.0 Pt))) , BlockArg [ Text "\128214" ] ]) ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 5.0 Pt)) ] , If [ ( Equals (FieldAccess (Ident (Identifier "level")) (Ident (Identifier "it"))) (Literal (Int 1)) , Block (CodeBlock [ FuncCall (Ident (Identifier "underline")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 1.25 Em)) , NormalArg (Ident (Identifier "blue")) , NormalArg (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it"))) ]) ] ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , NormalArg (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it"))) ] ]) ) ] ])) ]))) , ParBreak , Heading 1 [ Text "Task" , Space , Text "1" ] , Text "Some" , Space , Text "text" , Text "." , ParBreak , Heading 2 [ Text "Subtask" ] , Text "Some" , Space , Text "more" , Space , Text "text" , Text "." , ParBreak , Heading 1 [ Text "Task" , Space , Text "2" ] , Text "Another" , Space , Text "text" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), block(body: { box(body: move(body: text(body: [📖], size: 10.0pt), dy: -1.0pt)), h(amount: 5.0pt), underline(body: text(body: text(body: [Task 1]), color: rgb(0%,45%,85%,100%), size: 1.25em)) }), text(body: [Some text.]), parbreak(), block(body: { box(body: move(body: text(body: [📖], size: 10.0pt), dy: -1.0pt)), h(amount: 5.0pt), text(body: text(body: [Subtask]), color: rgb(100%,25%,21%,100%), size: 10.0pt) }), text(body: [Some more text.]), parbreak(), block(body: { box(body: move(body: text(body: [📖], size: 10.0pt), dy: -1.0pt)), h(amount: 5.0pt), underline(body: text(body: text(body: [Task 2]), color: rgb(0%,45%,85%,100%), size: 1.25em)) }), text(body: [Another text.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-node-03.typ0000644000000000000000000000044207346545000017521 0ustar0000000000000000// Test integrated example. #show heading: it => block({ set text(10pt) box(move(dy: -1pt)[📖]) h(5pt) if it.level == 1 { underline(text(1.25em, blue, it.body)) } else { text(red, it.body) } }) = Task 1 Some text. == Subtask Some more text. = Task 2 Another text. typst-0.8.0.2/test/typ/compiler/show-node-04.out0000644000000000000000000000501107346545000017512 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-node-04.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ] , Show (Just (Literal (String "ding"))) (Block (Content [ Text "\128718" ])) , FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it")) ])))) , ParBreak , Heading 1 [ Text "Heading" ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: { [Hea], text(body: [🛎], color: rgb(100%,25%,21%,100%)), [] }) }) typst-0.8.0.2/test/typ/compiler/show-node-04.typ0000644000000000000000000000017207346545000017522 0ustar0000000000000000// Test set and show in code blocks. #show heading: it => { set text(red) show "ding": [🛎] it.body } = Heading typst-0.8.0.2/test/typ/compiler/show-node-06.out0000644000000000000000000000367307346545000017530 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/show-node-06.typ" ( line 2 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Block (Content [ Text "1234" ]))) , SoftBreak , Heading 1 [ Text "Heading" ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [1234]) }) typst-0.8.0.2/test/typ/compiler/show-node-06.typ0000644000000000000000000000004107346545000017517 0ustar0000000000000000#show heading: [1234] = Heading typst-0.8.0.2/test/typ/compiler/show-node-07.out0000644000000000000000000000002107346545000017511 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-node-07.typ0000644000000000000000000000020107346545000017516 0ustar0000000000000000// Error: 25-29 content does not contain field "page" and no default value was specified #show heading: it => it.page = Heading typst-0.8.0.2/test/typ/compiler/show-node-08.out0000644000000000000000000000361307346545000017524 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-node-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-node-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-node-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/show-node-08.typ" ( line 2 , column 2 ) (Show (Just (Ident (Identifier "text"))) (Literal None)) , SoftBreak , Text "Hey" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hey]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-node-08.typ0000644000000000000000000000002607346545000017524 0ustar0000000000000000#show text: none Hey typst-0.8.0.2/test/typ/compiler/show-node-09.out0000644000000000000000000000002107346545000017513 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-node-09.typ0000644000000000000000000000012607346545000017526 0ustar0000000000000000// Error: 7-12 only element functions can be used as selectors #show upper: it => {} typst-0.8.0.2/test/typ/compiler/show-node-10.out0000644000000000000000000000002107346545000017503 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-node-10.typ0000644000000000000000000000013307346545000017514 0ustar0000000000000000// Error: 16-20 expected content or function, found integer #show heading: 1234 = Heading typst-0.8.0.2/test/typ/compiler/show-node-11.out0000644000000000000000000000002107346545000017504 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-node-11.typ0000644000000000000000000000016507346545000017522 0ustar0000000000000000// Error: 7-10 expected function, label, string, regular expression, symbol, or selector, found color #show red: [] typst-0.8.0.2/test/typ/compiler/show-node-12.out0000644000000000000000000000002107346545000017505 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-node-12.typ0000644000000000000000000000014207346545000017516 0ustar0000000000000000// Error: 7-25 show is only allowed directly in code and content blocks #(1 + show heading: none) typst-0.8.0.2/test/typ/compiler/show-recursive-00.out0000644000000000000000000000407607346545000020602 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-recursive-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-recursive-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-recursive-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-recursive-00.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (FuncExpr [ NormalParam (Identifier "it") ] (Ident (Identifier "it")))) , SoftBreak , Heading 1 [ Text "Heading" ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), heading(body: text(body: [Heading]), level: 1) }) typst-0.8.0.2/test/typ/compiler/show-recursive-00.typ0000644000000000000000000000007307346545000020600 0ustar0000000000000000// Test basic identity. #show heading: it => it = Heading typst-0.8.0.2/test/typ/compiler/show-recursive-01.out0000644000000000000000000000564707346545000020610 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-recursive-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-recursive-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-recursive-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-recursive-01.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "scale"))) [ KeyValArg (Identifier "origin") (Ident (Identifier "left")) , KeyValArg (Identifier "x") (Literal (Numeric 80.0 Percent)) ])) , SoftBreak , Code "typ/compiler/show-recursive-01.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Block (Content []))) , SoftBreak , Code "typ/compiler/show-recursive-01.typ" ( line 5 , column 2 ) (Show (Just (Ident (Identifier "enum"))) (Block (Content []))) , SoftBreak , BulletListItem [ Text "Actual" ] , SoftBreak , BulletListItem [ Text "Tight" ] , SoftBreak , BulletListItem [ Text "List" ] , SoftBreak , Heading 1 [ Text "Nope" ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), scale(body: list(children: (text(body: [Actual]), text(body: [Tight]), text(body: [List]))), origin: left, x: 80%) }) typst-0.8.0.2/test/typ/compiler/show-recursive-01.typ0000644000000000000000000000022307346545000020576 0ustar0000000000000000// Test more recipes down the chain. #show list: scale.with(origin: left, x: 80%) #show heading: [] #show enum: [] - Actual - Tight - List = Nope typst-0.8.0.2/test/typ/compiler/show-recursive-02.out0000644000000000000000000001344507346545000020604 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-recursive-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-recursive-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-recursive-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-recursive-02.typ" ( line 3 , column 2 ) (LetFunc (Identifier "starwars") [ NormalParam (Identifier "body") ] (Block (CodeBlock [ Show (Just (Ident (Identifier "list"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "block")) [ NormalArg (Block (CodeBlock [ FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , NormalArg (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , NormalArg (Ident (Identifier "it")) ]) , NormalArg (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "scale")) [ KeyValArg (Identifier "x") (Negated (Literal (Numeric 100.0 Percent))) , NormalArg (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) , NormalArg (Ident (Identifier "it")) ]) ]) ] ])) ])) , Ident (Identifier "body") ]))) , ParBreak , BulletListItem [ Text "Normal" , Space , Text "list" , SoftBreak ] , SoftBreak , Code "typ/compiler/show-recursive-02.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "starwars")) [ BlockArg [ SoftBreak , BulletListItem [ Text "Star" ] , SoftBreak , BulletListItem [ Text "Wars" ] , SoftBreak , BulletListItem [ Text "List" , ParBreak ] ] ]) , ParBreak , BulletListItem [ Text "Normal" , Space , Text "list" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), list(children: (text(body: [Normal list ]))), text(body: [ ]), block(body: stack(children: (text(body: list(children: (text(body: [Star]), text(body: [Wars]), { text(body: [List]), parbreak() })), color: rgb(100%,25%,21%,100%)), 1.0fr, scale(body: text(body: list(children: (text(body: [Star]), text(body: [Wars]), { text(body: [List]), parbreak() })), color: rgb(0%,45%,85%,100%)), x: -100%)), dir: ltr)), parbreak(), list(children: ({ text(body: [Normal list]), parbreak() })) }) typst-0.8.0.2/test/typ/compiler/show-recursive-02.typ0000644000000000000000000000041107346545000020576 0ustar0000000000000000// Test show rule in function. #let starwars(body) = { show list: it => block({ stack(dir: ltr, text(red, it), 1fr, scale(x: -100%, text(blue, it)), ) }) body } - Normal list #starwars[ - Star - Wars - List ] - Normal list typst-0.8.0.2/test/typ/compiler/show-recursive-03.out0000644000000000000000000000667707346545000020616 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-recursive-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-recursive-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-recursive-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Comment , Code "typ/compiler/show-recursive-03.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/compiler/show-recursive-03.typ" ( line 7 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "rect"))) [ KeyValArg (Identifier "stroke") (Ident (Identifier "blue")) ])) , SoftBreak , Code "typ/compiler/show-recursive-03.typ" ( line 8 , column 2 ) (Show (Just (Ident (Identifier "list"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "rect"))) [ KeyValArg (Identifier "stroke") (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/compiler/show-recursive-03.typ" ( line 9 , column 2 ) (Show (Just (Ident (Identifier "list"))) (Ident (Identifier "block"))) , ParBreak , BulletListItem [ Text "List" , SoftBreak , BulletListItem [ Text "Nested" ] , SoftBreak , BulletListItem [ Text "List" ] ] , SoftBreak , BulletListItem [ Text "Recursive!" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), block(body: list(children: ({ text(body: [List ]), block(body: list(children: (text(body: [Nested]), text(body: [List])))) }, { text(body: [Recursive!]), parbreak() }))) }) typst-0.8.0.2/test/typ/compiler/show-recursive-03.typ0000644000000000000000000000060007346545000020577 0ustar0000000000000000// Test multi-recursion with nested lists. // Note to self: the problem here is that the block is applied first, // and then the others don't match because we're not looking recursively in // the result of applying the show rule... #set rect(inset: 3pt) #show list: rect.with(stroke: blue) #show list: rect.with(stroke: red) #show list: block - List - Nested - List - Recursive! typst-0.8.0.2/test/typ/compiler/show-selector-00.out0000644000000000000000000001540707346545000020413 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-selector-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-selector-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-selector-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-selector-00.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "raw"))) [ KeyValArg (Identifier "block") (Literal (Boolean False)) ])) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "box"))) [ KeyValArg (Identifier "radius") (Literal (Numeric 2.0 Pt)) , KeyValArg (Identifier "outset") (Dict [ Reg ( Ident (Identifier "y") , Literal (Numeric 2.5 Pt) ) ]) , KeyValArg (Identifier "inset") (Dict [ Reg ( Ident (Identifier "x") , Literal (Numeric 3.0 Pt) ) , Reg ( Ident (Identifier "y") , Literal (Numeric 0.0 Pt) ) ]) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Int 230)) ]) ])) , ParBreak , Comment , Code "typ/compiler/show-selector-00.typ" ( line 11 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "raw"))) [ KeyValArg (Identifier "block") (Literal (Boolean True)) ])) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "block"))) [ KeyValArg (Identifier "outset") (Negated (Literal (Numeric 3.0 Pt))) , KeyValArg (Identifier "inset") (Literal (Numeric 11.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Int 230)) ]) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "left") , Plus (Literal (Numeric 1.5 Pt)) (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Int 180)) ]) ) ]) ])) , ParBreak , Code "typ/compiler/show-selector-00.typ" ( line 18 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "top") , Literal (Numeric 12.0 Pt) ) ]) ]) , SoftBreak , Code "typ/compiler/show-selector-00.typ" ( line 19 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , ParBreak , Text "This" , Space , Text "code" , Space , Text "tests" , Space , RawInline "code" , SoftBreak , Text "with" , Space , Text "selectors" , Space , Text "and" , Space , Text "justification" , Text "." , ParBreak , RawBlock "rs" "code!(\"it\");\n" , ParBreak , Text "You" , Space , Text "can" , Space , Text "use" , Space , Text "the" , Space , RawBlock "rs" "*const T" , Space , Text "pointer" , Space , Text "or" , SoftBreak , Text "the" , Space , RawBlock "rs" "&mut T" , Space , Text "reference" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), parbreak(), text(body: [ ]), parbreak(), text(body: [This code tests ]), box(body: raw(block: false, lang: none, text: "code"), fill: luma(23000%), inset: (x: 3.0pt, y: 0.0pt), outset: (y: 2.5pt), radius: 2.0pt), text(body: [ with selectors and justification.]), parbreak(), block(body: raw(block: true, lang: "rs", text: "code!(\"it\");\n"), fill: luma(23000%), inset: 11.0pt, outset: -3.0pt, stroke: (left: (thickness: 1.5pt, color: luma(18000%)))), parbreak(), text(body: [You can use the ]), block(body: raw(block: true, lang: "rs", text: "*const T"), fill: luma(23000%), inset: 11.0pt, outset: -3.0pt, stroke: (left: (thickness: 1.5pt, color: luma(18000%)))), text(body: [ pointer or the ]), block(body: raw(block: true, lang: "rs", text: "&mut T"), fill: luma(23000%), inset: 11.0pt, outset: -3.0pt, stroke: (left: (thickness: 1.5pt, color: luma(18000%)))), text(body: [ reference.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-selector-00.typ0000644000000000000000000000077207346545000020417 0ustar0000000000000000// Inline code. #show raw.where(block: false): box.with( radius: 2pt, outset: (y: 2.5pt), inset: (x: 3pt, y: 0pt), fill: luma(230), ) // Code blocks. #show raw.where(block: true): block.with( outset: -3pt, inset: 11pt, fill: luma(230), stroke: (left: 1.5pt + luma(180)), ) #set page(margin: (top: 12pt)) #set par(justify: true) This code tests `code` with selectors and justification. ```rs code!("it"); ``` You can use the ```rs *const T``` pointer or the ```rs &mut T``` reference. typst-0.8.0.2/test/typ/compiler/show-selector-01.out0000644000000000000000000000621707346545000020413 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-selector-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-selector-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-selector-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compiler/show-selector-01.typ" ( line 2 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 1)) ])) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/compiler/show-selector-01.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 2)) ])) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) ])) , SoftBreak , Code "typ/compiler/show-selector-01.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "green")) ])) , SoftBreak , Heading 1 [ Text "Red" ] , Heading 2 [ Text "Blue" ] , Heading 3 [ Text "Green" ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), heading(body: text(body: [Red]), level: 1), heading(body: text(body: [Blue]), level: 2), heading(body: text(body: [Green]), level: 3) }) typst-0.8.0.2/test/typ/compiler/show-selector-01.typ0000644000000000000000000000022307346545000020407 0ustar0000000000000000#show heading.where(level: 1): set text(red) #show heading.where(level: 2): set text(blue) #show heading: set text(green) = Red == Blue === Green typst-0.8.0.2/test/typ/compiler/show-selector-02.out0000644000000000000000000000002107346545000020377 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/show-selector-02.typ0000644000000000000000000000013707346545000020414 0ustar0000000000000000// Error: 7-35 this selector cannot be used with show #show selector(heading).or(strong): none typst-0.8.0.2/test/typ/compiler/show-text-00.out0000644000000000000000000000475207346545000017560 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) ]) , SoftBreak , Code "typ/compiler/show-text-00.typ" ( line 4 , column 2 ) (Show (Just (Literal (String "Der Spiegel"))) (Ident (Identifier "smallcaps"))) , SoftBreak , Text "Die" , Space , Text "Zeitung" , Space , Text "Der" , Space , Text "Spiegel" , Space , Text "existiert" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], font: "Roboto"), text(body: [ Die Zeitung ], font: "Roboto"), smallcaps(body: [Der Spiegel]), text(body: [ existiert.], font: "Roboto"), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-00.typ0000644000000000000000000000016607346545000017560 0ustar0000000000000000// Test classic example. #set text(font: "Roboto") #show "Der Spiegel": smallcaps Die Zeitung Der Spiegel existiert. typst-0.8.0.2/test/typ/compiler/show-text-01.out0000644000000000000000000001403507346545000017554 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-01.typ" ( line 3 , column 2 ) (Show (Just (Literal (String "TeX"))) (Block (Content [ Text "T" , Code "typ/compiler/show-text-01.typ" ( line 3 , column 17 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Negated (Literal (Numeric 0.145 Em))) ]) , Code "typ/compiler/show-text-01.typ" ( line 3 , column 29 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Literal (Numeric 0.233 Em)) , BlockArg [ Text "E" ] ]) ]) , Code "typ/compiler/show-text-01.typ" ( line 3 , column 55 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Negated (Literal (Numeric 0.135 Em))) ]) , Text "X" ]))) , SoftBreak , Code "typ/compiler/show-text-01.typ" ( line 4 , column 2 ) (Show (Just (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(Lua)?(La)?TeX")) ])) (FuncExpr [ NormalParam (Identifier "name") ] (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) , BlockArg [ Code "typ/compiler/show-text-01.typ" ( line 4 , column 79 ) (Ident (Identifier "name")) ] ]) ]))) , ParBreak , Text "TeX," , Space , Text "LaTeX," , Space , Text "LuaTeX" , Space , Text "and" , Space , Text "LuaLaTeX!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), box(body: text(body: { text(body: [T]), h(amount: -0.145em), box(body: move(body: text(body: [E]), dy: 0.233em)), h(amount: -0.135em), text(body: [X]) }, font: "New Computer Modern")), text(body: [, ]), box(body: text(body: { text(body: [La]), text(body: [T]), h(amount: -0.145em), box(body: move(body: text(body: [E]), dy: 0.233em)), h(amount: -0.135em), text(body: [X]) }, font: "New Computer Modern")), text(body: [, ]), box(body: text(body: { text(body: [Lua]), text(body: [T]), h(amount: -0.145em), box(body: move(body: text(body: [E]), dy: 0.233em)), h(amount: -0.135em), text(body: [X]) }, font: "New Computer Modern")), text(body: [ and ]), box(body: text(body: { text(body: [LuaLa]), text(body: [T]), h(amount: -0.145em), box(body: move(body: text(body: [E]), dy: 0.233em)), h(amount: -0.135em), text(body: [X]) }, font: "New Computer Modern")), text(body: [!]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-01.typ0000644000000000000000000000033007346545000017552 0ustar0000000000000000// Another classic example. #show "TeX": [T#h(-0.145em)#box(move(dy: 0.233em)[E])#h(-0.135em)X] #show regex("(Lua)?(La)?TeX"): name => box(text(font: "New Computer Modern")[#name]) TeX, LaTeX, LuaTeX and LuaLaTeX! typst-0.8.0.2/test/typ/compiler/show-text-02.out0000644000000000000000000000436507346545000017562 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-02.typ" ( line 3 , column 2 ) (Show (Just (Literal (String "A"))) (Block (Content [ Text "BB" ]))) , SoftBreak , Code "typ/compiler/show-text-02.typ" ( line 4 , column 2 ) (Show (Just (Literal (String "B"))) (Block (Content [ Text "CC" ]))) , SoftBreak , Text "AA" , Space , Text "(" , Text "8)" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [BB]), text(body: [BB]), text(body: [ (8)]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-02.typ0000644000000000000000000000012707346545000017557 0ustar0000000000000000// Test that replacements happen exactly once. #show "A": [BB] #show "B": [CC] AA (8) typst-0.8.0.2/test/typ/compiler/show-text-03.out0000644000000000000000000000461707346545000017563 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-03.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(?i)\\bworld\\b")) ])) (Block (Content [ Text "\127757" ]))) , ParBreak , Text "Treeworld," , Space , Text "the" , Space , Text "World" , Space , Text "of" , Space , Text "worlds," , Space , Text "is" , Space , Text "a" , Space , Text "world" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Treeworld, the ]), text(body: [🌍]), text(body: [ of worlds, is a ]), text(body: [🌍]), text(body: [.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-03.typ0000644000000000000000000000017707346545000017565 0ustar0000000000000000// Test caseless match and word boundaries. #show regex("(?i)\bworld\b"): [🌍] Treeworld, the World of worlds, is a world. typst-0.8.0.2/test/typ/compiler/show-text-04.out0000644000000000000000000001315407346545000017560 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/show-text-04.typ" ( line 4 , column 2 ) (Show (Just (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\S")) ])) (FuncExpr [ NormalParam (Identifier "letter") ] (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 1.0 Pt)) , KeyValArg (Identifier "inset") (Literal (Numeric 2.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "upper")) [ NormalArg (Ident (Identifier "letter")) ]) ]))) , SoftBreak , Code "typ/compiler/show-text-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 5)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), box(body: upper(text: [L]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [o]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [r]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [e]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [m]), inset: 2.0pt, stroke: 1.0pt), text(body: [ ]), box(body: upper(text: [i]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [p]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [s]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [u]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [m]), inset: 2.0pt, stroke: 1.0pt), text(body: [ ]), box(body: upper(text: [d]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [o]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [l]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [o]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [r]), inset: 2.0pt, stroke: 1.0pt), text(body: [ ]), box(body: upper(text: [s]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [i]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [t]), inset: 2.0pt, stroke: 1.0pt), text(body: [ ]), box(body: upper(text: [a]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [m]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [e]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [t]), inset: 2.0pt, stroke: 1.0pt), box(body: upper(text: [,]), inset: 2.0pt, stroke: 1.0pt), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-04.typ0000644000000000000000000000020207346545000017553 0ustar0000000000000000// This is a fun one. #set par(justify: true) #show regex("\S"): letter => box(stroke: 1pt, inset: 2pt, upper(letter)) #lorem(5) typst-0.8.0.2/test/typ/compiler/show-text-05.out0000644000000000000000000000565307346545000017566 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-05.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(?i)rust")) ])) (FuncExpr [ NormalParam (Identifier "it") ] (Block (Content [ Code "typ/compiler/show-text-05.typ" ( line 3 , column 34 ) (Ident (Identifier "it")) , Space , Text "(" , Text "\128640)" ])))) , SoftBreak , Text "Rust" , Space , Text "is" , Space , Text "memory" , Text "-" , Text "safe" , Space , Text "and" , Space , Text "blazingly" , Space , Text "fast" , Text "." , Space , Text "Let" , Quote '\'' , Text "s" , Space , Text "rewrite" , Space , Text "everything" , Space , Text "in" , Space , Text "rust" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Rust]), text(body: [ (🚀)]), text(body: [ is memory-safe and blazingly fast. Let’s rewrite everything in ]), text(body: [rust]), text(body: [ (🚀)]), text(body: [.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-05.typ0000644000000000000000000000025607346545000017565 0ustar0000000000000000// See also: https://github.com/mTvare6/hello-world.rs #show regex("(?i)rust"): it => [#it (🚀)] Rust is memory-safe and blazingly fast. Let's rewrite everything in rust. typst-0.8.0.2/test/typ/compiler/show-text-06.out0000644000000000000000000000530607346545000017562 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/show-text-06.typ" ( line 3 , column 2 ) (Show (Just (Literal (String "hello"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "split")) (FieldAccess (Ident (Identifier "text")) (Ident (Identifier "it")))) [ NormalArg (Literal (String "")) ])) [ NormalArg (Ident (Identifier "upper")) ])) [ NormalArg (Literal (String "|")) ]))) , SoftBreak , Text "Oh," , Space , Text "hello" , Space , Text "there!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Oh, ]), text(body: [|H|E|L|L|O|]), text(body: [ there!]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-06.typ0000644000000000000000000000016307346545000017563 0ustar0000000000000000// Test accessing the string itself. #show "hello": it => it.text.split("").map(upper).join("|") Oh, hello there! typst-0.8.0.2/test/typ/compiler/show-text-08.out0000644000000000000000000000441507346545000017564 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/show-text-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/show-text-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/show-text-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/show-text-08.typ" ( line 4 , column 2 ) (Show (Just (Literal (String "GRAPH"))) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/graph.png")) ])) , ParBreak , Text "The" , Space , Text "GRAPH" , Space , Text "has" , Space , Text "nodes" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [The ]), image(source: "/assets/files/graph.png"), text(body: [ has nodes.]), parbreak() }) typst-0.8.0.2/test/typ/compiler/show-text-08.typ0000644000000000000000000000015607346545000017567 0ustar0000000000000000// Test absolute path in layout phase. #show "GRAPH": image("/assets/files/graph.png") The GRAPH has nodes. typst-0.8.0.2/test/typ/compiler/spread-00.out0000644000000000000000000000741107346545000017067 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-00.typ" ( line 3 , column 2 ) (Block (CodeBlock [ LetFunc (Identifier "f") [ DefaultParam (Identifier "style") (Literal (String "normal")) , DefaultParam (Identifier "weight") (Literal (String "regular")) ] (Block (CodeBlock [ Plus (Plus (Plus (Plus (Literal (String "(style: ")) (Ident (Identifier "style"))) (Literal (String ", weight: "))) (Ident (Identifier "weight"))) (Literal (String ")")) ])) , LetFunc (Identifier "myf") [ SinkParam (Just (Identifier "args")) ] (FuncCall (Ident (Identifier "f")) [ KeyValArg (Identifier "weight") (Literal (String "bold")) , SpreadArg (Ident (Identifier "args")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "myf")) []) , NormalArg (Literal (String "(style: normal, weight: bold)")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "myf")) [ KeyValArg (Identifier "weight") (Literal (String "black")) ]) , NormalArg (Literal (String "(style: normal, weight: black)")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "myf")) [ KeyValArg (Identifier "style") (Literal (String "italic")) ]) , NormalArg (Literal (String "(style: italic, weight: bold)")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-00.typ0000644000000000000000000000056007346545000017072 0ustar0000000000000000// Test standard argument overriding. #{ let f(style: "normal", weight: "regular") = { "(style: " + style + ", weight: " + weight + ")" } let myf(..args) = f(weight: "bold", ..args) test(myf(), "(style: normal, weight: bold)") test(myf(weight: "black"), "(style: normal, weight: black)") test(myf(style: "italic"), "(style: italic, weight: bold)") } typst-0.8.0.2/test/typ/compiler/spread-01.out0000644000000000000000000000557307346545000017077 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-01.typ" ( line 3 , column 2 ) (Block (CodeBlock [ LetFunc (Identifier "f") [ NormalParam (Identifier "b") , DefaultParam (Identifier "c") (Literal (String "!")) ] (Plus (Ident (Identifier "b")) (Ident (Identifier "c"))) , LetFunc (Identifier "g") [ NormalParam (Identifier "a") , SinkParam (Just (Identifier "sink")) ] (Plus (Ident (Identifier "a")) (FuncCall (Ident (Identifier "f")) [ SpreadArg (Ident (Identifier "sink")) ])) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "g")) [ NormalArg (Literal (String "a")) , NormalArg (Literal (String "b")) , KeyValArg (Identifier "c") (Literal (String "c")) ]) , NormalArg (Literal (String "abc")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-01.typ0000644000000000000000000000017707346545000017077 0ustar0000000000000000// Test multiple calls. #{ let f(b, c: "!") = b + c let g(a, ..sink) = a + f(..sink) test(g("a", "b", c: "c"), "abc") } typst-0.8.0.2/test/typ/compiler/spread-02.out0000644000000000000000000000605707346545000017076 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-02.typ" ( line 3 , column 2 ) (Block (CodeBlock [ LetFunc (Identifier "save") [ SinkParam (Just (Identifier "args")) ] (Block (CodeBlock [ FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "args")) ]) , NormalArg (Literal (String "arguments")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "args")) ]) , NormalArg (Literal (String "(three: true, 1, 2)")) ] ])) , FuncCall (Ident (Identifier "save")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , KeyValArg (Identifier "three") (Literal (Boolean True)) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-02.typ0000644000000000000000000000025707346545000017077 0ustar0000000000000000// Test doing things with arguments. #{ let save(..args) = { test(type(args), "arguments") test(repr(args), "(three: true, 1, 2)") } save(1, 2, three: true) } typst-0.8.0.2/test/typ/compiler/spread-03.out0000644000000000000000000001120107346545000017062 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-03.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "more"))) (Array [ Reg (Literal (Int 3)) , Reg (Negated (Literal (Int 3))) , Reg (Literal (Int 6)) , Reg (Literal (Int 10)) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "min")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , SpreadArg (Ident (Identifier "more")) ]) , NormalArg (Negated (Literal (Int 3))) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "max")) (Ident (Identifier "calc"))) [ SpreadArg (Ident (Identifier "more")) , NormalArg (Literal (Int 9)) ]) , NormalArg (Literal (Int 10)) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "max")) (Ident (Identifier "calc"))) [ SpreadArg (Ident (Identifier "more")) , NormalArg (Literal (Int 11)) ]) , NormalArg (Literal (Int 11)) ] ])) , ParBreak , Code "typ/compiler/spread-03.typ" ( line 10 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "more"))) (Dict [ Reg ( Ident (Identifier "c") , Literal (Int 3) ) , Reg ( Ident (Identifier "d") , Literal (Int 4) ) ]) , LetFunc (Identifier "tostr") [ SinkParam (Just (Identifier "args")) ] (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "args")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "tostr")) [ KeyValArg (Identifier "a") (Literal (Int 1)) , SpreadArg (Ident (Identifier "more")) , KeyValArg (Identifier "b") (Literal (Int 2)) ]) , NormalArg (Literal (String "(a: 1, c: 3, d: 4, b: 2)")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak(), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-03.typ0000644000000000000000000000045507346545000017100 0ustar0000000000000000// Test spreading array and dictionary. #{ let more = (3, -3, 6, 10) test(calc.min(1, 2, ..more), -3) test(calc.max(..more, 9), 10) test(calc.max(..more, 11), 11) } #{ let more = (c: 3, d: 4) let tostr(..args) = repr(args) test(tostr(a: 1, ..more, b: 2), "(a: 1, c: 3, d: 4, b: 2)") } typst-0.8.0.2/test/typ/compiler/spread-04.out0000644000000000000000000000506207346545000017073 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-04.typ" ( line 3 , column 2 ) (LetFunc (Identifier "f") [] (Literal None)) , SoftBreak , Code "typ/compiler/spread-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "f")) [ SpreadArg (Literal None) ]) , SoftBreak , Code "typ/compiler/spread-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "f")) [ SpreadArg (If [ ( Literal (Boolean False) , Block (CodeBlock []) ) ]) ]) , SoftBreak , Code "typ/compiler/spread-04.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "f")) [ SpreadArg (For (BasicBind (Just (Identifier "x"))) (Array []) (Block (Content []))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-04.typ0000644000000000000000000000013207346545000017071 0ustar0000000000000000// None is spreadable. #let f() = none #f(..none) #f(..if false {}) #f(..for x in () []) typst-0.8.0.2/test/typ/compiler/spread-05.out0000644000000000000000000000455107346545000017076 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-05.typ" ( line 3 , column 2 ) (LetFunc (Identifier "f") [ SinkParam Nothing , NormalParam (Identifier "a") ] (Ident (Identifier "a"))) , SoftBreak , Code "typ/compiler/spread-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-05.typ0000644000000000000000000000007207346545000017075 0ustar0000000000000000// unnamed spread #let f(.., a) = a #test(f(1, 2, 3), 3) typst-0.8.0.2/test/typ/compiler/spread-06.out0000644000000000000000000000002107346545000017063 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-06.typ0000644000000000000000000000007207346545000017076 0ustar0000000000000000// Error: 13-19 cannot spread string #calc.min(.."nope") typst-0.8.0.2/test/typ/compiler/spread-07.out0000644000000000000000000000002107346545000017064 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-07.typ0000644000000000000000000000011207346545000017072 0ustar0000000000000000// Error: 10-14 expected identifier, found boolean #let f(..true) = none typst-0.8.0.2/test/typ/compiler/spread-08.out0000644000000000000000000000002107346545000017065 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-08.typ0000644000000000000000000000011307346545000017074 0ustar0000000000000000// Error: 13-16 only one argument sink is allowed #let f(..a, ..b) = none typst-0.8.0.2/test/typ/compiler/spread-09.out0000644000000000000000000001076007346545000017101 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-09.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "l"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) , Let (BasicBind (Just (Identifier "r"))) (Array [ Reg (Literal (Int 5)) , Reg (Literal (Int 6)) , Reg (Literal (Int 7)) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Array [ Spr (Ident (Identifier "l")) , Reg (Literal (Int 4)) , Spr (Ident (Identifier "r")) ]) , NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 8)) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Dict [ Spr (Literal None) ]) , NormalArg (Array []) ] ])) , ParBreak , Code "typ/compiler/spread-09.typ" ( line 10 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "x"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ]) , Let (BasicBind (Just (Identifier "y"))) (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) , Let (BasicBind (Just (Identifier "z"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 3) ) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (Dict [ Spr (Ident (Identifier "x")) , Spr (Ident (Identifier "y")) , Spr (Ident (Identifier "z")) ]) , NormalArg (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 3) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (Dict [ Spr (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ]) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) , NormalArg (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ]) ] ])) , ParBreak ] "typ/compiler/spread-09.typ" (line 3, column 2): unexpected end of input expecting end of input Could not spread TNone into dictionary typst-0.8.0.2/test/typ/compiler/spread-09.typ0000644000000000000000000000043207346545000017101 0ustar0000000000000000// Test spreading into array and dictionary. #{ let l = (1, 2, 3) let r = (5, 6, 7) test((..l, 4, ..r), range(1, 8)) test((..none), ()) } #{ let x = (a: 1) let y = (b: 2) let z = (a: 3) test((:..x, ..y, ..z), (a: 3, b: 2)) test((..(a: 1), b: 2), (a: 1, b: 2)) } typst-0.8.0.2/test/typ/compiler/spread-10.out0000644000000000000000000000002107346545000017056 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-10.typ0000644000000000000000000000010707346545000017070 0ustar0000000000000000// Error: 11-17 cannot spread dictionary into array #(1, 2, ..(a: 1)) typst-0.8.0.2/test/typ/compiler/spread-11.out0000644000000000000000000000002107346545000017057 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-11.typ0000644000000000000000000000010607346545000017070 0ustar0000000000000000// Error: 5-11 cannot spread array into dictionary #(..(1, 2), a: 1) typst-0.8.0.2/test/typ/compiler/spread-12.out0000644000000000000000000000751307346545000017075 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-12.typ" ( line 3 , column 2 ) (Block (CodeBlock [ LetFunc (Identifier "f") [ SinkParam (Just (Identifier "a")) , NormalParam (Identifier "b") ] (Array [ Reg (Ident (Identifier "a")) , Reg (Ident (Identifier "b")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) ]) ]) , NormalArg (Literal (String "((), 1)")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) ]) ]) , NormalArg (Literal (String "((1, 2), 3)")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) , NormalArg (Literal (Int 4)) , NormalArg (Literal (Int 5)) ]) ]) , NormalArg (Literal (String "((1, 2, 3, 4), 5)")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-12.typ0000644000000000000000000000026107346545000017073 0ustar0000000000000000// Spread at beginning. #{ let f(..a, b) = (a, b) test(repr(f(1)), "((), 1)") test(repr(f(1, 2, 3)), "((1, 2), 3)") test(repr(f(1, 2, 3, 4, 5)), "((1, 2, 3, 4), 5)") } typst-0.8.0.2/test/typ/compiler/spread-13.out0000644000000000000000000000665707346545000017106 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/spread-13.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/spread-13.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/spread-13.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/spread-13.typ" ( line 3 , column 2 ) (Block (CodeBlock [ LetFunc (Identifier "f") [ NormalParam (Identifier "a") , SinkParam (Just (Identifier "b")) , NormalParam (Identifier "c") ] (Array [ Reg (Ident (Identifier "a")) , Reg (Ident (Identifier "b")) , Reg (Ident (Identifier "c")) ]) , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]) ]) , NormalArg (Literal (String "(1, (), 2)")) ] , FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (FuncCall (Ident (Identifier "f")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 3)) , NormalArg (Literal (Int 4)) , NormalArg (Literal (Int 5)) ]) ]) , NormalArg (Literal (String "(1, (2, 3, 4), 5)")) ] ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/spread-13.typ0000644000000000000000000000022607346545000017075 0ustar0000000000000000// Spread in the middle. #{ let f(a, ..b, c) = (a, b, c) test(repr(f(1, 2)), "(1, (), 2)") test(repr(f(1, 2, 3, 4, 5)), "(1, (2, 3, 4), 5)") } typst-0.8.0.2/test/typ/compiler/spread-14.out0000644000000000000000000000002107346545000017062 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/spread-14.typ0000644000000000000000000000012207346545000017071 0ustar0000000000000000#{ let f(..a, b, c, d) = none // Error: 4-10 missing argument: d f(1, 2) } typst-0.8.0.2/test/typ/compiler/string-00.out0000644000000000000000000000406707346545000017123 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Literal (String "Hello World!"))) []) , NormalArg (Literal (Int 12)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-00.typ0000644000000000000000000000007307346545000017121 0ustar0000000000000000// Test the `len` method. #test("Hello World!".len(), 12) typst-0.8.0.2/test/typ/compiler/string-01.out0000644000000000000000000000753307346545000017125 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "first")) (Literal (String "Hello"))) []) , NormalArg (Literal (String "H")) ]) , SoftBreak , Code "typ/compiler/string-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Literal (String "Hello"))) []) , NormalArg (Literal (String "o")) ]) , SoftBreak , Code "typ/compiler/string-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "first")) (Literal (String "\127987\65039\8205\127752A\127987\65039\8205\9895\65039"))) []) , NormalArg (Literal (String "\127987\65039\8205\127752")) ]) , SoftBreak , Code "typ/compiler/string-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "last")) (Literal (String "\127987\65039\8205\127752A\127987\65039\8205\9895\65039"))) []) , NormalArg (Literal (String "\127987\65039\8205\9895\65039")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: ["🏳"]), text(body: [ /= ]), text(body: ["🏳️‍🌈"]), text(body: [)]), text(body: [ ]), text(body: [❌(]), text(body: ["️"]), text(body: [ /= ]), text(body: ["🏳️‍⚧️"]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-01.typ0000644000000000000000000000034707346545000017126 0ustar0000000000000000// Test the `first` and `last` methods. #test("Hello".first(), "H") #test("Hello".last(), "o") #test("🏳️‍🌈A🏳️‍⚧️".first(), "🏳️‍🌈") #test("🏳️‍🌈A🏳️‍⚧️".last(), "🏳️‍⚧️") typst-0.8.0.2/test/typ/compiler/string-02.out0000644000000000000000000000002107346545000017107 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-02.typ0000644000000000000000000000005407346545000017122 0ustar0000000000000000// Error: 2-12 string is empty #"".first() typst-0.8.0.2/test/typ/compiler/string-03.out0000644000000000000000000000002107346545000017110 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-03.typ0000644000000000000000000000005307346545000017122 0ustar0000000000000000// Error: 2-11 string is empty #"".last() typst-0.8.0.2/test/typ/compiler/string-04.out0000644000000000000000000000773507346545000017134 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Literal (String "Hello"))) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "e")) ]) , SoftBreak , Code "typ/compiler/string-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Literal (String "Hello"))) [ NormalArg (Literal (Int 4)) ]) , NormalArg (Literal (String "o")) ]) , SoftBreak , Code "typ/compiler/string-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Literal (String "Hello"))) [ NormalArg (Negated (Literal (Int 1))) ]) , NormalArg (Literal (String "o")) ]) , SoftBreak , Code "typ/compiler/string-04.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Literal (String "Hello"))) [ NormalArg (Negated (Literal (Int 2))) ]) , NormalArg (Literal (String "l")) ]) , SoftBreak , Code "typ/compiler/string-04.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Literal (String "Hey: \127987\65039\8205\127752 there!"))) [ NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (String "\127987\65039\8205\127752")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: ["🏳"]), text(body: [ /= ]), text(body: ["🏳️‍🌈"]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-04.typ0000644000000000000000000000030007346545000017116 0ustar0000000000000000// Test the `at` method. #test("Hello".at(1), "e") #test("Hello".at(4), "o") #test("Hello".at(-1), "o") #test("Hello".at(-2), "l") #test("Hey: 🏳️‍🌈 there!".at(5), "🏳️‍🌈") typst-0.8.0.2/test/typ/compiler/string-05.out0000644000000000000000000000002107346545000017112 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-05.typ0000644000000000000000000000012307346545000017122 0ustar0000000000000000// Error: 2-14 string index 2 is not a character boundary #"🏳️‍🌈".at(2) typst-0.8.0.2/test/typ/compiler/string-06.out0000644000000000000000000000002107346545000017113 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-06.typ0000644000000000000000000000016007346545000017124 0ustar0000000000000000// Error: 2-15 no default value was specified and string index out of bounds (index: 5, len: 5) #"Hello".at(5) typst-0.8.0.2/test/typ/compiler/string-07.out0000644000000000000000000000737207346545000017134 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-07.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Literal (String "abc"))) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (String "b")) ]) , SoftBreak , Code "typ/compiler/string-07.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Literal (String "abc\127969def"))) [ NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 7)) ]) , NormalArg (Literal (String "c\127969")) ]) , SoftBreak , Code "typ/compiler/string-07.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Literal (String "abc\127969def"))) [ NormalArg (Literal (Int 2)) , NormalArg (Negated (Literal (Int 2))) ]) , NormalArg (Literal (String "c\127969d")) ]) , SoftBreak , Code "typ/compiler/string-07.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "slice")) (Literal (String "abc\127969def"))) [ NormalArg (Negated (Literal (Int 3))) , NormalArg (Negated (Literal (Int 1))) ]) , NormalArg (Literal (String "de")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: ["c🏡def"]), text(body: [ /= ]), text(body: ["c🏡"]), text(body: [)]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-07.typ0000644000000000000000000000026707346545000017135 0ustar0000000000000000// Test the `slice` method. #test("abc".slice(1, 2), "b") #test("abc🏡def".slice(2, 7), "c🏡") #test("abc🏡def".slice(2, -2), "c🏡d") #test("abc🏡def".slice(-3, -1), "de") typst-0.8.0.2/test/typ/compiler/string-08.out0000644000000000000000000000002107346545000017115 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-08.typ0000644000000000000000000000013307346545000017126 0ustar0000000000000000// Error: 2-21 string index -1 is not a character boundary #"🏳️‍🌈".slice(0, -1) typst-0.8.0.2/test/typ/compiler/string-09.out0000644000000000000000000001025607346545000017131 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-09.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "clusters")) (Literal (String "abc"))) []) , NormalArg (Array [ Reg (Literal (String "a")) , Reg (Literal (String "b")) , Reg (Literal (String "c")) ]) ]) , SoftBreak , Code "typ/compiler/string-09.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "clusters")) (Literal (String "abc"))) []) , NormalArg (Array [ Reg (Literal (String "a")) , Reg (Literal (String "b")) , Reg (Literal (String "c")) ]) ]) , SoftBreak , Code "typ/compiler/string-09.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "clusters")) (Literal (String "\127987\65039\8205\127752!"))) []) , NormalArg (Array [ Reg (Literal (String "\127987\65039\8205\127752")) , Reg (Literal (String "!")) ]) ]) , SoftBreak , Code "typ/compiler/string-09.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "codepoints")) (Literal (String "\127987\65039\8205\127752!"))) []) , NormalArg (Array [ Reg (Literal (String "\127987")) , Reg (Literal (String "\65039")) , Reg (Literal (String "\8205")) , Reg (Literal (String "\127752")) , Reg (Literal (String "!")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [("🏳", "️", "‍", "🌈", "!")]), text(body: [ /= ]), text(body: [("🏳️‍🌈", "!")]), text(body: [)]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-09.typ0000644000000000000000000000042607346545000017134 0ustar0000000000000000// Test the `clusters` and `codepoints` methods. #test("abc".clusters(), ("a", "b", "c")) #test("abc".clusters(), ("a", "b", "c")) #test("🏳️‍🌈!".clusters(), ("🏳️‍🌈", "!")) #test("🏳️‍🌈!".codepoints(), ("🏳", "\u{fe0f}", "\u{200d}", "🌈", "!")) typst-0.8.0.2/test/typ/compiler/string-10.out0000644000000000000000000001260607346545000017122 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-10.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (Literal (String "abc"))) [ NormalArg (Literal (String "b")) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "b")) (Literal (String "abc"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (Literal (String "1234f"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) (Literal (String "1234f"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (Literal (String "abc"))) [ NormalArg (Literal (String "d")) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (InCollection (Literal (String "1234g")) (Literal (String "1234f"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (Literal (String "abc"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "^[abc]$")) ]) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-10.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (Literal (String "abc"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "^[abc]+$")) ]) ]) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-10.typ0000644000000000000000000000051307346545000017121 0ustar0000000000000000// Test the `contains` method. #test("abc".contains("b"), true) #test("b" in "abc", true) #test("1234f".contains(regex("\d")), true) #test(regex("\d") in "1234f", true) #test("abc".contains("d"), false) #test("1234g" in "1234f", false) #test("abc".contains(regex("^[abc]$")), false) #test("abc".contains(regex("^[abc]+$")), true) typst-0.8.0.2/test/typ/compiler/string-11.out0000644000000000000000000001240407346545000017117 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-11.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-11.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-11.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-11.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "starts-with")) (Literal (String "Typst"))) [ NormalArg (Literal (String "Ty")) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "starts-with")) (Literal (String "Typst"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "[Tt]ys")) ]) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "starts-with")) (Literal (String "Typst"))) [ NormalArg (Literal (String "st")) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "ends-with")) (Literal (String "Typst"))) [ NormalArg (Literal (String "st")) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "ends-with")) (Literal (String "Typst"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d*")) ]) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "ends-with")) (Literal (String "Typst"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d+")) ]) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compiler/string-11.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "ends-with")) (Literal (String "Typ12"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d+")) ]) ]) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-11.typ0000644000000000000000000000054307346545000017125 0ustar0000000000000000// Test the `starts-with` and `ends-with` methods. #test("Typst".starts-with("Ty"), true) #test("Typst".starts-with(regex("[Tt]ys")), false) #test("Typst".starts-with("st"), false) #test("Typst".ends-with("st"), true) #test("Typst".ends-with(regex("\d*")), true) #test("Typst".ends-with(regex("\d+")), false) #test("Typ12".ends-with(regex("\d+")), true) typst-0.8.0.2/test/typ/compiler/string-12.out0000644000000000000000000000735407346545000017130 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-12.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "date"))) (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d{2}:\\d{2}")) ])) , SoftBreak , Code "typ/compiler/string-12.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "find")) (Literal (String "Hello World"))) [ NormalArg (Literal (String "World")) ]) , NormalArg (Literal (String "World")) ]) , SoftBreak , Code "typ/compiler/string-12.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "position")) (Literal (String "Hello World"))) [ NormalArg (Literal (String "World")) ]) , NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/compiler/string-12.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "find")) (Literal (String "It's 12:13 now"))) [ NormalArg (Ident (Identifier "date")) ]) , NormalArg (Literal (String "12:13")) ]) , SoftBreak , Code "typ/compiler/string-12.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "position")) (Literal (String "It's 12:13 now"))) [ NormalArg (Ident (Identifier "date")) ]) , NormalArg (Literal (Int 5)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-12.typ0000644000000000000000000000037107346545000017125 0ustar0000000000000000// Test the `find` and `position` methods. #let date = regex("\d{2}:\d{2}") #test("Hello World".find("World"), "World") #test("Hello World".position("World"), 6) #test("It's 12:13 now".find(date), "12:13") #test("It's 12:13 now".position(date), 5) typst-0.8.0.2/test/typ/compiler/string-13.out0000644000000000000000000002200607346545000017120 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-13.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-13.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-13.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-13.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "match")) (Literal (String "Is there a"))) [ NormalArg (Literal (String "for this?")) ]) , NormalArg (Literal None) ]) , SoftBreak , Code "typ/compiler/string-13.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "match")) (Literal (String "The time of my life."))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "[mit]+e")) ]) ]) , NormalArg (Dict [ Reg ( Ident (Identifier "start") , Literal (Int 4) ) , Reg ( Ident (Identifier "end") , Literal (Int 8) ) , Reg ( Ident (Identifier "text") , Literal (String "time") ) , Reg ( Ident (Identifier "captures") , Array [] ) ]) ]) , ParBreak , Comment , Code "typ/compiler/string-13.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "matches")) (Literal (String "Hello there"))) [ NormalArg (Literal (String "\\d")) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compiler/string-13.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "matches")) (Literal (String "Day by Day."))) [ NormalArg (Literal (String "Day")) ]) , NormalArg (Array [ Reg (Dict [ Reg ( Ident (Identifier "start") , Literal (Int 0) ) , Reg ( Ident (Identifier "end") , Literal (Int 3) ) , Reg ( Ident (Identifier "text") , Literal (String "Day") ) , Reg ( Ident (Identifier "captures") , Array [] ) ]) , Reg (Dict [ Reg ( Ident (Identifier "start") , Literal (Int 7) ) , Reg ( Ident (Identifier "end") , Literal (Int 10) ) , Reg ( Ident (Identifier "text") , Literal (String "Day") ) , Reg ( Ident (Identifier "captures") , Array [] ) ]) ]) ]) , ParBreak , Comment , Code "typ/compiler/string-13.typ" ( line 17 , column 2 ) (LetFunc (Identifier "timesum") [ NormalParam (Identifier "text") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "time"))) (Literal (Int 0)) , For (BasicBind (Just (Identifier "match"))) (FuncCall (FieldAccess (Ident (Identifier "matches")) (Ident (Identifier "text"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(\\d+):(\\d+)")) ]) ]) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "caps"))) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "match"))) , Assign (Ident (Identifier "time")) (Plus (Ident (Identifier "time")) (Plus (Times (Literal (Int 60)) (FuncCall (Ident (Identifier "int")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "caps"))) [ NormalArg (Literal (Int 0)) ]) ])) (FuncCall (Ident (Identifier "int")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "caps"))) [ NormalArg (Literal (Int 1)) ]) ]))) ])) , Plus (Plus (FuncCall (Ident (Identifier "str")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Divided (Ident (Identifier "time")) (Literal (Int 60))) ]) ]) (Literal (String ":"))) (FuncCall (Ident (Identifier "str")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Ident (Identifier "time")) , NormalArg (Literal (Int 60)) ]) ]) ]))) , ParBreak , Code "typ/compiler/string-13.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "timesum")) [ NormalArg (Literal (String "")) ]) , NormalArg (Literal (String "0:0")) ]) , SoftBreak , Code "typ/compiler/string-13.typ" ( line 27 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "timesum")) [ NormalArg (Literal (String "2:70")) ]) , NormalArg (Literal (String "3:10")) ]) , SoftBreak , Code "typ/compiler/string-13.typ" ( line 28 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "timesum")) [ NormalArg (Literal (String "1:20, 2:10, 0:40")) ]) , NormalArg (Literal (String "4:10")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-13.typ0000644000000000000000000000141007346545000017121 0ustar0000000000000000// Test the `match` method. #test("Is there a".match("for this?"), none) #test( "The time of my life.".match(regex("[mit]+e")), (start: 4, end: 8, text: "time", captures: ()), ) // Test the `matches` method. #test("Hello there".matches("\d"), ()) #test("Day by Day.".matches("Day"), ( (start: 0, end: 3, text: "Day", captures: ()), (start: 7, end: 10, text: "Day", captures: ()), )) // Compute the sum of all timestamps in the text. #let timesum(text) = { let time = 0 for match in text.matches(regex("(\d+):(\d+)")) { let caps = match.captures time += 60 * int(caps.at(0)) + int(caps.at(1)) } str(int(time / 60)) + ":" + str(calc.rem(time, 60)) } #test(timesum(""), "0:0") #test(timesum("2:70"), "3:10") #test(timesum("1:20, 2:10, 0:40"), "4:10") typst-0.8.0.2/test/typ/compiler/string-14.out0000644000000000000000000001467707346545000017140 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-14.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-14.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-14.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-14.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "ABC"))) [ NormalArg (Literal (String "")) , NormalArg (Literal (String "-")) ]) , NormalArg (Literal (String "-A-B-C-")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "Ok"))) [ NormalArg (Literal (String "Ok")) , NormalArg (Literal (String "Nope")) , KeyValArg (Identifier "count") (Literal (Int 0)) ]) , NormalArg (Literal (String "Ok")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "to add?"))) [ NormalArg (Literal (String "")) , NormalArg (Literal (String "How ")) , KeyValArg (Identifier "count") (Literal (Int 1)) ]) , NormalArg (Literal (String "How to add?")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "AB C DEF GH J"))) [ NormalArg (Literal (String " ")) , NormalArg (Literal (String ",")) , KeyValArg (Identifier "count") (Literal (Int 2)) ]) , NormalArg (Literal (String "AB,C,DEF GH J")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (FuncCall (FieldAccess (Ident (Identifier "replace")) (FuncCall (FieldAccess (Ident (Identifier "replace")) (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "Walcemo"))) [ NormalArg (Literal (String "o")) , NormalArg (Literal (String "k")) ])) [ NormalArg (Literal (String "e")) , NormalArg (Literal (String "o")) ])) [ NormalArg (Literal (String "k")) , NormalArg (Literal (String "e")) ])) [ NormalArg (Literal (String "a")) , NormalArg (Literal (String "e")) ]) , NormalArg (Literal (String "Welcome")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "123"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d$")) ]) , NormalArg (Literal (String "_")) ]) , NormalArg (Literal (String "12_")) ]) , SoftBreak , Code "typ/compiler/string-14.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "123"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d{1,2}$")) ]) , NormalArg (Literal (String "__")) ]) , NormalArg (Literal (String "1__")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-14.typ0000644000000000000000000000075307346545000017133 0ustar0000000000000000// Test the `replace` method with `Str` replacements. #test("ABC".replace("", "-"), "-A-B-C-") #test("Ok".replace("Ok", "Nope", count: 0), "Ok") #test("to add?".replace("", "How ", count: 1), "How to add?") #test("AB C DEF GH J".replace(" ", ",", count: 2), "AB,C,DEF GH J") #test("Walcemo" .replace("o", "k") .replace("e", "o") .replace("k", "e") .replace("a", "e"), "Welcome" ) #test("123".replace(regex("\d$"), "_"), "12_") #test("123".replace(regex("\d{1,2}$"), "__"), "1__") typst-0.8.0.2/test/typ/compiler/string-15.out0000644000000000000000000004352607346545000017134 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-15.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-15.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-15.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/compiler/string-15.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "abc"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "[a-z]")) ]) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ Plus (Plus (FuncCall (Ident (Identifier "str")) [ NormalArg (FieldAccess (Ident (Identifier "start")) (Ident (Identifier "m"))) ]) (FieldAccess (Ident (Identifier "text")) (Ident (Identifier "m")))) (FuncCall (Ident (Identifier "str")) [ NormalArg (FieldAccess (Ident (Identifier "end")) (Ident (Identifier "m"))) ]) ]))) ]) , NormalArg (Literal (String "0a11b22c3")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "abcd, efgh"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\w+")) ]) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ FuncCall (Ident (Identifier "upper")) [ NormalArg (FieldAccess (Ident (Identifier "text")) (Ident (Identifier "m"))) ] ]))) ]) , NormalArg (Literal (String "ABCD, EFGH")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "hello : world"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "^(.+)\\s*(:)\\s*(.+)$")) ]) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ Plus (Plus (Plus (FuncCall (Ident (Identifier "upper")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 0)) ]) ]) (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 1)) ])) (Literal (String " "))) (FuncCall (Ident (Identifier "upper")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 2)) ]) ]) ]))) ]) , NormalArg (Literal (String "HELLO : WORLD")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "hello world, lorem ipsum"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(\\w+) (\\w+)")) ]) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ Plus (Plus (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 1)) ]) (Literal (String " "))) (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 0)) ]) ]))) ]) , NormalArg (Literal (String "world hello, ipsum lorem")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "hello world, lorem ipsum"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "(\\w+) (\\w+)")) ]) , KeyValArg (Identifier "count") (Literal (Int 1)) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ Plus (Plus (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 1)) ]) (Literal (String " "))) (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) [ NormalArg (Literal (Int 0)) ]) ]))) ]) , NormalArg (Literal (String "world hello, lorem ipsum")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "123 456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "[a-z]+")) ]) , NormalArg (Literal (String "a")) ]) , NormalArg (Literal (String "123 456")) ]) , ParBreak , Code "typ/compiler/string-15.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "abc"))) [ NormalArg (Literal (String "")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Literal (String "-"))) ]) , NormalArg (Literal (String "-a-b-c-")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "abc"))) [ NormalArg (Literal (String "")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Literal (String "-"))) , KeyValArg (Identifier "count") (Literal (Int 1)) ]) , NormalArg (Literal (String "-abc")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "123"))) [ NormalArg (Literal (String "abc")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Literal (String ""))) ]) , NormalArg (Literal (String "123")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "123"))) [ NormalArg (Literal (String "abc")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Literal (String ""))) , KeyValArg (Identifier "count") (Literal (Int 2)) ]) , NormalArg (Literal (String "123")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "a123b123c"))) [ NormalArg (Literal (String "123")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ Plus (Plus (FuncCall (Ident (Identifier "str")) [ NormalArg (FieldAccess (Ident (Identifier "start")) (Ident (Identifier "m"))) ]) (Literal (String "-"))) (FuncCall (Ident (Identifier "str")) [ NormalArg (FieldAccess (Ident (Identifier "end")) (Ident (Identifier "m"))) ]) ]))) ]) , NormalArg (Literal (String "a1-4b5-8c")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 28 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "halla warld"))) [ NormalArg (Literal (String "a")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (Block (CodeBlock [ If [ ( Equals (FieldAccess (Ident (Identifier "start")) (Ident (Identifier "m"))) (Literal (Int 1)) , Block (CodeBlock [ Literal (String "e") ]) ) , ( Or (Equals (FieldAccess (Ident (Identifier "start")) (Ident (Identifier "m"))) (Literal (Int 4))) (Equals (FieldAccess (Ident (Identifier "start")) (Ident (Identifier "m"))) (Literal (Int 7))) , Block (CodeBlock [ Literal (String "o") ]) ) ] ]))) ]) , NormalArg (Literal (String "hello world")) ]) , SoftBreak , Code "typ/compiler/string-15.typ" ( line 32 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "replace")) (Literal (String "aaa"))) [ NormalArg (Literal (String "a")) , NormalArg (FuncExpr [ NormalParam (Identifier "m") ] (FuncCall (Ident (Identifier "str")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (FieldAccess (Ident (Identifier "captures")) (Ident (Identifier "m")))) []) ])) ]) , NormalArg (Literal (String "000")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-15.typ0000644000000000000000000000233307346545000017130 0ustar0000000000000000// Test the `replace` method with `Func` replacements. #test("abc".replace(regex("[a-z]"), m => { str(m.start) + m.text + str(m.end) }), "0a11b22c3") #test("abcd, efgh".replace(regex("\w+"), m => { upper(m.text) }), "ABCD, EFGH") #test("hello : world".replace(regex("^(.+)\s*(:)\s*(.+)$"), m => { upper(m.captures.at(0)) + m.captures.at(1) + " " + upper(m.captures.at(2)) }), "HELLO : WORLD") #test("hello world, lorem ipsum".replace(regex("(\w+) (\w+)"), m => { m.captures.at(1) + " " + m.captures.at(0) }), "world hello, ipsum lorem") #test("hello world, lorem ipsum".replace(regex("(\w+) (\w+)"), count: 1, m => { m.captures.at(1) + " " + m.captures.at(0) }), "world hello, lorem ipsum") #test("123 456".replace(regex("[a-z]+"), "a"), "123 456") #test("abc".replace("", m => "-"), "-a-b-c-") #test("abc".replace("", m => "-", count: 1), "-abc") #test("123".replace("abc", m => ""), "123") #test("123".replace("abc", m => "", count: 2), "123") #test("a123b123c".replace("123", m => { str(m.start) + "-" + str(m.end) }), "a1-4b5-8c") #test("halla warld".replace("a", m => { if m.start == 1 { "e" } else if m.start == 4 or m.start == 7 { "o" } }), "hello world") #test("aaa".replace("a", m => str(m.captures.len())), "000") typst-0.8.0.2/test/typ/compiler/string-16.out0000644000000000000000000000002107346545000017114 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-16.typ0000644000000000000000000000011607346545000017126 0ustar0000000000000000// Error: 23-24 expected string, found integer #"123".replace("123", m => 1) typst-0.8.0.2/test/typ/compiler/string-17.out0000644000000000000000000000002107346545000017115 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-17.typ0000644000000000000000000000013307346545000017126 0ustar0000000000000000// Error: 23-32 expected string or function, found array #"123".replace("123", (1, 2, 3)) typst-0.8.0.2/test/typ/compiler/string-18.out0000644000000000000000000003146207346545000017133 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-18.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-18.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-18.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-18.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "str"))) (Literal (String "Typst, LaTeX, Word, InDesign"))) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "array"))) (Array [ Reg (Literal (String "Typst")) , Reg (Literal (String "LaTeX")) , Reg (Literal (String "Word")) , Reg (Literal (String "InDesign")) ])) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "split")) (Ident (Identifier "str"))) [ NormalArg (Literal (String ",")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (FuncCall (FieldAccess (Ident (Identifier "trim")) (Ident (Identifier "s"))) [])) ]) , NormalArg (Ident (Identifier "array")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String ""))) []) , NormalArg (Literal (String "")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String " abc "))) [ KeyValArg (Identifier "at") (Ident (Identifier "start")) ]) , NormalArg (Literal (String "abc ")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String " abc "))) [ KeyValArg (Identifier "at") (Ident (Identifier "end")) , KeyValArg (Identifier "repeat") (Literal (Boolean True)) ]) , NormalArg (Literal (String " abc")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String " abc"))) [ KeyValArg (Identifier "at") (Ident (Identifier "start")) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "abc")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "aabcaa"))) [ NormalArg (Literal (String "a")) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "abca")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "aabca"))) [ NormalArg (Literal (String "a")) , KeyValArg (Identifier "at") (Ident (Identifier "start")) ]) , NormalArg (Literal (String "bca")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "aabcaa"))) [ NormalArg (Literal (String "a")) , KeyValArg (Identifier "at") (Ident (Identifier "end")) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "aabca")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String ""))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String ".")) ]) ]) , NormalArg (Literal (String "")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) ]) , NormalArg (Literal (String "abc")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "23abc45")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123a4b5c678"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) , KeyValArg (Identifier "repeat") (Literal (Boolean True)) ]) , NormalArg (Literal (String "a4b5c")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123a4b5c678"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "23a4b5c67")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) , KeyValArg (Identifier "at") (Ident (Identifier "start")) ]) , NormalArg (Literal (String "abc456")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) , KeyValArg (Identifier "at") (Ident (Identifier "end")) ]) , NormalArg (Literal (String "123abc")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d+")) ]) , KeyValArg (Identifier "at") (Ident (Identifier "end")) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "123abc")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "123abc456"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d{1,2}$")) ]) , KeyValArg (Identifier "repeat") (Literal (Boolean False)) ]) , NormalArg (Literal (String "123abc4")) ]) , SoftBreak , Code "typ/compiler/string-18.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "trim")) (Literal (String "hello world"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String ".")) ]) ]) , NormalArg (Literal (String "")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-18.typ0000644000000000000000000000203107346545000017126 0ustar0000000000000000// Test the `trim` method. #let str = "Typst, LaTeX, Word, InDesign" #let array = ("Typst", "LaTeX", "Word", "InDesign") #test(str.split(",").map(s => s.trim()), array) #test("".trim(), "") #test(" abc ".trim(at: start), "abc ") #test(" abc ".trim(at: end, repeat: true), " abc") #test(" abc".trim(at: start, repeat: false), "abc") #test("aabcaa".trim("a", repeat: false), "abca") #test("aabca".trim("a", at: start), "bca") #test("aabcaa".trim("a", at: end, repeat: false), "aabca") #test("".trim(regex(".")), "") #test("123abc456".trim(regex("\d")), "abc") #test("123abc456".trim(regex("\d"), repeat: false), "23abc45") #test("123a4b5c678".trim(regex("\d"), repeat: true), "a4b5c") #test("123a4b5c678".trim(regex("\d"), repeat: false), "23a4b5c67") #test("123abc456".trim(regex("\d"), at: start), "abc456") #test("123abc456".trim(regex("\d"), at: end), "123abc") #test("123abc456".trim(regex("\d+"), at: end, repeat: false), "123abc") #test("123abc456".trim(regex("\d{1,2}$"), repeat: false), "123abc4") #test("hello world".trim(regex(".")), "") typst-0.8.0.2/test/typ/compiler/string-19.out0000644000000000000000000000002107346545000017117 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-19.typ0000644000000000000000000000011007346545000017123 0ustar0000000000000000// Error: 17-21 expected either `start` or `end` #"abc".trim(at: left) typst-0.8.0.2/test/typ/compiler/string-20.out0000644000000000000000000001016107346545000017115 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/string-20.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/string-20.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/string-20.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/string-20.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "abc"))) [ NormalArg (Literal (String "")) ]) , NormalArg (Array [ Reg (Literal (String "")) , Reg (Literal (String "a")) , Reg (Literal (String "b")) , Reg (Literal (String "c")) , Reg (Literal (String "")) ]) ]) , SoftBreak , Code "typ/compiler/string-20.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "abc"))) [ NormalArg (Literal (String "b")) ]) , NormalArg (Array [ Reg (Literal (String "a")) , Reg (Literal (String "c")) ]) ]) , SoftBreak , Code "typ/compiler/string-20.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "a123c"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d")) ]) ]) , NormalArg (Array [ Reg (Literal (String "a")) , Reg (Literal (String "")) , Reg (Literal (String "")) , Reg (Literal (String "c")) ]) ]) , SoftBreak , Code "typ/compiler/string-20.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (Literal (String "a123c"))) [ NormalArg (FuncCall (Ident (Identifier "regex")) [ NormalArg (Literal (String "\\d+")) ]) ]) , NormalArg (Array [ Reg (Literal (String "a")) , Reg (Literal (String "c")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/string-20.typ0000644000000000000000000000032607346545000017124 0ustar0000000000000000// Test the `split` method. #test("abc".split(""), ("", "a", "b", "c", "")) #test("abc".split("b"), ("a", "c")) #test("a123c".split(regex("\d")), ("a", "", "", "c")) #test("a123c".split(regex("\d+")), ("a", "c")) typst-0.8.0.2/test/typ/compiler/string-21.out0000644000000000000000000000002107346545000017110 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/string-21.typ0000644000000000000000000000004707346545000017125 0ustar0000000000000000// Error: 2:1 expected quote #"hello\" typst-0.8.0.2/test/typ/compiler/while-00.out0000644000000000000000000000766107346545000016730 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/while-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/while-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/while-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compiler/while-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/while-00.typ" ( line 4 , column 2 ) (While (LessThan (Ident (Identifier "i")) (Literal (Int 10))) (Block (Content [ SoftBreak , Code "typ/compiler/while-00.typ" ( line 5 , column 4 ) (Assign (Ident (Identifier "i")) (Plus (Ident (Identifier "i")) (Literal (Int 2)))) , SoftBreak , Code "typ/compiler/while-00.typ" ( line 6 , column 4 ) (Ident (Identifier "i")) , ParBreak ]))) , ParBreak , Comment , Code "typ/compiler/while-00.typ" ( line 10 , column 2 ) (Let (BasicBind (Just (Identifier "iter"))) (Literal (Boolean True))) , SoftBreak , Code "typ/compiler/while-00.typ" ( line 11 , column 2 ) (While (Ident (Identifier "iter")) (Block (CodeBlock [ Assign (Ident (Identifier "iter")) (Literal (Boolean False)) , Literal (String "Hi.") ]))) , ParBreak , Code "typ/compiler/while-00.typ" ( line 16 , column 2 ) (While (Literal (Boolean False)) (Block (CodeBlock [ Ident (Identifier "dont-care") ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [2]), parbreak(), text(body: [ ]), text(body: [ ]), text(body: [4]), parbreak(), text(body: [ ]), text(body: [ ]), text(body: [6]), parbreak(), text(body: [ ]), text(body: [ ]), text(body: [8]), parbreak(), text(body: [ ]), text(body: [ ]), text(body: [10]), parbreak(), parbreak(), text(body: [ ]), text(body: [Hi.]), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/compiler/while-00.typ0000644000000000000000000000027407346545000016726 0ustar0000000000000000// Should output `2 4 6 8 10`. #let i = 0 #while i < 10 [ #(i += 2) #i ] // Should output `Hi`. #let iter = true #while iter { iter = false "Hi." } #while false { dont-care } typst-0.8.0.2/test/typ/compiler/while-01.out0000644000000000000000000000611507346545000016722 0ustar0000000000000000--- parse tree --- [ Code "typ/compiler/while-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compiler/while-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compiler/while-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , SoftBreak , Code "typ/compiler/while-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (While (Literal (Boolean False)) (Block (CodeBlock []))) , NormalArg (Literal None) ]) , ParBreak , Code "typ/compiler/while-01.typ" ( line 7 , column 2 ) (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 0))) , SoftBreak , Code "typ/compiler/while-01.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (While (LessThan (Ident (Identifier "i")) (Literal (Int 1))) (Block (Content [ Code "typ/compiler/while-01.typ" ( line 8 , column 26 ) (Assign (Ident (Identifier "i")) (Plus (Ident (Identifier "i")) (Literal (Int 1)))) ]))) ]) , NormalArg (Literal (String "content")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak(), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compiler/while-01.typ0000644000000000000000000000020107346545000016715 0ustar0000000000000000// Value of while loops. // Ref: false #test(while false {}, none) #let i = 0 #test(type(while i < 1 [#(i += 1)]), "content") typst-0.8.0.2/test/typ/compiler/while-02.out0000644000000000000000000000002107346545000016711 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/while-02.typ0000644000000000000000000000014307346545000016723 0ustar0000000000000000// Condition must be boolean. // Error: 8-14 expected boolean, found content #while [nope] [nope] typst-0.8.0.2/test/typ/compiler/while-03.out0000644000000000000000000000002107346545000016712 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/while-03.typ0000644000000000000000000000010507346545000016722 0ustar0000000000000000// Error: 8-25 condition is always true #while 2 < "hello".len() {} typst-0.8.0.2/test/typ/compiler/while-04.out0000644000000000000000000000002107346545000016713 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/while-04.typ0000644000000000000000000000012107346545000016721 0ustar0000000000000000// Error: 2:2-2:24 loop seems to be infinite #let i = 1 #while i > 0 { i += 1 } typst-0.8.0.2/test/typ/compiler/while-05.out0000644000000000000000000000002107346545000016714 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compiler/while-05.typ0000644000000000000000000000032207346545000016725 0ustar0000000000000000// Error: 7 expected expression #while // Error: 8 expected expression #{while} // Error: 9 expected block #while x // Error: 7 expected expression #while x {} // Error: 9 expected block #while x something typst-0.8.0.2/test/typ/compute/0000755000000000000000000000000007346545000014502 5ustar0000000000000000typst-0.8.0.2/test/typ/compute/calc-00.out0000644000000000000000000001222507346545000016354 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Literal (Boolean False)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Literal (Boolean True)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Literal (Int 10)) ]) , NormalArg (Literal (Int 10)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Literal (String "150")) ]) , NormalArg (Literal (Int 150)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "int")) [ NormalArg (Divided (Literal (Int 10)) (Literal (Int 3))) ]) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "float")) [ NormalArg (Literal (Int 10)) ]) , NormalArg (Literal (Float 10.0)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "float")) [ NormalArg (Times (Literal (Numeric 50.0 Percent)) (Literal (Numeric 30.0 Percent))) ]) , NormalArg (Literal (Float 0.15)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "float")) [ NormalArg (Literal (String "31.4e-1")) ]) , NormalArg (Literal (Float 3.14)) ]) , SoftBreak , Code "typ/compute/calc-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (FuncCall (Ident (Identifier "float")) [ NormalArg (Literal (Int 10)) ]) ]) , NormalArg (Literal (String "float")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-00.typ0000644000000000000000000000037407346545000016363 0ustar0000000000000000// Test conversion to numbers. #test(int(false), 0) #test(int(true), 1) #test(int(10), 10) #test(int("150"), 150) #test(int(10 / 3), 3) #test(float(10), 10.0) #test(float(50% * 30%), 0.15) #test(float("31.4e-1"), 3.14) #test(type(float(10)), "float") typst-0.8.0.2/test/typ/compute/calc-01.out0000644000000000000000000000543207346545000016357 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/calc-01.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "round")) (Ident (Identifier "calc"))) [ NormalArg (FieldAccess (Ident (Identifier "e")) (Ident (Identifier "calc"))) , KeyValArg (Identifier "digits") (Literal (Int 2)) ]) , NormalArg (Literal (Float 2.72)) ]) , SoftBreak , Code "typ/compute/calc-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "round")) (Ident (Identifier "calc"))) [ NormalArg (FieldAccess (Ident (Identifier "pi")) (Ident (Identifier "calc"))) , KeyValArg (Identifier "digits") (Literal (Int 2)) ]) , NormalArg (Literal (Float 3.14)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-01.typ0000644000000000000000000000013007346545000016352 0ustar0000000000000000#test(calc.round(calc.e, digits: 2), 2.72) #test(calc.round(calc.pi, digits: 2), 3.14) typst-0.8.0.2/test/typ/compute/calc-02.out0000644000000000000000000000002107346545000016345 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-02.typ0000644000000000000000000000012507346545000016357 0ustar0000000000000000// Error: 6-10 expected boolean, integer, float, or string, found length #int(10pt) typst-0.8.0.2/test/typ/compute/calc-03.out0000644000000000000000000000002107346545000016346 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-03.typ0000644000000000000000000000014107346545000016356 0ustar0000000000000000// Error: 8-13 expected boolean, integer, float, ratio, or string, found function #float(float) typst-0.8.0.2/test/typ/compute/calc-04.out0000644000000000000000000000002107346545000016347 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-04.typ0000644000000000000000000000006307346545000016362 0ustar0000000000000000// Error: 6-12 invalid integer: nope #int("nope") typst-0.8.0.2/test/typ/compute/calc-05.out0000644000000000000000000000002107346545000016350 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-05.typ0000644000000000000000000000006507346545000016365 0ustar0000000000000000// Error: 8-15 invalid float: 1.2.3 #float("1.2.3") typst-0.8.0.2/test/typ/compute/calc-06.out0000644000000000000000000001133507346545000016363 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-06.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Int 3))) ]) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Float 0.0))) ]) , NormalArg (Literal (Float 0.0)) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Float 0.0)) ]) , NormalArg (Negated (Literal (Float 0.0))) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Float 3.14))) ]) , NormalArg (Literal (Float 3.14)) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Numeric 50.0 Percent)) ]) , NormalArg (Literal (Numeric 50.0 Percent)) ]) , SoftBreak , Code "typ/compute/calc-06.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "abs")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Numeric 25.0 Percent))) ]) , NormalArg (Literal (Numeric 25.0 Percent)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-06.typ0000644000000000000000000000032207346545000016362 0ustar0000000000000000// Test the `abs` function. #test(calc.abs(-3), 3) #test(calc.abs(3), 3) #test(calc.abs(-0.0), 0.0) #test(calc.abs(0.0), -0.0) #test(calc.abs(-3.14), 3.14) #test(calc.abs(50%), 50%) #test(calc.abs(-25%), 25%) typst-0.8.0.2/test/typ/compute/calc-07.out0000644000000000000000000000002107346545000016352 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-07.typ0000644000000000000000000000016107346545000016364 0ustar0000000000000000// Error: 11-22 expected integer, float, length, angle, ratio, or fraction, found string #calc.abs("no number") typst-0.8.0.2/test/typ/compute/calc-08.out0000644000000000000000000000660007346545000016364 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-08.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "even")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compute/calc-08.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "odd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compute/calc-08.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "odd")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Int 1))) ]) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compute/calc-08.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "even")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Int 11))) ]) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-08.typ0000644000000000000000000000022407346545000016365 0ustar0000000000000000// Test the `even` and `odd` functions. #test(calc.even(2), true) #test(calc.odd(2), false) #test(calc.odd(-1), true) #test(calc.even(-11), false) typst-0.8.0.2/test/typ/compute/calc-09.out0000644000000000000000000001015707346545000016367 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-09.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compute/calc-09.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compute/calc-09.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Negated (Literal (Int 3))) ]) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compute/calc-09.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Float 22.5)) , NormalArg (Literal (Int 10)) ]) , NormalArg (Literal (Float 2.5)) ]) , SoftBreak , Code "typ/compute/calc-09.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 9)) , NormalArg (Literal (Float 4.5)) ]) , NormalArg (Literal (Int 0)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [1]), text(body: [ /= ]), text(body: [0]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-09.typ0000644000000000000000000000024307346545000016367 0ustar0000000000000000// Test the `rem` function. #test(calc.rem(1, 1), 0) #test(calc.rem(5, 3), 2) #test(calc.rem(5, -3), 2) #test(calc.rem(22.5, 10), 2.5) #test(calc.rem(9, 4.5), 0) typst-0.8.0.2/test/typ/compute/calc-10.out0000644000000000000000000000002107346545000016344 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-10.typ0000644000000000000000000000007207346545000016357 0ustar0000000000000000// Error: 14-15 divisor must not be zero #calc.rem(5, 0) typst-0.8.0.2/test/typ/compute/calc-11.out0000644000000000000000000000002107346545000016345 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-11.typ0000644000000000000000000000007607346545000016364 0ustar0000000000000000// Error: 16-19 divisor must not be zero #calc.rem(3.0, 0.0) typst-0.8.0.2/test/typ/compute/calc-12.out0000644000000000000000000000774507346545000016372 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-12.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "quo")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-12.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "quo")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-12.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "quo")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Negated (Literal (Int 3))) ]) , NormalArg (Negated (Literal (Int 1))) ]) , SoftBreak , Code "typ/compute/calc-12.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "quo")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Float 22.5)) , NormalArg (Literal (Int 10)) ]) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/compute/calc-12.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "quo")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 9)) , NormalArg (Literal (Float 4.5)) ]) , NormalArg (Literal (Int 2)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-12.typ0000644000000000000000000000024207346545000016360 0ustar0000000000000000// Test the `quo` function. #test(calc.quo(1, 1), 1) #test(calc.quo(5, 3), 1) #test(calc.quo(5, -3), -1) #test(calc.quo(22.5, 10), 2) #test(calc.quo(9, 4.5), 2) typst-0.8.0.2/test/typ/compute/calc-13.out0000644000000000000000000000002107346545000016347 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-13.typ0000644000000000000000000000007207346545000016362 0ustar0000000000000000// Error: 14-15 divisor must not be zero #calc.quo(5, 0) typst-0.8.0.2/test/typ/compute/calc-14.out0000644000000000000000000000002107346545000016350 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-14.typ0000644000000000000000000000007607346545000016367 0ustar0000000000000000// Error: 16-19 divisor must not be zero #calc.quo(3.0, 0.0) typst-0.8.0.2/test/typ/compute/calc-15.out0000644000000000000000000000724307346545000016366 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-15.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-15.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-15.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-15.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "min")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 2)) , NormalArg (Negated (Literal (Int 4))) ]) , NormalArg (Negated (Literal (Int 4))) ]) , SoftBreak , Code "typ/compute/calc-15.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "min")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Float 3.5)) , NormalArg (Literal (Float 100.0)) , NormalArg (Negated (Literal (Float 0.1))) , NormalArg (Literal (Int 3)) ]) , NormalArg (Negated (Literal (Float 0.1))) ]) , SoftBreak , Code "typ/compute/calc-15.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "max")) (Ident (Identifier "calc"))) [ NormalArg (Negated (Literal (Int 3))) , NormalArg (Literal (Int 11)) ]) , NormalArg (Literal (Int 11)) ]) , SoftBreak , Code "typ/compute/calc-15.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "min")) (Ident (Identifier "calc"))) [ NormalArg (Literal (String "hi")) ]) , NormalArg (Literal (String "hi")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-15.typ0000644000000000000000000000024407346545000016365 0ustar0000000000000000// Test the `min` and `max` functions. #test(calc.min(2, -4), -4) #test(calc.min(3.5, 1e2, -0.1, 3), -0.1) #test(calc.max(-3, 11), 11) #test(calc.min("hi"), "hi") typst-0.8.0.2/test/typ/compute/calc-16.out0000644000000000000000000000505507346545000016366 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-16.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-16.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-16.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-16.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "pow")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 10)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-16.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "pow")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 4)) ]) , NormalArg (Literal (Int 16)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-16.typ0000644000000000000000000000012207346545000016361 0ustar0000000000000000// Test the `calc` function. #test(calc.pow(10, 0), 1) #test(calc.pow(2, 4), 16) typst-0.8.0.2/test/typ/compute/calc-17.out0000644000000000000000000000002107346545000016353 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-17.typ0000644000000000000000000000011007346545000016357 0ustar0000000000000000// Error: 10-16 zero to the power of zero is undefined #calc.pow(0, 0) typst-0.8.0.2/test/typ/compute/calc-18.out0000644000000000000000000000002107346545000016354 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-18.typ0000644000000000000000000000010707346545000016366 0ustar0000000000000000// Error: 14-31 exponent is too large #calc.pow(2, 10000000000000000) typst-0.8.0.2/test/typ/compute/calc-19.out0000644000000000000000000000002107346545000016355 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-19.typ0000644000000000000000000000010207346545000016362 0ustar0000000000000000// Error: 10-25 the result is too large #calc.pow(2, 2147483647) typst-0.8.0.2/test/typ/compute/calc-20.out0000644000000000000000000000002107346545000016345 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-20.typ0000644000000000000000000000014607346545000016362 0ustar0000000000000000// Error: 14-36 exponent may not be infinite, subnormal, or NaN #calc.pow(2, calc.pow(2.0, 10000.0)) typst-0.8.0.2/test/typ/compute/calc-21.out0000644000000000000000000000002107346545000016346 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-21.typ0000644000000000000000000000010407346545000016355 0ustar0000000000000000// Error: 10-19 the result is not a real number #calc.pow(-1, 0.5) typst-0.8.0.2/test/typ/compute/calc-22.out0000644000000000000000000000002107346545000016347 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-22.typ0000644000000000000000000000011307346545000016356 0ustar0000000000000000// Error: 12-14 cannot take square root of negative number #calc.sqrt(-1) typst-0.8.0.2/test/typ/compute/calc-23.out0000644000000000000000000000002107346545000016350 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-23.typ0000644000000000000000000000007707346545000016370 0ustar0000000000000000// Error: 11-13 value must be strictly positive #calc.log(-1) typst-0.8.0.2/test/typ/compute/calc-24.out0000644000000000000000000000002107346545000016351 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-24.typ0000644000000000000000000000013107346545000016360 0ustar0000000000000000// Error: 20-21 base may not be zero, NaN, infinite, or subnormal #calc.log(1, base: 0) typst-0.8.0.2/test/typ/compute/calc-25.out0000644000000000000000000000002107346545000016352 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-25.typ0000644000000000000000000000011107346545000016357 0ustar0000000000000000// Error: 10-24 the result is not a real number #calc.log(10, base: -1) typst-0.8.0.2/test/typ/compute/calc-26.out0000644000000000000000000000476307346545000016374 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-26.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-26.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-26.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-26.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "fact")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-26.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "fact")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (Int 120)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-26.typ0000644000000000000000000000011607346545000016365 0ustar0000000000000000// Test the `fact` function. #test(calc.fact(0), 1) #test(calc.fact(5), 120) typst-0.8.0.2/test/typ/compute/calc-27.out0000644000000000000000000000002107346545000016354 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-27.typ0000644000000000000000000000007007346545000016365 0ustar0000000000000000// Error: 11-15 the result is too large #calc.fact(21) typst-0.8.0.2/test/typ/compute/calc-28.out0000644000000000000000000000671207346545000016372 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-28.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-28.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-28.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-28.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "perm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-28.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "perm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 60)) ]) , SoftBreak , Code "typ/compute/calc-28.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "perm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (Int 120)) ]) , SoftBreak , Code "typ/compute/calc-28.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "perm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 6)) ]) , NormalArg (Literal (Int 0)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-28.typ0000644000000000000000000000021107346545000016363 0ustar0000000000000000// Test the `perm` function. #test(calc.perm(0, 0), 1) #test(calc.perm(5, 3), 60) #test(calc.perm(5, 5), 120) #test(calc.perm(5, 6), 0) typst-0.8.0.2/test/typ/compute/calc-29.out0000644000000000000000000000002107346545000016356 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-29.typ0000644000000000000000000000007407346545000016373 0ustar0000000000000000// Error: 11-19 the result is too large #calc.perm(21, 21) typst-0.8.0.2/test/typ/compute/calc-30.out0000644000000000000000000000763307346545000016366 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-30.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-30.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-30.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-30.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "binom")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-30.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "binom")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 3)) ]) , NormalArg (Literal (Int 10)) ]) , SoftBreak , Code "typ/compute/calc-30.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "binom")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 5)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-30.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "binom")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 6)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compute/calc-30.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "binom")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 6)) , NormalArg (Literal (Int 2)) ]) , NormalArg (Literal (Int 15)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-30.typ0000644000000000000000000000025007346545000016357 0ustar0000000000000000// Test the `binom` function. #test(calc.binom(0, 0), 1) #test(calc.binom(5, 3), 10) #test(calc.binom(5, 5), 1) #test(calc.binom(5, 6), 0) #test(calc.binom(6, 2), 15) typst-0.8.0.2/test/typ/compute/calc-31.out0000644000000000000000000001160007346545000016354 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-31.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-31.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-31.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-31.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 112)) , NormalArg (Literal (Int 77)) ]) , NormalArg (Literal (Int 7)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 12)) , NormalArg (Literal (Int 96)) ]) , NormalArg (Literal (Int 12)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 13)) , NormalArg (Literal (Int 9)) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 13)) , NormalArg (Negated (Literal (Int 9))) ]) , NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 272557)) , NormalArg (Literal (Int 272557)) ]) , NormalArg (Literal (Int 272557)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compute/calc-31.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "gcd")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 7)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 7)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-31.typ0000644000000000000000000000034407346545000016364 0ustar0000000000000000// Test the `gcd` function. #test(calc.gcd(112, 77), 7) #test(calc.gcd(12, 96), 12) #test(calc.gcd(13, 9), 1) #test(calc.gcd(13, -9), 1) #test(calc.gcd(272557, 272557), 272557) #test(calc.gcd(0, 0), 0) #test(calc.gcd(7, 0), 7) typst-0.8.0.2/test/typ/compute/calc-32.out0000644000000000000000000001160707346545000016364 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-32.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-32.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-32.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-32.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 112)) , NormalArg (Literal (Int 77)) ]) , NormalArg (Literal (Int 1232)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 12)) , NormalArg (Literal (Int 96)) ]) , NormalArg (Literal (Int 96)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 13)) , NormalArg (Literal (Int 9)) ]) , NormalArg (Literal (Int 117)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 13)) , NormalArg (Negated (Literal (Int 9))) ]) , NormalArg (Literal (Int 117)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 272557)) , NormalArg (Literal (Int 272557)) ]) , NormalArg (Literal (Int 272557)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 0)) ]) , SoftBreak , Code "typ/compute/calc-32.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lcm")) (Ident (Identifier "calc"))) [ NormalArg (Literal (Int 8)) , NormalArg (Literal (Int 0)) ]) , NormalArg (Literal (Int 0)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-32.typ0000644000000000000000000000035307346545000016365 0ustar0000000000000000// Test the `lcm` function. #test(calc.lcm(112, 77), 1232) #test(calc.lcm(12, 96), 96) #test(calc.lcm(13, 9), 117) #test(calc.lcm(13, -9), 117) #test(calc.lcm(272557, 272557), 272557) #test(calc.lcm(0, 0), 0) #test(calc.lcm(8, 0), 0) typst-0.8.0.2/test/typ/compute/calc-33.out0000644000000000000000000000002107346545000016351 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-33.typ0000644000000000000000000000013007346545000016357 0ustar0000000000000000// Error: 10-41 the return value is too large #calc.lcm(15486487489457, 4874879896543) typst-0.8.0.2/test/typ/compute/calc-34.out0000644000000000000000000000002107346545000016352 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-34.typ0000644000000000000000000000007107346545000016364 0ustar0000000000000000// Error: 10-12 expected at least one value #calc.min() typst-0.8.0.2/test/typ/compute/calc-35.out0000644000000000000000000000002107346545000016353 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-35.typ0000644000000000000000000000010607346545000016364 0ustar0000000000000000// Error: 14-18 cannot compare integer and string #calc.min(1, "hi") typst-0.8.0.2/test/typ/compute/calc-36.out0000644000000000000000000001566507346545000016400 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/calc-36.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/calc-36.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/calc-36.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/calc-36.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 4)) ]) , NormalArg (Array [ Reg (Literal (Int 0)) , Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 4)) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Negated (Literal (Int 4))) , NormalArg (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Negated (Literal (Int 4))) , Reg (Negated (Literal (Int 3))) , Reg (Negated (Literal (Int 2))) , Reg (Negated (Literal (Int 1))) , Reg (Literal (Int 0)) , Reg (Literal (Int 1)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) , NormalArg (Literal (Int 5)) ]) , NormalArg (Array []) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) , KeyValArg (Identifier "step") (Literal (Int 3)) ]) , NormalArg (Array [ Reg (Literal (Int 0)) , Reg (Literal (Int 3)) , Reg (Literal (Int 6)) , Reg (Literal (Int 9)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 4)) , KeyValArg (Identifier "step") (Literal (Int 1)) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 8)) , KeyValArg (Identifier "step") (Literal (Int 2)) ]) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 3)) , Reg (Literal (Int 5)) , Reg (Literal (Int 7)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 5)) , NormalArg (Literal (Int 2)) , KeyValArg (Identifier "step") (Negated (Literal (Int 1))) ]) , NormalArg (Array [ Reg (Literal (Int 5)) , Reg (Literal (Int 4)) , Reg (Literal (Int 3)) ]) ]) , SoftBreak , Code "typ/compute/calc-36.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 10)) , NormalArg (Literal (Int 0)) , KeyValArg (Identifier "step") (Negated (Literal (Int 3))) ]) , NormalArg (Array [ Reg (Literal (Int 10)) , Reg (Literal (Int 7)) , Reg (Literal (Int 4)) , Reg (Literal (Int 1)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/calc-36.typ0000644000000000000000000000055507346545000016375 0ustar0000000000000000// Test the `range` function. #test(range(4), (0, 1, 2, 3)) #test(range(1, 4), (1, 2, 3)) #test(range(-4, 2), (-4, -3, -2, -1, 0, 1)) #test(range(10, 5), ()) #test(range(10, step: 3), (0, 3, 6, 9)) #test(range(1, 4, step: 1), (1, 2, 3)) #test(range(1, 8, step: 2), (1, 3, 5, 7)) #test(range(5, 2, step: -1), (5, 4, 3)) #test(range(10, 0, step: -3), (10, 7, 4, 1)) typst-0.8.0.2/test/typ/compute/calc-37.out0000644000000000000000000000002107346545000016355 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-37.typ0000644000000000000000000000005607346545000016372 0ustar0000000000000000// Error: 7-9 missing argument: end #range() typst-0.8.0.2/test/typ/compute/calc-38.out0000644000000000000000000000002107346545000016356 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-38.typ0000644000000000000000000000007607346545000016375 0ustar0000000000000000// Error: 11-14 expected integer, found float #range(1, 2.0) typst-0.8.0.2/test/typ/compute/calc-39.out0000644000000000000000000000002107346545000016357 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-39.typ0000644000000000000000000000010707346545000016371 0ustar0000000000000000// Error: 17-22 expected integer, found string #range(4, step: "one") typst-0.8.0.2/test/typ/compute/calc-40.out0000644000000000000000000000002107346545000016347 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/calc-40.typ0000644000000000000000000000007407346545000016364 0ustar0000000000000000// Error: 18-19 number must not be zero #range(10, step: 0) typst-0.8.0.2/test/typ/compute/construct-00.out0000644000000000000000000001417007346545000017477 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/construct-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/construct-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/construct-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/construct-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Numeric 0.0 Percent)) , NormalArg (Literal (Numeric 30.0 Percent)) , NormalArg (Literal (Numeric 70.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "004db3")) ]) ]) , ParBreak , Comment , Code "typ/compute/construct-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 255)) , NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) , NormalArg (Literal (Numeric 50.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "ff000080")) ]) ]) , ParBreak , Comment , Code "typ/compute/construct-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lighten")) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 25)) , NormalArg (Literal (Int 35)) , NormalArg (Literal (Int 45)) ])) [ NormalArg (Literal (Numeric 10.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 48)) , NormalArg (Literal (Int 57)) , NormalArg (Literal (Int 66)) ]) ]) , SoftBreak , Code "typ/compute/construct-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "darken")) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 40)) , NormalArg (Literal (Int 30)) , NormalArg (Literal (Int 20)) ])) [ NormalArg (Literal (Numeric 10.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 36)) , NormalArg (Literal (Int 27)) , NormalArg (Literal (Int 18)) ]) ]) , SoftBreak , Code "typ/compute/construct-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "negate")) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "#133337")) ])) []) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 236)) , NormalArg (Literal (Int 204)) , NormalArg (Literal (Int 200)) ]) ]) , SoftBreak , Code "typ/compute/construct-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "lighten")) (Ident (Identifier "white"))) [ NormalArg (Literal (Numeric 100.0 Percent)) ]) , NormalArg (Ident (Identifier "white")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [❌(]), text(body: [rgb(0%,30%,70%,100%)]), text(body: [ /= ]), text(body: [rgb(0%,30%,70%,100%)]), text(body: [)]), parbreak(), text(body: [❌(]), text(body: [rgb(100%,0%,0%,50%)]), text(body: [ /= ]), text(body: [rgb(100%,0%,0%,50%)]), text(body: [)]), parbreak(), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/construct-00.typ0000644000000000000000000000054107346545000017501 0ustar0000000000000000// Compare both ways. #test(rgb(0%, 30%, 70%), rgb("004db3")) // Alpha channel. #test(rgb(255, 0, 0, 50%), rgb("ff000080")) // Test color modification methods. #test(rgb(25, 35, 45).lighten(10%), rgb(48, 57, 66)) #test(rgb(40, 30, 20).darken(10%), rgb(36, 27, 18)) #test(rgb("#133337").negate(), rgb(236, 204, 200)) #test(white.lighten(100%), white) typst-0.8.0.2/test/typ/compute/construct-01.out0000644000000000000000000000517107346545000017501 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/construct-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/construct-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/construct-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compute/construct-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Int 0)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 80.0 Percent)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), stack(children: (rect(fill: luma(0%)), rect(fill: luma(80%))), dir: ltr), parbreak() }) typst-0.8.0.2/test/typ/compute/construct-01.typ0000644000000000000000000000015207346545000017500 0ustar0000000000000000// Test gray color conversion. // Ref: true #stack(dir: ltr, rect(fill: luma(0)), rect(fill: luma(80%))) typst-0.8.0.2/test/typ/compute/construct-02.out0000644000000000000000000000002107346545000017467 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-02.typ0000644000000000000000000000016507346545000017505 0ustar0000000000000000// Error for values that are out of range. // Error: 11-14 number must be between 0 and 255 #test(rgb(-30, 15, 50)) typst-0.8.0.2/test/typ/compute/construct-03.out0000644000000000000000000000002107346545000017470 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-03.typ0000644000000000000000000000011207346545000017476 0ustar0000000000000000// Error: 6-11 color string contains non-hexadecimal letters #rgb("lol") typst-0.8.0.2/test/typ/compute/construct-04.out0000644000000000000000000000002107346545000017471 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-04.typ0000644000000000000000000000006607346545000017507 0ustar0000000000000000// Error: 5-7 missing argument: red component #rgb() typst-0.8.0.2/test/typ/compute/construct-05.out0000644000000000000000000000002107346545000017472 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-05.typ0000644000000000000000000000007407346545000017507 0ustar0000000000000000// Error: 5-11 missing argument: blue component #rgb(0, 1) typst-0.8.0.2/test/typ/compute/construct-06.out0000644000000000000000000000002107346545000017473 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-06.typ0000644000000000000000000000012507346545000017505 0ustar0000000000000000// Error: 21-26 expected integer or ratio, found boolean #rgb(10%, 20%, 30%, false) typst-0.8.0.2/test/typ/compute/construct-07.out0000644000000000000000000001001607346545000017501 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/construct-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/construct-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/construct-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/construct-07.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "envelope"))) (FuncCall (Ident (Identifier "symbol")) [ NormalArg (Literal (String "\128386")) , NormalArg (Array [ Reg (Literal (String "stamped")) , Reg (Literal (String "\128387")) ]) , NormalArg (Array [ Reg (Literal (String "stamped.pen")) , Reg (Literal (String "\128390")) ]) , NormalArg (Array [ Reg (Literal (String "lightning")) , Reg (Literal (String "\128388")) ]) , NormalArg (Array [ Reg (Literal (String "fly")) , Reg (Literal (String "\128389")) ]) ])) , ParBreak , Code "typ/compute/construct-07.typ" ( line 11 , column 2 ) (Ident (Identifier "envelope")) , SoftBreak , Code "typ/compute/construct-07.typ" ( line 12 , column 2 ) (FieldAccess (Ident (Identifier "stamped")) (Ident (Identifier "envelope"))) , SoftBreak , Code "typ/compute/construct-07.typ" ( line 13 , column 2 ) (FieldAccess (Ident (Identifier "pen")) (Ident (Identifier "envelope"))) , SoftBreak , Code "typ/compute/construct-07.typ" ( line 14 , column 2 ) (FieldAccess (Ident (Identifier "pen")) (FieldAccess (Ident (Identifier "stamped")) (Ident (Identifier "envelope")))) , SoftBreak , Code "typ/compute/construct-07.typ" ( line 15 , column 2 ) (FieldAccess (Ident (Identifier "lightning")) (Ident (Identifier "envelope"))) , SoftBreak , Code "typ/compute/construct-07.typ" ( line 16 , column 2 ) (FieldAccess (Ident (Identifier "fly")) (Ident (Identifier "envelope"))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [🖂]), text(body: [ ]), text(body: [🖃]), text(body: [ ]), text(body: [🖆]), text(body: [ ]), text(body: [🖆]), text(body: [ ]), text(body: [🖄]), text(body: [ ]), text(body: [🖅]), parbreak() }) typst-0.8.0.2/test/typ/compute/construct-07.typ0000644000000000000000000000036307346545000017512 0ustar0000000000000000// Ref: true #let envelope = symbol( "🖂", ("stamped", "🖃"), ("stamped.pen", "🖆"), ("lightning", "🖄"), ("fly", "🖅"), ) #envelope #envelope.stamped #envelope.pen #envelope.stamped.pen #envelope.lightning #envelope.fly typst-0.8.0.2/test/typ/compute/construct-08.out0000644000000000000000000000002107346545000017475 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-08.typ0000644000000000000000000000007007346545000017506 0ustar0000000000000000// Error: 8-10 expected at least one variant #symbol() typst-0.8.0.2/test/typ/compute/construct-09.out0000644000000000000000000000577207346545000017520 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/construct-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/construct-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/construct-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/construct-09.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "str")) [ NormalArg (Literal (Int 123)) ]) , NormalArg (Literal (String "123")) ]) , SoftBreak , Code "typ/compute/construct-09.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "str")) [ NormalArg (Literal (Float 50.14)) ]) , NormalArg (Literal (String "50.14")) ]) , SoftBreak , Code "typ/compute/construct-09.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (GreaterThan (FuncCall (FieldAccess (Ident (Identifier "len")) (FuncCall (Ident (Identifier "str")) [ NormalArg (Divided (Literal (Int 10)) (Literal (Int 3))) ])) []) (Literal (Int 10))) , NormalArg (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/construct-09.typ0000644000000000000000000000016507346545000017514 0ustar0000000000000000// Test conversion to string. #test(str(123), "123") #test(str(50.14), "50.14") #test(str(10 / 3).len() > 10, true) typst-0.8.0.2/test/typ/compute/construct-10.out0000644000000000000000000000002107346545000017466 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/construct-10.typ0000644000000000000000000000012107346545000017474 0ustar0000000000000000// Error: 6-8 expected integer, float, label, or string, found content #str([]) typst-0.8.0.2/test/typ/compute/construct-11.out0000644000000000000000000000425107346545000017500 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/construct-11.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/construct-11.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/construct-11.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/construct-11.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "assert")) [ NormalArg (Equals (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 2)) , NormalArg (Literal (Int 5)) ]) (Array [ Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compute/construct-11.typ0000644000000000000000000000004207346545000017477 0ustar0000000000000000#assert(range(2, 5) == (2, 3, 4)) typst-0.8.0.2/test/typ/compute/data-00.out0000644000000000000000000000435107346545000016364 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/data-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "read")) [ NormalArg (Literal (String "/assets/files/hello.txt")) ])) , SoftBreak , Code "typ/compute/data-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "data")) , NormalArg (Literal (String "Hello, world!")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/data-00.typ0000644000000000000000000000015307346545000016365 0ustar0000000000000000// Test reading plain text files #let data = read("/assets/files/hello.txt") #test(data, "Hello, world!") typst-0.8.0.2/test/typ/compute/data-01.out0000644000000000000000000000002107346545000016353 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-01.typ0000644000000000000000000000015107346545000016364 0ustar0000000000000000// Error: 18-32 file not found (searched at /missing.txt) #let data = read("/assets/files/missing.txt") typst-0.8.0.2/test/typ/compute/data-02.out0000644000000000000000000000002107346545000016354 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-02.typ0000644000000000000000000000012307346545000016364 0ustar0000000000000000// Error: 18-28 file is not valid utf-8 #let data = read("/assets/files/bad.txt") typst-0.8.0.2/test/typ/compute/data-03.out0000644000000000000000000001037507346545000016372 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/compute/data-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Code "typ/compute/data-03.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "csv")) [ NormalArg (Literal (String "/assets/files/zoo.csv")) ])) , SoftBreak , Code "typ/compute/data-03.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "cells"))) (Plus (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "data"))) [ NormalArg (Literal (Int 0)) ])) [ NormalArg (Ident (Identifier "strong")) ]) (FuncCall (FieldAccess (Ident (Identifier "flatten")) (FuncCall (FieldAccess (Ident (Identifier "slice")) (Ident (Identifier "data"))) [ NormalArg (Literal (Int 1)) ])) []))) , SoftBreak , Code "typ/compute/data-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (FuncCall (FieldAccess (Ident (Identifier "len")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "data"))) [ NormalArg (Literal (Int 0)) ])) []) , SpreadArg (Ident (Identifier "cells")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), table(children: (strong(body: [Name]), strong(body: [Species]), strong(body: [Weight]), strong(body: [Length]), [Debby], [Rhinoceros], [1900kg], [390cm], [Fluffy], [Tiger], [115kg], [310cm], [Sleepy], [Dolphin], [150kg], [180cm]), columns: 4), parbreak() }) typst-0.8.0.2/test/typ/compute/data-03.typ0000644000000000000000000000032107346545000016365 0ustar0000000000000000// Test reading CSV data. // Ref: true #set page(width: auto) #let data = csv("/assets/files/zoo.csv") #let cells = data.at(0).map(strong) + data.slice(1).flatten() #table(columns: data.at(0).len(), ..cells) typst-0.8.0.2/test/typ/compute/data-04.out0000644000000000000000000000002107346545000016356 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-04.typ0000644000000000000000000000012307346545000016366 0ustar0000000000000000// Error: 6-16 file not found (searched at typ/compute/nope.csv) #csv("nope.csv") typst-0.8.0.2/test/typ/compute/data-05.out0000644000000000000000000000002107346545000016357 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-05.typ0000644000000000000000000000015607346545000016375 0ustar0000000000000000// Error: 6-16 failed to parse csv file: found 3 instead of 2 fields in line 3 #csv("/assets/files/bad.csv") typst-0.8.0.2/test/typ/compute/data-06.out0000644000000000000000000000644307346545000016376 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/data-06.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "json")) [ NormalArg (Literal (String "/assets/files/zoo.json")) ])) , SoftBreak , Code "typ/compute/data-06.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "data"))) []) , NormalArg (Literal (Int 3)) ]) , SoftBreak , Code "typ/compute/data-06.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "name")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "data"))) [ NormalArg (Literal (Int 0)) ])) , NormalArg (Literal (String "Debby")) ]) , SoftBreak , Code "typ/compute/data-06.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "weight")) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "data"))) [ NormalArg (Literal (Int 2)) ])) , NormalArg (Literal (Int 150)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/data-06.typ0000644000000000000000000000023207346545000016371 0ustar0000000000000000// Test reading JSON data. #let data = json("/assets/files/zoo.json") #test(data.len(), 3) #test(data.at(0).name, "Debby") #test(data.at(2).weight, 150) typst-0.8.0.2/test/typ/compute/data-07.out0000644000000000000000000000002107346545000016361 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-07.typ0000644000000000000000000000014207346545000016372 0ustar0000000000000000// Error: 7-18 failed to parse json file: syntax error in line 3 #json("/assets/files/bad.json") typst-0.8.0.2/test/typ/compute/data-08.out0000644000000000000000000001345707346545000016403 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/data-08.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "toml")) [ NormalArg (Literal (String "/assets/files/toml-types.toml")) ])) , SoftBreak , Code "typ/compute/data-08.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "string")) (Ident (Identifier "data"))) , NormalArg (Literal (String "wonderful")) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "integer")) (Ident (Identifier "data"))) , NormalArg (Literal (Int 42)) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "float")) (Ident (Identifier "data"))) , NormalArg (Literal (Float 3.14)) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "boolean")) (Ident (Identifier "data"))) , NormalArg (Literal (Boolean True)) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "date_time")) (Ident (Identifier "data"))) , NormalArg (Literal (String "2023-02-01T15:38:57Z")) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "array")) (Ident (Identifier "data"))) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (String "string")) , Reg (Literal (Float 3.0)) , Reg (Literal (Boolean False)) ]) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "inline_table")) (Ident (Identifier "data"))) , NormalArg (Dict [ Reg ( Literal (String "first") , Literal (String "amazing") ) , Reg ( Literal (String "second") , Literal (String "greater") ) ]) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "element")) (FieldAccess (Ident (Identifier "table")) (Ident (Identifier "data")))) , NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/compute/data-08.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "others")) (FieldAccess (Ident (Identifier "table")) (Ident (Identifier "data")))) , NormalArg (Array [ Reg (Literal (Boolean False)) , Reg (Literal (String "indeed")) , Reg (Literal (Int 7)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/data-08.typ0000644000000000000000000000064407346545000016402 0ustar0000000000000000// Test reading TOML data. #let data = toml("/assets/files/toml-types.toml") #test(data.string, "wonderful") #test(data.integer, 42) #test(data.float, 3.14) #test(data.boolean, true) #test(data.date_time, "2023-02-01T15:38:57Z") #test(data.array, (1, "string", 3.0, false)) #test(data.inline_table, ("first": "amazing", "second": "greater") ) #test(data.table.element, 5) #test(data.table.others, (false, "indeed", 7)) typst-0.8.0.2/test/typ/compute/data-09.out0000644000000000000000000000002107346545000016363 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-09.typ0000644000000000000000000000015207346545000016375 0ustar0000000000000000// Error: 7-18 failed to parse toml file: expected `.`, `=`, index 15-15 #toml("/assets/files/bad.toml") typst-0.8.0.2/test/typ/compute/data-10.out0000644000000000000000000001401507346545000016363 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-10.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-10.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-10.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/data-10.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "yaml")) [ NormalArg (Literal (String "/assets/files/yaml-types.yaml")) ])) , SoftBreak , Code "typ/compute/data-10.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "data"))) []) , NormalArg (Literal (Int 7)) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "null_key")) (Ident (Identifier "data"))) , NormalArg (Array [ Reg (Literal None) , Reg (Literal None) ]) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "string")) (Ident (Identifier "data"))) , NormalArg (Literal (String "text")) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "integer")) (Ident (Identifier "data"))) , NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "float")) (Ident (Identifier "data"))) , NormalArg (Literal (Float 1.12)) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "mapping")) (Ident (Identifier "data"))) , NormalArg (Dict [ Reg ( Literal (String "1") , Literal (String "one") ) , Reg ( Literal (String "2") , Literal (String "two") ) ]) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "seq")) (Ident (Identifier "data"))) , NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FieldAccess (Ident (Identifier "bool")) (Ident (Identifier "data"))) , NormalArg (Literal (Boolean False)) ]) , SoftBreak , Code "typ/compute/data-10.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "contains")) (FuncCall (FieldAccess (Ident (Identifier "keys")) (Ident (Identifier "data"))) [])) [ NormalArg (Literal (String "true")) ]) , NormalArg (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [❌(]), text(body: [8]), text(body: [ /= ]), text(body: [7]), text(body: [)]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [true]), text(body: [ /= ]), text(body: [false]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/compute/data-10.typ0000644000000000000000000000053207346545000016367 0ustar0000000000000000// Test reading YAML data #let data = yaml("/assets/files/yaml-types.yaml") #test(data.len(), 7) #test(data.null_key, (none, none)) #test(data.string, "text") #test(data.integer, 5) #test(data.float, 1.12) #test(data.mapping, ("1": "one", "2": "two")) #test(data.seq, (1,2,3,4)) #test(data.bool, false) #test(data.keys().contains("true"), false) typst-0.8.0.2/test/typ/compute/data-11.out0000644000000000000000000000002107346545000016354 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-11.typ0000644000000000000000000000022107346545000016363 0ustar0000000000000000// Error: 7-18 failed to parse yaml file: while parsing a flow sequence, expected ',' or ']' at line 2 column 1 #yaml("/assets/files/bad.yaml") typst-0.8.0.2/test/typ/compute/data-12.out0000644000000000000000000001413207346545000016365 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/data-12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/data-12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/data-12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/data-12.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "data"))) (FuncCall (Ident (Identifier "xml")) [ NormalArg (Literal (String "/assets/files/data.xml")) ])) , SoftBreak , Code "typ/compute/data-12.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "data")) , NormalArg (Array [ Reg (Dict [ Reg ( Ident (Identifier "tag") , Literal (String "data") ) , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg ( Ident (Identifier "children") , Array [ Reg (Literal (String "\n ")) , Reg (Dict [ Reg ( Ident (Identifier "tag") , Literal (String "hello") ) , Reg ( Ident (Identifier "attrs") , Dict [ Reg ( Ident (Identifier "name") , Literal (String "hi") ) ] ) , Reg ( Ident (Identifier "children") , Array [ Reg (Literal (String "1")) ] ) ]) , Reg (Literal (String "\n ")) , Reg (Dict [ Reg ( Ident (Identifier "tag") , Literal (String "data") ) , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg ( Ident (Identifier "children") , Array [ Reg (Literal (String "\n ")) , Reg (Dict [ Reg ( Ident (Identifier "tag") , Literal (String "hello") ) , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg ( Ident (Identifier "children") , Array [ Reg (Literal (String "World")) ] ) ]) , Reg (Literal (String "\n ")) , Reg (Dict [ Reg ( Ident (Identifier "tag") , Literal (String "hello") ) , Reg ( Ident (Identifier "attrs") , Dict [] ) , Reg ( Ident (Identifier "children") , Array [ Reg (Literal (String "World")) ] ) ]) , Reg (Literal (String "\n ")) ] ) ]) , Reg (Literal (String "\n")) ] ) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/data-12.typ0000644000000000000000000000073307346545000016374 0ustar0000000000000000// Test reading XML data. #let data = xml("/assets/files/data.xml") #test(data, (( tag: "data", attrs: (:), children: ( "\n ", (tag: "hello", attrs: (name: "hi"), children: ("1",)), "\n ", ( tag: "data", attrs: (:), children: ( "\n ", (tag: "hello", attrs: (:), children: ("World",)), "\n ", (tag: "hello", attrs: (:), children: ("World",)), "\n ", ), ), "\n", ), ),)) typst-0.8.0.2/test/typ/compute/data-13.out0000644000000000000000000000002107346545000016356 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/data-13.typ0000644000000000000000000000017507346545000016375 0ustar0000000000000000// Error: 6-16 failed to parse xml file: found closing tag 'data' instead of 'hello' in line 3 #xml("/assets/files/bad.xml") typst-0.8.0.2/test/typ/compute/foundations-00.out0000644000000000000000000000551007346545000020002 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/foundations-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "integer")) ]) , SoftBreak , Code "typ/compute/foundations-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "ltr")) ]) , NormalArg (Literal (String "direction")) ]) , SoftBreak , Code "typ/compute/foundations-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Divided (Literal (Int 10)) (Literal (Int 3))) ]) , NormalArg (Literal (String "float")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-00.typ0000644000000000000000000000012607346545000020005 0ustar0000000000000000#test(type(1), "integer") #test(type(ltr), "direction") #test(type(10 / 3), "float") typst-0.8.0.2/test/typ/compute/foundations-01.out0000644000000000000000000000516107346545000020005 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/foundations-01.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "ltr")) ]) , NormalArg (Literal (String "ltr")) ]) , SoftBreak , Code "typ/compute/foundations-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "repr")) [ NormalArg (Array [ Reg (Literal (Int 1)) , Reg (Literal (Int 2)) , Reg (Literal (Boolean False)) ]) ]) , NormalArg (Literal (String "(1, 2, false)")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-01.typ0000644000000000000000000000010707346545000020005 0ustar0000000000000000#test(repr(ltr), "ltr") #test(repr((1, 2, false, )), "(1, 2, false)") typst-0.8.0.2/test/typ/compute/foundations-02.out0000644000000000000000000000002107346545000017774 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-02.typ0000644000000000000000000000006007346545000020004 0ustar0000000000000000// Test panic. // Error: 7-9 panicked #panic() typst-0.8.0.2/test/typ/compute/foundations-03.out0000644000000000000000000000002107346545000017775 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-03.typ0000644000000000000000000000007607346545000020014 0ustar0000000000000000// Test panic. // Error: 7-12 panicked with: 123 #panic(123) typst-0.8.0.2/test/typ/compute/foundations-04.out0000644000000000000000000000002107346545000017776 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-04.typ0000644000000000000000000000012607346545000020011 0ustar0000000000000000// Test panic. // Error: 7-24 panicked with: "this is wrong" #panic("this is wrong") typst-0.8.0.2/test/typ/compute/foundations-05.out0000644000000000000000000000002107346545000017777 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-05.typ0000644000000000000000000000011507346545000020010 0ustar0000000000000000// Test failing assertions. // Error: 8-16 assertion failed #assert(1 == 2) typst-0.8.0.2/test/typ/compute/foundations-06.out0000644000000000000000000000002107346545000020000 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-06.typ0000644000000000000000000000021107346545000020006 0ustar0000000000000000// Test failing assertions. // Error: 8-51 assertion failed: two is smaller than one #assert(2 < 1, message: "two is smaller than one") typst-0.8.0.2/test/typ/compute/foundations-07.out0000644000000000000000000000002107346545000020001 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-07.typ0000644000000000000000000000013307346545000020012 0ustar0000000000000000// Test failing assertions. // Error: 9-15 expected boolean, found string #assert("true") typst-0.8.0.2/test/typ/compute/foundations-08.out0000644000000000000000000000002107346545000020002 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-08.typ0000644000000000000000000000017007346545000020014 0ustar0000000000000000// Test failing assertions. // Error: 11-19 equality assertion failed: value 10 was not equal to 11 #assert.eq(10, 11) typst-0.8.0.2/test/typ/compute/foundations-09.out0000644000000000000000000000002107346545000020003 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-09.typ0000644000000000000000000000022707346545000020020 0ustar0000000000000000// Test failing assertions. // Error: 11-55 equality assertion failed: 10 and 12 are not equal #assert.eq(10, 12, message: "10 and 12 are not equal") typst-0.8.0.2/test/typ/compute/foundations-10.out0000644000000000000000000000002107346545000017773 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-10.typ0000644000000000000000000000016607346545000020012 0ustar0000000000000000// Test failing assertions. // Error: 11-19 inequality assertion failed: value 11 was equal to 11 #assert.ne(11, 11) typst-0.8.0.2/test/typ/compute/foundations-11.out0000644000000000000000000000002107346545000017774 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-11.typ0000644000000000000000000000023507346545000020010 0ustar0000000000000000// Test failing assertions. // Error: 11-57 inequality assertion failed: must be different from 11 #assert.ne(11, 11, message: "must be different from 11") typst-0.8.0.2/test/typ/compute/foundations-12.out0000644000000000000000000000473407346545000020014 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/foundations-12.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "assert")) [ NormalArg (GreaterThan (Literal (Int 5)) (Literal (Int 3))) ]) , SoftBreak , Code "typ/compute/foundations-12.typ" ( line 4 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "assert"))) [ NormalArg (Literal (Int 15)) , NormalArg (Literal (Int 15)) ]) , SoftBreak , Code "typ/compute/foundations-12.typ" ( line 5 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "ne")) (Ident (Identifier "assert"))) [ NormalArg (Literal (Int 10)) , NormalArg (Literal (Int 12)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-12.typ0000644000000000000000000000012507346545000020007 0ustar0000000000000000// Test successful assertions. #assert(5 > 3) #assert.eq(15, 15) #assert.ne(10, 12) typst-0.8.0.2/test/typ/compute/foundations-13.out0000644000000000000000000000552207346545000020011 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-13.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-13.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-13.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/compute/foundations-13.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Literal (Int 1)) ]) , NormalArg (Literal (String "integer")) ]) , SoftBreak , Code "typ/compute/foundations-13.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "ltr")) ]) , NormalArg (Literal (String "direction")) ]) , SoftBreak , Code "typ/compute/foundations-13.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Divided (Literal (Int 10)) (Literal (Int 3))) ]) , NormalArg (Literal (String "float")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-13.typ0000644000000000000000000000016307346545000020012 0ustar0000000000000000// Test the `type` function. #test(type(1), "integer") #test(type(ltr), "direction") #test(type(10 / 3), "float") typst-0.8.0.2/test/typ/compute/foundations-14.out0000644000000000000000000000375107346545000020014 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-14.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-14.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-14.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/foundations-14.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "eval")) [ NormalArg (Plus (Literal (String "[_Hello")) (Literal (String " World!_]"))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), emph(body: text(body: [Hello World!])), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-14.typ0000644000000000000000000000004007346545000020005 0ustar0000000000000000#eval("[_Hello" + " World!_]") typst-0.8.0.2/test/typ/compute/foundations-15.out0000644000000000000000000000002107346545000020000 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-15.typ0000644000000000000000000000006107346545000020011 0ustar0000000000000000// Error: 7-12 expected identifier #eval("let") typst-0.8.0.2/test/typ/compute/foundations-16.out0000644000000000000000000000604607346545000020016 0ustar0000000000000000--- parse tree --- [ Code "typ/compute/foundations-16.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/compute/foundations-16.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/compute/foundations-16.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/compute/foundations-16.typ" ( line 2 , column 2 ) (Show (Just (Ident (Identifier "raw"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "PT Sans")) , NormalArg (FuncCall (Ident (Identifier "eval")) [ NormalArg (Plus (Plus (Literal (String "[")) (FieldAccess (Ident (Identifier "text")) (Ident (Identifier "it")))) (Literal (String "]"))) ]) ]))) , ParBreak , Text "Interacting" , SoftBreak , RawBlock "" "#set text(blue)\nBlue #move(dy: -0.15em)[\127754]\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Interacting ]), text(body: { text(body: [ Blue ], color: rgb(0%,45%,85%,100%)), move(body: text(body: [🌊], color: rgb(0%,45%,85%,100%)), dy: -0.15em), parbreak() }, font: "PT Sans"), parbreak() }) typst-0.8.0.2/test/typ/compute/foundations-16.typ0000644000000000000000000000020607346545000020013 0ustar0000000000000000#show raw: it => text(font: "PT Sans", eval("[" + it.text + "]")) Interacting ``` #set text(blue) Blue #move(dy: -0.15em)[🌊] ``` typst-0.8.0.2/test/typ/compute/foundations-17.out0000644000000000000000000000002107346545000020002 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-17.typ0000644000000000000000000000010207346545000020007 0ustar0000000000000000// Error: 7-17 cannot continue outside of loop #eval("continue") typst-0.8.0.2/test/typ/compute/foundations-18.out0000644000000000000000000000002107346545000020003 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-18.typ0000644000000000000000000000012507346545000020015 0ustar0000000000000000// Error: 7-32 cannot access file system from here #eval("include \"../coma.typ\"") typst-0.8.0.2/test/typ/compute/foundations-19.out0000644000000000000000000000002107346545000020004 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-19.typ0000644000000000000000000000012307346545000020014 0ustar0000000000000000// Error: 7-30 cannot access file system from here #eval("image(\"/tiger.jpg\")") typst-0.8.0.2/test/typ/compute/foundations-20.out0000644000000000000000000000002107346545000017774 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-20.typ0000644000000000000000000000017607346545000020014 0ustar0000000000000000// Error: 23-30 cannot access file system from here #show raw: it => eval(it.text) ``` image("/assets/files/tiger.jpg") ``` typst-0.8.0.2/test/typ/compute/foundations-21.out0000644000000000000000000000002107346545000017775 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-21.typ0000644000000000000000000000026407346545000020013 0ustar0000000000000000// Error: 23-42 cannot access file system from here #show raw: it => eval("[" + it.text + "]") ``` #show emph: _ => image("/assets/files/giraffe.jpg") _No relative giraffe!_ ``` typst-0.8.0.2/test/typ/compute/foundations-22.out0000644000000000000000000000002107346545000017776 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/compute/foundations-22.typ0000644000000000000000000000007507346545000020014 0ustar0000000000000000// Error: 7-12 expected semicolon or line break #eval("1 2") typst-0.8.0.2/test/typ/layout/0000755000000000000000000000000007346545000014343 5ustar0000000000000000typst-0.8.0.2/test/typ/layout/align-00.out0000644000000000000000000001466407346545000016416 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/align-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/align-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/align-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/align-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/layout/align-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "left")) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 15.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 15.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) ]) ]) , SoftBreak , Code "typ/layout/align-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) ]) ]) , SoftBreak , Code "typ/layout/align-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) , NormalArg (FuncCall (Ident (Identifier "stack")) [ NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), stack(children: (align(alignment: left, body: square(fill: rgb(13%,61%,67%,100%), size: 15.0pt)), align(alignment: center, body: square(fill: rgb(13%,61%,67%,100%), size: 20.0pt)), align(alignment: right, body: square(fill: rgb(13%,61%,67%,100%), size: 15.0pt))), dir: ltr), text(body: [ ]), align(alignment: Axes(center, horizon), body: rect(fill: rgb(13%,61%,67%,100%), height: 10.0pt)), text(body: [ ]), align(alignment: bottom, body: stack(children: (align(alignment: center, body: rect(fill: rgb(18%,80%,25%,100%), height: 10.0pt)), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, width: 100%)))), parbreak() }) typst-0.8.0.2/test/typ/layout/align-00.typ0000644000000000000000000000057307346545000016415 0ustar0000000000000000#set page(height: 100pt) #stack(dir: ltr, align(left, square(size: 15pt, fill: eastern)), align(center, square(size: 20pt, fill: eastern)), align(right, square(size: 15pt, fill: eastern)), ) #align(center + horizon, rect(fill: eastern, height: 10pt)) #align(bottom, stack( align(center, rect(fill: green, height: 10pt)), rect(fill: red, height: 10pt, width: 100%), )) typst-0.8.0.2/test/typ/layout/align-01.out0000644000000000000000000000445007346545000016407 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/align-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/align-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/align-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/align-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ SoftBreak , Text "Lorem" , Space , Text "Ipsum" , ParBreak , Text "Dolor" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), align(alignment: center, body: { text(body: [ Lorem Ipsum]), parbreak(), text(body: [Dolor]), parbreak() }), parbreak() }) typst-0.8.0.2/test/typ/layout/align-01.typ0000644000000000000000000000015607346545000016413 0ustar0000000000000000// Test that multiple paragraphs in subflow also respect alignment. #align(center)[ Lorem Ipsum Dolor ] typst-0.8.0.2/test/typ/layout/align-02.out0000644000000000000000000001032607346545000016407 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/align-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/align-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/align-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/align-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rotate")) [ NormalArg (Negated (Literal (Numeric 30.0 Deg))) , KeyValArg (Identifier "origin") (Plus (Ident (Identifier "end")) (Ident (Identifier "horizon"))) , BlockArg [ Text "Hello" ] ]) , ParBreak , Code "typ/layout/align-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) ]) , SoftBreak , Code "typ/layout/align-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "start")) , BlockArg [ Text "Start" ] ]) , SoftBreak , Code "typ/layout/align-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "end")) , BlockArg [ Text "Ende" ] ]) , ParBreak , Code "typ/layout/align-02.typ" ( line 9 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) ]) , SoftBreak , Code "typ/layout/align-02.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "start")) , BlockArg [ Text "\1610\1576\1583\1571" ] ]) , SoftBreak , Code "typ/layout/align-02.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "end")) , BlockArg [ Text "\1606\1607\1575\1610\1577" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rotate(angle: -30.0deg, body: text(body: [Hello]), origin: Axes(end, horizon)), parbreak(), text(body: [ ], lang: "de"), align(alignment: start, body: text(body: [Start], lang: "de")), text(body: [ ], lang: "de"), align(alignment: end, body: text(body: [Ende], lang: "de")), parbreak(), text(body: [ ], lang: "ar"), align(alignment: start, body: text(body: [يبدأ], lang: "ar")), text(body: [ ], lang: "ar"), align(alignment: end, body: text(body: [نهاية], lang: "ar")), parbreak() }) typst-0.8.0.2/test/typ/layout/align-02.typ0000644000000000000000000000032507346545000016412 0ustar0000000000000000// Test start and end alignment. #rotate(-30deg, origin: end + horizon)[Hello] #set text(lang: "de") #align(start)[Start] #align(end)[Ende] #set text(lang: "ar") #align(start)[يبدأ] #align(end)[نهاية] typst-0.8.0.2/test/typ/layout/align-03.out0000644000000000000000000000605107346545000016410 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/align-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/align-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/align-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/align-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "center")) ]) , NormalArg (Literal (String "alignment")) ]) , SoftBreak , Code "typ/layout/align-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Ident (Identifier "horizon")) ]) , NormalArg (Literal (String "alignment")) ]) , SoftBreak , Code "typ/layout/align-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "type")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) ]) , NormalArg (Literal (String "2d alignment")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [❌(]), text(body: [alignment]), text(body: [ /= ]), text(body: ["2d alignment"]), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/layout/align-03.typ0000644000000000000000000000020007346545000016403 0ustar0000000000000000// Ref: false #test(type(center), "alignment") #test(type(horizon), "alignment") #test(type(center + horizon), "2d alignment") typst-0.8.0.2/test/typ/layout/align-04.out0000644000000000000000000000002107346545000016400 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/align-04.typ0000644000000000000000000000012107346545000016406 0ustar0000000000000000// Error: 8-22 cannot add two horizontal alignments #align(center + right, [A]) typst-0.8.0.2/test/typ/layout/align-05.out0000644000000000000000000000002107346545000016401 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/align-05.typ0000644000000000000000000000011407346545000016411 0ustar0000000000000000// Error: 8-20 cannot add two vertical alignments #align(top + bottom, [A]) typst-0.8.0.2/test/typ/layout/block-sizing-00.out0000644000000000000000000001013507346545000017704 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/block-sizing-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/block-sizing-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/block-sizing-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/block-sizing-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/layout/block-sizing-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , ParBreak , Code "typ/layout/block-sizing-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 10)) ]) , SoftBreak , Code "typ/layout/block-sizing-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "aqua")) ]) , SoftBreak , Code "typ/layout/block-sizing-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/layout/block-sizing-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "breakable") (Literal (Boolean False)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "inset") (Literal (Numeric 4.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "aqua")) , NormalArg (Plus (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 8)) ]) (FuncCall (Ident (Identifier "colbreak")) [])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), text(body: [ ]), block(fill: rgb(49%,85%,100%,100%), height: 60.0pt, width: 80%), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur]), text(body: [ ]), block(body: { [Lorem ipsum dolor sit amet, consectetur adipiscing elit,], colbreak() }, breakable: false, fill: rgb(49%,85%,100%,100%), inset: 4.0pt, width: 100%), parbreak() }) typst-0.8.0.2/test/typ/layout/block-sizing-00.typ0000644000000000000000000000032207346545000017706 0ustar0000000000000000#set page(height: 100pt) #set align(center) #lorem(10) #block(width: 80%, height: 60pt, fill: aqua) #lorem(6) #block( breakable: false, width: 100%, inset: 4pt, fill: aqua, lorem(8) + colbreak(), ) typst-0.8.0.2/test/typ/layout/block-sizing-01.out0000644000000000000000000001000207346545000017676 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/block-sizing-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/block-sizing-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/block-sizing-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/layout/block-sizing-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 120.0 Pt)) ]) , SoftBreak , Code "typ/layout/block-sizing-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "layout")) [ NormalArg (FuncExpr [ NormalParam (Identifier "size") ] (Block (Content [ SoftBreak , Text "This" , Space , Text "block" , Space , Text "has" , Space , Text "a" , Space , Text "width" , Space , Text "of" , Space , Code "typ/layout/block-sizing-01.typ" ( line 6 , column 30 ) (FieldAccess (Ident (Identifier "width")) (Ident (Identifier "size"))) , Space , Text "and" , Space , Text "height" , Space , Text "of" , Space , Code "typ/layout/block-sizing-01.typ" ( line 6 , column 56 ) (FieldAccess (Ident (Identifier "height")) (Ident (Identifier "size"))) , ParBreak ]))) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), block(body: layout(func: ), height: 80.0pt, width: 60.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/block-sizing-01.typ0000644000000000000000000000034607346545000017715 0ustar0000000000000000// Layout inside a block with certain dimensions should provide those dimensions. #set page(height: 120pt) #block(width: 60pt, height: 80pt, layout(size => [ This block has a width of #size.width and height of #size.height ])) typst-0.8.0.2/test/typ/layout/block-spacing-00.out0000644000000000000000000000470007346545000020026 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/block-spacing-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/block-spacing-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/block-spacing-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/block-spacing-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 10.0 Pt)) ]) , SoftBreak , Text "Hello" , ParBreak , Text "There" , ParBreak , Code "typ/layout/block-spacing-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 20.0 Pt)) , BlockArg [ Text "Further" , Space , Text "down" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hello]), parbreak(), text(body: [There]), parbreak(), block(body: text(body: [Further down]), spacing: 20.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/block-spacing-00.typ0000644000000000000000000000011407346545000020026 0ustar0000000000000000#set block(spacing: 10pt) Hello There #block(spacing: 20pt)[Further down] typst-0.8.0.2/test/typ/layout/clip-00.out0000644000000000000000000001023607346545000016242 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/clip-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/clip-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/clip-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Hello" , Space , Code "typ/layout/clip-00.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean False)) , BlockArg [ Code "typ/layout/clip-00.typ" ( line 3 , column 51 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 3.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 3.0 Em)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ] ]) , SoftBreak , Text "world" , Space , Text "1" , ParBreak , Text "Space" , ParBreak , Text "Hello" , Space , Code "typ/layout/clip-00.typ" ( line 8 , column 8 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean True)) , BlockArg [ Code "typ/layout/clip-00.typ" ( line 8 , column 50 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 3.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 3.0 Em)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ] ]) , Space , SoftBreak , Text "world" , Space , Text "2" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello ]), box(body: rect(fill: rgb(100%,25%,21%,100%), height: 3.0em, width: 3.0em), clip: false, height: 1.0em, width: 1.0em), text(body: [ world 1]), parbreak(), text(body: [Space]), parbreak(), text(body: [Hello ]), box(body: rect(fill: rgb(100%,25%,21%,100%), height: 3.0em, width: 3.0em), clip: true, height: 1.0em, width: 1.0em), text(body: [ world 2]), parbreak() }) typst-0.8.0.2/test/typ/layout/clip-00.typ0000644000000000000000000000036707346545000016253 0ustar0000000000000000// Test box clipping with a rectangle Hello #box(width: 1em, height: 1em, clip: false)[#rect(width: 3em, height: 3em, fill: red)] world 1 Space Hello #box(width: 1em, height: 1em, clip: true)[#rect(width: 3em, height: 3em, fill: red)] world 2 typst-0.8.0.2/test/typ/layout/clip-01.out0000644000000000000000000001126407346545000016245 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/clip-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/clip-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/clip-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/clip-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean False)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "black"))) , BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , ParBreak ] ]) , ParBreak , Code "typ/layout/clip-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 2.0 Em)) ]) , ParBreak , Code "typ/layout/clip-01.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean True)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "black"))) , BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , SoftBreak , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), block(body: { text(body: [ But, soft! what light through ]), parbreak() }, clip: false, height: 2.0em, stroke: (thickness: 1.0pt, color: rgb(0%,0%,0%,100%)), width: 5.0em), parbreak(), v(amount: 2.0em), parbreak(), block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), parbreak() }, clip: true, height: 2.0em, stroke: (thickness: 1.0pt, color: rgb(0%,0%,0%,100%)), width: 5.0em), parbreak() }) typst-0.8.0.2/test/typ/layout/clip-01.typ0000644000000000000000000000045107346545000016246 0ustar0000000000000000// Test cliping text #block(width: 5em, height: 2em, clip: false, stroke: 1pt + black)[ But, soft! what light through ] #v(2em) #block(width: 5em, height: 2em, clip: true, stroke: 1pt + black)[ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. ] typst-0.8.0.2/test/typ/layout/clip-02.out0000644000000000000000000000644407346545000016252 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/clip-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/clip-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/clip-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Emoji" , Text ":" , Space , Code "typ/layout/clip-02.typ" ( line 3 , column 9 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "height") (Literal (Numeric 0.5 Em)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "black"))) , BlockArg [ Text "\128042," , Space , Text "\127755," , Space , Text "\127966" ] ]) , ParBreak , Text "Emoji" , Text ":" , Space , Code "typ/layout/clip-02.typ" ( line 5 , column 9 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "height") (Literal (Numeric 0.5 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean True)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "black"))) , BlockArg [ Text "\128042," , Space , Text "\127755," , Space , Text "\127966" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Emoji: ]), box(body: text(body: [🐪, 🌋, 🏞]), height: 0.5em, stroke: (thickness: 1.0pt, color: rgb(0%,0%,0%,100%))), parbreak(), text(body: [Emoji: ]), box(body: text(body: [🐪, 🌋, 🏞]), clip: true, height: 0.5em, stroke: (thickness: 1.0pt, color: rgb(0%,0%,0%,100%))), parbreak() }) typst-0.8.0.2/test/typ/layout/clip-02.typ0000644000000000000000000000025507346545000016251 0ustar0000000000000000// Test cliping svg glyphs Emoji: #box(height: 0.5em, stroke: 1pt + black)[🐪, 🌋, 🏞] Emoji: #box(height: 0.5em, clip: true, stroke: 1pt + black)[🐪, 🌋, 🏞] typst-0.8.0.2/test/typ/layout/clip-03.out0000644000000000000000000000713607346545000016252 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/clip-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/clip-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/clip-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/layout/clip-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , ParBreak , Text "First!" , ParBreak , Code "typ/layout/clip-03.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "height") (Literal (Numeric 4.0 Em)) , KeyValArg (Identifier "clip") (Literal (Boolean True)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "black"))) , BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , SoftBreak , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [First!]), parbreak(), block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), parbreak() }, clip: true, height: 4.0em, stroke: (thickness: 1.0pt, color: rgb(0%,0%,0%,100%))), parbreak() }) typst-0.8.0.2/test/typ/layout/clip-03.typ0000644000000000000000000000034507346545000016252 0ustar0000000000000000// Test block clipping over multiple pages. #set page(height: 60pt) First! #block(height: 4em, clip: true, stroke: 1pt + black)[ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. ] typst-0.8.0.2/test/typ/layout/columns-00.out0000644000000000000000000001310107346545000016765 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 3.25 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 2)) ]) , SoftBreak , Code "typ/layout/columns-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) , KeyValArg (Identifier "font") (Array [ Reg (Literal (String "Noto Sans Arabic")) , Reg (Literal (String "Linux Libertine")) ]) ]) , SoftBreak , Code "typ/layout/columns-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "columns")) [ KeyValArg (Identifier "gutter") (Literal (Numeric 30.0 Pt)) ]) , ParBreak , Code "typ/layout/columns-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "height") (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 6.0 Pt)) ]) , Space , Text "\1608\1578\1581\1601\1610\1586" , SoftBreak , Text "\1575\1604\1593\1583\1610\1583" , Space , Text "\1605\1606" , Space , Text "\1575\1604\1578\1601\1575\1593\1604\1575\1578" , Space , Text "\1575\1604\1603\1610\1605\1610\1575\1574\1610\1577" , Text "." , Space , Text "(" , Text "DNA)" , Space , Text "\1605\1606" , Space , Text "\1571\1607\1605" , Space , Text "\1575\1604\1571\1581\1605\1575\1590" , Space , Text "\1575\1604\1606\1608\1608\1610\1577" , Space , Text "\1575\1604\1578\1610" , Space , Text "\1578\1615\1588\1603\1616\1617\1604" , SoftBreak , Text "\1573\1604\1609" , Space , Text "\1580\1575\1606\1576" , Space , Text "\1603\1604" , Space , Text "\1605\1606" , Space , Text "\1575\1604\1576\1585\1608\1578\1610\1606\1575\1578" , Space , Text "\1608\1575\1604\1604\1610\1576\1610\1583\1575\1578" , Space , Text "\1608\1575\1604\1587\1603\1585\1610\1575\1578" , Space , Text "\1575\1604\1605\1578\1593\1583\1583\1577" , SoftBreak , Code "typ/layout/columns-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "height") (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 6.0 Pt)) ]) , SoftBreak , Text "\1575\1604\1580\1586\1610\1574\1575\1578" , Space , Text "\1575\1604\1590\1582\1605\1577" , Space , Text "\1575\1604\1571\1585\1576\1593\1577" , Space , Text "\1575\1604\1590\1585\1608\1585\1610\1577" , Space , Text "\1604\1604\1581\1610\1575\1577" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar"), parbreak(), box(fill: rgb(18%,80%,25%,100%), height: 8.0pt, width: 6.0pt), text(body: [ وتحفيز العديد من التفاعلات الكيميائية. (DNA) من أهم الأحماض النووية التي تُشكِّل إلى جانب كل من البروتينات والليبيدات والسكريات المتعددة ], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar"), box(fill: rgb(13%,61%,67%,100%), height: 8.0pt, width: 6.0pt), text(body: [ الجزيئات الضخمة الأربعة الضرورية للحياة.], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar"), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-00.typ0000644000000000000000000000114007346545000016772 0ustar0000000000000000// Test normal operation and RTL directions. #set page(height: 3.25cm, width: 7.05cm, columns: 2) #set text(lang: "ar", font: ("Noto Sans Arabic", "Linux Libertine")) #set columns(gutter: 30pt) #box(fill: green, height: 8pt, width: 6pt) وتحفيز العديد من التفاعلات الكيميائية. (DNA) من أهم الأحماض النووية التي تُشكِّل إلى جانب كل من البروتينات والليبيدات والسكريات المتعددة #box(fill: eastern, height: 8pt, width: 6pt) الجزيئات الضخمة الأربعة الضرورية للحياة. typst-0.8.0.2/test/typ/layout/columns-01.out0000644000000000000000000001244607346545000017001 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , ParBreak , Code "typ/layout/columns-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "inset") (Literal (Numeric 8.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "columns")) [ NormalArg (Literal (Int 2)) , NormalArg (Block (Content [ SoftBreak , Text "A" , Space , Text "special" , Space , Text "plight" , Space , Text "has" , Space , Text "befallen" , Space , Text "our" , Space , Text "document" , Text "." , SoftBreak , Text "Columns" , Space , Text "in" , Space , Text "text" , Space , Text "boxes" , Space , Text "reigned" , Space , Text "down" , Space , Text "unto" , Space , Text "the" , Space , Text "soil" , SoftBreak , Text "to" , Space , Text "waste" , Space , Text "a" , Space , Text "year" , Quote '\'' , Text "s" , Space , Text "crop" , Space , Text "of" , Space , Text "rich" , Space , Text "layouts" , Text "." , SoftBreak , Text "The" , Space , Text "columns" , Space , Text "at" , Space , Text "least" , Space , Text "were" , Space , Text "graciously" , Space , Text "balanced" , Text "." , ParBreak ])) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), rect(body: columns(body: { text(body: [ A special plight has befallen our document. Columns in text boxes reigned down unto the soil to waste a year’s crop of rich layouts. The columns at least were graciously balanced.]), parbreak() }, count: 2), height: 100.0pt, inset: 8.0pt, width: 180.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-01.typ0000644000000000000000000000047507346545000017005 0ustar0000000000000000// Test the `columns` function. #set page(width: auto) #rect(width: 180pt, height: 100pt, inset: 8pt, columns(2, [ A special plight has befallen our document. Columns in text boxes reigned down unto the soil to waste a year's crop of rich layouts. The columns at least were graciously balanced. ])) typst-0.8.0.2/test/typ/layout/columns-02.out0000644000000000000000000001075107346545000016777 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 5.0 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 2)) ]) , ParBreak , Text "Lorem" , Space , Text "ipsum" , Space , Text "dolor" , Space , Text "sit" , Space , Text "amet" , Space , Text "is" , Space , Text "a" , Space , Text "common" , Space , Text "blind" , Space , Text "text" , SoftBreak , Text "and" , Space , Text "I" , Space , Text "again" , Space , Text "am" , Space , Text "in" , Space , Text "need" , Space , Text "of" , Space , Text "filling" , Space , Text "up" , Space , Text "this" , Space , Text "page" , SoftBreak , Code "typ/layout/columns-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 12.0 Pt)) ]) ]) , SoftBreak , Code "typ/layout/columns-02.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "colbreak")) []) , ParBreak , Text "so" , Space , Text "I" , Quote '\'' , Text "m" , Space , Text "returning" , Space , Text "to" , Space , Text "this" , Space , Text "trusty" , Space , Text "tool" , Space , Text "of" , Space , Text "tangible" , Space , Text "terror" , Text "." , SoftBreak , Text "Sure," , Space , Text "it" , Space , Text "is" , Space , Text "not" , Space , Text "the" , Space , Text "most" , Space , Text "creative" , Space , Text "way" , Space , Text "of" , Space , Text "filling" , Space , Text "up" , SoftBreak , Text "a" , Space , Text "page" , Space , Text "for" , Space , Text "a" , Space , Text "test" , Space , Text "but" , Space , Text "it" , Space , Text "does" , Space , Text "get" , Space , Text "the" , Space , Text "job" , Space , Text "done" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet is a common blind text and I again am in need of filling up this page ]), align(alignment: bottom, body: rect(fill: rgb(13%,61%,67%,100%), height: 12.0pt, width: 100%)), text(body: [ ]), colbreak(), parbreak(), text(body: [so I’m returning to this trusty tool of tangible terror. Sure, it is not the most creative way of filling up a page for a test but it does get the job done.]), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-02.typ0000644000000000000000000000064007346545000017000 0ustar0000000000000000// Test columns for a sized page. #set page(height: 5cm, width: 7.05cm, columns: 2) Lorem ipsum dolor sit amet is a common blind text and I again am in need of filling up this page #align(bottom, rect(fill: eastern, width: 100%, height: 12pt)) #colbreak() so I'm returning to this trusty tool of tangible terror. Sure, it is not the most creative way of filling up a page for a test but it does get the job done. typst-0.8.0.2/test/typ/layout/columns-03.out0000644000000000000000000000661307346545000017002 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 2.5 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) ]) , ParBreak , Code "typ/layout/columns-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 6.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "columns")) [ NormalArg (Literal (Int 2)) , NormalArg (Block (Content [ SoftBreak , Text "ABC" , Space , HardBreak , Text "BCD" , SoftBreak , Code "typ/layout/columns-03.typ" ( line 8 , column 6 ) (FuncCall (Ident (Identifier "colbreak")) []) , SoftBreak , Text "DEF" , ParBreak ])) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), rect(body: columns(body: { text(body: [ ABC ]), linebreak(), text(body: [BCD ]), colbreak(), text(body: [ DEF]), parbreak() }, count: 2), inset: 6.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-03.typ0000644000000000000000000000022707346545000017002 0ustar0000000000000000// Test the expansion behavior. #set page(height: 2.5cm, width: 7.05cm) #rect(inset: 6pt, columns(2, [ ABC \ BCD #colbreak() DEF ])) typst-0.8.0.2/test/typ/layout/columns-04.out0000644000000000000000000000757407346545000017012 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 3.25 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 3)) ]) , SoftBreak , Code "typ/layout/columns-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "columns")) [ KeyValArg (Identifier "gutter") (Literal (Numeric 30.0 Pt)) ]) , ParBreak , Code "typ/layout/columns-04.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 2.5 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , Space , Code "typ/layout/columns-04.typ" ( line 6 , column 49 ) (FuncCall (Ident (Identifier "parbreak")) []) , SoftBreak , Code "typ/layout/columns-04.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , Space , Code "typ/layout/columns-04.typ" ( line 7 , column 49 ) (FuncCall (Ident (Identifier "parbreak")) []) , SoftBreak , Code "typ/layout/columns-04.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), rect(fill: rgb(18%,80%,25%,100%), height: 2.5cm, width: 100%), text(body: [ ]), parbreak(), text(body: [ ]), rect(fill: rgb(13%,61%,67%,100%), height: 2.0cm, width: 100%), text(body: [ ]), parbreak(), text(body: [ ]), circle(fill: rgb(13%,61%,67%,100%)), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-04.typ0000644000000000000000000000043207346545000017001 0ustar0000000000000000// Test setting a column gutter and more than two columns. #set page(height: 3.25cm, width: 7.05cm, columns: 3) #set columns(gutter: 30pt) #rect(width: 100%, height: 2.5cm, fill: green) #parbreak() #rect(width: 100%, height: 2cm, fill: eastern) #parbreak() #circle(fill: eastern) typst-0.8.0.2/test/typ/layout/columns-05.out0000644000000000000000000000565007346545000017004 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-05.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 2)) ]) , ParBreak , Text "A" , SoftBreak , Code "typ/layout/columns-05.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "colbreak")) []) , SoftBreak , Code "typ/layout/columns-05.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "colbreak")) []) , SoftBreak , Text "B" , SoftBreak , Code "typ/layout/columns-05.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Text "C" , SoftBreak , Code "typ/layout/columns-05.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "colbreak")) []) , SoftBreak , Text "D" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [A ]), colbreak(), text(body: [ ]), colbreak(), text(body: [ B ]), pagebreak(), text(body: [ C ]), colbreak(), text(body: [ D]), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-05.typ0000644000000000000000000000023707346545000017005 0ustar0000000000000000// Test the `colbreak` and `pagebreak` functions. #set page(height: 1cm, width: 7.05cm, columns: 2) A #colbreak() #colbreak() B #pagebreak() C #colbreak() D typst-0.8.0.2/test/typ/layout/columns-06.out0000644000000000000000000000546507346545000017011 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-06.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 2)) ]) , ParBreak , Code "typ/layout/columns-06.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "inset") (Literal (Numeric 3.0 Pt)) , BlockArg [ Text "So" , Space , Text "there" , Space , Text "isn" , Quote '\'' , Text "t" , Space , Text "anything" , Space , Text "in" , Space , Text "the" , Space , Text "second" , Space , Text "column?" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), rect(body: text(body: [So there isn’t anything in the second column?]), inset: 3.0pt, width: 100%), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-06.typ0000644000000000000000000000022507346545000017003 0ustar0000000000000000// Test an empty second column. #set page(width: 7.05cm, columns: 2) #rect(width: 100%, inset: 3pt)[So there isn't anything in the second column?] typst-0.8.0.2/test/typ/layout/columns-07.out0000644000000000000000000000415307346545000017003 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-07.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) , KeyValArg (Identifier "columns") (Literal (Int 3)) ]) , ParBreak , Text "Arbitrary" , Space , Text "horizontal" , Space , Text "growth" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Arbitrary horizontal growth.]), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-07.typ0000644000000000000000000000015507346545000017006 0ustar0000000000000000// Test columns when one of them is empty. #set page(width: auto, columns: 3) Arbitrary horizontal growth. typst-0.8.0.2/test/typ/layout/columns-08.out0000644000000000000000000000737007346545000017010 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-08.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 2)) ]) , ParBreak , Text "There" , Space , Text "can" , Space , Text "be" , Space , Text "as" , Space , Text "much" , Space , Text "content" , Space , Text "as" , Space , Text "you" , Space , Text "want" , Space , Text "in" , Space , Text "the" , Space , Text "left" , Space , Text "column" , SoftBreak , Text "and" , Space , Text "the" , Space , Text "document" , Space , Text "will" , Space , Text "grow" , Space , Text "with" , Space , Text "it" , Text "." , ParBreak , Code "typ/layout/columns-08.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 30.0 Pt)) ]) , ParBreak , Text "Only" , Space , Text "an" , Space , Text "explicit" , Space , Code "typ/layout/columns-08.typ" ( line 10 , column 19 ) (FuncCall (Ident (Identifier "colbreak")) []) , Space , RawInline "#colbreak()" , Space , Text "can" , Space , Text "put" , Space , Text "content" , Space , Text "in" , Space , Text "the" , SoftBreak , Text "second" , Space , Text "column" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [There can be as much content as you want in the left column and the document will grow with it.]), parbreak(), rect(fill: rgb(18%,80%,25%,100%), height: 30.0pt, width: 100%), parbreak(), text(body: [Only an explicit ]), colbreak(), text(body: [ ]), raw(block: false, lang: none, text: "#colbreak()"), text(body: [ can put content in the second column.]), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-08.typ0000644000000000000000000000046507346545000017013 0ustar0000000000000000// Test columns in an infinitely high frame. #set page(width: 7.05cm, columns: 2) There can be as much content as you want in the left column and the document will grow with it. #rect(fill: green, width: 100%, height: 30pt) Only an explicit #colbreak() `#colbreak()` can put content in the second column. typst-0.8.0.2/test/typ/layout/columns-09.out0000644000000000000000000000441407346545000017005 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/columns-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/columns-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/columns-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/columns-09.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal Auto) , KeyValArg (Identifier "width") (Literal (Numeric 7.05 Cm)) , KeyValArg (Identifier "columns") (Literal (Int 1)) ]) , ParBreak , Text "This" , Space , Text "is" , Space , Text "a" , Space , Text "normal" , Space , Text "page" , Text "." , Space , Text "Very" , Space , Text "normal" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [This is a normal page. Very normal.]), parbreak() }) typst-0.8.0.2/test/typ/layout/columns-09.typ0000644000000000000000000000017607346545000017013 0ustar0000000000000000// Test a page with a single column. #set page(height: auto, width: 7.05cm, columns: 1) This is a normal page. Very normal. typst-0.8.0.2/test/typ/layout/columns-10.out0000644000000000000000000000002107346545000016763 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/columns-10.typ0000644000000000000000000000017507346545000017002 0ustar0000000000000000// Test a page with zero columns. // Error: 49-50 number must be positive #set page(height: auto, width: 7.05cm, columns: 0) typst-0.8.0.2/test/typ/layout/container-00.out0000644000000000000000000000522407346545000017276 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Code "typ/layout/container-00.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "box")) [ BlockArg [ Text "B" , Space , HardBreak , Text "C" ] ]) , Space , Text "D" , Text "." , ParBreak , Comment , Text "Spaced" , Space , HardBreak , Code "typ/layout/container-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "height") (Literal (Numeric 0.5 Cm)) ]) , Space , HardBreak , Text "Apart" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A ]), box(body: { text(body: [B ]), linebreak(), text(body: [C]) }), text(body: [ D.]), parbreak(), text(body: [Spaced ]), linebreak(), box(height: 0.5cm), text(body: [ ]), linebreak(), text(body: [Apart]), parbreak() }) typst-0.8.0.2/test/typ/layout/container-00.typ0000644000000000000000000000015307346545000017277 0ustar0000000000000000// Test box in paragraph. A #box[B \ C] D. // Test box with height. Spaced \ #box(height: 0.5cm) \ Apart typst-0.8.0.2/test/typ/layout/container-01.out0000644000000000000000000001026507346545000017300 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/container-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 120.0 Pt)) ]) , SoftBreak , Code "typ/layout/container-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/container-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 90.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) , BlockArg [ SoftBreak , Code "typ/layout/container-01.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 60.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 60.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , SoftBreak , Code "typ/layout/container-01.typ" ( line 7 , column 4 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 60.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), block(body: { text(body: [ ]), block(fill: rgb(18%,80%,25%,100%), height: 60%, spacing: 0.0pt, width: 60%), text(body: [ ]), block(fill: rgb(0%,45%,85%,100%), height: 60%, spacing: 0.0pt, width: 50%), parbreak() }, fill: rgb(100%,25%,21%,100%), height: 80.0pt, spacing: 0.0pt, width: 90.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/container-01.typ0000644000000000000000000000032607346545000017302 0ustar0000000000000000// Test block sizing. #set page(height: 120pt) #set block(spacing: 0pt) #block(width: 90pt, height: 80pt, fill: red)[ #block(width: 60%, height: 60%, fill: green) #block(width: 50%, height: 60%, fill: blue) ] typst-0.8.0.2/test/typ/layout/container-02.out0000644000000000000000000000666407346545000017311 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/container-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "yellow")) , NormalArg (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "purple")) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), box(body: path(fill: rgb(69%,5%,78%,100%), vertices: ((0.0pt, 0.0pt), (30.0pt, 30.0pt), (0.0pt, 30.0pt), (30.0pt, 0.0pt))), fill: rgb(100%,86%,0%,100%), height: 50.0pt, width: 50.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/container-02.typ0000644000000000000000000000030507346545000017300 0ustar0000000000000000// Test box sizing with layoutable child. #box( width: 50pt, height: 50pt, fill: yellow, path( fill: purple, (0pt, 0pt), (30pt, 30pt), (0pt, 30pt), (30pt, 0pt), ), ) typst-0.8.0.2/test/typ/layout/container-03.out0000644000000000000000000000461707346545000017306 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Hello" , Space , Code "typ/layout/container-03.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 0.7 Em)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) ]) ]) , Space , Text "World" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello ]), box(body: rect(height: 0.7em, width: 100%), width: 1.0fr), text(body: [ World]), parbreak() }) typst-0.8.0.2/test/typ/layout/container-03.typ0000644000000000000000000000012007346545000017274 0ustar0000000000000000// Test fr box. Hello #box(width: 1fr, rect(height: 0.7em, width: 100%)) World typst-0.8.0.2/test/typ/layout/container-04.out0000644000000000000000000000627307346545000017307 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/layout/container-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , ParBreak , Text "First!" , ParBreak , Code "typ/layout/container-04.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , SoftBreak , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [First!]), parbreak(), block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), parbreak() }), parbreak() }) typst-0.8.0.2/test/typ/layout/container-04.typ0000644000000000000000000000025607346545000017307 0ustar0000000000000000// Test block over multiple pages. #set page(height: 60pt) First! #block[ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. ] typst-0.8.0.2/test/typ/layout/container-fill-00.out0000644000000000000000000001213707346545000020223 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/container-fill-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/container-fill-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/container-fill-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "words"))) (FuncCall (FieldAccess (Ident (Identifier "split")) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 18)) ])) [])) , SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "inset") (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "aqua")) , KeyValArg (Identifier "stroke") (FuncCall (FieldAccess (Ident (Identifier "darken")) (Ident (Identifier "aqua"))) [ NormalArg (Literal (Numeric 30.0 Percent)) ]) , BlockArg [ SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 5 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "slice")) (Ident (Identifier "words"))) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 13)) ])) [ NormalArg (Literal (String " ")) ]) , SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "fill") (Ident (Identifier "teal")) , KeyValArg (Identifier "outset") (Literal (Numeric 2.0 Pt)) , BlockArg [ Text "tempor" ] ]) , SoftBreak , Code "typ/layout/container-fill-00.typ" ( line 7 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "slice")) (Ident (Identifier "words"))) [ NormalArg (Literal (Int 13)) ])) [ NormalArg (Literal (String " ")) ]) , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), block(body: { text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), text(body: [ ]), box(body: text(body: [tempor]), fill: rgb(22%,80%,80%,100%), outset: 2.0pt), text(body: [ ]), text(body: [ut labore et dolore magna]), parbreak() }, fill: rgb(49%,85%,100%,100%), inset: 8.0pt, stroke: rgb(34%,60%,70%,100%), width: 100%), parbreak() }) typst-0.8.0.2/test/typ/layout/container-fill-00.typ0000644000000000000000000000034607346545000020227 0ustar0000000000000000#set page(height: 100pt) #let words = lorem(18).split() #block(inset: 8pt, width: 100%, fill: aqua, stroke: aqua.darken(30%))[ #words.slice(0, 13).join(" ") #box(fill: teal, outset: 2pt)[tempor] #words.slice(13).join(" ") ] typst-0.8.0.2/test/typ/layout/enum-00.out0000644000000000000000000000411607346545000016257 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/enum-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "enum")) [ BlockArg [ Text "Embrace" ] , BlockArg [ Text "Extend" ] , BlockArg [ Text "Extinguish" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (text(body: [Embrace]), text(body: [Extend]), text(body: [Extinguish]))), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-00.typ0000644000000000000000000000004407346545000016260 0ustar0000000000000000#enum[Embrace][Extend][Extinguish] typst-0.8.0.2/test/typ/layout/enum-01.out0000644000000000000000000000446707346545000016271 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , EnumListItem (Just 0) [ Text "Before" , Space , Text "first!" ] , SoftBreak , EnumListItem (Just 1) [ Text "First" , Text "." , SoftBreak , EnumListItem (Just 2) [ Text "Indented" , SoftBreak ] ] , SoftBreak , EnumListItem Nothing [ Text "Second" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (text(body: [Before first!]), { text(body: [First. ]), enum(children: (text(body: [Indented ])), start: 2) }, { text(body: [Second]), parbreak() }), start: 0) }) typst-0.8.0.2/test/typ/layout/enum-01.typ0000644000000000000000000000006507346545000016264 0ustar00000000000000000. Before first! 1. First. 2. Indented + Second typst-0.8.0.2/test/typ/layout/enum-02.out0000644000000000000000000000615407346545000016265 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-02.typ" ( line 3 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 5)) ]) (Block (CodeBlock [ Block (Content [ EnumListItem Nothing [ Code "typ/layout/enum-02.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "I")) , NormalArg (Plus (Literal (Int 1)) (Ident (Identifier "i"))) ]) ] ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (numbering(numbering: "I", numbers: (1)))), enum(children: (numbering(numbering: "I", numbers: (2)))), enum(children: (numbering(numbering: "I", numbers: (3)))), enum(children: (numbering(numbering: "I", numbers: (4)))), enum(children: (numbering(numbering: "I", numbers: (5)))), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-02.typ0000644000000000000000000000014507346545000016264 0ustar0000000000000000// Test automatic numbering in summed content. #for i in range(5) { [+ #numbering("I", 1 + i)] } typst-0.8.0.2/test/typ/layout/enum-03.out0000644000000000000000000000421307346545000016260 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , BulletListItem [ Text "Bullet" , Space , Text "List" ] , SoftBreak , EnumListItem Nothing [ Text "Numbered" , Space , Text "List" ] , SoftBreak , DescListItem [ Text "Term" ] [ Text "List" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: (text(body: [Bullet List]))), enum(children: (text(body: [Numbered List]))), terms(children: ((text(body: [Term]), { text(body: [List]), parbreak() }))) }) typst-0.8.0.2/test/typ/layout/enum-03.typ0000644000000000000000000000010607346545000016262 0ustar0000000000000000// Mix of different lists - Bullet List + Numbered List / Term: List typst-0.8.0.2/test/typ/layout/enum-04.out0000644000000000000000000000417007346545000016263 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "1" , Text "." , Text "2" , Space , HardBreak , Text "This" , Space , Text "is" , Space , Text "0" , Text "." , Space , HardBreak , Text "See" , Space , Text "0" , Text "." , Text "3" , Text "." , Space , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [1.2 ]), linebreak(), text(body: [This is 0. ]), linebreak(), text(body: [See 0.3. ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-04.typ0000644000000000000000000000005707346545000016270 0ustar0000000000000000// In the line. 1.2 \ This is 0. \ See 0.3. \ typst-0.8.0.2/test/typ/layout/enum-05.out0000644000000000000000000000410707346545000016264 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , EnumListItem Nothing [] , SoftBreak , Text "Empty" , Space , HardBreak , Text "+Nope" , Space , HardBreak , Text "a" , Space , Text "+" , Space , Text "0" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), enum(children: ({ })), text(body: [Empty ]), linebreak(), text(body: [+Nope ]), linebreak(), text(body: [a + 0.]), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-05.typ0000644000000000000000000000005107346545000016263 0ustar0000000000000000// Edge cases. + Empty \ +Nope \ a + 0. typst-0.8.0.2/test/typ/layout/enum-06.out0000644000000000000000000000571407346545000016272 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , EnumListItem (Just 1) [ Text "first" ] , SoftBreak , EnumListItem Nothing [ Text "second" ] , SoftBreak , EnumListItem (Just 5) [ Text "fifth" , SoftBreak ] , SoftBreak , Code "typ/layout/enum-06.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "enum")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "item")) (Ident (Identifier "enum"))) [ NormalArg (Literal (Int 1)) , BlockArg [ Text "First" ] ]) , NormalArg (Block (Content [ Text "Second" ])) , NormalArg (FuncCall (FieldAccess (Ident (Identifier "item")) (Ident (Identifier "enum"))) [ NormalArg (Literal (Int 5)) , BlockArg [ Text "Fifth" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (text(body: [first]), text(body: [second]), text(body: [fifth ])), start: 1), enum(children: (enum.item(body: text(body: [First]), number: 1), text(body: [Second]), enum.item(body: text(body: [Fifth]), number: 5))), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-06.typ0000644000000000000000000000020107346545000016261 0ustar0000000000000000// Test item number overriding. 1. first + second 5. fifth #enum( enum.item(1)[First], [Second], enum.item(5)[Fifth] ) typst-0.8.0.2/test/typ/layout/enum-align-00.out0000644000000000000000000000611507346545000017350 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-align-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-align-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-align-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-align-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "horizon")) ]) , ParBreak , EnumListItem Nothing [ Text "ABCDEF" , HardBreak , Text "GHIJKL" , HardBreak , Text "MNOPQR" , SoftBreak , EnumListItem Nothing [ Text "INNER" , HardBreak , Text "INNER" , HardBreak , Text "INNER" ] ] , SoftBreak , EnumListItem Nothing [ Text "BACK" , HardBreak , Text "HERE" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), enum(children: ({ text(body: [ABCDEF]), linebreak(), text(body: [GHIJKL]), linebreak(), text(body: [MNOPQR ]), enum(children: ({ text(body: [INNER]), linebreak(), text(body: [INNER]), linebreak(), text(body: [INNER]) })) }, { text(body: [BACK]), linebreak(), text(body: [HERE]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/enum-align-00.typ0000644000000000000000000000017207346545000017352 0ustar0000000000000000// Alignment shouldn't affect number #set align(horizon) + ABCDEF\ GHIJKL\ MNOPQR + INNER\ INNER\ INNER + BACK\ HERE typst-0.8.0.2/test/typ/layout/enum-align-01.out0000644000000000000000000000531007346545000017345 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-align-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-align-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-align-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , EnumListItem (Just 1) [ Text "a" ] , SoftBreak , EnumListItem (Just 10) [ Text "b" ] , SoftBreak , EnumListItem (Just 100) [ Text "c" , SoftBreak ] , SoftBreak , Code "typ/layout/enum-align-01.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "number-align") (Ident (Identifier "start")) ]) , SoftBreak , EnumListItem (Just 1) [ Space , Text "a" ] , SoftBreak , EnumListItem (Just 8) [ Space , Text "b" ] , SoftBreak , EnumListItem (Just 16) [ Text "c" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (text(body: [a]), text(body: [b]), text(body: [c ])), start: 1), text(body: [ ]), enum(children: (text(body: [ a]), text(body: [ b]), { text(body: [c]), parbreak() }), number-align: start, start: 1) }) typst-0.8.0.2/test/typ/layout/enum-align-01.typ0000644000000000000000000000017107346545000017352 0ustar0000000000000000// Enum number alignment should be 'end' by default 1. a 10. b 100. c #set enum(number-align: start) 1. a 8. b 16. c typst-0.8.0.2/test/typ/layout/enum-align-02.out0000644000000000000000000000657407346545000017363 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-align-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-align-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-align-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-align-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Code "typ/layout/enum-align-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "number-align") (Ident (Identifier "start")) ]) , ParBreak , EnumListItem (Just 4) [ Space , Text "c" ] , SoftBreak , EnumListItem (Just 8) [ Space , Text "d" ] , SoftBreak , EnumListItem (Just 16) [ Text "e" , HardBreak , Text "f" , SoftBreak , EnumListItem (Just 2) [ Space , Text "f" , HardBreak , Text "g" ] , SoftBreak , EnumListItem (Just 32) [ Text "g" ] , SoftBreak , EnumListItem (Just 64) [ Text "h" , ParBreak ] ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), enum(children: (text(body: [ c]), text(body: [ d]), { text(body: [e]), linebreak(), text(body: [f ]), enum(children: ({ text(body: [ f]), linebreak(), text(body: [g]) }, text(body: [g]), { text(body: [h]), parbreak() }), number-align: start, start: 2) }), number-align: start, start: 4) }) typst-0.8.0.2/test/typ/layout/enum-align-02.typ0000644000000000000000000000024407346545000017354 0ustar0000000000000000// Number align option should not be affected by the context #set align(center) #set enum(number-align: start) 4. c 8. d 16. e\ f 2. f\ g 32. g 64. h typst-0.8.0.2/test/typ/layout/enum-align-03.out0000644000000000000000000000002107346545000017341 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/enum-align-03.typ0000644000000000000000000000036207346545000017356 0ustar0000000000000000// Test valid number align values (horizontal) #set enum(number-align: start) #set enum(number-align: end) #set enum(number-align: left) #set enum(number-align: right) // Error: 25-28 alignment must be horizontal #set enum(number-align: top) typst-0.8.0.2/test/typ/layout/enum-numbering-00.out0000644000000000000000000000555307346545000020251 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-numbering-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-numbering-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-numbering-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-numbering-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (Literal (String "(1.a.*)")) ]) , SoftBreak , EnumListItem Nothing [ Text "First" ] , SoftBreak , EnumListItem Nothing [ Text "Second" , SoftBreak , EnumListItem (Just 2) [ Text "Nested" , SoftBreak , EnumListItem Nothing [ Text "Deep" ] ] ] , SoftBreak , EnumListItem Nothing [ Text "Normal" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), enum(children: (text(body: [First]), { text(body: [Second ]), enum(children: ({ text(body: [Nested ]), enum(children: (text(body: [Deep])), numbering: "(1.a.*)") }), numbering: "(1.a.*)", start: 2) }, { text(body: [Normal]), parbreak() }), numbering: "(1.a.*)") }) typst-0.8.0.2/test/typ/layout/enum-numbering-00.typ0000644000000000000000000000015607346545000020250 0ustar0000000000000000// Test numbering pattern. #set enum(numbering: "(1.a.*)") + First + Second 2. Nested + Deep + Normal typst-0.8.0.2/test/typ/layout/enum-numbering-01.out0000644000000000000000000000476107346545000020252 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-numbering-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-numbering-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-numbering-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-numbering-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (Literal (String "1.a.")) , KeyValArg (Identifier "full") (Literal (Boolean True)) ]) , SoftBreak , EnumListItem Nothing [ Text "First" , SoftBreak , EnumListItem Nothing [ Text "Nested" , ParBreak ] ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), enum(children: ({ text(body: [First ]), enum(children: ({ text(body: [Nested]), parbreak() }), full: true, numbering: "1.a.") }), full: true, numbering: "1.a.") }) typst-0.8.0.2/test/typ/layout/enum-numbering-01.typ0000644000000000000000000000012507346545000020245 0ustar0000000000000000// Test full numbering. #set enum(numbering: "1.a.", full: true) + First + Nested typst-0.8.0.2/test/typ/layout/enum-numbering-02.out0000644000000000000000000000772007346545000020251 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-numbering-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-numbering-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-numbering-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-numbering-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "enum")) [ KeyValArg (Identifier "start") (Literal (Int 3)) , KeyValArg (Identifier "spacing") (Minus (Literal (Numeric 0.65 Em)) (Literal (Numeric 3.0 Pt))) , KeyValArg (Identifier "tight") (Literal (Boolean False)) , KeyValArg (Identifier "numbering") (FuncExpr [ NormalParam (Identifier "n") ] (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (FuncCall (FieldAccess (Ident (Identifier "at")) (Array [ Reg (Ident (Identifier "red")) , Reg (Ident (Identifier "green")) , Reg (Ident (Identifier "blue")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "rem")) (Ident (Identifier "calc"))) [ NormalArg (Ident (Identifier "n")) , NormalArg (Literal (Int 3)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "A")) , NormalArg (Ident (Identifier "n")) ]) ])) , NormalArg (Block (Content [ Text "Red" ])) , NormalArg (Block (Content [ Text "Green" ])) , NormalArg (Block (Content [ Text "Blue" ])) , NormalArg (Block (Content [ Text "Red" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), enum(children: (text(body: [Red]), text(body: [Green]), text(body: [Blue]), text(body: [Red])), numbering: , spacing: 0.65em + -3.0pt, start: 3, tight: false), parbreak() }) typst-0.8.0.2/test/typ/layout/enum-numbering-02.typ0000644000000000000000000000034507346545000020252 0ustar0000000000000000// Test numbering with closure. #enum( start: 3, spacing: 0.65em - 3pt, tight: false, numbering: n => text( fill: (red, green, blue).at(calc.rem(n, 3)), numbering("A", n), ), [Red], [Green], [Blue], [Red], ) typst-0.8.0.2/test/typ/layout/enum-numbering-03.out0000644000000000000000000000537507346545000020256 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-numbering-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-numbering-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-numbering-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-numbering-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (FuncExpr [ NormalParam (Identifier "n") ] (FuncCall (Ident (Identifier "super")) [ BlockArg [ Code "typ/layout/enum-numbering-03.typ" ( line 3 , column 34 ) (Ident (Identifier "n")) ] ])) ]) , SoftBreak , EnumListItem Nothing [ Text "A" , SoftBreak , EnumListItem Nothing [ Text "B" ] ] , SoftBreak , EnumListItem Nothing [ Text "C" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), enum(children: ({ text(body: [A ]), enum(children: (text(body: [B])), numbering: ) }, { text(body: [C]), parbreak() }), numbering: ) }) typst-0.8.0.2/test/typ/layout/enum-numbering-03.typ0000644000000000000000000000014507346545000020251 0ustar0000000000000000// Test numbering with closure and nested lists. #set enum(numbering: n => super[#n]) + A + B + C typst-0.8.0.2/test/typ/layout/enum-numbering-04.out0000644000000000000000000001045307346545000020250 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/enum-numbering-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/enum-numbering-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/enum-numbering-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/enum-numbering-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) ]) , SoftBreak , Code "typ/layout/enum-numbering-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "enum")) [ KeyValArg (Identifier "numbering") (FuncExpr [ SinkParam (Just (Identifier "args")) ] (FuncCall (FieldAccess (Ident (Identifier "mat")) (Ident (Identifier "math"))) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "args"))) []) ])) , KeyValArg (Identifier "full") (Literal (Boolean True)) ]) , SoftBreak , EnumListItem Nothing [ Text "A" , SoftBreak , EnumListItem Nothing [ Text "B" ] , SoftBreak , EnumListItem Nothing [ Text "C" , SoftBreak , EnumListItem Nothing [ Text "D" ] ] ] , SoftBreak , EnumListItem Nothing [ Text "E" ] , SoftBreak , EnumListItem Nothing [ Text "F" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern"), enum(children: ({ text(body: [A ], font: "New Computer Modern"), enum(children: (text(body: [B], font: "New Computer Modern"), { text(body: [C ], font: "New Computer Modern"), enum(children: (text(body: [D], font: "New Computer Modern")), full: true, numbering: ) }), full: true, numbering: ) }, text(body: [E], font: "New Computer Modern"), { text(body: [F], font: "New Computer Modern"), parbreak() }), full: true, numbering: ) }) typst-0.8.0.2/test/typ/layout/enum-numbering-04.typ0000644000000000000000000000027407346545000020255 0ustar0000000000000000// Test numbering with closure and nested lists. #set text(font: "New Computer Modern") #set enum(numbering: (..args) => math.mat(args.pos()), full: true) + A + B + C + D + E + F typst-0.8.0.2/test/typ/layout/enum-numbering-05.out0000644000000000000000000000002107346545000020237 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/enum-numbering-05.typ0000644000000000000000000000010407346545000020246 0ustar0000000000000000// Error: 22-24 invalid numbering pattern #set enum(numbering: "") typst-0.8.0.2/test/typ/layout/enum-numbering-06.out0000644000000000000000000000002107346545000020240 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/enum-numbering-06.typ0000644000000000000000000000010707346545000020252 0ustar0000000000000000// Error: 22-28 invalid numbering pattern #set enum(numbering: "(())") typst-0.8.0.2/test/typ/layout/flow-orphan-00.out0000644000000000000000000000513107346545000017545 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/flow-orphan-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/flow-orphan-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/flow-orphan-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/flow-orphan-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/layout/flow-orphan-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 12)) ]) , ParBreak , Heading 1 [ Text "Introduction" ] , Text "This" , Space , Text "is" , Space , Text "the" , Space , Text "start" , Space , Text "and" , Space , Text "it" , Space , Text "goes" , Space , Text "on" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), parbreak(), heading(body: text(body: [Introduction]), level: 1), text(body: [This is the start and it goes on.]), parbreak() }) typst-0.8.0.2/test/typ/layout/flow-orphan-00.typ0000644000000000000000000000012707346545000017552 0ustar0000000000000000#set page(height: 100pt) #lorem(12) = Introduction This is the start and it goes on. typst-0.8.0.2/test/typ/layout/flow-orphan-01.out0000644000000000000000000001221007346545000017542 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/flow-orphan-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/flow-orphan-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/flow-orphan-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/flow-orphan-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a8")) , KeyValArg (Identifier "height") (Literal (Numeric 140.0 Pt)) ]) , SoftBreak , Code "typ/layout/flow-orphan-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "weight") (Literal (Int 700)) ]) , ParBreak , Comment , Code "typ/layout/flow-orphan-01.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) ]) , SoftBreak , Code "typ/layout/flow-orphan-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 27)) ]) , ParBreak , Comment , Code "typ/layout/flow-orphan-01.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , ParBreak , Comment , Comment , Code "typ/layout/flow-orphan-01.typ" ( line 14 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "maroon")) ]) , SoftBreak , Code "typ/layout/flow-orphan-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 11)) ]) , ParBreak , Code "typ/layout/flow-orphan-01.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 13)) ]) , ParBreak , Comment , Code "typ/layout/flow-orphan-01.typ" ( line 20 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "olive")) ]) , SoftBreak , Code "typ/layout/flow-orphan-01.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 10)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [ ], color: rgb(0%,45%,85%,100%), weight: 700), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation], color: rgb(0%,45%,85%,100%), weight: 700), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], color: rgb(0%,45%,85%,100%), weight: 700), parbreak(), text(body: [ ], color: rgb(52%,7%,29%,100%), weight: 700), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod], color: rgb(52%,7%,29%,100%), weight: 700), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt], color: rgb(52%,7%,29%,100%), weight: 700), parbreak(), text(body: [ ], color: rgb(23%,60%,43%,100%), weight: 700), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do], color: rgb(23%,60%,43%,100%), weight: 700), parbreak() }) typst-0.8.0.2/test/typ/layout/flow-orphan-01.typ0000644000000000000000000000061407346545000017554 0ustar0000000000000000#set page("a8", height: 140pt) #set text(weight: 700) // Fits fully onto the first page. #set text(blue) #lorem(27) // The first line would fit, but is moved to the second page. #lorem(20) // The second-to-last line is moved to the third page so that the last is isn't // as lonely. #set text(maroon) #lorem(11) #lorem(13) // All three lines go to the next page. #set text(olive) #lorem(10) typst-0.8.0.2/test/typ/layout/grid-1-00.out0000644000000000000000000002125107346545000016375 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-1-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-1-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-1-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-1-00.typ" ( line 2 , column 2 ) (LetFunc (Identifier "cell") [ NormalParam (Identifier "width") , NormalParam (Identifier "color") ] (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Ident (Identifier "width")) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "color")) ])) , SoftBreak , Code "typ/layout/grid-1-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 140.0 Pt)) ]) , SoftBreak , Code "typ/layout/grid-1-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal Auto) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 3.0 Fr)) , Reg (Literal (Numeric 0.25 Cm)) , Reg (Literal (Numeric 3.0 Percent)) , Reg (Plus (Literal (Numeric 2.0 Mm)) (Literal (Numeric 10.0 Percent))) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 0.5 Cm)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "2a631a")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "ff0000")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "00ff00")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 80.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "00faf0")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 1.0 Cm)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "00ff00")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 0.5 Cm)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "2a631a")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "ff0000")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "cell")) [ NormalArg (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "00ff00")) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), grid(children: (rect(fill: rgb(16%,38%,10%,100%), height: 2.0cm, width: 0.5cm), rect(fill: rgb(100%,25%,21%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(18%,80%,25%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(100%,0%,0%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(0%,100%,0%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(0%,98%,94%,100%), height: 2.0cm, width: 80%), rect(fill: rgb(0%,100%,0%,100%), height: 2.0cm, width: 1.0cm), rect(fill: rgb(16%,38%,10%,100%), height: 2.0cm, width: 0.5cm), rect(fill: rgb(100%,25%,21%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(18%,80%,25%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(100%,0%,0%,100%), height: 2.0cm, width: 100%), rect(fill: rgb(0%,100%,0%,100%), height: 2.0cm, width: 100%)), columns: (auto, 1.0fr, 3.0fr, 0.25cm, 3%, 2.0mm + 10%)), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-1-00.typ0000644000000000000000000000076007346545000016404 0ustar0000000000000000#let cell(width, color) = rect(width: width, height: 2cm, fill: color) #set page(width: 100pt, height: 140pt) #grid( columns: (auto, 1fr, 3fr, 0.25cm, 3%, 2mm + 10%), cell(0.5cm, rgb("2a631a")), cell(100%, red), cell(100%, green), cell(100%, rgb("ff0000")), cell(100%, rgb("00ff00")), cell(80%, rgb("00faf0")), cell(1cm, rgb("00ff00")), cell(0.5cm, rgb("2a631a")), cell(100%, red), cell(100%, green), cell(100%, rgb("ff0000")), cell(100%, rgb("00ff00")), ) typst-0.8.0.2/test/typ/layout/grid-1-01.out0000644000000000000000000000760407346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-1-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-1-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-1-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-1-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/grid-1-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal Auto) , Reg (Literal Auto) , Reg (Literal (Numeric 40.0 Percent)) ]) , KeyValArg (Identifier "column-gutter") (Literal (Numeric 1.0 Fr)) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , BlockArg [ Text "dddaa" , Space , Text "aaa" , Space , Text "aaa" ] ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [ Text "ccc" ] ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "dddddd")) ]) , BlockArg [ Text "aaa" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (rect(body: text(body: [dddaa aaa aaa]), fill: rgb(13%,61%,67%,100%), inset: 0.0pt), rect(body: text(body: [ccc]), fill: rgb(18%,80%,25%,100%), inset: 0.0pt), rect(body: text(body: [aaa]), fill: rgb(86%,86%,86%,100%), inset: 0.0pt)), column-gutter: 1.0fr, columns: (auto, auto, 40%), row-gutter: 1.0fr), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-1-01.typ0000644000000000000000000000031107346545000016375 0ustar0000000000000000#set rect(inset: 0pt) #grid( columns: (auto, auto, 40%), column-gutter: 1fr, row-gutter: 1fr, rect(fill: eastern)[dddaa aaa aaa], rect(fill: green)[ccc], rect(fill: rgb("dddddd"))[aaa], ) typst-0.8.0.2/test/typ/layout/grid-1-02.out0000644000000000000000000000645107346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-1-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-1-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-1-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-1-02.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 3.0 Cm)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/grid-1-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "rows") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal Auto) , Reg (Literal (Numeric 2.0 Fr)) ]) , NormalArg (Block (Content [])) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ Text "A" , Space , Text "bit" , Space , Text "more" , Space , Text "to" , Space , Text "the" , Space , Text "top" ] ]) , NormalArg (Block (Content [])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: ({ }, align(alignment: center, body: text(body: [A bit more to the top])), { }), columns: (1.0fr), rows: (1.0fr, auto, 2.0fr)), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-1-02.typ0000644000000000000000000000021607346545000016402 0ustar0000000000000000#set page(height: 3cm, margin: 0pt) #grid( columns: (1fr,), rows: (1fr, auto, 2fr), [], align(center)[A bit more to the top], [], ) typst-0.8.0.2/test/typ/layout/grid-2-00.out0000644000000000000000000001446707346545000016411 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-2-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-2-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-2-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-2-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 11.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 2.5 Cm)) ]) , SoftBreak , Code "typ/layout/grid-2-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 5)) , KeyValArg (Identifier "column-gutter") (Array [ Reg (Literal (Numeric 2.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 6.0 Pt)) , NormalArg (Block (Content [ Strong [ Text "Quarter" ] ])) , NormalArg (Block (Content [ Text "Expenditure" ])) , NormalArg (Block (Content [ Text "External" , Space , Text "Revenue" ])) , NormalArg (Block (Content [ Text "Financial" , Space , Text "ROI" ])) , NormalArg (Block (Content [ Emph [ Text "total" ] ])) , NormalArg (Block (Content [ Strong [ Text "Q1" ] ])) , NormalArg (Block (Content [ Text "173,472" , Text "." , Text "57" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "472,860" , Text "." , Text "91" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "51,286" , Text "." , Text "84" , Space , Text "$" ])) , NormalArg (Block (Content [ Emph [ Text "350,675" , Text "." , Text "18" , Space , Text "$" ] ])) , NormalArg (Block (Content [ Strong [ Text "Q2" ] ])) , NormalArg (Block (Content [ Text "93,382" , Text "." , Text "12" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "439,382" , Text "." , Text "85" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "-" , Text "1,134" , Text "." , Text "30" , Space , Text "$" ])) , NormalArg (Block (Content [ Emph [ Text "344,866" , Text "." , Text "43" , Space , Text "$" ] ])) , NormalArg (Block (Content [ Strong [ Text "Q3" ] ])) , NormalArg (Block (Content [ Text "96,421" , Text "." , Text "49" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "238,583" , Text "." , Text "54" , Space , Text "$" ])) , NormalArg (Block (Content [ Text "3,497" , Text "." , Text "12" , Space , Text "$" ])) , NormalArg (Block (Content [ Emph [ Text "145,659" , Text "." , Text "17" , Space , Text "$" ] ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (strong(body: text(body: [Quarter])), text(body: [Expenditure]), text(body: [External Revenue]), text(body: [Financial ROI]), emph(body: text(body: [total])), strong(body: text(body: [Q1])), text(body: [173,472.57 $]), text(body: [472,860.91 $]), text(body: [51,286.84 $]), emph(body: text(body: [350,675.18 $])), strong(body: text(body: [Q2])), text(body: [93,382.12 $]), text(body: [439,382.85 $]), text(body: [-1,134.30 $]), emph(body: text(body: [344,866.43 $])), strong(body: text(body: [Q3])), text(body: [96,421.49 $]), text(body: [238,583.54 $]), text(body: [3,497.12 $]), emph(body: text(body: [145,659.17 $]))), column-gutter: (2.0fr, 1.0fr, 1.0fr), columns: 5, row-gutter: 6.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-2-00.typ0000644000000000000000000000071207346545000016402 0ustar0000000000000000#set page(width: 11cm, height: 2.5cm) #grid( columns: 5, column-gutter: (2fr, 1fr, 1fr), row-gutter: 6pt, [*Quarter*], [Expenditure], [External Revenue], [Financial ROI], [_total_], [*Q1*], [173,472.57 \$], [472,860.91 \$], [51,286.84 \$], [_350,675.18 \$_], [*Q2*], [93,382.12 \$], [439,382.85 \$], [-1,134.30 \$], [_344,866.43 \$_], [*Q3*], [96,421.49 \$], [238,583.54 \$], [3,497.12 \$], [_145,659.17 \$_], ) typst-0.8.0.2/test/typ/layout/grid-3-00.out0000644000000000000000000001063107346545000016377 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-3-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-3-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-3-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-3-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 3.0 Cm)) ]) , SoftBreak , Code "typ/layout/grid-3-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 8.0 Pt)) , NormalArg (Block (Content [ Text "Lorem" , Space , Text "ipsum" , Space , Text "dolor" , Space , Text "sit" , Space , Text "amet" , Text "." , ParBreak , Text "Aenean" , Space , Text "commodo" , Space , Text "ligula" , Space , Text "eget" , Space , Text "dolor" , Text "." , Space , Text "Aenean" , Space , Text "massa" , Text "." , Space , Text "Penatibus" , Space , Text "et" , Space , Text "magnis" , Text "." ])) , NormalArg (Block (Content [ Text "Text" , Space , Text "that" , Space , Text "is" , Space , Text "rather" , Space , Text "short" ])) , NormalArg (Block (Content [ Text "Fireflies" ])) , NormalArg (Block (Content [ Text "Critical" ])) , NormalArg (Block (Content [ Text "Decorum" ])) , NormalArg (Block (Content [ Text "Rampage" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: ({ text(body: [Lorem ipsum dolor sit amet.]), parbreak(), text(body: [Aenean commodo ligula eget dolor. Aenean massa. Penatibus et magnis.]) }, text(body: [Text that is rather short]), text(body: [Fireflies]), text(body: [Critical]), text(body: [Decorum]), text(body: [Rampage])), columns: 2, row-gutter: 8.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-3-00.typ0000644000000000000000000000041507346545000016403 0ustar0000000000000000#set page(width: 5cm, height: 3cm) #grid( columns: 2, row-gutter: 8pt, [Lorem ipsum dolor sit amet. Aenean commodo ligula eget dolor. Aenean massa. Penatibus et magnis.], [Text that is rather short], [Fireflies], [Critical], [Decorum], [Rampage], ) typst-0.8.0.2/test/typ/layout/grid-3-01.out0000644000000000000000000001237707346545000016411 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-3-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-3-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-3-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/grid-3-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "typ/layout/grid-3-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Literal (Int 4)) (Array [ Reg (Literal (Numeric 1.0 Fr)) ])) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "column-gutter") (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "top")) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) ]) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "top")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , BlockArg [ Text "LoL" ] ]) ]) ]) , NormalArg (Block (Content [ Text "rofl" ])) , NormalArg (Times (Block (Content [ HardBreak , Text "A" ])) (Literal (Int 3))) , NormalArg (Times (Block (Content [ Text "Ha!" , HardBreak ])) (Literal (Int 3))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (align(alignment: top, body: image(source: "/assets/files/rhino.png")), align(alignment: top, body: rect(body: align(alignment: right, body: text(body: [LoL])), fill: rgb(13%,61%,67%,100%), inset: 0.0pt)), text(body: [rofl]), { linebreak(), text(body: [A]), linebreak(), text(body: [A]), linebreak(), text(body: [A]) }, { text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak() }), column-gutter: (0.0pt, 10%), columns: (1.0fr, 1.0fr, 1.0fr, 1.0fr), row-gutter: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-3-01.typ0000644000000000000000000000054207346545000016405 0ustar0000000000000000// Test a column that starts overflowing right after another row/column did // that. #set page(width: 5cm, height: 2cm) #grid( columns: 4 * (1fr,), row-gutter: 10pt, column-gutter: (0pt, 10%), align(top, image("/assets/files/rhino.png")), align(top, rect(inset: 0pt, fill: eastern, align(right)[LoL])), [rofl], [\ A] * 3, [Ha!\ ] * 3, ) typst-0.8.0.2/test/typ/layout/grid-3-02.out0000644000000000000000000001114607346545000016403 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-3-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-3-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-3-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-3-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "typ/layout/grid-3-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Literal (Int 3)) (Array [ Reg (Literal (Numeric 1.0 Fr)) ])) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "column-gutter") (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Percent)) ]) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) , NormalArg (Times (Block (Content [ Text "Ha!" , HardBreak ])) (Literal (Int 6))) , NormalArg (Block (Content [ Text "rofl" ])) , NormalArg (Times (Block (Content [ HardBreak , Text "A" ])) (Literal (Int 3))) , NormalArg (Block (Content [ Text "hello" ])) , NormalArg (Block (Content [ Text "darkness" ])) , NormalArg (Block (Content [ Text "my" , Space , Text "old" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (text(body: [A]), text(body: [B]), text(body: [C]), { text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak(), text(body: [Ha!]), linebreak() }, text(body: [rofl]), { linebreak(), text(body: [A]), linebreak(), text(body: [A]), linebreak(), text(body: [A]) }, text(body: [hello]), text(body: [darkness]), text(body: [my old])), column-gutter: (0.0pt, 10%), columns: (1.0fr, 1.0fr, 1.0fr), row-gutter: 8.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-3-02.typ0000644000000000000000000000042607346545000016407 0ustar0000000000000000// Test two columns in the same row overflowing by a different amount. #set page(width: 5cm, height: 2cm) #grid( columns: 3 * (1fr,), row-gutter: 8pt, column-gutter: (0pt, 10%), [A], [B], [C], [Ha!\ ] * 6, [rofl], [\ A] * 3, [hello], [darkness], [my old] ) typst-0.8.0.2/test/typ/layout/grid-3-03.out0000644000000000000000000001371107346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-3-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-3-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-3-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-3-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 2.25 Cm)) ]) , SoftBreak , Code "typ/layout/grid-3-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Literal (Int 4)) (Array [ Reg (Literal (Numeric 1.0 Fr)) ])) , KeyValArg (Identifier "row-gutter") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "column-gutter") (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Percent)) ]) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) , NormalArg (Block (Content [ Text "D" ])) , NormalArg (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Times (Block (Content [ Text "C" , HardBreak ])) (Literal (Int 3))) , NormalArg (Block (Content [ Text "D" ])) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "top")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , BlockArg [ Text "LoL" ] ]) ]) ]) , NormalArg (Block (Content [ Text "rofl" ])) , NormalArg (Times (Block (Content [ Text "E" , HardBreak ])) (Literal (Int 4))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (text(body: [A]), text(body: [B]), text(body: [C]), text(body: [D]), grid(children: (text(body: [A]), text(body: [B]), { text(body: [C]), linebreak(), text(body: [C]), linebreak(), text(body: [C]), linebreak() }, text(body: [D])), columns: 2), align(alignment: top, body: rect(body: align(alignment: right, body: text(body: [LoL])), fill: rgb(13%,61%,67%,100%), inset: 0.0pt)), text(body: [rofl]), { text(body: [E]), linebreak(), text(body: [E]), linebreak(), text(body: [E]), linebreak(), text(body: [E]), linebreak() }), column-gutter: (0.0pt, 10%), columns: (1.0fr, 1.0fr, 1.0fr, 1.0fr), row-gutter: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-3-03.typ0000644000000000000000000000047107346545000016410 0ustar0000000000000000// Test grid within a grid, overflowing. #set page(width: 5cm, height: 2.25cm) #grid( columns: 4 * (1fr,), row-gutter: 10pt, column-gutter: (0pt, 10%), [A], [B], [C], [D], grid(columns: 2, [A], [B], [C\ ]*3, [D]), align(top, rect(inset: 0pt, fill: eastern, align(right)[LoL])), [rofl], [E\ ]*4, ) typst-0.8.0.2/test/typ/layout/grid-4-00.out0000644000000000000000000000720707346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-4-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-4-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-4-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-4-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal Auto) , Reg (Literal (Numeric 60.0 Percent)) ]) , KeyValArg (Identifier "rows") (Array [ Reg (Literal Auto) , Reg (Literal Auto) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 0.5 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 0.5 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 0.5 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), grid(children: (rect(fill: rgb(18%,80%,25%,100%), height: 0.5cm, width: 50%), rect(fill: rgb(13%,61%,67%,100%), height: 0.5cm, width: 100%), rect(fill: rgb(100%,25%,21%,100%), height: 0.5cm, width: 50%)), columns: (auto, 60%), rows: (auto, auto)), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-4-00.typ0000644000000000000000000000040607346545000016404 0ustar0000000000000000// Test that auto and relative columns use the correct base. #grid( columns: (auto, 60%), rows: (auto, auto), rect(width: 50%, height: 0.5cm, fill: green), rect(width: 100%, height: 0.5cm, fill: eastern), rect(width: 50%, height: 0.5cm, fill: red), ) typst-0.8.0.2/test/typ/layout/grid-4-01.out0000644000000000000000000000731707346545000016410 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-4-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-4-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-4-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-4-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Array [ Reg (Literal (Numeric 1.0 Fr)) ]) (Literal (Int 4))) , KeyValArg (Identifier "rows") (Array [ Reg (Literal (Numeric 1.0 Cm)) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), grid(children: (rect(fill: rgb(18%,80%,25%,100%), width: 50%), rect(fill: rgb(100%,25%,21%,100%), width: 50%), rect(fill: rgb(18%,80%,25%,100%), width: 50%), rect(fill: rgb(100%,25%,21%,100%), width: 50%)), columns: (1.0fr, 1.0fr, 1.0fr, 1.0fr), rows: (1.0cm)), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-4-01.typ0000644000000000000000000000033707346545000016410 0ustar0000000000000000// Test that fr columns use the correct base. #grid( columns: (1fr,) * 4, rows: (1cm,), rect(width: 50%, fill: green), rect(width: 50%, fill: red), rect(width: 50%, fill: green), rect(width: 50%, fill: red), ) typst-0.8.0.2/test/typ/layout/grid-4-02.out0000644000000000000000000001077207346545000016410 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-4-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-4-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-4-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-4-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 4.0 Cm)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Cm)) ]) , SoftBreak , Code "typ/layout/grid-4-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "rows") (Array [ Reg (Literal (Numeric 1.0 Cm)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal Auto) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 25.0 Percent)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (rect(fill: rgb(18%,80%,25%,100%), height: 50%, width: 100%), rect(fill: rgb(100%,25%,21%,100%), height: 50%, width: 100%), rect(fill: rgb(18%,80%,25%,100%), height: 50%, width: 100%), rect(fill: rgb(100%,25%,21%,100%), height: 25%, width: 100%)), rows: (1.0cm, 1.0fr, 1.0fr, auto)), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-4-02.typ0000644000000000000000000000050007346545000016401 0ustar0000000000000000// Test that all three kinds of rows use the correct bases. #set page(height: 4cm, margin: 0cm) #grid( rows: (1cm, 1fr, 1fr, auto), rect(height: 50%, width: 100%, fill: green), rect(height: 50%, width: 100%, fill: red), rect(height: 50%, width: 100%, fill: green), rect(height: 25%, width: 100%, fill: red), ) typst-0.8.0.2/test/typ/layout/grid-5-00.out0000644000000000000000000000543307346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-5-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-5-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-5-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-5-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "typ/layout/grid-5-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ BlockArg [ SoftBreak , Text "Hello" , Space , HardBreak , Text "Hello" , Space , HardBreak , Text "Hello" , Space , HardBreak , SoftBreak , Text "World" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: ({ text(body: [ Hello ]), linebreak(), text(body: [Hello ]), linebreak(), text(body: [Hello ]), linebreak(), text(body: [ World]), parbreak() })), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-5-00.typ0000644000000000000000000000020507346545000016402 0ustar0000000000000000// Test that trailing linebreak doesn't overflow the region. #set page(height: 2cm) #grid[ Hello \ Hello \ Hello \ World ] typst-0.8.0.2/test/typ/layout/grid-5-01.out0000644000000000000000000001131707346545000016404 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-5-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-5-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-5-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/grid-5-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 2.25 Cm)) ]) , SoftBreak , Code "typ/layout/grid-5-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , KeyValArg (Identifier "gutter") (Literal (Numeric 10.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) , BlockArg [ Text "A" ] ]) , NormalArg (Block (Content [ SoftBreak , Text "Top" , SoftBreak , Code "typ/layout/grid-5-01.typ" ( line 10 , column 6 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) , BlockArg [ SoftBreak , Text "Bottom" , Space , HardBreak , Text "Bottom" , Space , HardBreak , Code "typ/layout/grid-5-01.typ" ( line 13 , column 8 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Text "Top" , ParBreak ] ]) , ParBreak ])) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "top")) , BlockArg [ Text "B" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (align(alignment: bottom, body: text(body: [A])), { text(body: [ Top ]), align(alignment: bottom, body: { text(body: [ Bottom ]), linebreak(), text(body: [Bottom ]), linebreak(), v(amount: 0.0pt), text(body: [ Top]), parbreak() }), parbreak() }, align(alignment: top, body: text(body: [B]))), columns: 2, gutter: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-5-01.typ0000644000000000000000000000036407346545000016411 0ustar0000000000000000// Test that broken cell expands vertically. #set page(height: 2.25cm) #grid( columns: 2, gutter: 10pt, align(bottom)[A], [ Top #align(bottom)[ Bottom \ Bottom \ #v(0pt) Top ] ], align(top)[B], ) typst-0.8.0.2/test/typ/layout/grid-auto-shrink-00.out0000644000000000000000000001073507346545000020506 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-auto-shrink-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-auto-shrink-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-auto-shrink-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-auto-shrink-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Plus (Minus (Literal (Numeric 210.0 Mm)) (Times (Literal (Int 2)) (Literal (Numeric 2.5 Cm)))) (Times (Literal (Int 2)) (Literal (Numeric 10.0 Pt)))) ]) , SoftBreak , Code "typ/layout/grid-auto-shrink-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 11.0 Pt)) ]) , SoftBreak , Code "typ/layout/grid-auto-shrink-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 4)) , NormalArg (Block (Content [ Text "Hello!" ])) , NormalArg (Block (Content [ Text "Hello" , Space , Text "there," , Space , Text "my" , Space , Text "friend!" ])) , NormalArg (Block (Content [ Text "Hello" , Space , Text "there," , Space , Text "my" , Space , Text "friends!" , Space , Text "Hi!" ])) , NormalArg (Block (Content [ Text "Hello" , Space , Text "there," , Space , Text "my" , Space , Text "friends!" , Space , Text "Hi!" , Space , Text "What" , Space , Text "is" , Space , Text "going" , Space , Text "on" , Space , Text "right" , Space , Text "now?" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], size: 11.0pt), table(children: (text(body: [Hello!], size: 11.0pt), text(body: [Hello there, my friend!], size: 11.0pt), text(body: [Hello there, my friends! Hi!], size: 11.0pt), text(body: [Hello there, my friends! Hi! What is going on right now?], size: 11.0pt)), columns: 4), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-auto-shrink-00.typ0000644000000000000000000000034007346545000020502 0ustar0000000000000000#set page(width: 210mm - 2 * 2.5cm + 2 * 10pt) #set text(11pt) #table( columns: 4, [Hello!], [Hello there, my friend!], [Hello there, my friends! Hi!], [Hello there, my friends! Hi! What is going on right now?], ) typst-0.8.0.2/test/typ/layout/grid-rtl-00.out0000644000000000000000000000426307346545000017042 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-rtl-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-rtl-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-rtl-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-rtl-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , BulletListItem [ Text "\1502\1497\1502\1497\1503" , Space , Text "\1500\1513\1502\1488\1500" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], dir: rtl), list(children: ({ text(body: [מימין לשמאל], dir: rtl), parbreak() })) }) typst-0.8.0.2/test/typ/layout/grid-rtl-00.typ0000644000000000000000000000005507346545000017042 0ustar0000000000000000#set text(dir: rtl) - מימין לשמאל typst-0.8.0.2/test/typ/layout/grid-rtl-01.out0000644000000000000000000000524007346545000017037 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/grid-rtl-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/grid-rtl-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/grid-rtl-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/grid-rtl-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Code "typ/layout/grid-rtl-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , BlockArg [ Text "A" ] , BlockArg [ Text "B" ] , BlockArg [ Text "C" ] , BlockArg [ Text "D" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], dir: rtl), table(children: (text(body: [A], dir: rtl), text(body: [B], dir: rtl), text(body: [C], dir: rtl), text(body: [D], dir: rtl)), columns: 2), parbreak() }) typst-0.8.0.2/test/typ/layout/grid-rtl-01.typ0000644000000000000000000000006307346545000017042 0ustar0000000000000000#set text(dir: rtl) #table(columns: 2)[A][B][C][D] typst-0.8.0.2/test/typ/layout/hide-00.out0000644000000000000000000000520107346545000016220 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/hide-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/hide-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/hide-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "AB" , Space , Code "typ/layout/hide-00.typ" ( line 2 , column 5 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "CD" , Space , HardBreak , Code "typ/layout/hide-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "hide")) [ BlockArg [ Text "A" ] ]) , Text "B" , Space , Code "typ/layout/hide-00.typ" ( line 3 , column 12 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "C" , Code "typ/layout/hide-00.typ" ( line 3 , column 21 ) (FuncCall (Ident (Identifier "hide")) [ BlockArg [ Text "D" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ AB ]), h(amount: 1.0fr), text(body: [ CD ]), linebreak(), hide(body: text(body: [A])), text(body: [B ]), h(amount: 1.0fr), text(body: [ C]), hide(body: text(body: [D])), parbreak() }) typst-0.8.0.2/test/typ/layout/hide-00.typ0000644000000000000000000000005407346545000016226 0ustar0000000000000000AB #h(1fr) CD \ #hide[A]B #h(1fr) C#hide[D] typst-0.8.0.2/test/typ/layout/list-00.out0000644000000000000000000000434107346545000016266 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Emph [ Text "Shopping" , Space , Text "list" ] , SoftBreak , Code "typ/layout/list-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "list")) [ BlockArg [ Text "Apples" ] , BlockArg [ Text "Potatoes" ] , BlockArg [ Text "Juice" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), emph(body: text(body: [Shopping list])), text(body: [ ]), list(children: (text(body: [Apples]), text(body: [Potatoes]), text(body: [Juice]))), parbreak() }) typst-0.8.0.2/test/typ/layout/list-00.typ0000644000000000000000000000006007346545000016265 0ustar0000000000000000_Shopping list_ #list[Apples][Potatoes][Juice] typst-0.8.0.2/test/typ/layout/list-01.out0000644000000000000000000000657207346545000016277 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , BulletListItem [ Text "First" , Space , Text "level" , Text "." , ParBreak , BulletListItem [ Text "Second" , Space , Text "level" , Text "." , SoftBreak , Text "There" , Space , Text "are" , Space , Text "multiple" , Space , Text "paragraphs" , Text "." , ParBreak , BulletListItem [ Text "Third" , Space , Text "level" , Text "." , SoftBreak ] , SoftBreak , Text "Still" , Space , Text "the" , Space , Text "same" , Space , Text "bullet" , Space , Text "point" , Text "." , SoftBreak ] , SoftBreak , BulletListItem [ Text "Still" , Space , Text "level" , Space , Text "2" , Text "." , SoftBreak ] ] , SoftBreak , BulletListItem [ Text "At" , Space , Text "the" , Space , Text "top" , Text "." , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: ({ text(body: [First level.]), parbreak(), list(children: ({ text(body: [Second level. There are multiple paragraphs.]), parbreak(), list(children: (text(body: [Third level. ]))), text(body: [Still the same bullet point. ]) }, text(body: [Still level 2. ]))) }, { text(body: [At the top.]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-01.typ0000644000000000000000000000023707346545000016274 0ustar0000000000000000- First level. - Second level. There are multiple paragraphs. - Third level. Still the same bullet point. - Still level 2. - At the top. typst-0.8.0.2/test/typ/layout/list-02.out0000644000000000000000000000512107346545000016265 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , BulletListItem [ Text "Level" , Space , Text "1" , SoftBreak , BulletListItem [ Text "Level" , Space , Code "typ/layout/list-02.typ" ( line 3 , column 12 ) (Block (Content [ SoftBreak , Text "2" , Space , Text "through" , Space , Text "content" , Space , Text "block" , ParBreak ])) , ParBreak ] ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: ({ text(body: [Level 1 ]), list(children: ({ text(body: [Level ]), text(body: [ 2 through content block]), parbreak(), parbreak() })) })) }) typst-0.8.0.2/test/typ/layout/list-02.typ0000644000000000000000000000006207346545000016271 0ustar0000000000000000- Level 1 - Level #[ 2 through content block ] typst-0.8.0.2/test/typ/layout/list-03.out0000644000000000000000000000375707346545000016303 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , BulletListItem [ Text "Top" , Text "-" , Text "level" , Space , Text "indent" ] , SoftBreak , BulletListItem [ Text "is" , Space , Text "fine" , Text "." , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: (text(body: [Top-level indent]), { text(body: [is fine.]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-03.typ0000644000000000000000000000004107346545000016267 0ustar0000000000000000 - Top-level indent - is fine. typst-0.8.0.2/test/typ/layout/list-04.out0000644000000000000000000000417007346545000016272 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , BulletListItem [ Text "A" , SoftBreak , BulletListItem [ Text "B" ] , SoftBreak , BulletListItem [ Text "C" ] ] , SoftBreak , BulletListItem [ Text "D" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), list(children: ({ text(body: [A ]), list(children: (text(body: [B]), text(body: [C]))) }, { text(body: [D]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-04.typ0000644000000000000000000000003207346545000016270 0ustar0000000000000000 - A - B - C - D typst-0.8.0.2/test/typ/layout/list-05.out0000644000000000000000000000407107346545000016273 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Space , Text "-" , Space , Text "A" , Space , Text "with" , Space , Text "1" , Space , Text "tab" , SoftBreak , BulletListItem [ Text "B" , Space , Text "with" , Space , Text "2" , Space , Text "tabs" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ - A with 1 tab ]), list(children: ({ text(body: [B with 2 tabs]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-05.typ0000644000000000000000000000012507346545000016274 0ustar0000000000000000// This works because tabs are used consistently. - A with 1 tab - B with 2 tabs typst-0.8.0.2/test/typ/layout/list-06.out0000644000000000000000000000407707346545000016302 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Space , Text "-" , Space , Text "A" , Space , Text "with" , Space , Text "2" , Space , Text "spaces" , SoftBreak , BulletListItem [ Text "B" , Space , Text "with" , Space , Text "2" , Space , Text "tabs" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ - A with 2 spaces ]), list(children: ({ text(body: [B with 2 tabs]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-06.typ0000644000000000000000000000013607346545000016277 0ustar0000000000000000// This doesn't work because of mixed tabs and spaces. - A with 2 spaces - B with 2 tabs typst-0.8.0.2/test/typ/layout/list-07.out0000644000000000000000000000363007346545000016275 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , BulletListItem [] , SoftBreak , Text "Not" , Space , Text "in" , Space , Text "list" , SoftBreak , Text "-" , Text "Nope" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), list(children: ({ })), text(body: [Not in list -Nope]), parbreak() }) typst-0.8.0.2/test/typ/layout/list-07.typ0000644000000000000000000000004407346545000016276 0ustar0000000000000000// Edge cases. - Not in list -Nope typst-0.8.0.2/test/typ/layout/list-08.out0000644000000000000000000000444507346545000016303 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-08.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "horizon")) ]) , ParBreak , BulletListItem [ Text "ABCDEF" , HardBreak , Text "GHIJKL" , HardBreak , Text "MNOPQR" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), list(children: ({ text(body: [ABCDEF]), linebreak(), text(body: [GHIJKL]), linebreak(), text(body: [MNOPQR]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-08.typ0000644000000000000000000000012307346545000016275 0ustar0000000000000000// Alignment shouldn't affect marker #set align(horizon) - ABCDEF\ GHIJKL\ MNOPQR typst-0.8.0.2/test/typ/layout/list-attach-00.out0000644000000000000000000000435507346545000017535 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Attached" , Space , Text "to" , Text ":" , SoftBreak , BulletListItem [ Text "the" , Space , Text "bottom" ] , SoftBreak , BulletListItem [ Text "of" , Space , Text "the" , Space , Text "paragraph" , SoftBreak ] , SoftBreak , Text "Next" , Space , Text "paragraph" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Attached to: ]), list(children: (text(body: [the bottom]), text(body: [of the paragraph ]))), text(body: [Next paragraph.]), parbreak() }) typst-0.8.0.2/test/typ/layout/list-attach-00.typ0000644000000000000000000000013407346545000017531 0ustar0000000000000000// Test basic attached list. Attached to: - the bottom - of the paragraph Next paragraph. typst-0.8.0.2/test/typ/layout/list-attach-01.out0000644000000000000000000000444707346545000017540 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-attach-01.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "list"))) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "above") (Literal (Numeric 100.0 Pt)) ])) , SoftBreak , Text "Hello" , SoftBreak , BulletListItem [ Text "A" ] , SoftBreak , Text "World" , SoftBreak , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hello ]), list(children: (text(body: [A]))), text(body: [World ]), list(children: ({ text(body: [B]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-attach-01.typ0000644000000000000000000000016507346545000017536 0ustar0000000000000000// Test that attached list isn't affected by block spacing. #show list: set block(above: 100pt) Hello - A World - B typst-0.8.0.2/test/typ/layout/list-attach-02.out0000644000000000000000000000412507346545000017532 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Text "Hello" , ParBreak , BulletListItem [ Text "A" , SoftBreak ] , SoftBreak , Text "World" , SoftBreak , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello]), parbreak(), list(children: (text(body: [A ]))), text(body: [World ]), list(children: ({ text(body: [B]), parbreak() })) }) typst-0.8.0.2/test/typ/layout/list-attach-02.typ0000644000000000000000000000014707346545000017537 0ustar0000000000000000// Test non-attached list followed by attached list, // separated by only word. Hello - A World - B typst-0.8.0.2/test/typ/layout/list-attach-03.out0000644000000000000000000000464607346545000017543 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-attach-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 15.0 Pt)) ]) , SoftBreak , Text "Hello" , SoftBreak , BulletListItem [ Text "A" ] , SoftBreak , Text "World" , ParBreak , BulletListItem [ Text "B" ] , SoftBreak , BulletListItem [ Text "C" , SoftBreak ] , SoftBreak , Text "More" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hello ]), list(children: (text(body: [A]))), text(body: [World]), parbreak(), list(children: (text(body: [B]), text(body: [C ]))), text(body: [More.]), parbreak() }) typst-0.8.0.2/test/typ/layout/list-attach-03.typ0000644000000000000000000000013407346545000017534 0ustar0000000000000000// Test non-attached tight list. #set block(spacing: 15pt) Hello - A World - B - C More. typst-0.8.0.2/test/typ/layout/list-attach-04.out0000644000000000000000000000433607346545000017540 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-attach-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 15.0 Pt)) ]) , SoftBreak , Text "Hello" , SoftBreak , BulletListItem [ Text "A" , SoftBreak ] , SoftBreak , BulletListItem [ Text "B" ] , SoftBreak , Text "World" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Hello ]), list(children: (text(body: [A ]), text(body: [B]))), text(body: [World]), parbreak() }) typst-0.8.0.2/test/typ/layout/list-attach-04.typ0000644000000000000000000000012607346545000017536 0ustar0000000000000000// Test that wide lists cannot be ... #set block(spacing: 15pt) Hello - A - B World typst-0.8.0.2/test/typ/layout/list-attach-05.out0000644000000000000000000000434707346545000017543 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-attach-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-attach-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-attach-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Hello" , SoftBreak , Code "typ/layout/list-attach-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "list")) [ KeyValArg (Identifier "tight") (Literal (Boolean False)) , BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) , SoftBreak , Text "World" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hello ]), list(children: (text(body: [A]), text(body: [B])), tight: false), text(body: [ World]), parbreak() }) typst-0.8.0.2/test/typ/layout/list-attach-05.typ0000644000000000000000000000010007346545000017527 0ustar0000000000000000// ... even if forced to. Hello #list(tight: false)[A][B] World typst-0.8.0.2/test/typ/layout/list-marker-00.out0000644000000000000000000000426507346545000017552 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-marker-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-marker-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-marker-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-marker-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (Block (Content [ EnDash ])) ]) , SoftBreak , BulletListItem [ Text "A" ] , SoftBreak , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(children: (text(body: [A]), { text(body: [B]), parbreak() }), marker: text(body: [–])) }) typst-0.8.0.2/test/typ/layout/list-marker-00.typ0000644000000000000000000000006207346545000017546 0ustar0000000000000000// Test en-dash. #set list(marker: [--]) - A - B typst-0.8.0.2/test/typ/layout/list-marker-01.out0000644000000000000000000000560107346545000017546 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-marker-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-marker-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-marker-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-marker-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (Array [ Reg (Block (Content [ EnDash ])) , Reg (Block (Content [ Text "\8226" ])) ]) ]) , SoftBreak , BulletListItem [ Text "A" , SoftBreak , BulletListItem [ Text "B" , SoftBreak , BulletListItem [ Text "C" , ParBreak ] ] ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(children: ({ text(body: [A ]), list(children: ({ text(body: [B ]), list(children: ({ text(body: [C]), parbreak() }), marker: (text(body: [–]), text(body: [•]))) }), marker: (text(body: [–]), text(body: [•]))) }), marker: (text(body: [–]), text(body: [•]))) }) typst-0.8.0.2/test/typ/layout/list-marker-01.typ0000644000000000000000000000013007346545000017543 0ustar0000000000000000// Test that last item is repeated. #set list(marker: ([--], [•])) - A - B - C typst-0.8.0.2/test/typ/layout/list-marker-02.out0000644000000000000000000000610307346545000017545 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-marker-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-marker-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-marker-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-marker-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (FuncExpr [ NormalParam (Identifier "n") ] (If [ ( Equals (Ident (Identifier "n")) (Literal (Int 1)) , Block (Content [ EnDash ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\8226" ]) ) ])) ]) , SoftBreak , BulletListItem [ Text "A" ] , SoftBreak , BulletListItem [ Text "B" , SoftBreak , BulletListItem [ Text "C" ] , SoftBreak , BulletListItem [ Text "D" , SoftBreak , BulletListItem [ Text "E" ] ] ] , SoftBreak , BulletListItem [ Text "F" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(children: (text(body: [A]), { text(body: [B ]), list(children: (text(body: [C]), { text(body: [D ]), list(children: (text(body: [E])), marker: ) }), marker: ) }, { text(body: [F]), parbreak() }), marker: ) }) typst-0.8.0.2/test/typ/layout/list-marker-02.typ0000644000000000000000000000014507346545000017552 0ustar0000000000000000// Test function. #set list(marker: n => if n == 1 [--] else [•]) - A - B - C - D - E - F typst-0.8.0.2/test/typ/layout/list-marker-03.out0000644000000000000000000000455307346545000017555 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/list-marker-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/list-marker-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/list-marker-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/list-marker-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "list")) [ KeyValArg (Identifier "marker") (Block (Content [ BulletListItem [] ])) ]) , SoftBreak , BulletListItem [ Text "Bare" , Space , Text "hyphen" , Space , Text "is" ] , SoftBreak , BulletListItem [ Text "a" , Space , Text "bad" , Space , Text "marker" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), list(children: (text(body: [Bare hyphen is]), { text(body: [a bad marker]), parbreak() }), marker: list(children: ({ }))) }) typst-0.8.0.2/test/typ/layout/list-marker-03.typ0000644000000000000000000000016507346545000017555 0ustar0000000000000000// Test that bare hyphen doesn't lead to cycles and crashes. #set list(marker: [-]) - Bare hyphen is - a bad marker typst-0.8.0.2/test/typ/layout/list-marker-04.out0000644000000000000000000000002107346545000017540 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/list-marker-04.typ0000644000000000000000000000011507346545000017551 0ustar0000000000000000// Error: 19-21 array must contain at least one marker #set list(marker: ()) typst-0.8.0.2/test/typ/layout/pad-00.out0000644000000000000000000001032407346545000016055 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pad-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pad-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pad-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/pad-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "pad")) [ KeyValArg (Identifier "left") (Literal (Numeric 10.0 Pt)) , NormalArg (Block (Content [ Text "Indented!" ])) ]) , ParBreak , Comment , Code "typ/layout/pad-00.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/pad-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , NormalArg (FuncCall (Ident (Identifier "pad")) [ NormalArg (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "right") (Literal (Numeric 20.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eb5278")) ]) ]) ]) ]) , ParBreak , Text "Hi" , Space , Code "typ/layout/pad-00.typ" ( line 13 , column 5 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "pad")) [ KeyValArg (Identifier "left") (Literal (Numeric 10.0 Pt)) , BlockArg [ Text "A" ] ]) ]) , Space , Text "there" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), pad(body: text(body: [Indented!]), left: 10.0pt), parbreak(), text(body: [ ]), rect(body: pad(body: rect(fill: rgb(92%,32%,47%,100%), height: 20.0pt, inset: 0.0pt, width: 20.0pt), rest: 10.0pt, right: 20.0pt), fill: rgb(18%,80%,25%,100%), inset: 0.0pt), parbreak(), text(body: [Hi ]), box(body: pad(body: text(body: [A]), left: 10.0pt)), text(body: [ there]), parbreak() }) typst-0.8.0.2/test/typ/layout/pad-00.typ0000644000000000000000000000036307346545000016064 0ustar0000000000000000// Use for indentation. #pad(left: 10pt, [Indented!]) // All sides together. #set rect(inset: 0pt) #rect(fill: green, pad(10pt, right: 20pt, rect(width: 20pt, height: 20pt, fill: rgb("eb5278")) ) ) Hi #box(pad(left: 10pt)[A]) there typst-0.8.0.2/test/typ/layout/pad-01.out0000644000000000000000000000473007346545000016062 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pad-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pad-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pad-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/pad-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "pad")) [ KeyValArg (Identifier "left") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "right") (Literal (Numeric 10.0 Pt)) , BlockArg [ Text "PL" , Space , Code "typ/layout/pad-01.typ" ( line 3 , column 35 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "PR" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), pad(body: { text(body: [PL ]), h(amount: 1.0fr), text(body: [ PR]) }, left: 10.0pt, right: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/pad-01.typ0000644000000000000000000000007707346545000016067 0ustar0000000000000000// Pad can grow. #pad(left: 10pt, right: 10pt)[PL #h(1fr) PR] typst-0.8.0.2/test/typ/layout/pad-02.out0000644000000000000000000000577307346545000016073 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pad-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pad-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pad-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/pad-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 6.0 Cm)) ]) , SoftBreak , Code "typ/layout/pad-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "left")) , BlockArg [ Text "Before" ] ]) , SoftBreak , Code "typ/layout/pad-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "pad")) [ NormalArg (Literal (Numeric 10.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) ]) ]) , SoftBreak , Code "typ/layout/pad-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , BlockArg [ Text "After" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), align(alignment: left, body: text(body: [Before])), text(body: [ ]), pad(body: image(source: "/assets/files/tiger.jpg"), rest: 10.0pt), text(body: [ ]), align(alignment: right, body: text(body: [After])), parbreak() }) typst-0.8.0.2/test/typ/layout/pad-02.typ0000644000000000000000000000025607346545000016067 0ustar0000000000000000// Test that the pad element doesn't consume the whole region. #set page(height: 6cm) #align(left)[Before] #pad(10pt, image("/assets/files/tiger.jpg")) #align(right)[After] typst-0.8.0.2/test/typ/layout/pad-03.out0000644000000000000000000000363407346545000016066 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pad-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pad-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pad-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/pad-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "pad")) [ NormalArg (Literal (Numeric 50.0 Percent)) , BlockArg [] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), pad(body: { }, rest: 50%), parbreak() }) typst-0.8.0.2/test/typ/layout/pad-03.typ0000644000000000000000000000010307346545000016057 0ustar0000000000000000// Test that padding adding up to 100% does not panic. #pad(50%)[] typst-0.8.0.2/test/typ/layout/page-00.out0000644000000000000000000000354607346545000016235 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "page")) [ BlockArg [] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), page(body: { }), parbreak() }) typst-0.8.0.2/test/typ/layout/page-00.typ0000644000000000000000000000012507346545000016230 0ustar0000000000000000// Just empty page. // Should result in auto-sized page, just like nothing. #page[] typst-0.8.0.2/test/typ/layout/page-01.out0000644000000000000000000000421107346545000016224 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "page")) [ NormalArg (Literal (String "a11")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), page(body: [a11], fill: rgb(18%,80%,25%,100%), flipped: true), parbreak() }) typst-0.8.0.2/test/typ/layout/page-01.typ0000644000000000000000000000017407346545000016235 0ustar0000000000000000// Just empty page with styles. // Should result in one green-colored A11 page. #page("a11", flipped: true, fill: green)[] typst-0.8.0.2/test/typ/layout/page-02.out0000644000000000000000000000663407346545000016240 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) ]) , SoftBreak , Code "typ/layout/page-02.typ" ( line 5 , column 2 ) (Block (Content [ Code "typ/layout/page-02.typ" ( line 5 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) ]) , Text "High" ])) , SoftBreak , Code "typ/layout/page-02.typ" ( line 6 , column 2 ) (Block (Content [ Code "typ/layout/page-02.typ" ( line 6 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 40.0 Pt)) ]) , Text "Wide" ])) , ParBreak , Comment , Code "typ/layout/page-02.typ" ( line 9 , column 2 ) (Block (Content [ Code "typ/layout/page-02.typ" ( line 9 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a11")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) ]) , Text "Flipped" , Space , Text "A11" ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [High]), text(body: [ ]), text(body: [Wide]), parbreak(), text(body: [Flipped A11]), parbreak() }) typst-0.8.0.2/test/typ/layout/page-02.typ0000644000000000000000000000040207346545000016230 0ustar0000000000000000// Set width and height. // Should result in one high and one wide page. #set page(width: 80pt, height: 80pt) #[#set page(width: 40pt);High] #[#set page(height: 40pt);Wide] // Flipped predefined paper. #[#set page(paper: "a11", flipped: true);Flipped A11] typst-0.8.0.2/test/typ/layout/page-03.out0000644000000000000000000000667407346545000016245 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/page-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , SoftBreak , Code "typ/layout/page-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 15.0 Pt)) , KeyValArg (Identifier "font") (Literal (String "Roboto")) , KeyValArg (Identifier "fill") (Ident (Identifier "white")) , NormalArg (FuncCall (Ident (Identifier "smallcaps")) [ BlockArg [ Text "Typst" ] ]) ]) , SoftBreak , Code "typ/layout/page-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "fill") (Literal None) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "top") , Literal (Numeric 10.0 Pt) ) , Reg ( Ident (Identifier "rest") , Literal Auto ) ]) , BlockArg [ Text "Hi" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: smallcaps(body: text(body: [Typst])), fill: rgb(100%,100%,100%,100%), font: "Roboto", size: 15.0pt), text(body: [ ]), page(body: text(body: [Hi]), fill: none, height: 40.0pt, margin: (top: 10.0pt, rest: auto), width: 40.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/page-03.typ0000644000000000000000000000030707346545000016235 0ustar0000000000000000// Test page fill. #set page(width: 80pt, height: 40pt, fill: eastern) #text(15pt, font: "Roboto", fill: white, smallcaps[Typst]) #page(width: 40pt, fill: none, margin: (top: 10pt, rest: auto))[Hi] typst-0.8.0.2/test/typ/layout/page-04.out0000644000000000000000000000450707346545000016237 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "page")) [ NormalArg (Literal (String "a11")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) , BlockArg [] ]) , SoftBreak , Code "typ/layout/page-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), page(body: [a11], fill: rgb(100%,25%,21%,100%), flipped: true), text(body: [ ]), pagebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/page-04.typ0000644000000000000000000000024107346545000016233 0ustar0000000000000000// Just page followed by pagebreak. // Should result in one red-colored A11 page and one auto-sized page. #page("a11", flipped: true, fill: red)[] #pagebreak() typst-0.8.0.2/test/typ/layout/page-05.out0000644000000000000000000001155207346545000016236 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/layout/page-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) , NormalArg (Block (CodeBlock [ FuncCall (Ident (Identifier "layout")) [ NormalArg (FuncExpr [ NormalParam (Identifier "size") ] (Block (Content [ Text "This" , Space , Text "page" , Space , Text "has" , Space , Text "a" , Space , Text "width" , Space , Text "of" , Space , Code "typ/layout/page-05.typ" ( line 5 , column 45 ) (FieldAccess (Ident (Identifier "width")) (Ident (Identifier "size"))) , Space , Text "and" , Space , Text "height" , Space , Text "of" , Space , Code "typ/layout/page-05.typ" ( line 5 , column 71 ) (FieldAccess (Ident (Identifier "height")) (Ident (Identifier "size"))) , Space ]))) ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Em)) ] , FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "left")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "stroke") (Ident (Identifier "blue")) ]) ] ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), page(body: { layout(func: ), h(amount: 1.0em), place(alignment: left, body: rect(stroke: rgb(0%,45%,85%,100%), width: 80.0pt)) }, height: 100.0pt, width: 100.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/page-05.typ0000644000000000000000000000041707346545000016241 0ustar0000000000000000// Layout without any container should provide the page's dimensions, minus its margins. #page(width: 100pt, height: 100pt, { layout(size => [This page has a width of #size.width and height of #size.height ]) h(1em) place(left, rect(width: 80pt, stroke: blue)) }) typst-0.8.0.2/test/typ/layout/page-margin-00.out0000644000000000000000000000636407346545000017511 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-margin-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-margin-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-margin-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/page-margin-00.typ" ( line 3 , column 2 ) (Block (Content [ SoftBreak , Code "typ/layout/page-margin-00.typ" ( line 4 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/page-margin-00.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "top")) (Ident (Identifier "left"))) , BlockArg [ Text "TL" ] ]) , SoftBreak , Code "typ/layout/page-margin-00.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "bottom")) (Ident (Identifier "right"))) , BlockArg [ Text "BR" ] ]) , ParBreak ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), place(alignment: Axes(left, top), body: text(body: [TL])), text(body: [ ]), place(alignment: Axes(right, bottom), body: text(body: [BR])), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/page-margin-00.typ0000644000000000000000000000017707346545000017512 0ustar0000000000000000// Set all margins at once. #[ #set page(height: 20pt, margin: 5pt) #place(top + left)[TL] #place(bottom + right)[BR] ] typst-0.8.0.2/test/typ/layout/page-margin-01.out0000644000000000000000000001455507346545000017513 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-margin-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-margin-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-margin-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/page-margin-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 40.0 Pt)) ]) , SoftBreak , Code "typ/layout/page-margin-01.typ" ( line 4 , column 2 ) (Block (Content [ Code "typ/layout/page-margin-01.typ" ( line 4 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "left") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code "typ/layout/page-margin-01.typ" ( line 4 , column 36 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "left")) , BlockArg [ Text "Left" ] ]) ])) , SoftBreak , Code "typ/layout/page-margin-01.typ" ( line 5 , column 2 ) (Block (Content [ Code "typ/layout/page-margin-01.typ" ( line 5 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "right") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code "typ/layout/page-margin-01.typ" ( line 5 , column 37 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , BlockArg [ Text "Right" ] ]) ])) , SoftBreak , Code "typ/layout/page-margin-01.typ" ( line 6 , column 2 ) (Block (Content [ Code "typ/layout/page-margin-01.typ" ( line 6 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "top") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code "typ/layout/page-margin-01.typ" ( line 6 , column 35 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "top")) , BlockArg [ Text "Top" ] ]) ])) , SoftBreak , Code "typ/layout/page-margin-01.typ" ( line 7 , column 2 ) (Block (Content [ Code "typ/layout/page-margin-01.typ" ( line 7 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 0.0 Pt) ) ]) ]) , Space , Code "typ/layout/page-margin-01.typ" ( line 7 , column 38 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) , BlockArg [ Text "Bottom" ] ]) ])) , ParBreak , Comment , Code "typ/layout/page-margin-01.typ" ( line 10 , column 2 ) (Block (Content [ Code "typ/layout/page-margin-01.typ" ( line 10 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "rest") , Literal (Numeric 0.0 Pt) ) , Reg ( Ident (Identifier "left") , Literal (Numeric 20.0 Pt) ) ]) ]) , Space , Text "Overridden" ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), align(alignment: left, body: text(body: [Left])), text(body: [ ]), text(body: [ ]), align(alignment: right, body: text(body: [Right])), text(body: [ ]), text(body: [ ]), align(alignment: top, body: text(body: [Top])), text(body: [ ]), text(body: [ ]), align(alignment: bottom, body: text(body: [Bottom])), parbreak(), text(body: [ Overridden]), parbreak() }) typst-0.8.0.2/test/typ/layout/page-margin-01.typ0000644000000000000000000000060607346545000017510 0ustar0000000000000000// Set individual margins. #set page(height: 40pt) #[#set page(margin: (left: 0pt)); #align(left)[Left]] #[#set page(margin: (right: 0pt)); #align(right)[Right]] #[#set page(margin: (top: 0pt)); #align(top)[Top]] #[#set page(margin: (bottom: 0pt)); #align(bottom)[Bottom]] // Ensure that specific margins override general margins. #[#set page(margin: (rest: 0pt, left: 20pt)); Overridden] typst-0.8.0.2/test/typ/layout/page-marginals-00.out0000644000000000000000000002136007346545000020202 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-marginals-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-marginals-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-marginals-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/page-marginals-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a8")) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "x") , Literal (Numeric 15.0 Pt) ) , Reg ( Ident (Identifier "y") , Literal (Numeric 30.0 Pt) ) ]) , KeyValArg (Identifier "header") (Block (CodeBlock [ FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "eastern")) , BlockArg [ Strong [ Text "Typst" ] ] ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ] , FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 0.8 Em)) , BlockArg [ Emph [ Text "Chapter" , Space , Text "1" ] ] ] ])) , KeyValArg (Identifier "footer") (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ Text "~" , Space , Code "typ/layout/page-marginals-00.typ" ( line 10 , column 29 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "page")) ])) []) , Space , Text "~" ] ]) , KeyValArg (Identifier "background") (FuncCall (FieldAccess (Ident (Identifier "display")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "page")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "n") ] (If [ ( LessThanOrEqual (Ident (Identifier "n")) (Literal (Int 2)) , Block (CodeBlock [ FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "radius") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "luma")) [ NormalArg (Literal (Numeric 90.0 Percent)) ]) ]) ] ]) ) ])) ]) ]) , ParBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , SoftBreak , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , Space , Text "Arise," , Space , Text "fair" , Space , Text "sun," , Space , Text "and" , Space , Text "kill" , Space , Text "the" , Space , Text "envious" , Space , Text "moon," , Space , Text "Who" , Space , Text "is" , Space , Text "already" , Space , Text "sick" , Space , Text "and" , SoftBreak , Text "pale" , Space , Text "with" , Space , Text "grief," , Space , Text "That" , Space , Text "thou" , Space , Text "her" , Space , Text "maid" , Space , Text "art" , Space , Text "far" , Space , Text "more" , Space , Text "fair" , Space , Text "than" , Space , Text "she" , Text ":" , Space , Text "Be" , Space , Text "not" , Space , Text "her" , Space , Text "maid," , SoftBreak , Text "since" , Space , Text "she" , Space , Text "is" , Space , Text "envious;" , Space , Text "Her" , Space , Text "vestal" , Space , Text "livery" , Space , Text "is" , Space , Text "but" , Space , Text "sick" , Space , Text "and" , Space , Text "green" , Space , Text "And" , Space , Text "none" , Space , Text "but" , Space , Text "fools" , SoftBreak , Text "do" , Space , Text "wear" , Space , Text "it;" , Space , Text "cast" , Space , Text "it" , Space , Text "off" , Text "." , Space , Text "It" , Space , Text "is" , Space , Text "my" , Space , Text "lady," , Space , Text "O," , Space , Text "it" , Space , Text "is" , Space , Text "my" , Space , Text "love!" , Space , Text "O," , Space , Text "that" , Space , Text "she" , Space , Text "knew" , Space , Text "she" , SoftBreak , Text "were!" , Space , Text "She" , Space , Text "speaks" , Space , Text "yet" , Space , Text "she" , Space , Text "says" , Space , Text "nothing" , Text ":" , Space , Text "what" , Space , Text "of" , Space , Text "that?" , Space , Text "Her" , Space , Text "eye" , Space , Text "discourses;" , Space , Text "I" , Space , Text "will" , SoftBreak , Text "answer" , Space , Text "it" , Text "." , ParBreak , Code "typ/layout/page-marginals-00.typ" ( line 24 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "header") (Literal None) , KeyValArg (Identifier "height") (Literal Auto) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "top") , Literal (Numeric 15.0 Pt) ) , Reg ( Ident (Identifier "bottom") , Literal (Numeric 25.0 Pt) ) ]) ]) , SoftBreak , Text "The" , Space , Text "END" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it.]), parbreak(), text(body: [ The END.]), parbreak() }) typst-0.8.0.2/test/typ/layout/page-marginals-00.typ0000644000000000000000000000160207346545000020204 0ustar0000000000000000#set page( paper: "a8", margin: (x: 15pt, y: 30pt), header: { text(eastern)[*Typst*] h(1fr) text(0.8em)[_Chapter 1_] }, footer: align(center)[\~ #counter(page).display() \~], background: counter(page).display(n => if n <= 2 { place(center + horizon, circle(radius: 1cm, fill: luma(90%))) }) ) But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it. #set page(header: none, height: auto, margin: (top: 15pt, bottom: 25pt)) The END. typst-0.8.0.2/test/typ/layout/page-style-00.out0000644000000000000000000000401007346545000017356 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-style-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-style-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-style-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-style-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a11")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/layout/page-style-00.typ0000644000000000000000000000016307346545000017370 0ustar0000000000000000// Empty with styles // Should result in one green-colored A11 page. #set page("a11", flipped: true, fill: green) typst-0.8.0.2/test/typ/layout/page-style-01.out0000644000000000000000000000412507346545000017366 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-style-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-style-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-style-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-style-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , SoftBreak , Code "typ/layout/page-style-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), pagebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/page-style-01.typ0000644000000000000000000000016607346545000017374 0ustar0000000000000000// Empty with styles and then pagebreak // Should result in two red-colored pages. #set page(fill: red) #pagebreak() typst-0.8.0.2/test/typ/layout/page-style-02.out0000644000000000000000000000455007346545000017371 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-style-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-style-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-style-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-style-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a4")) ]) , SoftBreak , Code "typ/layout/page-style-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a5")) ]) , SoftBreak , Code "typ/layout/page-style-02.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Cm)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/layout/page-style-02.typ0000644000000000000000000000022007346545000017364 0ustar0000000000000000// Empty with multiple page styles. // Should result in a small white page. #set page("a4") #set page("a5") #set page(width: 1cm, height: 1cm) typst-0.8.0.2/test/typ/layout/page-style-03.out0000644000000000000000000000622007346545000017366 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/page-style-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/page-style-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/page-style-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/page-style-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a4")) ]) , SoftBreak , Code "typ/layout/page-style-03.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a5")) ]) , SoftBreak , Code "typ/layout/page-style-03.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a11")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , SoftBreak , Code "typ/layout/page-style-03.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) , NormalArg (Ident (Identifier "white")) ]) , SoftBreak , Code "typ/layout/page-style-03.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "smallcaps")) [ BlockArg [ Text "Typst" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ], color: rgb(100%,100%,100%,100%), font: "Roboto"), smallcaps(body: text(body: [Typst], color: rgb(100%,100%,100%,100%), font: "Roboto")), parbreak() }) typst-0.8.0.2/test/typ/layout/page-style-03.typ0000644000000000000000000000033007346545000017367 0ustar0000000000000000// Empty with multiple page styles. // Should result in one eastern-colored A11 page. #set page("a4") #set page("a5") #set page("a11", flipped: true, fill: eastern) #set text(font: "Roboto", white) #smallcaps[Typst] typst-0.8.0.2/test/typ/layout/pagebreak-00.out0000644000000000000000000000355507346545000017242 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pagebreak-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pagebreak-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pagebreak-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/pagebreak-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), pagebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/pagebreak-00.typ0000644000000000000000000000010207346545000017230 0ustar0000000000000000// Just a pagebreak. // Should result in two pages. #pagebreak() typst-0.8.0.2/test/typ/layout/pagebreak-01.out0000644000000000000000000000454007346545000017236 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pagebreak-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pagebreak-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pagebreak-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/pagebreak-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Code "typ/layout/pagebreak-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , SoftBreak , Code "typ/layout/pagebreak-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), pagebreak(), text(body: [ ]), text(body: [ ]), pagebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/pagebreak-01.typ0000644000000000000000000000027707346545000017246 0ustar0000000000000000// Pagebreak, empty with styles and then pagebreak // Should result in one auto-sized page and two green-colored 2cm wide pages. #pagebreak() #set page(width: 2cm, fill: green) #pagebreak() typst-0.8.0.2/test/typ/layout/pagebreak-02.out0000644000000000000000000000541507346545000017241 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pagebreak-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pagebreak-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pagebreak-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/pagebreak-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "fill") (Ident (Identifier "aqua")) ]) , SoftBreak , Code "typ/layout/pagebreak-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) [ KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , SoftBreak , Text "First" , SoftBreak , Code "typ/layout/pagebreak-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) [ KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , SoftBreak , Text "Second" , SoftBreak , Code "typ/layout/pagebreak-02.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) [ KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), pagebreak(weak: true), text(body: [ First ]), pagebreak(weak: true), text(body: [ Second ]), pagebreak(weak: true), parbreak() }) typst-0.8.0.2/test/typ/layout/pagebreak-02.typ0000644000000000000000000000033207346545000017237 0ustar0000000000000000// Two text bodies separated with and surrounded by weak pagebreaks. // Should result in two aqua-colored pages. #set page(fill: aqua) #pagebreak(weak: true) First #pagebreak(weak: true) Second #pagebreak(weak: true) typst-0.8.0.2/test/typ/layout/pagebreak-03.out0000644000000000000000000000731507346545000017243 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pagebreak-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pagebreak-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pagebreak-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/pagebreak-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 30.0 Pt)) ]) , SoftBreak , Code "typ/layout/pagebreak-03.typ" ( line 5 , column 2 ) (Block (Content [ Code "typ/layout/pagebreak-03.typ" ( line 5 , column 4 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 60.0 Pt)) ]) , Space , Text "First" ])) , SoftBreak , Code "typ/layout/pagebreak-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Code "typ/layout/pagebreak-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Text "Third" , SoftBreak , Code "typ/layout/pagebreak-03.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) , BlockArg [] ]) , SoftBreak , Text "Fif" , Code "typ/layout/pagebreak-03.typ" ( line 10 , column 5 ) (Block (Content [ Code "typ/layout/pagebreak-03.typ" ( line 10 , column 7 ) (Set (Ident (Identifier "page")) []) , Text "th" ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ First]), text(body: [ ]), pagebreak(), text(body: [ ]), pagebreak(), text(body: [ Third ]), page(body: { }, fill: rgb(100%,25%,21%,100%), height: 20.0pt, width: 60.0pt), text(body: [ Fif]), text(body: [th]), parbreak() }) typst-0.8.0.2/test/typ/layout/pagebreak-03.typ0000644000000000000000000000046307346545000017245 0ustar0000000000000000// Test a combination of pagebreaks, styled pages and pages with bodies. // Should result in three five pages, with the fourth one being red-colored. #set page(width: 80pt, height: 30pt) #[#set page(width: 60pt); First] #pagebreak() #pagebreak() Third #page(height: 20pt, fill: red)[] Fif#[#set page();th] typst-0.8.0.2/test/typ/layout/pagebreak-04.out0000644000000000000000000000703607346545000017244 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/pagebreak-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/pagebreak-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/pagebreak-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/pagebreak-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "fill") (Ident (Identifier "navy")) ]) , SoftBreak , Code "typ/layout/pagebreak-04.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "white")) ]) , SoftBreak , Text "First" , SoftBreak , Code "typ/layout/pagebreak-04.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Code "typ/layout/pagebreak-04.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "page")) [ BlockArg [ Text "Second" ] ]) , SoftBreak , Code "typ/layout/pagebreak-04.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) [ KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/pagebreak-04.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "page")) [ BlockArg [ Text "Third" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ First ], fill: rgb(100%,100%,100%,100%)), pagebreak(), text(body: [ ], fill: rgb(100%,100%,100%,100%)), page(body: text(body: [Second], fill: rgb(100%,100%,100%,100%)), fill: rgb(0%,12%,24%,100%)), text(body: [ ], fill: rgb(100%,100%,100%,100%)), pagebreak(weak: true), text(body: [ ], fill: rgb(100%,100%,100%,100%)), page(body: text(body: [Third], fill: rgb(100%,100%,100%,100%)), fill: rgb(0%,12%,24%,100%)), parbreak() }) typst-0.8.0.2/test/typ/layout/pagebreak-04.typ0000644000000000000000000000033407346545000017243 0ustar0000000000000000// Test hard and weak pagebreak followed by page with body. // Should result in three navy-colored pages. #set page(fill: navy) #set text(fill: white) First #pagebreak() #page[Second] #pagebreak(weak: true) #page[Third] typst-0.8.0.2/test/typ/layout/par-00.out0000644000000000000000000000425307346545000016077 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) ]) , SoftBreak , Text "To" , Space , Text "the" , Space , Text "right!" , Space , Text "Where" , Space , Text "the" , Space , Text "sunlight" , Space , Text "peeks" , Space , Text "behind" , Space , Text "the" , Space , Text "mountain" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ To the right! Where the sunlight peeks behind the mountain.]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-00.typ0000644000000000000000000000014407346545000016077 0ustar0000000000000000// Test ragged-left. #set align(right) To the right! Where the sunlight peeks behind the mountain. typst-0.8.0.2/test/typ/layout/par-01.out0000644000000000000000000000522607346545000016101 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Em)) ]) , SoftBreak , Code "typ/layout/par-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "leading") (Literal (Numeric 2.0 Pt)) ]) , SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , ParBreak , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , Space , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ But, soft! what light through yonder window breaks?]), parbreak(), text(body: [It is the east, and Juliet is the sun.]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-01.typ0000644000000000000000000000026307346545000016102 0ustar0000000000000000// Test changing leading and spacing. #set block(spacing: 1em) #set par(leading: 2pt) But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. typst-0.8.0.2/test/typ/layout/par-02.out0000644000000000000000000000667307346545000016111 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/par-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-02.typ" ( line 5 , column 2 ) (Show (Just (Ident (Identifier "table"))) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "above") (Literal (Numeric 5.0 Pt)) , KeyValArg (Identifier "below") (Literal (Numeric 5.0 Pt)) ])) , SoftBreak , Text "Hello" , SoftBreak , Code "typ/layout/par-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 4)) , KeyValArg (Identifier "fill") (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (If [ ( FuncCall (FieldAccess (Ident (Identifier "odd")) (Ident (Identifier "calc"))) [ NormalArg (Plus (Ident (Identifier "x")) (Ident (Identifier "y"))) ] , Block (CodeBlock [ Ident (Identifier "silver") ]) ) ])) , BlockArg [ Text "A" ] , BlockArg [ Text "B" ] , BlockArg [ Text "C" ] , BlockArg [ Text "D" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ Hello ]), table(children: (text(body: [A]), text(body: [B]), text(body: [C]), text(body: [D])), columns: 4, fill: ), parbreak() }) typst-0.8.0.2/test/typ/layout/par-02.typ0000644000000000000000000000034307346545000016102 0ustar0000000000000000// Test that paragraph spacing loses against block spacing. // TODO #set block(spacing: 100pt) #show table: set block(above: 5pt, below: 5pt) Hello #table(columns: 4, fill: (x, y) => if calc.odd(x + y) { silver })[A][B][C][D] typst-0.8.0.2/test/typ/layout/par-03.out0000644000000000000000000000550707346545000016105 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-03.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "raw"))) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 15.0 Pt)) ])) , SoftBreak , Code "typ/layout/par-03.typ" ( line 5 , column 2 ) (Show (Just (Ident (Identifier "list"))) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 2.5 Pt)) ])) , ParBreak , RawBlock "rust" "fn main() {}\n" , ParBreak , BulletListItem [ Text "List" , SoftBreak ] , SoftBreak , Text "Paragraph" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), raw(block: true, lang: "rust", text: "fn main() {}\n"), parbreak(), list(children: (text(body: [List ]))), text(body: [Paragraph]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-03.typ0000644000000000000000000000031207346545000016077 0ustar0000000000000000// While we're at it, test the larger block spacing wins. #set block(spacing: 0pt) #show raw: set block(spacing: 15pt) #show list: set block(spacing: 2.5pt) ```rust fn main() {} ``` - List Paragraph typst-0.8.0.2/test/typ/layout/par-bidi-00.out0000644000000000000000000000537107346545000017006 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-bidi-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "content"))) (FuncCall (Ident (Identifier "par")) [ BlockArg [ Text "Text" , Space , Text "\1496\1462\1511\1505\1496" ] ])) , SoftBreak , Code "typ/layout/par-bidi-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) , NormalArg (Ident (Identifier "content")) ]) , SoftBreak , Code "typ/layout/par-bidi-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , NormalArg (Ident (Identifier "content")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: par(body: text(body: [Text טֶקסט])), lang: "he"), text(body: [ ]), text(body: par(body: text(body: [Text טֶקסט])), lang: "de"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-00.typ0000644000000000000000000000023507346545000017005 0ustar0000000000000000// Test reordering with different top-level paragraph directions. #let content = par[Text טֶקסט] #text(lang: "he", content) #text(lang: "de", content) typst-0.8.0.2/test/typ/layout/par-bidi-01.out0000644000000000000000000000774507346545000017016 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/par-bidi-01.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "content"))) (FuncCall (Ident (Identifier "par")) [ BlockArg [ Text "\1571\1606\1578" , Space , Text "A" , Code "typ/layout/par-bidi-01.typ" ( line 4 , column 26 ) (FuncCall (Ident (Identifier "emph")) [ BlockArg [ Text "B" ] ]) , Text "\1605\1591\1585C" ] ])) , SoftBreak , Code "typ/layout/par-bidi-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Array [ Reg (Literal (String "PT Sans")) , Reg (Literal (String "Noto Sans Arabic")) ]) ]) , SoftBreak , Code "typ/layout/par-bidi-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) , NormalArg (Ident (Identifier "content")) ]) , SoftBreak , Code "typ/layout/par-bidi-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , NormalArg (Ident (Identifier "content")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: ("PT Sans", "Noto Sans Arabic")), text(body: par(body: { text(body: [أنت A]), emph(body: text(body: [B])), text(body: [مطرC]) }), font: ("PT Sans", "Noto Sans Arabic"), lang: "ar"), text(body: [ ], font: ("PT Sans", "Noto Sans Arabic")), text(body: par(body: { text(body: [أنت A]), emph(body: text(body: [B])), text(body: [مطرC]) }), font: ("PT Sans", "Noto Sans Arabic"), lang: "de"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-01.typ0000644000000000000000000000037207346545000017010 0ustar0000000000000000// Test that consecutive, embedded LTR runs stay LTR. // Here, we have two runs: "A" and italic "B". #let content = par[أنت A#emph[B]مطرC] #set text(font: ("PT Sans", "Noto Sans Arabic")) #text(lang: "ar", content) #text(lang: "de", content) typst-0.8.0.2/test/typ/layout/par-bidi-02.out0000644000000000000000000001001707346545000017001 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/par-bidi-02.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "content"))) (FuncCall (Ident (Identifier "par")) [ BlockArg [ Text "A\1490\1462" , Code "typ/layout/par-bidi-02.typ" ( line 4 , column 24 ) (FuncCall (Ident (Identifier "strong")) [ BlockArg [ Text "\1513\1473\1462" ] ]) , Text "\1501B" ] ])) , SoftBreak , Code "typ/layout/par-bidi-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Array [ Reg (Literal (String "Linux Libertine")) , Reg (Literal (String "Noto Serif Hebrew")) ]) ]) , SoftBreak , Code "typ/layout/par-bidi-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) , NormalArg (Ident (Identifier "content")) ]) , SoftBreak , Code "typ/layout/par-bidi-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , NormalArg (Ident (Identifier "content")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: ("Linux Libertine", "Noto Serif Hebrew")), text(body: par(body: { text(body: [Aגֶ]), strong(body: text(body: [שֶׁ])), text(body: [םB]) }), font: ("Linux Libertine", "Noto Serif Hebrew"), lang: "he"), text(body: [ ], font: ("Linux Libertine", "Noto Serif Hebrew")), text(body: par(body: { text(body: [Aגֶ]), strong(body: text(body: [שֶׁ])), text(body: [םB]) }), font: ("Linux Libertine", "Noto Serif Hebrew"), lang: "de"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-02.typ0000644000000000000000000000042107346545000017004 0ustar0000000000000000// Test that consecutive, embedded RTL runs stay RTL. // Here, we have three runs: "גֶ", bold "שֶׁ", and "ם". #let content = par[Aגֶ#strong[שֶׁ]םB] #set text(font: ("Linux Libertine", "Noto Serif Hebrew")) #text(lang: "he", content) #text(lang: "de", content) typst-0.8.0.2/test/typ/layout/par-bidi-03.out0000644000000000000000000000407707346545000017013 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-bidi-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Text "\1488" , Text "\8294" , Text "A" , Text "\8295" , Text "B\1489" , Text "\8297" , Text "?" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ א⁦A⁧Bב⁩?], dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-03.typ0000644000000000000000000000014407346545000017007 0ustar0000000000000000// Test embedding up to level 4 with isolates. #set text(dir: rtl) א\u{2066}A\u{2067}Bב\u{2069}? typst-0.8.0.2/test/typ/layout/par-bidi-04.out0000644000000000000000000000541407346545000017010 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-bidi-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) , KeyValArg (Identifier "font") (Array [ Reg (Literal (String "Noto Sans Arabic")) , Reg (Literal (String "PT Sans")) ]) ]) , SoftBreak , Text "Life" , Space , Text "\1575\1604\1605\1591\1585" , Space , Text "\1607\1608" , Space , Text "\1575\1604\1581\1610\1575\1577" , Space , HardBreak , Text "\1575\1604\1581\1610\1575\1577" , Space , Text "\1578\1605\1591\1585" , Space , Text "is" , Space , Text "rain" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Life المطر هو الحياة ], font: ("Noto Sans Arabic", "PT Sans"), lang: "ar"), linebreak(), text(body: [الحياة تمطر is rain.], font: ("Noto Sans Arabic", "PT Sans"), lang: "ar"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-04.typ0000644000000000000000000000030407346545000017006 0ustar0000000000000000// Test hard line break (leads to two paragraphs in unicode-bidi). #set text(lang: "ar", font: ("Noto Sans Arabic", "PT Sans")) Life المطر هو الحياة \ الحياة تمطر is rain. typst-0.8.0.2/test/typ/layout/par-bidi-05.out0000644000000000000000000000463507346545000017015 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "L" , Space , Code "typ/layout/par-bidi-05.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Cm)) ]) , Space , Text "\1512\1497\1493\1493\1495R" , Space , HardBreak , Text "L\1512\1497\1493\1493\1495" , Space , Code "typ/layout/par-bidi-05.typ" ( line 4 , column 9 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Cm)) ]) , Space , Text "R" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [L ]), h(amount: 1.0cm), text(body: [ ריווחR ]), linebreak(), text(body: [Lריווח ]), h(amount: 1.0cm), text(body: [ R]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-05.typ0000644000000000000000000000010007346545000017001 0ustar0000000000000000// Test spacing. L #h(1cm) ריווחR \ Lריווח #h(1cm) R typst-0.8.0.2/test/typ/layout/par-bidi-06.out0000644000000000000000000000514307346545000017011 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-bidi-06.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) ]) , SoftBreak , Text "\1511\1512\1504\1508\1497\1501Rh" , Code "typ/layout/par-bidi-06.typ" ( line 4 , column 10 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) , KeyValArg (Identifier "height") (Literal (Numeric 11.0 Pt)) ]) ]) , Text "ino\1495\1497\1497\1501" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ קרנפיםRh], lang: "he"), box(body: image(height: 11.0pt, source: "/assets/files/rhino.png")), text(body: [inoחיים], lang: "he"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-06.typ0000644000000000000000000000017407346545000017015 0ustar0000000000000000// Test inline object. #set text(lang: "he") קרנפיםRh#box(image("/assets/files/rhino.png", height: 11pt))inoחיים typst-0.8.0.2/test/typ/layout/par-bidi-07.out0000644000000000000000000000433207346545000017011 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-bidi-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-bidi-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-bidi-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "\1575\1604\1594\1575\1604\1576" , Space , Code "typ/layout/par-bidi-07.typ" ( line 3 , column 9 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 70.0 Pt)) ]) , Space , Text "\1606" , Code "typ/layout/par-bidi-07.typ" ( line 3 , column 19 ) (Literal (String " ")) , Text "\1577" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [الغالب ]), h(amount: 70.0pt), text(body: [ ن]), text(body: [ ]), text(body: [ة]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-bidi-07.typ0000644000000000000000000000013007346545000017006 0ustar0000000000000000// Test whether L1 whitespace resetting destroys stuff. الغالب #h(70pt) ن#" "ة typst-0.8.0.2/test/typ/layout/par-bidi-08.out0000644000000000000000000000002107346545000017001 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/par-bidi-08.typ0000644000000000000000000000017307346545000017016 0ustar0000000000000000// Test setting a vertical direction. // Ref: false // Error: 16-19 text direction must be horizontal #set text(dir: ttb) typst-0.8.0.2/test/typ/layout/par-indent-00.out0000644000000000000000000001672107346545000017361 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-indent-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-indent-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-indent-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-indent-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "first-line-indent") (Literal (Numeric 12.0 Pt)) , KeyValArg (Identifier "leading") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-indent-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-indent-00.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 10.0 Pt)) ])) , ParBreak , Text "The" , Space , Text "first" , Space , Text "paragraph" , Space , Text "has" , Space , Text "no" , Space , Text "indent" , Text "." , ParBreak , Text "But" , Space , Text "the" , Space , Text "second" , Space , Text "one" , Space , Text "does" , Text "." , ParBreak , Code "typ/layout/par-indent-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "height") (Literal (Numeric 6.0 Pt)) ]) ]) , SoftBreak , Text "starts" , Space , Text "a" , Space , Text "paragraph," , Space , Text "also" , Space , Text "with" , Space , Text "indent" , Text "." , ParBreak , Code "typ/layout/par-indent-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) , KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) ]) ]) , ParBreak , Heading 1 [ Text "Headings" ] , BulletListItem [ Text "And" , Space , Text "lists" , Text "." ] , SoftBreak , BulletListItem [ Text "Have" , Space , Text "no" , Space , Text "indent" , Text "." , ParBreak , Text "Except" , Space , Text "if" , Space , Text "you" , Space , Text "have" , Space , Text "another" , Space , Text "paragraph" , Space , Text "in" , Space , Text "them" , Text "." , SoftBreak ] , SoftBreak , Code "typ/layout/par-indent-00.typ" ( line 21 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "lang") (Literal (String "ar")) , KeyValArg (Identifier "font") (Array [ Reg (Literal (String "Noto Sans Arabic")) , Reg (Literal (String "Linux Libertine")) ]) ]) , SoftBreak , Code "typ/layout/par-indent-00.typ" ( line 22 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "leading") (Literal (Numeric 8.0 Pt)) ]) , ParBreak , Heading 1 [ Text "Arabic" ] , Text "\1583\1593" , Space , Text "\1575\1604\1606\1589" , Space , Text "\1610\1605\1591\1585" , Space , Text "\1593\1604\1610\1603" , ParBreak , Text "\1579\1605" , Space , Text "\1610\1589\1576\1581" , Space , Text "\1575\1604\1606\1589" , Space , Text "\1585\1591\1576\1611\1575" , Space , Text "\1608\1602\1575\1576\1604" , Space , Text "\1604\1604\1591\1585\1602" , Space , Text "\1608\1610\1576\1583\1608" , Space , Text "\1575\1604\1605\1587\1578\1606\1583" , Space , Text "\1585\1575\1574\1593\1611\1575" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [The first paragraph has no indent.]), parbreak(), text(body: [But the second one does.]), parbreak(), box(body: image(height: 6.0pt, source: "/assets/files/tiger.jpg")), text(body: [ starts a paragraph, also with indent.]), parbreak(), align(alignment: center, body: image(source: "/assets/files/rhino.png", width: 1.0cm)), parbreak(), heading(body: text(body: [Headings]), level: 1), list(children: (text(body: [And lists.]), { text(body: [Have no indent.]), parbreak(), text(body: [Except if you have another paragraph in them. ]) })), text(body: [ ], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar", size: 8.0pt), parbreak(), heading(body: text(body: [Arabic], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar", size: 8.0pt), level: 1), text(body: [دع النص يمطر عليك], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar", size: 8.0pt), parbreak(), text(body: [ثم يصبح النص رطبًا وقابل للطرق ويبدو المستند رائعًا.], font: ("Noto Sans Arabic", "Linux Libertine"), lang: "ar", size: 8.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/par-indent-00.typ0000644000000000000000000000121607346545000017357 0ustar0000000000000000#set par(first-line-indent: 12pt, leading: 5pt) #set block(spacing: 5pt) #show heading: set text(size: 10pt) The first paragraph has no indent. But the second one does. #box(image("/assets/files/tiger.jpg", height: 6pt)) starts a paragraph, also with indent. #align(center, image("/assets/files/rhino.png", width: 1cm)) = Headings - And lists. - Have no indent. Except if you have another paragraph in them. #set text(8pt, lang: "ar", font: ("Noto Sans Arabic", "Linux Libertine")) #set par(leading: 8pt) = Arabic دع النص يمطر عليك ثم يصبح النص رطبًا وقابل للطرق ويبدو المستند رائعًا. typst-0.8.0.2/test/typ/layout/par-indent-01.out0000644000000000000000000000444307346545000017360 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-indent-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-indent-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-indent-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-indent-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "first-line-indent") (Literal (Numeric 12.0 Pt)) ]) , SoftBreak , Text "Why" , Space , Text "would" , Space , Text "anybody" , Space , Text "ever" , Space , Ellipsis , ParBreak , Ellipsis , Space , Text "want" , Space , Text "spacing" , Space , Text "and" , Space , Text "indent?" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Why would anybody ever …]), parbreak(), text(body: [… want spacing and indent?]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-indent-01.typ0000644000000000000000000000016007346545000017355 0ustar0000000000000000// This is madness. #set par(first-line-indent: 12pt) Why would anybody ever ... ... want spacing and indent? typst-0.8.0.2/test/typ/layout/par-indent-02.out0000644000000000000000000000441507346545000017360 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-indent-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-indent-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-indent-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-indent-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "hanging-indent") (Literal (Numeric 15.0 Pt)) , KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-indent-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 10)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-indent-02.typ0000644000000000000000000000012207346545000017354 0ustar0000000000000000// Test hanging indent. #set par(hanging-indent: 15pt, justify: true) #lorem(10) typst-0.8.0.2/test/typ/layout/par-indent-03.out0000644000000000000000000000430007346545000017352 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-indent-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-indent-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-indent-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-indent-03.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "hanging-indent") (Literal (Numeric 1.0 Em)) ]) , SoftBreak , Text "Welcome" , Space , HardBreak , Text "here" , Text "." , Space , Text "Does" , Space , Text "this" , Space , Text "work" , Space , Text "well?" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Welcome ]), linebreak(), text(body: [here. Does this work well?]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-indent-03.typ0000644000000000000000000000010407346545000017355 0ustar0000000000000000#set par(hanging-indent: 1em) Welcome \ here. Does this work well? typst-0.8.0.2/test/typ/layout/par-indent-04.out0000644000000000000000000000600007346545000017352 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-indent-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-indent-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-indent-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-indent-04.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "hanging-indent") (Literal (Numeric 2.0 Em)) ]) , SoftBreak , Code "typ/layout/par-indent-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Text "\1604\1570\1606" , Space , Text "\1608\1602\1583" , Space , Text "\1571\1592\1604\1605" , Space , Text "\1575\1604\1604\1610\1604" , Space , Text "\1608\1576\1583\1571\1578" , Space , Text "\1575\1604\1606\1580\1608\1605" , SoftBreak , Text "\1578\1606\1590\1582" , Space , Text "\1608\1580\1607" , Space , Text "\1575\1604\1591\1576\1610\1593\1577" , Space , Text "\1575\1604\1578\1610" , Space , Text "\1571\1593\1618\1610\1614\1578\1618" , Space , Text "\1605\1606" , Space , Text "\1591\1608\1604" , Space , Text "\1605\1575" , Space , Text "\1575\1606\1576\1593\1579\1578" , Space , Text "\1601\1610" , Space , Text "\1575\1604\1606\1607\1575\1585" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ لآن وقد أظلم الليل وبدأت النجوم تنضخ وجه الطبيعة التي أعْيَتْ من طول ما انبعثت في النهار], dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/layout/par-indent-04.typ0000644000000000000000000000032307346545000017361 0ustar0000000000000000#set par(hanging-indent: 2em) #set text(dir: rtl) لآن وقد أظلم الليل وبدأت النجوم تنضخ وجه الطبيعة التي أعْيَتْ من طول ما انبعثت في النهار typst-0.8.0.2/test/typ/layout/par-justify-00.out0000644000000000000000000000711407346545000017571 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-justify-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-justify-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-justify-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) , KeyValArg (Identifier "first-line-indent") (Literal (Numeric 14.0 Pt)) , KeyValArg (Identifier "leading") (Literal (Numeric 5.0 Pt)) ]) , ParBreak , Text "This" , Space , Text "text" , Space , Text "is" , Space , Text "justified," , Space , Text "meaning" , Space , Text "that" , Space , Text "spaces" , Space , Text "are" , Space , Text "stretched" , Space , Text "so" , Space , Text "that" , Space , Text "the" , Space , Text "text" , SoftBreak , Text "forms" , Space , Text "a" , Space , Quote '"' , Text "block" , Quote '"' , Space , Text "with" , Space , Text "flush" , Space , Text "edges" , Space , Text "at" , Space , Text "both" , Space , Text "sides" , Text "." , ParBreak , Text "First" , Space , Text "line" , Space , Text "indents" , Space , Text "and" , Space , Text "hyphenation" , Space , Text "play" , Space , Text "nicely" , Space , Text "with" , Space , Text "justified" , Space , Text "text" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [This text is justified, meaning that spaces are stretched so that the text forms a “block” with flush edges at both sides.]), parbreak(), text(body: [First line indents and hyphenation play nicely with justified text.]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-00.typ0000644000000000000000000000046207346545000017575 0ustar0000000000000000#set page(width: 180pt) #set block(spacing: 5pt) #set par(justify: true, first-line-indent: 14pt, leading: 5pt) This text is justified, meaning that spaces are stretched so that the text forms a "block" with flush edges at both sides. First line indents and hyphenation play nicely with justified text. typst-0.8.0.2/test/typ/layout/par-justify-01.out0000644000000000000000000000412107346545000017565 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-justify-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "A" , Space , Text "B" , Space , Text "C" , Space , HardBreak , Text "D" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ A B C ]), linebreak(), text(body: [D]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-01.typ0000644000000000000000000000013107346545000017567 0ustar0000000000000000// Test that lines with hard breaks aren't justified. #set par(justify: true) A B C \ D typst-0.8.0.2/test/typ/layout/par-justify-02.out0000644000000000000000000000457507346545000017603 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Text "B" , Space , Text "C" , Space , Code "typ/layout/par-justify-02.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "linebreak")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "D" , Space , Text "E" , Space , Text "F" , Space , Code "typ/layout/par-justify-02.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "linebreak")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A B C ]), linebreak(justify: true), text(body: [ D E F ]), linebreak(justify: true), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-02.typ0000644000000000000000000000016407346545000017576 0ustar0000000000000000// Test forced justification with justified break. A B C #linebreak(justify: true) D E F #linebreak(justify: true) typst-0.8.0.2/test/typ/layout/par-justify-03.out0000644000000000000000000000404207346545000017571 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/layout/par-justify-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-justify-03.typ" ( line 5 , column 2 ) (Literal (String "")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-03.typ0000644000000000000000000000017507346545000017601 0ustar0000000000000000// Test that there are no hick-ups with justification enabled and // basically empty paragraph. #set par(justify: true) #"" typst-0.8.0.2/test/typ/layout/par-justify-04.out0000644000000000000000000000456407346545000017603 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-justify-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 155.0 Pt)) ]) , SoftBreak , Code "typ/layout/par-justify-04.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "This" , Space , Text "text" , Space , Text "can" , Space , Text "be" , Space , Text "fitted" , Space , Text "in" , Space , Text "one" , Space , Text "line" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ This text can be fitted in one line.]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-04.typ0000644000000000000000000000017607346545000017603 0ustar0000000000000000// Test that the last line can be shrunk #set page(width: 155pt) #set par(justify: true) This text can be fitted in one line. typst-0.8.0.2/test/typ/layout/par-justify-cjk-00.out0000644000000000000000000001075607346545000020344 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-cjk-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-cjk-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-cjk-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Comment , Comment , Code "typ/layout/par-justify-cjk-00.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-00.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-00.typ" ( line 9 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Noto Serif CJK SC")) , KeyValArg (Identifier "lang") (Literal (String "zh")) ]) , ParBreak , Code "typ/layout/par-justify-cjk-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eee")) ]) , BlockArg [ SoftBreak , Text "\20013\25991\32500\22522\30334\31185\20351\29992\27721\23383\20070\20889\65292\27721\23383\26159\27721\26063\25110\21326\20154\30340\20849\21516\25991\23383\65292\26159\20013\22269\22823\38470\12289\26032\21152\22369\12289\39532\26469\35199\20122\12289\21488\28286\12289\39321\28207\12289\28595\38376\30340\21807\19968\23448\26041\25991\23383\25110\23448\26041\25991\23383\20043\19968\12290\&25" , Text "." , Text "9%\65292\32780\32654\22269\21644\33655\20848\21017\20998\21029\21344\&13" , Text "." , Text "7%\21450\&8" , Text "." , Text "2%\12290\36817\24180\20358\65292\20013\22269\22823\38470\22320\21306\30340\32500\22522\30334\31185\32534\36753\32773\27491\22312\36805\36895\22686\21152\65307" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), rect(body: { text(body: [ 中文维基百科使用汉字书写,汉字是汉族或华人的共同文字,是中国大陆、新加坡、马来西亚、台湾、香港、澳门的唯一官方文字或官方文字之一。25.9%,而美国和荷兰则分別占13.7%及8.2%。近年來,中国大陆地区的维基百科编辑者正在迅速增加;], font: "Noto Serif CJK SC", lang: "zh"), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 80.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-cjk-00.typ0000644000000000000000000000132407346545000020340 0ustar0000000000000000// Test Chinese text in narrow lines. // In Chinese typography, line length should be multiples of the character size // and the line ends should be aligned with each other. // Most Chinese publications do not use hanging punctuation at line end. #set page(width: auto) #set par(justify: true) #set text(font: "Noto Serif CJK SC", lang: "zh") #rect(inset: 0pt, width: 80pt, fill: rgb("eee"))[ 中文维基百科使用汉字书写,汉字是汉族或华人的共同文字,是中国大陆、新加坡、马来西亚、台湾、香港、澳门的唯一官方文字或官方文字之一。25.9%,而美国和荷兰则分別占13.7%及8.2%。近年來,中国大陆地区的维基百科编辑者正在迅速增加; ] typst-0.8.0.2/test/typ/layout/par-justify-cjk-01.out0000644000000000000000000001256407346545000020344 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-cjk-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-cjk-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-cjk-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-justify-cjk-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "jp")) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eee")) ]) , BlockArg [ SoftBreak , Text "\12454\12451\12461\12506\12487\12451\12450\65288\33521" , Text ":" , Space , Text "Wikipedia\65289\12399\12289\19990\30028\20013\12398\12508\12521\12531\12486\12451\12450\12398\20849\21516\20316\26989\12395\12424\12387\12390\22519\31558\21450\12403\20316\25104\12373\12428\12427\12501\12522\12540\12398\22810\35328\35486\12452\12531\12479\12540\12493\12483\12488\30334\31185\20107\20856\12391\12354\12427\12290\20027\12395\23492\20184\12395\20381\12387\12390\27963\21205\12375\12390\12356\12427\38750\21942\21033\22243\20307\12300\12454\12451\12461\12513\12487\12451\12450\36001\22243\12301\12364\25152\26377\12539\36939\21942\12375\12390\12356\12427\12290" , ParBreak , Text "\23554\38272\23478\12395\12424\12427\12458\12531\12521\12452\12531\30334\31185\20107\20856\12503\12525\12472\12455\12463\12488Nupedia\65288\12492\12540\12506\12487\12451\12450\65289\12434\21069\36523\12392\12375\12390\12289\&2001\24180\&1\26376\12289\12521\12522\12540\12539\12469\12531\12460\12540\12392\12472\12511\12540\12539\12454\12455\12540\12523\12474\65288\33521" , Text ":" , Space , Text "Jimmy" , Space , Text "Donal" , Space , Quote '"' , Text "Jimbo" , Quote '"' , Space , Text "Wales\65289\12395\12424\12426\33521\35486\12391\12503\12525\12472\12455\12463\12488\12364\38283\22987\12373\12428\12383\12290" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ], lang: "jp"), rect(body: { text(body: [ ウィキペディア(英: Wikipedia)は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語インターネット百科事典である。主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。], lang: "jp"), parbreak(), text(body: [専門家によるオンライン百科事典プロジェクトNupedia(ヌーペディア)を前身として、2001年1月、ラリー・サンガーとジミー・ウェールズ(英: Jimmy Donal “Jimbo” Wales)により英語でプロジェクトが開始された。], lang: "jp"), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 80.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-cjk-01.typ0000644000000000000000000000144607346545000020346 0ustar0000000000000000// Japanese typography is more complex, make sure it is at least a bit sensible. #set page(width: auto) #set par(justify: true) #set text(lang: "jp") #rect(inset: 0pt, width: 80pt, fill: rgb("eee"))[ ウィキペディア(英: Wikipedia)は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語インターネット百科事典である。主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。 専門家によるオンライン百科事典プロジェクトNupedia(ヌーペディア)を前身として、2001年1月、ラリー・サンガーとジミー・ウェールズ(英: Jimmy Donal "Jimbo" Wales)により英語でプロジェクトが開始された。 ] typst-0.8.0.2/test/typ/layout/par-justify-cjk-02.out0000644000000000000000000001033607346545000020340 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-cjk-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-cjk-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-cjk-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/par-justify-cjk-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "zh")) , KeyValArg (Identifier "font") (Literal (String "Noto Serif CJK SC")) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eee")) ]) , BlockArg [ SoftBreak , Text "\8220\24341\21495\27979\35797\8221\65292\36824\65292" , ParBreak , Text "\12298\20070\21517\12299\12298\27979\35797\12299\19979\19968\34892" , ParBreak , Text "\12298\20070\21517\12299\12298\27979\35797\12299\12290" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: "Noto Serif CJK SC", lang: "zh"), text(body: [ ], font: "Noto Serif CJK SC", lang: "zh"), rect(body: { text(body: [ “引号测试”,还,], font: "Noto Serif CJK SC", lang: "zh"), parbreak(), text(body: [《书名》《测试》下一行], font: "Noto Serif CJK SC", lang: "zh"), parbreak(), text(body: [《书名》《测试》。], font: "Noto Serif CJK SC", lang: "zh"), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 80.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-cjk-02.typ0000644000000000000000000000044107346545000020341 0ustar0000000000000000// Test punctuation whitespace adjustment #set page(width: auto) #set text(lang: "zh", font: "Noto Serif CJK SC") #set par(justify: true) #rect(inset: 0pt, width: 80pt, fill: rgb("eee"))[ “引号测试”,还, 《书名》《测试》下一行 《书名》《测试》。 ] typst-0.8.0.2/test/typ/layout/par-justify-cjk-03.out0000644000000000000000000001147707346545000020350 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-justify-cjk-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-justify-cjk-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-justify-cjk-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/layout/par-justify-cjk-03.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Plus (Literal (Numeric 170.0 Pt)) (Literal (Numeric 10.0 Pt))) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "x") , Literal (Numeric 5.0 Pt) ) ]) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-03.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Noto Serif CJK SC")) , KeyValArg (Identifier "lang") (Literal (String "zh")) ]) , SoftBreak , Code "typ/layout/par-justify-cjk-03.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , ParBreak , Text "\23380\38592\26368\26089\35265\20110\12298\23665\28023\32463\12299\20013\30340\12298\28023\20869\32463\12299\65306" , Text "\8203" , Text "\8220\26377\23380\38592\12290\8221\19996\27721\26472\23386\33879\12298\24322\29289\24535\12299\35760\36733\65292\23725\21335\65306\8220\23380\38592\65292\20854\22823\22914\22823\38593\32780\36275\39640\65292\27611\30342\26377\26001\32441\24425\65292\25429\32780\33988\20043\65292\25293\25163\21363\33310\12290\8221" , ParBreak , Code "typ/layout/par-justify-cjk-03.typ" ( line 11 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Noto Serif CJK TC")) , KeyValArg (Identifier "lang") (Literal (String "zh")) , KeyValArg (Identifier "region") (Literal (String "hk")) ]) , SoftBreak , Text "\23380\38592\26368\26089\35265\20110\12298\23665\28023\32463\12299\20013\30340\12298\28023\20869\32463\12299\65306\12300\26377\23380\38592\12290\12301\19996\27721\26472\23386\33879\12298\24322\29289\24535\12299\35760\36733\65292\23725\21335\65306\12300\23380\38592\65292\20854\22823\22914\22823\38593\32780\36275\39640\65292\27611\30342\26377\26001\32441\24425\65292\25429\32780\33988\20043\65292\25293\25163\21363\33310\12290\12301" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ], font: "Noto Serif CJK SC", lang: "zh"), parbreak(), text(body: [孔雀最早见于《山海经》中的《海内经》:​“有孔雀。”东汉杨孚著《异物志》记载,岭南:“孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。”], font: "Noto Serif CJK SC", lang: "zh"), parbreak(), text(body: [ 孔雀最早见于《山海经》中的《海内经》:「有孔雀。」东汉杨孚著《异物志》记载,岭南:「孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。」], font: "Noto Serif CJK TC", lang: "zh", region: "hk"), parbreak() }) typst-0.8.0.2/test/typ/layout/par-justify-cjk-03.typ0000644000000000000000000000131107346545000020337 0ustar0000000000000000// Test Variants of Mainland China, Hong Kong, and Japan. // 17 characters a line. #set page(width: 170pt + 10pt, margin: (x: 5pt)) #set text(font: "Noto Serif CJK SC", lang: "zh") #set par(justify: true) 孔雀最早见于《山海经》中的《海内经》:\u{200b}“有孔雀。”东汉杨孚著《异物志》记载,岭南:“孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。” #set text(font: "Noto Serif CJK TC", lang: "zh", region: "hk") 孔雀最早见于《山海经》中的《海内经》:「有孔雀。」东汉杨孚著《异物志》记载,岭南:「孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。」 typst-0.8.0.2/test/typ/layout/par-knuth-00.out0000644000000000000000000004352307346545000017231 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-knuth-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-knuth-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-knuth-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) , KeyValArg (Identifier "height") (Literal Auto) ]) , SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "leading") (Literal (Numeric 4.0 Pt)) , KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) ]) , ParBreak , Code "typ/layout/par-knuth-00.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "story"))) (Block (Content [ SoftBreak , Text "In" , Space , Text "olden" , Space , Text "times" , Space , Text "when" , Space , Text "wishing" , Space , Text "still" , Space , Text "helped" , Space , Text "one," , Space , Text "there" , Space , Text "lived" , Space , Text "a" , Space , Text "king" , Space , Text "whose" , SoftBreak , Text "daughters" , Space , Text "were" , Space , Text "all" , Space , Text "beautiful;" , Space , Text "and" , Space , Text "the" , Space , Text "youngest" , Space , Text "was" , Space , Text "so" , Space , Text "beautiful" , Space , Text "that" , Space , Text "the" , Space , Text "sun" , SoftBreak , Text "itself," , Space , Text "which" , Space , Text "has" , Space , Text "seen" , Space , Text "so" , Space , Text "much," , Space , Text "was" , Space , Text "astonished" , Space , Text "whenever" , Space , Text "it" , Space , Text "shone" , Space , Text "in" , Space , Text "her" , Space , Text "face" , Text "." , SoftBreak , Text "Close" , Space , Text "by" , Space , Text "the" , Space , Text "king\8217s" , Space , Text "castle" , Space , Text "lay" , Space , Text "a" , Space , Text "great" , Space , Text "dark" , Space , Text "red," , Space , Text "and" , Space , Text "under" , Space , Text "an" , Space , Text "old" , Space , Text "lime" , Text "-" , Text "tree" , SoftBreak , Text "in" , Space , Text "the" , Space , Text "red" , Space , Text "was" , Space , Text "a" , Space , Text "well," , Space , Text "and" , Space , Text "when" , Space , Text "the" , Space , Text "day" , Space , Text "was" , Space , Text "very" , Space , Text "warm," , Space , Text "the" , Space , Text "king\8217s" , Space , Text "child" , SoftBreak , Text "went" , Space , Text "out" , Space , Text "into" , Space , Text "the" , Space , Text "red" , Space , Text "and" , Space , Text "sat" , Space , Text "down" , Space , Text "by" , Space , Text "the" , Space , Text "side" , Space , Text "of" , Space , Text "the" , Space , Text "cool" , Space , Text "fountain;" , Space , Text "and" , SoftBreak , Text "when" , Space , Text "she" , Space , Text "was" , Space , Text "bored" , Space , Text "she" , Space , Text "took" , Space , Text "a" , Space , Text "golden" , Space , Text "ball," , Space , Text "and" , Space , Text "threw" , Space , Text "it" , Space , Text "up" , Space , Text "on" , Space , Text "high" , Space , Text "and" , Space , Text "caught" , SoftBreak , Text "it;" , Space , Text "and" , Space , Text "this" , Space , Text "ball" , Space , Text "was" , Space , Text "her" , Space , Text "favorite" , Space , Text "plaything" , Text "." , ParBreak ]))) , ParBreak , Code "typ/layout/par-knuth-00.typ" ( line 17 , column 2 ) (LetFunc (Identifier "column") [ NormalParam (Identifier "title") , NormalParam (Identifier "linebreaks") , NormalParam (Identifier "hyphenate") ] (Block (CodeBlock [ FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 132.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eee")) ]) , BlockArg [ SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 19 , column 6 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "linebreaks") (Ident (Identifier "linebreaks")) ]) , SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 20 , column 6 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Ident (Identifier "hyphenate")) ]) , SoftBreak , Code "typ/layout/par-knuth-00.typ" ( line 21 , column 6 ) (FuncCall (Ident (Identifier "strong")) [ NormalArg (Ident (Identifier "title")) ]) , Space , HardBreak , Code "typ/layout/par-knuth-00.typ" ( line 21 , column 23 ) (Ident (Identifier "story")) , ParBreak ] ] ]))) , ParBreak , Code "typ/layout/par-knuth-00.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , KeyValArg (Identifier "gutter") (Literal (Numeric 10.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "column")) [ NormalArg (Block (Content [ Text "Simple" , Space , Text "without" , Space , Text "hyphens" ])) , NormalArg (Literal (String "simple")) , NormalArg (Literal (Boolean False)) ]) , NormalArg (FuncCall (Ident (Identifier "column")) [ NormalArg (Block (Content [ Text "Simple" , Space , Text "with" , Space , Text "hyphens" ])) , NormalArg (Literal (String "simple")) , NormalArg (Literal (Boolean True)) ]) , NormalArg (FuncCall (Ident (Identifier "column")) [ NormalArg (Block (Content [ Text "Optimized" , Space , Text "with" , Space , Text "hyphens" ])) , NormalArg (Literal (String "optimized")) , NormalArg (Literal (Boolean True)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), parbreak(), grid(children: (rect(body: { text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern", hyphenate: false), strong(body: text(body: [Simple without hyphens], font: "New Computer Modern")), text(body: [ ], font: "New Computer Modern", hyphenate: false), linebreak(), text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face. Close by the king’s castle lay a great dark red, and under an old lime-tree in the red was a well, and when the day was very warm, the king’s child went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], font: "New Computer Modern"), parbreak(), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 132.0pt), rect(body: { text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern", hyphenate: true), strong(body: text(body: [Simple with hyphens], font: "New Computer Modern")), text(body: [ ], font: "New Computer Modern", hyphenate: true), linebreak(), text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face. Close by the king’s castle lay a great dark red, and under an old lime-tree in the red was a well, and when the day was very warm, the king’s child went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], font: "New Computer Modern"), parbreak(), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 132.0pt), rect(body: { text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern"), text(body: [ ], font: "New Computer Modern", hyphenate: true), strong(body: text(body: [Optimized with hyphens], font: "New Computer Modern")), text(body: [ ], font: "New Computer Modern", hyphenate: true), linebreak(), text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face. Close by the king’s castle lay a great dark red, and under an old lime-tree in the red was a well, and when the day was very warm, the king’s child went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], font: "New Computer Modern"), parbreak(), parbreak() }, fill: rgb(5%,5%,5%,100%), inset: 0.0pt, width: 132.0pt)), columns: 3, gutter: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/par-knuth-00.typ0000644000000000000000000000214607346545000017232 0ustar0000000000000000#set page(width: auto, height: auto) #set par(leading: 4pt, justify: true) #set text(font: "New Computer Modern") #let story = [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face. Close by the king’s castle lay a great dark red, and under an old lime-tree in the red was a well, and when the day was very warm, the king’s child went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything. ] #let column(title, linebreaks, hyphenate) = { rect(inset: 0pt, width: 132pt, fill: rgb("eee"))[ #set par(linebreaks: linebreaks) #set text(hyphenate: hyphenate) #strong(title) \ #story ] } #grid( columns: 3, gutter: 10pt, column([Simple without hyphens], "simple", false), column([Simple with hyphens], "simple", true), column([Optimized with hyphens], "optimized", true), ) typst-0.8.0.2/test/typ/layout/par-simple-00.out0000644000000000000000000001714407346545000017371 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/par-simple-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/par-simple-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/par-simple-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/par-simple-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 250.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 120.0 Pt)) ]) , ParBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , Space , Text "It" , Space , Text "is" , Space , Text "the" , Space , Text "east," , Space , Text "and" , Space , Text "Juliet" , SoftBreak , Text "is" , Space , Text "the" , Space , Text "sun" , Text "." , Space , Text "Arise," , Space , Text "fair" , Space , Text "sun," , Space , Text "and" , Space , Text "kill" , Space , Text "the" , Space , Text "envious" , Space , Text "moon," , Space , Text "Who" , Space , Text "is" , Space , Text "already" , Space , Text "sick" , Space , Text "and" , SoftBreak , Text "pale" , Space , Text "with" , Space , Text "grief," , Space , Text "That" , Space , Text "thou" , Space , Text "her" , Space , Text "maid" , Space , Text "art" , Space , Text "far" , Space , Text "more" , Space , Text "fair" , Space , Text "than" , Space , Text "she" , Text ":" , Space , Text "Be" , Space , Text "not" , Space , Text "her" , Space , Text "maid," , SoftBreak , Text "since" , Space , Text "she" , Space , Text "is" , Space , Text "envious;" , Space , Text "Her" , Space , Text "vestal" , Space , Text "livery" , Space , Text "is" , Space , Text "but" , Space , Text "sick" , Space , Text "and" , Space , Text "green" , Space , Text "And" , Space , Text "none" , Space , Text "but" , Space , Text "fools" , SoftBreak , Text "do" , Space , Text "wear" , Space , Text "it;" , Space , Text "cast" , Space , Text "it" , Space , Text "off" , Text "." , Space , Text "It" , Space , Text "is" , Space , Text "my" , Space , Text "lady," , Space , Text "O," , Space , Text "it" , Space , Text "is" , Space , Text "my" , Space , Text "love!" , Space , Text "O," , Space , Text "that" , Space , Text "she" , Space , Text "knew" , Space , Text "she" , SoftBreak , Text "were!" , Space , Text "She" , Space , Text "speaks" , Space , Text "yet" , Space , Text "she" , Space , Text "says" , Space , Text "nothing" , Text ":" , Space , Text "what" , Space , Text "of" , Space , Text "that?" , Space , Text "Her" , Space , Text "eye" , Space , Text "discourses;" , Space , Text "I" , Space , Text "will" , SoftBreak , Text "answer" , Space , Text "it" , Text "." , ParBreak , Text "I" , Space , Text "am" , Space , Text "too" , Space , Text "bold," , Space , Quote '\'' , Text "tis" , Space , Text "not" , Space , Text "to" , Space , Text "me" , Space , Text "she" , Space , Text "speaks" , Text ":" , Space , Text "Two" , Space , Text "of" , Space , Text "the" , Space , Text "fairest" , Space , Text "stars" , Space , Text "in" , Space , Text "all" , Space , Text "the" , SoftBreak , Text "heaven," , Space , Text "Having" , Space , Text "some" , Space , Text "business," , Space , Text "do" , Space , Text "entreat" , Space , Text "her" , Space , Text "eyes" , Space , Text "To" , Space , Text "twinkle" , Space , Text "in" , Space , Text "their" , Space , Text "spheres" , SoftBreak , Text "till" , Space , Text "they" , Space , Text "return" , Text "." , Space , Text "What" , Space , Text "if" , Space , Text "her" , Space , Text "eyes" , Space , Text "were" , Space , Text "there," , Space , Text "they" , Space , Text "in" , Space , Text "her" , Space , Text "head?" , Space , Text "The" , Space , Text "brightness" , SoftBreak , Text "of" , Space , Text "her" , Space , Text "cheek" , Space , Text "would" , Space , Text "shame" , Space , Text "those" , Space , Text "stars," , Space , Text "As" , Space , Text "daylight" , Space , Text "doth" , Space , Text "a" , Space , Text "lamp;" , Space , Text "her" , Space , Text "eyes" , Space , Text "in" , SoftBreak , Text "heaven" , Space , Text "Would" , Space , Text "through" , Space , Text "the" , Space , Text "airy" , Space , Text "region" , Space , Text "stream" , Space , Text "so" , Space , Text "bright" , Space , Text "That" , Space , Text "birds" , Space , Text "would" , Space , Text "sing" , Space , Text "and" , SoftBreak , Text "think" , Space , Text "it" , Space , Text "were" , Space , Text "not" , Space , Text "night" , Text "." , Space , Text "See," , Space , Text "how" , Space , Text "she" , Space , Text "leans" , Space , Text "her" , Space , Text "cheek" , Space , Text "upon" , Space , Text "her" , Space , Text "hand!" , Space , Text "O," , Space , Text "that" , Space , Text "I" , SoftBreak , Text "were" , Space , Text "a" , Space , Text "glove" , Space , Text "upon" , Space , Text "that" , Space , Text "hand," , Space , Text "That" , Space , Text "I" , Space , Text "might" , Space , Text "touch" , Space , Text "that" , Space , Text "cheek!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it.]), parbreak(), text(body: [I am too bold, ‘tis not to me she speaks: Two of the fairest stars in all the heaven, Having some business, do entreat her eyes To twinkle in their spheres till they return. What if her eyes were there, they in her head? The brightness of her cheek would shame those stars, As daylight doth a lamp; her eyes in heaven Would through the airy region stream so bright That birds would sing and think it were not night. See, how she leans her cheek upon her hand! O, that I were a glove upon that hand, That I might touch that cheek!]), parbreak() }) typst-0.8.0.2/test/typ/layout/par-simple-00.typ0000644000000000000000000000204607346545000017371 0ustar0000000000000000#set page(width: 250pt, height: 120pt) But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it. I am too bold, 'tis not to me she speaks: Two of the fairest stars in all the heaven, Having some business, do entreat her eyes To twinkle in their spheres till they return. What if her eyes were there, they in her head? The brightness of her cheek would shame those stars, As daylight doth a lamp; her eyes in heaven Would through the airy region stream so bright That birds would sing and think it were not night. See, how she leans her cheek upon her hand! O, that I were a glove upon that hand, That I might touch that cheek! typst-0.8.0.2/test/typ/layout/place-00.out0000644000000000000000000002104007346545000016372 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/place-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/place-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/place-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/place-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a8")) ]) , SoftBreak , Code "typ/layout/place-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "bottom")) (Ident (Identifier "center"))) , BlockArg [ Text "\169" , Space , Text "Typst" ] ]) , ParBreak , Heading 1 [ Text "Placement" ] , Code "typ/layout/place-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "right")) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 1.8 Cm)) ]) ]) , SoftBreak , Text "Hi" , Space , Text "there" , Text "." , Space , Text "This" , Space , Text "is" , Space , HardBreak , Text "a" , Space , Text "placed" , Space , Text "element" , Text "." , Space , HardBreak , Text "Unfortunately," , Space , HardBreak , Text "the" , Space , Text "line" , Space , Text "breaks" , Space , Text "still" , Space , Text "had" , Space , Text "to" , Space , Text "be" , Space , Text "inserted" , Space , Text "manually" , Text "." , ParBreak , Code "typ/layout/place-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "right")) , KeyValArg (Identifier "dy") (Literal (Numeric 1.5 Pt)) , BlockArg [ Text "ABC" ] ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 80.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) ]) , NormalArg (Literal (Numeric 10.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Code "typ/layout/place-00.typ" ( line 19 , column 6 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "center")) , KeyValArg (Identifier "dx") (Negated (Literal (Numeric 7.0 Pt))) , KeyValArg (Identifier "dy") (Negated (Literal (Numeric 5.0 Pt))) , BlockArg [ Text "Hello" ] ]) , SoftBreak , Code "typ/layout/place-00.typ" ( line 20 , column 6 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Ident (Identifier "center")) , KeyValArg (Identifier "dx") (Literal (Numeric 7.0 Pt)) , KeyValArg (Identifier "dy") (Literal (Numeric 5.0 Pt)) , BlockArg [ Text "Hello" ] ]) , SoftBreak , Text "Hello" , Space , Code "typ/layout/place-00.typ" ( line 21 , column 12 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "Hello" , ParBreak ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), place(alignment: Axes(center, bottom), body: text(body: [© Typst])), parbreak(), heading(body: text(body: [Placement]), level: 1), place(alignment: right, body: image(source: "/assets/files/tiger.jpg", width: 1.8cm)), text(body: [ Hi there. This is ]), linebreak(), text(body: [a placed element. ]), linebreak(), text(body: [Unfortunately, ]), linebreak(), text(body: [the line breaks still had to be inserted manually.]), parbreak(), stack(children: (rect(fill: rgb(13%,61%,67%,100%), height: 10.0pt, width: 100%), place(alignment: right, body: text(body: [ABC]), dy: 1.5pt), rect(fill: rgb(18%,80%,25%,100%), height: 10.0pt, width: 80%), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, width: 100%), 10.0pt, block(body: { text(body: [ ]), place(alignment: center, body: text(body: [Hello]), dx: -7.0pt, dy: -5.0pt), text(body: [ ]), place(alignment: center, body: text(body: [Hello]), dx: 7.0pt, dy: 5.0pt), text(body: [ Hello ]), h(amount: 1.0fr), text(body: [ Hello]), parbreak() }))), parbreak() }) typst-0.8.0.2/test/typ/layout/place-00.typ0000644000000000000000000000105307346545000016401 0ustar0000000000000000#set page("a8") #place(bottom + center)[© Typst] = Placement #place(right, image("/assets/files/tiger.jpg", width: 1.8cm)) Hi there. This is \ a placed element. \ Unfortunately, \ the line breaks still had to be inserted manually. #stack( rect(fill: eastern, height: 10pt, width: 100%), place(right, dy: 1.5pt)[ABC], rect(fill: green, height: 10pt, width: 80%), rect(fill: red, height: 10pt, width: 100%), 10pt, block[ #place(center, dx: -7pt, dy: -5pt)[Hello] #place(center, dx: 7pt, dy: 5pt)[Hello] Hello #h(1fr) Hello ] ) typst-0.8.0.2/test/typ/layout/place-01.out0000644000000000000000000000477407346545000016412 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/place-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/place-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/place-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/place-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a8")) , KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , ParBreak , Text "First" , ParBreak , Code "typ/layout/place-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (Plus (Ident (Identifier "bottom")) (Ident (Identifier "right"))) , BlockArg [ Text "Placed" ] ]) , ParBreak , Text "Second" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [First]), parbreak(), place(alignment: Axes(right, bottom), body: text(body: [Placed])), parbreak(), text(body: [Second]), parbreak() }) typst-0.8.0.2/test/typ/layout/place-01.typ0000644000000000000000000000023007346545000016376 0ustar0000000000000000// Test how the placed element interacts with paragraph spacing around it. #set page("a8", height: 60pt) First #place(bottom + right)[Placed] Second typst-0.8.0.2/test/typ/layout/place-background-00.out0000644000000000000000000001147207346545000020517 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/place-background-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/place-background-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/place-background-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/place-background-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a10")) , KeyValArg (Identifier "flipped") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/layout/place-background-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "white")) ]) , SoftBreak , Code "typ/layout/place-background-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "place")) [ KeyValArg (Identifier "dx") (Negated (Literal (Numeric 10.0 Pt))) , KeyValArg (Identifier "dy") (Negated (Literal (Numeric 10.0 Pt))) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/tiger.jpg")) , KeyValArg (Identifier "fit") (Literal (String "cover")) , KeyValArg (Identifier "width") (Plus (Literal (Numeric 100.0 Percent)) (Literal (Numeric 20.0 Pt))) , KeyValArg (Identifier "height") (Plus (Literal (Numeric 100.0 Percent)) (Literal (Numeric 20.0 Pt))) ]) ]) , SoftBreak , Code "typ/layout/place-background-00.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "bottom")) (Ident (Identifier "right"))) , BlockArg [ SoftBreak , Emph [ Text "Welcome" , Space , Text "to" ] , Space , Code "typ/layout/place-background-00.typ" ( line 15 , column 17 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Strong [ Text "Tigerland" ] ] ]) , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], fill: rgb(100%,100%,100%,100%)), place(body: image(fit: "cover", height: 20.0pt + 100%, source: "/tiger.jpg", width: 20.0pt + 100%), dx: -10.0pt, dy: -10.0pt), text(body: [ ], fill: rgb(100%,100%,100%,100%)), align(alignment: Axes(right, bottom), body: { text(body: [ ], fill: rgb(100%,100%,100%,100%)), emph(body: text(body: [Welcome to], fill: rgb(100%,100%,100%,100%))), text(body: [ ], fill: rgb(100%,100%,100%,100%)), underline(body: strong(body: text(body: [Tigerland], fill: rgb(100%,100%,100%,100%)))), parbreak() }), parbreak() }) typst-0.8.0.2/test/typ/layout/place-background-00.typ0000644000000000000000000000040507346545000020516 0ustar0000000000000000#set page(paper: "a10", flipped: true) #set text(fill: white) #place( dx: -10pt, dy: -10pt, image( "/tiger.jpg", fit: "cover", width: 100% + 20pt, height: 100% + 20pt, ) ) #align(bottom + right)[ _Welcome to_ #underline[*Tigerland*] ] typst-0.8.0.2/test/typ/layout/repeat-00.out0000644000000000000000000001364707346545000016604 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/repeat-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/repeat-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/repeat-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/repeat-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "sections"))) (Array [ Reg (Array [ Reg (Literal (String "Introduction")) , Reg (Literal (Int 1)) ]) , Reg (Array [ Reg (Literal (String "Approach")) , Reg (Literal (Int 1)) ]) , Reg (Array [ Reg (Literal (String "Evaluation")) , Reg (Literal (Int 3)) ]) , Reg (Array [ Reg (Literal (String "Discussion")) , Reg (Literal (Int 15)) ]) , Reg (Array [ Reg (Literal (String "Related Work")) , Reg (Literal (Int 16)) ]) , Reg (Array [ Reg (Literal (String "Conclusion")) , Reg (Literal (Int 253)) ]) ])) , ParBreak , Code "typ/layout/repeat-00.typ" ( line 12 , column 2 ) (For (BasicBind (Just (Identifier "section"))) (Ident (Identifier "sections")) (Block (Content [ SoftBreak , Code "typ/layout/repeat-00.typ" ( line 13 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "section"))) [ NormalArg (Literal (Int 0)) ]) , Space , Code "typ/layout/repeat-00.typ" ( line 13 , column 19 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ BlockArg [ Text "." ] ]) ]) , Space , Code "typ/layout/repeat-00.typ" ( line 13 , column 47 ) (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "section"))) [ NormalArg (Literal (Int 1)) ]) , Space , HardBreak ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ ]), text(body: [Introduction]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [1]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [Approach]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [1]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [Evaluation]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [3]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [Discussion]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [15]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [Related Work]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [16]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [Conclusion]), text(body: [ ]), box(body: repeat(body: text(body: [.])), width: 1.0fr), text(body: [ ]), text(body: [253]), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/layout/repeat-00.typ0000644000000000000000000000041707346545000016600 0ustar0000000000000000// Test multiple repeats. #let sections = ( ("Introduction", 1), ("Approach", 1), ("Evaluation", 3), ("Discussion", 15), ("Related Work", 16), ("Conclusion", 253), ) #for section in sections [ #section.at(0) #box(width: 1fr, repeat[.]) #section.at(1) \ ] typst-0.8.0.2/test/typ/layout/repeat-01.out0000644000000000000000000000501707346545000016575 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/repeat-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/repeat-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/repeat-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/repeat-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) ]) , SoftBreak , Text "\1605\1602\1583\1605\1577" , Space , Code "typ/layout/repeat-01.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ BlockArg [ Text "." ] ]) ]) , Space , Text "15" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ مقدمة ], lang: "ar"), box(body: repeat(body: text(body: [.], lang: "ar")), width: 1.0fr), text(body: [ 15], lang: "ar"), parbreak() }) typst-0.8.0.2/test/typ/layout/repeat-01.typ0000644000000000000000000000013007346545000016571 0ustar0000000000000000// Test dots with RTL. #set text(lang: "ar") مقدمة #box(width: 1fr, repeat[.]) 15 typst-0.8.0.2/test/typ/layout/repeat-02.out0000644000000000000000000000423407346545000016576 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/repeat-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/repeat-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/repeat-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Code "typ/layout/repeat-02.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ BlockArg [] ]) ]) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A ]), box(body: repeat(body: { }), width: 1.0fr), text(body: [ B]), parbreak() }) typst-0.8.0.2/test/typ/layout/repeat-02.typ0000644000000000000000000000006607346545000016602 0ustar0000000000000000// Test empty repeat. A #box(width: 1fr, repeat[]) B typst-0.8.0.2/test/typ/layout/repeat-03.out0000644000000000000000000000424107346545000016575 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/repeat-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/repeat-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/repeat-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/repeat-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "repeat")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), repeat(body: rect(height: 1.0em, width: 2.0em)), parbreak() }) typst-0.8.0.2/test/typ/layout/repeat-03.typ0000644000000000000000000000010007346545000016570 0ustar0000000000000000// Test unboxed repeat. #repeat(rect(width: 2em, height: 1em)) typst-0.8.0.2/test/typ/layout/repeat-04.out0000644000000000000000000001124107346545000016574 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/repeat-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/repeat-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/repeat-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Code "typ/layout/repeat-04.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 6.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 0.7 Em)) ]) ]) ]) , Text "B" , ParBreak , Code "typ/layout/repeat-04.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Text "A" , Code "typ/layout/repeat-04.typ" ( line 6 , column 3 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 6.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 0.7 Em)) ]) ]) ]) , Text "B" , ParBreak , Code "typ/layout/repeat-04.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Text "\1585\1610\1580\1610\1606" , Code "typ/layout/repeat-04.typ" ( line 9 , column 7 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 4.0 Em)) , KeyValArg (Identifier "height") (Literal (Numeric 0.7 Em)) ]) ]) ]) , Text "\1587\1608\1606" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), box(body: repeat(body: rect(height: 0.7em, width: 6.0em)), width: 1.0fr), text(body: [B]), parbreak(), text(body: [ A]), box(body: repeat(body: rect(height: 0.7em, width: 6.0em)), width: 1.0fr), text(body: [B]), parbreak(), text(body: [ ريجين], dir: rtl), box(body: repeat(body: rect(height: 0.7em, width: 4.0em)), width: 1.0fr), text(body: [سون], dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/layout/repeat-04.typ0000644000000000000000000000042607346545000016604 0ustar0000000000000000// Test single repeat in both directions. A#box(width: 1fr, repeat(rect(width: 6em, height: 0.7em)))B #set align(center) A#box(width: 1fr, repeat(rect(width: 6em, height: 0.7em)))B #set text(dir: rtl) ريجين#box(width: 1fr, repeat(rect(width: 4em, height: 0.7em)))سون typst-0.8.0.2/test/typ/layout/repeat-05.out0000644000000000000000000000002107346545000016567 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/repeat-05.typ0000644000000000000000000000013007346545000016575 0ustar0000000000000000// Error: 2:2-2:13 repeat with no size restrictions #set page(width: auto) #repeat(".") typst-0.8.0.2/test/typ/layout/spacing-00.out0000644000000000000000000001345007346545000016740 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/spacing-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/spacing-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/spacing-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/spacing-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "box")) [ BlockArg [ Text "A" , Space , HardBreak , Text "B" ] ]) , Space , Code "typ/layout/spacing-00.typ" ( line 3 , column 14 ) (FuncCall (Ident (Identifier "box")) [ BlockArg [ Text "A" , Space , Code "typ/layout/spacing-00.typ" ( line 3 , column 21 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 0.65 Em)) , KeyValArg (Identifier "weak") (Literal (Boolean True)) ]) , Space , Text "B" ] ]) , ParBreak , Comment , Text "Inv" , Code "typ/layout/spacing-00.typ" ( line 6 , column 5 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 0.0 Pt)) ]) , Text "isible" , ParBreak , Comment , Text "Add" , Space , Code "typ/layout/spacing-00.typ" ( line 9 , column 6 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 10.0 Pt)) ]) , Space , Code "typ/layout/spacing-00.typ" ( line 9 , column 15 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 10.0 Pt)) ]) , Space , Text "up" , ParBreak , Comment , Code "typ/layout/spacing-00.typ" ( line 12 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Minus (Literal (Numeric 25.0 Percent)) (Literal (Numeric 4.0 Pt)))) , SoftBreak , Text "|" , Code "typ/layout/spacing-00.typ" ( line 13 , column 3 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Ident (Identifier "x")) ]) , Text "|" , Code "typ/layout/spacing-00.typ" ( line 13 , column 9 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Ident (Identifier "x")) ]) , Text "|" , Code "typ/layout/spacing-00.typ" ( line 13 , column 15 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Ident (Identifier "x")) ]) , Text "|" , Code "typ/layout/spacing-00.typ" ( line 13 , column 21 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Ident (Identifier "x")) ]) , Text "|" , ParBreak , Comment , Text "|" , Space , Code "typ/layout/spacing-00.typ" ( line 16 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "|" , Space , Code "typ/layout/spacing-00.typ" ( line 16 , column 14 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 2.0 Fr)) ]) , Space , Text "|" , Space , Code "typ/layout/spacing-00.typ" ( line 16 , column 24 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "|" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), box(body: { text(body: [A ]), linebreak(), text(body: [B]) }), text(body: [ ]), box(body: { text(body: [A ]), v(amount: 0.65em, weak: true), text(body: [ B]) }), parbreak(), text(body: [Inv]), h(amount: 0.0pt), text(body: [isible]), parbreak(), text(body: [Add ]), h(amount: 10.0pt), text(body: [ ]), h(amount: 10.0pt), text(body: [ up]), parbreak(), text(body: [ |]), h(amount: -4.0pt + 25%), text(body: [|]), h(amount: -4.0pt + 25%), text(body: [|]), h(amount: -4.0pt + 25%), text(body: [|]), h(amount: -4.0pt + 25%), text(body: [|]), parbreak(), text(body: [| ]), h(amount: 1.0fr), text(body: [ | ]), h(amount: 2.0fr), text(body: [ | ]), h(amount: 1.0fr), text(body: [ |]), parbreak() }) typst-0.8.0.2/test/typ/layout/spacing-00.typ0000644000000000000000000000050307346545000016740 0ustar0000000000000000// Linebreak and leading-sized weak spacing are equivalent. #box[A \ B] #box[A #v(0.65em, weak: true) B] // Eating up soft spacing. Inv#h(0pt)isible // Multiple spacings in a row. Add #h(10pt) #h(10pt) up // Relative to area. #let x = 25% - 4pt |#h(x)|#h(x)|#h(x)|#h(x)| // Fractional. | #h(1fr) | #h(2fr) | #h(1fr) | typst-0.8.0.2/test/typ/layout/spacing-01.out0000644000000000000000000000556207346545000016746 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/spacing-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/spacing-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/spacing-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/spacing-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) ]) , SoftBreak , Text "A" , Space , Code "typ/layout/spacing-01.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 0.0 Pt)) ]) , Space , Text "B" , Space , Code "typ/layout/spacing-01.typ" ( line 4 , column 14 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 0.0 Pt)) ]) , Space , HardBreak , Text "A" , Space , Text "B" , Space , HardBreak , Text "A" , Space , Code "typ/layout/spacing-01.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Negated (Literal (Numeric 1.0 Fr))) ]) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ A ]), h(amount: 0.0pt), text(body: [ B ]), h(amount: 0.0pt), text(body: [ ]), linebreak(), text(body: [A B ]), linebreak(), text(body: [A ]), h(amount: -1.0fr), text(body: [ B]), parbreak() }) typst-0.8.0.2/test/typ/layout/spacing-01.typ0000644000000000000000000000014707346545000016745 0ustar0000000000000000// Test spacing collapsing before spacing. #set align(right) A #h(0pt) B #h(0pt) \ A B \ A #h(-1fr) B typst-0.8.0.2/test/typ/layout/spacing-02.out0000644000000000000000000000507207346545000016743 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/spacing-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/spacing-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/spacing-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/spacing-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Text "A" , Space , Code "typ/layout/spacing-02.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 10.0 Pt)) ]) , Space , Text "B" , Space , HardBreak , Text "A" , Space , Code "typ/layout/spacing-02.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ A ], dir: rtl), h(amount: 10.0pt), text(body: [ B ], dir: rtl), linebreak(), text(body: [A ], dir: rtl), h(amount: 1.0fr), text(body: [ B], dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/layout/spacing-02.typ0000644000000000000000000000010507346545000016740 0ustar0000000000000000// Test RTL spacing. #set text(dir: rtl) A #h(10pt) B \ A #h(1fr) B typst-0.8.0.2/test/typ/layout/spacing-03.out0000644000000000000000000000002107346545000016731 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/spacing-03.typ0000644000000000000000000000012207346545000016740 0ustar0000000000000000// Missing spacing. // Error: 11-13 missing argument: amount Totally #h() ignored typst-0.8.0.2/test/typ/layout/stack-1-00.out0000644000000000000000000001615407346545000016563 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-1-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-1-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-1-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/stack-1-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "widths"))) (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) , Reg (Literal (Numeric 40.0 Pt)) , Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 20.0 Pt)) , Reg (Literal (Numeric 100.0 Percent)) ])) , ParBreak , Code "typ/layout/stack-1-00.typ" ( line 8 , column 2 ) (LetFunc (Identifier "shaded") [ NormalParam (Identifier "i") , NormalParam (Identifier "w") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "v"))) (Times (Plus (Ident (Identifier "i")) (Literal (Int 1))) (Literal (Numeric 10.0 Percent))) , FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Ident (Identifier "w")) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Ident (Identifier "v")) , NormalArg (Ident (Identifier "v")) , NormalArg (Ident (Identifier "v")) ]) ] ]))) , ParBreak , Code "typ/layout/stack-1-00.typ" ( line 13 , column 2 ) (Let (BasicBind (Just (Identifier "items"))) (For (DestructuringBind [ Simple (Just (Identifier "i")) , Simple (Just (Identifier "w")) ]) (FuncCall (FieldAccess (Ident (Identifier "enumerate")) (Ident (Identifier "widths"))) []) (Block (CodeBlock [ Array [ Reg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "right")) , NormalArg (FuncCall (Ident (Identifier "shaded")) [ NormalArg (Ident (Identifier "i")) , NormalArg (Ident (Identifier "w")) ]) ]) ] ])))) , ParBreak , Code "typ/layout/stack-1-00.typ" ( line 17 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/stack-1-00.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "btt")) , SpreadArg (Ident (Identifier "items")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), parbreak(), parbreak(), text(body: [ ]), stack(children: (align(alignment: right, body: rect(fill: rgb(10%,10%,10%,100%), height: 10.0pt, width: 30.0pt)), align(alignment: right, body: rect(fill: rgb(20%,20%,20%,100%), height: 10.0pt, width: 20.0pt)), align(alignment: right, body: rect(fill: rgb(30%,30%,30%,100%), height: 10.0pt, width: 40.0pt)), align(alignment: right, body: rect(fill: rgb(40%,40%,40%,100%), height: 10.0pt, width: 15.0pt)), align(alignment: right, body: rect(fill: rgb(50%,50%,50%,100%), height: 10.0pt, width: 30.0pt)), align(alignment: right, body: rect(fill: rgb(60%,60%,60%,100%), height: 10.0pt, width: 50%)), align(alignment: right, body: rect(fill: rgb(70%,70%,70%,100%), height: 10.0pt, width: 20.0pt)), align(alignment: right, body: rect(fill: rgb(80%,80%,80%,100%), height: 10.0pt, width: 100%))), dir: btt), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-1-00.typ0000644000000000000000000000054607346545000016566 0ustar0000000000000000// Test stacks with different directions. #let widths = ( 30pt, 20pt, 40pt, 15pt, 30pt, 50%, 20pt, 100%, ) #let shaded(i, w) = { let v = (i + 1) * 10% rect(width: w, height: 10pt, fill: rgb(v, v, v)) } #let items = for (i, w) in widths.enumerate() { (align(right, shaded(i, w)),) } #set page(width: 50pt, margin: 0pt) #stack(dir: btt, ..items) typst-0.8.0.2/test/typ/layout/stack-1-01.out0000644000000000000000000001351007346545000016555 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-1-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-1-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-1-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/stack-1-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , ParBreak , Code "typ/layout/stack-1-01.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ])) , SoftBreak , Code "typ/layout/stack-1-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) , KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) , NormalArg (Ident (Identifier "x")) , NormalArg (Ident (Identifier "x")) , NormalArg (Ident (Identifier "x")) ]) , NormalArg (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Numeric 20.0 Percent)) , NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Numeric 20.0 Percent)) , NormalArg (Ident (Identifier "x")) ]) , NormalArg (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) , NormalArg (Ident (Identifier "x")) , NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Numeric 7.0 Pt)) , NormalArg (Literal (Numeric 3.0 Pt)) , NormalArg (Ident (Identifier "x")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ ]), stack(children: (stack(children: (square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), square(fill: rgb(13%,61%,67%,100%), size: 10.0pt)), dir: rtl, spacing: 5.0pt), stack(children: (square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), 20%, square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), 20%, square(fill: rgb(13%,61%,67%,100%), size: 10.0pt)), dir: ltr), stack(children: (square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), square(fill: rgb(13%,61%,67%,100%), size: 10.0pt), 7.0pt, 3.0pt, square(fill: rgb(13%,61%,67%,100%), size: 10.0pt)), dir: ltr, spacing: 5.0pt)), spacing: 5.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-1-01.typ0000644000000000000000000000040007346545000016554 0ustar0000000000000000// Test spacing. #set page(width: 50pt, margin: 0pt) #let x = square(size: 10pt, fill: eastern) #stack( spacing: 5pt, stack(dir: rtl, spacing: 5pt, x, x, x), stack(dir: ltr, x, 20%, x, 20%, x), stack(dir: ltr, spacing: 5pt, x, x, 7pt, 3pt, x), ) typst-0.8.0.2/test/typ/layout/stack-1-02.out0000644000000000000000000000665607346545000016573 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-1-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-1-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-1-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/stack-1-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 30.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/layout/stack-1-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "stack")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 30.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 13.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), box(body: stack(children: (rect(fill: rgb(18%,80%,25%,100%), height: 20.0pt, width: 40.0pt), rect(fill: rgb(100%,25%,21%,100%), height: 13.0pt, width: 30.0pt)))), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-1-02.typ0000644000000000000000000000026207346545000016563 0ustar0000000000000000// Test overflow. #set page(width: 50pt, height: 30pt, margin: 0pt) #box(stack( rect(width: 40pt, height: 20pt, fill: green), rect(width: 30pt, height: 13pt, fill: red), )) typst-0.8.0.2/test/typ/layout/stack-1-03.out0000644000000000000000000001076307346545000016566 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-1-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-1-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-1-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/stack-1-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/stack-1-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/layout/stack-1-03.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , SoftBreak , Code "typ/layout/stack-1-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) , NormalArg (Literal (Numeric 1.0 Fr)) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Literal (Numeric 1.0 Fr)) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) ]) , SoftBreak , Code "typ/layout/stack-1-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (Block (Content [ Text "A" ])) ]) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "left")) , NormalArg (Block (Content [ Text "B" ])) ]) , NormalArg (Block (Content [ Text "C" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ], size: 8.0pt), stack(children: (1.0fr, text(body: [A], size: 8.0pt), 1.0fr, text(body: [B], size: 8.0pt), text(body: [C], size: 8.0pt)), dir: rtl), text(body: [ ], size: 8.0pt), stack(children: (align(alignment: center, body: text(body: [A], size: 8.0pt)), align(alignment: left, body: text(body: [B], size: 8.0pt)), text(body: [C], size: 8.0pt)), dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-1-03.typ0000644000000000000000000000037707346545000016573 0ustar0000000000000000// Test aligning things in RTL stack with align function & fr units. #set page(width: 50pt, margin: 5pt) #set block(spacing: 5pt) #set text(8pt) #stack(dir: rtl, 1fr, [A], 1fr, [B], [C]) #stack(dir: rtl, align(center, [A]), align(left, [B]), [C], ) typst-0.8.0.2/test/typ/layout/stack-2-00.out0000644000000000000000000001074607346545000016565 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-2-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-2-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-2-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/stack-2-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 3.5 Cm)) ]) , SoftBreak , Code "typ/layout/stack-2-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , SpreadArg (For (BasicBind (Just (Identifier "c"))) (Literal (String "ABCDEFGHI")) (Block (CodeBlock [ Array [ Reg (Block (Content [ Code "typ/layout/stack-2-00.typ" ( line 6 , column 30 ) (Ident (Identifier "c")) ])) ] ]))) ]) , ParBreak , Text "Hello" , SoftBreak , Code "typ/layout/stack-2-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 2.0 Fr)) ]) , SoftBreak , Text "from" , Space , Code "typ/layout/stack-2-00.typ" ( line 11 , column 7 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "the" , Space , Code "typ/layout/stack-2-00.typ" ( line 11 , column 19 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "wonderful" , SoftBreak , Code "typ/layout/stack-2-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , SoftBreak , Text "World!" , Space , Text "\127757" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), stack(children: (text(body: [A]), text(body: [B]), text(body: [C]), text(body: [D]), text(body: [E]), text(body: [F]), text(body: [G]), text(body: [H]), text(body: [I])), dir: ltr, spacing: 1.0fr), parbreak(), text(body: [Hello ]), v(amount: 2.0fr), text(body: [ from ]), h(amount: 1.0fr), text(body: [ the ]), h(amount: 1.0fr), text(body: [ wonderful ]), v(amount: 1.0fr), text(body: [ World! 🌍]), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-2-00.typ0000644000000000000000000000025107346545000016560 0ustar0000000000000000#set page(height: 3.5cm) #stack( dir: ltr, spacing: 1fr, ..for c in "ABCDEFGHI" {([#c],)} ) Hello #v(2fr) from #h(1fr) the #h(1fr) wonderful #v(1fr) World! 🌍 typst-0.8.0.2/test/typ/layout/stack-2-01.out0000644000000000000000000000675307346545000016571 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/stack-2-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/stack-2-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/stack-2-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/stack-2-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) ]) , SoftBreak , Code "typ/layout/stack-2-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "white")) ]) , SoftBreak , Code "typ/layout/stack-2-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , BlockArg [ SoftBreak , Code "typ/layout/stack-2-01.typ" ( line 5 , column 12 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , SoftBreak , Code "typ/layout/stack-2-01.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ]) , Space , Text "Hi" , Space , Text "you!" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], color: rgb(100%,100%,100%,100%)), rect(body: { text(body: [ ], color: rgb(100%,100%,100%,100%)), v(amount: 1.0fr), text(body: [ ], color: rgb(100%,100%,100%,100%)), h(amount: 1.0fr), text(body: [ Hi you!], color: rgb(100%,100%,100%,100%)), parbreak() }, fill: rgb(100%,25%,21%,100%)), parbreak() }) typst-0.8.0.2/test/typ/layout/stack-2-01.typ0000644000000000000000000000014007346545000016556 0ustar0000000000000000#set page(height: 2cm) #set text(white) #rect(fill: red)[ #v(1fr) #h(1fr) Hi you! ] typst-0.8.0.2/test/typ/layout/table-00.out0000644000000000000000000001166207346545000016406 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/table-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/table-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/table-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/table-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 70.0 Pt)) ]) , SoftBreak , Code "typ/layout/table-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "table")) [ KeyValArg (Identifier "fill") (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (If [ ( FuncCall (FieldAccess (Ident (Identifier "even")) (Ident (Identifier "calc"))) [ NormalArg (Plus (Ident (Identifier "x")) (Ident (Identifier "y"))) ] , Block (CodeBlock [ FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "aaa")) ] ]) ) ])) ]) , ParBreak , Code "typ/layout/table-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Times (Array [ Reg (Literal (Numeric 1.0 Fr)) ]) (Literal (Int 3))) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 2.0 Pt)) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "333")) ])) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) , NormalArg (Block (Content [])) , NormalArg (Block (Content [])) , NormalArg (Block (Content [ Text "D" , Space , HardBreak , Text "E" , Space , HardBreak , Text "F" , Space , HardBreak , HardBreak , HardBreak , Text "G" ])) , NormalArg (Block (Content [ Text "H" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), table(children: (text(body: [A]), text(body: [B]), text(body: [C]), { }, { }, { text(body: [D ]), linebreak(), text(body: [E ]), linebreak(), text(body: [F ]), linebreak(), linebreak(), linebreak(), text(body: [G]) }, text(body: [H])), columns: (1.0fr, 1.0fr, 1.0fr), fill: , stroke: (thickness: 2.0pt, color: rgb(1%,1%,1%,100%))), parbreak() }) typst-0.8.0.2/test/typ/layout/table-00.typ0000644000000000000000000000031107346545000016400 0ustar0000000000000000#set page(height: 70pt) #set table(fill: (x, y) => if calc.even(x + y) { rgb("aaa") }) #table( columns: (1fr,) * 3, stroke: 2pt + rgb("333"), [A], [B], [C], [], [], [D \ E \ F \ \ \ G], [H], ) typst-0.8.0.2/test/typ/layout/table-01.out0000644000000000000000000000463607346545000016412 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/table-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/table-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/table-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/layout/table-01.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , KeyValArg (Identifier "stroke") (Literal None) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), table(children: (text(body: [A]), text(body: [B]), text(body: [C])), columns: 3, fill: rgb(18%,80%,25%,100%), stroke: none), parbreak() }) typst-0.8.0.2/test/typ/layout/table-01.typ0000644000000000000000000000007607346545000016411 0ustar0000000000000000#table(columns: 3, stroke: none, fill: green, [A], [B], [C]) typst-0.8.0.2/test/typ/layout/table-02.out0000644000000000000000000000763307346545000016413 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/table-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/table-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/table-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/table-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "align") (Array [ Reg (Ident (Identifier "left")) , Reg (Ident (Identifier "center")) , Reg (Ident (Identifier "right")) ]) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) ]) , ParBreak , Comment , Code "typ/layout/table-02.typ" ( line 10 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Code "typ/layout/table-02.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "align") (Array []) , NormalArg (Block (Content [ Text "A" ])) , NormalArg (Block (Content [ Text "B" ])) , NormalArg (Block (Content [ Text "C" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), table(align: (left, center, right), children: (text(body: [A]), text(body: [B]), text(body: [C])), columns: (1.0fr, 1.0fr, 1.0fr)), parbreak(), text(body: [ ]), table(align: (), children: (text(body: [A]), text(body: [B]), text(body: [C])), columns: (1.0fr, 1.0fr, 1.0fr)), parbreak() }) typst-0.8.0.2/test/typ/layout/table-02.typ0000644000000000000000000000034107346545000016405 0ustar0000000000000000// Test alignment with array. #table( columns: (1fr, 1fr, 1fr), align: (left, center, right), [A], [B], [C] ) // Test empty array. #set align(center) #table( columns: (1fr, 1fr, 1fr), align: (), [A], [B], [C] ) typst-0.8.0.2/test/typ/layout/table-03.out0000644000000000000000000000352707346545000016412 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/table-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/table-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/table-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/table-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "table")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), table(children: ()), parbreak() }) typst-0.8.0.2/test/typ/layout/table-03.typ0000644000000000000000000000003007346545000016401 0ustar0000000000000000// Ref: false #table() typst-0.8.0.2/test/typ/layout/table-04.out0000644000000000000000000000002107346545000016375 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/table-04.typ0000644000000000000000000000013307346545000016406 0ustar0000000000000000// Error: 14-19 expected color, none, array, or function, found string #table(fill: "hey") typst-0.8.0.2/test/typ/layout/terms-00.out0000644000000000000000000000454707346545000016455 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/terms-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "terms")) [ NormalArg (Array [ Reg (Block (Content [ Text "One" ])) , Reg (Block (Content [ Text "First" ])) ]) , NormalArg (Array [ Reg (Block (Content [ Text "Two" ])) , Reg (Block (Content [ Text "Second" ])) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), terms(children: ((text(body: [One]), text(body: [First])), (text(body: [Two]), text(body: [Second])))), parbreak() }) typst-0.8.0.2/test/typ/layout/terms-00.typ0000644000000000000000000000011607346545000016446 0ustar0000000000000000// Test with constructor. #terms( ([One], [First]), ([Two], [Second]), ) typst-0.8.0.2/test/typ/layout/terms-01.out0000644000000000000000000000711407346545000016447 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/terms-01.typ" ( line 3 , column 2 ) (For (BasicBind (Just (Identifier "word"))) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "split")) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 4)) ])) [])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (FuncCall (FieldAccess (Ident (Identifier "trim")) (Ident (Identifier "s"))) [ NormalArg (Literal (String ".")) ])) ]) (Block (Content [ SoftBreak , DescListItem [ Code "typ/layout/terms-01.typ" ( line 4 , column 6 ) (Ident (Identifier "word")) ] [ Text "Latin" , Space , Text "stuff" , Text "." , ParBreak ] ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), terms(children: ((text(body: [Lorem]), { text(body: [Latin stuff.]), parbreak() }))), text(body: [ ]), terms(children: ((text(body: [ipsum]), { text(body: [Latin stuff.]), parbreak() }))), text(body: [ ]), terms(children: ((text(body: [dolor]), { text(body: [Latin stuff.]), parbreak() }))), text(body: [ ]), terms(children: ((text(body: [sit]), { text(body: [Latin stuff.]), parbreak() }))), parbreak() }) typst-0.8.0.2/test/typ/layout/terms-01.typ0000644000000000000000000000014207346545000016446 0ustar0000000000000000// Test joining. #for word in lorem(4).split().map(s => s.trim(".")) [ / #word: Latin stuff. ] typst-0.8.0.2/test/typ/layout/terms-02.out0000644000000000000000000000552407346545000016453 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/terms-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , ParBreak , DescListItem [ Text "Fruit" ] [ Text "A" , Space , Text "tasty," , Space , Text "edible" , Space , Text "thing" , Text "." ] , SoftBreak , DescListItem [ Text "Veggie" ] [ SoftBreak , Text "An" , Space , Text "important" , Space , Text "energy" , Space , Text "source" , SoftBreak , Text "for" , Space , Text "vegetarians" , Text "." , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), terms(children: ((text(body: [Fruit], size: 8.0pt), text(body: [A tasty, edible thing.], size: 8.0pt)), (text(body: [Veggie], size: 8.0pt), { text(body: [ An important energy source for vegetarians.], size: 8.0pt), parbreak() }))) }) typst-0.8.0.2/test/typ/layout/terms-02.typ0000644000000000000000000000017607346545000016456 0ustar0000000000000000// Test multiline. #set text(8pt) / Fruit: A tasty, edible thing. / Veggie: An important energy source for vegetarians. typst-0.8.0.2/test/typ/layout/terms-03.out0000644000000000000000000000652707346545000016460 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/terms-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , SoftBreak , DescListItem [ Text "First" , Space , Text "list" ] [ Code "typ/layout/terms-03.typ" ( line 4 , column 16 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 6)) ]) , SoftBreak ] , SoftBreak , Code "typ/layout/terms-03.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "terms")) [ KeyValArg (Identifier "hanging-indent") (Literal (Numeric 30.0 Pt)) ]) , SoftBreak , DescListItem [ Text "Second" , Space , Text "list" ] [ Code "typ/layout/terms-03.typ" ( line 7 , column 17 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 5)) ]) , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], size: 8.0pt), terms(children: ((text(body: [First list], size: 8.0pt), { text(body: [Lorem ipsum dolor sit amet, consectetur], size: 8.0pt), text(body: [ ], size: 8.0pt) }))), text(body: [ ], size: 8.0pt), terms(children: ((text(body: [Second list], size: 8.0pt), { text(body: [Lorem ipsum dolor sit amet,], size: 8.0pt), parbreak() })), hanging-indent: 30.0pt) }) typst-0.8.0.2/test/typ/layout/terms-03.typ0000644000000000000000000000017107346545000016452 0ustar0000000000000000// Test style change. #set text(8pt) / First list: #lorem(6) #set terms(hanging-indent: 30pt) / Second list: #lorem(5) typst-0.8.0.2/test/typ/layout/terms-04.out0000644000000000000000000001027707346545000016456 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/terms-04.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "terms"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , KeyValArg (Identifier "inset") (Literal (Numeric 3.0 Pt)) , SpreadArg (FuncCall (FieldAccess (Ident (Identifier "flatten")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FieldAccess (Ident (Identifier "children")) (Ident (Identifier "it")))) [ NormalArg (FuncExpr [ NormalParam (Identifier "v") ] (Array [ Reg (FuncCall (Ident (Identifier "emph")) [ NormalArg (FieldAccess (Ident (Identifier "term")) (Ident (Identifier "v"))) ]) , Reg (FieldAccess (Ident (Identifier "description")) (Ident (Identifier "v"))) ])) ])) []) ]))) , ParBreak , DescListItem [ Text "A" ] [ Text "One" , Space , Text "letter" ] , SoftBreak , DescListItem [ Text "BB" ] [ Text "Two" , Space , Text "letters" ] , SoftBreak , DescListItem [ Text "CCC" ] [ Text "Three" , Space , Text "letters" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), table(children: (emph(body: text(body: [A])), text(body: [One letter]), emph(body: text(body: [BB])), text(body: [Two letters]), emph(body: text(body: [CCC])), { text(body: [Three letters]), parbreak() }), columns: 2, inset: 3.0pt) }) typst-0.8.0.2/test/typ/layout/terms-04.typ0000644000000000000000000000032107346545000016450 0ustar0000000000000000// Test grid like show rule. #show terms: it => table( columns: 2, inset: 3pt, ..it.children.map(v => (emph(v.term), v.description)).flatten(), ) / A: One letter / BB: Two letters / CCC: Three letters typst-0.8.0.2/test/typ/layout/terms-05.out0000644000000000000000000000373207346545000016455 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/terms-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/terms-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/terms-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , DescListItem [ Text "Term" ] [] , SoftBreak , Text "Not" , Space , Text "in" , Space , Text "list" , SoftBreak , Text "/" , Text "Nope" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), terms(children: ((text(body: [Term]), { }))), text(body: [Not in list /Nope]), parbreak() }) typst-0.8.0.2/test/typ/layout/terms-05.typ0000644000000000000000000000003307346545000016451 0ustar0000000000000000/ Term: Not in list /Nope typst-0.8.0.2/test/typ/layout/terms-06.out0000644000000000000000000000002107346545000016442 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/layout/terms-06.typ0000644000000000000000000000004307346545000016453 0ustar0000000000000000// Error: 8 expected colon / Hello typst-0.8.0.2/test/typ/layout/transform-00.out0000644000000000000000000001657407346545000017341 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/transform-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/transform-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/transform-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/transform-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "size"))) (Literal (Numeric 11.0 Pt))) , SoftBreak , Code "typ/layout/transform-00.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "tex"))) (Block (CodeBlock [ Block (Content [ Text "T" ]) , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.14))) (Ident (Identifier "size"))) ] , FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Times (Literal (Float 0.22)) (Ident (Identifier "size"))) , BlockArg [ Text "E" ] ]) ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.12))) (Ident (Identifier "size"))) ] , Block (Content [ Text "X" ]) ]))) , ParBreak , Code "typ/layout/transform-00.typ" ( line 12 , column 2 ) (Let (BasicBind (Just (Identifier "xetex"))) (Block (CodeBlock [ Block (Content [ Text "X" ]) , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.14))) (Ident (Identifier "size"))) ] , FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "scale")) [ KeyValArg (Identifier "x") (Negated (Literal (Numeric 100.0 Percent))) , NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Times (Literal (Float 0.26)) (Ident (Identifier "size"))) , BlockArg [ Text "E" ] ]) ]) ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.14))) (Ident (Identifier "size"))) ] , Block (Content [ Text "T" ]) , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.14))) (Ident (Identifier "size"))) ] , FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Times (Literal (Float 0.26)) (Ident (Identifier "size"))) , BlockArg [ Text "E" ] ]) ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Times (Negated (Literal (Float 0.12))) (Ident (Identifier "size"))) ] , Block (Content [ Text "X" ]) ]))) , ParBreak , Code "typ/layout/transform-00.typ" ( line 24 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) , NormalArg (Ident (Identifier "size")) ]) , SoftBreak , Text "Neither" , Space , Code "typ/layout/transform-00.typ" ( line 25 , column 10 ) (Ident (Identifier "tex")) , Text "," , Space , HardBreak , Text "nor" , Space , Code "typ/layout/transform-00.typ" ( line 26 , column 6 ) (Ident (Identifier "xetex")) , Text "!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), text(body: [ Neither ], font: "New Computer Modern", size: 11.0pt), text(body: [T]), h(amount: -1.54pt), box(body: move(body: text(body: [E]), dy: 2.42pt)), h(amount: -1.3199999999999998pt), text(body: [X]), text(body: [, ], font: "New Computer Modern", size: 11.0pt), linebreak(), text(body: [nor ], font: "New Computer Modern", size: 11.0pt), text(body: [X]), h(amount: -1.54pt), box(body: scale(body: move(body: text(body: [E]), dy: 2.8600000000000003pt), x: -100%)), h(amount: -1.54pt), text(body: [T]), h(amount: -1.54pt), box(body: move(body: text(body: [E]), dy: 2.8600000000000003pt)), h(amount: -1.3199999999999998pt), text(body: [X]), text(body: [!], font: "New Computer Modern", size: 11.0pt), parbreak() }) typst-0.8.0.2/test/typ/layout/transform-00.typ0000644000000000000000000000064207346545000017333 0ustar0000000000000000// Test creating the TeX and XeTeX logos. #let size = 11pt #let tex = { [T] h(-0.14 * size) box(move(dy: 0.22 * size)[E]) h(-0.12 * size) [X] } #let xetex = { [X] h(-0.14 * size) box(scale(x: -100%, move(dy: 0.26 * size)[E])) h(-0.14 * size) [T] h(-0.14 * size) box(move(dy: 0.26 * size)[E]) h(-0.12 * size) [X] } #set text(font: "New Computer Modern", size) Neither #tex, \ nor #xetex! typst-0.8.0.2/test/typ/layout/transform-01.out0000644000000000000000000000573107346545000017333 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/transform-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/transform-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/transform-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/transform-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 80.0 Pt)) ]) , SoftBreak , Code "typ/layout/transform-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (FuncCall (Ident (Identifier "rotate")) [ NormalArg (Literal (Numeric 20.0 Deg)) , NormalArg (FuncCall (Ident (Identifier "scale")) [ NormalArg (Literal (Numeric 70.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) ]) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), align(alignment: Axes(center, horizon), body: rotate(angle: 20.0deg, body: scale(body: image(source: "/assets/files/tiger.jpg"), factor: 70%))), parbreak() }) typst-0.8.0.2/test/typ/layout/transform-01.typ0000644000000000000000000000023707346545000017334 0ustar0000000000000000// Test combination of scaling and rotation. #set page(height: 80pt) #align(center + horizon, rotate(20deg, scale(70%, image("/assets/files/tiger.jpg"))) ) typst-0.8.0.2/test/typ/layout/transform-02.out0000644000000000000000000000471407346545000017334 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/transform-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/transform-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/transform-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/transform-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rotate")) [ NormalArg (Literal (Numeric 10.0 Deg)) , KeyValArg (Identifier "origin") (Plus (Ident (Identifier "top")) (Ident (Identifier "left"))) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rotate(angle: 10.0deg, body: image(source: "/assets/files/tiger.jpg", width: 50%), origin: Axes(left, top)), parbreak() }) typst-0.8.0.2/test/typ/layout/transform-02.typ0000644000000000000000000000016607346545000017336 0ustar0000000000000000// Test setting rotation origin. #rotate(10deg, origin: top + left, image("/assets/files/tiger.jpg", width: 50%) ) typst-0.8.0.2/test/typ/layout/transform-03.out0000644000000000000000000001173207346545000017333 0ustar0000000000000000--- parse tree --- [ Code "typ/layout/transform-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/layout/transform-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/layout/transform-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/layout/transform-03.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "r"))) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/layout/transform-03.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 65.0 Pt)) ]) , SoftBreak , Code "typ/layout/transform-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "scale")) [ NormalArg (Ident (Identifier "r")) , KeyValArg (Identifier "x") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "y") (Literal (Numeric 200.0 Percent)) , KeyValArg (Identifier "origin") (Plus (Ident (Identifier "left")) (Ident (Identifier "top"))) ]) ]) , SoftBreak , Code "typ/layout/transform-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "scale")) [ NormalArg (Ident (Identifier "r")) , KeyValArg (Identifier "x") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "origin") (Ident (Identifier "center")) ]) ]) , SoftBreak , Code "typ/layout/transform-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "scale")) [ NormalArg (Ident (Identifier "r")) , KeyValArg (Identifier "x") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "y") (Literal (Numeric 200.0 Percent)) , KeyValArg (Identifier "origin") (Plus (Ident (Identifier "right")) (Ident (Identifier "bottom"))) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, width: 100.0pt), origin: Axes(left, top), x: 50%, y: 200%)), text(body: [ ]), box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, width: 100.0pt), origin: center, x: 50%)), text(body: [ ]), box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, width: 100.0pt), origin: Axes(right, bottom), x: 50%, y: 200%)), parbreak() }) typst-0.8.0.2/test/typ/layout/transform-03.typ0000644000000000000000000000040007346545000017326 0ustar0000000000000000// Test setting scaling origin. #let r = rect(width: 100pt, height: 10pt, fill: red) #set page(height: 65pt) #box(scale(r, x: 50%, y: 200%, origin: left + top)) #box(scale(r, x: 50%, origin: center)) #box(scale(r, x: 50%, y: 200%, origin: right + bottom)) typst-0.8.0.2/test/typ/math/0000755000000000000000000000000007346545000013757 5ustar0000000000000000typst-0.8.0.2/test/typ/math/accent-00.out0000644000000000000000000001431307346545000016164 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/accent-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "grave")) [ BlockArg [ Text "a" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 3 , column 12 ) (FuncCall (Ident (Identifier "acute")) [ BlockArg [ Text "b" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 3 , column 22 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Text "f" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 3 , column 30 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Text "\167" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 3 , column 40 ) (FuncCall (Ident (Identifier "macron")) [ BlockArg [ Text "\228" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 3 , column 51 ) (FuncCall (Ident (Identifier "diaer")) [ BlockArg [ Text "a" ] ]) , Text "," , Text "\228" , HardBreak , Code "typ/math/accent-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "breve")) [ BlockArg [ Text "&" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 4 , column 13 ) (FuncCall (Ident (Identifier "dot")) [ BlockArg [ Text "!" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 4 , column 21 ) (FuncCall (Ident (Identifier "circle")) [ BlockArg [ Text "a" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 4 , column 32 ) (FuncCall (Ident (Identifier "caron")) [ BlockArg [ Text "@" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 4 , column 42 ) (FuncCall (Ident (Identifier "arrow")) [ BlockArg [ Text "Z" ] ]) , Text "," , Code "typ/math/accent-00.typ" ( line 4 , column 52 ) (FuncCall (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "arrow"))) [ BlockArg [ Text "Z" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.accent(accent: `, base: text(body: [a])), text(body: [,]), math.accent(accent: ´, base: text(body: [b])), text(body: [,]), math.accent(accent: ^, base: text(body: [f])), text(body: [,]), math.accent(accent: ∼, base: text(body: [§])), text(body: [,]), math.accent(accent: ¯, base: text(body: [ä])), text(body: [,]), math.accent(accent: ¨, base: text(body: [a])), text(body: [,]), text(body: [ä]), linebreak(), math.accent(accent: ˘, base: text(body: [&])), text(body: [,]), math.accent(accent: ⋅, base: text(body: [!])), text(body: [,]), math.accent(accent: ○, base: text(body: [a])), text(body: [,]), math.accent(accent: ˇ, base: text(body: [@])), text(body: [,]), math.accent(accent: →, base: text(body: [Z])), text(body: [,]), math.accent(accent: ←, base: text(body: [Z])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-00.typ0000644000000000000000000000023207346545000016164 0ustar0000000000000000// Test function call. $grave(a), acute(b), hat(f), tilde(§), macron(ä), diaer(a), ä \ breve(\&), dot(!), circle(a), caron(@), arrow(Z), arrow.l(Z)$ typst-0.8.0.2/test/typ/math/accent-01.out0000644000000000000000000001111207346545000016157 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ Text "x" , MAlignPoint , Text "=" , Text "p" , HardBreak , Code "typ/math/accent-01.typ" ( line 2 , column 12 ) (FuncCall (Ident (Identifier "dot")) [ BlockArg [ Text "x" ] ]) , MAlignPoint , Text "=" , Text "v" , HardBreak , Code "typ/math/accent-01.typ" ( line 2 , column 26 ) (FuncCall (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "dot"))) [ BlockArg [ Text "x" ] ]) , MAlignPoint , Text "=" , Text "a" , HardBreak , Code "typ/math/accent-01.typ" ( line 2 , column 47 ) (FuncCall (FieldAccess (Ident (Identifier "triple")) (Ident (Identifier "dot"))) [ BlockArg [ Text "x" ] ]) , MAlignPoint , Text "=" , Text "j" , HardBreak , Code "typ/math/accent-01.typ" ( line 2 , column 68 ) (FuncCall (FieldAccess (Ident (Identifier "quad")) (Ident (Identifier "dot"))) [ BlockArg [ Text "x" ] ]) , MAlignPoint , Text "=" , Text "s" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), math.alignpoint(), text(body: [=]), text(body: [p]), linebreak(), math.accent(accent: ⋅, base: text(body: [x])), math.alignpoint(), text(body: [=]), text(body: [v]), linebreak(), math.accent(accent: ¨, base: text(body: [x])), math.alignpoint(), text(body: [=]), text(body: [a]), linebreak(), math.accent(accent: ⃛, base: text(body: [x])), math.alignpoint(), text(body: [=]), text(body: [j]), linebreak(), math.accent(accent: ⃜, base: text(body: [x])), math.alignpoint(), text(body: [=]), text(body: [s]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-01.typ0000644000000000000000000000012707346545000016170 0ustar0000000000000000$ x &= p \ dot(x) &= v \ dot.double(x) &= a \ dot.triple(x) &= j \ dot.quad(x) &= s $ typst-0.8.0.2/test/typ/math/accent-02.out0000644000000000000000000000657607346545000016202 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/accent-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "accent")) [ BlockArg [ Text "\246" ] , BlockArg [ Text "." ] ]) , Text "," , Code "typ/math/accent-02.typ" ( line 3 , column 16 ) (FuncCall (Ident (Identifier "accent")) [ BlockArg [ Text "v" ] , BlockArg [ Code "typ/math/accent-02.typ" ( line 3 , column 26 ) (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "arrow"))) ] ]) , Text "," , Code "typ/math/accent-02.typ" ( line 3 , column 31 ) (FuncCall (Ident (Identifier "accent")) [ BlockArg [ Code "typ/math/accent-02.typ" ( line 3 , column 38 ) (Ident (Identifier "ZZ")) ] , BlockArg [ Text "\771" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.accent(accent: text(body: [.]), base: text(body: [ö])), text(body: [,]), math.accent(accent: text(body: [←]), base: text(body: [v])), text(body: [,]), math.accent(accent: text(body: [̃]), base: text(body: [ℤ])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-02.typ0000644000000000000000000000012107346545000016163 0ustar0000000000000000// Test `accent` function. $accent(ö, .), accent(v, <-), accent(ZZ, \u{0303})$ typst-0.8.0.2/test/typ/math/accent-03.out0000644000000000000000000000612507346545000016171 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/accent-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Code "typ/math/accent-03.typ" ( line 3 , column 7 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Text "T" ] ]) ] ]) , Text "+" , MFrac (Code "typ/math/accent-03.typ" ( line 3 , column 19 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Text "f" ] ])) (Code "typ/math/accent-03.typ" ( line 3 , column 26 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Text "g" ] ])) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.sqrt(radicand: math.accent(accent: ∼, base: text(body: [T]))), text(body: [+]), math.frac(denom: math.accent(accent: ^, base: text(body: [g])), num: math.accent(accent: ^, base: text(body: [f]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-03.typ0000644000000000000000000000007107346545000016170 0ustar0000000000000000// Test accent bounds. $sqrt(tilde(T)) + hat(f)/hat(g)$ typst-0.8.0.2/test/typ/math/accent-04.out0000644000000000000000000000553007346545000016171 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/accent-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "arrow")) [ BlockArg [ Text "ABC " , Text "+" , Text "d" ] ]) , Text "," , Code "typ/math/accent-04.typ" ( line 3 , column 20 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Code "typ/math/accent-04.typ" ( line 3 , column 26 ) (Ident (Identifier "sum")) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.accent(accent: →, base: { text(body: [ABC ]), text(body: [+]), text(body: [d]) }), text(body: [,]), math.accent(accent: ∼, base: text(body: [∑])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-04.typ0000644000000000000000000000006307346545000016172 0ustar0000000000000000// Test wide base. $arrow("ABC" + d), tilde(sum)$ typst-0.8.0.2/test/typ/math/accent-05.out0000644000000000000000000000755407346545000016202 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ MAttach Nothing (Just (Text "x")) (Text "A") , Code "typ/math/accent-05.typ" ( line 3 , column 6 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach Nothing (Just (Text "x")) (Code "typ/math/accent-05.typ" ( line 3 , column 9 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Text "A" ] ])) , Code "typ/math/accent-05.typ" ( line 3 , column 18 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach Nothing (Just (Text "x")) (Code "typ/math/accent-05.typ" ( line 3 , column 21 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Code "typ/math/accent-05.typ" ( line 3 , column 25 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Text "A" ] ]) ] ])) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.attach(b: none, base: text(body: [A]), t: text(body: [x])), text(body: [≠]), math.attach(b: none, base: math.accent(accent: ^, base: text(body: [A])), t: text(body: [x])), text(body: [≠]), math.attach(b: none, base: math.accent(accent: ^, base: math.accent(accent: ^, base: text(body: [A]))), t: text(body: [x])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-05.typ0000644000000000000000000000011507346545000016171 0ustar0000000000000000// Test effect of accent on superscript. $A^x != hat(A)^x != hat(hat(A))^x$ typst-0.8.0.2/test/typ/math/accent-06.out0000644000000000000000000000772307346545000016201 0ustar0000000000000000--- parse tree --- [ Code "typ/math/accent-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/accent-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/accent-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/accent-06.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Code "typ/math/accent-06.typ" ( line 3 , column 9 ) (Ident (Identifier "integral")) ] ]) , Text "," , MAttach (Just (Text "a")) (Just (Text "b")) (Code "typ/math/accent-06.typ" ( line 3 , column 20 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Code "typ/math/accent-06.typ" ( line 3 , column 26 ) (Ident (Identifier "integral")) ] ])) , Text "," , Code "typ/math/accent-06.typ" ( line 3 , column 41 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ MAttach (Just (Text "a")) (Just (Text "b")) (Code "typ/math/accent-06.typ" ( line 3 , column 47 ) (Ident (Identifier "integral"))) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.accent(accent: ∼, base: text(body: [∫])), text(body: [,]), math.attach(b: text(body: [a]), base: math.accent(accent: ∼, base: text(body: [∫])), t: text(body: [b])), text(body: [,]), math.accent(accent: ∼, base: math.attach(b: text(body: [a]), base: text(body: [∫]), t: text(body: [b]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/accent-06.typ0000644000000000000000000000012107346545000016167 0ustar0000000000000000// Test high base. $ tilde(integral), tilde(integral)_a^b, tilde(integral_a^b) $ typst-0.8.0.2/test/typ/math/alignment-00.out0000644000000000000000000001014007346545000016677 0ustar0000000000000000--- parse tree --- [ Code "typ/math/alignment-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/alignment-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/alignment-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/alignment-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 225.0 Pt)) ]) , SoftBreak , Equation True [ Text " a " , MAlignPoint , Text "=" , Text "c" , HardBreak , MAlignPoint , Text "=" , Text "c" , Text "+" , Text "1" , MAlignPoint , Text " By definition " , HardBreak , MAlignPoint , Text "=" , Text "d" , Text "+" , Text "100" , Text "+" , Text "1000" , HardBreak , MAlignPoint , Text "=" , Text "x" , MAlignPoint , MAlignPoint , Text " Even longer " , HardBreak ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: { text(body: [ a ]), math.alignpoint(), text(body: [=]), text(body: [c]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [c]), text(body: [+]), text(body: [1]), math.alignpoint(), text(body: [ By definition ]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [d]), text(body: [+]), text(body: [100]), text(body: [+]), text(body: [1000]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [x]), math.alignpoint(), math.alignpoint(), text(body: [ Even longer ]), linebreak() }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/alignment-00.typ0000644000000000000000000000022307346545000016705 0ustar0000000000000000// Test alignment step functions. #set page(width: 225pt) $ "a" &= c \ &= c + 1 & "By definition" \ &= d + 100 + 1000 \ &= x && "Even longer" \ $ typst-0.8.0.2/test/typ/math/alignment-01.out0000644000000000000000000000455307346545000016713 0ustar0000000000000000--- parse tree --- [ Code "typ/math/alignment-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/alignment-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/alignment-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAlignPoint , Text " right " , HardBreak , Text "a very long line " , HardBreak , Text "left " , HardBreak ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.alignpoint(), text(body: [ right ]), linebreak(), text(body: [a very long line ]), linebreak(), text(body: [left ]), linebreak() }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/alignment-01.typ0000644000000000000000000000011307346545000016704 0ustar0000000000000000// Test post-fix alignment. $ & "right" \ "a very long line" \ "left" \ $ typst-0.8.0.2/test/typ/math/alignment-02.out0000644000000000000000000000443607346545000016714 0ustar0000000000000000--- parse tree --- [ Code "typ/math/alignment-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/alignment-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/alignment-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text " right " , HardBreak , Text "a very long line " , HardBreak , Text "left " , HardBreak ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [ right ]), linebreak(), text(body: [a very long line ]), linebreak(), text(body: [left ]), linebreak() }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/alignment-02.typ0000644000000000000000000000010307346545000016704 0ustar0000000000000000// Test no alignment. $ "right" \ "a very long line" \ "left" \ $ typst-0.8.0.2/test/typ/math/alignment-03.out0000644000000000000000000000654207346545000016715 0ustar0000000000000000--- parse tree --- [ Code "typ/math/alignment-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/alignment-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/alignment-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "a" , MAlignPoint , Text "=" , Text "b" , MAlignPoint , Code "typ/math/alignment-03.typ" ( line 4 , column 9 ) (Ident (Identifier "quad")) , Text "c" , MAlignPoint , Text "=" , Text "d" , HardBreak , Text "e" , MAlignPoint , Text "=" , Text "f" , MAlignPoint , Text "g" , MAlignPoint , Text "=" , Text "h" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [a]), math.alignpoint(), text(body: [=]), text(body: [b]), math.alignpoint(), text(body: [ ]), text(body: [c]), math.alignpoint(), text(body: [=]), text(body: [d]), linebreak(), text(body: [e]), math.alignpoint(), text(body: [=]), text(body: [f]), math.alignpoint(), text(body: [g]), math.alignpoint(), text(body: [=]), text(body: [h]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/alignment-03.typ0000644000000000000000000000007507346545000016715 0ustar0000000000000000// Test #460 equations. $ a &=b & quad c&=d \ e &=f & g&=h $ typst-0.8.0.2/test/typ/math/attach-00.out0000644000000000000000000000746307346545000016203 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ MAttach (Just (Text "x")) Nothing (Text "f") , Text "+" , MAttach Nothing (Just (Text "b")) (Text "t") , Text "+" , MAttach (Just (Text "1")) (Just (Text "2")) (Text "V") , Text "+" , Code "typ/math/attach-00.typ" ( line 3 , column 22 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "A" ] , KeyValArg (Identifier "t") (Block (Content [ Code "typ/math/attach-00.typ" ( line 3 , column 35 ) (Ident (Identifier "alpha")) ])) , KeyValArg (Identifier "b") (Block (Content [ Code "typ/math/attach-00.typ" ( line 3 , column 45 ) (Ident (Identifier "beta")) ])) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.attach(b: text(body: [x]), base: text(body: [f]), t: none), text(body: [+]), math.attach(b: none, base: text(body: [t]), t: text(body: [b])), text(body: [+]), math.attach(b: text(body: [1]), base: text(body: [V]), t: text(body: [2])), text(body: [+]), math.attach(b: text(body: [β]), base: text(body: [A]), t: text(body: [α])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-00.typ0000644000000000000000000000012107346545000016170 0ustar0000000000000000// Test basics, postscripts. $f_x + t^b + V_1^2 + attach(A, t: alpha, b: beta)$ typst-0.8.0.2/test/typ/math/attach-01.out0000644000000000000000000001317607346545000016202 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Equation True [ Code "typ/math/attach-01.typ" ( line 5 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-01.typ" ( line 5 , column 8 ) (FuncCall (Ident (Identifier "upright")) [ BlockArg [ Text "O" ] ]) ] , KeyValArg (Identifier "bl") (Block (Content [ Text "8" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "16" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "2" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "2" , Code "typ/math/attach-01.typ" ( line 5 , column 47 ) (Ident (Identifier "minus")) ])) ]) , Text "," , Code "typ/math/attach-01.typ" ( line 6 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "Pb" ] , KeyValArg (Identifier "bl") (Block (Content [ Text "82" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "207" ])) ]) , Text "+" , Code "typ/math/attach-01.typ" ( line 6 , column 33 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-01.typ" ( line 6 , column 40 ) (FuncCall (Ident (Identifier "upright")) [ BlockArg [ Text "e" ] ]) ] , KeyValArg (Identifier "bl") (Block (Content [ Code "typ/math/attach-01.typ" ( line 6 , column 56 ) (Ident (Identifier "minus")) , Text "1" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "0" ])) ]) , Text "+" , MAttach (Just (Text "e")) Nothing (Code "typ/math/attach-01.typ" ( line 6 , column 69 ) (FuncCall (Ident (Identifier "macron")) [ BlockArg [ Text "v" ] ])) , HardBreak ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(base: math.upright(body: text(body: [O])), bl: text(body: [8]), br: text(body: [2]), tl: text(body: [16]), tr: { text(body: [2]), text(body: [−]) }), text(body: [,]), math.attach(base: text(body: [Pb]), bl: text(body: [82]), tl: text(body: [207])), text(body: [+]), math.attach(base: math.upright(body: text(body: [e])), bl: { text(body: [−]), text(body: [1]) }, tl: text(body: [0])), text(body: [+]), math.attach(b: text(body: [e]), base: math.accent(accent: ¯, base: text(body: [v])), t: none), linebreak() }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-01.typ0000644000000000000000000000047207346545000016202 0ustar0000000000000000// Test basics, prescripts. Notably, the upper and lower prescripts' content need to be // aligned on the right edge of their bounding boxes, not on the left as in postscripts. $ attach(upright(O), bl: 8, tl: 16, br: 2, tr: 2-), attach("Pb", bl: 82, tl: 207) + attach(upright(e), bl: -1, tl: 0) + macron(v)_e \ $ typst-0.8.0.2/test/typ/math/attach-02.out0000644000000000000000000005015407346545000016200 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/attach-02.typ" ( line 4 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 4 , column 21 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 4 , column 41 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 5 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , MAttach Nothing (Just (Text "t")) (Code "typ/math/attach-02.typ" ( line 5 , column 21 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ])) , Text "," , MAttach (Just (Text "b")) Nothing (Code "typ/math/attach-02.typ" ( line 5 , column 41 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ])) , HardBreak , Code "typ/math/attach-02.typ" ( line 7 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 8 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 9 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 10 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 10 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 11 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 12 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 12 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) ]) , HardBreak , Code "typ/math/attach-02.typ" ( line 14 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 15 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 15 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 16 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 16 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 17 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 18 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 18 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 19 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 19 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "u" ])) ]) , Text "," , MAttach (Just (Text "b")) (Just (Text "t")) (Code "typ/math/attach-02.typ" ( line 20 , column 1 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ])) , HardBreak , Code "typ/math/attach-02.typ" ( line 22 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 23 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 23 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 24 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 24 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 25 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 25 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 26 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-02.typ" ( line 26 , column 8 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) , Text "," , Code "typ/math/attach-02.typ" ( line 27 , column 1 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "u" ])) , KeyValArg (Identifier "t") (Block (Content [ Text "t" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "v" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "x" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "y" ])) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(base: text(body: [a]), tl: text(body: [u])), text(body: [,]), math.attach(base: text(body: [a]), tr: text(body: [v])), text(body: [,]), math.attach(base: text(body: [a]), bl: text(body: [x])), text(body: [,]), math.attach(base: text(body: [a]), br: text(body: [y])), text(body: [,]), math.attach(b: none, base: math.limits(body: text(body: [a])), t: text(body: [t])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), t: none), linebreak(), math.attach(base: text(body: [a]), t: text(body: [t]), tr: text(body: [v])), text(body: [,]), math.attach(base: text(body: [a]), br: text(body: [y]), tr: text(body: [v])), text(body: [,]), math.attach(b: text(body: [b]), base: text(body: [a]), br: text(body: [y])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), bl: text(body: [x])), text(body: [,]), math.attach(base: text(body: [a]), bl: text(body: [x]), tl: text(body: [u])), text(body: [,]), math.attach(base: math.limits(body: text(body: [a])), t: text(body: [t]), tl: text(body: [u])), linebreak(), math.attach(base: text(body: [a]), tl: text(body: [u]), tr: text(body: [v])), text(body: [,]), math.attach(base: math.limits(body: text(body: [a])), br: text(body: [y]), t: text(body: [t])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), tr: text(body: [v])), text(body: [,]), math.attach(base: text(body: [a]), bl: text(body: [x]), br: text(body: [y])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), tl: text(body: [u])), text(body: [,]), math.attach(base: math.limits(body: text(body: [a])), bl: text(body: [u]), t: text(body: [t])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), t: text(body: [t])), linebreak(), math.attach(base: text(body: [a]), bl: text(body: [x]), br: text(body: [y]), tl: text(body: [u]), tr: text(body: [v])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), bl: text(body: [x]), br: text(body: [y]), t: text(body: [t])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), t: text(body: [t]), tl: text(body: [u]), tr: text(body: [v])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), bl: text(body: [x]), t: text(body: [t]), tl: text(body: [u])), text(body: [,]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [a])), br: text(body: [y]), t: text(body: [t]), tr: text(body: [v])), text(body: [,]), math.attach(b: text(body: [b]), base: text(body: [a]), bl: text(body: [x]), br: text(body: [y]), t: text(body: [t]), tl: text(body: [u]), tr: text(body: [v])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-02.typ0000644000000000000000000000143207346545000016200 0ustar0000000000000000// A mixture of attachment positioning schemes. $ attach(a, tl: u), attach(a, tr: v), attach(a, bl: x), attach(a, br: y), limits(a)^t, limits(a)_b \ attach(a, tr: v, t: t), attach(a, tr: v, br: y), attach(a, br: y, b: b), attach(limits(a), b: b, bl: x), attach(a, tl: u, bl: x), attach(limits(a), t: t, tl: u) \ attach(a, tl: u, tr: v), attach(limits(a), t: t, br: y), attach(limits(a), b: b, tr: v), attach(a, bl: x, br: y), attach(limits(a), b: b, tl: u), attach(limits(a), t: t, bl: u), limits(a)^t_b \ attach(a, tl: u, tr: v, bl: x, br: y), attach(limits(a), t: t, bl: x, br: y, b: b), attach(limits(a), t: t, tl: u, tr: v, b: b), attach(limits(a), tl: u, bl: x, t: t, b: b), attach(limits(a), t: t, b: b, tr: v, br: y), attach(a, tl: u, t: t, tr: v, bl: x, b: b, br: y) $ typst-0.8.0.2/test/typ/math/attach-03.out0000644000000000000000000001453207346545000016201 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ MAttach (Just (Text "1")) Nothing (Code "typ/math/attach-03.typ" ( line 3 , column 2 ) (Ident (Identifier "pi"))) , MGroup (Just "(") (Just ")") [ Text "Y" ] , Text "," , MAttach (Just (MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ])) Nothing (Text "a") , Text "," , MAttach Nothing (Just (Code "typ/math/attach-03.typ" ( line 3 , column 21 ) (FuncCall (Ident (Identifier "zeta")) [ BlockArg [ Text "x" ] ]))) (Text "a") , HardBreak , MAttach Nothing (Just (Code "typ/math/attach-03.typ" ( line 4 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "subset"))) [ BlockArg [ Text "x" ] ]))) (Text "a") , Text "," , MAttach (Just (MGroup Nothing Nothing [ Code "typ/math/attach-03.typ" ( line 4 , column 21 ) (FuncCall (Ident (Identifier "zeta")) [ BlockArg [ Text "x" ] ]) ])) Nothing (Text "a") , Text "," , MAttach (Just (MGroup Nothing Nothing [ Text "1" , MGroup (Just "(") (Just ")") [ Text "Y" ] ])) Nothing (Code "typ/math/attach-03.typ" ( line 4 , column 31 ) (Ident (Identifier "pi"))) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.attach(b: text(body: [1]), base: text(body: [π]), t: none), math.lr(body: ({ [(], text(body: [Y]), [)] })), text(body: [,]), math.attach(b: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, base: text(body: [a]), t: none), text(body: [,]), math.attach(b: none, base: text(body: [a]), t: { text(body: [ζ]), text(body: [(]), text(body: [x]), text(body: [)]) }), linebreak(), math.attach(b: none, base: text(body: [a]), t: { text(body: [⊆]), text(body: [(]), text(body: [x]), text(body: [)]) }), text(body: [,]), math.attach(b: { text(body: [ζ]), text(body: [(]), text(body: [x]), text(body: [)]) }, base: text(body: [a]), t: none), text(body: [,]), math.attach(b: { text(body: [1]), math.lr(body: ({ [(], text(body: [Y]), [)] })) }, base: text(body: [π]), t: none) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-03.typ0000644000000000000000000000015707346545000016204 0ustar0000000000000000// Test function call after subscript. $pi_1(Y), a_f(x), a^zeta(x) \ a^subset.eq(x), a_(zeta(x)), pi_(1(Y))$ typst-0.8.0.2/test/typ/math/attach-04.out0000644000000000000000000004224107346545000016200 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MFrac (Text "1") (MGroup Nothing Nothing [ MAttach Nothing (Just (Text "5")) (MAttach Nothing (Just (Text "4")) (MAttach Nothing (Just (Text "3")) (MAttach Nothing (Just (Text "2")) (Text "V")))) ]) , Text "," , MFrac (Text "1") (Code "typ/math/attach-04.typ" ( line 4 , column 5 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "V" ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 4 , column 19 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "2" ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 4 , column 33 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "3" ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 4 , column 47 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "4" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "5" ])) ]) ])) ]) ])) ]) ])) ])) , Text "," , Code "typ/math/attach-04.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/attach-04.typ" ( line 5 , column 10 ) (Ident (Identifier "Omega")) ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 6 , column 9 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "2" ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 6 , column 23 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "3" ] , KeyValArg (Identifier "tl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 6 , column 37 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "4" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "5" ])) ]) ])) ]) ])) ]) ])) , KeyValArg (Identifier "tr") (Block (Content [ Code "typ/math/attach-04.typ" ( line 7 , column 9 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "2" ] , KeyValArg (Identifier "tr") (Block (Content [ Code "typ/math/attach-04.typ" ( line 7 , column 23 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "3" ] , KeyValArg (Identifier "tr") (Block (Content [ Code "typ/math/attach-04.typ" ( line 7 , column 37 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "4" ] , KeyValArg (Identifier "tr") (Block (Content [ Text "5" ])) ]) ])) ]) ])) ]) ])) , KeyValArg (Identifier "bl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 8 , column 9 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "2" ] , KeyValArg (Identifier "bl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 8 , column 23 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "3" ] , KeyValArg (Identifier "bl") (Block (Content [ Code "typ/math/attach-04.typ" ( line 8 , column 37 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "4" ] , KeyValArg (Identifier "bl") (Block (Content [ Text "5" ])) ]) ])) ]) ])) ]) ])) , KeyValArg (Identifier "br") (Block (Content [ Code "typ/math/attach-04.typ" ( line 9 , column 9 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "2" ] , KeyValArg (Identifier "br") (Block (Content [ Code "typ/math/attach-04.typ" ( line 9 , column 23 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "3" ] , KeyValArg (Identifier "br") (Block (Content [ Code "typ/math/attach-04.typ" ( line 9 , column 37 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "4" ] , KeyValArg (Identifier "br") (Block (Content [ Text "5" ])) ]) ])) ]) ])) ]) ])) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.frac(denom: math.attach(b: none, base: math.attach(b: none, base: math.attach(b: none, base: math.attach(b: none, base: text(body: [V]), t: text(body: [2])), t: text(body: [3])), t: text(body: [4])), t: text(body: [5])), num: text(body: [1])), text(body: [,]), math.frac(denom: math.attach(base: text(body: [V]), tl: math.attach(base: text(body: [2]), tl: math.attach(base: text(body: [3]), tl: math.attach(base: text(body: [4]), tl: text(body: [5]))))), num: text(body: [1])), text(body: [,]), math.attach(base: text(body: [Ω]), bl: math.attach(base: text(body: [2]), bl: math.attach(base: text(body: [3]), bl: math.attach(base: text(body: [4]), bl: text(body: [5])))), br: math.attach(base: text(body: [2]), br: math.attach(base: text(body: [3]), br: math.attach(base: text(body: [4]), br: text(body: [5])))), tl: math.attach(base: text(body: [2]), tl: math.attach(base: text(body: [3]), tl: math.attach(base: text(body: [4]), tl: text(body: [5])))), tr: math.attach(base: text(body: [2]), tr: math.attach(base: text(body: [3]), tr: math.attach(base: text(body: [4]), tr: text(body: [5]))))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-04.typ0000644000000000000000000000055607346545000016210 0ustar0000000000000000// Test associativity and scaling. $ 1/(V^2^3^4^5), 1/attach(V, tl: attach(2, tl: attach(3, tl: attach(4, tl: 5)))), attach(Omega, tl: attach(2, tl: attach(3, tl: attach(4, tl: 5))), tr: attach(2, tr: attach(3, tr: attach(4, tr: 5))), bl: attach(2, bl: attach(3, bl: attach(4, bl: 5))), br: attach(2, br: attach(3, br: attach(4, br: 5))), ) $ typst-0.8.0.2/test/typ/math/attach-05.out0000644000000000000000000001765207346545000016211 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/attach-05.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach (Just (MGroup Nothing Nothing [ MFrac (Text "1") (Text "2") ])) (Just (Code "typ/math/attach-05.typ" ( line 3 , column 16 ) (Ident (Identifier "zeta")))) (Text "a") ] ]) , Text "," , Code "typ/math/attach-05.typ" ( line 3 , column 23 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach (Just (Code "typ/math/attach-05.typ" ( line 3 , column 30 ) (Ident (Identifier "alpha")))) (Just (MGroup Nothing Nothing [ MFrac (Text "1") (Text "2") ])) (Text "a") ] ]) , Text "," , Code "typ/math/attach-05.typ" ( line 3 , column 44 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach (Just (MGroup Nothing Nothing [ MFrac (Text "1") (Text "2") ])) (Just (MGroup Nothing Nothing [ MFrac (Text "3") (Text "4") ])) (Text "a") ] ]) , HardBreak , Code "typ/math/attach-05.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Code "typ/math/attach-05.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ MFrac (Text "1") (Text "2") ])) , KeyValArg (Identifier "bl") (Block (Content [ MFrac (Text "3") (Text "4") ])) ]) ] ]) , Text "," , Code "typ/math/attach-05.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Code "typ/math/attach-05.typ" ( line 5 , column 8 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "a" ] , KeyValArg (Identifier "tl") (Block (Content [ MFrac (Text "1") (Text "2") ])) , KeyValArg (Identifier "bl") (Block (Content [ MFrac (Text "3") (Text "4") ])) , KeyValArg (Identifier "tr") (Block (Content [ MFrac (Text "1") (Text "2") ])) , KeyValArg (Identifier "br") (Block (Content [ MFrac (Text "3") (Text "4") ])) ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), num: text(body: [1])), base: text(body: [a]), t: text(body: [ζ]))), text(body: [,]), math.sqrt(radicand: math.attach(b: text(body: [α]), base: text(body: [a]), t: math.frac(denom: text(body: [2]), num: text(body: [1])))), text(body: [,]), math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), num: text(body: [1])), base: text(body: [a]), t: math.frac(denom: text(body: [4]), num: text(body: [3])))), linebreak(), math.sqrt(radicand: math.attach(base: text(body: [a]), bl: math.frac(denom: text(body: [4]), num: text(body: [3])), tl: math.frac(denom: text(body: [2]), num: text(body: [1])))), text(body: [,]), math.sqrt(radicand: math.attach(base: text(body: [a]), bl: math.frac(denom: text(body: [4]), num: text(body: [3])), br: math.frac(denom: text(body: [4]), num: text(body: [3])), tl: math.frac(denom: text(body: [2]), num: text(body: [1])), tr: math.frac(denom: text(body: [2]), num: text(body: [1])))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-05.typ0000644000000000000000000000030707346545000016203 0ustar0000000000000000// Test high subscript and superscript. $ sqrt(a_(1/2)^zeta), sqrt(a_alpha^(1/2)), sqrt(a_(1/2)^(3/4)) \ sqrt(attach(a, tl: 1/2, bl: 3/4)), sqrt(attach(a, tl: 1/2, bl: 3/4, tr: 1/2, br: 3/4)) $ typst-0.8.0.2/test/typ/math/attach-06.out0000644000000000000000000000767607346545000016217 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach Nothing (Just (Text "n")) (MGroup (Just "(") (Just ")") [ Code "typ/math/attach-06.typ" ( line 3 , column 4 ) (Ident (Identifier "minus")) , Text "1" ]) , Text "+" , MAttach Nothing (Just (MGroup Nothing Nothing [ Code "typ/math/attach-06.typ" ( line 3 , column 23 ) (Ident (Identifier "minus")) , MFrac (Text "1") (Text "2") ])) (MGroup (Just "(") (Just ")") [ MFrac (Text "1") (Text "2") , Text "+" , Text "3" ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: none, base: math.lr(body: ({ [(], text(body: [−]), text(body: [1]), [)] })), t: text(body: [n])), text(body: [+]), math.attach(b: none, base: math.lr(body: ({ [(], math.frac(denom: text(body: [2]), num: text(body: [1])), text(body: [+]), text(body: [3]), [)] })), t: { text(body: [−]), math.frac(denom: text(body: [2]), num: text(body: [1])) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-06.typ0000644000000000000000000000006307346545000016203 0ustar0000000000000000// Test frame base. $ (-1)^n + (1/2 + 3)^(-1/2) $ typst-0.8.0.2/test/typ/math/attach-07.out0000644000000000000000000005462007346545000016207 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/math/attach-07.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 8.0 Pt)) ]) , ParBreak , Comment , Equation True [ MAttach (Just (Text "1")) Nothing (Text "x") , MAttach (Just (Text "1")) Nothing (Text "p") , MAttach (Just (Text "1")) Nothing (Code "typ/math/attach-07.typ" ( line 5 , column 11 ) (FuncCall (Ident (Identifier "frak")) [ BlockArg [ Text "p" ] ])) , MAttach (Just (Text "1")) Nothing (Text "2") , MAttach (Just (Text "1")) Nothing (Code "typ/math/attach-07.typ" ( line 5 , column 25 ) (Ident (Identifier "dot"))) , MAttach (Just (Text "1")) Nothing (Code "typ/math/attach-07.typ" ( line 5 , column 31 ) (Ident (Identifier "lg"))) , MAttach (Just (Text "1")) Nothing (Text "!") , MAttach (Just (Text "1")) Nothing (Text "\\") , MAttach (Just (Text "1")) Nothing (Text "]") , MAttach (Just (Text "1")) Nothing (Text " ip") , MAttach (Just (Text "1")) Nothing (Code "typ/math/attach-07.typ" ( line 5 , column 56 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "iq" ] ])) , HardBreak , MAttach Nothing (Just (Text "1")) (Text "x") , MAttach Nothing (Just (Text "1")) (Text "b") , MAttach Nothing (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 6 , column 11 ) (FuncCall (Ident (Identifier "frak")) [ BlockArg [ Text "b" ] ])) , MAttach Nothing (Just (Text "1")) (Text "2") , MAttach Nothing (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 6 , column 25 ) (Ident (Identifier "dot"))) , MAttach Nothing (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 6 , column 31 ) (Ident (Identifier "lg"))) , MAttach Nothing (Just (Text "1")) (Text "!") , MAttach Nothing (Just (Text "1")) (Text "\\") , MAttach Nothing (Just (Text "1")) (Text "]") , MAttach Nothing (Just (Text "1")) (Text " ib") , MAttach Nothing (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 6 , column 56 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "id" ] ])) , HardBreak , MAttach (Just (Text "1")) Nothing (Text "x") , MAttach (Just (Text "1")) Nothing (Text "y") , MAttach (Just (Text "1")) Nothing (Text " _") , MAttach Nothing (Just (Text "1")) (Text "x") , MAttach Nothing (Just (Text "1")) (Text "l") , MAttach Nothing (Just (Text "1")) (Text " `") , Code "typ/math/attach-07.typ" ( line 7 , column 31 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Text "I" ] , KeyValArg (Identifier "tl") (Block (Content [ Text "1" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "1" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "1" ])) , KeyValArg (Identifier "br") (Block (Content [ Text "1" ])) ]) , MAttach (Just (Text "1")) (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 8 , column 3 ) (FuncCall (Ident (Identifier "scripts")) [ BlockArg [ Code "typ/math/attach-07.typ" ( line 8 , column 11 ) (Ident (Identifier "sum")) ] ])) , MAttach (Just (Text "1")) (Just (Text "1")) (Code "typ/math/attach-07.typ" ( line 8 , column 20 ) (Ident (Identifier "integral"))) , Text "|" , MFrac (Text "1") (Text "2") , MAttach (Just (Text "1")) (Just (Text "1")) (Text "|") , HardBreak , MAttach (Just (Text "1")) (Just (Text "1")) (Text "x") , Text "," , Text " (" , Text "b" , Text "y" , MAttach (Just (Text "1")) (Just (Text "1")) (Text ")") , Code "typ/math/attach-07.typ" ( line 9 , column 24 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach (Just (Text "1")) (Just (Text "1")) (MGroup (Just "(") (Just ")") [ Text "b" , Text "y" ]) , Text "," , MAttach (Just (Text "1")) Nothing (Text " [\8747]") , MAttach (Just (Text "1")) Nothing (MGroup (Just "[") (Just "]") [ Code "typ/math/attach-07.typ" ( line 9 , column 47 ) (Ident (Identifier "integral")) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), math.equation(block: true, body: { math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [x], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [p], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: math.frak(body: text(body: [p], size: 8.0pt)), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [2], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [⋅], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: math.op(limits: false, text: "lg"), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [!], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [\], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: []], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [ ip], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: math.op(text: text(body: [iq], size: 8.0pt)), t: none), linebreak(), math.attach(b: none, base: text(body: [x], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [b], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: math.frak(body: text(body: [b], size: 8.0pt)), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [2], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [⋅], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: math.op(limits: false, text: "lg"), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [!], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [\], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: []], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [ ib], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: math.op(text: text(body: [id], size: 8.0pt)), t: text(body: [1], size: 8.0pt)), linebreak(), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [x], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [y], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [ _], size: 8.0pt), t: none), math.attach(b: none, base: text(body: [x], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [l], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(b: none, base: text(body: [ `], size: 8.0pt), t: text(body: [1], size: 8.0pt)), math.attach(base: text(body: [I], size: 8.0pt), bl: text(body: [1], size: 8.0pt), br: text(body: [1], size: 8.0pt), tl: text(body: [1], size: 8.0pt), tr: text(body: [1], size: 8.0pt)), math.attach(b: text(body: [1], size: 8.0pt), base: math.scripts(body: text(body: [∑], size: 8.0pt)), t: text(body: [1], size: 8.0pt)), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [∫], size: 8.0pt), t: text(body: [1], size: 8.0pt)), text(body: [|], size: 8.0pt), math.frac(denom: text(body: [2], size: 8.0pt), num: text(body: [1], size: 8.0pt)), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [|], size: 8.0pt), t: text(body: [1], size: 8.0pt)), linebreak(), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [x], size: 8.0pt), t: text(body: [1], size: 8.0pt)), text(body: [,], size: 8.0pt), text(body: [ (], size: 8.0pt), text(body: [b], size: 8.0pt), text(body: [y], size: 8.0pt), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [)], size: 8.0pt), t: text(body: [1], size: 8.0pt)), text(body: [≠], size: 8.0pt), math.attach(b: text(body: [1], size: 8.0pt), base: math.lr(body: ({ [(], text(body: [b], size: 8.0pt), text(body: [y], size: 8.0pt), [)] })), t: text(body: [1], size: 8.0pt)), text(body: [,], size: 8.0pt), math.attach(b: text(body: [1], size: 8.0pt), base: text(body: [ [∫]], size: 8.0pt), t: none), math.attach(b: text(body: [1], size: 8.0pt), base: math.lr(body: ({ [[], text(body: [∫], size: 8.0pt), []] })), t: none) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-07.typ0000644000000000000000000000057407346545000016213 0ustar0000000000000000#set text(size: 8pt) // Test that the attachments are aligned horizontally. $ x_1 p_1 frak(p)_1 2_1 dot_1 lg_1 !_1 \\_1 ]_1 "ip"_1 op("iq")_1 \ x^1 b^1 frak(b)^1 2^1 dot^1 lg^1 !^1 \\^1 ]^1 "ib"^1 op("id")^1 \ x_1 y_1 "_"_1 x^1 l^1 "`"^1 attach(I,tl:1,bl:1,tr:1,br:1) scripts(sum)_1^1 integral_1^1 |1/2|_1^1 \ x^1_1, "("b y")"^1_1 != (b y)^1_1, "[∫]"_1 [integral]_1 $ typst-0.8.0.2/test/typ/math/attach-08.out0000644000000000000000000001103707346545000016203 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "n" , Code "typ/math/attach-08.typ" ( line 3 , column 9 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "arrow"))) , Code "typ/math/attach-08.typ" ( line 3 , column 11 ) (Ident (Identifier "oo")) , HardBreak , Text "n" , Text " grows" ])) Nothing (Code "typ/math/attach-08.typ" ( line 3 , column 3 ) (Ident (Identifier "lim"))) , MAttach (Just (MGroup Nothing Nothing [ Text "k" , Text "=" , Text "0" , HardBreak , Text "k" , Code "typ/math/attach-08.typ" ( line 3 , column 40 ) (Ident (Identifier "in")) , Code "typ/math/attach-08.typ" ( line 3 , column 43 ) (Ident (Identifier "NN")) ])) (Just (Text "n")) (Code "typ/math/attach-08.typ" ( line 3 , column 27 ) (Ident (Identifier "sum"))) , Text "k" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [n]), text(body: [→]), text(body: [∞]), linebreak(), text(body: [n]), text(body: [ grows]) }, base: math.op(limits: true, text: "lim"), t: none), math.attach(b: { text(body: [k]), text(body: [=]), text(body: [0]), linebreak(), text(body: [k]), text(body: [∈]), text(body: [ℕ]) }, base: text(body: [∑]), t: text(body: [n])), text(body: [k]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-08.typ0000644000000000000000000000010507346545000016202 0ustar0000000000000000// Test limit. $ lim_(n->oo \ n "grows") sum_(k=0 \ k in NN)^n k $ typst-0.8.0.2/test/typ/math/attach-09.out0000644000000000000000000001320707346545000016205 0ustar0000000000000000--- parse tree --- [ Code "typ/math/attach-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/attach-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/attach-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (Text "1")) (Just (Text "2")) (Code "typ/math/attach-09.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "A" ] ])) , Code "typ/math/attach-09.typ" ( line 3 , column 17 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach (Just (Text "1")) (Just (Text "2")) (Text "A") ] , SoftBreak , Equation True [ MAttach (Just (Text "1")) (Just (Text "2")) (Code "typ/math/attach-09.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "scripts")) [ BlockArg [ Code "typ/math/attach-09.typ" ( line 4 , column 11 ) (Ident (Identifier "sum")) ] ])) , Code "typ/math/attach-09.typ" ( line 4 , column 20 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach (Just (Text "1")) (Just (Text "2")) (Code "typ/math/attach-09.typ" ( line 4 , column 23 ) (Ident (Identifier "sum"))) ] , SoftBreak , Equation True [ MAttach (Just (Text "a")) (Just (Text "b")) (Code "typ/math/attach-09.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Code "typ/math/attach-09.typ" ( line 5 , column 10 ) (Ident (Identifier "integral")) ] ])) , Code "typ/math/attach-09.typ" ( line 5 , column 24 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MAttach (Just (Text "a")) (Just (Text "b")) (Code "typ/math/attach-09.typ" ( line 5 , column 27 ) (Ident (Identifier "integral"))) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: text(body: [1]), base: math.limits(body: text(body: [A])), t: text(body: [2])), text(body: [≠]), math.attach(b: text(body: [1]), base: text(body: [A]), t: text(body: [2])) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { math.attach(b: text(body: [1]), base: math.scripts(body: text(body: [∑])), t: text(body: [2])), text(body: [≠]), math.attach(b: text(body: [1]), base: text(body: [∑]), t: text(body: [2])) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { math.attach(b: text(body: [a]), base: math.limits(body: text(body: [∫])), t: text(body: [b])), text(body: [≠]), math.attach(b: text(body: [a]), base: text(body: [∫]), t: text(body: [b])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/attach-09.typ0000644000000000000000000000021007346545000016200 0ustar0000000000000000// Test forcing scripts and limits. $ limits(A)_1^2 != A_1^2 $ $ scripts(sum)_1^2 != sum_1^2 $ $ limits(integral)_a^b != integral_a^b $ typst-0.8.0.2/test/typ/math/cancel-00.out0000644000000000000000000001235107346545000016154 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "a" , Text "+" , Text "5" , Text "+" , Code "typ/math/cancel-00.typ" ( line 3 , column 10 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] ]) , Text "+" , Text "b" , Code "typ/math/cancel-00.typ" ( line 3 , column 24 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-00.typ" ( line 3 , column 26 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] ]) ] , ParBreak , Equation False [ Text "c" , Text "+" , MFrac (MGroup (Just "(") (Just ")") [ Text "a" , Code "typ/math/cancel-00.typ" ( line 5 , column 9 ) (FieldAccess (Ident (Identifier "c")) (Ident (Identifier "dot"))) , Code "typ/math/cancel-00.typ" ( line 5 , column 15 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Code "typ/math/cancel-00.typ" ( line 5 , column 24 ) (FieldAccess (Ident (Identifier "c")) (Ident (Identifier "dot"))) , Text "c" ] ]) ]) (MGroup Nothing Nothing [ Code "typ/math/cancel-00.typ" ( line 5 , column 35 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Code "typ/math/cancel-00.typ" ( line 5 , column 44 ) (FieldAccess (Ident (Identifier "c")) (Ident (Identifier "dot"))) , Text "c" ] ]) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [+]), text(body: [5]), text(body: [+]), math.cancel(body: text(body: [x])), text(body: [+]), text(body: [b]), text(body: [−]), math.cancel(body: text(body: [x])) }, numbering: none), parbreak(), math.equation(block: false, body: { text(body: [c]), text(body: [+]), math.frac(denom: math.cancel(body: { text(body: [b]), text(body: [·]), text(body: [c]) }), num: { text(body: [a]), text(body: [·]), math.cancel(body: { text(body: [b]), text(body: [·]), text(body: [c]) }) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-00.typ0000644000000000000000000000014607346545000016160 0ustar0000000000000000// Inline $a + 5 + cancel(x) + b - cancel(x)$ $c + (a dot.c cancel(b dot.c c))/(cancel(b dot.c c))$ typst-0.8.0.2/test/typ/math/cancel-01.out0000644000000000000000000001612407346545000016157 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/cancel-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Equation True [ Text "a" , Text "+" , Text "b" , Text "+" , Code "typ/math/cancel-01.typ" ( line 4 , column 11 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Text "+" , Text "c" ] ]) , Code "typ/math/cancel-01.typ" ( line 4 , column 25 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-01.typ" ( line 4 , column 27 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" ] ]) , Code "typ/math/cancel-01.typ" ( line 4 , column 37 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-01.typ" ( line 4 , column 39 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "c" ] ]) , Code "typ/math/cancel-01.typ" ( line 4 , column 49 ) (Ident (Identifier "minus")) , Text "5" , Text "+" , Code "typ/math/cancel-01.typ" ( line 4 , column 55 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "6" ] ]) , Code "typ/math/cancel-01.typ" ( line 4 , column 65 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-01.typ" ( line 4 , column 67 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "6" ] ]) ] , SoftBreak , Equation True [ Text "e" , Text "+" , MFrac (MGroup (Just "(") (Just ")") [ Text "a" , Code "typ/math/cancel-01.typ" ( line 5 , column 10 ) (FieldAccess (Ident (Identifier "c")) (Ident (Identifier "dot"))) , Code "typ/math/cancel-01.typ" ( line 5 , column 16 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ MGroup (Just "(") (Just ")") [ Text "b" , Text "+" , Text "c" , Text "+" , Text "d" ] ] ]) ]) (MGroup Nothing Nothing [ Code "typ/math/cancel-01.typ" ( line 5 , column 38 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Text "+" , Text "c" , Text "+" , Text "d" ] ]) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: { text(body: [a]), text(body: [+]), text(body: [b]), text(body: [+]), math.cancel(body: { text(body: [b]), text(body: [+]), text(body: [c]) }), text(body: [−]), math.cancel(body: text(body: [b])), text(body: [−]), math.cancel(body: text(body: [c])), text(body: [−]), text(body: [5]), text(body: [+]), math.cancel(body: text(body: [6])), text(body: [−]), math.cancel(body: text(body: [6])) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [e]), text(body: [+]), math.frac(denom: math.cancel(body: { text(body: [b]), text(body: [+]), text(body: [c]), text(body: [+]), text(body: [d]) }), num: { text(body: [a]), text(body: [·]), math.cancel(body: math.lr(body: ({ [(], text(body: [b]), text(body: [+]), text(body: [c]), text(body: [+]), text(body: [d]), [)] }))) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-01.typ0000644000000000000000000000025307346545000016160 0ustar0000000000000000// Display #set page(width: auto) $ a + b + cancel(b + c) - cancel(b) - cancel(c) - 5 + cancel(6) - cancel(6) $ $ e + (a dot.c cancel((b + c + d)))/(cancel(b + c + d)) $ typst-0.8.0.2/test/typ/math/cancel-02.out0000644000000000000000000001066107346545000016160 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "a" , Text "+" , Code "typ/math/cancel-02.typ" ( line 3 , column 6 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] , KeyValArg (Identifier "inverted") (Literal (Boolean True)) ]) , Code "typ/math/cancel-02.typ" ( line 3 , column 33 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-02.typ" ( line 3 , column 35 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] , KeyValArg (Identifier "inverted") (Literal (Boolean True)) ]) , Text "+" , Text "10" , Text "+" , Code "typ/math/cancel-02.typ" ( line 3 , column 69 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "y" ] ]) , Code "typ/math/cancel-02.typ" ( line 3 , column 79 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-02.typ" ( line 3 , column 81 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "y" ] ]) ] , SoftBreak , Equation True [ Text "x" , Text "+" , Code "typ/math/cancel-02.typ" ( line 4 , column 7 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "abcdefg" ] , KeyValArg (Identifier "inverted") (Literal (Boolean True)) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [+]), math.cancel(body: text(body: [x]), inverted: true), text(body: [−]), math.cancel(body: text(body: [x]), inverted: true), text(body: [+]), text(body: [10]), text(body: [+]), math.cancel(body: text(body: [y])), text(body: [−]), math.cancel(body: text(body: [y])) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [+]), math.cancel(body: text(body: [abcdefg]), inverted: true) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-02.typ0000644000000000000000000000022307346545000016156 0ustar0000000000000000// Inverted $a + cancel(x, inverted: #true) - cancel(x, inverted: #true) + 10 + cancel(y) - cancel(y)$ $ x + cancel("abcdefg", inverted: #true) $ typst-0.8.0.2/test/typ/math/cancel-03.out0000644000000000000000000001023207346545000016153 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "a" , Text "+" , Code "typ/math/cancel-03.typ" ( line 3 , column 6 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Text "+" , Text "c" , Text "+" , Text "d" ] , KeyValArg (Identifier "cross") (Literal (Boolean True)) , KeyValArg (Identifier "stroke") (Ident (Identifier "red")) ]) , Text "+" , Text "e" ] , SoftBreak , Equation True [ Text "a" , Text "+" , Code "typ/math/cancel-03.typ" ( line 4 , column 7 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "b" , Text "+" , Text "c" , Text "+" , Text "d" ] , KeyValArg (Identifier "cross") (Literal (Boolean True)) ]) , Text "+" , Text "e" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [+]), math.cancel(body: { text(body: [b]), text(body: [+]), text(body: [c]), text(body: [+]), text(body: [d]) }, cross: true, stroke: rgb(100%,25%,21%,100%)), text(body: [+]), text(body: [e]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [a]), text(body: [+]), math.cancel(body: { text(body: [b]), text(body: [+]), text(body: [c]), text(body: [+]), text(body: [d]) }, cross: true), text(body: [+]), text(body: [e]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-03.typ0000644000000000000000000000015607346545000016164 0ustar0000000000000000// Cross $a + cancel(b + c + d, cross: #true, stroke: #red) + e$ $ a + cancel(b + c + d, cross: #true) + e $ typst-0.8.0.2/test/typ/math/cancel-04.out0000644000000000000000000001301107346545000016152 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/cancel-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) , KeyValArg (Identifier "height") (Literal Auto) ]) , SoftBreak , Equation False [ Text "a" , Text "+" , Code "typ/math/cancel-04.typ" ( line 4 , column 6 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] , KeyValArg (Identifier "length") (Literal (Numeric 200.0 Percent)) ]) , Code "typ/math/cancel-04.typ" ( line 4 , column 31 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-04.typ" ( line 4 , column 33 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] , KeyValArg (Identifier "length") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "stroke") (Block (CodeBlock [ Plus (Ident (Identifier "red")) (Literal (Numeric 1.1 Pt)) ])) ]) ] , SoftBreak , Equation True [ Text "b" , Text "+" , Code "typ/math/cancel-04.typ" ( line 5 , column 7 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "x" ] , KeyValArg (Identifier "length") (Literal (Numeric 150.0 Percent)) ]) , Code "typ/math/cancel-04.typ" ( line 5 , column 32 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-04.typ" ( line 5 , column 34 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "a" , Text "+" , Text "b" , Text "+" , Text "c" ] , KeyValArg (Identifier "length") (Literal (Numeric 50.0 Percent)) , KeyValArg (Identifier "stroke") (Block (CodeBlock [ Plus (Ident (Identifier "blue")) (Literal (Numeric 1.2 Pt)) ])) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [+]), math.cancel(body: text(body: [x]), length: 200%), text(body: [−]), math.cancel(body: text(body: [x]), length: 50%, stroke: (thickness: 1.1pt, color: rgb(100%,25%,21%,100%))) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [b]), text(body: [+]), math.cancel(body: text(body: [x]), length: 150%), text(body: [−]), math.cancel(body: { text(body: [a]), text(body: [+]), text(body: [b]), text(body: [+]), text(body: [c]) }, length: 50%, stroke: (thickness: 1.2pt, color: rgb(0%,45%,85%,100%))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-04.typ0000644000000000000000000000035207346545000016163 0ustar0000000000000000// Resized and styled #set page(width: 200pt, height: auto) $a + cancel(x, length: #200%) - cancel(x, length: #50%, stroke: #{red + 1.1pt})$ $ b + cancel(x, length: #150%) - cancel(a + b + c, length: #50%, stroke: #{blue + 1.2pt}) $ typst-0.8.0.2/test/typ/math/cancel-05.out0000644000000000000000000001255707346545000016171 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cancel-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cancel-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cancel-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "x" , Text "+" , Code "typ/math/cancel-05.typ" ( line 3 , column 6 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "y" ] , KeyValArg (Identifier "rotation") (Literal (Numeric 90.0 Deg)) ]) , Code "typ/math/cancel-05.typ" ( line 3 , column 34 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-05.typ" ( line 3 , column 36 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Text "z" ] , KeyValArg (Identifier "rotation") (Literal (Numeric 135.0 Deg)) ]) ] , SoftBreak , Equation True [ Text "e" , Text "+" , Code "typ/math/cancel-05.typ" ( line 4 , column 7 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ MFrac (MGroup (Just "(") (Just ")") [ Text "j" , Text "+" , Text "e" ]) (MGroup Nothing Nothing [ Text "f" , Text "+" , Text "e" ]) ] ]) , Code "typ/math/cancel-05.typ" ( line 4 , column 31 ) (Ident (Identifier "minus")) , Code "typ/math/cancel-05.typ" ( line 4 , column 33 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ MFrac (MGroup (Just "(") (Just ")") [ Text "j" , Text "+" , Text "e" ]) (MGroup Nothing Nothing [ Text "f" , Text "+" , Text "e" ]) ] , KeyValArg (Identifier "rotation") (Literal (Numeric 30.0 Deg)) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [x]), text(body: [+]), math.cancel(body: text(body: [y]), rotation: 90.0deg), text(body: [−]), math.cancel(body: text(body: [z]), rotation: 135.0deg) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [e]), text(body: [+]), math.cancel(body: math.frac(denom: { text(body: [f]), text(body: [+]), text(body: [e]) }, num: { text(body: [j]), text(body: [+]), text(body: [e]) })), text(body: [−]), math.cancel(body: math.frac(denom: { text(body: [f]), text(body: [+]), text(body: [e]) }, num: { text(body: [j]), text(body: [+]), text(body: [e]) }), rotation: 30.0deg) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cancel-05.typ0000644000000000000000000000023007346545000016157 0ustar0000000000000000// Rotated $x + cancel(y, rotation: #90deg) - cancel(z, rotation: #135deg)$ $ e + cancel((j + e)/(f + e)) - cancel((j + e)/(f + e), rotation: #30deg) $ typst-0.8.0.2/test/typ/math/cases-00.out0000644000000000000000000001477307346545000016037 0ustar0000000000000000--- parse tree --- [ Code "typ/math/cases-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/cases-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/cases-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" , Text "," , Text "y" ] ] , Code "typ/math/cases-00.typ" ( line 2 , column 11 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Code "typ/math/cases-00.typ" ( line 2 , column 14 ) (FuncCall (Ident (Identifier "cases")) [ BlockArg [ Text "1" , Code "typ/math/cases-00.typ" ( line 3 , column 5 ) (Ident (Identifier "quad")) , MAlignPoint , Text "if " , MFrac (MGroup (Just "(") (Just ")") [ Text "x" , Code "typ/math/cases-00.typ" ( line 3 , column 19 ) (Ident (Identifier "dot")) , Text "y" ]) (Text "2") , Code "typ/math/cases-00.typ" ( line 3 , column 28 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "lt"))) , Text "0" ] , BlockArg [ Text "2" , MAlignPoint , Text "if " , Text "x" , Code "typ/math/cases-00.typ" ( line 4 , column 13 ) (Ident (Identifier "divides")) , Text "2" ] , BlockArg [ Text "3" , MAlignPoint , Text "if " , Text "x" , Code "typ/math/cases-00.typ" ( line 5 , column 13 ) (Ident (Identifier "in")) , Code "typ/math/cases-00.typ" ( line 5 , column 16 ) (Ident (Identifier "NN")) ] , BlockArg [ Text "4" , MAlignPoint , Text "else" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), text(body: [,]), text(body: [y]), [)] })), text(body: [≔]), math.cases(children: ({ text(body: [1]), text(body: [ ]), math.alignpoint(), text(body: [if ]), math.frac(denom: text(body: [2]), num: { text(body: [x]), text(body: [⋅]), text(body: [y]) }), text(body: [≤]), text(body: [0]) }, { text(body: [2]), math.alignpoint(), text(body: [if ]), text(body: [x]), text(body: [∣]), text(body: [2]) }, { text(body: [3]), math.alignpoint(), text(body: [if ]), text(body: [x]), text(body: [∈]), text(body: [ℕ]) }, { text(body: [4]), math.alignpoint(), text(body: [else]) })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/cases-00.typ0000644000000000000000000000016007346545000016025 0ustar0000000000000000$ f(x, y) := cases( 1 quad &"if" (x dot y)/2 <= 0, 2 &"if" x divides 2, 3 &"if" x in NN, 4 &"else", ) $ typst-0.8.0.2/test/typ/math/content-00.out0000644000000000000000000001021407346545000016375 0ustar0000000000000000--- parse tree --- [ Code "typ/math/content-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/content-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/content-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/content-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "monkey"))) (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dy") (Literal (Numeric 0.2 Em)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/monkey.svg")) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Em)) ]) ])) , SoftBreak , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "i" , Text "=" , Code "typ/math/content-00.typ" ( line 4 , column 11 ) (FieldAccess (Ident (Identifier "apple")) (Ident (Identifier "emoji"))) ])) (Just (Code "typ/math/content-00.typ" ( line 4 , column 25 ) (FieldAccess (Ident (Identifier "red")) (FieldAccess (Ident (Identifier "apple")) (Ident (Identifier "emoji")))))) (Code "typ/math/content-00.typ" ( line 4 , column 3 ) (Ident (Identifier "sum"))) , Text "i" , Text "+" , MFrac (Code "typ/math/content-00.typ" ( line 4 , column 45 ) (Ident (Identifier "monkey"))) (Text "2") ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [i]), text(body: [=]), text(body: [🍏]) }, base: text(body: [∑]), t: text(body: [🍎])), text(body: [i]), text(body: [+]), math.frac(denom: text(body: [2]), num: move(body: image(height: 1.0em, source: "/assets/files/monkey.svg"), dy: 0.2em)) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/content-00.typ0000644000000000000000000000025007346545000016401 0ustar0000000000000000// Test images and font fallback. #let monkey = move(dy: 0.2em, image("/assets/files/monkey.svg", height: 1em)) $ sum_(i=#emoji.apple)^#emoji.apple.red i + monkey/2 $ typst-0.8.0.2/test/typ/math/content-01.out0000644000000000000000000000736107346545000016407 0ustar0000000000000000--- parse tree --- [ Code "typ/math/content-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/content-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/content-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Code "typ/math/content-01.typ" ( line 3 , column 5 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , MFrac (Code "typ/math/content-01.typ" ( line 3 , column 9 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , BlockArg [ Text "x" ] , BlockArg [ Text "y" ] ])) (Code "typ/math/content-01.typ" ( line 3 , column 33 ) (FuncCall (Ident (Identifier "mat")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" ] , BlockArg [ Text "3" ] ])) , Text "=" , Code "typ/math/content-01.typ" ( line 4 , column 9 ) (FuncCall (Ident (Identifier "table")) [ BlockArg [ Text "A" ] , BlockArg [ Text "B" ] , BlockArg [ Text "C" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [≔]), math.frac(denom: math.mat(rows: ((text(body: [1]), text(body: [2]), text(body: [3])))), num: table(children: (text(body: [x]), text(body: [y])), columns: 2)), text(body: [=]), table(children: (text(body: [A]), text(body: [B]), text(body: [C]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/content-01.typ0000644000000000000000000000012607346545000016404 0ustar0000000000000000// Test tables. $ x := #table(columns: 2)[x][y]/mat(1, 2, 3) = #table[A][B][C] $ typst-0.8.0.2/test/typ/math/content-02.out0000644000000000000000000000437207346545000016407 0ustar0000000000000000--- parse tree --- [ Code "typ/math/content-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/content-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/content-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/content-02.typ" ( line 3 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "attach")) (Ident (Identifier "math"))) [ NormalArg (Block (Content [ Equation False [ Text "a" ] ])) , KeyValArg (Identifier "t") (Block (Content [ Text "b" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.attach(base: math.equation(block: false, body: text(body: [a]), numbering: none), t: text(body: [b])), parbreak() }) typst-0.8.0.2/test/typ/math/content-02.typ0000644000000000000000000000011207346545000016400 0ustar0000000000000000// Test non-equation math directly in content. #math.attach($a$, t: [b]) typst-0.8.0.2/test/typ/math/content-03.out0000644000000000000000000000624207346545000016406 0ustar0000000000000000--- parse tree --- [ Code "typ/math/content-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/content-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/content-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/content-03.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "here"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "text"))) [ KeyValArg (Identifier "font") (Literal (String "Noto Sans")) ])) , SoftBreak , Equation False [ Code "typ/math/content-03.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "here")) [ BlockArg [ Text "f" ] ]) , Code "typ/math/content-03.typ" ( line 4 , column 11 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Code "typ/math/content-03.typ" ( line 4 , column 15 ) (FuncCall (Ident (Identifier "here")) [ BlockArg [ Text "Hi" , Space , Text "there" ] ]) ] , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: false, body: { text(body: text(body: [f]), font: "Noto Sans"), text(body: [≔]), text(body: { text(body: [Hi]), text(body: [ ]), text(body: [there]) }, font: "Noto Sans") }, numbering: none), text(body: [.]), parbreak() }) typst-0.8.0.2/test/typ/math/content-03.typ0000644000000000000000000000013507346545000016406 0ustar0000000000000000// Test font switch. #let here = text.with(font: "Noto Sans") $#here[f] := #here[Hi there]$. typst-0.8.0.2/test/typ/math/delimited-00.out0000644000000000000000000001222507346545000016667 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MGroup (Just "(") (Just ")") [ Text "a" ] , Text "+" , MGroup (Just "{") (Just "}") [ MFrac (Text "b") (Text "2") ] , Text "+" , Text "|" , Text "a" , MFrac (Text "|") (Text "2") , Text "+" , MGroup (Just "(") (Just ")") [ Text "b" ] ] , SoftBreak , Equation False [ MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ MFrac (Text "x") (Text "2") ] ] , Text "<" , Code "typ/math/delimited-00.typ" ( line 4 , column 11 ) (FuncCall (Ident (Identifier "zeta")) [ BlockArg [ MAttach Nothing (Just (Text "2")) (Text "c") , Text "+" , Text "|" , Text "a" , Text "+" , MFrac (Text "b") (Text "2") , Text "|" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ [(], text(body: [a]), [)] })), text(body: [+]), math.lr(body: ({ [{], math.frac(denom: text(body: [2]), num: text(body: [b])), [}] })), text(body: [+]), text(body: [|]), text(body: [a]), math.frac(denom: text(body: [2]), num: text(body: [|])), text(body: [+]), math.lr(body: ({ [(], text(body: [b]), [)] })) }, numbering: none), text(body: [ ]), math.equation(block: false, body: { text(body: [f]), math.lr(body: ({ [(], math.frac(denom: text(body: [2]), num: text(body: [x])), [)] })), text(body: [<]), text(body: [ζ]), text(body: [(]), math.attach(b: none, base: text(body: [c]), t: text(body: [2])), text(body: [+]), text(body: [|]), text(body: [a]), text(body: [+]), math.frac(denom: text(body: [2]), num: text(body: [b])), text(body: [|]), text(body: [)]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-00.typ0000644000000000000000000000013407346545000016670 0ustar0000000000000000// Test automatic matching. $ (a) + {b/2} + |a|/2 + (b) $ $f(x/2) < zeta(c^2 + |a + b/2|)$ typst-0.8.0.2/test/typ/math/delimited-01.out0000644000000000000000000000723307346545000016673 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ MGroup (Just "[") Nothing [ Text "1" , Text "," , Text "2" , MGroup (Just "[") Nothing [ Text "=" , MGroup (Just "[") Nothing [ Text "1" , Text "," , Text "2" , Text ")" , Code "typ/math/delimited-01.typ" ( line 3 , column 16 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , Code "typ/math/delimited-01.typ" ( line 3 , column 19 ) (Ident (Identifier "zeta")) , Text "(" , MFrac (Text "x") (Text "2") , Text ")" ] ] ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [[]), text(body: [1]), text(body: [,]), text(body: [2]), text(body: [[]), text(body: [=]), text(body: [[]), text(body: [1]), text(body: [,]), text(body: [2]), text(body: [)]), text(body: [≠]), text(body: [ζ]), text(body: [(]), math.frac(denom: text(body: [2]), num: text(body: [x])), text(body: [)]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-01.typ0000644000000000000000000000006407346545000016673 0ustar0000000000000000// Test unmatched. $[1,2[ = [1,2) != zeta\(x/2\) $ typst-0.8.0.2/test/typ/math/delimited-02.out0000644000000000000000000001331407346545000016671 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/delimited-02.typ" ( line 3 , column 3 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , MFrac (Text "a") (Text "b") , Code "typ/math/delimited-02.typ" ( line 3 , column 8 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Code "typ/math/delimited-02.typ" ( line 3 , column 11 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , Code "typ/math/delimited-02.typ" ( line 3 , column 14 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Code "typ/math/delimited-02.typ" ( line 3 , column 17 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , MFrac (Text "a") (Text "b") , Code "typ/math/delimited-02.typ" ( line 3 , column 22 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) ] ]) , Code "typ/math/delimited-02.typ" ( line 3 , column 26 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , MGroup (Just "[") Nothing [ MFrac (Text "a") (Text "b") , Text ")" ] ] , SoftBreak , Equation True [ Code "typ/math/delimited-02.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Text "|" , Text "]" , Text "1" ] , BlockArg [ Text "2" , Text "[" , Text "+" , MFrac (Text "1") (Text "2") , Text "|" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [⟦]), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: [⟧]), text(body: [≠]), math.lr(body: ({ text(body: [⟧]), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: [⟧]) })), text(body: [≠]), text(body: [[]), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: [)]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: math.lr(body: ({ text(body: [|]), text(body: []]), text(body: [1]) }, { text(body: [2]), text(body: [[]), text(body: [+]), math.frac(denom: text(body: [2]), num: text(body: [1])), text(body: [|]) })), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-02.typ0000644000000000000000000000012607346545000016673 0ustar0000000000000000// Test manual matching. $ [|a/b|] != lr(|]a/b|]) != [a/b) $ $ lr(| ]1,2\[ + 1/2|) $ typst-0.8.0.2/test/typ/math/delimited-03.out0000644000000000000000000000707407346545000016700 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "|" , Text "x" , Text "+" , Text "|" , Text "y" , Text "|" , Text "+" , MFrac (Text "z") (Text "a") , Text "|" , HardBreak , Text "|" , Text "x" , Text "+" , Code "typ/math/delimited-03.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Text "|" , Text "y" , Text "|" ] ]) , Text "+" , MFrac (Text "z") (Text "a") , Text "|" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [|]), text(body: [x]), text(body: [+]), text(body: [|]), text(body: [y]), text(body: [|]), text(body: [+]), math.frac(denom: text(body: [a]), num: text(body: [z])), text(body: [|]), linebreak(), text(body: [|]), text(body: [x]), text(body: [+]), math.lr(body: ({ text(body: [|]), text(body: [y]), text(body: [|]) })), text(body: [+]), math.frac(denom: text(body: [a]), num: text(body: [z])), text(body: [|]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-03.typ0000644000000000000000000000010607346545000016672 0ustar0000000000000000// Test fence confusion. $ |x + |y| + z/a| \ |x + lr(|y|) + z/a| $ typst-0.8.0.2/test/typ/math/delimited-04.out0000644000000000000000000000675507346545000016706 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/delimited-04.typ" ( line 3 , column 3 ) (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "bracket"))) , MFrac (Text "a") (Text "b") , Code "typ/math/delimited-04.typ" ( line 3 , column 17 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "bracket"))) , Text "=" , Code "typ/math/delimited-04.typ" ( line 4 , column 5 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Code "typ/math/delimited-04.typ" ( line 4 , column 8 ) (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "bracket"))) , MFrac (Text "a") (Text "b") , Code "typ/math/delimited-04.typ" ( line 4 , column 22 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "bracket"))) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [[]), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: []]), text(body: [=]), math.lr(body: ({ text(body: [[]), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: []]) })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-04.typ0000644000000000000000000000016007346545000016673 0ustar0000000000000000// Test that symbols aren't matched automatically. $ bracket.l a/b bracket.r = lr(bracket.l a/b bracket.r) $ typst-0.8.0.2/test/typ/math/delimited-05.out0000644000000000000000000000566207346545000016703 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/delimited-05.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ MFrac (Text "a") (Text "b") , Text "]" ] ]) , Text "=" , Text "a" , Text "=" , Code "typ/math/delimited-05.typ" ( line 3 , column 19 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Text "{" , MFrac (Text "a") (Text "b") ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: []]) })), text(body: [=]), text(body: [a]), text(body: [=]), math.lr(body: ({ text(body: [{]), math.frac(denom: text(body: [b]), num: text(body: [a])) })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-05.typ0000644000000000000000000000006107346545000016674 0ustar0000000000000000// Test half LRs. $ lr(a/b\]) = a = lr(\{a/b) $ typst-0.8.0.2/test/typ/math/delimited-06.out0000644000000000000000000001006207346545000016672 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/delimited-06.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Text "]" , MAttach (Just (MGroup Nothing Nothing [ Text "x" , Text "=" , Text "1" ])) (Just (Text "n")) (Code "typ/math/delimited-06.typ" ( line 3 , column 7 ) (Ident (Identifier "sum"))) , Text "x" , Text "]" ] , KeyValArg (Identifier "size") (Literal (Numeric 70.0 Percent)) ]) , Text "<" , Code "typ/math/delimited-06.typ" ( line 4 , column 5 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ MGroup (Just "(") (Just ")") [ Text "1" , Text "," , Text "2" ] ] , KeyValArg (Identifier "size") (Literal (Numeric 200.0 Percent)) ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ text(body: []]), math.attach(b: { text(body: [x]), text(body: [=]), text(body: [1]) }, base: text(body: [∑]), t: text(body: [n])), text(body: [x]), text(body: []]) }), size: 70%), text(body: [<]), math.lr(body: (math.lr(body: ({ [(], text(body: [1]), text(body: [,]), text(body: [2]), [)] }))), size: 200%) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-06.typ0000644000000000000000000000013107346545000016673 0ustar0000000000000000// Test manual scaling. $ lr(]sum_(x=1)^n x], size: #70%) < lr((1, 2), size: #200%) $ typst-0.8.0.2/test/typ/math/delimited-07.out0000644000000000000000000000630707346545000016702 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/delimited-07.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "floor")) [ BlockArg [ MFrac (Text "x") (Text "2") ] ]) , Text "," , Code "typ/math/delimited-07.typ" ( line 3 , column 14 ) (FuncCall (Ident (Identifier "ceil")) [ BlockArg [ MFrac (Text "x") (Text "2") ] ]) , Text "," , Code "typ/math/delimited-07.typ" ( line 3 , column 25 ) (FuncCall (Ident (Identifier "abs")) [ BlockArg [ Text "x" ] ]) , Text "," , Code "typ/math/delimited-07.typ" ( line 3 , column 33 ) (FuncCall (Ident (Identifier "norm")) [ BlockArg [ Text "x" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { math.floor(body: math.frac(denom: text(body: [2]), num: text(body: [x]))), text(body: [,]), math.ceil(body: math.frac(denom: text(body: [2]), num: text(body: [x]))), text(body: [,]), math.abs(body: text(body: [x])), text(body: [,]), math.norm(body: text(body: [x])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-07.typ0000644000000000000000000000012107346545000016673 0ustar0000000000000000// Test predefined delimiter pairings. $floor(x/2), ceil(x/2), abs(x), norm(x)$ typst-0.8.0.2/test/typ/math/delimited-08.out0000644000000000000000000000634207346545000016702 0ustar0000000000000000--- parse tree --- [ Code "typ/math/delimited-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/delimited-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/delimited-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/delimited-08.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Code "typ/math/delimited-08.typ" ( line 4 , column 5 ) (FuncCall (Ident (Identifier "text")) [ BlockArg [ Text "(" ] , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , MFrac (Text "a") (Text "b") , Code "typ/math/delimited-08.typ" ( line 5 , column 5 ) (FuncCall (Ident (Identifier "text")) [ BlockArg [ Text ")" ] , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.lr(body: ({ text(body: text(body: [(]), fill: rgb(18%,80%,25%,100%)), math.frac(denom: text(body: [b]), num: text(body: [a])), text(body: text(body: [)]), fill: rgb(0%,45%,85%,100%)) })), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/delimited-08.typ0000644000000000000000000000014207346545000016677 0ustar0000000000000000// Test colored delimiters $ lr( text("(", fill: #green) a/b text(")", fill: #blue) ) $ typst-0.8.0.2/test/typ/math/frac-00.out0000644000000000000000000000620707346545000015645 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Text "=" , MFrac (Text "1") (Text "2") , Text "=" , MFrac (Text "a") (MGroup Nothing Nothing [ Text "a" , Text "h" ]) , Text "=" , MFrac (Text "a") (Text "a") , Text "=" , MFrac (Text "a") (MGroup Nothing Nothing [ MFrac (Text "1") (Text "2") ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [=]), math.frac(denom: text(body: [2]), num: text(body: [1])), text(body: [=]), math.frac(denom: { text(body: [a]), text(body: [h]) }, num: text(body: [a])), text(body: [=]), math.frac(denom: text(body: [a]), num: text(body: [a])), text(body: [=]), math.frac(denom: math.frac(denom: text(body: [2]), num: text(body: [1])), num: text(body: [a])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-00.typ0000644000000000000000000000014507346545000015645 0ustar0000000000000000// Test that denominator baseline matches in the common case. $ x = 1/2 = a/(a h) = a/a = a/(1/2) $ typst-0.8.0.2/test/typ/math/frac-01.out0000644000000000000000000000645707346545000015655 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MFrac (MGroup (Just "(") (Just ")") [ Text "|" , Text "x" , Text "|" , Text "+" , Text "|" , Text "y" , Text "|" ]) (Text "2") , Text "<" , MFrac (MGroup (Just "[") (Just "]") [ Text "1" , Text "+" , Text "2" ]) (Text "3") ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.frac(denom: text(body: [2]), num: { text(body: [|]), text(body: [x]), text(body: [|]), text(body: [+]), text(body: [|]), text(body: [y]), text(body: [|]) }), text(body: [<]), math.frac(denom: text(body: [3]), num: math.lr(body: ({ [[], text(body: [1]), text(body: [+]), text(body: [2]), []] }))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-01.typ0000644000000000000000000000007207346545000015645 0ustar0000000000000000// Test parenthesis removal. $ (|x| + |y|)/2 < [1+2]/3 $ typst-0.8.0.2/test/typ/math/frac-02.out0000644000000000000000000001011607346545000015641 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Text "=" , MFrac (MGroup (Just "(") (Just ")") [ Code "typ/math/frac-02.typ" ( line 3 , column 8 ) (Ident (Identifier "minus")) , Text "b" , Code "typ/math/frac-02.typ" ( line 3 , column 11 ) (FieldAccess (Ident (Identifier "minus")) (Ident (Identifier "plus"))) , Code "typ/math/frac-02.typ" ( line 3 , column 22 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach Nothing (Just (Text "2")) (Text "b") , Code "typ/math/frac-02.typ" ( line 3 , column 31 ) (Ident (Identifier "minus")) , Text "4" , Text "a" , Text "c" ] ]) ]) (MGroup Nothing Nothing [ Text "2" , Text "a" ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [=]), math.frac(denom: { text(body: [2]), text(body: [a]) }, num: { text(body: [−]), text(body: [b]), text(body: [±]), math.sqrt(radicand: { math.attach(b: none, base: text(body: [b]), t: text(body: [2])), text(body: [−]), text(body: [4]), text(body: [a]), text(body: [c]) }) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-02.typ0000644000000000000000000000010707346545000015645 0ustar0000000000000000// Test large fraction. $ x = (-b plus.minus sqrt(b^2 - 4a c))/(2a) $ typst-0.8.0.2/test/typ/math/frac-03.out0000644000000000000000000000473407346545000015653 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/frac-03.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "binom")) [ BlockArg [ Code "typ/math/frac-03.typ" ( line 3 , column 9 ) (Ident (Identifier "circle")) ] , BlockArg [ Code "typ/math/frac-03.typ" ( line 3 , column 17 ) (Ident (Identifier "square")) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.binom(lower: text(body: [□]), upper: text(body: [○])), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-03.typ0000644000000000000000000000005507346545000015650 0ustar0000000000000000// Test binomial. $ binom(circle, square) $ typst-0.8.0.2/test/typ/math/frac-04.out0000644000000000000000000000002107346545000015635 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/math/frac-04.typ0000644000000000000000000000006707346545000015654 0ustar0000000000000000// Error: 8-13 missing argument: lower $ binom(x^2) $ typst-0.8.0.2/test/typ/math/frac-05.out0000644000000000000000000000565507346545000015660 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MFrac (MFrac (Text "1") (Text "2")) (Text "3") , Text "=" , MFrac (MGroup (Just "(") (Just ")") [ MFrac (Text "1") (Text "2") ]) (Text "3") , Text "=" , MFrac (Text "1") (MGroup Nothing Nothing [ MFrac (Text "2") (Text "3") ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.frac(denom: text(body: [3]), num: math.frac(denom: text(body: [2]), num: text(body: [1]))), text(body: [=]), math.frac(denom: text(body: [3]), num: math.frac(denom: text(body: [2]), num: text(body: [1]))), text(body: [=]), math.frac(denom: math.frac(denom: text(body: [3]), num: text(body: [2])), num: text(body: [1])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-05.typ0000644000000000000000000000006607346545000015654 0ustar0000000000000000// Test associativity. $ 1/2/3 = (1/2)/3 = 1/(2/3) $ typst-0.8.0.2/test/typ/math/frac-06.out0000644000000000000000000002507307346545000015655 0ustar0000000000000000--- parse tree --- [ Code "typ/math/frac-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/frac-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/frac-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MFrac (MAttach (Just (Text "1")) Nothing (Text "a")) (MAttach (Just (Text "2")) Nothing (Text "b")) , Text "," , MFrac (Text "1") (MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ]) , Text "," , MFrac (Code "typ/math/frac-06.typ" ( line 3 , column 20 ) (FuncCall (Ident (Identifier "zeta")) [ BlockArg [ Text "x" ] ])) (Text "2") , Text "," , Text " foo" , Code "typ/math/frac-06.typ" ( line 3 , column 36 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Text "x" , MFrac (Code "typ/math/frac-06.typ" ( line 3 , column 39 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket"))))) (Text "2") , HardBreak , MFrac (Text "1.2") (Text "3.7") , Text "," , MAttach Nothing (Just (Text "3.4")) (Text "2.3") , HardBreak , Text "\127987" , Text "\65039" , Text "\8205" , Text "\127752" , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , Text "," , Text "f" , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , Text "," , Code "typ/math/frac-06.typ" ( line 5 , column 23 ) (Ident (Identifier "phi")) , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , Text "," , Text "\127987" , Text "\65039" , Text "\8205" , Text "\127752" , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , HardBreak , Text "+" , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , Text "," , Text "1" , MFrac (MGroup (Just "(") (Just ")") [ Text "x" ]) (Text "2") , Text "," , Text "2" , MFrac (MGroup (Just "[") (Just "]") [ Text "x" ]) (Text "2") , MGroup Nothing Nothing [ HardBreak , MGroup (Just "(") (Just ")") [ Text "a" ] ] , MFrac (Text "b") (Text "2") , Text "," , MGroup Nothing Nothing [ Text "b" , MGroup (Just "(") (Just ")") [ Text "a" ] ] , MFrac (MGroup (Just "[") (Just "]") [ Text "b" ]) (Text "2") ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.frac(denom: math.attach(b: text(body: [2]), base: text(body: [b]), t: none), num: math.attach(b: text(body: [1]), base: text(body: [a]), t: none)), text(body: [,]), math.frac(denom: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, num: text(body: [1])), text(body: [,]), math.frac(denom: text(body: [2]), num: { text(body: [ζ]), text(body: [(]), text(body: [x]), text(body: [)]) }), text(body: [,]), text(body: [ foo]), text(body: [⟦]), text(body: [x]), math.frac(denom: text(body: [2]), num: text(body: [⟧])), linebreak(), math.frac(denom: text(body: [3.7]), num: text(body: [1.2])), text(body: [,]), math.attach(b: none, base: text(body: [2.3]), t: text(body: [3.4])), linebreak(), text(body: [🏳]), text(body: [️]), text(body: [‍]), text(body: [🌈]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), text(body: [,]), text(body: [f]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), text(body: [,]), text(body: [φ]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), text(body: [,]), text(body: [🏳]), text(body: [️]), text(body: [‍]), text(body: [🌈]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), linebreak(), text(body: [+]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), text(body: [,]), text(body: [1]), math.frac(denom: text(body: [2]), num: text(body: [x])), text(body: [,]), text(body: [2]), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [x]), []] }))), linebreak(), math.lr(body: ({ [(], text(body: [a]), [)] })), math.frac(denom: text(body: [2]), num: text(body: [b])), text(body: [,]), text(body: [b]), math.lr(body: ({ [(], text(body: [a]), [)] })), math.frac(denom: text(body: [2]), num: math.lr(body: ({ [[], text(body: [b]), []] }))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/frac-06.typ0000644000000000000000000000031107346545000015646 0ustar0000000000000000// Test precedence. $ a_1/b_2, 1/f(x), zeta(x)/2, "foo"[|x|]/2 \ 1.2/3.7, 2.3^3.4 \ 🏳️‍🌈[x]/2, f [x]/2, phi [x]/2, 🏳️‍🌈 [x]/2 \ +[x]/2, 1(x)/2, 2[x]/2 \ (a)b/2, b(a)[b]/2 $ typst-0.8.0.2/test/typ/math/matrix-00.out0000644000000000000000000001372407346545000016240 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/matrix-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Equation False [ Code "typ/math/matrix-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "mat")) []) , Code "typ/math/matrix-00.typ" ( line 4 , column 8 ) (Ident (Identifier "dot")) , Code "typ/math/matrix-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [] ] ] ]) , Code "typ/math/matrix-00.typ" ( line 5 , column 9 ) (Ident (Identifier "dot")) , Code "typ/math/matrix-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" ] ]) , Code "typ/math/matrix-00.typ" ( line 6 , column 12 ) (Ident (Identifier "dot")) , Code "typ/math/matrix-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] ] ]) , HardBreak , Code "typ/math/matrix-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" ] , [ Text "2" ] ] ]) , Code "typ/math/matrix-00.typ" ( line 8 , column 12 ) (Ident (Identifier "dot")) , Code "typ/math/matrix-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] , [ Text "3" , Text "4" ] ] ]) , Code "typ/math/matrix-00.typ" ( line 9 , column 18 ) (Ident (Identifier "dot")) , Code "typ/math/matrix-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Text "1" , Text "+" , MAlignPoint , Text "2" ] , MFrac (Text "1") (Text "2") ] , [ MGroup Nothing Nothing [ MAlignPoint , Text "3" ] , Text "4" ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: false, body: { math.mat(rows: ()), text(body: [⋅]), math.mat(rows: (({ }))), text(body: [⋅]), math.mat(rows: ((text(body: [1]), text(body: [2])))), text(body: [⋅]), math.mat(rows: ((text(body: [1]), text(body: [2])))), linebreak(), math.mat(rows: ((text(body: [1])), (text(body: [2])))), text(body: [⋅]), math.mat(rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), text(body: [⋅]), math.mat(rows: (({ text(body: [1]), text(body: [+]), math.alignpoint(), text(body: [2]) }, math.frac(denom: text(body: [2]), num: text(body: [1]))), ({ math.alignpoint(), text(body: [3]) }, text(body: [4])))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-00.typ0000644000000000000000000000024007346545000016232 0ustar0000000000000000// Test semicolon syntax. #set align(center) $mat() dot mat(;) dot mat(1, 2) dot mat(1, 2;) \ mat(1; 2) dot mat(1, 2; 3, 4) dot mat(1 + &2, 1/2; &3, 4)$ typst-0.8.0.2/test/typ/math/matrix-01.out0000644000000000000000000001156307346545000016240 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" , Code "typ/math/matrix-01.typ" ( line 4 , column 9 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "10" ] , [ Text "2" , Text "2" , Code "typ/math/matrix-01.typ" ( line 5 , column 9 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "10" ] , [ Code "typ/math/matrix-01.typ" ( line 6 , column 3 ) (FieldAccess (Ident (Identifier "v")) (Ident (Identifier "dots"))) , Code "typ/math/matrix-01.typ" ( line 6 , column 11 ) (FieldAccess (Ident (Identifier "v")) (Ident (Identifier "dots"))) , Code "typ/math/matrix-01.typ" ( line 6 , column 19 ) (FieldAccess (Ident (Identifier "down")) (Ident (Identifier "dots"))) , Code "typ/math/matrix-01.typ" ( line 6 , column 30 ) (FieldAccess (Ident (Identifier "v")) (Ident (Identifier "dots"))) ] , [ Text "10" , Text "10" , Code "typ/math/matrix-01.typ" ( line 7 , column 11 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "10" ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: ((text(body: [1]), text(body: [2]), text(body: […]), text(body: [10])), (text(body: [2]), text(body: [2]), text(body: […]), text(body: [10])), (text(body: [⋮]), text(body: [⋮]), text(body: [⋱]), text(body: [⋮])), (text(body: [10]), text(body: [10]), text(body: […]), text(body: [10])))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-01.typ0000644000000000000000000000017507346545000016242 0ustar0000000000000000// Test sparse matrix. $ mat( 1, 2, ..., 10; 2, 2, ..., 10; dots.v, dots.v, dots.down, dots.v; 10, 10, ..., 10; ) $ typst-0.8.0.2/test/typ/math/matrix-02.out0000644000000000000000000001062507346545000016237 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-02.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "a" , MAttach Nothing (Just (Text "2")) (Text "b") ] , [ MGroup Nothing Nothing [ MAttach (Just (MGroup Nothing Nothing [ Text "x" , HardBreak , Text "y" ])) Nothing (Code "typ/math/matrix-02.typ" ( line 5 , column 3 ) (Ident (Identifier "sum"))) , Text "x" ] , MAttach Nothing (Just (MGroup Nothing Nothing [ MFrac (Text "1") (Text "2") ])) (Text "a") ] , [ Code "typ/math/matrix-02.typ" ( line 6 , column 3 ) (Ident (Identifier "zeta")) , Code "typ/math/matrix-02.typ" ( line 6 , column 9 ) (Ident (Identifier "alpha")) ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: ((text(body: [a]), math.attach(b: none, base: text(body: [b]), t: text(body: [2]))), ({ math.attach(b: { text(body: [x]), linebreak(), text(body: [y]) }, base: text(body: [∑]), t: none), text(body: [x]) }, math.attach(b: none, base: text(body: [a]), t: math.frac(denom: text(body: [2]), num: text(body: [1])))), (text(body: [ζ]), text(body: [α])))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-02.typ0000644000000000000000000000013307346545000016235 0ustar0000000000000000// Test baseline alignment. $ mat( a, b^2; sum_(x \ y) x, a^(1/2); zeta, alpha; ) $ typst-0.8.0.2/test/typ/math/matrix-03.out0000644000000000000000000000730107346545000016235 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/matrix-03.typ" ( line 3 , column 2 ) (Set (FieldAccess (Ident (Identifier "mat")) (Ident (Identifier "math"))) [ KeyValArg (Identifier "delim") (Literal (String "[")) ]) , SoftBreak , Equation True [ Code "typ/math/matrix-03.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] , [ Text "3" , Text "4" ] ] ]) ] , SoftBreak , Equation True [ Text "a" , Text "+" , Code "typ/math/matrix-03.typ" ( line 5 , column 7 ) (FuncCall (Ident (Identifier "mat")) [ KeyValArg (Identifier "delim") (Literal None) , ArrayArg [ [ Text "1" , Text "2" ] , [ Text "3" , Text "4" ] ] ]) , Text "+" , Text "b" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: math.mat(delim: "[", rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [a]), text(body: [+]), math.mat(delim: none, rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), text(body: [+]), text(body: [b]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-03.typ0000644000000000000000000000020607346545000016237 0ustar0000000000000000// Test alternative delimiter with set rule. #set math.mat(delim: "[") $ mat(1, 2; 3, 4) $ $ a + mat(delim: #none, 1, 2; 3, 4) + b $ typst-0.8.0.2/test/typ/math/matrix-04.out0000644000000000000000000002664307346545000016250 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/matrix-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Code "typ/math/matrix-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , KeyValArg (Identifier "gutter") (Literal (Numeric 10.0 Pt)) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 8 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 9 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 10 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) , BlockArg [ Text "1" ] , BlockArg [ Text "2" ] ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 12 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" ] , [ Text "2" ] ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 13 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" ] ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) , BlockArg [ Text "2" ] ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 14 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) , ArrayArg [ [ Text "1" ] , [ Text "2" ] ] ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 16 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) , BlockArg [ Text "3" ] , BlockArg [ Text "4" ] ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 17 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) , ArrayArg [ [ Text "1" , Text "2" ] , [ Text "3" , Text "4" ] ] ]) ] ])) , NormalArg (Block (Content [ Equation True [ Code "typ/math/matrix-04.typ" ( line 18 , column 5 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text "1" , Text "2" ] , [ Text "3" , Text "4" ] ] , KeyValArg (Identifier "delim") (Block (Content [ Text "[" ])) ]) ] ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1])), (text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1])), (text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1])), (text(body: [2])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), numbering: none), math.equation(block: true, body: math.mat(delim: text(body: [[]), rows: ((text(body: [1]), text(body: [2])), (text(body: [3]), text(body: [4])))), numbering: none)), columns: 3, gutter: 10.0pt), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-04.typ0000644000000000000000000000061207346545000016241 0ustar0000000000000000// Test alternative math delimiter directly in call. #set align(center) #grid( columns: 3, gutter: 10pt, $ mat(1, 2, delim: "[") $, $ mat(1, 2; delim: "[") $, $ mat(delim: "[", 1, 2) $, $ mat(1; 2; delim: "[") $, $ mat(1; delim: "[", 2) $, $ mat(delim: "[", 1; 2) $, $ mat(1, 2; delim: "[", 3, 4) $, $ mat(delim: "[", 1, 2; 3, 4) $, $ mat(1, 2; 3, 4; delim: "[") $, ) typst-0.8.0.2/test/typ/math/matrix-05.out0000644000000000000000000000002107346545000016227 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/math/matrix-05.typ0000644000000000000000000000011707346545000016242 0ustar0000000000000000// Error: 13-14 expected array, found content $ mat(1, 2; 3, 4, delim: "[") $, typst-0.8.0.2/test/typ/math/matrix-alignment-00.out0000644000000000000000000000732607346545000020215 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-00.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "vec")) [ BlockArg [ Text " a " , MAlignPoint , Text " a a a " , MAlignPoint , Text " a a" ] , BlockArg [ Text " a a " , MAlignPoint , Text " a a " , MAlignPoint , Text " a" ] , BlockArg [ Text " a a a " , MAlignPoint , Text " a " , MAlignPoint , Text " a a a" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.vec(children: ({ text(body: [ a ]), math.alignpoint(), text(body: [ a a a ]), math.alignpoint(), text(body: [ a a]) }, { text(body: [ a a ]), math.alignpoint(), text(body: [ a a ]), math.alignpoint(), text(body: [ a]) }, { text(body: [ a a a ]), math.alignpoint(), text(body: [ a ]), math.alignpoint(), text(body: [ a a a]) })), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-00.typ0000644000000000000000000000020207346545000020204 0ustar0000000000000000// Test alternating alignment in a vector. $ vec( "a" & "a a a" & "a a", "a a" & "a a" & "a", "a a a" & "a" & "a a a", ) $ typst-0.8.0.2/test/typ/math/matrix-alignment-01.out0000644000000000000000000001006207346545000020205 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Text " a " , MAlignPoint , Text " a a a " , MAlignPoint , Text " a a" ] ] , [ MGroup Nothing Nothing [ Text " a a " , MAlignPoint , Text " a a " , MAlignPoint , Text " a" ] ] , [ MGroup Nothing Nothing [ Text " a a a " , MAlignPoint , Text " a " , MAlignPoint , Text " a a a" ] ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [ a ]), math.alignpoint(), text(body: [ a a a ]), math.alignpoint(), text(body: [ a a]) }), ({ text(body: [ a a ]), math.alignpoint(), text(body: [ a a ]), math.alignpoint(), text(body: [ a]) }), ({ text(body: [ a a a ]), math.alignpoint(), text(body: [ a ]), math.alignpoint(), text(body: [ a a a]) }))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-01.typ0000644000000000000000000000021307346545000020207 0ustar0000000000000000// Test alternating explicit alignment in a matrix. $ mat( "a" & "a a a" & "a a"; "a a" & "a a" & "a"; "a a a" & "a" & "a a a"; ) $ typst-0.8.0.2/test/typ/math/matrix-alignment-02.out0000644000000000000000000000556607346545000020223 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-02.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ Text " a" , Text " a a a" , Text " a a" ] , [ Text " a a" , Text " a a" , Text " a" ] , [ Text " a a a" , Text " a" , Text " a a a" ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: ((text(body: [ a]), text(body: [ a a a]), text(body: [ a a])), (text(body: [ a a]), text(body: [ a a]), text(body: [ a])), (text(body: [ a a a]), text(body: [ a]), text(body: [ a a a])))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-02.typ0000644000000000000000000000016007346545000020211 0ustar0000000000000000// Test alignment in a matrix. $ mat( "a", "a a a", "a a"; "a a", "a a", "a"; "a a a", "a", "a a a"; ) $ typst-0.8.0.2/test/typ/math/matrix-alignment-03.out0000644000000000000000000001007607346545000020214 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-03.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ MAlignPoint , Text "a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a a a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a a" ] ] , [ MGroup Nothing Nothing [ MAlignPoint , Text "a a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a" ] ] , [ MGroup Nothing Nothing [ MAlignPoint , Text "a a a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a" ] , MGroup Nothing Nothing [ MAlignPoint , Text "a a a" ] ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ math.alignpoint(), text(body: [a]) }, { math.alignpoint(), text(body: [a a a]) }, { math.alignpoint(), text(body: [a a]) }), ({ math.alignpoint(), text(body: [a a]) }, { math.alignpoint(), text(body: [a a]) }, { math.alignpoint(), text(body: [a]) }), ({ math.alignpoint(), text(body: [a a a]) }, { math.alignpoint(), text(body: [a]) }, { math.alignpoint(), text(body: [a a a]) }))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-03.typ0000644000000000000000000000020707346545000020214 0ustar0000000000000000// Test explicit left alignment in a matrix. $ mat( &"a", &"a a a", &"a a"; &"a a", &"a a", &"a"; &"a a a", &"a", &"a a a"; ) $ typst-0.8.0.2/test/typ/math/matrix-alignment-04.out0000644000000000000000000001012007346545000020203 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-04.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Text " a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a a a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a a" , MAlignPoint ] ] , [ MGroup Nothing Nothing [ Text " a a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a" , MAlignPoint ] ] , [ MGroup Nothing Nothing [ Text " a a a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a" , MAlignPoint ] , MGroup Nothing Nothing [ Text " a a a" , MAlignPoint ] ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [ a]), math.alignpoint() }, { text(body: [ a a a]), math.alignpoint() }, { text(body: [ a a]), math.alignpoint() }), ({ text(body: [ a a]), math.alignpoint() }, { text(body: [ a a]), math.alignpoint() }, { text(body: [ a]), math.alignpoint() }), ({ text(body: [ a a a]), math.alignpoint() }, { text(body: [ a]), math.alignpoint() }, { text(body: [ a a a]), math.alignpoint() }))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-04.typ0000644000000000000000000000021007346545000020207 0ustar0000000000000000// Test explicit right alignment in a matrix. $ mat( "a"&, "a a a"&, "a a"&; "a a"&, "a a"&, "a"&; "a a a"&, "a"&, "a a a"&; ) $ typst-0.8.0.2/test/typ/math/matrix-alignment-05.out0000644000000000000000000002165207346545000020220 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-05.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ MAlignPoint , Text "a" , Text "+" , Text "b" ] , Text "c" ] , [ MGroup Nothing Nothing [ MAlignPoint , Text "d" ] , Text "e" ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-05.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ MAlignPoint , Text "a" , Text "+" , Text "b" , MAlignPoint ] , Text "c" ] , [ MGroup Nothing Nothing [ MAlignPoint , Text "d" , MAlignPoint ] , Text "e" ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-05.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ MAlignPoint , MAlignPoint , MAlignPoint , Text "a" , Text "+" , Text "b" ] , Text "c" ] , [ MGroup Nothing Nothing [ MAlignPoint , MAlignPoint , MAlignPoint , Text "d" ] , Text "e" ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-05.typ" ( line 6 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Text "." , MAlignPoint , Text "a" , Text "+" , Text "b" , MAlignPoint , Text "." ] , Text "c" ] , [ MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-05.typ" ( line 6 , column 17 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "." , Text "." , MAlignPoint , Text "d" , MAlignPoint , Code "typ/math/matrix-alignment-05.typ" ( line 6 , column 25 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "." , Text "." ] , Text "e" ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ math.alignpoint(), text(body: [a]), text(body: [+]), text(body: [b]) }, text(body: [c])), ({ math.alignpoint(), text(body: [d]) }, text(body: [e])))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ math.alignpoint(), text(body: [a]), text(body: [+]), text(body: [b]), math.alignpoint() }, text(body: [c])), ({ math.alignpoint(), text(body: [d]), math.alignpoint() }, text(body: [e])))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ math.alignpoint(), math.alignpoint(), math.alignpoint(), text(body: [a]), text(body: [+]), text(body: [b]) }, text(body: [c])), ({ math.alignpoint(), math.alignpoint(), math.alignpoint(), text(body: [d]) }, text(body: [e])))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [.]), math.alignpoint(), text(body: [a]), text(body: [+]), text(body: [b]), math.alignpoint(), text(body: [.]) }, text(body: [c])), ({ text(body: […]), text(body: [.]), text(body: [.]), math.alignpoint(), text(body: [d]), math.alignpoint(), text(body: […]), text(body: [.]), text(body: [.]) }, text(body: [e])))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-05.typ0000644000000000000000000000020507346545000020214 0ustar0000000000000000// Test #460 equations. $ mat(&a+b,c;&d, e) $ $ mat(&a+b&,c;&d&, e) $ $ mat(&&&a+b,c;&&&d, e) $ $ mat(.&a+b&.,c;.....&d&....., e) $ typst-0.8.0.2/test/typ/math/matrix-alignment-06.out0000644000000000000000000003202707346545000020217 0ustar0000000000000000--- parse tree --- [ Code "typ/math/matrix-alignment-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/matrix-alignment-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/matrix-alignment-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/matrix-alignment-06.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 3 , column 7 ) (Ident (Identifier "minus")) , Text "1" ] , Text "1" , Text "1" ] , [ Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 3 , column 20 ) (Ident (Identifier "minus")) , Text "1" ] , Text "1" ] , [ Text "1" , Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 3 , column 33 ) (Ident (Identifier "minus")) , Text "1" ] ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-06.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 4 , column 7 ) (Ident (Identifier "minus")) , Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] ] , [ MGroup Nothing Nothing [ Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 4 , column 24 ) (Ident (Identifier "minus")) , Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] ] , [ MGroup Nothing Nothing [ Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 4 , column 41 ) (Ident (Identifier "minus")) , Text "1" , MAlignPoint ] ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-06.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 5 , column 7 ) (Ident (Identifier "minus")) , Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] , MGroup Nothing Nothing [ Text "1" , MAlignPoint ] ] , [ Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 5 , column 23 ) (Ident (Identifier "minus")) , Text "1" ] , Text "1" ] , [ Text "1" , Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 5 , column 36 ) (Ident (Identifier "minus")) , Text "1" ] ] ] ]) ] , SoftBreak , Equation True [ Code "typ/math/matrix-alignment-06.typ" ( line 6 , column 3 ) (FuncCall (Ident (Identifier "mat")) [ ArrayArg [ [ MGroup Nothing Nothing [ MAlignPoint , Code "typ/math/matrix-alignment-06.typ" ( line 6 , column 8 ) (Ident (Identifier "minus")) , Text "1" ] , MGroup Nothing Nothing [ MAlignPoint , Text "1" ] , MGroup Nothing Nothing [ MAlignPoint , Text "1" ] ] , [ Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 6 , column 23 ) (Ident (Identifier "minus")) , Text "1" ] , Text "1" ] , [ Text "1" , Text "1" , MGroup Nothing Nothing [ Code "typ/math/matrix-alignment-06.typ" ( line 6 , column 36 ) (Ident (Identifier "minus")) , Text "1" ] ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [−]), text(body: [1]) }, text(body: [1]), text(body: [1])), (text(body: [1]), { text(body: [−]), text(body: [1]) }, text(body: [1])), (text(body: [1]), text(body: [1]), { text(body: [−]), text(body: [1]) }))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [−]), text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }), ({ text(body: [1]), math.alignpoint() }, { text(body: [−]), text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }), ({ text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }, { text(body: [−]), text(body: [1]), math.alignpoint() }))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ text(body: [−]), text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }, { text(body: [1]), math.alignpoint() }), (text(body: [1]), { text(body: [−]), text(body: [1]) }, text(body: [1])), (text(body: [1]), text(body: [1]), { text(body: [−]), text(body: [1]) }))), numbering: none), text(body: [ ]), math.equation(block: true, body: math.mat(rows: (({ math.alignpoint(), text(body: [−]), text(body: [1]) }, { math.alignpoint(), text(body: [1]) }, { math.alignpoint(), text(body: [1]) }), (text(body: [1]), { text(body: [−]), text(body: [1]) }, text(body: [1])), (text(body: [1]), text(body: [1]), { text(body: [−]), text(body: [1]) }))), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/matrix-alignment-06.typ0000644000000000000000000000027707346545000020226 0ustar0000000000000000// Test #454 equations. $ mat(-1, 1, 1; 1, -1, 1; 1, 1, -1) $ $ mat(-1&, 1&, 1&; 1&, -1&, 1&; 1&, 1&, -1&) $ $ mat(-1&, 1&, 1&; 1, -1, 1; 1, 1, -1) $ $ mat(&-1, &1, &1; 1, -1, 1; 1, 1, -1) $ typst-0.8.0.2/test/typ/math/multiline-00.out0000644000000000000000000000677307346545000016744 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , MAlignPoint , Text "=" , Text "x" , Text "+" , Text "y" , HardBreak , MAlignPoint , Text "=" , Text "x" , Text "+" , Text "2" , Text "z" , HardBreak , MAlignPoint , Text "=" , Code "typ/math/multiline-00.typ" ( line 5 , column 8 ) (Ident (Identifier "sum")) , Text "x" , Code "typ/math/multiline-00.typ" ( line 5 , column 14 ) (Ident (Identifier "dot")) , Text "2" , Text "z" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), math.alignpoint(), text(body: [=]), text(body: [x]), text(body: [+]), text(body: [y]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [x]), text(body: [+]), text(body: [2]), text(body: [z]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [∑]), text(body: [x]), text(body: [⋅]), text(body: [2]), text(body: [z]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-00.typ0000644000000000000000000000011707346545000016733 0ustar0000000000000000// Test basic alignment. $ x &= x + y \ &= x + 2z \ &= sum x dot 2z $ typst-0.8.0.2/test/typ/math/multiline-01.out0000644000000000000000000001033507346545000016732 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Text "+" , Text "1" , MAlignPoint , Text "=" , MAttach Nothing (Just (Text "2")) (Text "a") , Text "+" , MAttach Nothing (Just (Text "2")) (Text "b") , HardBreak , Text "y" , MAlignPoint , Text "=" , Text "a" , Text "+" , MAttach Nothing (Just (Text "2")) (Text "b") , HardBreak , Text "z" , MAlignPoint , Text "=" , Code "typ/math/multiline-01.typ" ( line 5 , column 12 ) (Ident (Identifier "alpha")) , Code "typ/math/multiline-01.typ" ( line 5 , column 18 ) (Ident (Identifier "dot")) , Code "typ/math/multiline-01.typ" ( line 5 , column 22 ) (Ident (Identifier "beta")) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [+]), text(body: [1]), math.alignpoint(), text(body: [=]), math.attach(b: none, base: text(body: [a]), t: text(body: [2])), text(body: [+]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])), linebreak(), text(body: [y]), math.alignpoint(), text(body: [=]), text(body: [a]), text(body: [+]), math.attach(b: none, base: text(body: [b]), t: text(body: [2])), linebreak(), text(body: [z]), math.alignpoint(), text(body: [=]), text(body: [α]), text(body: [⋅]), text(body: [β]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-01.typ0000644000000000000000000000016407346545000016736 0ustar0000000000000000// Test text before first alignment point. $ x + 1 &= a^2 + b^2 \ y &= a + b^2 \ z &= alpha dot beta $ typst-0.8.0.2/test/typ/math/multiline-02.out0000644000000000000000000000625407346545000016740 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "a" , Text "+" , Text "b" , MAlignPoint , Text "=" , Text "2" , Text "+" , Text "3" , MAlignPoint , Text "=" , Text "5" , HardBreak , Text "b" , MAlignPoint , Text "=" , Text "c" , MAlignPoint , Text "=" , Text "3" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [a]), text(body: [+]), text(body: [b]), math.alignpoint(), text(body: [=]), text(body: [2]), text(body: [+]), text(body: [3]), math.alignpoint(), text(body: [=]), text(body: [5]), linebreak(), text(body: [b]), math.alignpoint(), text(body: [=]), text(body: [c]), math.alignpoint(), text(body: [=]), text(body: [3]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-02.typ0000644000000000000000000000013707346545000016737 0ustar0000000000000000// Test space between inner alignment points. $ a + b &= 2 + 3 &= 5 \ b &= c &= 3 $ typst-0.8.0.2/test/typ/math/multiline-03.out0000644000000000000000000000705307346545000016737 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "f" , Code "typ/math/multiline-03.typ" ( line 3 , column 5 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Code "typ/math/multiline-03.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "cases")) [ BlockArg [ Text "1" , Text "+" , Text "2" , MAlignPoint , Text "iff " , MAlignPoint , Text "x" ] , BlockArg [ Text "3" , MAlignPoint , Text "if " , MAlignPoint , Text "y" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [f]), text(body: [≔]), math.cases(children: ({ text(body: [1]), text(body: [+]), text(body: [2]), math.alignpoint(), text(body: [iff ]), math.alignpoint(), text(body: [x]) }, { text(body: [3]), math.alignpoint(), text(body: [if ]), math.alignpoint(), text(body: [y]) })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-03.typ0000644000000000000000000000012607346545000016736 0ustar0000000000000000// Test in case distinction. $ f := cases( 1 + 2 &"iff" &x, 3 &"if" &y, ) $ typst-0.8.0.2/test/typ/math/multiline-04.out0000644000000000000000000000536707346545000016746 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text " abc " , MAlignPoint , Text "=" , Text "c" , HardBreak , MAlignPoint , Text "=" , Text "d" , Text "+" , Text "1" , HardBreak , Text "=" , Text "x" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [ abc ]), math.alignpoint(), text(body: [=]), text(body: [c]), linebreak(), math.alignpoint(), text(body: [=]), text(body: [d]), text(body: [+]), text(body: [1]), linebreak(), text(body: [=]), text(body: [x]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-04.typ0000644000000000000000000000014407346545000016737 0ustar0000000000000000// Test mixing lines with and some without alignment points. $ "abc" &= c \ &= d + 1 \ = x $ typst-0.8.0.2/test/typ/math/multiline-05.out0000644000000000000000000001053707346545000016742 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "n" , Code "typ/math/multiline-05.typ" ( line 3 , column 10 ) (Ident (Identifier "in")) , Code "typ/math/multiline-05.typ" ( line 3 , column 13 ) (Ident (Identifier "NN")) , HardBreak , Text "n" , Code "typ/math/multiline-05.typ" ( line 3 , column 20 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "lt"))) , Text "5" ])) Nothing (Code "typ/math/multiline-05.typ" ( line 3 , column 3 ) (Ident (Identifier "sum"))) , Text "n" , Text "=" , MFrac (MGroup (Just "(") (Just ")") [ Text "5" , MGroup (Just "(") (Just ")") [ Text "5" , Text "+" , Text "1" ] ]) (Text "2") , Text "=" , Text "15" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [n]), text(body: [∈]), text(body: [ℕ]), linebreak(), text(body: [n]), text(body: [≤]), text(body: [5]) }, base: text(body: [∑]), t: none), text(body: [n]), text(body: [=]), math.frac(denom: text(body: [2]), num: { text(body: [5]), math.lr(body: ({ [(], text(body: [5]), text(body: [+]), text(body: [1]), [)] })) }), text(body: [=]), text(body: [15]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-05.typ0000644000000000000000000000011507346545000016736 0ustar0000000000000000// Test multiline subscript. $ sum_(n in NN \ n <= 5) n = (5(5+1))/2 = 15 $ typst-0.8.0.2/test/typ/math/multiline-06.out0000644000000000000000000000440007346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text " abc " , MAlignPoint , Text "=" , Text "c" ] , SoftBreak , Text "No" , Space , Text "trailing" , Space , Text "line" , Space , Text "break" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [ abc ]), math.alignpoint(), text(body: [=]), text(body: [c]) }, numbering: none), text(body: [ No trailing line break.]), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-06.typ0000644000000000000000000000011007346545000016732 0ustar0000000000000000// Test no trailing line break. $ "abc" &= c $ No trailing line break. typst-0.8.0.2/test/typ/math/multiline-07.out0000644000000000000000000000450707346545000016744 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text " abc " , MAlignPoint , Text "=" , Text "c" , HardBreak ] , SoftBreak , Text "One" , Space , Text "trailing" , Space , Text "line" , Space , Text "break" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [ abc ]), math.alignpoint(), text(body: [=]), text(body: [c]), linebreak() }, numbering: none), text(body: [ One trailing line break.]), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-07.typ0000644000000000000000000000011707346545000016742 0ustar0000000000000000// Test single trailing line break. $ "abc" &= c \ $ One trailing line break. typst-0.8.0.2/test/typ/math/multiline-08.out0000644000000000000000000000476107346545000016747 0ustar0000000000000000--- parse tree --- [ Code "typ/math/multiline-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/multiline-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/multiline-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text " abc " , MAlignPoint , Text "=" , Text "c" , HardBreak , HardBreak , HardBreak ] , SoftBreak , Text "Multiple" , Space , Text "trailing" , Space , Text "line" , Space , Text "breaks" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [ abc ]), math.alignpoint(), text(body: [=]), text(body: [c]), linebreak(), linebreak(), linebreak() }, numbering: none), text(body: [ Multiple trailing line breaks.]), parbreak() }) typst-0.8.0.2/test/typ/math/multiline-08.typ0000644000000000000000000000013307346545000016741 0ustar0000000000000000// Test multiple trailing line breaks. $ "abc" &= c \ \ \ $ Multiple trailing line breaks. typst-0.8.0.2/test/typ/math/numbering-00.out0000644000000000000000000001425507346545000016722 0ustar0000000000000000--- parse tree --- [ Code "typ/math/numbering-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/numbering-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/numbering-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/math/numbering-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 150.0 Pt)) ]) , SoftBreak , Code "typ/math/numbering-00.typ" ( line 3 , column 2 ) (Set (FieldAccess (Ident (Identifier "equation")) (Ident (Identifier "math"))) [ KeyValArg (Identifier "numbering") (Literal (String "(I)")) ]) , ParBreak , Text "We" , Space , Text "define" , Space , Equation False [ Text "x" ] , Space , Text "in" , Space , Text "preparation" , Space , Text "of" , Space , Ref "fib" (Literal Auto) , Text ":" , SoftBreak , Equation True [ Code "typ/math/numbering-00.typ" ( line 6 , column 3 ) (FieldAccess (Ident (Identifier "alt")) (Ident (Identifier "phi"))) , Code "typ/math/numbering-00.typ" ( line 6 , column 11 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , MFrac (MGroup (Just "(") (Just ")") [ Text "1" , Text "+" , Code "typ/math/numbering-00.typ" ( line 6 , column 19 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "5" ] ]) ]) (Text "2") ] , Space , Code "typ/math/numbering-00.typ" ( line 6 , column 34 ) (Label "ratio") , ParBreak , Text "With" , Space , Ref "ratio" (Literal Auto) , Text "," , Space , Text "we" , Space , Text "get" , SoftBreak , Equation True [ MAttach (Just (Text "n")) Nothing (Text "F") , Text "=" , Code "typ/math/numbering-00.typ" ( line 9 , column 9 ) (FuncCall (Ident (Identifier "round")) [ BlockArg [ MFrac (Text "1") (Code "typ/math/numbering-00.typ" ( line 9 , column 19 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "5" ] ])) , MAttach Nothing (Just (Text "n")) (Code "typ/math/numbering-00.typ" ( line 9 , column 27 ) (FieldAccess (Ident (Identifier "alt")) (Ident (Identifier "phi")))) ] ]) ] , Space , Code "typ/math/numbering-00.typ" ( line 9 , column 40 ) (Label "fib") , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [We define ]), math.equation(block: false, body: text(body: [x]), numbering: none), text(body: [ in preparation of ]), ref(supplement: auto, target: ), text(body: [: ]), math.equation(block: true, body: { text(body: [ϕ]), text(body: [≔]), math.frac(denom: text(body: [2]), num: { text(body: [1]), text(body: [+]), math.sqrt(radicand: text(body: [5])) }) }, numbering: none), text(body: [ ]), , parbreak(), text(body: [With ]), ref(supplement: auto, target: ), text(body: [, we get ]), math.equation(block: true, body: { math.attach(b: text(body: [n]), base: text(body: [F]), t: none), text(body: [=]), math.round(body: { math.frac(denom: math.sqrt(radicand: text(body: [5])), num: text(body: [1])), math.attach(b: none, base: text(body: [ϕ]), t: text(body: [n])) }) }, numbering: none), text(body: [ ]), , parbreak() }) typst-0.8.0.2/test/typ/math/numbering-00.typ0000644000000000000000000000031707346545000016721 0ustar0000000000000000#set page(width: 150pt) #set math.equation(numbering: "(I)") We define $x$ in preparation of @fib: $ phi.alt := (1 + sqrt(5)) / 2 $ With @ratio, we get $ F_n = round(1 / sqrt(5) phi.alt^n) $ typst-0.8.0.2/test/typ/math/op-00.out0000644000000000000000000000617307346545000015352 0ustar0000000000000000--- parse tree --- [ Code "typ/math/op-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/op-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/op-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "1" , Code "typ/math/op-00.typ" ( line 3 , column 9 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "lt"))) , Text "n" , Code "typ/math/op-00.typ" ( line 3 , column 12 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "lt"))) , Text "m" ])) Nothing (Code "typ/math/op-00.typ" ( line 3 , column 3 ) (Ident (Identifier "max"))) , Text "n" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [1]), text(body: [≤]), text(body: [n]), text(body: [≤]), text(body: [m]) }, base: math.op(limits: true, text: "max"), t: none), text(body: [n]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/op-00.typ0000644000000000000000000000005107346545000015344 0ustar0000000000000000// Test predefined. $ max_(1<=n<=m) n $ typst-0.8.0.2/test/typ/math/op-01.out0000644000000000000000000001026707346545000015352 0ustar0000000000000000--- parse tree --- [ Code "typ/math/op-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/op-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/op-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAlignPoint , Code "typ/math/op-01.typ" ( line 3 , column 5 ) (Ident (Identifier "sin")) , Text "x" , Text "+" , MAttach (Just (Text "2")) Nothing (Code "typ/math/op-01.typ" ( line 3 , column 13 ) (Ident (Identifier "log"))) , Text "x" , HardBreak , Text "=" , MAlignPoint , Code "typ/math/op-01.typ" ( line 4 , column 5 ) (FuncCall (Ident (Identifier "sin")) [ BlockArg [ Text "x" ] ]) , Text "+" , MAttach (Just (Text "2")) Nothing (Code "typ/math/op-01.typ" ( line 4 , column 14 ) (Ident (Identifier "log"))) , MGroup (Just "(") (Just ")") [ Text "x" ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.alignpoint(), math.op(limits: false, text: "sin"), text(body: [x]), text(body: [+]), math.attach(b: text(body: [2]), base: math.op(limits: false, text: "log"), t: none), text(body: [x]), linebreak(), text(body: [=]), math.alignpoint(), math.op(limits: false, text: "sin"), text(body: [(]), text(body: [x]), text(body: [)]), text(body: [+]), math.attach(b: text(body: [2]), base: math.op(limits: false, text: "log"), t: none), math.lr(body: ({ [(], text(body: [x]), [)] })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/op-01.typ0000644000000000000000000000011207346545000015343 0ustar0000000000000000// With or without parens. $ &sin x + log_2 x \ = &sin(x) + log_2(x) $ typst-0.8.0.2/test/typ/math/op-02.out0000644000000000000000000001372407346545000015354 0ustar0000000000000000--- parse tree --- [ Code "typ/math/op-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/op-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/op-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/op-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) ]) , SoftBreak , Text "Discuss" , Space , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "n" , Code "typ/math/op-02.typ" ( line 4 , column 16 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "arrow"))) , Code "typ/math/op-02.typ" ( line 4 , column 18 ) (Ident (Identifier "oo")) ])) Nothing (Code "typ/math/op-02.typ" ( line 4 , column 10 ) (Ident (Identifier "lim"))) , MFrac (Text "1") (Text "n") ] , Space , Text "now" , Text "." , SoftBreak , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "n" , Code "typ/math/op-02.typ" ( line 5 , column 9 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "arrow"))) , Code "typ/math/op-02.typ" ( line 5 , column 11 ) (Ident (Identifier "infinity")) ])) Nothing (Code "typ/math/op-02.typ" ( line 5 , column 3 ) (Ident (Identifier "lim"))) , MFrac (Text "1") (Text "n") , Text "=" , Text "0" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Discuss ], font: "New Computer Modern"), math.equation(block: false, body: { math.attach(b: { text(body: [n], font: "New Computer Modern"), text(body: [→], font: "New Computer Modern"), text(body: [∞], font: "New Computer Modern") }, base: math.op(limits: true, text: "lim"), t: none), math.frac(denom: text(body: [n], font: "New Computer Modern"), num: text(body: [1], font: "New Computer Modern")) }, numbering: none), text(body: [ now. ], font: "New Computer Modern"), math.equation(block: true, body: { math.attach(b: { text(body: [n], font: "New Computer Modern"), text(body: [→], font: "New Computer Modern"), text(body: [∞], font: "New Computer Modern") }, base: math.op(limits: true, text: "lim"), t: none), math.frac(denom: text(body: [n], font: "New Computer Modern"), num: text(body: [1], font: "New Computer Modern")), text(body: [=], font: "New Computer Modern"), text(body: [0], font: "New Computer Modern") }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/op-02.typ0000644000000000000000000000020007346545000015342 0ustar0000000000000000// Test scripts vs limits. #set text(font: "New Computer Modern") Discuss $lim_(n->oo) 1/n$ now. $ lim_(n->infinity) 1/n = 0 $ typst-0.8.0.2/test/typ/math/op-03.out0000644000000000000000000001027707346545000015355 0ustar0000000000000000--- parse tree --- [ Code "typ/math/op-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/op-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/op-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "x" , Code "typ/math/op-03.typ" ( line 3 , column 32 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Text "1" ])) Nothing (Code "typ/math/op-03.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "myop" ] , KeyValArg (Identifier "limits") (Literal (Boolean False)) ])) , Text "x" , HardBreak , MAttach (Just (MGroup Nothing Nothing [ Text "x" , Code "typ/math/op-03.typ" ( line 4 , column 31 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Text "1" ])) Nothing (Code "typ/math/op-03.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "myop" ] , KeyValArg (Identifier "limits") (Literal (Boolean True)) ])) , Text "x" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [x]), text(body: [≔]), text(body: [1]) }, base: math.op(limits: false, text: text(body: [myop])), t: none), text(body: [x]), linebreak(), math.attach(b: { text(body: [x]), text(body: [≔]), text(body: [1]) }, base: math.op(limits: true, text: text(body: [myop])), t: none), text(body: [x]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/op-03.typ0000644000000000000000000000015107346545000015350 0ustar0000000000000000// Test custom operator. $ op("myop", limits: #false)_(x:=1) x \ op("myop", limits: #true)_(x:=1) x $ typst-0.8.0.2/test/typ/math/op-04.out0000644000000000000000000000546607346545000015362 0ustar0000000000000000--- parse tree --- [ Code "typ/math/op-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/op-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/op-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (Text "x")) Nothing (Code "typ/math/op-04.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "bold")) [ BlockArg [ Code "typ/math/op-04.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "bold" ] , KeyValArg (Identifier "limits") (Literal (Boolean True)) ]) ] ])) , Text "y" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: text(body: [x]), base: math.bold(body: math.op(limits: true, text: text(body: [bold]))), t: none), text(body: [y]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/op-04.typ0000644000000000000000000000010107346545000015344 0ustar0000000000000000// Test styled operator. $ bold(op("bold", limits: #true))_x y $ typst-0.8.0.2/test/typ/math/root-00.out0000644000000000000000000000500307346545000015706 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "A" , Text "=" , Code "typ/math/root-00.typ" ( line 3 , column 6 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "x" , Text "+" , Text "y" ] ]) , Text "=" , Text "c" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [A]), text(body: [=]), math.sqrt(radicand: { text(body: [x]), text(body: [+]), text(body: [y]) }), text(body: [=]), text(body: [c]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-00.typ0000644000000000000000000000010207346545000015706 0ustar0000000000000000// Test root with more than one character. $A = sqrt(x + y) = c$ typst-0.8.0.2/test/typ/math/root-01.out0000644000000000000000000001362307346545000015716 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/root-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "a" ] ]) , Code "typ/math/root-01.typ" ( line 3 , column 11 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "f" ] ]) , Code "typ/math/root-01.typ" ( line 4 , column 11 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "q" ] ]) , Code "typ/math/root-01.typ" ( line 5 , column 11 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 6 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach Nothing (Just (Text "2")) (Text "a") ] ]) , HardBreak , Code "typ/math/root-01.typ" ( line 7 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach (Just (Text "0")) Nothing (Text "n") ] ]) , Code "typ/math/root-01.typ" ( line 7 , column 13 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 8 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach Nothing (Just (MGroup Nothing Nothing [])) (Text "b") ] ]) , Code "typ/math/root-01.typ" ( line 8 , column 14 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 9 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach Nothing (Just (Text "2")) (Text "b") ] ]) , Code "typ/math/root-01.typ" ( line 9 , column 13 ) (Ident (Identifier "quad")) , Code "typ/math/root-01.typ" ( line 10 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach (Just (Text "1")) (Just (Text "2")) (Text "q") ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.sqrt(radicand: text(body: [a])), text(body: [ ]), math.sqrt(radicand: text(body: [f])), text(body: [ ]), math.sqrt(radicand: text(body: [q])), text(body: [ ]), math.sqrt(radicand: math.attach(b: none, base: text(body: [a]), t: text(body: [2]))), linebreak(), math.sqrt(radicand: math.attach(b: text(body: [0]), base: text(body: [n]), t: none)), text(body: [ ]), math.sqrt(radicand: math.attach(b: none, base: text(body: [b]), t: { })), text(body: [ ]), math.sqrt(radicand: math.attach(b: none, base: text(body: [b]), t: text(body: [2]))), text(body: [ ]), math.sqrt(radicand: math.attach(b: text(body: [1]), base: text(body: [q]), t: text(body: [2]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-01.typ0000644000000000000000000000027007346545000015715 0ustar0000000000000000// Test root size with radicals containing attachments. $ sqrt(a) quad sqrt(f) quad sqrt(q) quad sqrt(a^2) \ sqrt(n_0) quad sqrt(b^()) quad sqrt(b^2) quad sqrt(q_1^2) $ typst-0.8.0.2/test/typ/math/root-02.out0000644000000000000000000001001707346545000015711 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Equation False [ Code "typ/math/root-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "x" ] ]) ] , SoftBreak , Equation False [ Code "typ/math/root-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "2" ] , BlockArg [ Text "x" ] ]) ] , SoftBreak , Equation False [ Code "typ/math/root-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "3" ] , BlockArg [ Text "x" ] ]) ] , SoftBreak , Equation False [ Code "typ/math/root-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "4" ] , BlockArg [ Text "x" ] ]) ] , SoftBreak , Equation False [ Code "typ/math/root-02.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "5" ] , BlockArg [ Text "x" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: math.sqrt(radicand: text(body: [x])), numbering: none), text(body: [ ]), math.equation(block: false, body: math.root(index: text(body: [2]), radicand: text(body: [x])), numbering: none), text(body: [ ]), math.equation(block: false, body: math.root(index: text(body: [3]), radicand: text(body: [x])), numbering: none), text(body: [ ]), math.equation(block: false, body: math.root(index: text(body: [4]), radicand: text(body: [x])), numbering: none), text(body: [ ]), math.equation(block: false, body: math.root(index: text(body: [5]), radicand: text(body: [x])), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-02.typ0000644000000000000000000000020507346545000015714 0ustar0000000000000000// Test precomposed vs constructed roots. // 3 and 4 are precomposed. $sqrt(x)$ $root(2, x)$ $root(3, x)$ $root(4, x)$ $root(5, x)$ typst-0.8.0.2/test/typ/math/root-03.out0000644000000000000000000002305607346545000015721 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/root-03.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Code "typ/math/root-03.typ" ( line 3 , column 8 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Text "x" , MAttach Nothing (Just (Text "2")) (Code "typ/math/root-03.typ" ( line 3 , column 11 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket"))))) , Text "+" , Code "typ/math/root-03.typ" ( line 3 , column 18 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Text "y" , MAttach Nothing (Just (Text "2")) (Code "typ/math/root-03.typ" ( line 3 , column 21 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket"))))) ] ]) , Text "<" , Code "typ/math/root-03.typ" ( line 3 , column 29 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Text "z" , Code "typ/math/root-03.typ" ( line 3 , column 32 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) ] , SoftBreak , Equation True [ Text "v" , Text "=" , Code "typ/math/root-03.typ" ( line 4 , column 7 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MFrac (MGroup (Just "(") (Just ")") [ MFrac (Text "1") (Text "2") ]) (MGroup Nothing Nothing [ MFrac (Text "4") (Text "5") ]) ] ]) , Text "=" , Code "typ/math/root-03.typ" ( line 5 , column 6 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "3" ] , BlockArg [ MFrac (MGroup (Just "(") (Just ")") [ MFrac (MFrac (Text "1") (Text "2")) (Text "3") ]) (MGroup Nothing Nothing [ MFrac (MFrac (Text "4") (Text "5")) (Text "6") ]) ] ]) , Text "=" , Code "typ/math/root-03.typ" ( line 6 , column 6 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "4" ] , BlockArg [ MFrac (MGroup (Just "(") (Just ")") [ MFrac (MGroup (Just "(") (Just ")") [ MFrac (Text "1") (Text "2") ]) (MGroup Nothing Nothing [ MFrac (Text "3") (Text "4") ]) ]) (MGroup Nothing Nothing [ MFrac (MGroup (Just "(") (Just ")") [ MFrac (Text "1") (Text "2") ]) (MGroup Nothing Nothing [ MFrac (Text "3") (Text "4") ]) ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.sqrt(radicand: { text(body: [⟦]), text(body: [x]), math.attach(b: none, base: text(body: [⟧]), t: text(body: [2])), text(body: [+]), text(body: [⟦]), text(body: [y]), math.attach(b: none, base: text(body: [⟧]), t: text(body: [2])) }), text(body: [<]), text(body: [⟦]), text(body: [z]), text(body: [⟧]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { text(body: [v]), text(body: [=]), math.sqrt(radicand: math.frac(denom: math.frac(denom: text(body: [5]), num: text(body: [4])), num: math.frac(denom: text(body: [2]), num: text(body: [1])))), text(body: [=]), math.root(index: text(body: [3]), radicand: math.frac(denom: math.frac(denom: text(body: [6]), num: math.frac(denom: text(body: [5]), num: text(body: [4]))), num: math.frac(denom: text(body: [3]), num: math.frac(denom: text(body: [2]), num: text(body: [1]))))), text(body: [=]), math.root(index: text(body: [4]), radicand: math.frac(denom: math.frac(denom: math.frac(denom: text(body: [4]), num: text(body: [3])), num: math.frac(denom: text(body: [2]), num: text(body: [1]))), num: math.frac(denom: math.frac(denom: text(body: [4]), num: text(body: [3])), num: math.frac(denom: text(body: [2]), num: text(body: [1]))))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-03.typ0000644000000000000000000000024607346545000015722 0ustar0000000000000000// Test large bodies $ sqrt([|x|]^2 + [|y|]^2) < [|z|] $ $ v = sqrt((1/2) / (4/5)) = root(3, (1/2/3) / (4/5/6)) = root(4, ((1/2) / (3/4)) / ((1/2) / (3/4))) $ typst-0.8.0.2/test/typ/math/root-04.out0000644000000000000000000001065607346545000015724 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/root-04.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ Text "2" ] , BlockArg [ Text "x" ] ]) , Code "typ/math/root-04.typ" ( line 3 , column 14 ) (Ident (Identifier "quad")) , Code "typ/math/root-04.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ MFrac (Text "3") (MGroup Nothing Nothing [ MFrac (Text "2") (Text "1") ]) ] , BlockArg [ Text "x" ] ]) , Code "typ/math/root-04.typ" ( line 4 , column 20 ) (Ident (Identifier "quad")) , Code "typ/math/root-04.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ MFrac (Text "1") (Text "11") ] , BlockArg [ Text "x" ] ]) , Code "typ/math/root-04.typ" ( line 5 , column 17 ) (Ident (Identifier "quad")) , Code "typ/math/root-04.typ" ( line 6 , column 3 ) (FuncCall (Ident (Identifier "root")) [ BlockArg [ MFrac (MFrac (Text "1") (Text "2")) (Text "3") ] , BlockArg [ Text "1" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.root(index: text(body: [2]), radicand: text(body: [x])), text(body: [ ]), math.root(index: math.frac(denom: math.frac(denom: text(body: [1]), num: text(body: [2])), num: text(body: [3])), radicand: text(body: [x])), text(body: [ ]), math.root(index: math.frac(denom: text(body: [11]), num: text(body: [1])), radicand: text(body: [x])), text(body: [ ]), math.root(index: math.frac(denom: text(body: [3]), num: math.frac(denom: text(body: [2]), num: text(body: [1]))), radicand: text(body: [1])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-04.typ0000644000000000000000000000015007346545000015715 0ustar0000000000000000// Test large index. $ root(2, x) quad root(3/(2/1), x) quad root(1/11, x) quad root(1/2/3, 1) $ typst-0.8.0.2/test/typ/math/root-05.out0000644000000000000000000001323007346545000015714 0ustar0000000000000000--- parse tree --- [ Code "typ/math/root-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/root-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/root-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/root-05.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "root")) [ NormalArg (Block (Content [ MAttach Nothing (Just (Text "3")) (Text "2") ])) ]) , Text "=" , Code "typ/math/root-05.typ" ( line 3 , column 10 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ MAttach Nothing (Just (Text "3")) (Text "2") ] ]) ] , SoftBreak , Equation True [ Code "typ/math/root-05.typ" ( line 4 , column 3 ) (Ident (Identifier "root")) , MGroup (Just "(") (Just ")") [ Text "x" , Text "+" , Text "y" ] , Code "typ/math/root-05.typ" ( line 4 , column 10 ) (Ident (Identifier "quad")) , Text "\8731" , Text "x" , Code "typ/math/root-05.typ" ( line 4 , column 18 ) (Ident (Identifier "quad")) , Text "\8732" , Text "x" ] , SoftBreak , Equation True [ MGroup (Just "(") (Just ")") [ Code "typ/math/root-05.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "root")) [ NormalArg (Block (Content [ Text "2" ])) ]) , Text "+" , Text "3" ] , Text "=" , MGroup (Just "(") (Just ")") [ Code "typ/math/root-05.typ" ( line 5 , column 13 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "2" ] ]) , Text "+" , Text "3" ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.root(index: math.attach(b: none, base: text(body: [2]), t: text(body: [3]))), text(body: [=]), math.sqrt(radicand: math.attach(b: none, base: text(body: [2]), t: text(body: [3]))) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ [(], text(body: [x]), text(body: [+]), text(body: [y]), [)] })), text(body: [ ]), text(body: [∛]), text(body: [x]), text(body: [ ]), text(body: [∜]), text(body: [x]) }, numbering: none), text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ [(], math.root(index: text(body: [2])), text(body: [+]), text(body: [3]), [)] })), text(body: [=]), math.lr(body: ({ [(], math.sqrt(radicand: text(body: [2])), text(body: [+]), text(body: [3]), [)] })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/root-05.typ0000644000000000000000000000014607346545000015723 0ustar0000000000000000// Test shorthand. $ √2^3 = sqrt(2^3) $ $ √(x+y) quad ∛x quad ∜x $ $ (√2+3) = (sqrt(2)+3) $ typst-0.8.0.2/test/typ/math/spacing-00.out0000644000000000000000000002441507346545000016357 0ustar0000000000000000--- parse tree --- [ Code "typ/math/spacing-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/spacing-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/spacing-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "\228" , Text "," , Text "+" , Text "," , Text "c" , Text "," , MGroup (Just "(") (Just ")") [ Text "," ] ] , Space , HardBreak , Equation False [ Text "=" , Text ")" , Text "," , MGroup (Just "(") (Just ")") [ Text "+" ] , Text "," , MGroup (Just "{") (Just "}") [ Code "typ/math/spacing-00.typ" ( line 4 , column 12 ) (Ident (Identifier "times")) ] ] , SoftBreak , Equation False [ Text "\10215" , Text "<" , Text "\10214" , Text "," , Text "|" , Code "typ/math/spacing-00.typ" ( line 5 , column 8 ) (Ident (Identifier "minus")) , Text "|" , Text "," , MGroup (Just "[") Nothing [ Text "=" ] ] , Space , HardBreak , Equation False [ Text "a" , Text "=" , Text "b" , Text "," , Text "a" , Text "=" , Text "=" , Text "b" ] , Space , HardBreak , Equation False [ Code "typ/math/spacing-00.typ" ( line 7 , column 2 ) (Ident (Identifier "minus")) , Text "a" , Text "," , Text "+" , Text "a" ] , Space , HardBreak , Equation False [ Text "a" , Code "typ/math/spacing-00.typ" ( line 8 , column 4 ) (Ident (Identifier "not")) , Text "b" ] , Space , HardBreak , Equation False [ Text "a" , Text "+" , Text "b" , Text "," , Text "a" , Code "typ/math/spacing-00.typ" ( line 9 , column 8 ) (Ident (Identifier "convolve")) , Text "b" ] , Space , HardBreak , Equation False [ Code "typ/math/spacing-00.typ" ( line 10 , column 2 ) (Ident (Identifier "sum")) , Text "x" , Text "," , Code "typ/math/spacing-00.typ" ( line 10 , column 9 ) (FuncCall (Ident (Identifier "sum")) [ BlockArg [ Text "x" ] ]) ] , Space , HardBreak , Equation False [ Code "typ/math/spacing-00.typ" ( line 11 , column 2 ) (Ident (Identifier "sum")) , Code "typ/math/spacing-00.typ" ( line 11 , column 6 ) (Ident (Identifier "product")) , Text "x" ] , Space , HardBreak , Equation False [ MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ] , Text "," , Code "typ/math/spacing-00.typ" ( line 12 , column 8 ) (FuncCall (Ident (Identifier "zeta")) [ BlockArg [ Text "x" ] ]) , Text "," , MGroup Nothing Nothing [ Text " frac" , MGroup (Just "(") (Just ")") [ Text "x" ] ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [ä]), text(body: [,]), text(body: [+]), text(body: [,]), text(body: [c]), text(body: [,]), math.lr(body: ({ [(], text(body: [,]), [)] })) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [=]), text(body: [)]), text(body: [,]), math.lr(body: ({ [(], text(body: [+]), [)] })), text(body: [,]), math.lr(body: ({ [{], text(body: [×]), [}] })) }, numbering: none), text(body: [ ]), math.equation(block: false, body: { text(body: [⟧]), text(body: [<]), text(body: [⟦]), text(body: [,]), text(body: [|]), text(body: [−]), text(body: [|]), text(body: [,]), text(body: [[]), text(body: [=]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [=]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [=]), text(body: [=]), text(body: [b]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [−]), text(body: [a]), text(body: [,]), text(body: [+]), text(body: [a]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [¬]), text(body: [b]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [+]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [∗]), text(body: [b]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [∑]), text(body: [x]), text(body: [,]), text(body: [∑]), text(body: [(]), text(body: [x]), text(body: [)]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [∑]), text(body: [∏]), text(body: [x]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })), text(body: [,]), text(body: [ζ]), text(body: [(]), text(body: [x]), text(body: [)]), text(body: [,]), text(body: [ frac]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/spacing-00.typ0000644000000000000000000000030407346545000016353 0ustar0000000000000000// Test spacing cases. $ä, +, c, (, )$ \ $=), (+), {times}$ $⟧<⟦, |-|, [=$ \ $a=b, a==b$ \ $-a, +a$ \ $a not b$ \ $a+b, a*b$ \ $sum x, sum(x)$ \ $sum product x$ \ $f(x), zeta(x), "frac"(x)$ typst-0.8.0.2/test/typ/math/spacing-01.out0000644000000000000000000001113707346545000016355 0ustar0000000000000000--- parse tree --- [ Code "typ/math/spacing-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/spacing-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/spacing-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] , Text "," , MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ] ] , Space , HardBreak , Equation False [ MGroup (Just "[") (Just "]") [ Text "a" , Text "|" , Text "b" ] , Text "," , MGroup (Just "[") (Just "]") [ Text "a" , MGroup Nothing Nothing [ Nbsp , Text "|" , Nbsp ] , Text "b" ] ] , Space , HardBreak , Equation False [ Text "a" , Text "is" , Text "b" , Text "," , Text "a" , Text " is " , Text "b" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })), text(body: [,]), text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { math.lr(body: ({ [[], text(body: [a]), text(body: [|]), text(body: [b]), []] })), text(body: [,]), math.lr(body: ({ [[], text(body: [a]), text(body: [ ]), text(body: [|]), text(body: [ ]), text(body: [b]), []] })) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [is]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [ is ]), text(body: [b]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/spacing-01.typ0000644000000000000000000000013607346545000016357 0ustar0000000000000000// Test ignored vs non-ignored spaces. $f (x), f(x)$ \ $[a|b], [a | b]$ \ $a"is"b, a "is" b$ typst-0.8.0.2/test/typ/math/spacing-02.out0000644000000000000000000001247307346545000016362 0ustar0000000000000000--- parse tree --- [ Code "typ/math/spacing-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/spacing-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/spacing-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "a" , Code "typ/math/spacing-02.typ" ( line 3 , column 4 ) (Ident (Identifier "thin")) , Text "b" , Text "," , Text "a" , Code "typ/math/spacing-02.typ" ( line 3 , column 14 ) (Ident (Identifier "med")) , Text "b" , Text "," , Text "a" , Code "typ/math/spacing-02.typ" ( line 3 , column 23 ) (Ident (Identifier "thick")) , Text "b" , Text "," , Text "a" , Code "typ/math/spacing-02.typ" ( line 3 , column 34 ) (Ident (Identifier "quad")) , Text "b" ] , Space , HardBreak , Equation False [ Text "a" , Text "=" , Code "typ/math/spacing-02.typ" ( line 4 , column 6 ) (Ident (Identifier "thin")) , Text "b" ] , Space , HardBreak , Equation False [ Text "a" , Code "typ/math/spacing-02.typ" ( line 5 , column 4 ) (Ident (Identifier "minus")) , Text "b" , Code "typ/math/spacing-02.typ" ( line 5 , column 8 ) (Ident (Identifier "equiv")) , Text "c" , Code "typ/math/spacing-02.typ" ( line 5 , column 16 ) (Ident (Identifier "quad")) , MGroup (Just "(") (Just ")") [ Code "typ/math/spacing-02.typ" ( line 5 , column 22 ) (Ident (Identifier "mod")) , Text "2" ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [ ]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [ ]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [ ]), text(body: [b]), text(body: [,]), text(body: [a]), text(body: [ ]), text(body: [b]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [=]), text(body: [ ]), text(body: [b]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), text(body: [−]), text(body: [b]), text(body: [≡]), text(body: [c]), text(body: [ ]), math.lr(body: ({ [(], math.op(limits: false, text: "mod"), text(body: [2]), [)] })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/spacing-02.typ0000644000000000000000000000016507346545000016362 0ustar0000000000000000// Test predefined spacings. $a thin b, a med b, a thick b, a quad b$ \ $a = thin b$ \ $a - b equiv c quad (mod 2)$ typst-0.8.0.2/test/typ/math/spacing-03.out0000644000000000000000000000716007346545000016360 0ustar0000000000000000--- parse tree --- [ Code "typ/math/spacing-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/spacing-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/spacing-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/spacing-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Equation True [ MGroup (Just "{") (Just "}") [ Text "x" , Code "typ/math/spacing-03.typ" ( line 4 , column 7 ) (Ident (Identifier "in")) , Code "typ/math/spacing-03.typ" ( line 4 , column 10 ) (Ident (Identifier "RR")) , MGroup Nothing Nothing [ Nbsp , Text "|" , Nbsp ] , Text "x" , Text " is natural " , Code "typ/math/spacing-03.typ" ( line 4 , column 30 ) (Ident (Identifier "and")) , Text "x" , Text "<" , Text "10" ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: math.lr(body: ({ [{], text(body: [x]), text(body: [∈]), text(body: [ℝ]), text(body: [ ]), text(body: [|]), text(body: [ ]), text(body: [x]), text(body: [ is natural ]), text(body: [∧]), text(body: [x]), text(body: [<]), text(body: [10]), [}] })), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/spacing-03.typ0000644000000000000000000000015307346545000016360 0ustar0000000000000000// Test spacing for set comprehension. #set page(width: auto) $ { x in RR | x "is natural" and x < 10 } $ typst-0.8.0.2/test/typ/math/spacing-04.out0000644000000000000000000003735607346545000016373 0ustar0000000000000000--- parse tree --- [ Code "typ/math/spacing-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/spacing-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/spacing-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/spacing-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Equation False [ Text "a" , Code "typ/math/spacing-04.typ" ( line 4 , column 4 ) (Ident (Identifier "equiv")) , Text "b" , Text "+" , Text "c" , Code "typ/math/spacing-04.typ" ( line 4 , column 16 ) (Ident (Identifier "minus")) , Text "d" , Code "typ/math/spacing-04.typ" ( line 4 , column 20 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "arrow")))) , Text "e" , Code "typ/math/spacing-04.typ" ( line 4 , column 25 ) (Ident (Identifier "log")) , Text "5" , Code "typ/math/spacing-04.typ" ( line 4 , column 31 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "ln" ] ]) , Text "6" ] , Space , HardBreak , Equation False [ Text "a" , Code "typ/math/spacing-04.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 5 , column 11 ) (Ident (Identifier "equiv")) ] ]) , Text "b" , Code "typ/math/spacing-04.typ" ( line 5 , column 20 ) (FuncCall (Ident (Identifier "overline")) [ BlockArg [ Text "+" ] ]) , Text "c" , Code "typ/math/spacing-04.typ" ( line 5 , column 34 ) (FuncCall (Ident (Identifier "arrow")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 5 , column 40 ) (Ident (Identifier "minus")) ] ]) , Text "d" , Code "typ/math/spacing-04.typ" ( line 5 , column 45 ) (FuncCall (Ident (Identifier "hat")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 5 , column 49 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "arrow")))) ] ]) , Text "e" , Code "typ/math/spacing-04.typ" ( line 5 , column 55 ) (FuncCall (Ident (Identifier "cancel")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 5 , column 62 ) (Ident (Identifier "log")) ] ]) , Text "5" , Code "typ/math/spacing-04.typ" ( line 5 , column 69 ) (FuncCall (Ident (Identifier "dot")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 5 , column 73 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "ln" ] ]) ] ]) , Text "6" ] , Space , HardBreak , Equation False [ Text "a" , Code "typ/math/spacing-04.typ" ( line 6 , column 4 ) (FuncCall (Ident (Identifier "overbrace")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 6 , column 14 ) (Ident (Identifier "equiv")) ] ]) , Text "b" , Code "typ/math/spacing-04.typ" ( line 6 , column 23 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "+" ] ]) , Text "c" , Code "typ/math/spacing-04.typ" ( line 6 , column 38 ) (FuncCall (Ident (Identifier "grave")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 6 , column 44 ) (Ident (Identifier "minus")) ] ]) , Text "d" , Code "typ/math/spacing-04.typ" ( line 6 , column 49 ) (FuncCall (Ident (Identifier "underbracket")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 6 , column 62 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "arrow")))) ] ]) , Text "e" , Code "typ/math/spacing-04.typ" ( line 6 , column 68 ) (FuncCall (Ident (Identifier "circle")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 6 , column 75 ) (Ident (Identifier "log")) ] ]) , Text "5" , Code "typ/math/spacing-04.typ" ( line 6 , column 82 ) (FuncCall (Ident (Identifier "caron")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 6 , column 88 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "ln" ] ]) ] ]) , Text "6" ] , Space , HardBreak , HardBreak , Equation False [ Text "a" , Code "typ/math/spacing-04.typ" ( line 8 , column 4 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 11 ) (Ident (Identifier "equiv")) ] , KeyValArg (Identifier "tl") (Block (Content [ Text "a" ])) , KeyValArg (Identifier "tr") (Block (Content [ Text "b" ])) ]) , Text "b" , Code "typ/math/spacing-04.typ" ( line 8 , column 34 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 41 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "+" ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "a" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "c" , Code "typ/math/spacing-04.typ" ( line 8 , column 66 ) (FuncCall (Ident (Identifier "tilde")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 72 ) (Ident (Identifier "minus")) ] ]) , Text "d" , Code "typ/math/spacing-04.typ" ( line 8 , column 77 ) (FuncCall (Ident (Identifier "breve")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 83 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "arrow")))) ] ]) , Text "e" , Code "typ/math/spacing-04.typ" ( line 8 , column 89 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 96 ) (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 103 ) (Ident (Identifier "log")) ] ]) ] , KeyValArg (Identifier "t") (Block (Content [ Text "a" ])) , KeyValArg (Identifier "b") (Block (Content [ Text "b" ])) ]) , Text "5" , Code "typ/math/spacing-04.typ" ( line 8 , column 123 ) (FuncCall (Ident (Identifier "attach")) [ BlockArg [ Code "typ/math/spacing-04.typ" ( line 8 , column 130 ) (FuncCall (Ident (Identifier "op")) [ BlockArg [ Text "ln" ] ]) ] , KeyValArg (Identifier "tr") (Block (Content [ Text "a" ])) , KeyValArg (Identifier "bl") (Block (Content [ Text "b" ])) ]) , Text "6" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [≡]), text(body: [b]), text(body: [+]), text(body: [c]), text(body: [−]), text(body: [d]), text(body: [⇒]), text(body: [e]), math.op(limits: false, text: "log"), text(body: [5]), math.op(text: text(body: [ln])), text(body: [6]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), math.cancel(body: text(body: [≡])), text(body: [b]), math.overline(body: text(body: [+])), text(body: [c]), math.accent(accent: →, base: text(body: [−])), text(body: [d]), math.accent(accent: ^, base: text(body: [⇒])), text(body: [e]), math.cancel(body: math.op(limits: false, text: "log")), text(body: [5]), math.accent(accent: ⋅, base: math.op(text: text(body: [ln]))), text(body: [6]) }, numbering: none), text(body: [ ]), linebreak(), math.equation(block: false, body: { text(body: [a]), math.overbrace(body: text(body: [≡])), text(body: [b]), math.underline(body: text(body: [+])), text(body: [c]), math.accent(accent: `, base: text(body: [−])), text(body: [d]), math.underbracket(body: text(body: [⇒])), text(body: [e]), math.accent(accent: ○, base: math.op(limits: false, text: "log")), text(body: [5]), math.accent(accent: ˇ, base: math.op(text: text(body: [ln]))), text(body: [6]) }, numbering: none), text(body: [ ]), linebreak(), linebreak(), math.equation(block: false, body: { text(body: [a]), math.attach(base: text(body: [≡]), tl: text(body: [a]), tr: text(body: [b])), text(body: [b]), math.attach(b: text(body: [b]), base: math.limits(body: text(body: [+])), t: text(body: [a])), text(body: [c]), math.accent(accent: ∼, base: text(body: [−])), text(body: [d]), math.accent(accent: ˘, base: text(body: [⇒])), text(body: [e]), math.attach(b: text(body: [b]), base: math.limits(body: math.op(limits: false, text: "log")), t: text(body: [a])), text(body: [5]), math.attach(base: math.op(text: text(body: [ln])), bl: text(body: [b]), tr: text(body: [a])), text(body: [6]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/spacing-04.typ0000644000000000000000000000074307346545000016366 0ustar0000000000000000// Test spacing for operators with decorations and modifiers on them #set page(width: auto) $a equiv b + c - d => e log 5 op("ln") 6$ \ $a cancel(equiv) b overline(+) c arrow(-) d hat(=>) e cancel(log) 5 dot(op("ln")) 6$ \ $a overbrace(equiv) b underline(+) c grave(-) d underbracket(=>) e circle(log) 5 caron(op("ln")) 6$ \ \ $a attach(equiv, tl: a, tr: b) b attach(limits(+), t: a, b: b) c tilde(-) d breve(=>) e attach(limits(log), t: a, b: b) 5 attach(op("ln"), tr: a, bl: b) 6$ typst-0.8.0.2/test/typ/math/style-00.out0000644000000000000000000000601507346545000016067 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "a" , Text "," , Text "A" , Text "," , Code "typ/math/style-00.typ" ( line 3 , column 8 ) (Ident (Identifier "delta")) , Text "," , Text "\1013" , Text "," , Code "typ/math/style-00.typ" ( line 3 , column 18 ) (Ident (Identifier "diff")) , Text "," , Code "typ/math/style-00.typ" ( line 3 , column 24 ) (Ident (Identifier "Delta")) , Text "," , Text "\1012" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [a]), text(body: [,]), text(body: [A]), text(body: [,]), text(body: [δ]), text(body: [,]), text(body: [ϵ]), text(body: [,]), text(body: [∂]), text(body: [,]), text(body: [Δ]), text(body: [,]), text(body: [ϴ]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-00.typ0000644000000000000000000000007507346545000016074 0ustar0000000000000000// Test italic defaults. $a, A, delta, ϵ, diff, Delta, ϴ$ typst-0.8.0.2/test/typ/math/style-01.out0000644000000000000000000002021007346545000016061 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "A" , Text "," , Code "typ/math/style-01.typ" ( line 3 , column 5 ) (FuncCall (Ident (Identifier "italic")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 3 , column 16 ) (FuncCall (Ident (Identifier "upright")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 3 , column 28 ) (FuncCall (Ident (Identifier "bold")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 3 , column 37 ) (FuncCall (Ident (Identifier "bold")) [ BlockArg [ Code "typ/math/style-01.typ" ( line 3 , column 42 ) (FuncCall (Ident (Identifier "upright")) [ BlockArg [ Text "A" ] ]) ] ]) , Text "," , HardBreak , Code "typ/math/style-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "serif")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 4 , column 12 ) (FuncCall (Ident (Identifier "sans")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 4 , column 21 ) (FuncCall (Ident (Identifier "cal")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 4 , column 29 ) (FuncCall (Ident (Identifier "frak")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 4 , column 38 ) (FuncCall (Ident (Identifier "mono")) [ BlockArg [ Text "A" ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 4 , column 47 ) (FuncCall (Ident (Identifier "bb")) [ BlockArg [ Text "A" ] ]) , Text "," , HardBreak , Code "typ/math/style-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "italic")) [ BlockArg [ Code "typ/math/style-01.typ" ( line 5 , column 9 ) (Ident (Identifier "diff")) ] ]) , Text "," , Code "typ/math/style-01.typ" ( line 5 , column 16 ) (FuncCall (Ident (Identifier "upright")) [ BlockArg [ Code "typ/math/style-01.typ" ( line 5 , column 24 ) (Ident (Identifier "diff")) ] ]) , Text "," , HardBreak , Code "typ/math/style-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "bb")) [ BlockArg [ Text "hello" ] ]) , Text "+" , Code "typ/math/style-01.typ" ( line 6 , column 16 ) (FuncCall (Ident (Identifier "bold")) [ BlockArg [ Code "typ/math/style-01.typ" ( line 6 , column 21 ) (FuncCall (Ident (Identifier "cal")) [ BlockArg [ Text "world" ] ]) ] ]) , Text "," , HardBreak , Code "typ/math/style-01.typ" ( line 7 , column 2 ) (FuncCall (FuncCall (Ident (Identifier "mono")) [ BlockArg [ Text "SQRT" ] ]) [ BlockArg [ Text "x" ] ]) , Code "typ/math/style-01.typ" ( line 7 , column 18 ) (Ident (Identifier "wreath")) , Code "typ/math/style-01.typ" ( line 7 , column 25 ) (FuncCall (Ident (Identifier "mono")) [ BlockArg [ Text "123" , Text "+" , Text "456" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [A]), text(body: [,]), math.italic(body: text(body: [A])), text(body: [,]), math.upright(body: text(body: [A])), text(body: [,]), math.bold(body: text(body: [A])), text(body: [,]), math.bold(body: math.upright(body: text(body: [A]))), text(body: [,]), linebreak(), math.serif(body: text(body: [A])), text(body: [,]), math.sans(body: text(body: [A])), text(body: [,]), math.cal(body: text(body: [A])), text(body: [,]), math.frak(body: text(body: [A])), text(body: [,]), math.mono(body: text(body: [A])), text(body: [,]), math.bb(body: text(body: [A])), text(body: [,]), linebreak(), math.italic(body: text(body: [∂])), text(body: [,]), math.upright(body: text(body: [∂])), text(body: [,]), linebreak(), math.bb(body: text(body: [hello])), text(body: [+]), math.bold(body: math.cal(body: text(body: [world]))), text(body: [,]), linebreak(), math.mono(body: text(body: [SQRT])), text(body: [(]), text(body: [x]), text(body: [)]), text(body: [≀]), math.mono(body: { text(body: [123]), text(body: [+]), text(body: [456]) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-01.typ0000644000000000000000000000040007346545000016065 0ustar0000000000000000// Test forcing a specific style. $A, italic(A), upright(A), bold(A), bold(upright(A)), \ serif(A), sans(A), cal(A), frak(A), mono(A), bb(A), \ italic(diff), upright(diff), \ bb("hello") + bold(cal("world")), \ mono("SQRT")(x) wreath mono(123 + 456)$ typst-0.8.0.2/test/typ/math/style-02.out0000644000000000000000000001067407346545000016077 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Text "h" , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 5 ) (FuncCall (Ident (Identifier "bb")) [ BlockArg [ Text "N" ] ]) , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 12 ) (FuncCall (Ident (Identifier "cal")) [ BlockArg [ Text "R" ] ]) , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 20 ) (Ident (Identifier "Theta")) , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 27 ) (FuncCall (Ident (Identifier "italic")) [ BlockArg [ Code "typ/math/style-02.typ" ( line 3 , column 34 ) (Ident (Identifier "Theta")) ] ]) , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 42 ) (FuncCall (Ident (Identifier "sans")) [ BlockArg [ Code "typ/math/style-02.typ" ( line 3 , column 47 ) (Ident (Identifier "Theta")) ] ]) , Text "," , Code "typ/math/style-02.typ" ( line 3 , column 55 ) (FuncCall (Ident (Identifier "sans")) [ BlockArg [ Code "typ/math/style-02.typ" ( line 3 , column 60 ) (FuncCall (Ident (Identifier "italic")) [ BlockArg [ Code "typ/math/style-02.typ" ( line 3 , column 67 ) (Ident (Identifier "Theta")) ] ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: [h]), text(body: [,]), math.bb(body: text(body: [N])), text(body: [,]), math.cal(body: text(body: [R])), text(body: [,]), text(body: [Θ]), text(body: [,]), math.italic(body: text(body: [Θ])), text(body: [,]), math.sans(body: text(body: [Θ])), text(body: [,]), math.sans(body: math.italic(body: text(body: [Θ]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-02.typ0000644000000000000000000000015407346545000016074 0ustar0000000000000000// Test a few style exceptions. $h, bb(N), cal(R), Theta, italic(Theta), sans(Theta), sans(italic(Theta))$ typst-0.8.0.2/test/typ/math/style-03.out0000644000000000000000000000455407346545000016100 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "\12424" , Code "typ/math/style-03.typ" ( line 3 , column 5 ) (Ident (Identifier "and")) , Text "\127987" , Text "\65039" , Text "\8205" , Text "\127752" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [よ]), text(body: [∧]), text(body: [🏳]), text(body: [️]), text(body: [‍]), text(body: [🌈]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-03.typ0000644000000000000000000000006307346545000016074 0ustar0000000000000000// Test font fallback. $ よ and 🏳️‍🌈 $ typst-0.8.0.2/test/typ/math/style-04.out0000644000000000000000000000530507346545000016074 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation False [ Code "typ/math/style-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , BlockArg [ MAttach Nothing (Just (Text "2")) (Text " time") ] ]) , Text "+" , Code "typ/math/style-04.typ" ( line 3 , column 25 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "place" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: { text(body: math.attach(b: none, base: text(body: [ time]), t: text(body: [2])), color: rgb(100%,25%,21%,100%)), text(body: [+]), math.sqrt(radicand: text(body: [place])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-04.typ0000644000000000000000000000010107346545000016066 0ustar0000000000000000// Test text properties. $text(#red, "time"^2) + sqrt("place")$ typst-0.8.0.2/test/typ/math/style-05.out0000644000000000000000000001032307346545000016071 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/style-05.typ" ( line 3 , column 2 ) (Show (Just (FieldAccess (Ident (Identifier "equation")) (Ident (Identifier "math")))) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Fira Math")) ])) , SoftBreak , Equation True [ Text "v" , Code "typ/math/style-05.typ" ( line 4 , column 5 ) (FieldAccess (Ident (Identifier "eq")) (Ident (Identifier "colon"))) , Code "typ/math/style-05.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "vec")) [ BlockArg [ Text "1" , Text "+" , Text "2" ] , BlockArg [ Text "2" , Code "typ/math/style-05.typ" ( line 4 , column 21 ) (Ident (Identifier "minus")) , Text "4" ] , BlockArg [ Code "typ/math/style-05.typ" ( line 4 , column 26 ) (FuncCall (Ident (Identifier "sqrt")) [ BlockArg [ Text "3" ] ]) ] , BlockArg [ Code "typ/math/style-05.typ" ( line 4 , column 35 ) (FuncCall (Ident (Identifier "arrow")) [ BlockArg [ Text "x" ] ]) ] ]) , Text "+" , Text "1" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: { text(body: [v]), text(body: [≔]), math.vec(children: ({ text(body: [1]), text(body: [+]), text(body: [2]) }, { text(body: [2]), text(body: [−]), text(body: [4]) }, math.sqrt(radicand: text(body: [3])), math.accent(accent: →, base: text(body: [x])))), text(body: [+]), text(body: [1]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-05.typ0000644000000000000000000000017407346545000016101 0ustar0000000000000000// Test different font. #show math.equation: set text(font: "Fira Math") $ v := vec(1 + 2, 2 - 4, sqrt(3), arrow(x)) + 1 $ typst-0.8.0.2/test/typ/math/style-06.out0000644000000000000000000000677007346545000016105 0ustar0000000000000000--- parse tree --- [ Code "typ/math/style-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/style-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/style-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/style-06.typ" ( line 3 , column 2 ) (Show (Just (FieldAccess (Ident (Identifier "tack")) (Ident (Identifier "sym")))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (Content [ Equation False [ Code "typ/math/style-06.typ" ( line 3 , column 25 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Em)) ]) , Code "typ/math/style-06.typ" ( line 3 , column 32 ) (Ident (Identifier "it")) , Code "typ/math/style-06.typ" ( line 3 , column 36 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Em)) ]) ] ])))) , SoftBreak , Equation True [ Text "a" , Code "typ/math/style-06.typ" ( line 4 , column 5 ) (Ident (Identifier "tack")) , Text "b" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: { text(body: [a]), math.equation(block: false, body: { h(amount: 1.0em), text(body: [⊢]), h(amount: 1.0em) }, numbering: none), text(body: [b]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/style-06.typ0000644000000000000000000000013007346545000016072 0ustar0000000000000000// Test using rules for symbols #show sym.tack: it => $#h(1em) it #h(1em)$ $ a tack b $ typst-0.8.0.2/test/typ/math/syntax-00.out0000644000000000000000000000704007346545000016254 0ustar0000000000000000--- parse tree --- [ Code "typ/math/syntax-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/syntax-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/syntax-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "i" , Text "=" , Text "0" ])) (Just (Text "\8469")) (Text "\8721") , Text "a" , Text "\8728" , Text "b" , Text "=" , MAttach (Just (MGroup Nothing Nothing [ Text "i" , Text "=" , Text "0" ])) (Just (Code "typ/math/syntax-00.typ" ( line 3 , column 36 ) (Ident (Identifier "NN")))) (Text "\8721") , Text "a" , Code "typ/math/syntax-00.typ" ( line 3 , column 41 ) (Ident (Identifier "compose")) , Text "b" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [i]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [ℕ])), text(body: [a]), text(body: [∘]), text(body: [b]), text(body: [=]), math.attach(b: { text(body: [i]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [ℕ])), text(body: [a]), text(body: [∘]), text(body: [b]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/syntax-00.typ0000644000000000000000000000012107346545000016252 0ustar0000000000000000// Test Unicode math. $ ∑_(i=0)^ℕ a ∘ b = \u{2211}_(i=0)^NN a compose b $ typst-0.8.0.2/test/typ/math/syntax-01.out0000644000000000000000000001662307346545000016264 0ustar0000000000000000--- parse tree --- [ Code "typ/math/syntax-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/syntax-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/syntax-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/syntax-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "f" , Text "'" , Text ":" , Code "typ/math/syntax-01.typ" ( line 3 , column 18 ) (Ident (Identifier "NN")) , Code "typ/math/syntax-01.typ" ( line 3 , column 21 ) (FieldAccess (Ident (Identifier "r")) (Ident (Identifier "arrow"))) , Code "typ/math/syntax-01.typ" ( line 3 , column 24 ) (Ident (Identifier "RR")) ] ]) , HardBreak , Text "n" , Code "typ/math/syntax-01.typ" ( line 4 , column 5 ) (Ident (Identifier "mapsto")) , Code "typ/math/syntax-01.typ" ( line 4 , column 9 ) (FuncCall (Ident (Identifier "cases")) [ BlockArg [ Code "typ/math/syntax-01.typ" ( line 5 , column 5 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , Text "1" , Code "typ/math/syntax-01.typ" ( line 5 , column 8 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "double")) (Ident (Identifier "bracket")))) , MAlignPoint , Text "if " , Text "n" , Code "typ/math/syntax-01.typ" ( line 5 , column 19 ) (FieldAccess (Ident (Identifier "triple")) (Ident (Identifier "gt"))) , Text "10" ] , BlockArg [ Text "2" , Code "typ/math/syntax-01.typ" ( line 6 , column 7 ) (Ident (Identifier "convolve")) , Text "3" , MAlignPoint , Text "if " , Text "n" , Code "typ/math/syntax-01.typ" ( line 6 , column 19 ) (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq"))) , Text "5" ] , BlockArg [ Text "1" , Code "typ/math/syntax-01.typ" ( line 7 , column 7 ) (Ident (Identifier "minus")) , Text "0" , Code "typ/math/syntax-01.typ" ( line 7 , column 11 ) (Ident (Identifier "thick")) , MAlignPoint , Code "typ/math/syntax-01.typ" ( line 7 , column 18 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.underline(body: { text(body: [f]), text(body: [']), text(body: [:]), text(body: [ℕ]), text(body: [→]), text(body: [ℝ]) }), linebreak(), text(body: [n]), text(body: [↦]), math.cases(children: ({ text(body: [⟦]), text(body: [1]), text(body: [⟧]), math.alignpoint(), text(body: [if ]), text(body: [n]), text(body: [⋙]), text(body: [10]) }, { text(body: [2]), text(body: [∗]), text(body: [3]), math.alignpoint(), text(body: [if ]), text(body: [n]), text(body: [≠]), text(body: [5]) }, { text(body: [1]), text(body: [−]), text(body: [0]), text(body: [ ]), math.alignpoint(), text(body: […]) })) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/syntax-01.typ0000644000000000000000000000022507346545000016260 0ustar0000000000000000// Test a few shorthands. $ underline(f' : NN -> RR) \ n |-> cases( [|1|] &"if" n >>> 10, 2 * 3 &"if" n != 5, 1 - 0 thick &..., ) $ typst-0.8.0.2/test/typ/math/syntax-02.out0000644000000000000000000000563507346545000016266 0ustar0000000000000000--- parse tree --- [ Code "typ/math/syntax-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/syntax-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/syntax-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/syntax-02.typ" ( line 3 , column 3 ) (Ident (Identifier "dot")) , HardBreak , Code "typ/math/syntax-02.typ" ( line 3 , column 9 ) (Ident (Identifier "dots")) , HardBreak , Code "typ/math/syntax-02.typ" ( line 3 , column 16 ) (Ident (Identifier "ast")) , HardBreak , Code "typ/math/syntax-02.typ" ( line 3 , column 22 ) (Ident (Identifier "tilde")) , HardBreak , Code "typ/math/syntax-02.typ" ( line 3 , column 30 ) (Ident (Identifier "star")) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [⋅]), linebreak(), text(body: […]), linebreak(), text(body: [∗]), linebreak(), text(body: [∼]), linebreak(), text(body: [⋆]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/syntax-02.typ0000644000000000000000000000007507346545000016264 0ustar0000000000000000// Test common symbols. $ dot \ dots \ ast \ tilde \ star $ typst-0.8.0.2/test/typ/math/syntax-03.out0000644000000000000000000000002107346545000016247 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/math/syntax-03.typ0000644000000000000000000000004607346545000016263 0ustar0000000000000000// Error: 1:3 expected dollar sign $a typst-0.8.0.2/test/typ/math/unbalanced-00.out0000644000000000000000000001231607346545000017024 0ustar0000000000000000--- parse tree --- [ Code "typ/math/unbalanced-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/unbalanced-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/unbalanced-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MFrac (Text "1") (MGroup (Just "(") Nothing [ Text "2" , MGroup (Just "(") (Just ")") [ Text "x" ] ]) ] , SoftBreak , Equation True [ MAttach (Just (MGroup (Just "(") Nothing [ Text "2" , Text "y" , MGroup (Just "(") (Just ")") [ Text "x" ] , MGroup (Just "(") (Just ")") [] ])) Nothing (Text "1") ] , SoftBreak , Equation True [ MFrac (Text "1") (MGroup (Just "(") Nothing [ Text "2" , Text "y" , MGroup (Just "(") (Just ")") [ Text "x" ] , MGroup (Just "(") (Just ")") [ Text "2" , MGroup (Just "(") (Just ")") [ Text "3" ] ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.frac(denom: { text(body: [(]), text(body: [2]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, num: text(body: [1])), numbering: none), text(body: [ ]), math.equation(block: true, body: math.attach(b: { text(body: [(]), text(body: [2]), text(body: [y]), math.lr(body: ({ [(], text(body: [x]), [)] })), math.lr(body: ({ [(], [)] })) }, base: text(body: [1]), t: none), numbering: none), text(body: [ ]), math.equation(block: true, body: math.frac(denom: { text(body: [(]), text(body: [2]), text(body: [y]), math.lr(body: ({ [(], text(body: [x]), [)] })), math.lr(body: ({ [(], text(body: [2]), math.lr(body: ({ [(], text(body: [3]), [)] })), [)] })) }, num: text(body: [1])), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/unbalanced-00.typ0000644000000000000000000000006507346545000017027 0ustar0000000000000000$ 1/(2 (x) $ $ 1_(2 y (x) () $ $ 1/(2 y (x) (2(3)) $ typst-0.8.0.2/test/typ/math/underover-00.out0000644000000000000000000000757107346545000016750 0ustar0000000000000000--- parse tree --- [ Code "typ/math/underover-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/underover-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/underover-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Text "=" , Code "typ/math/underover-00.typ" ( line 3 , column 7 ) (FuncCall (Ident (Identifier "underbrace")) [ BlockArg [ Text "1" , Text "+" , Text "2" , Text "+" , Code "typ/math/underover-00.typ" ( line 4 , column 11 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "+" , Text "5" ] , BlockArg [ Code "typ/math/underover-00.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "underbrace")) [ BlockArg [ Text "numbers" ] , BlockArg [ Text "x" , Text "+" , Text "y" ] ]) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [=]), math.underbrace(annotation: math.underbrace(annotation: { text(body: [x]), text(body: [+]), text(body: [y]) }, body: text(body: [numbers])), body: { text(body: [1]), text(body: [+]), text(body: [2]), text(body: [+]), text(body: […]), text(body: [+]), text(body: [5]) }) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/underover-00.typ0000644000000000000000000000013107346545000016736 0ustar0000000000000000// Test braces. $ x = underbrace( 1 + 2 + ... + 5, underbrace("numbers", x + y) ) $ typst-0.8.0.2/test/typ/math/underover-01.out0000644000000000000000000001014207346545000016735 0ustar0000000000000000--- parse tree --- [ Code "typ/math/underover-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/underover-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/underover-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "x" , Text "=" , Code "typ/math/underover-01.typ" ( line 3 , column 7 ) (FuncCall (Ident (Identifier "overbracket")) [ BlockArg [ Code "typ/math/underover-01.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "overline")) [ BlockArg [ Code "typ/math/underover-01.typ" ( line 4 , column 12 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "x" , Text "+" , Text "y" ] ]) ] ]) ] , BlockArg [ Text "1" , Text "+" , Text "2" , Text "+" , Code "typ/math/underover-01.typ" ( line 5 , column 11 ) (FieldAccess (Ident (Identifier "h")) (Ident (Identifier "dots"))) , Text "+" , Text "5" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [x]), text(body: [=]), math.overbracket(annotation: { text(body: [1]), text(body: [+]), text(body: [2]), text(body: [+]), text(body: […]), text(body: [+]), text(body: [5]) }, body: math.overline(body: math.underline(body: { text(body: [x]), text(body: [+]), text(body: [y]) }))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/underover-01.typ0000644000000000000000000000014507346545000016744 0ustar0000000000000000// Test lines and brackets. $ x = overbracket( overline(underline(x + y)), 1 + 2 + ... + 5, ) $ typst-0.8.0.2/test/typ/math/underover-02.out0000644000000000000000000001063107346545000016741 0ustar0000000000000000--- parse tree --- [ Code "typ/math/underover-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/underover-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/underover-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Code "typ/math/underover-02.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "underbracket")) [ BlockArg [ MGroup (Just "[") (Just "]") [ Text "1" , Text "," , MFrac (Text "2") (Text "3") ] ] , BlockArg [ Text " relevant stuff" ] ]) , Code "typ/math/underover-02.typ" ( line 4 , column 11 ) (FieldAccess (Ident (Identifier "long")) (FieldAccess (Ident (Identifier "double")) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "arrow")))))) , Code "typ/math/underover-02.typ" ( line 5 , column 3 ) (FuncCall (Ident (Identifier "overbracket")) [ BlockArg [ MGroup (Just "[") (Just "]") [ MFrac (Text "4") (Text "5") , Text "," , Text "6" ] ] , BlockArg [ Text " irrelevant stuff" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.underbracket(annotation: text(body: [ relevant stuff]), body: math.lr(body: ({ [[], text(body: [1]), text(body: [,]), math.frac(denom: text(body: [3]), num: text(body: [2])), []] }))), text(body: [⟺]), math.overbracket(annotation: text(body: [ irrelevant stuff]), body: math.lr(body: ({ [[], math.frac(denom: text(body: [5]), num: text(body: [4])), text(body: [,]), text(body: [6]), []] }))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/underover-02.typ0000644000000000000000000000021207346545000016740 0ustar0000000000000000// Test brackets. $ underbracket([1, 2/3], "relevant stuff") arrow.l.r.double.long overbracket([4/5,6], "irrelevant stuff") $ typst-0.8.0.2/test/typ/math/vec-00.out0000644000000000000000000000513007346545000015501 0ustar0000000000000000--- parse tree --- [ Code "typ/math/vec-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/vec-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/vec-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Equation True [ Text "v" , Text "=" , Code "typ/math/vec-00.typ" ( line 3 , column 7 ) (FuncCall (Ident (Identifier "vec")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" , Text "+" , Text "3" ] , BlockArg [ Text "4" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [v]), text(body: [=]), math.vec(children: (text(body: [1]), { text(body: [2]), text(body: [+]), text(body: [3]) }, text(body: [4]))) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/vec-00.typ0000644000000000000000000000005307346545000015505 0ustar0000000000000000// Test wide cell. $ v = vec(1, 2+3, 4) $ typst-0.8.0.2/test/typ/math/vec-01.out0000644000000000000000000000471207346545000015507 0ustar0000000000000000--- parse tree --- [ Code "typ/math/vec-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/math/vec-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/math/vec-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/math/vec-01.typ" ( line 3 , column 2 ) (Set (FieldAccess (Ident (Identifier "vec")) (Ident (Identifier "math"))) [ KeyValArg (Identifier "delim") (Literal (String "[")) ]) , SoftBreak , Equation True [ Code "typ/math/vec-01.typ" ( line 4 , column 3 ) (FuncCall (Ident (Identifier "vec")) [ BlockArg [ Text "1" ] , BlockArg [ Text "2" ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), math.equation(block: true, body: math.vec(children: (text(body: [1]), text(body: [2])), delim: "["), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/math/vec-01.typ0000644000000000000000000000011007346545000015500 0ustar0000000000000000// Test alternative delimiter. #set math.vec(delim: "[") $ vec(1, 2) $ typst-0.8.0.2/test/typ/math/vec-02.out0000644000000000000000000000002107346545000015475 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/math/vec-02.typ0000644000000000000000000000012507346545000015507 0ustar0000000000000000// Error: 22-25 expected "(", "[", "{", "|", "||", or none #set math.vec(delim: "%") typst-0.8.0.2/test/typ/meta/0000755000000000000000000000000007346545000013754 5ustar0000000000000000typst-0.8.0.2/test/typ/meta/bibliography-00.out0000644000000000000000000000002107346545000017366 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/bibliography-00.typ0000644000000000000000000000023007346545000017375 0ustar0000000000000000// Test ambiguous reference. = Introduction // Error: 1-7 label occurs in the document and its bibliography @arrgh #bibliography("/works.bib") typst-0.8.0.2/test/typ/meta/bibliography-01.out0000644000000000000000000000643207346545000017403 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/bibliography-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/bibliography-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/bibliography-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/bibliography-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , SoftBreak , Heading 1 [ Text "Details" ] , Text "See" , Space , Text "also" , Space , Code "typ/meta/bibliography-01.typ" ( line 4 , column 11 ) (FuncCall (Ident (Identifier "cite")) [ NormalArg (Label "distress") , KeyValArg (Identifier "supplement") (Block (Content [ Text "p" , Text "." , Space , Text "22" ])) ]) , Text "," , Space , Ref "arrgh" (Block (Content [ Text "p" , Text "." , Space , Text "4" ])) , Text "," , Space , Text "and" , Space , Ref "distress" (Block (Content [ Text "p" , Text "." , Space , Text "5" ])) , Text "." , SoftBreak , Code "typ/meta/bibliography-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Literal (String "/works.bib")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), heading(body: text(body: [Details]), level: 1), text(body: [See also ]), cite(key: , supplement: text(body: [p. 22])), text(body: [, ]), ref(supplement: text(body: [p. 4]), target: ), text(body: [, and ]), ref(supplement: text(body: [p. 5]), target: ), text(body: [. ]), bibliography(source: "/works.bib"), parbreak() }) typst-0.8.0.2/test/typ/meta/bibliography-01.typ0000644000000000000000000000022307346545000017400 0ustar0000000000000000#set page(width: 200pt) = Details See also #cite(, supplement: [p. 22]), @arrgh[p. 4], and @distress[p. 5]. #bibliography("/works.bib") typst-0.8.0.2/test/typ/meta/bibliography-02.out0000644000000000000000000001065507346545000017406 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/bibliography-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/bibliography-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/bibliography-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/bibliography-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , SoftBreak , Code "typ/meta/bibliography-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Literal (String "/works.bib")) , KeyValArg (Identifier "title") (Block (Content [ Text "Works" , Space , Text "to" , Space , Text "be" , Space , Text "cited" ])) , KeyValArg (Identifier "style") (Literal (String "chicago-author-date")) ]) , SoftBreak , Code "typ/meta/bibliography-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 100.0 Percent)) ]) , SoftBreak , Code "typ/meta/bibliography-02.typ" ( line 6 , column 2 ) (Block (Content [ Code "typ/meta/bibliography-02.typ" ( line 6 , column 4 ) (Set (Ident (Identifier "cite")) [ KeyValArg (Identifier "brackets") (Literal (Boolean False)) ]) , SoftBreak , Text "As" , Space , Text "described" , Space , Text "by" , Space , Ref "netwok" (Literal Auto) ])) , Text "," , SoftBreak , Text "the" , Space , Text "net" , Text "-" , Text "work" , Space , Text "is" , Space , Text "a" , Space , Text "creature" , Space , Text "of" , Space , Text "its" , Space , Text "own" , Text "." , SoftBreak , Text "This" , Space , Text "is" , Space , Text "close" , Space , Text "to" , Space , Text "piratery!" , Space , Ref "arrgh" (Literal Auto) , SoftBreak , Text "And" , Space , Text "quark!" , Space , Ref "quark" (Literal Auto) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), bibliography(source: "/works.bib", style: "chicago-author-date", title: text(body: [Works to be cited])), text(body: [ ]), line(length: 100%), text(body: [ ]), text(body: [ As described by ]), ref(supplement: auto, target: ), text(body: [, the net-work is a creature of its own. This is close to piratery! ]), ref(supplement: auto, target: ), text(body: [ And quark! ]), ref(supplement: auto, target: ), parbreak() }) typst-0.8.0.2/test/typ/meta/bibliography-02.typ0000644000000000000000000000046307346545000017407 0ustar0000000000000000// Test unconventional order. #set page(width: 200pt) #bibliography("/works.bib", title: [Works to be cited], style: "chicago-author-date") #line(length: 100%) #[#set cite(brackets: false) As described by @netwok], the net-work is a creature of its own. This is close to piratery! @arrgh And quark! @quark typst-0.8.0.2/test/typ/meta/bibliography-03.out0000644000000000000000000000002107346545000017371 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/bibliography-03.typ0000644000000000000000000000031607346545000017405 0ustar0000000000000000// Error: 15-43 duplicate bibliography keys: arrgh, distress, glacier-melt, issue201, mcintosh_anxiety, netwok, psychology25, quark, restful, sharing, tolkien54 #bibliography(("/works.bib", "/works.bib")) typst-0.8.0.2/test/typ/meta/bibliography-04.out0000644000000000000000000000731107346545000017403 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/bibliography-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/bibliography-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/bibliography-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/bibliography-04.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , SoftBreak , Code "typ/meta/bibliography-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "1.")) ]) , SoftBreak , Code "typ/meta/bibliography-04.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "bibliography"))) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "1.")) ])) , ParBreak , Heading 1 [ Text "Multiple" , Space , Text "Bibs" ] , Text "Now" , Space , Text "we" , Space , Text "have" , Space , Text "multiple" , Space , Text "bibliographies" , Space , Text "containing" , Space , Code "typ/meta/bibliography-04.typ" ( line 7 , column 49 ) (FuncCall (Ident (Identifier "cite")) [ NormalArg (Label "glacier-melt") ]) , Code "typ/meta/bibliography-04.typ" ( line 7 , column 70 ) (FuncCall (Ident (Identifier "cite")) [ NormalArg (Label "keshav2007read") ]) , SoftBreak , Code "typ/meta/bibliography-04.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Array [ Reg (Literal (String "/works.bib")) , Reg (Literal (String "/works_too.bib")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), heading(body: text(body: [Multiple Bibs]), level: 1, numbering: "1."), text(body: [Now we have multiple bibliographies containing ]), cite(key: ), cite(key: ), text(body: [ ]), bibliography(source: ("/works.bib", "/works_too.bib")), parbreak() }) typst-0.8.0.2/test/typ/meta/bibliography-04.typ0000644000000000000000000000040407346545000017404 0ustar0000000000000000#set page(width: 200pt) #set heading(numbering: "1.") #show bibliography: set heading(numbering: "1.") = Multiple Bibs Now we have multiple bibliographies containing #cite()#cite() #bibliography(("/works.bib", "/works_too.bib")) typst-0.8.0.2/test/typ/meta/bibliography-ordering-00.out0000644000000000000000000001026207346545000021205 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/bibliography-ordering-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/bibliography-ordering-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/bibliography-ordering-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/bibliography-ordering-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 300.0 Pt)) ]) , ParBreak , Ref "mcintosh_anxiety" (Literal Auto) , Text "," , Space , Ref "psychology25" (Literal Auto) , SoftBreak , Ref "netwok" (Literal Auto) , Text "," , Space , Ref "issue201" (Literal Auto) , Text "," , Space , Ref "arrgh" (Literal Auto) , Text "," , Space , Ref "quark" (Literal Auto) , Text "," , Space , Ref "distress" (Literal Auto) , Text "," , SoftBreak , Ref "glacier-melt" (Literal Auto) , Text "," , Space , Ref "issue201" (Literal Auto) , Text "," , Space , Ref "tolkien54" (Literal Auto) , Text "," , Space , Ref "sharing" (Literal Auto) , Text "," , Space , Ref "restful" (Literal Auto) , ParBreak , Code "typ/meta/bibliography-ordering-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Literal (String "/works.bib")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [ ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), text(body: [, ]), ref(supplement: auto, target: ), parbreak(), bibliography(source: "/works.bib"), parbreak() }) typst-0.8.0.2/test/typ/meta/bibliography-ordering-00.typ0000644000000000000000000000027707346545000021217 0ustar0000000000000000#set page(width: 300pt) @mcintosh_anxiety, @psychology25 @netwok, @issue201, @arrgh, @quark, @distress, @glacier-melt, @issue201, @tolkien54, @sharing, @restful #bibliography("/works.bib") typst-0.8.0.2/test/typ/meta/cite-footnote-00.out0000644000000000000000000000523007346545000017501 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/cite-footnote-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/cite-footnote-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/cite-footnote-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "Hello" , Space , Ref "netwok" (Literal Auto) , SoftBreak , Text "And" , Space , Text "again" , Text ":" , Space , Ref "netwok" (Literal Auto) , ParBreak , Code "typ/meta/cite-footnote-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Code "typ/meta/cite-footnote-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Literal (String "/works.bib")) , KeyValArg (Identifier "style") (Literal (String "chicago-notes")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ Hello ]), ref(supplement: auto, target: ), text(body: [ And again: ]), ref(supplement: auto, target: ), parbreak(), pagebreak(), text(body: [ ]), bibliography(source: "/works.bib", style: "chicago-notes"), parbreak() }) typst-0.8.0.2/test/typ/meta/cite-footnote-00.typ0000644000000000000000000000014307346545000017504 0ustar0000000000000000Hello @netwok And again: @netwok #pagebreak() #bibliography("/works.bib", style: "chicago-notes") typst-0.8.0.2/test/typ/meta/counter-00.out0000644000000000000000000001233107346545000016401 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/counter-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/counter-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/counter-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/counter-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "mine"))) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Literal (String "mine!")) ])) , ParBreak , Text "Final" , Text ":" , Space , Code "typ/meta/counter-00.typ" ( line 5 , column 9 ) (FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "loc") ] (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (FieldAccess (Ident (Identifier "final")) (Ident (Identifier "mine"))) [ NormalArg (Ident (Identifier "loc")) ])) [ NormalArg (Literal (Int 0)) ])) ]) , Space , HardBreak , Code "typ/meta/counter-00.typ" ( line 6 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "step")) (Ident (Identifier "mine"))) []) , SoftBreak , Text "First" , Text ":" , Space , Code "typ/meta/counter-00.typ" ( line 7 , column 9 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "mine"))) []) , Space , HardBreak , Code "typ/meta/counter-00.typ" ( line 8 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "mine"))) [ NormalArg (Literal (Int 7)) ]) , SoftBreak , Code "typ/meta/counter-00.typ" ( line 9 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "mine"))) [ NormalArg (Literal (String "1 of 1")) , KeyValArg (Identifier "both") (Literal (Boolean True)) ]) , Space , HardBreak , Code "typ/meta/counter-00.typ" ( line 10 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "step")) (Ident (Identifier "mine"))) []) , SoftBreak , Code "typ/meta/counter-00.typ" ( line 11 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "step")) (Ident (Identifier "mine"))) []) , SoftBreak , Text "Second" , Text ":" , Space , Code "typ/meta/counter-00.typ" ( line 12 , column 10 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "mine"))) [ NormalArg (Literal (String "I")) ]) , SoftBreak , Code "typ/meta/counter-00.typ" ( line 13 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "mine"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "n") ] (Times (Ident (Identifier "n")) (Literal (Int 2)))) ]) , SoftBreak , Code "typ/meta/counter-00.typ" ( line 14 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "step")) (Ident (Identifier "mine"))) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Final: ]), locate(func: ), text(body: [ ]), linebreak(), text(body: [ First: ]), text(body: [1]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [7]), text(body: [ ]), linebreak(), text(body: [ ]), text(body: [ Second: ]), text(body: [9]), text(body: [ ]), text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/meta/counter-00.typ0000644000000000000000000000043707346545000016412 0ustar0000000000000000// Count with string key. #let mine = counter("mine!") Final: #locate(loc => mine.final(loc).at(0)) \ #mine.step() First: #mine.display() \ #mine.update(7) #mine.display("1 of 1", both: true) \ #mine.step() #mine.step() Second: #mine.display("I") #mine.update(n => n * 2) #mine.step() typst-0.8.0.2/test/typ/meta/counter-01.out0000644000000000000000000000754307346545000016413 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/counter-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/counter-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/counter-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/counter-01.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "label"))) (Label "heya")) , SoftBreak , Code "typ/meta/counter-01.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "count"))) (FuncCall (FieldAccess (Ident (Identifier "display")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "label")) ])) [])) , SoftBreak , Code "typ/meta/counter-01.typ" ( line 5 , column 2 ) (LetFunc (Identifier "elem") [ NormalParam (Identifier "it") ] (Block (Content [ Code "typ/meta/counter-01.typ" ( line 5 , column 19 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (Ident (Identifier "it")) ]) , Space , Code "typ/meta/counter-01.typ" ( line 5 , column 28 ) (Ident (Identifier "label")) ]))) , ParBreak , Code "typ/meta/counter-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "elem")) [ BlockArg [ Text "hey," , Space , Text "there!" ] ]) , Space , Code "typ/meta/counter-01.typ" ( line 7 , column 21 ) (Ident (Identifier "count")) , Space , HardBreak , Code "typ/meta/counter-01.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "elem")) [ BlockArg [ Text "more" , Space , Text "here!" ] ]) , Space , Code "typ/meta/counter-01.typ" ( line 8 , column 20 ) (Ident (Identifier "count")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), box(body: text(body: [hey, there!])), text(body: [ ]), , text(body: [ ]), text(body: [0]), text(body: [ ]), linebreak(), box(body: text(body: [more here!])), text(body: [ ]), , text(body: [ ]), text(body: [0]), parbreak() }) typst-0.8.0.2/test/typ/meta/counter-01.typ0000644000000000000000000000024407346545000016407 0ustar0000000000000000// Count labels. #let label = #let count = counter(label).display() #let elem(it) = [#box(it) #label] #elem[hey, there!] #count \ #elem[more here!] #count typst-0.8.0.2/test/typ/meta/counter-02.out0000644000000000000000000001437707346545000016417 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/counter-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/counter-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/counter-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/counter-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "1.a.")) ]) , SoftBreak , Code "typ/meta/counter-02.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "heading"))) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 10.0 Pt)) ])) , SoftBreak , Code "typ/meta/counter-02.typ" ( line 5 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "step")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "heading")) ])) []) , ParBreak , Heading 1 [ Text "Alpha" ] , Text "In" , Space , Code "typ/meta/counter-02.typ" ( line 8 , column 5 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "heading")) ])) []) , SoftBreak , Heading 2 [ Text "Beta" ] , Code "typ/meta/counter-02.typ" ( line 11 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal None) ]) , SoftBreak , Heading 1 [ Text "Gamma" ] , Code "typ/meta/counter-02.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "I.")) , BlockArg [ Text "Delta" ] ]) , ParBreak , Text "At" , Space , Text "Beta," , Space , Text "it" , Space , Text "was" , Space , Code "typ/meta/counter-02.typ" ( line 15 , column 18 ) (FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "loc") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "it"))) (FuncCall (FieldAccess (Ident (Identifier "find")) (FuncCall (Ident (Identifier "query")) [ NormalArg (Ident (Identifier "heading")) , NormalArg (Ident (Identifier "loc")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "it") ] (Equals (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it"))) (Block (Content [ Text "Beta" ])))) ]) , FuncCall (Ident (Identifier "numbering")) [ NormalArg (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "it"))) , SpreadArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "heading")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) ]) ] ]))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), heading(body: text(body: [Alpha]), level: 1, numbering: "1.a."), text(body: [In ]), text(body: [1]), text(body: [ ]), heading(body: text(body: [Beta]), level: 2, numbering: "1.a."), text(body: [ ]), heading(body: text(body: [Gamma]), level: 1, numbering: none), heading(body: text(body: [Delta]), numbering: "I."), parbreak(), text(body: [At Beta, it was ]), locate(func: ), parbreak() }) typst-0.8.0.2/test/typ/meta/counter-02.typ0000644000000000000000000000060507346545000016411 0ustar0000000000000000// Count headings. #set heading(numbering: "1.a.") #show heading: set text(10pt) #counter(heading).step() = Alpha In #counter(heading).display() == Beta #set heading(numbering: none) = Gamma #heading(numbering: "I.")[Delta] At Beta, it was #locate(loc => { let it = query(heading, loc).find(it => it.body == [Beta]) numbering(it.numbering, ..counter(heading).at(it.location())) }) typst-0.8.0.2/test/typ/meta/counter-03.out0000644000000000000000000001352707346545000016414 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/counter-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/counter-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/counter-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/counter-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ KeyValArg (Identifier "numbering") (Literal (String "A")) , KeyValArg (Identifier "caption") (Block (Content [ Text "Four" , Space , Quote '\'' , Text "A" , Quote '\'' , Text "s" ])) , KeyValArg (Identifier "kind") (Ident (Identifier "image")) , KeyValArg (Identifier "supplement") (Literal (String "Figure")) , BlockArg [ Emph [ Text "AAAA!" ] ] ]) , SoftBreak , Code "typ/meta/counter-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ KeyValArg (Identifier "numbering") (Literal None) , KeyValArg (Identifier "caption") (Block (Content [ Text "Four" , Space , Quote '\'' , Text "B" , Quote '\'' , Text "s" ])) , KeyValArg (Identifier "kind") (Ident (Identifier "image")) , KeyValArg (Identifier "supplement") (Literal (String "Figure")) , BlockArg [ Emph [ Text "BBBB!" ] ] ]) , SoftBreak , Code "typ/meta/counter-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ KeyValArg (Identifier "caption") (Block (Content [ Text "Four" , Space , Quote '\'' , Text "C" , Quote '\'' , Text "s" ])) , KeyValArg (Identifier "kind") (Ident (Identifier "image")) , KeyValArg (Identifier "supplement") (Literal (String "Figure")) , BlockArg [ Emph [ Text "CCCC!" ] ] ]) , SoftBreak , Code "typ/meta/counter-03.typ" ( line 6 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "figure"))) [ KeyValArg (Identifier "kind") (Ident (Identifier "image")) ]) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "n") ] (Plus (Ident (Identifier "n")) (Literal (Int 3)))) ]) , SoftBreak , Code "typ/meta/counter-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ KeyValArg (Identifier "caption") (Block (Content [ Text "Four" , Space , Quote '\'' , Text "D" , Quote '\'' , Text "s" ])) , KeyValArg (Identifier "kind") (Ident (Identifier "image")) , KeyValArg (Identifier "supplement") (Literal (String "Figure")) , BlockArg [ Emph [ Text "DDDD!" ] ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), figure(body: emph(body: text(body: [AAAA!])), caption: text(body: [Four ‘A’s]), kind: , numbering: "A", supplement: "Figure"), text(body: [ ]), figure(body: emph(body: text(body: [BBBB!])), caption: text(body: [Four ‘B’s]), kind: , numbering: none, supplement: "Figure"), text(body: [ ]), figure(body: emph(body: text(body: [CCCC!])), caption: text(body: [Four ‘C’s]), kind: , supplement: "Figure"), text(body: [ ]), text(body: [ ]), figure(body: emph(body: text(body: [DDDD!])), caption: text(body: [Four ‘D’s]), kind: , supplement: "Figure"), parbreak() }) typst-0.8.0.2/test/typ/meta/counter-03.typ0000644000000000000000000000062207346545000016411 0ustar0000000000000000// Count figures. #figure(numbering: "A", caption: [Four 'A's], kind: image, supplement: "Figure")[_AAAA!_] #figure(numbering: none, caption: [Four 'B's], kind: image, supplement: "Figure")[_BBBB!_] #figure(caption: [Four 'C's], kind: image, supplement: "Figure")[_CCCC!_] #counter(figure.where(kind: image)).update(n => n + 3) #figure(caption: [Four 'D's], kind: image, supplement: "Figure")[_DDDD!_] typst-0.8.0.2/test/typ/meta/counter-page-00.out0000644000000000000000000001012507346545000017312 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/counter-page-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/counter-page-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/counter-page-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 20.0 Pt) ) , Reg ( Ident (Identifier "rest") , Literal (Numeric 10.0 Pt) ) ]) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 12)) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "numbering") (Literal (String "(i)")) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 6)) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "pagebreak")) []) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 9 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "numbering") (Literal (String "1 / 1")) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 10 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "page")) ])) [ NormalArg (Literal (Int 1)) ]) , SoftBreak , Code "typ/meta/counter-page-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur]), text(body: [ ]), pagebreak(), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), parbreak() }) typst-0.8.0.2/test/typ/meta/counter-page-00.typ0000644000000000000000000000032707346545000017322 0ustar0000000000000000// Test the page counter. #set page(height: 50pt, margin: (bottom: 20pt, rest: 10pt)) #lorem(12) #set page(numbering: "(i)") #lorem(6) #pagebreak() #set page(numbering: "1 / 1") #counter(page).update(1) #lorem(20) typst-0.8.0.2/test/typ/meta/document-00.out0000644000000000000000000000376107346545000016547 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/document-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/document-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/document-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/document-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "document")) [ KeyValArg (Identifier "title") (Literal (String "Hello")) ]) , SoftBreak , Text "What" , Quote '\'' , Text "s" , Space , Text "up?" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ What’s up?]), parbreak() }) typst-0.8.0.2/test/typ/meta/document-00.typ0000644000000000000000000000007307346545000016545 0ustar0000000000000000// This is okay. #set document(title: "Hello") What's up? typst-0.8.0.2/test/typ/meta/document-01.out0000644000000000000000000000371407346545000016546 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/document-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/document-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/document-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/meta/document-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "document")) [ KeyValArg (Identifier "author") (Array [ Reg (Literal (String "A")) , Reg (Literal (String "B")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/meta/document-01.typ0000644000000000000000000000007707346545000016552 0ustar0000000000000000// This, too. // Ref: false #set document(author: ("A", "B")) typst-0.8.0.2/test/typ/meta/document-02.out0000644000000000000000000000002107346545000016533 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-02.typ0000644000000000000000000000014707346545000016551 0ustar0000000000000000// This, too. // Error: 23-29 expected string, found integer #set document(author: (123,)) What's up? typst-0.8.0.2/test/typ/meta/document-03.out0000644000000000000000000000002107346545000016534 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-03.typ0000644000000000000000000000014707346545000016552 0ustar0000000000000000Hello // Error: 2-30 document set rules must appear before any content #set document(title: "Hello") typst-0.8.0.2/test/typ/meta/document-04.out0000644000000000000000000000002107346545000016535 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-04.typ0000644000000000000000000000007307346545000016551 0ustar0000000000000000// Error: 10-12 can only be used in set rules #document() typst-0.8.0.2/test/typ/meta/document-05.out0000644000000000000000000000002107346545000016536 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-05.typ0000644000000000000000000000016207346545000016551 0ustar0000000000000000#box[ // Error: 4-32 document set rules are not allowed inside of containers #set document(title: "Hello") ] typst-0.8.0.2/test/typ/meta/document-06.out0000644000000000000000000000002107346545000016537 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-06.typ0000644000000000000000000000014307346545000016551 0ustar0000000000000000#box[ // Error: 4-18 page configuration is not allowed inside of containers #set page("a4") ] typst-0.8.0.2/test/typ/meta/document-07.out0000644000000000000000000000002107346545000016540 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/document-07.typ0000644000000000000000000000013007346545000016546 0ustar0000000000000000#box[ // Error: 4-15 pagebreaks are not allowed inside of containers #pagebreak() ] typst-0.8.0.2/test/typ/meta/figure-00.out0000644000000000000000000001552207346545000016210 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/figure-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/figure-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/figure-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/figure-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 150.0 Pt)) ]) , SoftBreak , Code "typ/meta/figure-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "figure")) [ KeyValArg (Identifier "numbering") (Literal (String "I")) ]) , ParBreak , Text "We" , Space , Text "can" , Space , Text "clearly" , Space , Text "see" , Space , Text "that" , Space , Ref "fig-cylinder" (Literal Auto) , Space , Text "and" , SoftBreak , Ref "tab-complex" (Literal Auto) , Space , Text "are" , Space , Text "relevant" , Space , Text "in" , Space , Text "this" , Space , Text "context" , Text "." , ParBreak , Code "typ/meta/figure-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , BlockArg [ Text "a" ] , BlockArg [ Text "b" ] ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "The" , Space , Text "basic" , Space , Text "table" , Text "." ])) ]) , Space , Code "typ/meta/figure-00.typ" ( line 11 , column 3 ) (Label "tab-basic") , ParBreak , Code "typ/meta/figure-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "pad")) [ KeyValArg (Identifier "y") (Negated (Literal (Numeric 6.0 Pt))) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/cylinder.svg")) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) ]) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "The" , Space , Text "basic" , Space , Text "shapes" , Text "." ])) , KeyValArg (Identifier "numbering") (Literal (String "I")) ]) , Space , Code "typ/meta/figure-00.typ" ( line 17 , column 3 ) (Label "fig-cylinder") , ParBreak , Code "typ/meta/figure-00.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , BlockArg [ Text "a" ] , BlockArg [ Text "b" ] , BlockArg [ Text "c" ] , BlockArg [ Text "d" ] , BlockArg [ Text "e" ] , BlockArg [ Text "f" ] ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "The" , Space , Text "complex" , Space , Text "table" , Text "." ])) ]) , Space , Code "typ/meta/figure-00.typ" ( line 22 , column 3 ) (Label "tab-complex") , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [We can clearly see that ]), ref(supplement: auto, target: ), text(body: [ and ]), ref(supplement: auto, target: ), text(body: [ are relevant in this context.]), parbreak(), figure(body: table(children: (text(body: [a]), text(body: [b])), columns: 2), caption: text(body: [The basic table.]), numbering: "I"), text(body: [ ]), , parbreak(), figure(body: pad(body: image(height: 2.0cm, source: "/assets/files/cylinder.svg"), y: -6.0pt), caption: text(body: [The basic shapes.]), numbering: "I"), text(body: [ ]), , parbreak(), figure(body: table(children: (text(body: [a]), text(body: [b]), text(body: [c]), text(body: [d]), text(body: [e]), text(body: [f])), columns: 3), caption: text(body: [The complex table.]), numbering: "I"), text(body: [ ]), , parbreak() }) typst-0.8.0.2/test/typ/meta/figure-00.typ0000644000000000000000000000071607346545000016214 0ustar0000000000000000#set page(width: 150pt) #set figure(numbering: "I") We can clearly see that @fig-cylinder and @tab-complex are relevant in this context. #figure( table(columns: 2)[a][b], caption: [The basic table.], ) #figure( pad(y: -6pt, image("/assets/files/cylinder.svg", height: 2cm)), caption: [The basic shapes.], numbering: "I", ) #figure( table(columns: 3)[a][b][c][d][e][f], caption: [The complex table.], ) typst-0.8.0.2/test/typ/meta/figure-01.out0000644000000000000000000000550407346545000016210 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/figure-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/figure-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/figure-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , ParBreak , Comment , Code "typ/meta/figure-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , NormalArg (Block (Content [ Text "Second" , Space , Text "cylinder" ])) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/cylinder.svg")) ]) ]) , KeyValArg (Identifier "caption") (Literal (String "A table containing images.")) ]) , Space , Code "typ/meta/figure-01.typ" ( line 11 , column 3 ) (Label "fig-image-in-table") , ParBreak ] --- evaluated --- document(body: { parbreak(), figure(body: table(children: (text(body: [Second cylinder]), image(source: "/assets/files/cylinder.svg")), columns: 2), caption: "A table containing images."), text(body: [ ]), , parbreak() }) typst-0.8.0.2/test/typ/meta/figure-01.typ0000644000000000000000000000031007346545000016203 0ustar0000000000000000 // Testing figures with tables. #figure( table( columns: 2, [Second cylinder], image("/assets/files/cylinder.svg"), ), caption: "A table containing images." ) typst-0.8.0.2/test/typ/meta/figure-02.out0000644000000000000000000003102007346545000016201 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/figure-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/figure-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/figure-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , ParBreak , Comment , Code "typ/meta/figure-02.typ" ( line 4 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "figure"))) [ KeyValArg (Identifier "kind") (Literal (String "theorem")) ])) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "name"))) (Literal None) , If [ ( Not (Equals (FieldAccess (Ident (Identifier "caption")) (Ident (Identifier "it"))) (Literal None)) , Block (CodeBlock [ Assign (Ident (Identifier "name")) (Block (Content [ Space , Code "typ/meta/figure-02.typ" ( line 7 , column 15 ) (FuncCall (Ident (Identifier "emph")) [ NormalArg (FieldAccess (Ident (Identifier "caption")) (Ident (Identifier "it"))) ]) ])) ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Assign (Ident (Identifier "name")) (Block (Content [])) ]) ) ] , Let (BasicBind (Just (Identifier "title"))) (Literal None) , If [ ( Not (Equals (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "it"))) (Literal None)) , Block (CodeBlock [ Assign (Ident (Identifier "title")) (FieldAccess (Ident (Identifier "supplement")) (Ident (Identifier "it"))) , If [ ( Not (Equals (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "it"))) (Literal None)) , Block (CodeBlock [ Assign (Ident (Identifier "title")) (Plus (Ident (Identifier "title")) (Plus (Literal (String " ")) (FuncCall (FieldAccess (Ident (Identifier "display")) (FieldAccess (Ident (Identifier "counter")) (Ident (Identifier "it")))) [ NormalArg (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "it"))) ]))) ]) ) ] ]) ) ] , Assign (Ident (Identifier "title")) (FuncCall (Ident (Identifier "strong")) [ NormalArg (Ident (Identifier "title")) ]) , FuncCall (Ident (Identifier "pad")) [ KeyValArg (Identifier "top") (Literal (Numeric 0.0 Em)) , KeyValArg (Identifier "bottom") (Literal (Numeric 0.0 Em)) , NormalArg (FuncCall (Ident (Identifier "block")) [ KeyValArg (Identifier "fill") (FuncCall (FieldAccess (Ident (Identifier "lighten")) (Ident (Identifier "green"))) [ NormalArg (Literal (Numeric 90.0 Percent)) ]) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 1.0 Pt)) (Ident (Identifier "green"))) , KeyValArg (Identifier "inset") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "radius") (Literal (Numeric 5.0 Pt)) , KeyValArg (Identifier "breakable") (Literal (Boolean False)) , NormalArg (Block (Content [ Code "typ/meta/figure-02.typ" ( line 29 , column 9 ) (Ident (Identifier "title")) , Code "typ/meta/figure-02.typ" ( line 29 , column 15 ) (Ident (Identifier "name")) , Code "typ/meta/figure-02.typ" ( line 29 , column 20 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 0.1 Em)) ]) , Text ":" , Code "typ/meta/figure-02.typ" ( line 29 , column 30 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 0.2 Em)) ]) , Code "typ/meta/figure-02.typ" ( line 29 , column 39 ) (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it"))) , Code "typ/meta/figure-02.typ" ( line 29 , column 47 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 0.5 Em)) ]) ])) ]) ] ])))) , ParBreak , Code "typ/meta/figure-02.typ" ( line 34 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 150.0 Pt)) ]) , SoftBreak , Code "typ/meta/figure-02.typ" ( line 35 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (Block (Content [ Equation False [ MAttach Nothing (Just (Text "2")) (Text "a") , Text "+" , MAttach Nothing (Just (Text "2")) (Text "b") , Text "=" , MAttach Nothing (Just (Text "2")) (Text "c") ] ])) , KeyValArg (Identifier "supplement") (Literal (String "Theorem")) , KeyValArg (Identifier "kind") (Literal (String "theorem")) , KeyValArg (Identifier "caption") (Literal (String "Pythagoras' theorem.")) , KeyValArg (Identifier "numbering") (Literal (String "1")) ]) , Space , Code "typ/meta/figure-02.typ" ( line 41 , column 3 ) (Label "fig-formula") , ParBreak , Code "typ/meta/figure-02.typ" ( line 43 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (Block (Content [ Equation False [ MAttach Nothing (Just (Text "2")) (Text "a") , Text "+" , MAttach Nothing (Just (Text "2")) (Text "b") , Text "=" , MAttach Nothing (Just (Text "2")) (Text "c") ] ])) , KeyValArg (Identifier "supplement") (Literal (String "Theorem")) , KeyValArg (Identifier "kind") (Literal (String "theorem")) , KeyValArg (Identifier "caption") (Literal (String "Another Pythagoras' theorem.")) , KeyValArg (Identifier "numbering") (Literal None) ]) , Space , Code "typ/meta/figure-02.typ" ( line 49 , column 3 ) (Label "fig-formula") , ParBreak , Code "typ/meta/figure-02.typ" ( line 51 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (Block (Content [ RawBlock "rust" "fn main() {\n println!(\"Hello!\");\n }\n " ])) , KeyValArg (Identifier "caption") (Block (Content [ Text "Hello" , Space , Text "world" , Space , Text "in" , Space , Emph [ Text "rust" ] ])) ]) , ParBreak ] "typ/meta/figure-02.typ" (line 35, column 2): Content does not have a method "counter" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/figure-02.typ0000644000000000000000000000211707346545000016213 0ustar0000000000000000 // Testing show rules with figures with a simple theorem display #show figure.where(kind: "theorem"): it => { let name = none if not it.caption == none { name = [ #emph(it.caption)] } else { name = [] } let title = none if not it.numbering == none { title = it.supplement if not it.numbering == none { title += " " + it.counter.display(it.numbering) } } title = strong(title) pad( top: 0em, bottom: 0em, block( fill: green.lighten(90%), stroke: 1pt + green, inset: 10pt, width: 100%, radius: 5pt, breakable: false, [#title#name#h(0.1em):#h(0.2em)#it.body#v(0.5em)] ) ) } #set page(width: 150pt) #figure( $a^2 + b^2 = c^2$, supplement: "Theorem", kind: "theorem", caption: "Pythagoras' theorem.", numbering: "1", ) #figure( $a^2 + b^2 = c^2$, supplement: "Theorem", kind: "theorem", caption: "Another Pythagoras' theorem.", numbering: none, ) #figure( ```rust fn main() { println!("Hello!"); } ```, caption: [Hello world in _rust_], ) typst-0.8.0.2/test/typ/meta/figure-03.out0000644000000000000000000000611707346545000016213 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/figure-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/figure-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/figure-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/figure-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 6.0 Em)) ]) , SoftBreak , Code "typ/meta/figure-03.typ" ( line 4 , column 2 ) (Show (Just (Ident (Identifier "figure"))) (Set (Ident (Identifier "block")) [ KeyValArg (Identifier "breakable") (Literal (Boolean True)) ])) , ParBreak , Code "typ/meta/figure-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "table")) [ BlockArg [ Text "a" ] , BlockArg [ Text "b" ] , BlockArg [ Text "c" ] , BlockArg [ Text "d" ] , BlockArg [ Text "e" ] ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "A" , Space , Text "table" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), figure(body: table(children: (text(body: [a]), text(body: [b]), text(body: [c]), text(body: [d]), text(body: [e]))), caption: text(body: [A table])), parbreak() }) typst-0.8.0.2/test/typ/meta/figure-03.typ0000644000000000000000000000021507346545000016211 0ustar0000000000000000// Test breakable figures #set page(height: 6em) #show figure: set block(breakable: true) #figure(table[a][b][c][d][e], caption: [A table]) typst-0.8.0.2/test/typ/meta/footnote-00.out0000644000000000000000000000360007346545000016556 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/footnote-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Hi" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), footnote(body: text(body: [Hi])), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-00.typ0000644000000000000000000000001707346545000016562 0ustar0000000000000000#footnote[Hi] typst-0.8.0.2/test/typ/meta/footnote-01.out0000644000000000000000000000440607346545000016564 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Code "typ/meta/footnote-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "A" ] ]) , Space , HardBreak , Text "A" , Space , Code "typ/meta/footnote-01.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "A" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), footnote(body: text(body: [A])), text(body: [ ]), linebreak(), text(body: [A ]), footnote(body: text(body: [A])), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-01.typ0000644000000000000000000000011207346545000016557 0ustar0000000000000000// Test space collapsing before footnote. A#footnote[A] \ A #footnote[A] typst-0.8.0.2/test/typ/meta/footnote-02.out0000644000000000000000000000716607346545000016573 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "First" , Space , HardBreak , Text "Second" , Space , Code "typ/meta/footnote-02.typ" ( line 4 , column 9 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "A," , Space , Code "typ/meta/footnote-02.typ" ( line 4 , column 22 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "B," , Space , Code "typ/meta/footnote-02.typ" ( line 4 , column 35 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "C" ] ]) ] ]) ] ]) , Space , HardBreak , Text "Third" , Space , Code "typ/meta/footnote-02.typ" ( line 5 , column 8 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "D," , Space , Code "typ/meta/footnote-02.typ" ( line 5 , column 21 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "E" ] ]) ] ]) , Space , HardBreak , Text "Fourth" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [First ]), linebreak(), text(body: [Second ]), footnote(body: { text(body: [A, ]), footnote(body: { text(body: [B, ]), footnote(body: text(body: [C])) }) }), text(body: [ ]), linebreak(), text(body: [Third ]), footnote(body: { text(body: [D, ]), footnote(body: text(body: [E])) }), text(body: [ ]), linebreak(), text(body: [Fourth]), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-02.typ0000644000000000000000000000017707346545000016573 0ustar0000000000000000// Test nested footnotes. First \ Second #footnote[A, #footnote[B, #footnote[C]]] \ Third #footnote[D, #footnote[E]] \ Fourth typst-0.8.0.2/test/typ/meta/footnote-03.out0000644000000000000000000000472707346545000016574 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/meta/footnote-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "A," , Space , Code "typ/meta/footnote-03.typ" ( line 4 , column 15 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "B" ] ]) ] ]) , Text "," , Space , Code "typ/meta/footnote-03.typ" ( line 4 , column 30 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "C" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), footnote(body: { text(body: [A, ]), footnote(body: text(body: [B])) }), text(body: [, ]), footnote(body: text(body: [C])), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-03.typ0000644000000000000000000000023007346545000016562 0ustar0000000000000000// Currently, numbers a bit out of order if a nested footnote ends up in the // same frame as another one. :( #footnote[A, #footnote[B]], #footnote[C] typst-0.8.0.2/test/typ/meta/footnote-04.out0000644000000000000000000000664607346545000016577 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/footnote-04.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "footnote"))) (Set (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/meta/footnote-04.typ" ( line 4 , column 2 ) (Show (Just (FieldAccess (Ident (Identifier "entry")) (Ident (Identifier "footnote")))) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "style") (Literal (String "italic")) ])) , SoftBreak , Code "typ/meta/footnote-04.typ" ( line 5 , column 2 ) (Set (FieldAccess (Ident (Identifier "entry")) (Ident (Identifier "footnote"))) [ KeyValArg (Identifier "indent") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "gap") (Literal (Numeric 0.6 Em)) , KeyValArg (Identifier "clearance") (Literal (Numeric 0.3 Em)) , KeyValArg (Identifier "separator") (FuncCall (Ident (Identifier "repeat")) [ BlockArg [ Text "." ] ]) ]) , ParBreak , Text "Beautiful" , Space , Text "footnotes" , Text "." , Space , Code "typ/meta/footnote-04.typ" ( line 12 , column 23 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Wonderful," , Space , Text "aren" , Quote '\'' , Text "t" , Space , Text "they?" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Beautiful footnotes. ]), footnote(body: text(body: [Wonderful, aren’t they?])), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-04.typ0000644000000000000000000000040307346545000016565 0ustar0000000000000000// Test customization. #show footnote: set text(red) #show footnote.entry: set text(8pt, style: "italic") #set footnote.entry( indent: 0pt, gap: 0.6em, clearance: 0.3em, separator: repeat[.], ) Beautiful footnotes. #footnote[Wonderful, aren't they?] typst-0.8.0.2/test/typ/meta/footnote-break-00.out0000644000000000000000000001530007346545000017640 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-break-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-break-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-break-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 200.0 Pt)) ]) , ParBreak , Code "typ/meta/footnote-break-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 5)) ]) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Space , Comment , Space , Text "A" , Space , Text "simple" , Space , Text "footnote" , Text "." , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 7 , column 4 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Well," , Space , Text "not" , Space , Text "that" , Space , Text "simple" , Space , Ellipsis ] ]) , Space , Comment ] ]) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 15)) ]) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Another" , Space , Text "footnote" , Text ":" , Space , Code "typ/meta/footnote-break-00.typ" ( line 10 , column 30 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 30)) ]) ] ]) , Space , Comment , Code "typ/meta/footnote-break-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 15)) ]) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "My" , Space , Text "fourth" , Space , Text "footnote" , Text ":" , Space , Code "typ/meta/footnote-break-00.typ" ( line 12 , column 32 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 50)) ]) ] ]) , Space , Comment , Code "typ/meta/footnote-break-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 15)) ]) , SoftBreak , Code "typ/meta/footnote-break-00.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "And" , Space , Text "a" , Space , Text "final" , Space , Text "footnote" , Text "." ] ]) , Space , Comment ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet,]), text(body: [ ]), footnote(body: { text(body: [ ]), text(body: [ A simple footnote. ]), footnote(body: text(body: [Well, not that simple …])), text(body: [ ]) }), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), text(body: [ ]), footnote(body: { text(body: [Another footnote: ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi]) }), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), text(body: [ ]), footnote(body: { text(body: [My fourth footnote: ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat]) }), text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), text(body: [ ]), footnote(body: text(body: [And a final footnote.])), text(body: [ ]) }) typst-0.8.0.2/test/typ/meta/footnote-break-00.typ0000644000000000000000000000043207346545000017645 0ustar0000000000000000#set page(height: 200pt) #lorem(5) #footnote[ // 1 A simple footnote. #footnote[Well, not that simple ...] // 2 ] #lorem(15) #footnote[Another footnote: #lorem(30)] // 3 #lorem(15) #footnote[My fourth footnote: #lorem(50)] // 4 #lorem(15) #footnote[And a final footnote.] // 5 typst-0.8.0.2/test/typ/meta/footnote-container-00.out0000644000000000000000000001221607346545000020541 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-container-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-container-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-container-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Read" , Space , Text "the" , Space , Text "docs" , Space , Code "typ/meta/footnote-container-00.typ" ( line 3 , column 16 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Url "https://typst.app/docs" ] ]) , Text "!" , SoftBreak , Code "typ/meta/footnote-container-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/graph.png")) , KeyValArg (Identifier "width") (Literal (Numeric 70.0 Percent)) ]) , KeyValArg (Identifier "caption") (Block (Content [ SoftBreak , Text "A" , Space , Text "graph" , Space , Code "typ/meta/footnote-container-00.typ" ( line 7 , column 14 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "A" , Space , Emph [ Text "graph" ] , Space , Text "is" , Space , Text "a" , Space , Text "structure" , Space , Text "with" , Space , Text "nodes" , Space , Text "and" , Space , Text "edges" , Text "." ] ]) , ParBreak ])) ]) , SoftBreak , Text "More" , Space , Code "typ/meta/footnote-container-00.typ" ( line 10 , column 7 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "just" , Space , Text "for" , Space , Ellipsis ] ]) , Space , Text "footnotes" , Space , Code "typ/meta/footnote-container-00.typ" ( line 10 , column 41 ) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Ellipsis , Space , Text "testing" , Text "." , Space , Text ":" , Text ")" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Read the docs ]), footnote(body: link(body: [https://typst.app/docs], dest: "https://typst.app/docs")), text(body: [! ]), figure(body: image(source: "/assets/files/graph.png", width: 70%), caption: { text(body: [ A graph ]), footnote(body: { text(body: [A ]), emph(body: text(body: [graph])), text(body: [ is a structure with nodes and edges.]) }), parbreak() }), text(body: [ More ]), footnote(body: text(body: [just for …])), text(body: [ footnotes ]), footnote(body: text(body: [… testing. :)])), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-container-00.typ0000644000000000000000000000044307346545000020545 0ustar0000000000000000// Test footnote in caption. Read the docs #footnote[https://typst.app/docs]! #figure( image("/assets/files/graph.png", width: 70%), caption: [ A graph #footnote[A _graph_ is a structure with nodes and edges.] ] ) More #footnote[just for ...] footnotes #footnote[... testing. :)] typst-0.8.0.2/test/typ/meta/footnote-container-01.out0000644000000000000000000001442207346545000020543 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-container-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-container-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-container-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/footnote-container-01.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "lang"))) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Languages" , Text "." ] ])) , SoftBreak , Code "typ/meta/footnote-container-01.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "nums"))) (FuncCall (Ident (Identifier "footnote")) [ BlockArg [ Text "Numbers" , Text "." ] ])) , ParBreak , DescListItem [ Quote '"' , Text "Hello" , Quote '"' ] [ Text "A" , Space , Text "word" , Space , Code "typ/meta/footnote-container-01.typ" ( line 6 , column 20 ) (Ident (Identifier "lang")) ] , SoftBreak , DescListItem [ Quote '"' , Text "123" , Quote '"' ] [ Text "A" , Space , Text "number" , Space , Code "typ/meta/footnote-container-01.typ" ( line 7 , column 20 ) (Ident (Identifier "nums")) , SoftBreak ] , SoftBreak , BulletListItem [ Quote '"' , Text "Hello" , Quote '"' , Space , Code "typ/meta/footnote-container-01.typ" ( line 9 , column 12 ) (Ident (Identifier "lang")) ] , SoftBreak , BulletListItem [ Quote '"' , Text "123" , Quote '"' , Space , Code "typ/meta/footnote-container-01.typ" ( line 10 , column 10 ) (Ident (Identifier "nums")) , SoftBreak ] , SoftBreak , EnumListItem Nothing [ Quote '"' , Text "Hello" , Quote '"' , Space , Code "typ/meta/footnote-container-01.typ" ( line 12 , column 12 ) (Ident (Identifier "lang")) ] , SoftBreak , EnumListItem Nothing [ Quote '"' , Text "123" , Quote '"' , Space , Code "typ/meta/footnote-container-01.typ" ( line 13 , column 10 ) (Ident (Identifier "nums")) , SoftBreak ] , SoftBreak , Code "typ/meta/footnote-container-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , NormalArg (Block (Content [ Text "Hello" ])) , NormalArg (Block (Content [ Text "A" , Space , Text "word" , Space , Code "typ/meta/footnote-container-01.typ" ( line 17 , column 21 ) (Ident (Identifier "lang")) ])) , NormalArg (Block (Content [ Text "123" ])) , NormalArg (Block (Content [ Text "A" , Space , Text "number" , Space , Code "typ/meta/footnote-container-01.typ" ( line 18 , column 21 ) (Ident (Identifier "nums")) ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), terms(children: ((text(body: [“Hello”]), { text(body: [A word ]), footnote(body: text(body: [Languages.])) }), (text(body: [“123”]), { text(body: [A number ]), footnote(body: text(body: [Numbers.])), text(body: [ ]) }))), list(children: ({ text(body: [“Hello” ]), footnote(body: text(body: [Languages.])) }, { text(body: [“123” ]), footnote(body: text(body: [Numbers.])), text(body: [ ]) })), enum(children: ({ text(body: [“Hello” ]), footnote(body: text(body: [Languages.])) }, { text(body: [“123” ]), footnote(body: text(body: [Numbers.])), text(body: [ ]) })), table(children: (text(body: [Hello]), { text(body: [A word ]), footnote(body: text(body: [Languages.])) }, text(body: [123]), { text(body: [A number ]), footnote(body: text(body: [Numbers.])) }), columns: 2), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-container-01.typ0000644000000000000000000000043307346545000020545 0ustar0000000000000000// Test duplicate footnotes. #let lang = footnote[Languages.] #let nums = footnote[Numbers.] / "Hello": A word #lang / "123": A number #nums - "Hello" #lang - "123" #nums + "Hello" #lang + "123" #nums #table( columns: 2, [Hello], [A word #lang], [123], [A number #nums], ) typst-0.8.0.2/test/typ/meta/footnote-invariant-00.out0000644000000000000000000000534407346545000020556 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/footnote-invariant-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/footnote-invariant-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/footnote-invariant-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/footnote-invariant-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 120.0 Pt)) ]) , ParBreak , Code "typ/meta/footnote-invariant-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 13)) ]) , ParBreak , Text "There" , Space , Code "typ/meta/footnote-invariant-00.typ" ( line 6 , column 8 ) (FuncCall (Ident (Identifier "footnote")) [ NormalArg (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), parbreak(), text(body: [There ]), footnote(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), parbreak() }) typst-0.8.0.2/test/typ/meta/footnote-invariant-00.typ0000644000000000000000000000010107346545000020545 0ustar0000000000000000#set page(height: 120pt) #lorem(13) There #footnote(lorem(20)) typst-0.8.0.2/test/typ/meta/heading-00.out0000644000000000000000000000440607346545000016325 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/heading-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/heading-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/heading-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Heading 1 [ Text "Level" , Space , Text "1" ] , Heading 2 [ Text "Level" , Space , Text "2" ] , Heading 3 [ Text "Level" , Space , Text "3" ] , Comment , Heading 11 [ Text "Level" , Space , Text "11" ] ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), heading(body: text(body: [Level 1]), level: 1), heading(body: text(body: [Level 2]), level: 2), heading(body: text(body: [Level 3]), level: 3), heading(body: text(body: [Level 11]), level: 11) }) typst-0.8.0.2/test/typ/meta/heading-00.typ0000644000000000000000000000020207346545000016320 0ustar0000000000000000// Different number of equals signs. = Level 1 == Level 2 === Level 3 // After three, it stops shrinking. =========== Level 11 typst-0.8.0.2/test/typ/meta/heading-01.out0000644000000000000000000000534607346545000016332 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/heading-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/heading-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/heading-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Comment , Space , Text "=" , Space , Text "Level" , Space , Text "1" , SoftBreak , Code "typ/meta/heading-01.typ" ( line 6 , column 2 ) (Block (Content [ Heading 2 [ Text "Level" , Space , Text "2" ] ])) , SoftBreak , Code "typ/meta/heading-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "box")) [ BlockArg [ Heading 3 [ Text "Level" , Space , Text "3" ] ] ]) , ParBreak , Comment , Text "No" , Space , Text "=" , Space , Text "heading" , ParBreak , Comment , Text "=" , Space , Text "No" , Space , Text "heading" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ = Level 1 ]), heading(body: text(body: [Level 2]), level: 2), text(body: [ ]), box(body: heading(body: text(body: [Level 3]), level: 3)), parbreak(), text(body: [No = heading]), parbreak(), text(body: [= No heading]), parbreak() }) typst-0.8.0.2/test/typ/meta/heading-01.typ0000644000000000000000000000031307346545000016324 0ustar0000000000000000// Heading vs. no heading. // Parsed as headings if at start of the context. /**/ = Level 1 #[== Level 2] #box[=== Level 3] // Not at the start of the context. No = heading // Escaped. \= No heading typst-0.8.0.2/test/typ/meta/heading-02.out0000644000000000000000000000464707346545000016336 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/heading-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/heading-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/heading-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Heading 1 [ Code "typ/meta/heading-02.typ" ( line 4 , column 4 ) (Block (Content [ Text "This" , SoftBreak , Text "is" , SoftBreak , Text "multiline" , Text "." , ParBreak ])) ] , Heading 1 [ Text "This" ] , Text "is" , Space , Text "not" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), heading(body: { text(body: [This is multiline.]), parbreak() }, level: 1), heading(body: text(body: [This]), level: 1), text(body: [is not.]), parbreak() }) typst-0.8.0.2/test/typ/meta/heading-02.typ0000644000000000000000000000012107346545000016322 0ustar0000000000000000// Blocks can continue the heading. = #[This is multiline. ] = This is not. typst-0.8.0.2/test/typ/meta/heading-03.out0000644000000000000000000000700107346545000016322 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/heading-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/heading-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/heading-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/heading-03.typ" ( line 3 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 5)) ])) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "block")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (Plus (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it"))) (Block (Content [ Text "!" ]))) ]) ]))) , ParBreak , Heading 1 [ Text "Heading" ] , Heading 5 [ Text "Heading" , Space , Text "\127757" ] , Code "typ/meta/heading-03.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ KeyValArg (Identifier "level") (Literal (Int 5)) , BlockArg [ Text "Heading" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), heading(body: text(body: [Heading]), level: 1), block(body: text(body: { text(body: [Heading 🌍]), text(body: [!]) }, fill: rgb(13%,61%,67%,100%), font: "Roboto")), block(body: text(body: { text(body: [Heading]), text(body: [!]) }, fill: rgb(13%,61%,67%,100%), font: "Roboto")), parbreak() }) typst-0.8.0.2/test/typ/meta/heading-03.typ0000644000000000000000000000025707346545000016335 0ustar0000000000000000// Test styling. #show heading.where(level: 5): it => block( text(font: "Roboto", fill: eastern, it.body + [!]) ) = Heading ===== Heading 🌍 #heading(level: 5)[Heading] typst-0.8.0.2/test/typ/meta/heading-04.out0000644000000000000000000000430007346545000016322 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/heading-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/heading-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/heading-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/heading-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "1.")) ]) , SoftBreak , Heading 1 [] , Text "Not" , Space , Text "in" , Space , Text "heading" , SoftBreak , Text "=" , Text "Nope" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), heading(body: { }, level: 1, numbering: "1."), text(body: [Not in heading =Nope]), parbreak() }) typst-0.8.0.2/test/typ/meta/heading-04.typ0000644000000000000000000000010407346545000016325 0ustar0000000000000000// Edge cases. #set heading(numbering: "1.") = Not in heading =Nope typst-0.8.0.2/test/typ/meta/link-00.out0000644000000000000000000000753007346545000015664 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Url "https://example.com/" , ParBreak , Comment , Code "typ/meta/link-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://typst.org/")) , BlockArg [ Text "Some" , Space , Text "text" , Space , Text "text" , Space , Text "text" ] ]) , ParBreak , Comment , Text "This" , Space , Text "link" , Space , Text "appears" , Space , Code "typ/meta/link-00.typ" ( line 9 , column 20 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://google.com/")) , BlockArg [ Text "in" , Space , Text "the" , Space , Text "middle" , Space , Text "of" ] ]) , Space , Text "a" , Space , Text "paragraph" , Text "." , ParBreak , Comment , Text "Contact" , Space , Code "typ/meta/link-00.typ" ( line 12 , column 10 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "mailto:hi@typst.app")) ]) , Space , Text "or" , SoftBreak , Text "call" , Space , Code "typ/meta/link-00.typ" ( line 13 , column 7 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "tel:123")) ]) , Space , Text "for" , Space , Text "more" , Space , Text "information" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), link(body: [https://example.com/], dest: "https://example.com/"), parbreak(), link(body: text(body: [Some text text text]), dest: "https://typst.org/"), parbreak(), text(body: [This link appears ]), link(body: text(body: [in the middle of]), dest: "https://google.com/"), text(body: [ a paragraph.]), parbreak(), text(body: [Contact ]), link(dest: "mailto:hi@typst.app"), text(body: [ or call ]), link(dest: "tel:123"), text(body: [ for more information.]), parbreak() }) typst-0.8.0.2/test/typ/meta/link-00.typ0000644000000000000000000000054307346545000015666 0ustar0000000000000000// Link syntax. https://example.com/ // Link with body. #link("https://typst.org/")[Some text text text] // With line break. This link appears #link("https://google.com/")[in the middle of] a paragraph. // Certain prefixes are trimmed when using the `link` function. Contact #link("mailto:hi@typst.app") or call #link("tel:123") for more information. typst-0.8.0.2/test/typ/meta/link-01.out0000644000000000000000000000470007346545000015661 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-01.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "link"))) (Ident (Identifier "underline"))) , SoftBreak , Url "https://a.b.?q=%10#." , Space , HardBreak , Text "Wahttp" , Text ":" , Comment , Text "Nohttps" , Text ":" , Text "/" , Text "/" , Text "link" , Space , HardBreak , Text "Nohttp" , Text ":" , Comment , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), underline(body: link(body: [https://a.b.?q=%10#.], dest: "https://a.b.?q=%10#.")), text(body: [ ]), linebreak(), text(body: [Wahttp:]), text(body: [Nohttps://link ]), linebreak(), text(body: [Nohttp:]), parbreak() }) typst-0.8.0.2/test/typ/meta/link-01.typ0000644000000000000000000000020607346545000015663 0ustar0000000000000000// Test that the period is trimmed. #show link: underline https://a.b.?q=%10#. \ Wahttp://link \ Nohttps:\//link \ Nohttp\://comment typst-0.8.0.2/test/typ/meta/link-02.out0000644000000000000000000000461407346545000015666 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Url "https://[::1]:8080/" , Space , HardBreak , Url "https://example.com/(paren)" , Space , HardBreak , Url "https://example.com/#(((nested)))" , Space , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), link(body: [https://[::1]:8080/], dest: "https://[::1]:8080/"), text(body: [ ]), linebreak(), link(body: [https://example.com/(paren)], dest: "https://example.com/(paren)"), text(body: [ ]), linebreak(), link(body: [https://example.com/#(((nested)))], dest: "https://example.com/#(((nested)))"), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/link-02.typ0000644000000000000000000000021007346545000015657 0ustar0000000000000000// Verify that brackets are included in links. https://[::1]:8080/ \ https://example.com/(paren) \ https://example.com/#(((nested))) \ typst-0.8.0.2/test/typ/meta/link-03.out0000644000000000000000000000424107346545000015663 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-03.typ" ( line 3 , column 2 ) (Block (Content [ Url "https://example.com/" ])) , Space , HardBreak , Url "https://example.com/" , Text ")" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), link(body: [https://example.com/], dest: "https://example.com/"), text(body: [ ]), linebreak(), link(body: [https://example.com/], dest: "https://example.com/"), text(body: [)]), parbreak() }) typst-0.8.0.2/test/typ/meta/link-03.typ0000644000000000000000000000015607346545000015671 0ustar0000000000000000// Check that unbalanced brackets are not included in links. #[https://example.com/] \ https://example.com/) typst-0.8.0.2/test/typ/meta/link-04.out0000644000000000000000000000002107346545000015654 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/link-04.typ0000644000000000000000000000022107346545000015663 0ustar0000000000000000// Verify that opening brackets without closing brackets throw an error. // Error: 22-22 expected closing bracket in link https://exam(ple.com/ typst-0.8.0.2/test/typ/meta/link-05.out0000644000000000000000000000630507346545000015670 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-05.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "link"))) (FuncExpr [ NormalParam (Identifier "it") ] (FuncCall (Ident (Identifier "underline")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "283663")) ]) , NormalArg (Ident (Identifier "it")) ]) ]))) , SoftBreak , Text "You" , Space , Text "could" , Space , Text "also" , Space , Text "make" , Space , Text "the" , SoftBreak , Code "typ/meta/link-05.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://html5zombo.com/")) , BlockArg [ Text "link" , Space , Text "look" , Space , Text "way" , Space , Text "more" , Space , Text "typical" , Text "." ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ You could also make the ]), underline(body: text(body: link(body: text(body: [link look way more typical.]), dest: "https://html5zombo.com/"), fill: rgb(15%,21%,38%,100%))), parbreak() }) typst-0.8.0.2/test/typ/meta/link-05.typ0000644000000000000000000000026607346545000015675 0ustar0000000000000000// Styled with underline and color. #show link: it => underline(text(fill: rgb("283663"), it)) You could also make the #link("https://html5zombo.com/")[link look way more typical.] typst-0.8.0.2/test/typ/meta/link-06.out0000644000000000000000000000701407346545000015667 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-06.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/meta/link-06.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "mylink"))) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://typst.org/")) , BlockArg [ Text "LINK" ] ])) , SoftBreak , Text "My" , Space , Text "cool" , Space , Code "typ/meta/link-06.typ" ( line 5 , column 10 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dx") (Literal (Numeric 0.7 Cm)) , KeyValArg (Identifier "dy") (Literal (Numeric 0.7 Cm)) , NormalArg (FuncCall (Ident (Identifier "rotate")) [ NormalArg (Literal (Numeric 10.0 Deg)) , NormalArg (FuncCall (Ident (Identifier "scale")) [ NormalArg (Literal (Numeric 200.0 Percent)) , NormalArg (Ident (Identifier "mylink")) ]) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ My cool ]), box(body: move(body: rotate(angle: 10.0deg, body: scale(body: link(body: text(body: [LINK]), dest: "https://typst.org/"), factor: 200%)), dx: 0.7cm, dy: 0.7cm)), parbreak() }) typst-0.8.0.2/test/typ/meta/link-06.typ0000644000000000000000000000025207346545000015671 0ustar0000000000000000// Transformed link. #set page(height: 60pt) #let mylink = link("https://typst.org/")[LINK] My cool #box(move(dx: 0.7cm, dy: 0.7cm, rotate(10deg, scale(200%, mylink)))) typst-0.8.0.2/test/typ/meta/link-07.out0000644000000000000000000000703407346545000015672 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-07.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://example.com/")) , NormalArg (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Text "My" , Space , Text "cool" , Space , Text "rhino" , SoftBreak , Code "typ/meta/link-07.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "move")) [ KeyValArg (Identifier "dx") (Literal (Numeric 10.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) , KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) ]) ]) ]) , ParBreak ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), link(body: block(body: { text(body: [ My cool rhino ]), box(body: move(body: image(source: "/assets/files/rhino.png", width: 1.0cm), dx: 10.0pt)), parbreak() }), dest: "https://example.com/"), parbreak() }) typst-0.8.0.2/test/typ/meta/link-07.typ0000644000000000000000000000023207346545000015670 0ustar0000000000000000// Link containing a block. #link("https://example.com/", block[ My cool rhino #box(move(dx: 10pt, image("/assets/files/rhino.png", width: 1cm))) ]) typst-0.8.0.2/test/typ/meta/link-08.out0000644000000000000000000000466007346545000015675 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/meta/link-08.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Dict [ Reg ( Ident (Identifier "page") , Literal (Int 1) ) , Reg ( Ident (Identifier "x") , Literal (Numeric 10.0 Pt) ) , Reg ( Ident (Identifier "y") , Literal (Numeric 20.0 Pt) ) ]) , BlockArg [ Text "Back" , Space , Text "to" , Space , Text "the" , Space , Text "start" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), link(body: text(body: [Back to the start]), dest: (page: 1, x: 10.0pt, y: 20.0pt)), parbreak() }) typst-0.8.0.2/test/typ/meta/link-08.typ0000644000000000000000000000011407346545000015670 0ustar0000000000000000// Link to page one. #link((page: 1, x: 10pt, y: 20pt))[Back to the start] typst-0.8.0.2/test/typ/meta/link-09.out0000644000000000000000000000432507346545000015674 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/link-09.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/link-09.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/link-09.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Text" , Space , Code "typ/meta/link-09.typ" ( line 3 , column 6 ) (Label "hey") , SoftBreak , Code "typ/meta/link-09.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Label "hey") , BlockArg [ Text "Go" , Space , Text "to" , Space , Text "text" , Text "." ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Text ]), , text(body: [ ]), link(body: text(body: [Go to text.]), dest: ), parbreak() }) typst-0.8.0.2/test/typ/meta/link-09.typ0000644000000000000000000000007507346545000015677 0ustar0000000000000000// Test link to label. Text #link()[Go to text.] typst-0.8.0.2/test/typ/meta/link-10.out0000644000000000000000000000002107346545000015651 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/link-10.typ0000644000000000000000000000011107346545000015656 0ustar0000000000000000// Error: 2-20 label does not exist in the document #link()[Nope.] typst-0.8.0.2/test/typ/meta/link-11.out0000644000000000000000000000002107346545000015652 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/link-11.typ0000644000000000000000000000014507346545000015666 0ustar0000000000000000Text Text // Error: 2-20 label occurs multiple times in the document #link()[Nope.] typst-0.8.0.2/test/typ/meta/numbering-00.out0000644000000000000000000001401507346545000016711 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/numbering-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/numbering-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/numbering-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/numbering-00.typ" ( line 2 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 9)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "*")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "and" , Space ]) , FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "I.a")) , NormalArg (Ident (Identifier "i")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-00.typ" ( line 6 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), numbering(numbering: "*", numbers: (0)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (0, 0)), text(body: [ for ]), text(body: [0]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (1)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (1, 1)), text(body: [ for ]), text(body: [1]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (2)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (2, 2)), text(body: [ for ]), text(body: [2]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (3)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (3, 3)), text(body: [ for ]), text(body: [3]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (4)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (4, 4)), text(body: [ for ]), text(body: [4]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (5)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (5, 5)), text(body: [ for ]), text(body: [5]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (6)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (6, 6)), text(body: [ for ]), text(body: [6]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (7)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (7, 7)), text(body: [ for ]), text(body: [7]), text(body: [ ]), linebreak(), numbering(numbering: "*", numbers: (8)), text(body: [ and ]), numbering(numbering: "I.a", numbers: (8, 8)), text(body: [ for ]), text(body: [8]), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/numbering-00.typ0000644000000000000000000000014107346545000016711 0ustar0000000000000000#for i in range(0, 9) { numbering("*", i) [ and ] numbering("I.a", i, i) [ for #i \ ] } typst-0.8.0.2/test/typ/meta/numbering-01.out0000644000000000000000000001633007346545000016714 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/numbering-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/numbering-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/numbering-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/numbering-01.typ" ( line 2 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 4)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "A")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-01.typ" ( line 4 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , SoftBreak , Ellipsis , Space , HardBreak , Code "typ/meta/numbering-01.typ" ( line 7 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 26)) , NormalArg (Literal (Int 30)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "A")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-01.typ" ( line 9 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , SoftBreak , Ellipsis , Space , HardBreak , Code "typ/meta/numbering-01.typ" ( line 12 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 702)) , NormalArg (Literal (Int 706)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "A")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-01.typ" ( line 14 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), numbering(numbering: "A", numbers: (0)), text(body: [ for ]), text(body: [0]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (1)), text(body: [ for ]), text(body: [1]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (2)), text(body: [ for ]), text(body: [2]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (3)), text(body: [ for ]), text(body: [3]), text(body: [ ]), linebreak(), text(body: [ … ]), linebreak(), numbering(numbering: "A", numbers: (26)), text(body: [ for ]), text(body: [26]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (27)), text(body: [ for ]), text(body: [27]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (28)), text(body: [ for ]), text(body: [28]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (29)), text(body: [ for ]), text(body: [29]), text(body: [ ]), linebreak(), text(body: [ … ]), linebreak(), numbering(numbering: "A", numbers: (702)), text(body: [ for ]), text(body: [702]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (703)), text(body: [ for ]), text(body: [703]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (704)), text(body: [ for ]), text(body: [704]), text(body: [ ]), linebreak(), numbering(numbering: "A", numbers: (705)), text(body: [ for ]), text(body: [705]), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/numbering-01.typ0000644000000000000000000000031207346545000016712 0ustar0000000000000000#for i in range(0, 4) { numbering("A", i) [ for #i \ ] } ... \ #for i in range(26, 30) { numbering("A", i) [ for #i \ ] } ... \ #for i in range(702, 706) { numbering("A", i) [ for #i \ ] } typst-0.8.0.2/test/typ/meta/numbering-02.out0000644000000000000000000001116307346545000016714 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/numbering-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/numbering-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/numbering-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/numbering-02.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) ]) , SoftBreak , Code "typ/meta/numbering-02.typ" ( line 3 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 9)) , NormalArg (Literal (Int 21)) , KeyValArg (Identifier "step") (Literal (Int 2)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\1488.")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "\1506\1489\1493\1512" , Space , Code "typ/meta/numbering-02.typ" ( line 5 , column 11 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], lang: "he"), numbering(numbering: "א.", numbers: (9)), text(body: [ עבור ], lang: "he"), text(body: [9], lang: "he"), text(body: [ ], lang: "he"), linebreak(), numbering(numbering: "א.", numbers: (11)), text(body: [ עבור ], lang: "he"), text(body: [11], lang: "he"), text(body: [ ], lang: "he"), linebreak(), numbering(numbering: "א.", numbers: (13)), text(body: [ עבור ], lang: "he"), text(body: [13], lang: "he"), text(body: [ ], lang: "he"), linebreak(), numbering(numbering: "א.", numbers: (15)), text(body: [ עבור ], lang: "he"), text(body: [15], lang: "he"), text(body: [ ], lang: "he"), linebreak(), numbering(numbering: "א.", numbers: (17)), text(body: [ עבור ], lang: "he"), text(body: [17], lang: "he"), text(body: [ ], lang: "he"), linebreak(), numbering(numbering: "א.", numbers: (19)), text(body: [ עבור ], lang: "he"), text(body: [19], lang: "he"), text(body: [ ], lang: "he"), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/numbering-02.typ0000644000000000000000000000014507346545000016717 0ustar0000000000000000#set text(lang: "he") #for i in range(9, 21, step: 2) { numbering("א.", i) [ עבור #i \ ] } typst-0.8.0.2/test/typ/meta/numbering-03.out0000644000000000000000000001344507346545000016722 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/numbering-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/numbering-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/numbering-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/numbering-03.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "zh")) ]) , SoftBreak , Code "typ/meta/numbering-03.typ" ( line 3 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 9)) , NormalArg (Literal (Int 21)) , KeyValArg (Identifier "step") (Literal (Int 2)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\19968")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "and" , Space ]) , FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\22777")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-03.typ" ( line 7 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], lang: "zh"), numbering(numbering: "一", numbers: (9)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (9)), text(body: [ for ], lang: "zh"), text(body: [9], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), numbering(numbering: "一", numbers: (11)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (11)), text(body: [ for ], lang: "zh"), text(body: [11], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), numbering(numbering: "一", numbers: (13)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (13)), text(body: [ for ], lang: "zh"), text(body: [13], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), numbering(numbering: "一", numbers: (15)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (15)), text(body: [ for ], lang: "zh"), text(body: [15], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), numbering(numbering: "一", numbers: (17)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (17)), text(body: [ for ], lang: "zh"), text(body: [17], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), numbering(numbering: "一", numbers: (19)), text(body: [ and ], lang: "zh"), numbering(numbering: "壹", numbers: (19)), text(body: [ for ], lang: "zh"), text(body: [19], lang: "zh"), text(body: [ ], lang: "zh"), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/numbering-03.typ0000644000000000000000000000017607346545000016724 0ustar0000000000000000#set text(lang: "zh") #for i in range(9,21, step: 2){ numbering("一", i) [ and ] numbering("壹", i) [ for #i \ ] } typst-0.8.0.2/test/typ/meta/numbering-04.out0000644000000000000000000002162007346545000016715 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/numbering-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/numbering-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/numbering-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/numbering-04.typ" ( line 2 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 4)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\12452")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "(" , Text "or" , Space ]) , FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\12356")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Text ")" , Space , Text "for" , Space , Code "typ/meta/numbering-04.typ" ( line 6 , column 11 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , SoftBreak , Ellipsis , Space , HardBreak , Code "typ/meta/numbering-04.typ" ( line 9 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 47)) , NormalArg (Literal (Int 51)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\12452")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "(" , Text "or" , Space ]) , FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\12356")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Text ")" , Space , Text "for" , Space , Code "typ/meta/numbering-04.typ" ( line 13 , column 11 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , SoftBreak , Ellipsis , Space , HardBreak , Code "typ/meta/numbering-04.typ" ( line 16 , column 2 ) (For (BasicBind (Just (Identifier "i"))) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 2256)) , NormalArg (Literal (Int 2260)) ]) (Block (CodeBlock [ FuncCall (Ident (Identifier "numbering")) [ NormalArg (Literal (String "\12452")) , NormalArg (Ident (Identifier "i")) ] , Block (Content [ Space , Text "for" , Space , Code "typ/meta/numbering-04.typ" ( line 18 , column 10 ) (Ident (Identifier "i")) , Space , HardBreak ]) ]))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), numbering(numbering: "イ", numbers: (0)), text(body: [ (or ]), numbering(numbering: "い", numbers: (0)), text(body: [) for ]), text(body: [0]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (1)), text(body: [ (or ]), numbering(numbering: "い", numbers: (1)), text(body: [) for ]), text(body: [1]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (2)), text(body: [ (or ]), numbering(numbering: "い", numbers: (2)), text(body: [) for ]), text(body: [2]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (3)), text(body: [ (or ]), numbering(numbering: "い", numbers: (3)), text(body: [) for ]), text(body: [3]), text(body: [ ]), linebreak(), text(body: [ … ]), linebreak(), numbering(numbering: "イ", numbers: (47)), text(body: [ (or ]), numbering(numbering: "い", numbers: (47)), text(body: [) for ]), text(body: [47]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (48)), text(body: [ (or ]), numbering(numbering: "い", numbers: (48)), text(body: [) for ]), text(body: [48]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (49)), text(body: [ (or ]), numbering(numbering: "い", numbers: (49)), text(body: [) for ]), text(body: [49]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (50)), text(body: [ (or ]), numbering(numbering: "い", numbers: (50)), text(body: [) for ]), text(body: [50]), text(body: [ ]), linebreak(), text(body: [ … ]), linebreak(), numbering(numbering: "イ", numbers: (2256)), text(body: [ for ]), text(body: [2256]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (2257)), text(body: [ for ]), text(body: [2257]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (2258)), text(body: [ for ]), text(body: [2258]), text(body: [ ]), linebreak(), numbering(numbering: "イ", numbers: (2259)), text(body: [ for ]), text(body: [2259]), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/meta/numbering-04.typ0000644000000000000000000000042407346545000016721 0ustar0000000000000000#for i in range(0, 4) { numbering("イ", i) [ (or ] numbering("い", i) [) for #i \ ] } ... \ #for i in range(47, 51) { numbering("イ", i) [ (or ] numbering("い", i) [) for #i \ ] } ... \ #for i in range(2256, 2260) { numbering("イ", i) [ for #i \ ] } typst-0.8.0.2/test/typ/meta/numbering-05.out0000644000000000000000000000002107346545000016706 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/numbering-05.typ0000644000000000000000000000010107346545000016712 0ustar0000000000000000// Error: 17-19 number must be at least zero #numbering("1", -1) typst-0.8.0.2/test/typ/meta/outline-00.out0000644000000000000000000001677007346545000016414 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/outline-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/outline-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/outline-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/outline-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ NormalArg (Literal (String "a7")) , KeyValArg (Identifier "margin") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "numbering") (Literal (String "1")) ]) , SoftBreak , Code "typ/meta/outline-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "(1/a)")) ]) , SoftBreak , Code "typ/meta/outline-00.typ" ( line 4 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 1)) ])) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 12.0 Pt)) ])) , SoftBreak , Code "typ/meta/outline-00.typ" ( line 5 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 2)) ])) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 10.0 Pt)) ])) , ParBreak , Code "typ/meta/outline-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak , Heading 1 [ Text "Einleitung" ] , Code "typ/meta/outline-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 12)) ]) , ParBreak , Heading 1 [ Text "Analyse" ] , Code "typ/meta/outline-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 10)) ]) , ParBreak , Code "typ/meta/outline-00.typ" ( line 15 , column 2 ) (Block (Content [ SoftBreak , Code "typ/meta/outline-00.typ" ( line 16 , column 4 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "outlined") (Literal (Boolean False)) ]) , SoftBreak , Heading 2 [ Text "Methodik" ] , Code "typ/meta/outline-00.typ" ( line 18 , column 4 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 6)) ]) , ParBreak ])) , ParBreak , Heading 2 [ Text "Verarbeitung" ] , Code "typ/meta/outline-00.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 4)) ]) , ParBreak , Heading 2 [ Text "Programmierung" ] , RawBlock "rust" "fn main() {\n panic!(\"in the disco\");\n}\n" , ParBreak , Heading 4 [ Text "Deep" , Space , Text "Stuff" ] , Text "Ok" , Space , Ellipsis , ParBreak , Code "typ/meta/outline-00.typ" ( line 34 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "(I)")) ]) , ParBreak , Heading 1 [ Code "typ/meta/outline-00.typ" ( line 36 , column 4 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "blue")) , BlockArg [ Text "Zusammen" ] ]) , Text "fassung" ] , Code "typ/meta/outline-00.typ" ( line 37 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 10)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), outline(), parbreak(), heading(body: text(body: [Einleitung]), level: 1, numbering: "(1/a)"), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), parbreak(), heading(body: text(body: [Analyse]), level: 1, numbering: "(1/a)"), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), parbreak(), text(body: [ ]), text(body: [ ]), heading(body: text(body: [Methodik]), level: 2, numbering: "(1/a)", outlined: false), text(body: [Lorem ipsum dolor sit amet, consectetur]), parbreak(), parbreak(), heading(body: text(body: [Verarbeitung]), level: 2, numbering: "(1/a)", outlined: false), text(body: [Lorem ipsum dolor sit]), parbreak(), heading(body: text(body: [Programmierung]), level: 2, numbering: "(1/a)", outlined: false), raw(block: true, lang: "rust", text: "fn main() {\n panic!(\"in the disco\");\n}\n"), parbreak(), heading(body: text(body: [Deep Stuff]), level: 4, numbering: "(1/a)", outlined: false), text(body: [Ok …]), parbreak(), parbreak(), heading(body: { text(body: text(body: [Zusammen]), color: rgb(0%,45%,85%,100%)), text(body: [fassung]) }, level: 1, numbering: "(I)", outlined: false), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), parbreak() }) typst-0.8.0.2/test/typ/meta/outline-00.typ0000644000000000000000000000075307346545000016413 0ustar0000000000000000#set page("a7", margin: 20pt, numbering: "1") #set heading(numbering: "(1/a)") #show heading.where(level: 1): set text(12pt) #show heading.where(level: 2): set text(10pt) #outline() = Einleitung #lorem(12) = Analyse #lorem(10) #[ #set heading(outlined: false) == Methodik #lorem(6) ] == Verarbeitung #lorem(4) == Programmierung ```rust fn main() { panic!("in the disco"); } ``` ==== Deep Stuff Ok ... #set heading(numbering: "(I)") = #text(blue)[Zusammen]fassung #lorem(10) typst-0.8.0.2/test/typ/meta/query-before-after-00.out0000644000000000000000000002040707346545000020431 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/query-before-after-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/query-before-after-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/query-before-after-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/query-before-after-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a7")) , KeyValArg (Identifier "numbering") (Literal (String "1 / 1")) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) ) , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak , Code "typ/meta/query-before-after-00.typ" ( line 8 , column 2 ) (Show (Just (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 1)) , KeyValArg (Identifier "outlined") (Literal (Boolean True)) ])) (FuncExpr [ NormalParam (Identifier "it") ] (Block (Content [ SoftBreak , Code "typ/meta/query-before-after-00.typ" ( line 9 , column 4 ) (Ident (Identifier "it")) , ParBreak , Code "typ/meta/query-before-after-00.typ" ( line 11 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 12.0 Pt)) , KeyValArg (Identifier "weight") (Literal (String "regular")) ]) , SoftBreak , Code "typ/meta/query-before-after-00.typ" ( line 12 , column 4 ) (FuncCall (Ident (Identifier "outline")) [ KeyValArg (Identifier "title") (Literal (String "Chapter outline")) , KeyValArg (Identifier "indent") (Literal (Boolean True)) , KeyValArg (Identifier "target") (FuncCall (FieldAccess (Ident (Identifier "before")) (FuncCall (FieldAccess (Ident (Identifier "after")) (FuncCall (FieldAccess (Ident (Identifier "or")) (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 1)) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 2)) ]) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) , KeyValArg (Identifier "inclusive") (Literal (Boolean True)) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "after")) (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "level") (Literal (Int 1)) , KeyValArg (Identifier "outlined") (Literal (Boolean True)) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) , KeyValArg (Identifier "inclusive") (Literal (Boolean False)) ]) , KeyValArg (Identifier "inclusive") (Literal (Boolean False)) ]) ]) , ParBreak ])))) , ParBreak , Code "typ/meta/query-before-after-00.typ" ( line 28 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "outlined") (Literal (Boolean True)) , KeyValArg (Identifier "numbering") (Literal (String "1.")) ]) , ParBreak , Heading 1 [ Text "Section" , Space , Text "1" ] , Heading 2 [ Text "Subsection" , Space , Text "1" ] , Heading 2 [ Text "Subsection" , Space , Text "2" ] , Heading 3 [ Text "Subsubsection" , Space , Text "1" ] , Heading 3 [ Text "Subsubsection" , Space , Text "2" ] , Heading 2 [ Text "Subsection" , Space , Text "3" ] , Heading 1 [ Text "Section" , Space , Text "2" ] , Heading 2 [ Text "Subsection" , Space , Text "1" ] , Heading 2 [ Text "Subsection" , Space , Text "2" ] , Heading 1 [ Text "Section" , Space , Text "3" ] , Heading 2 [ Text "Subsection" , Space , Text "1" ] , Heading 2 [ Text "Subsection" , Space , Text "2" ] , Heading 3 [ Text "Subsubsection" , Space , Text "1" ] , Heading 3 [ Text "Subsubsection" , Space , Text "2" ] , Heading 3 [ Text "Subsubsection" , Space , Text "3" ] , Heading 2 [ Text "Subsection" , Space , Text "3" ] ] "typ/meta/query-before-after-00.typ" (line 12, column 4): Method "location" is not yet implemented or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/query-before-after-00.typ0000644000000000000000000000153107346545000020433 0ustar0000000000000000#set page( paper: "a7", numbering: "1 / 1", margin: (bottom: 1cm, rest: 0.5cm), ) #show heading.where(level: 1, outlined: true): it => [ #it #set text(size: 12pt, weight: "regular") #outline( title: "Chapter outline", indent: true, target: heading .where(level: 1) .or(heading.where(level: 2)) .after(it.location(), inclusive: true) .before( heading .where(level: 1, outlined: true) .after(it.location(), inclusive: false), inclusive: false, ) ) ] #set heading(outlined: true, numbering: "1.") = Section 1 == Subsection 1 == Subsection 2 === Subsubsection 1 === Subsubsection 2 == Subsection 3 = Section 2 == Subsection 1 == Subsection 2 = Section 3 == Subsection 1 == Subsection 2 === Subsubsection 1 === Subsubsection 2 === Subsubsection 3 == Subsection 3 typst-0.8.0.2/test/typ/meta/query-before-after-01.out0000644000000000000000000001575207346545000020441 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/query-before-after-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/query-before-after-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/query-before-after-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , ParBreak , Code "typ/meta/query-before-after-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a7")) , KeyValArg (Identifier "numbering") (Literal (String "1 / 1")) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) ) , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak , Code "typ/meta/query-before-after-01.typ" ( line 9 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "outlined") (Literal (Boolean True)) , KeyValArg (Identifier "numbering") (Literal (String "1.")) ]) , ParBreak , Comment , Code "typ/meta/query-before-after-01.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "loc") ] (Block (Content [ SoftBreak , Text "Non" , Text "-" , Text "outlined" , Space , Text "elements" , Text ":" , SoftBreak , Code "typ/meta/query-before-after-01.typ" ( line 14 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (Ident (Identifier "query")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "and")) (FuncCall (Ident (Identifier "selector")) [ NormalArg (Ident (Identifier "heading")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "where")) (Ident (Identifier "heading"))) [ KeyValArg (Identifier "outlined") (Literal (Boolean False)) ]) ]) , NormalArg (Ident (Identifier "loc")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "it") ] (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "it")))) ])) [ NormalArg (Literal (String ", ")) ]) , ParBreak ]))) ]) , ParBreak , Code "typ/meta/query-before-after-01.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ NormalArg (Literal (String "A")) , KeyValArg (Identifier "outlined") (Literal (Boolean False)) ]) , SoftBreak , Code "typ/meta/query-before-after-01.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ NormalArg (Literal (String "B")) , KeyValArg (Identifier "outlined") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/meta/query-before-after-01.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ NormalArg (Literal (String "C")) , KeyValArg (Identifier "outlined") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/meta/query-before-after-01.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "heading")) [ NormalArg (Literal (String "D")) , KeyValArg (Identifier "outlined") (Literal (Boolean False)) ]) , ParBreak ] --- evaluated --- document(body: { parbreak(), parbreak(), parbreak(), locate(func: ), parbreak(), heading(body: [A], numbering: "1.", outlined: false), text(body: [ ]), heading(body: [B], numbering: "1.", outlined: true), text(body: [ ]), heading(body: [C], numbering: "1.", outlined: true), text(body: [ ]), heading(body: [D], numbering: "1.", outlined: false), parbreak() }) typst-0.8.0.2/test/typ/meta/query-before-after-01.typ0000644000000000000000000000067407346545000020443 0ustar0000000000000000 #set page( paper: "a7", numbering: "1 / 1", margin: (bottom: 1cm, rest: 0.5cm), ) #set heading(outlined: true, numbering: "1.") // This is purposefully an empty #locate(loc => [ Non-outlined elements: #(query(selector(heading).and(heading.where(outlined: false)), loc) .map(it => it.body).join(", ")) ]) #heading("A", outlined: false) #heading("B", outlined: true) #heading("C", outlined: true) #heading("D", outlined: false) typst-0.8.0.2/test/typ/meta/query-figure-00.out0000644000000000000000000002472107346545000017354 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/query-figure-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/query-figure-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/query-figure-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a7")) , KeyValArg (Identifier "numbering") (Literal (String "1 / 1")) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "bottom") , Literal (Numeric 1.0 Cm) ) , Reg ( Ident (Identifier "rest") , Literal (Numeric 0.5 Cm) ) ]) ]) , ParBreak , Code "typ/meta/query-figure-00.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "figure")) [ KeyValArg (Identifier "numbering") (Literal (String "I")) ]) , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 9 , column 2 ) (Show (Just (Ident (Identifier "figure"))) (Set (Ident (Identifier "image")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Percent)) ])) , ParBreak , Heading 1 [ Text "List" , Space , Text "of" , Space , Text "Figures" ] , Code "typ/meta/query-figure-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "elements"))) (FuncCall (Ident (Identifier "query")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "after")) (FuncCall (Ident (Identifier "selector")) [ NormalArg (Ident (Identifier "figure")) ])) [ NormalArg (Ident (Identifier "it")) ]) , NormalArg (Ident (Identifier "it")) ]) , For (BasicBind (Just (Identifier "it"))) (Ident (Identifier "elements")) (Block (Content [ SoftBreak , Text "Figure" , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 16 , column 6 ) (FuncCall (Ident (Identifier "numbering")) [ NormalArg (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "it"))) , SpreadArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "figure")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) ]) ]) , Text ":" , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 18 , column 6 ) (FieldAccess (Ident (Identifier "caption")) (Ident (Identifier "it"))) , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 19 , column 6 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "repeat")) [ BlockArg [ Text "." ] ]) ]) , SoftBreak , Code "typ/meta/query-figure-00.typ" ( line 20 , column 6 ) (FuncCall (FieldAccess (Ident (Identifier "first")) (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "page")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) ])) []) , Space , HardBreak ])) ]))) ]) , ParBreak , Code "typ/meta/query-figure-00.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/glacier.jpg")) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "Glacier" , Space , Text "melting" ])) ]) , ParBreak , Code "typ/meta/query-figure-00.typ" ( line 29 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ BlockArg [ Text "Just" , Space , Text "some" , Space , Text "stand" , Text "-" , Text "in" , Space , Text "text" ] ]) , KeyValArg (Identifier "kind") (Ident (Identifier "image")) , KeyValArg (Identifier "supplement") (Literal (String "Figure")) , KeyValArg (Identifier "caption") (Block (Content [ Text "Stand" , Text "-" , Text "in" , Space , Text "text" ])) ]) , ParBreak , Code "typ/meta/query-figure-00.typ" ( line 36 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "Tiger" , Space , Text "world" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ ]), parbreak(), heading(body: text(body: [List of Figures]), level: 1), locate(func: ), parbreak(), figure(body: image(source: "/assets/files/glacier.jpg"), caption: text(body: [Glacier melting]), numbering: "I"), parbreak(), figure(body: rect(body: text(body: [Just some stand-in text])), caption: text(body: [Stand-in text]), kind: , numbering: "I", supplement: "Figure"), parbreak(), figure(body: image(source: "/assets/files/tiger.jpg"), caption: text(body: [Tiger world]), numbering: "I"), parbreak() }) typst-0.8.0.2/test/typ/meta/query-figure-00.typ0000644000000000000000000000131607346545000017354 0ustar0000000000000000#set page( paper: "a7", numbering: "1 / 1", margin: (bottom: 1cm, rest: 0.5cm), ) #set figure(numbering: "I") #show figure: set image(width: 80%) = List of Figures #locate(it => { let elements = query(selector(figure).after(it), it) for it in elements [ Figure #numbering(it.numbering, ..counter(figure).at(it.location())): #it.caption #box(width: 1fr, repeat[.]) #counter(page).at(it.location()).first() \ ] }) #figure( image("/assets/files/glacier.jpg"), caption: [Glacier melting], ) #figure( rect[Just some stand-in text], kind: image, supplement: "Figure", caption: [Stand-in text], ) #figure( image("/assets/files/tiger.jpg"), caption: [Tiger world], ) typst-0.8.0.2/test/typ/meta/query-header-00.out0000644000000000000000000002267407346545000017330 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/query-header-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/query-header-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/query-header-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/query-header-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "paper") (Literal (String "a7")) , KeyValArg (Identifier "margin") (Dict [ Reg ( Ident (Identifier "y") , Literal (Numeric 1.0 Cm) ) , Reg ( Ident (Identifier "x") , Literal (Numeric 0.5 Cm) ) ]) , KeyValArg (Identifier "header") (Block (CodeBlock [ FuncCall (Ident (Identifier "smallcaps")) [ BlockArg [ Text "Typst" , Space , Text "Academy" ] ] , FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 1.0 Fr)) ] , FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "after"))) (FuncCall (Ident (Identifier "query")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "after")) (FuncCall (Ident (Identifier "selector")) [ NormalArg (Ident (Identifier "heading")) ])) [ NormalArg (Ident (Identifier "it")) ]) , NormalArg (Ident (Identifier "it")) ]) , Let (BasicBind (Just (Identifier "before"))) (FuncCall (Ident (Identifier "query")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "before")) (FuncCall (Ident (Identifier "selector")) [ NormalArg (Ident (Identifier "heading")) ])) [ NormalArg (Ident (Identifier "it")) ]) , NormalArg (Ident (Identifier "it")) ]) , Let (BasicBind (Just (Identifier "elem"))) (If [ ( Not (Equals (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "before"))) []) (Literal (Int 0))) , Block (CodeBlock [ FuncCall (FieldAccess (Ident (Identifier "last")) (Ident (Identifier "before"))) [] ]) ) , ( Not (Equals (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "after"))) []) (Literal (Int 0))) , Block (CodeBlock [ FuncCall (FieldAccess (Ident (Identifier "first")) (Ident (Identifier "after"))) [] ]) ) ]) , FuncCall (Ident (Identifier "emph")) [ NormalArg (FieldAccess (Ident (Identifier "body")) (Ident (Identifier "elem"))) ] ]))) ] ])) ]) , ParBreak , Code "typ/meta/query-header-00.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak , Heading 1 [ Text "Introduction" ] , Code "typ/meta/query-header-00.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 35)) ]) , ParBreak , Heading 1 [ Text "Background" ] , Code "typ/meta/query-header-00.typ" ( line 27 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 35)) ]) , ParBreak , Heading 1 [ Text "Approach" ] , Code "typ/meta/query-header-00.typ" ( line 30 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 60)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), outline(), parbreak(), heading(body: text(body: [Introduction]), level: 1), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), parbreak(), heading(body: text(body: [Background]), level: 1), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), parbreak(), heading(body: text(body: [Approach]), level: 1), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in]), parbreak() }) typst-0.8.0.2/test/typ/meta/query-header-00.typ0000644000000000000000000000075407346545000017330 0ustar0000000000000000#set page( paper: "a7", margin: (y: 1cm, x: 0.5cm), header: { smallcaps[Typst Academy] h(1fr) locate(it => { let after = query(selector(heading).after(it), it) let before = query(selector(heading).before(it), it) let elem = if before.len() != 0 { before.last() } else if after.len() != 0 { after.first() } emph(elem.body) }) } ) #outline() = Introduction #lorem(35) = Background #lorem(35) = Approach #lorem(60) typst-0.8.0.2/test/typ/meta/ref-00.out0000644000000000000000000000577107346545000015510 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/ref-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/ref-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/ref-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/ref-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (Literal (String "1.")) ]) , ParBreak , Heading 1 [ Text "Introduction" ] , Code "typ/meta/ref-00.typ" ( line 4 , column 16 ) (Label "intro") , SoftBreak , Text "See" , Space , Ref "setup" (Literal Auto) , Text "." , ParBreak , Heading 2 [ Text "Setup" ] , Code "typ/meta/ref-00.typ" ( line 7 , column 10 ) (Label "setup") , SoftBreak , Text "As" , Space , Text "seen" , Space , Text "in" , Space , Ref "intro" (Literal Auto) , Text "," , Space , Text "we" , Space , Text "proceed" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), heading(body: text(body: [Introduction]), level: 1, numbering: "1."), , text(body: [ See ]), ref(supplement: auto, target: ), text(body: [.]), parbreak(), heading(body: text(body: [Setup]), level: 2, numbering: "1."), , text(body: [ As seen in ]), ref(supplement: auto, target: ), text(body: [, we proceed.]), parbreak() }) typst-0.8.0.2/test/typ/meta/ref-00.typ0000644000000000000000000000016407346545000015504 0ustar0000000000000000#set heading(numbering: "1.") = Introduction See @setup. == Setup As seen in @intro, we proceed. typst-0.8.0.2/test/typ/meta/ref-01.out0000644000000000000000000000002107346545000015470 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/ref-01.typ0000644000000000000000000000007107346545000015502 0ustar0000000000000000// Error: 1-5 label does not exist in the document @foo typst-0.8.0.2/test/typ/meta/ref-02.out0000644000000000000000000000002107346545000015471 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/meta/ref-02.typ0000644000000000000000000000013607346545000015505 0ustar0000000000000000= First = Second // Error: 1-5 label occurs multiple times in the document @foo typst-0.8.0.2/test/typ/meta/ref-03.out0000644000000000000000000001511407346545000015503 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/ref-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/ref-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/ref-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , ParBreak , Code "typ/meta/ref-03.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "ref"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ If [ ( And (Not (Equals (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) (Literal None))) (Equals (FuncCall (FieldAccess (Ident (Identifier "func")) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it")))) []) (Ident (Identifier "figure"))) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "element"))) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) , Literal (String "[") , FieldAccess (Ident (Identifier "supplement")) (Ident (Identifier "element")) , Literal (String "-") , FuncCall (Ident (Identifier "str")) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (FieldAccess (Ident (Identifier "at")) (FieldAccess (Ident (Identifier "counter")) (Ident (Identifier "element")))) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "element"))) []) ])) [ NormalArg (Literal (Int 0)) ]) ] , Literal (String "]") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Ident (Identifier "it") ]) ) ] ])))) , ParBreak , Code "typ/meta/ref-03.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/cylinder.svg")) , KeyValArg (Identifier "height") (Literal (Numeric 3.0 Cm)) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "A" , Space , Text "sylinder" , Text "." ])) , KeyValArg (Identifier "supplement") (Literal (String "Fig")) ]) , Space , Code "typ/meta/ref-03.typ" ( line 21 , column 3 ) (Label "fig1") , ParBreak , Code "typ/meta/ref-03.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "height") (Literal (Numeric 3.0 Cm)) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "A" , Space , Text "tiger" , Text "." ])) , KeyValArg (Identifier "supplement") (Literal (String "Figg")) ]) , Space , Code "typ/meta/ref-03.typ" ( line 27 , column 3 ) (Label "fig2") , ParBreak , Code "typ/meta/ref-03.typ" ( line 29 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (Block (Content [ Equation True [ Text "A" , Text "=" , Text "1" ] ])) , KeyValArg (Identifier "kind") (Literal (String "equation")) , KeyValArg (Identifier "supplement") (Literal (String "Equa")) ]) , Space , Code "typ/meta/ref-03.typ" ( line 34 , column 3 ) (Label "eq1") , SoftBreak , Ref "fig1" (Literal Auto) , ParBreak , Ref "fig2" (Literal Auto) , ParBreak , Ref "eq1" (Literal Auto) , ParBreak ] "typ/meta/ref-03.typ" (line 34, column 3): Content does not have a method "element" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/ref-03.typ0000644000000000000000000000106707346545000015512 0ustar0000000000000000 #show ref: it => { if it.element != none and it.element.func() == figure { let element = it.element "[" element.supplement "-" str(element.counter.at(element.location()).at(0)) "]" // it } else { it } } #figure( image("/assets/files/cylinder.svg", height: 3cm), caption: [A sylinder.], supplement: "Fig", ) #figure( image("/assets/files/tiger.jpg", height: 3cm), caption: [A tiger.], supplement: "Figg", ) #figure( $ A = 1 $, kind: "equation", supplement: "Equa", ) @fig1 @fig2 @eq1 typst-0.8.0.2/test/typ/meta/ref-04.out0000644000000000000000000001457307346545000015514 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/ref-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/ref-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/ref-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/ref-04.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "heading")) [ KeyValArg (Identifier "numbering") (FuncExpr [ SinkParam (Just (Identifier "nums")) ] (Block (CodeBlock [ FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "pos")) (Ident (Identifier "nums"))) [])) [ NormalArg (Ident (Identifier "str")) ])) [ NormalArg (Literal (String ".")) ] ]))) , KeyValArg (Identifier "supplement") (Block (Content [ Text "Chapt" ])) ]) , ParBreak , Code "typ/meta/ref-04.typ" ( line 6 , column 2 ) (Show (Just (Ident (Identifier "ref"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ If [ ( And (Not (Equals (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) (Literal None))) (Equals (FuncCall (FieldAccess (Ident (Identifier "func")) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it")))) []) (Ident (Identifier "heading"))) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "element"))) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) , Literal (String "[") , FuncCall (Ident (Identifier "emph")) [ NormalArg (FieldAccess (Ident (Identifier "supplement")) (Ident (Identifier "element"))) ] , Literal (String "-") , FuncCall (Ident (Identifier "numbering")) [ NormalArg (FieldAccess (Ident (Identifier "numbering")) (Ident (Identifier "element"))) , SpreadArg (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (Ident (Identifier "counter")) [ NormalArg (Ident (Identifier "heading")) ])) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "element"))) []) ]) ] , Literal (String "]") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Ident (Identifier "it") ]) ) ] ])))) , ParBreak , Heading 1 [ Text "Introduction" ] , Code "typ/meta/ref-04.typ" ( line 19 , column 16 ) (Label "intro") , ParBreak , Heading 1 [ Text "Summary" ] , Code "typ/meta/ref-04.typ" ( line 21 , column 11 ) (Label "sum") , ParBreak , Heading 2 [ Text "Subsection" ] , Code "typ/meta/ref-04.typ" ( line 23 , column 15 ) (Label "sub") , ParBreak , Ref "intro" (Literal Auto) , ParBreak , Ref "sum" (Literal Auto) , ParBreak , Ref "sub" (Literal Auto) , ParBreak ] "typ/meta/ref-04.typ" (line 23, column 15): Content does not have a method "element" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/ref-04.typ0000644000000000000000000000067007346545000015512 0ustar0000000000000000#set heading(numbering: (..nums) => { nums.pos().map(str).join(".") }, supplement: [Chapt]) #show ref: it => { if it.element != none and it.element.func() == heading { let element = it.element "[" emph(element.supplement) "-" numbering(element.numbering, ..counter(heading).at(element.location())) "]" } else { it } } = Introduction = Summary == Subsection @intro @sum @sub typst-0.8.0.2/test/typ/meta/ref-05.out0000644000000000000000000001354607346545000015514 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/ref-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/ref-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/ref-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , ParBreak , Code "typ/meta/ref-05.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "ref"))) (FuncExpr [ NormalParam (Identifier "it") ] (Block (CodeBlock [ If [ ( Not (Equals (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) (Literal None)) , Block (CodeBlock [ If [ ( Equals (FuncCall (FieldAccess (Ident (Identifier "func")) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it")))) []) (Ident (Identifier "text")) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "element"))) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) , Literal (String "[") , Ident (Identifier "element") , Literal (String "]") ]) ) , ( Equals (FuncCall (FieldAccess (Ident (Identifier "func")) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it")))) []) (Ident (Identifier "underline")) , Block (CodeBlock [ Let (BasicBind (Just (Identifier "element"))) (FieldAccess (Ident (Identifier "element")) (Ident (Identifier "it"))) , Literal (String "{") , Ident (Identifier "element") , Literal (String "}") ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Ident (Identifier "it") ]) ) ] ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ Ident (Identifier "it") ]) ) ] ])))) , ParBreak , Ref "txt" (Literal Auto) , ParBreak , Text "Ref" , Space , Text "something" , Space , Text "unreferable" , Space , Code "typ/meta/ref-05.typ" ( line 25 , column 27 ) (Label "txt") , ParBreak , Ref "under" (Literal Auto) , SoftBreak , Code "typ/meta/ref-05.typ" ( line 28 , column 2 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ SoftBreak , Text "Some" , Space , Text "underline" , Space , Text "text" , Text "." , ParBreak ] ]) , Space , Code "typ/meta/ref-05.typ" ( line 30 , column 3 ) (Label "under") , ParBreak ] "typ/meta/ref-05.typ" (line 3, column 2): Content does not have a method "element" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/ref-05.typ0000644000000000000000000000062007346545000015506 0ustar0000000000000000 #show ref: it => { if it.element != none { if it.element.func() == text { let element = it.element "[" element "]" } else if it.element.func() == underline { let element = it.element "{" element "}" } else { it } } else { it } } @txt Ref something unreferable @under #underline[ Some underline text. ] typst-0.8.0.2/test/typ/meta/state-00.out0000644000000000000000000001077707346545000016056 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/state-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/state-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/state-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/state-00.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "s"))) (FuncCall (Ident (Identifier "state")) [ NormalArg (Literal (String "hey")) , NormalArg (Literal (String "a")) ])) , SoftBreak , Code "typ/meta/state-00.typ" ( line 3 , column 2 ) (LetFunc (Identifier "double") [ NormalParam (Identifier "it") ] (Times (Literal (Int 2)) (Ident (Identifier "it")))) , ParBreak , Code "typ/meta/state-00.typ" ( line 5 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "s"))) [ NormalArg (Ident (Identifier "double")) ]) , SoftBreak , Code "typ/meta/state-00.typ" ( line 6 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "s"))) [ NormalArg (Ident (Identifier "double")) ]) , SoftBreak , Equation True [ Text "2" , Text "+" , Text "3" ] , SoftBreak , Code "typ/meta/state-00.typ" ( line 8 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "s"))) [ NormalArg (Ident (Identifier "double")) ]) , ParBreak , Text "Is" , Text ":" , Space , Code "typ/meta/state-00.typ" ( line 10 , column 6 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "s"))) []) , Text "," , SoftBreak , Text "Was" , Text ":" , Space , Code "typ/meta/state-00.typ" ( line 11 , column 7 ) (FuncCall (Ident (Identifier "locate")) [ NormalArg (FuncExpr [ NormalParam (Identifier "location") ] (Block (CodeBlock [ Let (BasicBind (Just (Identifier "it"))) (FuncCall (FieldAccess (Ident (Identifier "first")) (FuncCall (Ident (Identifier "query")) [ NormalArg (FieldAccess (Ident (Identifier "equation")) (Ident (Identifier "math"))) , NormalArg (Ident (Identifier "location")) ])) []) , FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "s"))) [ NormalArg (FuncCall (FieldAccess (Ident (Identifier "location")) (Ident (Identifier "it"))) []) ] ]))) ]) , Text "." , ParBreak ] "typ/meta/state-00.typ" (line 5, column 2): Content does not have a method "update" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/state-00.typ0000644000000000000000000000036007346545000016046 0ustar0000000000000000#let s = state("hey", "a") #let double(it) = 2 * it #s.update(double) #s.update(double) $ 2 + 3 $ #s.update(double) Is: #s.display(), Was: #locate(location => { let it = query(math.equation, location).first() s.at(it.location()) }). typst-0.8.0.2/test/typ/meta/state-01.out0000644000000000000000000001763107346545000016053 0ustar0000000000000000--- parse tree --- [ Code "typ/meta/state-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/meta/state-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/meta/state-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/meta/state-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , SoftBreak , Code "typ/meta/state-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , ParBreak , Code "typ/meta/state-01.typ" ( line 5 , column 2 ) (Let (BasicBind (Just (Identifier "ls"))) (FuncCall (Ident (Identifier "state")) [ NormalArg (Literal (String "lorem")) , NormalArg (FuncCall (FieldAccess (Ident (Identifier "split")) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 1000)) ])) [ NormalArg (Literal (String ".")) ]) ])) , SoftBreak , Code "typ/meta/state-01.typ" ( line 6 , column 2 ) (LetFunc (Identifier "loremum") [ NormalParam (Identifier "count") ] (Block (CodeBlock [ FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "ls"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "list") ] (Plus (FuncCall (FieldAccess (Ident (Identifier "trim")) (FuncCall (FieldAccess (Ident (Identifier "join")) (FuncCall (FieldAccess (Ident (Identifier "slice")) (Ident (Identifier "list"))) [ NormalArg (Literal (Int 0)) , NormalArg (Ident (Identifier "count")) ])) [ NormalArg (Literal (String ".")) ])) []) (Literal (String ".")))) ] , FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "ls"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "list") ] (FuncCall (FieldAccess (Ident (Identifier "slice")) (Ident (Identifier "list"))) [ NormalArg (Ident (Identifier "count")) ])) ] ]))) , ParBreak , Code "typ/meta/state-01.typ" ( line 11 , column 2 ) (Let (BasicBind (Just (Identifier "fs"))) (FuncCall (Ident (Identifier "state")) [ NormalArg (Literal (String "fader")) , NormalArg (Ident (Identifier "red")) ])) , SoftBreak , Code "typ/meta/state-01.typ" ( line 12 , column 2 ) (LetFunc (Identifier "trait") [ NormalParam (Identifier "title") ] (FuncCall (Ident (Identifier "block")) [ BlockArg [ SoftBreak , Code "typ/meta/state-01.typ" ( line 13 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "display")) (Ident (Identifier "fs"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "color") ] (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "color")) , BlockArg [ SoftBreak , Strong [ Code "typ/meta/state-01.typ" ( line 14 , column 7 ) (Ident (Identifier "title")) , Text ":" ] , Space , Code "typ/meta/state-01.typ" ( line 14 , column 16 ) (FuncCall (Ident (Identifier "loremum")) [ NormalArg (Literal (Int 1)) ]) , ParBreak ] ])) ]) , SoftBreak , Code "typ/meta/state-01.typ" ( line 16 , column 4 ) (FuncCall (FieldAccess (Ident (Identifier "update")) (Ident (Identifier "fs"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "color") ] (FuncCall (FieldAccess (Ident (Identifier "lighten")) (Ident (Identifier "color"))) [ NormalArg (Literal (Numeric 30.0 Percent)) ])) ]) , ParBreak ] ])) , ParBreak , Code "typ/meta/state-01.typ" ( line 19 , column 2 ) (FuncCall (Ident (Identifier "trait")) [ BlockArg [ Text "Boldness" ] ]) , SoftBreak , Code "typ/meta/state-01.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "trait")) [ BlockArg [ Text "Adventure" ] ]) , SoftBreak , Code "typ/meta/state-01.typ" ( line 21 , column 2 ) (FuncCall (Ident (Identifier "trait")) [ BlockArg [ Text "Fear" ] ]) , SoftBreak , Code "typ/meta/state-01.typ" ( line 22 , column 2 ) (FuncCall (Ident (Identifier "trait")) [ BlockArg [ Text "Anger" ] ]) , ParBreak ] "typ/meta/state-01.typ" (line 13, column 4): Content does not have a method "display" or FieldAccess requires a dictionary typst-0.8.0.2/test/typ/meta/state-01.typ0000644000000000000000000000071207346545000016050 0ustar0000000000000000#set page(width: 200pt) #set text(8pt) #let ls = state("lorem", lorem(1000).split(".")) #let loremum(count) = { ls.display(list => list.slice(0, count).join(".").trim() + ".") ls.update(list => list.slice(count)) } #let fs = state("fader", red) #let trait(title) = block[ #fs.display(color => text(fill: color)[ *#title:* #loremum(1) ]) #fs.update(color => color.lighten(30%)) ] #trait[Boldness] #trait[Adventure] #trait[Fear] #trait[Anger] typst-0.8.0.2/test/typ/regression/addons/0000755000000000000000000000000007346545000016456 5ustar0000000000000000typst-0.8.0.2/test/typ/regression/addons/example.out0000644000000000000000000000372307346545000020647 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/addons/example.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/addons/example.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/addons/example.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/addons/example.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "utf8string"))) (FuncCall (Ident (Identifier "read")) [ NormalArg (Literal (String "../something.txt")) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak() }) typst-0.8.0.2/test/typ/regression/addons/example.typ0000644000000000000000000000005307346545000020645 0ustar0000000000000000#let utf8string = read("../something.txt") typst-0.8.0.2/test/typ/regression/0000755000000000000000000000000007346545000015206 5ustar0000000000000000typst-0.8.0.2/test/typ/regression/issue1.out0000644000000000000000000000446307346545000017157 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue1.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue1.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue1.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue1.typ" ( line 2 , column 2 ) (LetFunc (Identifier "foo") [ NormalParam (Identifier "x") ] (Block (CodeBlock [ Return (Just (Array [ Spr (Ident (Identifier "x")) , Reg (Literal (Int 5)) ])) ]))) , SoftBreak , Code "typ/regression/issue1.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "foo")) [ NormalArg (Array [ Reg (Literal (Int 3)) , Reg (Literal (Int 4)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [(3, 4, 5)]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue1.typ0000644000000000000000000000007107346545000017153 0ustar0000000000000000#( let foo(x) = { return (..x, 5); } ) #foo((3,4)) typst-0.8.0.2/test/typ/regression/issue12.out0000644000000000000000000000414207346545000017233 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue12.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue12.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue12.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "he" , Quote '\'' , Strong [ Text "llo" , Space , Text "World" ] , ParBreak , Text "l\8217" , Strong [ Text "exactitude" ] , ParBreak , Text "a*b_c_e" , ParBreak ] --- evaluated --- document(body: { text(body: [ he’]), strong(body: text(body: [llo World])), parbreak(), text(body: [l’]), strong(body: text(body: [exactitude])), parbreak(), text(body: [a*b_c_e]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue12.typ0000644000000000000000000000005207346545000017234 0ustar0000000000000000he'*llo World* l’*exactitude* a*b_c_e typst-0.8.0.2/test/typ/regression/issue15.out0000644000000000000000000000454407346545000017244 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue15.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue15.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue15.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation False [ Code "typ/regression/issue15.typ" ( line 2 , column 2 ) (Ident (Identifier "dots")) ] , SoftBreak , Equation False [ Code "typ/regression/issue15.typ" ( line 3 , column 2 ) (FieldAccess (Ident (Identifier "l")) (Ident (Identifier "quote"))) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: text(body: […]), numbering: none), text(body: [ ]), math.equation(block: false, body: text(body: [“]), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue15.typ0000644000000000000000000000002107346545000017233 0ustar0000000000000000$dots$ $quote.l$ typst-0.8.0.2/test/typ/regression/issue17.out0000644000000000000000000002127207346545000017243 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue17.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue17.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue17.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation False [ MAttach Nothing (Just (MGroup Nothing Nothing [ Text "b" ])) (MGroup Nothing Nothing [ Text "n" , MGroup (Just "(") (Just ")") [ Text "a" ] ]) ] , ParBreak , Equation False [ MAttach (Just (Text "1")) Nothing (Text "a") , MGroup (Just "(") (Just ")") [ Text "x" ] ] , ParBreak , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ])) Nothing (Text "a") ] , ParBreak , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Just (Text "3")) (Code "typ/regression/issue17.typ" ( line 8 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Just (Text "3")) (Code "typ/regression/issue17.typ" ( line 10 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak , Equation False [ MAttach (Just (Text "3")) (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Code "typ/regression/issue17.typ" ( line 12 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak , Equation False [ MAttach (Just (Text "3")) (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Code "typ/regression/issue17.typ" ( line 14 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Just (Code "typ/regression/issue17.typ" ( line 16 , column 12 ) (Ident (Identifier "pi")))) (Code "typ/regression/issue17.typ" ( line 16 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak , Equation False [ MAttach (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ])) (Just (Code "typ/regression/issue17.typ" ( line 18 , column 6 ) (Ident (Identifier "pi")))) (Code "typ/regression/issue17.typ" ( line 18 , column 2 ) (Ident (Identifier "sum"))) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: math.attach(b: none, base: { text(body: [n]), math.lr(body: ({ [(], text(body: [a]), [)] })) }, t: text(body: [b])), numbering: none), parbreak(), math.equation(block: false, body: { math.attach(b: text(body: [1]), base: text(body: [a]), t: none), math.lr(body: ({ [(], text(body: [x]), [)] })) }, numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: { text(body: [f]), math.lr(body: ({ [(], text(body: [x]), [)] })) }, base: text(body: [a]), t: none), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: { text(body: [j]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [3])), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: { text(body: [j]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [3])), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: text(body: [3]), base: text(body: [∑]), t: { text(body: [j]), text(body: [=]), text(body: [0]) }), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: text(body: [3]), base: text(body: [∑]), t: { text(body: [j]), text(body: [=]), text(body: [0]) }), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: { text(body: [j]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [π])), numbering: none), parbreak(), math.equation(block: false, body: math.attach(b: { text(body: [j]), text(body: [=]), text(body: [0]) }, base: text(body: [∑]), t: text(body: [π])), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue17.typ0000644000000000000000000000020107346545000017235 0ustar0000000000000000$n(a)^(b)$ $a_1(x)$ $a_f(x)$ $sum_(j = 0)^3$ $sum^3_(j = 0)$ $sum_3^(j = 0)$ $sum^(j=0)_3$ $sum_(j=0)^pi$ $sum^pi_(j=0)$ typst-0.8.0.2/test/typ/regression/issue19.out0000644000000000000000000000602507346545000017244 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue19.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue19.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue19.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue19.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "nums"))) (Array [ Reg (Literal (Int 1)) , Reg (Literal None) , Reg (Literal (Int 2)) ])) , SoftBreak , Code "typ/regression/issue19.typ" ( line 3 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "map")) (Ident (Identifier "nums"))) [ NormalArg (FuncExpr [ NormalParam (Identifier "num") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "num")) (Literal None) , Block (CodeBlock [ Return (Just (Literal (Int 1))) ]) ) ] , Return (Just (Dict [ Reg ( FuncCall (Ident (Identifier "str")) [ NormalArg (Ident (Identifier "num")) ] , Literal (Int 1) ) ])) ]))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [((1: 1), 1, (2: 1))]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue19.typ0000644000000000000000000000015407346545000017246 0ustar0000000000000000#let nums = (1, none, 2) #nums.map(num => { if num == none { return 1 } return ((str(num)): 1) }) typst-0.8.0.2/test/typ/regression/issue2.out0000644000000000000000000000510207346545000017147 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue2.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue2.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue2.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation False [ Code "typ/regression/issue2.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "lr")) [ BlockArg [ Code "typ/regression/issue2.typ" ( line 2 , column 6 ) (FieldAccess (Ident (Identifier "alpha")) (Ident (Identifier "sym"))) , Code "typ/regression/issue2.typ" ( line 2 , column 16 ) (FieldAccess (Ident (Identifier "beta")) (Ident (Identifier "sym"))) ] ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: math.lr(body: ({ text(body: [α]), text(body: [β]) })), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue2.typ0000644000000000000000000000003207346545000017151 0ustar0000000000000000$lr(#sym.alpha#sym.beta)$ typst-0.8.0.2/test/typ/regression/issue20.out0000644000000000000000000000415307346545000017234 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue20.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue20.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue20.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue20.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Literal (String "\nThis is a\nmultiline string\n"))) , SoftBreak , Code "typ/regression/issue20.typ" ( line 6 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "len")) (Ident (Identifier "a"))) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [28]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue20.typ0000644000000000000000000000006107346545000017233 0ustar0000000000000000#let a = " This is a multiline string " #a.len() typst-0.8.0.2/test/typ/regression/issue21.out0000644000000000000000000000446107346545000017237 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue21.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue21.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue21.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue21.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "version")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ]) , SoftBreak , Code "typ/regression/issue21.typ" ( line 3 , column 2 ) (FuncCall (FieldAccess (Ident (Identifier "at")) (FuncCall (Ident (Identifier "version")) [ NormalArg (Literal (Int 1)) , NormalArg (Literal (Int 2)) ])) [ NormalArg (Literal (Int 3)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [1.2]), text(body: [ ]), text(body: [0]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue21.typ0000644000000000000000000000004207346545000017233 0ustar0000000000000000#version(1,2) #version(1,2).at(3) typst-0.8.0.2/test/typ/regression/issue21b.out0000644000000000000000000000506507346545000017402 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue21b.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue21b.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue21b.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue21b.typ" ( line 2 , column 2 ) (Import (Literal (String "issue19.typ")) (NoIdentifiers (Just (Identifier "zeke")))) , SoftBreak , Code "typ/regression/issue21b.typ" ( line 3 , column 2 ) (FieldAccess (Ident (Identifier "nums")) (Ident (Identifier "zeke"))) , SoftBreak , Code "typ/regression/issue21b.typ" ( line 4 , column 2 ) (Import (Literal (String "issue20.typ")) (SomeIdentifiers [ ( Identifier "a" , Just (Identifier "multiline") ) ])) , SoftBreak , Code "typ/regression/issue21b.typ" ( line 5 , column 2 ) (Ident (Identifier "multiline")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [(1, none, 2)]), text(body: [ ]), text(body: [ ]), text(body: [ This is a multiline string ]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue21b.typ0000644000000000000000000000013207346545000017375 0ustar0000000000000000#import "issue19.typ" as zeke #zeke.nums #import "issue20.typ": a as multiline #multiline typst-0.8.0.2/test/typ/regression/issue23.out0000644000000000000000000000511007346545000017231 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue23.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue23.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue23.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue23.typ" ( line 2 , column 2 ) (LetFunc (Identifier "fn") [] (Block (CodeBlock [ Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ] , If [ ( Literal (Boolean True) , Block (Content [ SoftBreak , Text "test" , ParBreak ]) ) , ( Literal (Boolean True) , Block (Content [ SoftBreak , Text "test2" , ParBreak ]) ) ] ]))) , ParBreak , Code "typ/regression/issue23.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "fn")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ test], fill: rgb(100%,25%,21%,100%)), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/regression/issue23.typ0000644000000000000000000000013307346545000017236 0ustar0000000000000000#let fn() = { set text(fill: red) if true [ test ] else [ test2 ] } #fn() typst-0.8.0.2/test/typ/regression/issue25.out0000644000000000000000000000513507346545000017242 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue25.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue25.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue25.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue25.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 5) ) ])) , SoftBreak , Code "typ/regression/issue25.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "key"))) (Literal (String "a"))) , SoftBreak , Code "typ/regression/issue25.typ" ( line 4 , column 2 ) (Block (CodeBlock [ Assign (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "x"))) [ NormalArg (Ident (Identifier "key")) ]) (Literal (Int 6)) ])) , SoftBreak , Code "typ/regression/issue25.typ" ( line 7 , column 2 ) (Ident (Identifier "x")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [(a: 6)]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue25.typ0000644000000000000000000000006707346545000017246 0ustar0000000000000000#let x = (a: 5) #let key = "a" #{ x.at(key) = 6 } #x typst-0.8.0.2/test/typ/regression/issue26.out0000644000000000000000000000446407346545000017247 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue26.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue26.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue26.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue26.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 4) ) ])) , SoftBreak , Code "typ/regression/issue26.typ" ( line 3 , column 2 ) (Block (CodeBlock [ Assign (FuncCall (FieldAccess (Ident (Identifier "at")) (Ident (Identifier "x"))) [ NormalArg (Literal (String "b")) ]) (Literal (Int 5)) ])) , SoftBreak , Code "typ/regression/issue26.typ" ( line 6 , column 2 ) (Ident (Identifier "x")) , ParBreak ] "typ/regression/issue26.typ" (line 3, column 2): Dictionary does not contain key "b" typst-0.8.0.2/test/typ/regression/issue26.typ0000644000000000000000000000005007346545000017237 0ustar0000000000000000#let x = (a: 4) #{ x.at("b") = 5 } #x typst-0.8.0.2/test/typ/regression/issue3.out0000644000000000000000000000466007346545000017160 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue3.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue3.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue3.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue3.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "alpha"))) (Dict [ Reg ( Ident (Identifier "named") , Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) , Reg ( Ident (Identifier "b") , Literal (Int 2) ) ] ) ])) , SoftBreak , Code "typ/regression/issue3.typ" ( line 3 , column 2 ) (Dict [ Spr (FieldAccess (Ident (Identifier "named")) (Ident (Identifier "alpha"))) , Reg ( Ident (Identifier "c") , Literal (Int 3) ) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [(a: 1, b: 2, c: 3)]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue3.typ0000644000000000000000000000006407346545000017157 0ustar0000000000000000#let alpha=(named:(a:1,b:2)) #(..alpha.named, c: 3) typst-0.8.0.2/test/typ/regression/issue41.out0000644000000000000000000000437207346545000017242 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue41.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue41.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue41.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation False [ MAttach (Just (Text "2")) Nothing (Code "typ/regression/issue41.typ" ( line 2 , column 2 ) (FieldAccess (Ident (Identifier "circle")) (Ident (Identifier "plus")))) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: math.attach(b: text(body: [2]), base: text(body: [⊕]), t: none), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue41.typ0000644000000000000000000000002007346545000017231 0ustar0000000000000000$plus.circle_2$ typst-0.8.0.2/test/typ/regression/issue43.out0000644000000000000000000000737007346545000017245 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue43.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue43.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue43.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue43.typ" ( line 2 , column 1 ) (Label "foo:bar") , ParBreak , Code "typ/regression/issue43.typ" ( line 4 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Literal (String "a"))) , ParBreak , Code "typ/regression/issue43.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "w"))) (FuncExpr [ NormalParam (Identifier "x") ] (Plus (Block (Content [ Equation False [ Text "x" ] ])) (Ident (Identifier "x"))))) , ParBreak , Code "typ/regression/issue43.typ" ( line 8 , column 2 ) (Let (BasicBind (Just (Identifier "x"))) (Block (Content [ RawInline "hello" ]))) , ParBreak , Code "typ/regression/issue43.typ" ( line 10 , column 2 ) (Let (BasicBind (Just (Identifier "a"))) (Dict [ Reg ( Ident (Identifier "a") , Literal (Int 1) ) ])) , ParBreak , Code "typ/regression/issue43.typ" ( line 12 , column 2 ) (Let (BasicBind (Just (Identifier "b"))) (Dict [ Reg ( Ident (Identifier "b") , Literal (Int 2) ) ])) , ParBreak , Code "typ/regression/issue43.typ" ( line 14 , column 2 ) (Let (BasicBind (Just (Identifier "c"))) (Dict [ Reg ( Ident (Identifier "c") , Literal (Int 3) ) ])) , ParBreak , Code "typ/regression/issue43.typ" ( line 16 , column 2 ) (Let (BasicBind (Just (Identifier "d"))) (Dict [ Spr (Ident (Identifier "a")) ])) , ParBreak , Code "typ/regression/issue43.typ" ( line 18 , column 2 ) (Let (BasicBind (Just (Identifier "e"))) (Dict [ Spr (Ident (Identifier "b")) ])) , ParBreak , Code "typ/regression/issue43.typ" ( line 20 , column 2 ) (Let (BasicBind (Just (Identifier "f"))) (Dict [])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), , parbreak(), parbreak(), parbreak(), parbreak(), parbreak(), parbreak(), parbreak(), parbreak(), parbreak(), parbreak() }) typst-0.8.0.2/test/typ/regression/issue43.typ0000644000000000000000000000025407346545000017244 0ustar0000000000000000 #let a = "a" #let w = x => $x$ + x #let x = `hello` #let a = (a:1) #let b = (:b:2) #let c = ( : c : 3) #let d = (:..a) #let e = ( : ..b) #let f = (:) typst-0.8.0.2/test/typ/regression/issue49.out0000644000000000000000000000357307346545000017254 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue49.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue49.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue49.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "\27979\35797\25991\26412" , Strong [ Text "\21152\31895" ] , Text "\12290" , ParBreak ] --- evaluated --- document(body: { text(body: [ 测试文本]), strong(body: text(body: [加粗])), text(body: [。]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue49.typ0000644000000000000000000000003007346545000017242 0ustar0000000000000000测试文本*加粗*。 typst-0.8.0.2/test/typ/regression/issue5.out0000644000000000000000000000372407346545000017162 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue5.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue5.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue5.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MGroup Nothing Nothing [ Text "3" , Text "!" ] ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { text(body: [3]), text(body: [!]) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue5.typ0000644000000000000000000000000707346545000017156 0ustar0000000000000000$ 3! $ typst-0.8.0.2/test/typ/regression/issue50.out0000644000000000000000000000357007346545000017241 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue50.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue50.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue50.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation False [ Text "1." ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: false, body: text(body: [1.]), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue50.typ0000644000000000000000000000000507346545000017234 0ustar0000000000000000$1.$ typst-0.8.0.2/test/typ/regression/issue54.out0000644000000000000000000001156007346545000017243 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue54.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue54.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue54.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MAttach (Just (MGroup Nothing Nothing [ Text "a" , MGroup (Just "(") (Just ")") [ Text "b" ] ])) Nothing (Text "c") , HardBreak , MAttach (Just (MGroup Nothing Nothing [ Text "a" ])) Nothing (Text "c") , MGroup (Just "(") (Just ")") [ Text "b" ] , HardBreak , MAttach (Just (MGroup Nothing Nothing [ Text "a" , Text "!" ])) Nothing (Text "c") , HardBreak , MAttach (Just (MGroup Nothing Nothing [ Text "a" , Text "!" ])) Nothing (Text "c") , MGroup (Just "(") (Just ")") [ Text "b" ] , HardBreak , MFrac (Text "a") (MAttach Nothing (Just (Text "n")) (MGroup Nothing Nothing [ Text "b" , Text "!" ])) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.attach(b: { text(body: [a]), math.lr(body: ({ [(], text(body: [b]), [)] })) }, base: text(body: [c]), t: none), linebreak(), math.attach(b: text(body: [a]), base: text(body: [c]), t: none), math.lr(body: ({ [(], text(body: [b]), [)] })), linebreak(), math.attach(b: { text(body: [a]), text(body: [!]) }, base: text(body: [c]), t: none), linebreak(), math.attach(b: { text(body: [a]), text(body: [!]) }, base: text(body: [c]), t: none), math.lr(body: ({ [(], text(body: [b]), [)] })), linebreak(), math.frac(denom: math.attach(b: none, base: { text(body: [b]), text(body: [!]) }, t: text(body: [n])), num: text(body: [a])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue54.typ0000644000000000000000000000006607346545000017247 0ustar0000000000000000$ c_a(b)\ c_(a)(b)\ c_a!\ c_a!(b)\ a/b!^n $ typst-0.8.0.2/test/typ/regression/issue55.out0000644000000000000000000000604507346545000017246 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue55.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue55.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue55.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ MGroup (Just "(") (Just ")") [ Text "b" ] , MFrac (MGroup (Just "(") (Just ")") [ Text "c" ]) (MGroup Nothing Nothing [ Text "d" ]) , Text "!" , MFrac (MGroup (Just "(") (Just ")") [ Text "a" ]) (MGroup Nothing Nothing [ Text "b" ]) , MGroup Nothing Nothing [ HardBreak , Text "!" ] , MFrac (MGroup (Just "(") (Just ")") [ Text "a" ]) (MGroup Nothing Nothing [ Text "b" ]) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: { math.lr(body: ({ [(], text(body: [b]), [)] })), math.frac(denom: text(body: [d]), num: text(body: [c])), text(body: [!]), math.frac(denom: text(body: [b]), num: text(body: [a])), linebreak(), text(body: [!]), math.frac(denom: text(body: [b]), num: text(body: [a])) }, numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue55.typ0000644000000000000000000000005107346545000017242 0ustar0000000000000000$ (b)(c)/(d) !(a)/(b) \ !(a)/(b) $ typst-0.8.0.2/test/typ/regression/issue59.out0000644000000000000000000000367107346545000017254 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue59.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue59.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue59.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue59.typ" ( line 2 , column 2 ) (If [ ( Not (Equals (Literal (Int 5)) (Label "foo")) , Block (CodeBlock [ Block (Content [ Text "a" ]) ]) ) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [a]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue59.typ0000644000000000000000000000002507346545000017247 0ustar0000000000000000#if 5 != {[a]} typst-0.8.0.2/test/typ/regression/issue6.out0000644000000000000000000000447707346545000017171 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue6.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue6.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue6.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Equation True [ Code "typ/regression/issue6.typ" ( line 2 , column 4 ) (Let (BasicBind (Just (Identifier "g"))) (Block (Content [ Equation False [ Text "3" ] ]))) , Code "typ/regression/issue6.typ" ( line 3 , column 2 ) (Ident (Identifier "g")) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), math.equation(block: true, body: math.equation(block: false, body: text(body: [3]), numbering: none), numbering: none), parbreak() }) typst-0.8.0.2/test/typ/regression/issue6.typ0000644000000000000000000000002407346545000017156 0ustar0000000000000000$ #let g = $3$ #g $ typst-0.8.0.2/test/typ/regression/issue60.out0000644000000000000000000000410507346545000017235 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue60.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue60.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue60.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue60.typ" ( line 2 , column 2 ) (Import (Literal (String "addons/example.typ")) (SomeIdentifiers [ ( Identifier "utf8string" , Nothing ) ])) , SoftBreak , Code "typ/regression/issue60.typ" ( line 3 , column 2 ) (Ident (Identifier "utf8string")) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [Anything! ]), parbreak() }) typst-0.8.0.2/test/typ/regression/issue60.typ0000644000000000000000000000006507346545000017243 0ustar0000000000000000#import "addons/example.typ": utf8string #utf8string typst-0.8.0.2/test/typ/regression/issue63.out0000644000000000000000000000654407346545000017251 0ustar0000000000000000--- parse tree --- [ Code "typ/regression/issue63.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/regression/issue63.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/regression/issue63.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/regression/issue63.typ" ( line 2 , column 2 ) (Show (Just (Ident (Identifier "link"))) (Ident (Identifier "underline"))) , ParBreak , BulletListItem [ Code "typ/regression/issue63.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://www.jetbrains.com/compose-multiplatform/")) , BlockArg [ Text "Compose" , Space , Text "Multiplatform" ] ]) , Space , Text "as" , Space , Text "front" , Text "-" , Text "end" , Space , Text "framework" ] , SoftBreak , BulletListItem [ Code "typ/regression/issue63.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "link")) [ NormalArg (Literal (String "https://github.com/InsertKoinIO/koin/")) , BlockArg [ Text "Koin" ] ]) , Space , Text "for" , Space , Text "Dependecy" , Space , Text "Injection" , ParBreak ] ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), list(children: ({ underline(body: link(body: text(body: [Compose Multiplatform]), dest: "https://www.jetbrains.com/compose-multiplatform/")), text(body: [ as front-end framework]) }, { underline(body: link(body: text(body: [Koin]), dest: "https://github.com/InsertKoinIO/koin/")), text(body: [ for Dependecy Injection]), parbreak() })) }) typst-0.8.0.2/test/typ/regression/issue63.typ0000644000000000000000000000032107346545000017241 0ustar0000000000000000#show link: underline - #link("https://www.jetbrains.com/compose-multiplatform/")[Compose Multiplatform] as front-end framework - #link("https://github.com/InsertKoinIO/koin/")[Koin] for Dependecy Injection typst-0.8.0.2/test/typ/regression/something.txt0000644000000000000000000000001207346545000017735 0ustar0000000000000000Anything! typst-0.8.0.2/test/typ/text/0000755000000000000000000000000007346545000014012 5ustar0000000000000000typst-0.8.0.2/test/typ/text/baseline-00.out0000644000000000000000000001263607346545000016552 0ustar0000000000000000--- parse tree --- [ Code "typ/text/baseline-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/baseline-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/baseline-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , EmDash , SoftBreak , Text "Hi" , Space , Code "typ/text/baseline-00.typ" ( line 5 , column 5 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 1.5 Em)) , BlockArg [ Text "You" ] ]) , Text "," , Space , Code "typ/text/baseline-00.typ" ( line 5 , column 24 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 0.75 Em)) , BlockArg [ Text "how" , Space , Text "are" , Space , Text "you?" ] ]) , ParBreak , Text "Our" , Space , Text "cockatoo" , Space , Text "was" , Space , Text "one" , Space , Text "of" , Space , Text "the" , SoftBreak , Code "typ/text/baseline-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "baseline") (Negated (Literal (Numeric 0.2 Em))) , BlockArg [ Code "typ/text/baseline-00.typ" ( line 8 , column 26 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "radius") (Literal (Numeric 2.0 Pt)) ]) ]) , Space , Text "first" ] ]) , SoftBreak , Code "typ/text/baseline-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "baseline") (Literal (Numeric 0.2 Em)) , BlockArg [ Text "birds" , Space , Code "typ/text/baseline-00.typ" ( line 9 , column 31 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "radius") (Literal (Numeric 2.0 Pt)) ]) ]) ] ]) , SoftBreak , Text "that" , Space , Text "ever" , Space , Text "learned" , Space , Text "to" , Space , Text "mimic" , Space , Text "a" , Space , Text "human" , Space , Text "voice" , Text "." , ParBreak , EmDash , SoftBreak , Text "Hey" , Space , Code "typ/text/baseline-00.typ" ( line 13 , column 6 ) (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "baseline") (Literal (Numeric 40.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 1.5 Cm)) ]) ]) , Space , Text "there!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ — Hi ]), text(body: text(body: [You]), size: 1.5em), text(body: [, ]), text(body: text(body: [how are you?]), size: 0.75em), parbreak(), text(body: [Our cockatoo was one of the ]), text(baseline: -0.2em, body: { box(body: circle(radius: 2.0pt)), text(body: [ first]) }), text(body: [ ]), text(baseline: 0.2em, body: { text(body: [birds ]), box(body: circle(radius: 2.0pt)) }), text(body: [ that ever learned to mimic a human voice.]), parbreak(), text(body: [— Hey ]), box(baseline: 40%, body: image(source: "/assets/files/tiger.jpg", width: 1.5cm)), text(body: [ there!]), parbreak() }) typst-0.8.0.2/test/typ/text/baseline-00.typ0000644000000000000000000000055207346545000016551 0ustar0000000000000000// Test baseline handling. --- Hi #text(1.5em)[You], #text(0.75em)[how are you?] Our cockatoo was one of the #text(baseline: -0.2em)[#box(circle(radius: 2pt)) first] #text(baseline: 0.2em)[birds #box(circle(radius: 2pt))] that ever learned to mimic a human voice. --- Hey #box(baseline: 40%, image("/assets/files/tiger.jpg", width: 1.5cm)) there! typst-0.8.0.2/test/typ/text/case-00.out0000644000000000000000000000603507346545000015677 0ustar0000000000000000--- parse tree --- [ Code "typ/text/case-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/case-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/case-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/case-00.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "memes"))) (Literal (String "ArE mEmEs gReAt?"))) , SoftBreak , Code "typ/text/case-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "lower")) [ NormalArg (Ident (Identifier "memes")) ]) , NormalArg (Literal (String "are memes great?")) ]) , SoftBreak , Code "typ/text/case-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "upper")) [ NormalArg (Ident (Identifier "memes")) ]) , NormalArg (Literal (String "ARE MEMES GREAT?")) ]) , SoftBreak , Code "typ/text/case-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (FuncCall (Ident (Identifier "upper")) [ NormalArg (Literal (String "\917\955\955\940\948\945")) ]) , NormalArg (Literal (String "\917\923\923\902\916\913")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), text(body: [ ]), text(body: [✅]), parbreak() }) typst-0.8.0.2/test/typ/text/case-00.typ0000644000000000000000000000023707346545000015702 0ustar0000000000000000#let memes = "ArE mEmEs gReAt?"; #test(lower(memes), "are memes great?") #test(upper(memes), "ARE MEMES GREAT?") #test(upper("Ελλάδα"), "ΕΛΛΆΔΑ") typst-0.8.0.2/test/typ/text/case-01.out0000644000000000000000000000002107346545000015665 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/case-01.typ0000644000000000000000000000010207346545000015672 0ustar0000000000000000// Error: 8-9 expected string or content, found integer #upper(1) typst-0.8.0.2/test/typ/text/chinese-00.out0000644000000000000000000000623607346545000016405 0ustar0000000000000000--- parse tree --- [ Code "typ/text/chinese-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/chinese-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/chinese-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/chinese-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Noto Serif CJK SC")) ]) , ParBreak , Text "\26159\32654\22269\24191\25773\20844\21496\30005\35270\21095\12298\36855\22833\12299\31532\&3\23395\30340\31532\&22\21644\&23\38598\65292\20063\26159\20840\21095\30340\31532\&71\38598\21644\&72\38598" , SoftBreak , Text "\30001\25191\34892\21046\20316\20154\25140\33945\183\26519\36947\22827\21644\21345\23572\39039\183\24211\26031\32534\21095\65292\23548\28436\21017\26159\21478\19968\21517\25191\34892\21046\20316\20154\26480\20811\183\26412\24503" , SoftBreak , Text "\33410\30446\20110\&2007\24180\&5\26376\&23\26085\22312\32654\22269\21644\21152\25343\22823\39318\25773\65292\20849\35745\21560\24341\20102\&1400\19975\32654\22269\35266\20247\25910\30475" , SoftBreak , Text "\26412\38598\21152\19978\25554\25773\24191\21578\19968\20849\20063\25345\32493\26377\20004\20010\23567\26102" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集 由执行制作人戴蒙·林道夫和卡尔顿·库斯编剧,导演则是另一名执行制作人杰克·本德 节目于2007年5月23日在美国和加拿大首播,共计吸引了1400万美国观众收看 本集加上插播广告一共也持续有两个小时], font: "Noto Serif CJK SC"), parbreak() }) typst-0.8.0.2/test/typ/text/chinese-00.typ0000644000000000000000000000062407346545000016405 0ustar0000000000000000#set text(font: "Noto Serif CJK SC") 是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集 由执行制作人戴蒙·林道夫和卡尔顿·库斯编剧,导演则是另一名执行制作人杰克·本德 节目于2007年5月23日在美国和加拿大首播,共计吸引了1400万美国观众收看 本集加上插播广告一共也持续有两个小时 typst-0.8.0.2/test/typ/text/copy-paste-00.out0000644000000000000000000000446407346545000017054 0ustar0000000000000000--- parse tree --- [ Code "typ/text/copy-paste-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/copy-paste-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/copy-paste-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "The" , Space , Text "after" , Space , Text "fira" , Space , Text "\127987\65039\8205\127752!" , ParBreak , Code "typ/text/copy-paste-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ar")) , KeyValArg (Identifier "font") (Literal (String "Noto Sans Arabic")) ]) , SoftBreak , Text "\1605\1585\1581\1576\1611\1575" , ParBreak ] --- evaluated --- document(body: { text(body: [ The after fira 🏳️‍🌈!]), parbreak(), text(body: [ مرحبًا], font: "Noto Sans Arabic", lang: "ar"), parbreak() }) typst-0.8.0.2/test/typ/text/copy-paste-00.typ0000644000000000000000000000013507346545000017050 0ustar0000000000000000The after fira 🏳️‍🌈! #set text(lang: "ar", font: "Noto Sans Arabic") مرحبًا typst-0.8.0.2/test/typ/text/deco-00.out0000644000000000000000000001204307346545000015672 0ustar0000000000000000--- parse tree --- [ Code "typ/text/deco-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/deco-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/deco-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/deco-00.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "red"))) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "fc0030")) ])) , ParBreak , Comment , Code "typ/text/deco-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "strike")) [ BlockArg [ Text "Statements" , Space , Text "dreamt" , Space , Text "up" , Space , Text "by" , Space , Text "the" , Space , Text "utterly" , Space , Text "deranged" , Text "." ] ]) , ParBreak , Comment , Code "typ/text/deco-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "underline")) [ KeyValArg (Identifier "offset") (Literal (Numeric 5.0 Pt)) , BlockArg [ Text "Further" , Space , Text "below" , Text "." ] ]) , ParBreak , Comment , Code "typ/text/deco-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "underline")) [ KeyValArg (Identifier "stroke") (Ident (Identifier "red")) , KeyValArg (Identifier "evade") (Literal (Boolean False)) , BlockArg [ Text "Critical" , Space , Text "information" , Space , Text "is" , Space , Text "conveyed" , Space , Text "here" , Text "." ] ]) , ParBreak , Comment , Code "typ/text/deco-00.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , NormalArg (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "Change" , Space , Text "with" , Space , Text "the" , Space , Text "wind" , Text "." ] ]) ]) , ParBreak , Comment , Code "typ/text/deco-00.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "overline")) [ NormalArg (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "Running" , Space , Text "amongst" , Space , Text "the" , Space , Text "wolves" , Text "." ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), strike(body: text(body: [Statements dreamt up by the utterly deranged.])), parbreak(), underline(body: text(body: [Further below.]), offset: 5.0pt), parbreak(), underline(body: text(body: [Critical information is conveyed here.]), evade: false, stroke: rgb(98%,0%,18%,100%)), parbreak(), text(body: underline(body: text(body: [Change with the wind.])), fill: rgb(98%,0%,18%,100%)), parbreak(), overline(body: underline(body: text(body: [Running amongst the wolves.]))), parbreak() }) typst-0.8.0.2/test/typ/text/deco-00.typ0000644000000000000000000000065207346545000015702 0ustar0000000000000000#let red = rgb("fc0030") // Basic strikethrough. #strike[Statements dreamt up by the utterly deranged.] // Move underline down. #underline(offset: 5pt)[Further below.] // Different color. #underline(stroke: red, evade: false)[Critical information is conveyed here.] // Inherits font color. #text(fill: red, underline[Change with the wind.]) // Both over- and underline. #overline(underline[Running amongst the wolves.]) typst-0.8.0.2/test/typ/text/deco-01.out0000644000000000000000000000742607346545000015704 0ustar0000000000000000--- parse tree --- [ Code "typ/text/deco-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/deco-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/deco-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/deco-01.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "redact"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "strike"))) [ KeyValArg (Identifier "stroke") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "extent") (Literal (Numeric 5.0e-2 Em)) ])) , SoftBreak , Code "typ/text/deco-01.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "highlight"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "strike"))) [ KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 10.0 Pt)) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "abcdef88")) ])) , KeyValArg (Identifier "extent") (Literal (Numeric 5.0e-2 Em)) ])) , ParBreak , Comment , Text "Sometimes," , Space , Text "we" , Space , Text "work" , Space , Code "typ/text/deco-01.typ" ( line 6 , column 21 ) (FuncCall (Ident (Identifier "redact")) [ BlockArg [ Text "in" , Space , Text "secret" ] ]) , Text "." , SoftBreak , Text "There" , Space , Text "might" , Space , Text "be" , Space , Code "typ/text/deco-01.typ" ( line 7 , column 17 ) (FuncCall (Ident (Identifier "highlight")) [ BlockArg [ Text "redacted" ] ]) , Space , Text "things" , Text "." , SoftBreak , Text "underline" , Text "(" , Text ")" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Sometimes, we work ]), strike(body: text(body: [in secret]), extent: 5.0e-2em, stroke: 10.0pt), text(body: [. There might be ]), strike(body: text(body: [redacted]), extent: 5.0e-2em, stroke: (thickness: 10.0pt, color: rgb(67%,80%,93%,53%))), text(body: [ things. underline()]), parbreak() }) typst-0.8.0.2/test/typ/text/deco-01.typ0000644000000000000000000000046107346545000015701 0ustar0000000000000000#let redact = strike.with(stroke: 10pt, extent: 0.05em) #let highlight = strike.with(stroke: 10pt + rgb("abcdef88"), extent: 0.05em) // Abuse thickness and transparency for redacting and highlighting stuff. Sometimes, we work #redact[in secret]. There might be #highlight[redacted] things. underline() typst-0.8.0.2/test/typ/text/deco-02.out0000644000000000000000000000503407346545000015676 0ustar0000000000000000--- parse tree --- [ Code "typ/text/deco-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/deco-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/deco-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/deco-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "underline")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 2.0 Pt)) , KeyValArg (Identifier "offset") (Literal (Numeric 2.0 Pt)) ]) , SoftBreak , Code "typ/text/deco-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "underline")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , NormalArg (Block (Content [ Text "DANGER!" ])) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), underline(body: text(body: text(body: [DANGER!]), color: rgb(100%,25%,21%,100%)), offset: 2.0pt, stroke: 2.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/deco-02.typ0000644000000000000000000000014207346545000015676 0ustar0000000000000000// Test stroke folding. #set underline(stroke: 2pt, offset: 2pt) #underline(text(red, [DANGER!])) typst-0.8.0.2/test/typ/text/edge-00.out0000644000000000000000000003207007346545000015666 0ustar0000000000000000--- parse tree --- [ Code "typ/text/edge-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/edge-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/edge-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/edge-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 160.0 Pt)) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 8.0 Pt)) ]) , ParBreak , Code "typ/text/edge-00.typ" ( line 5 , column 2 ) (LetFunc (Identifier "try") [ NormalParam (Identifier "top") , NormalParam (Identifier "bottom") ] (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [ SoftBreak , Code "typ/text/edge-00.typ" ( line 6 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Mono")) , KeyValArg (Identifier "top-edge") (Ident (Identifier "top")) , KeyValArg (Identifier "bottom-edge") (Ident (Identifier "bottom")) ]) , SoftBreak , Text "From" , Space , Code "typ/text/edge-00.typ" ( line 7 , column 9 ) (Ident (Identifier "top")) , Space , Text "to" , Space , Code "typ/text/edge-00.typ" ( line 7 , column 17 ) (Ident (Identifier "bottom")) , ParBreak ] ])) , ParBreak , Code "typ/text/edge-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Literal (String "ascender")) , NormalArg (Literal (String "descender")) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Literal (String "ascender")) , NormalArg (Literal (String "baseline")) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Literal (String "cap-height")) , NormalArg (Literal (String "baseline")) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Literal (String "x-height")) , NormalArg (Literal (String "baseline")) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Literal (Numeric 4.0 Pt)) , NormalArg (Negated (Literal (Numeric 2.0 Pt))) ]) , SoftBreak , Code "typ/text/edge-00.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "try")) [ NormalArg (Plus (Literal (Numeric 1.0 Pt)) (Literal (Numeric 0.3 Em))) , NormalArg (Negated (Literal (Numeric 0.15 Em))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: "descender", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [ascender], bottom-edge: "descender", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [ to ], bottom-edge: "descender", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [descender], bottom-edge: "descender", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), text(body: [ ], size: 8.0pt), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [ascender], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [ to ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), text(body: [baseline], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "ascender"), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), text(body: [ ], size: 8.0pt), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "cap-height"), text(body: [cap-height], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "cap-height"), text(body: [ to ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "cap-height"), text(body: [baseline], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "cap-height"), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), text(body: [ ], size: 8.0pt), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "x-height"), text(body: [x-height], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "x-height"), text(body: [ to ], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "x-height"), text(body: [baseline], bottom-edge: "baseline", font: "IBM Plex Mono", size: 8.0pt, top-edge: "x-height"), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), text(body: [ ], size: 8.0pt), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: -2.0pt, font: "IBM Plex Mono", size: 8.0pt, top-edge: 4.0pt), text(body: [4.0pt], bottom-edge: -2.0pt, font: "IBM Plex Mono", size: 8.0pt, top-edge: 4.0pt), text(body: [ to ], bottom-edge: -2.0pt, font: "IBM Plex Mono", size: 8.0pt, top-edge: 4.0pt), text(body: [-2.0pt], bottom-edge: -2.0pt, font: "IBM Plex Mono", size: 8.0pt, top-edge: 4.0pt), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), text(body: [ ], size: 8.0pt), rect(body: { text(body: [ ], size: 8.0pt), text(body: [ From ], bottom-edge: -0.15em, font: "IBM Plex Mono", size: 8.0pt, top-edge: 1.0pt + 0.3em), text(body: [1.0pt + 0.3em], bottom-edge: -0.15em, font: "IBM Plex Mono", size: 8.0pt, top-edge: 1.0pt + 0.3em), text(body: [ to ], bottom-edge: -0.15em, font: "IBM Plex Mono", size: 8.0pt, top-edge: 1.0pt + 0.3em), text(body: [-0.15em], bottom-edge: -0.15em, font: "IBM Plex Mono", size: 8.0pt, top-edge: 1.0pt + 0.3em), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 0.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/edge-00.typ0000644000000000000000000000055107346545000015672 0ustar0000000000000000#set page(width: 160pt) #set text(size: 8pt) #let try(top, bottom) = rect(inset: 0pt, fill: green)[ #set text(font: "IBM Plex Mono", top-edge: top, bottom-edge: bottom) From #top to #bottom ] #try("ascender", "descender") #try("ascender", "baseline") #try("cap-height", "baseline") #try("x-height", "baseline") #try(4pt, -2pt) #try(1pt + 0.3em, -0.15em) typst-0.8.0.2/test/typ/text/edge-01.out0000644000000000000000000000002107346545000015656 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/edge-01.typ0000644000000000000000000000021007346545000015663 0ustar0000000000000000// Error: 21-23 expected "ascender", "cap-height", "x-height", "baseline", "descender", or length, found array #set text(top-edge: ()) typst-0.8.0.2/test/typ/text/edge-02.out0000644000000000000000000000002107346545000015657 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/edge-02.typ0000644000000000000000000000017507346545000015676 0ustar0000000000000000// Error: 24-26 expected "ascender", "cap-height", "x-height", "baseline", "descender", or length #set text(bottom-edge: "") typst-0.8.0.2/test/typ/text/em-00.out0000644000000000000000000001131307346545000015360 0ustar0000000000000000--- parse tree --- [ Code "typ/text/em-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/em-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/em-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/em-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Text "A" , Space , Comment , Code "typ/text/em-00.typ" ( line 4 , column 2 ) (Block (Content [ SoftBreak , Code "typ/text/em-00.typ" ( line 5 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 2.0 Em)) ]) , SoftBreak , Text "B" , Space , Comment , Space , Code "typ/text/em-00.typ" ( line 7 , column 4 ) (Block (Content [ SoftBreak , Code "typ/text/em-00.typ" ( line 8 , column 6 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Plus (Literal (Numeric 1.5 Em)) (Literal (Numeric 1.0 Pt))) ]) , SoftBreak , Text "C" , Space , Comment , Space , Code "typ/text/em-00.typ" ( line 10 , column 6 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 2.0 Em)) , BlockArg [ Text "D" ] ]) , Space , Comment , Space , Text "E" , Space , Comment , Space ])) , SoftBreak , Text "F" , Space , Comment ])) , SoftBreak , Text "G" , Space , Comment , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ A ], size: 5.0pt), text(body: [ ], size: 5.0pt), text(body: [ B ], size: 2.0em), text(body: [ ], size: 2.0em), text(body: [ ], size: 2.0em), text(body: [ C ], size: 1.5em + 1.0pt), text(body: [ ], size: 1.5em + 1.0pt), text(body: text(body: [D], size: 1.5em + 1.0pt), size: 2.0em), text(body: [ ], size: 1.5em + 1.0pt), text(body: [ E ], size: 1.5em + 1.0pt), text(body: [ ], size: 1.5em + 1.0pt), text(body: [ F ], size: 1.5em + 1.0pt), text(body: [ G ], size: 1.5em + 1.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/em-00.typ0000644000000000000000000000030207346545000015361 0ustar0000000000000000#set text(size: 5pt) A // 5pt #[ #set text(size: 2em) B // 10pt #[ #set text(size: 1.5em + 1pt) C // 16pt #text(size: 2em)[D] // 32pt E // 16pt ] F // 10pt ] G // 5pt typst-0.8.0.2/test/typ/text/em-01.out0000644000000000000000000001011207346545000015355 0ustar0000000000000000--- parse tree --- [ Code "typ/text/em-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/em-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/em-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/em-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/text/em-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 2.0 Em)) ]) , SoftBreak , Code "typ/text/em-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , ParBreak , Code "typ/text/em-01.typ" ( line 7 , column 2 ) (Let (BasicBind (Just (Identifier "size"))) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "size"))) (Plus (Literal (Numeric 0.25 Em)) (Literal (Numeric 1.0 Pt))) , For (BasicBind Nothing) (FuncCall (Ident (Identifier "range")) [ NormalArg (Literal (Int 3)) ]) (Block (CodeBlock [ Assign (Ident (Identifier "size")) (Times (Ident (Identifier "size")) (Literal (Int 2))) ])) , Minus (Ident (Identifier "size")) (Literal (Numeric 3.0 Pt)) ]))) , ParBreak , Code "typ/text/em-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Ident (Identifier "size")) ]) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 25.0 Pt)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], size: 5.0pt), text(body: [ ], size: 2.0em), parbreak(), parbreak(), stack(children: (square(fill: rgb(100%,25%,21%,100%), size: (2.0em + 8.0pt) + -3.0pt), square(fill: rgb(100%,25%,21%,100%), size: 25.0pt)), dir: ltr, spacing: 1.0fr), parbreak() }) typst-0.8.0.2/test/typ/text/em-01.typ0000644000000000000000000000042007346545000015363 0ustar0000000000000000// Test using ems in arbitrary places. #set text(size: 5pt) #set text(size: 2em) #set square(fill: red) #let size = { let size = 0.25em + 1pt for _ in range(3) { size *= 2 } size - 3pt } #stack(dir: ltr, spacing: 1fr, square(size: size), square(size: 25pt)) typst-0.8.0.2/test/typ/text/emoji-00.out0000644000000000000000000000420607346545000016065 0ustar0000000000000000--- parse tree --- [ Code "typ/text/emoji-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/emoji-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/emoji-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "\128105\8205\128105\8205\128102" , ParBreak , Comment , Text "\127987\65039\8205\127752" , ParBreak , Comment , Text "\128077\127999" , ParBreak , Comment , Text "1\65039\8419" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [👩‍👩‍👦]), parbreak(), text(body: [🏳️‍🌈]), parbreak(), text(body: [👍🏿]), parbreak(), text(body: [1️⃣]), parbreak() }) typst-0.8.0.2/test/typ/text/emoji-00.typ0000644000000000000000000000031507346545000016067 0ustar0000000000000000// This should form a three-member family. 👩‍👩‍👦 // This should form a pride flag. 🏳️‍🌈 // Skin tone modifier should be applied. 👍🏿 // This should be a 1 in a box. 1️⃣ typst-0.8.0.2/test/typ/text/emoji-01.out0000644000000000000000000000340607346545000016067 0ustar0000000000000000--- parse tree --- [ Code "typ/text/emoji-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/emoji-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/emoji-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "\127966\8205\127755" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [🏞‍🌋]), parbreak() }) typst-0.8.0.2/test/typ/text/emoji-01.typ0000644000000000000000000000010707346545000016067 0ustar0000000000000000// These two shouldn't be affected by a zero-width joiner. 🏞‍🌋 typst-0.8.0.2/test/typ/text/emphasis-00.out0000644000000000000000000000511707346545000016575 0ustar0000000000000000--- parse tree --- [ Code "typ/text/emphasis-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/emphasis-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/emphasis-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Emph [ Text "Emphasized" , Space , Text "and" , Space , Strong [ Text "strong" ] , Space , Text "words!" ] , ParBreak , Comment , Text "hello_world" , Space , Text "Nutzer*innen" , ParBreak , Comment , Emph [ Text "Still" , Space , Code "typ/text/emphasis-00.typ" ( line 9 , column 9 ) (Block (Content [ ParBreak ])) , Space , Text "emphasized" , Text "." ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), emph(body: { text(body: [Emphasized and ]), strong(body: text(body: [strong])), text(body: [ words!]) }), parbreak(), text(body: [hello_world Nutzer*innen]), parbreak(), emph(body: { text(body: [Still ]), parbreak(), text(body: [ emphasized.]) }), parbreak() }) typst-0.8.0.2/test/typ/text/emphasis-00.typ0000644000000000000000000000031107346545000016571 0ustar0000000000000000// Basic. _Emphasized and *strong* words!_ // Inside of a word it's a normal underscore or star. hello_world Nutzer*innen // Can contain paragraph in nested content block. _Still #[ ] emphasized._ typst-0.8.0.2/test/typ/text/emphasis-01.out0000644000000000000000000000437007346545000016576 0ustar0000000000000000--- parse tree --- [ Code "typ/text/emphasis-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/emphasis-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/emphasis-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "P" , Code "typ/text/emphasis-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "strong")) [ BlockArg [ Text "art" ] ]) , Text "ly" , Space , Text "em" , Code "typ/text/emphasis-01.typ" ( line 3 , column 20 ) (FuncCall (Ident (Identifier "emph")) [ BlockArg [ Text "phas" ] ]) , Text "ized" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [P]), strong(body: text(body: [art])), text(body: [ly em]), emph(body: text(body: [phas])), text(body: [ized.]), parbreak() }) typst-0.8.0.2/test/typ/text/emphasis-01.typ0000644000000000000000000000012407346545000016574 0ustar0000000000000000// Inside of words can still use the functions. P#strong[art]ly em#emph[phas]ized. typst-0.8.0.2/test/typ/text/emphasis-02.out0000644000000000000000000000553507346545000016603 0ustar0000000000000000--- parse tree --- [ Code "typ/text/emphasis-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/emphasis-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/emphasis-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Normal" , ParBreak , Code "typ/text/emphasis-02.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "strong")) [ KeyValArg (Identifier "delta") (Literal (Int 300)) ]) , SoftBreak , Strong [ Text "Bold" ] , ParBreak , Code "typ/text/emphasis-02.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "strong")) [ KeyValArg (Identifier "delta") (Literal (Int 150)) ]) , SoftBreak , Strong [ Text "Medium" ] , Space , Text "and" , Space , Strong [ Code "typ/text/emphasis-02.typ" ( line 9 , column 16 ) (Block (Content [ Strong [ Text "Bold" ] ])) ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Normal]), parbreak(), text(body: [ ]), strong(body: text(body: [Bold]), delta: 300), parbreak(), text(body: [ ]), strong(body: text(body: [Medium]), delta: 150), text(body: [ and ]), strong(body: strong(body: text(body: [Bold]), delta: 150), delta: 150), parbreak() }) typst-0.8.0.2/test/typ/text/emphasis-02.typ0000644000000000000000000000022407346545000016576 0ustar0000000000000000// Adjusting the delta that strong applies on the weight. Normal #set strong(delta: 300) *Bold* #set strong(delta: 150) *Medium* and *#[*Bold*]* typst-0.8.0.2/test/typ/text/emphasis-03.out0000644000000000000000000000002107346545000016565 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/emphasis-03.typ0000644000000000000000000000007107346545000016577 0ustar0000000000000000// Error: 13 expected underscore #box[_Scoped] to body. typst-0.8.0.2/test/typ/text/emphasis-04.out0000644000000000000000000000002107346545000016566 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/emphasis-04.typ0000644000000000000000000000011307346545000016575 0ustar0000000000000000// Ends at paragraph break. // Error: 7 expected underscore _Hello World typst-0.8.0.2/test/typ/text/emphasis-05.out0000644000000000000000000000002107346545000016567 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/emphasis-05.typ0000644000000000000000000000012707346545000016603 0ustar0000000000000000// Error: 26 expected star // Error: 26 expected underscore #[_Cannot *be interleaved] typst-0.8.0.2/test/typ/text/escape-00.out0000644000000000000000000000712407346545000016224 0ustar0000000000000000--- parse tree --- [ Code "typ/text/escape-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/escape-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/escape-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "\\" , Space , Text "/" , Space , Text "[" , Space , Text "]" , Space , Text "{" , Space , Text "}" , Space , Text "#" , Space , Text "*" , Space , Text "_" , Space , Text "+" , Space , Text "=" , Space , Text "~" , Space , HardBreak , Text "`" , Space , Text "$" , Space , Text "\"" , Space , Text "'" , Space , Text "<" , Space , Text ">" , Space , Text "@" , Space , Text "(" , Space , Text ")" , Space , Text "A" , ParBreak , Comment , Text "(" , Space , Text ")" , Space , Text ";" , ParBreak , Comment , Text "/" , Text "/" , SoftBreak , Text "/" , Text "*" , Space , Text "*" , Text "/" , SoftBreak , Text "/" , Strong [ Space , Text "*" , Text "/" , Space ] , ParBreak , Comment , Text "\127957" , Space , Text "=" , Text "=" , Space , Text "\127957" , ParBreak , Comment , Text "A" , Space , Text "vs" , Text "." , Space , Text "\\" , Text "u" , Text "{" , Text "41" , Text "}" , ParBreak , Comment , Text "let" , Space , Text "f" , Text "(" , Text ")" , Space , Text "," , Space , Text ";" , Space , Text ":" , Space , Text "|" , Space , Text "+" , Space , Text "-" , Space , Text "/" , Text "=" , Space , Text "=" , Text "=" , Space , Text "12" , Space , Quote '"' , Text "string" , Quote '"' , ParBreak , Comment , Text "10" , Text "." , Space , Text "May" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [\ / [ ] { } # * _ + = ~ ]), linebreak(), text(body: [` $ " ' < > @ ( ) A]), parbreak(), text(body: [( ) ;]), parbreak(), text(body: [// /* */ /]), strong(body: text(body: [ */ ])), parbreak(), text(body: [🏕 == 🏕]), parbreak(), text(body: [A vs. \u{41}]), parbreak(), text(body: [let f() , ; : | + - /= == 12 “string”]), parbreak(), text(body: [10. May]), parbreak() }) typst-0.8.0.2/test/typ/text/escape-00.typ0000644000000000000000000000054407346545000016230 0ustar0000000000000000// Escapable symbols. \\ \/ \[ \] \{ \} \# \* \_ \+ \= \~ \ \` \$ \" \' \< \> \@ \( \) \A // No need to escape. ( ) ; // Escaped comments. \// \/\* \*\/ \/* \*/ * // Unicode escape sequence. \u{1F3D5} == 🏕 // Escaped escape sequence. \u{41} vs. \\u\{41\} // Some code stuff in text. let f() , ; : | + - /= == 12 "string" // Escaped dot. 10\. May typst-0.8.0.2/test/typ/text/escape-01.out0000644000000000000000000000002107346545000016212 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/escape-01.typ0000644000000000000000000000014207346545000016223 0ustar0000000000000000// Unicode codepoint does not exist. // Error: 1-11 invalid unicode codepoint: FFFFFF \u{FFFFFF} typst-0.8.0.2/test/typ/text/escape-02.out0000644000000000000000000000002107346545000016213 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/escape-02.typ0000644000000000000000000000010207346545000016220 0ustar0000000000000000// Unterminated. // Error: 6 expected closing brace \u{41[*Bold*] typst-0.8.0.2/test/typ/text/fallback-00.out0000644000000000000000000000501007346545000016513 0ustar0000000000000000--- parse tree --- [ Code "typ/text/fallback-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/fallback-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/fallback-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A\128512B" , ParBreak , Comment , Text "\1583\1593" , Space , Text "\1575\1604\1606\1589" , Space , Text "\1610\1605\1591\1585" , Space , Text "\1593\1604\1610\1603" , ParBreak , Comment , Text "\1576\128008\128512\1587\1605" , ParBreak , Comment , Text "A\1576\128512\127966\1587\1605B" , ParBreak , Comment , Text "01\65039\8419\&2" , ParBreak , Comment , Text "A\128008\4850\4638B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A😀B]), parbreak(), text(body: [دع النص يمطر عليك]), parbreak(), text(body: [ب🐈😀سم]), parbreak(), text(body: [Aب😀🏞سمB]), parbreak(), text(body: [01️⃣2]), parbreak(), text(body: [A🐈ዲሞB]), parbreak() }) typst-0.8.0.2/test/typ/text/fallback-00.typ0000644000000000000000000000051407346545000016524 0ustar0000000000000000// Font fallback for emoji. A😀B // Font fallback for entire text. دع النص يمطر عليك // Font fallback in right-to-left text. ب🐈😀سم // Multi-layer font fallback. Aب😀🏞سمB // Font fallback with composed emojis and multiple fonts. 01️⃣2 // Tofus are rendered with the first font. A🐈ዲሞB typst-0.8.0.2/test/typ/text/features-00.out0000644000000000000000000000460507346545000016603 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "kerning") (Literal (Boolean True)) , BlockArg [ Text "Tq" ] ]) , Space , HardBreak , Code "typ/text/features-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "kerning") (Literal (Boolean False)) , BlockArg [ Text "Tq" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: text(body: [Tq]), kerning: true), text(body: [ ]), linebreak(), text(body: text(body: [Tq]), kerning: false), parbreak() }) typst-0.8.0.2/test/typ/text/features-00.typ0000644000000000000000000000012307346545000016577 0ustar0000000000000000// Test turning kerning off. #text(kerning: true)[Tq] \ #text(kerning: false)[Tq] typst-0.8.0.2/test/typ/text/features-01.out0000644000000000000000000000363207346545000016603 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "smallcaps")) [ BlockArg [ Text "Smallcaps" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), smallcaps(body: text(body: [Smallcaps])), parbreak() }) typst-0.8.0.2/test/typ/text/features-01.typ0000644000000000000000000000005207346545000016601 0ustar0000000000000000// Test smallcaps. #smallcaps[Smallcaps] typst-0.8.0.2/test/typ/text/features-02.out0000644000000000000000000000613007346545000016600 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) ]) , SoftBreak , Text "a" , Space , Text "vs" , Space , Code "typ/text/features-02.typ" ( line 4 , column 7 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "alternates") (Literal (Boolean True)) , BlockArg [ Text "a" ] ]) , Space , HardBreak , Text "\223" , Space , Text "vs" , Space , Code "typ/text/features-02.typ" ( line 5 , column 7 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "stylistic-set") (Literal (Int 5)) , BlockArg [ Text "\223" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ a vs ], font: "IBM Plex Serif"), text(alternates: true, body: text(body: [a], font: "IBM Plex Serif"), font: "IBM Plex Serif"), text(body: [ ], font: "IBM Plex Serif"), linebreak(), text(body: [ß vs ], font: "IBM Plex Serif"), text(body: text(body: [ß], font: "IBM Plex Serif"), font: "IBM Plex Serif", stylistic-set: 5), parbreak() }) typst-0.8.0.2/test/typ/text/features-02.typ0000644000000000000000000000021607346545000016604 0ustar0000000000000000// Test alternates and stylistic sets. #set text(font: "IBM Plex Serif") a vs #text(alternates: true)[a] \ ß vs #text(stylistic-set: 5)[ß] typst-0.8.0.2/test/typ/text/features-03.out0000644000000000000000000000416207346545000016604 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "fi" , Space , Text "vs" , Text "." , Space , Code "typ/text/features-03.typ" ( line 3 , column 9 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "ligatures") (Literal (Boolean False)) , BlockArg [ Text "No" , Space , Text "fi" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [fi vs. ]), text(body: text(body: [No fi]), ligatures: false), parbreak() }) typst-0.8.0.2/test/typ/text/features-03.typ0000644000000000000000000000007207346545000016605 0ustar0000000000000000// Test ligatures. fi vs. #text(ligatures: false)[No fi] typst-0.8.0.2/test/typ/text/features-04.out0000644000000000000000000000470307346545000016606 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "number-type") (Literal (String "old-style")) ]) , SoftBreak , Text "0123456789" , Space , HardBreak , Code "typ/text/features-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "number-type") (Literal Auto) , BlockArg [ Text "0123456789" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ 0123456789 ], number-type: "old-style"), linebreak(), text(body: text(body: [0123456789], number-type: "old-style"), number-type: auto), parbreak() }) typst-0.8.0.2/test/typ/text/features-04.typ0000644000000000000000000000015407346545000016607 0ustar0000000000000000// Test number type. #set text(number-type: "old-style") 0123456789 \ #text(number-type: auto)[0123456789] typst-0.8.0.2/test/typ/text/features-05.out0000644000000000000000000000564107346545000016611 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-05.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "number-width") (Literal (String "proportional")) , BlockArg [ Text "0123456789" ] ]) , Space , HardBreak , Code "typ/text/features-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "number-width") (Literal (String "tabular")) , BlockArg [ Text "3456789123" ] ]) , Space , HardBreak , Code "typ/text/features-05.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "number-width") (Literal (String "tabular")) , BlockArg [ Text "0123456789" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: text(body: [0123456789]), number-width: "proportional"), text(body: [ ]), linebreak(), text(body: text(body: [3456789123]), number-width: "tabular"), text(body: [ ]), linebreak(), text(body: text(body: [0123456789]), number-width: "tabular"), parbreak() }) typst-0.8.0.2/test/typ/text/features-05.typ0000644000000000000000000000024107346545000016605 0ustar0000000000000000// Test number width. #text(number-width: "proportional")[0123456789] \ #text(number-width: "tabular")[3456789123] \ #text(number-width: "tabular")[0123456789] typst-0.8.0.2/test/typ/text/features-06.out0000644000000000000000000000623707346545000016614 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-06.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) ]) , SoftBreak , Text "0" , Space , Text "vs" , Text "." , Space , Code "typ/text/features-06.typ" ( line 4 , column 8 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "slashed-zero") (Literal (Boolean True)) , BlockArg [ Text "0" ] ]) , Space , HardBreak , Text "1" , Text "/" , Text "2" , Space , Text "vs" , Text "." , Space , Code "typ/text/features-06.typ" ( line 5 , column 10 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "fractions") (Literal (Boolean True)) , BlockArg [ Text "1" , Text "/" , Text "2" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ 0 vs. ], font: "IBM Plex Serif"), text(body: text(body: [0], font: "IBM Plex Serif"), font: "IBM Plex Serif", slashed-zero: true), text(body: [ ], font: "IBM Plex Serif"), linebreak(), text(body: [1/2 vs. ], font: "IBM Plex Serif"), text(body: text(body: [1/2], font: "IBM Plex Serif"), font: "IBM Plex Serif", fractions: true), parbreak() }) typst-0.8.0.2/test/typ/text/features-06.typ0000644000000000000000000000021007346545000016602 0ustar0000000000000000// Test extra number stuff. #set text(font: "IBM Plex Serif") 0 vs. #text(slashed-zero: true)[0] \ 1/2 vs. #text(fractions: true)[1/2] typst-0.8.0.2/test/typ/text/features-07.out0000644000000000000000000000513707346545000016613 0ustar0000000000000000--- parse tree --- [ Code "typ/text/features-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/features-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/features-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/features-07.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "features") (Array [ Reg (Literal (String "smcp")) ]) , BlockArg [ Text "Smcp" ] ]) , Space , HardBreak , Text "fi" , Space , Text "vs" , Text "." , Space , Code "typ/text/features-07.typ" ( line 4 , column 9 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "features") (Dict [ Reg ( Ident (Identifier "liga") , Literal (Int 0) ) ]) , BlockArg [ Text "No" , Space , Text "fi" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: text(body: [Smcp]), features: ("smcp")), text(body: [ ]), linebreak(), text(body: [fi vs. ]), text(body: text(body: [No fi]), features: (liga: 0)), parbreak() }) typst-0.8.0.2/test/typ/text/features-07.typ0000644000000000000000000000014307346545000016610 0ustar0000000000000000// Test raw features. #text(features: ("smcp",))[Smcp] \ fi vs. #text(features: (liga: 0))[No fi] typst-0.8.0.2/test/typ/text/features-08.out0000644000000000000000000000002107346545000016577 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/features-08.typ0000644000000000000000000000013107346545000016606 0ustar0000000000000000// Error: 26-31 expected integer or none, found boolean #set text(stylistic-set: false) typst-0.8.0.2/test/typ/text/features-09.out0000644000000000000000000000002107346545000016600 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/features-09.typ0000644000000000000000000000012507346545000016612 0ustar0000000000000000// Error: 26-28 stylistic set must be between 1 and 20 #set text(stylistic-set: 25) typst-0.8.0.2/test/typ/text/features-10.out0000644000000000000000000000002107346545000016570 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/features-10.typ0000644000000000000000000000014207346545000016601 0ustar0000000000000000// Error: 24-25 expected "lining", "old-style", or auto, found integer #set text(number-type: 2) typst-0.8.0.2/test/typ/text/features-11.out0000644000000000000000000000002107346545000016571 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/features-11.typ0000644000000000000000000000013007346545000016577 0ustar0000000000000000// Error: 21-26 expected array or dictionary, found boolean #set text(features: false) typst-0.8.0.2/test/typ/text/features-12.out0000644000000000000000000000002107346545000016572 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/features-12.typ0000644000000000000000000000012307346545000016602 0ustar0000000000000000// Error: 21-35 expected string, found boolean #set text(features: ("tag", false)) typst-0.8.0.2/test/typ/text/font-00.out0000644000000000000000000001551707346545000015737 0ustar0000000000000000--- parse tree --- [ Code "typ/text/font-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/font-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/font-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/font-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 20.0 Pt)) , BlockArg [ Text "A" ] ]) , SoftBreak , Code "typ/text/font-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 2.0 Em)) , BlockArg [ Text "A" ] ]) , SoftBreak , Code "typ/text/font-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Plus (Literal (Numeric 15.0 Pt)) (Literal (Numeric 0.5 Em))) , BlockArg [ Text "A" ] ]) , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "text")) [ BlockArg [ Text "Normal" ] ]) , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "style") (Literal (String "italic")) , BlockArg [ Text "Italic" ] ]) , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 14 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "weight") (Literal (String "bold")) , BlockArg [ Text "Bold" ] ]) , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "stretch") (Literal (Numeric 50.0 Percent)) , BlockArg [ Text "Condensed" ] ]) , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) , BlockArg [ Text "Serif" ] ]) , ParBreak , Comment , Text "Emoji" , Text ":" , Space , Text "\128042," , Space , Text "\127755," , Space , Text "\127966" , ParBreak , Comment , Code "typ/text/font-00.typ" ( line 26 , column 2 ) (Block (Content [ SoftBreak , Code "typ/text/font-00.typ" ( line 27 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , SoftBreak , Text "This" , Space , Text "is" , Space , Code "typ/text/font-00.typ" ( line 28 , column 12 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "FA644B")) ]) , BlockArg [ Text "way" , Space , Text "more" ] ]) , Space , Text "colorful" , Text "." , ParBreak ])) , ParBreak , Comment , Comment , Code "typ/text/font-00.typ" ( line 33 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Array [ Reg (Literal (String "PT Sans")) , Reg (Literal (String "Twitter Color Emoji")) ]) , KeyValArg (Identifier "fallback") (Literal (Boolean False)) ]) , SoftBreak , Text "2\960" , Space , Text "=" , Space , Text "\120572" , Space , Text "+" , Space , Text "\120573" , Text "." , Space , Text "\9989" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: text(body: [A]), size: 20.0pt), text(body: [ ]), text(body: text(body: [A]), size: 2.0em), text(body: [ ]), text(body: text(body: [A]), size: 15.0pt + 0.5em), parbreak(), text(body: text(body: [Normal])), parbreak(), text(body: text(body: [Italic]), style: "italic"), parbreak(), text(body: text(body: [Bold]), weight: "bold"), parbreak(), text(body: text(body: [Condensed]), stretch: 50%), parbreak(), text(body: text(body: [Serif]), font: "IBM Plex Serif"), parbreak(), text(body: [Emoji: 🐪, 🌋, 🏞]), parbreak(), text(body: [ ]), text(body: [ This is ], fill: rgb(13%,61%,67%,100%)), text(body: text(body: [way more], fill: rgb(13%,61%,67%,100%)), color: rgb(98%,39%,29%,100%), fill: rgb(13%,61%,67%,100%)), text(body: [ colorful.], fill: rgb(13%,61%,67%,100%)), parbreak(), parbreak(), text(body: [ 2π = 𝛼 + 𝛽. ✅], fallback: false, fill: rgb(13%,61%,67%,100%), font: ("PT Sans", "Twitter Color Emoji")), parbreak() }) typst-0.8.0.2/test/typ/text/font-00.typ0000644000000000000000000000135707346545000015741 0ustar0000000000000000// Set same font size in three different ways. #text(20pt)[A] #text(2em)[A] #text(size: 15pt + 0.5em)[A] // Do nothing. #text()[Normal] // Set style (is available). #text(style: "italic")[Italic] // Set weight (is available). #text(weight: "bold")[Bold] // Set stretch (not available, matching closest). #text(stretch: 50%)[Condensed] // Set font family. #text(font: "IBM Plex Serif")[Serif] // Emoji. Emoji: 🐪, 🌋, 🏞 // Colors. #[ #set text(fill: eastern) This is #text(rgb("FA644B"))[way more] colorful. ] // Disable font fallback beyond the user-specified list. // Without disabling, New Computer Modern Math would come to the rescue. #set text(font: ("PT Sans", "Twitter Color Emoji"), fallback: false) 2π = 𝛼 + 𝛽. ✅ typst-0.8.0.2/test/typ/text/font-01.out0000644000000000000000000000757407346545000015744 0ustar0000000000000000--- parse tree --- [ Code "typ/text/font-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/font-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/font-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/font-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Literal (String "Text")) ]) , Space , HardBreak , Code "typ/text/font-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , NormalArg (Literal (String "Text")) ]) , Space , HardBreak , Code "typ/text/font-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Ubuntu")) , NormalArg (Ident (Identifier "blue")) , NormalArg (Literal (String "Text")) ]) , Space , HardBreak , Code "typ/text/font-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Block (Content [ Text "Text" ])) , NormalArg (Ident (Identifier "teal")) , KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) ]) , Space , HardBreak , Code "typ/text/font-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "text")) [ NormalArg (Ident (Identifier "red")) , KeyValArg (Identifier "font") (Literal (String "New Computer Modern")) , NormalArg (Block (Content [ Text "Text" ])) ]) , Space , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: "Text"), text(body: [ ]), linebreak(), text(body: "Text", color: rgb(100%,25%,21%,100%)), text(body: [ ]), linebreak(), text(body: "Text", color: rgb(0%,45%,85%,100%), font: "Ubuntu"), text(body: [ ]), linebreak(), text(body: text(body: [Text]), color: rgb(22%,80%,80%,100%), font: "IBM Plex Serif"), text(body: [ ]), linebreak(), text(body: text(body: [Text]), color: rgb(100%,25%,21%,100%), font: "New Computer Modern"), text(body: [ ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/text/font-01.typ0000644000000000000000000000030107346545000015726 0ustar0000000000000000// Test string body. #text("Text") \ #text(red, "Text") \ #text(font: "Ubuntu", blue, "Text") \ #text([Text], teal, font: "IBM Plex Serif") \ #text(red, font: "New Computer Modern", [Text]) \ typst-0.8.0.2/test/typ/text/font-02.out0000644000000000000000000000002107346545000015721 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/font-02.typ0000644000000000000000000000006607346545000015737 0ustar0000000000000000// Error: 11-16 unexpected argument #set text(false) typst-0.8.0.2/test/typ/text/font-03.out0000644000000000000000000000002107346545000015722 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/font-03.typ0000644000000000000000000000014407346545000015735 0ustar0000000000000000// Error: 18-24 expected "normal", "italic", or "oblique" #set text(style: "bold", weight: "thin") typst-0.8.0.2/test/typ/text/font-04.out0000644000000000000000000000002107346545000015723 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/font-04.typ0000644000000000000000000000010107346545000015727 0ustar0000000000000000// Error: 23-27 unexpected argument #set text(size: 10pt, 12pt) typst-0.8.0.2/test/typ/text/font-05.out0000644000000000000000000000002107346545000015724 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/font-05.typ0000644000000000000000000000011707346545000015737 0ustar0000000000000000// Error: 11-31 unexpected argument: something #set text(something: "invalid") typst-0.8.0.2/test/typ/text/hyphenate-00.out0000644000000000000000000000760707346545000016757 0ustar0000000000000000--- parse tree --- [ Code "typ/text/hyphenate-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/hyphenate-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/hyphenate-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/hyphenate-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/text/hyphenate-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal Auto) ]) , SoftBreak , Code "typ/text/hyphenate-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 50.0 Pt)) , Reg (Literal (Numeric 50.0 Pt)) ]) , NormalArg (Block (Content [ Text "Warm" , Space , Text "welcomes" , Space , Text "to" , Space , Text "Typst" , Text "." ])) , NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "el")) , BlockArg [ Text "\948\953\945\956\949\961\943\963\956\945\964\945" , Text "." , Space , HardBreak , Text "\955\945\964\961\949\965\964\972\962" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], hyphenate: true), text(body: [ ], hyphenate: true), grid(children: (text(body: [Warm welcomes to Typst.], hyphenate: true), text(body: { text(body: [διαμερίσματα. ], hyphenate: true), linebreak(), text(body: [λατρευτός], hyphenate: true) }, hyphenate: true, lang: "el")), columns: (50.0pt, 50.0pt)), parbreak() }) typst-0.8.0.2/test/typ/text/hyphenate-00.typ0000644000000000000000000000033507346545000016753 0ustar0000000000000000// Test hyphenating english and greek. #set text(hyphenate: true) #set page(width: auto) #grid( columns: (50pt, 50pt), [Warm welcomes to Typst.], text(lang: "el")[διαμερίσματα. \ λατρευτός], ) typst-0.8.0.2/test/typ/text/hyphenate-01.out0000644000000000000000000001267307346545000016757 0ustar0000000000000000--- parse tree --- [ Code "typ/text/hyphenate-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/hyphenate-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/hyphenate-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/hyphenate-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 110.0 Pt)) ]) , SoftBreak , Code "typ/text/hyphenate-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , ParBreak , Text "Welcome" , Space , Text "to" , Space , Text "wonderful" , Space , Text "experiences" , Text "." , Space , HardBreak , Text "Welcome" , Space , Text "to" , Space , RawInline "wonderful" , Space , Text "experiences" , Text "." , Space , HardBreak , Text "Welcome" , Space , Text "to" , Space , Code "typ/text/hyphenate-01.typ" ( line 8 , column 13 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean False)) , BlockArg [ Text "wonderful" ] ]) , Space , Text "experiences" , Text "." , Space , HardBreak , Text "Welcome" , Space , Text "to" , Space , Text "wonde" , Code "typ/text/hyphenate-01.typ" ( line 9 , column 18 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean False)) , BlockArg [ Text "rf" ] ]) , Text "ul" , Space , Text "experiences" , Text "." , Space , HardBreak , SoftBreak , Comment , Code "typ/text/hyphenate-01.typ" ( line 12 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean False)) ]) , SoftBreak , Text "Welcome" , Space , Text "to" , Space , Text "wonderful" , Space , Text "experiences" , Text "." , Space , HardBreak , Text "Welcome" , Space , Text "to" , Space , Text "wo" , Code "typ/text/hyphenate-01.typ" ( line 14 , column 15 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) , BlockArg [ Text "nd" ] ]) , Text "erful" , Space , Text "experiences" , Text "." , Space , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Welcome to wonderful experiences. ], hyphenate: true), linebreak(), text(body: [Welcome to ], hyphenate: true), raw(block: false, lang: none, text: "wonderful"), text(body: [ experiences. ], hyphenate: true), linebreak(), text(body: [Welcome to ], hyphenate: true), text(body: text(body: [wonderful], hyphenate: true), hyphenate: false), text(body: [ experiences. ], hyphenate: true), linebreak(), text(body: [Welcome to wonde], hyphenate: true), text(body: text(body: [rf], hyphenate: true), hyphenate: false), text(body: [ul experiences. ], hyphenate: true), linebreak(), text(body: [ ], hyphenate: true), text(body: [ Welcome to wonderful experiences. ], hyphenate: false), linebreak(), text(body: [Welcome to wo], hyphenate: false), text(body: text(body: [nd], hyphenate: false), hyphenate: true), text(body: [erful experiences. ], hyphenate: false), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/text/hyphenate-01.typ0000644000000000000000000000073107346545000016754 0ustar0000000000000000// Test disabling hyphenation for short passages. #set page(width: 110pt) #set text(hyphenate: true) Welcome to wonderful experiences. \ Welcome to `wonderful` experiences. \ Welcome to #text(hyphenate: false)[wonderful] experiences. \ Welcome to wonde#text(hyphenate: false)[rf]ul experiences. \ // Test enabling hyphenation for short passages. #set text(hyphenate: false) Welcome to wonderful experiences. \ Welcome to wo#text(hyphenate: true)[nd]erful experiences. \ typst-0.8.0.2/test/typ/text/hyphenate-02.out0000644000000000000000000000512707346545000016754 0ustar0000000000000000--- parse tree --- [ Code "typ/text/hyphenate-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/hyphenate-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/hyphenate-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/hyphenate-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 80.0 Pt)) ]) , SoftBreak , Code "typ/text/hyphenate-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , SoftBreak , Text "It" , Quote '\'' , Text "s" , Space , Text "a" , Space , Code "typ/text/hyphenate-02.typ" ( line 5 , column 9 ) (FuncCall (Ident (Identifier "emph")) [ BlockArg [ Text "Tree" ] ]) , Text "beard" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ It’s a ], hyphenate: true), emph(body: text(body: [Tree], hyphenate: true)), text(body: [beard.], hyphenate: true), parbreak() }) typst-0.8.0.2/test/typ/text/hyphenate-02.typ0000644000000000000000000000015507346545000016755 0ustar0000000000000000// Hyphenate between shape runs. #set page(width: 80pt) #set text(hyphenate: true) It's a #emph[Tree]beard. typst-0.8.0.2/test/typ/text/hyphenate-03.out0000644000000000000000000000567707346545000016767 0ustar0000000000000000--- parse tree --- [ Code "typ/text/hyphenate-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/hyphenate-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/hyphenate-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/hyphenate-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/text/hyphenate-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Literal (Int 2)) (Array [ Reg (Literal (Numeric 20.0 Pt)) ])) , KeyValArg (Identifier "gutter") (Literal (Numeric 20.0 Pt)) , NormalArg (Block (Content [ Text "Barankauf" ])) , NormalArg (Block (Content [ Text "Bar" , Shy , Text "ankauf" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], hyphenate: true, lang: "de"), grid(children: (text(body: [Barankauf], hyphenate: true, lang: "de"), text(body: [Bar­ankauf], hyphenate: true, lang: "de")), columns: (20.0pt, 20.0pt), gutter: 20.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/hyphenate-03.typ0000644000000000000000000000021607346545000016754 0ustar0000000000000000// Test shy hyphens. #set text(lang: "de", hyphenate: true) #grid( columns: 2 * (20pt,), gutter: 20pt, [Barankauf], [Bar-?ankauf], ) typst-0.8.0.2/test/typ/text/hyphenate-04.out0000644000000000000000000000510107346545000016746 0ustar0000000000000000--- parse tree --- [ Code "typ/text/hyphenate-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/hyphenate-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/hyphenate-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Comment , Comment , Code "typ/text/hyphenate-04.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/text/hyphenate-04.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/text/hyphenate-04.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "h")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , Space , Text "networks," , Space , Text "the" , Space , Text "rest" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], hyphenate: true), h(amount: 6.0pt), text(body: [ networks, the rest.], hyphenate: true), parbreak() }) typst-0.8.0.2/test/typ/text/hyphenate-04.typ0000644000000000000000000000046407346545000016762 0ustar0000000000000000// This sequence would confuse hypher if we passed trailing / leading // punctuation instead of just the words. So this tests that we don't // do that. The test passes if there's just one hyphenation between // "net" and "works". #set page(width: 60pt) #set text(hyphenate: true) #h(6pt) networks, the rest. typst-0.8.0.2/test/typ/text/lang-00.out0000644000000000000000000000654507346545000015713 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lang-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lang-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lang-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lang-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "hyphenate") (Literal (Boolean True)) ]) , SoftBreak , Code "typ/text/lang-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Times (Literal (Int 2)) (Array [ Reg (Literal (Numeric 20.0 Pt)) ])) , KeyValArg (Identifier "gutter") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "en")) , BlockArg [ Quote '"' , Text "Eingabeaufforderung" , Quote '"' ] ]) , NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , BlockArg [ Quote '"' , Text "Eingabeaufforderung" , Quote '"' ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], hyphenate: true), grid(children: (text(body: text(body: [“Eingabeaufforderung”], hyphenate: true), hyphenate: true, lang: "en"), text(body: text(body: [“Eingabeaufforderung”], hyphenate: true), hyphenate: true, lang: "de")), columns: (20.0pt, 20.0pt), gutter: 1.0fr), parbreak() }) typst-0.8.0.2/test/typ/text/lang-00.typ0000644000000000000000000000033107346545000015703 0ustar0000000000000000// Ensure that setting the language does have effects. #set text(hyphenate: true) #grid( columns: 2 * (20pt,), gutter: 1fr, text(lang: "en")["Eingabeaufforderung"], text(lang: "de")["Eingabeaufforderung"], ) typst-0.8.0.2/test/typ/text/lang-01.out0000644000000000000000000000562607346545000015713 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lang-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lang-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lang-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lang-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Ubuntu")) ]) , ParBreak , Comment , Comment , Comment , Comment , Text "\1041\1073" , SoftBreak , Code "typ/text/lang-01.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "uk")) , BlockArg [ Text "\1041\1073" ] ]) , SoftBreak , Code "typ/text/lang-01.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "sr")) , BlockArg [ Text "\1041\1073" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Бб ], font: "Ubuntu"), text(body: text(body: [Бб], font: "Ubuntu"), font: "Ubuntu", lang: "uk"), text(body: [ ], font: "Ubuntu"), text(body: text(body: [Бб], font: "Ubuntu"), font: "Ubuntu", lang: "sr"), parbreak() }) typst-0.8.0.2/test/typ/text/lang-01.typ0000644000000000000000000000067107346545000015713 0ustar0000000000000000// Test that the language passed to the shaper has an effect. #set text(font: "Ubuntu") // Some lowercase letters are different in Serbian Cyrillic compared to other // Cyrillic languages. Since there is only one set of Unicode codepoints for // Cyrillic, these can only be seen when setting the language to Serbian and // selecting one of the few fonts that support these letterforms. Бб #text(lang: "uk")[Бб] #text(lang: "sr")[Бб] typst-0.8.0.2/test/typ/text/lang-02.out0000644000000000000000000000002107346545000015674 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/lang-02.typ0000644000000000000000000000010307346545000015702 0ustar0000000000000000// Error: 17-21 expected string, found none #set text(lang: none) typst-0.8.0.2/test/typ/text/lang-03.out0000644000000000000000000000002107346545000015675 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/lang-03.typ0000644000000000000000000000014207346545000015706 0ustar0000000000000000// Error: 17-20 expected two or three letter language code (ISO 639-1/2/3) #set text(lang: "ӛ") typst-0.8.0.2/test/typ/text/lang-04.out0000644000000000000000000000002107346545000015676 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/lang-04.typ0000644000000000000000000000014407346545000015711 0ustar0000000000000000// Error: 17-20 expected two or three letter language code (ISO 639-1/2/3) #set text(lang: "😃") typst-0.8.0.2/test/typ/text/lang-05.out0000644000000000000000000000002107346545000015677 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/lang-05.typ0000644000000000000000000000013607346545000015713 0ustar0000000000000000// Error: 19-24 expected two letter region code (ISO 3166-1 alpha-2) #set text(region: "hey") typst-0.8.0.2/test/typ/text/lang-with-region-00.out0000644000000000000000000000414407346545000020136 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lang-with-region-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lang-with-region-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lang-with-region-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lang-with-region-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "zh")) ]) , SoftBreak , Code "typ/text/lang-with-region-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], lang: "zh"), outline(), parbreak() }) typst-0.8.0.2/test/typ/text/lang-with-region-00.typ0000644000000000000000000000007007346545000020135 0ustar0000000000000000// without any region #set text(lang: "zh") #outline() typst-0.8.0.2/test/typ/text/lang-with-region-01.out0000644000000000000000000000435007346545000020136 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lang-with-region-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lang-with-region-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lang-with-region-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lang-with-region-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "zh")) , KeyValArg (Identifier "region") (Literal (String "XX")) ]) , SoftBreak , Code "typ/text/lang-with-region-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], lang: "zh", region: "XX"), outline(), parbreak() }) typst-0.8.0.2/test/typ/text/lang-with-region-01.typ0000644000000000000000000000012207346545000020134 0ustar0000000000000000// with unknown region configured #set text(lang: "zh", region: "XX") #outline() typst-0.8.0.2/test/typ/text/lang-with-region-02.out0000644000000000000000000000435007346545000020137 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lang-with-region-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lang-with-region-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lang-with-region-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lang-with-region-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "zh")) , KeyValArg (Identifier "region") (Literal (String "TW")) ]) , SoftBreak , Code "typ/text/lang-with-region-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "outline")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], lang: "zh", region: "TW"), outline(), parbreak() }) typst-0.8.0.2/test/typ/text/lang-with-region-02.typ0000644000000000000000000000011107346545000020133 0ustar0000000000000000// with region configured #set text(lang: "zh", region: "TW") #outline() typst-0.8.0.2/test/typ/text/linebreak-00.out0000644000000000000000000000356107346545000016721 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "This" , Space , Text "is" , Space , Text "a" , Space , Text "spaceexceedinglylongy" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [This is a spaceexceedinglylongy.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-00.typ0000644000000000000000000000014107346545000016715 0ustar0000000000000000// Test overlong word that is not directly after a hard break. This is a spaceexceedinglylongy. typst-0.8.0.2/test/typ/text/linebreak-01.out0000644000000000000000000000361307346545000016720 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Supercalifragilisticexpialidocious" , Space , Text "Expialigoricmetrioxidation" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Supercalifragilisticexpialidocious Expialigoricmetrioxidation.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-01.typ0000644000000000000000000000014507346545000016722 0ustar0000000000000000// Test two overlong words in a row. Supercalifragilisticexpialidocious Expialigoricmetrioxidation. typst-0.8.0.2/test/typ/text/linebreak-02.out0000644000000000000000000000410507346545000016716 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "This" , Space , Text "is" , Space , Text "partly" , Space , Text "emp" , Code "typ/text/linebreak-02.typ" ( line 3 , column 20 ) (FuncCall (Ident (Identifier "emph")) [ BlockArg [ Text "has" ] ]) , Text "ized" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [This is partly emp]), emph(body: text(body: [has])), text(body: [ized.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-02.typ0000644000000000000000000000015607346545000016725 0ustar0000000000000000// Test that there are no unwanted line break opportunities on run change. This is partly emp#emph[has]ized. typst-0.8.0.2/test/typ/text/linebreak-03.out0000644000000000000000000000366707346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Text "Hard" , Space , Code "typ/text/linebreak-03.typ" ( line 2 , column 7 ) (FuncCall (Ident (Identifier "linebreak")) []) , Space , Text "break" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ Hard ]), linebreak(), text(body: [ break.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-03.typ0000644000000000000000000000003207346545000016717 0ustar0000000000000000Hard #linebreak() break. typst-0.8.0.2/test/typ/text/linebreak-04.out0000644000000000000000000000375607346545000016733 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Hard" , Space , Text "break" , Space , Text "directly" , Space , Text "after" , Space , HardBreak , Text "normal" , Space , Text "break" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Hard break directly after ]), linebreak(), text(body: [normal break.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-04.typ0000644000000000000000000000013307346545000016722 0ustar0000000000000000// Test hard break directly after normal break. Hard break directly after \ normal break. typst-0.8.0.2/test/typ/text/linebreak-05.out0000644000000000000000000000421707346545000016725 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Two" , Space , Text "consecutive" , Space , HardBreak , HardBreak , Text "breaks" , Space , Text "and" , Space , Text "three" , Space , HardBreak , HardBreak , Text "more" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Two consecutive ]), linebreak(), linebreak(), text(body: [breaks and three ]), linebreak(), linebreak(), text(body: [more.]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-05.typ0000644000000000000000000000011407346545000016722 0ustar0000000000000000// Test consecutive breaks. Two consecutive \ \ breaks and three \ \ more. typst-0.8.0.2/test/typ/text/linebreak-06.out0000644000000000000000000000360007346545000016721 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Trailing" , Space , Text "break" , Space , HardBreak , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Trailing break ]), linebreak(), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-06.typ0000644000000000000000000000007407346545000016730 0ustar0000000000000000// Test forcing an empty trailing line. Trailing break \ \ typst-0.8.0.2/test/typ/text/linebreak-07.out0000644000000000000000000000616007346545000016726 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/linebreak-07.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "With" , Space , Text "a" , Space , Text "soft" , Space , Code "typ/text/linebreak-07.typ" ( line 4 , column 14 ) (FuncCall (Ident (Identifier "linebreak")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "break" , Space , Text "you" , Space , Text "can" , Space , Text "force" , Space , Text "a" , Space , Text "break" , Space , Text "without" , Space , Code "typ/text/linebreak-07.typ" ( line 5 , column 38 ) (FuncCall (Ident (Identifier "linebreak")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) ]) , SoftBreak , Text "breaking" , Space , Text "justification" , Text "." , Space , Code "typ/text/linebreak-07.typ" ( line 6 , column 26 ) (FuncCall (Ident (Identifier "linebreak")) [ KeyValArg (Identifier "justify") (Literal (Boolean False)) ]) , SoftBreak , Text "Nice!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ With a soft ]), linebreak(justify: true), text(body: [ break you can force a break without ]), linebreak(justify: true), text(body: [ breaking justification. ]), linebreak(justify: false), text(body: [ Nice!]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-07.typ0000644000000000000000000000032007346545000016723 0ustar0000000000000000// Test justified breaks. #set par(justify: true) With a soft #linebreak(justify: true) break you can force a break without #linebreak(justify: true) breaking justification. #linebreak(justify: false) Nice! typst-0.8.0.2/test/typ/text/linebreak-08.out0000644000000000000000000000414007346545000016723 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-08.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-08.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-08.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "First" , Space , Text "part" , Comment , Text "Second" , Space , Text "part" , ParBreak , Comment , Text "First" , Space , Text "part" , Space , Comment , Text "Second" , Space , Text "part" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [First part]), text(body: [Second part]), parbreak(), text(body: [First part ]), text(body: [Second part]), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-08.typ0000644000000000000000000000023207346545000016726 0ustar0000000000000000// Test comments at the end of a line First part// Second part // Test comments at the end of a line with pre-spacing First part // Second part typst-0.8.0.2/test/typ/text/linebreak-obj-00.out0000644000000000000000000000535207346545000017471 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-obj-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-obj-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-obj-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/linebreak-obj-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 162.0 Pt)) ]) , ParBreak , Text "They" , Space , Text "can" , Space , Text "look" , Space , Text "for" , Space , Text "the" , Space , Text "details" , Space , Text "in" , Space , Ref "netwok" (Literal Auto) , Text "," , SoftBreak , Text "which" , Space , Text "is" , Space , Text "the" , Space , Text "authoritative" , Space , Text "source" , Text "." , ParBreak , Code "typ/text/linebreak-obj-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "bibliography")) [ NormalArg (Literal (String "/works.bib")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [They can look for the details in ]), ref(supplement: auto, target: ), text(body: [, which is the authoritative source.]), parbreak(), bibliography(source: "/works.bib"), parbreak() }) typst-0.8.0.2/test/typ/text/linebreak-obj-00.typ0000644000000000000000000000025107346545000017467 0ustar0000000000000000// Test punctuation after citations. #set page(width: 162pt) They can look for the details in @netwok, which is the authoritative source. #bibliography("/works.bib") typst-0.8.0.2/test/typ/text/linebreak-obj-01.out0000644000000000000000000001453107346545000017471 0ustar0000000000000000--- parse tree --- [ Code "typ/text/linebreak-obj-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/linebreak-obj-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/linebreak-obj-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/linebreak-obj-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 85.0 Pt)) ]) , ParBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "." , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "!" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "?" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "," , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text ";" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text ":" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "-" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "\8211" , Space , HardBreak , Text "We" , Space , Text "prove" , Space , Equation False [ Text "1" , Text "<" , Text "2" ] , Text "\8212" , Space , HardBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [. ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [! ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [? ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [, ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [; ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [: ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [- ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [– ]), linebreak(), text(body: [We prove ]), math.equation(block: false, body: { text(body: [1]), text(body: [<]), text(body: [2]) }, numbering: none), text(body: [— ]), linebreak() }) typst-0.8.0.2/test/typ/text/linebreak-obj-01.typ0000644000000000000000000000037207346545000017474 0ustar0000000000000000// Test punctuation after math equations. #set page(width: 85pt) We prove $1 < 2$. \ We prove $1 < 2$! \ We prove $1 < 2$? \ We prove $1 < 2$, \ We prove $1 < 2$; \ We prove $1 < 2$: \ We prove $1 < 2$- \ We prove $1 < 2$– \ We prove $1 < 2$— \ typst-0.8.0.2/test/typ/text/lorem-00.out0000644000000000000000000000375207346545000016105 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lorem-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lorem-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lorem-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lorem-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 19)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.]), parbreak() }) typst-0.8.0.2/test/typ/text/lorem-00.typ0000644000000000000000000000004007346545000016075 0ustar0000000000000000// Test basic call. #lorem(19) typst-0.8.0.2/test/typ/text/lorem-01.out0000644000000000000000000001227607346545000016107 0ustar0000000000000000--- parse tree --- [ Code "typ/text/lorem-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/lorem-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/lorem-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/lorem-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , ParBreak , Code "typ/text/lorem-01.typ" ( line 5 , column 2 ) (Block (CodeBlock [ Let (BasicBind (Just (Identifier "sentences"))) (FuncCall (FieldAccess (Ident (Identifier "map")) (FuncCall (FieldAccess (Ident (Identifier "filter")) (FuncCall (FieldAccess (Ident (Identifier "split")) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 59)) ])) [ NormalArg (Literal (String ".")) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Not (Equals (Ident (Identifier "s")) (Literal (String ""))))) ])) [ NormalArg (FuncExpr [ NormalParam (Identifier "s") ] (Plus (Ident (Identifier "s")) (Literal (String ".")))) ]) , Let (BasicBind (Just (Identifier "used"))) (Literal (Int 0)) , For (BasicBind (Just (Identifier "s"))) (Ident (Identifier "sentences")) (Block (CodeBlock [ If [ ( LessThan (Ident (Identifier "used")) (Literal (Int 2)) , Block (CodeBlock [ Assign (Ident (Identifier "used")) (Plus (Ident (Identifier "used")) (Literal (Int 1))) ]) ) , ( Literal (Boolean True) , Block (CodeBlock [ FuncCall (Ident (Identifier "parbreak")) [] , Assign (Ident (Identifier "used")) (Literal (Int 0)) ]) ) ] , FuncCall (FieldAccess (Ident (Identifier "trim")) (Ident (Identifier "s"))) [] , Block (Content [ Space ]) ])) ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.], size: 8.0pt), text(body: [ ], size: 8.0pt), text(body: [Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.], size: 8.0pt), text(body: [ ], size: 8.0pt), parbreak(), text(body: [Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.], size: 8.0pt), text(body: [ ], size: 8.0pt), text(body: [Excepteur sint occaecat cupidatat non proident, sunt.], size: 8.0pt), text(body: [ ], size: 8.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/lorem-01.typ0000644000000000000000000000046207346545000016106 0ustar0000000000000000// Test custom paragraphs with user code. #set text(8pt) #{ let sentences = lorem(59) .split(".") .filter(s => s != "") .map(s => s + ".") let used = 0 for s in sentences { if used < 2 { used += 1 } else { parbreak() used = 0 } s.trim() [ ] } } typst-0.8.0.2/test/typ/text/lorem-02.out0000644000000000000000000000002107346545000016071 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/lorem-02.typ0000644000000000000000000000005707346545000016107 0ustar0000000000000000// Error: 7-9 missing argument: words #lorem() typst-0.8.0.2/test/typ/text/microtype-00.out0000644000000000000000000001371707346545000017004 0ustar0000000000000000--- parse tree --- [ Code "typ/text/microtype-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/microtype-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/microtype-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/microtype-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 130.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 15.0 Pt)) ]) , SoftBreak , Code "typ/text/microtype-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "par")) [ KeyValArg (Identifier "justify") (Literal (Boolean True)) , KeyValArg (Identifier "linebreaks") (Literal (String "simple")) ]) , SoftBreak , Code "typ/text/microtype-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "size") (Literal (Numeric 9.0 Pt)) ]) , SoftBreak , Code "typ/text/microtype-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) , NormalArg (Literal (Int 0)) ]) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , BlockArg [ SoftBreak , Text "This" , Space , Text "is" , Space , Text "a" , Space , Text "little" , Space , Text "bit" , Space , Text "of" , Space , Text "text" , Space , Text "that" , Space , Text "builds" , Space , Text "up" , Space , Text "to" , SoftBreak , Text "hang" , Text "-" , Text "ing" , Space , Text "hyphens" , Space , Text "and" , Space , Text "dash" , EmDash , Text "es" , Space , Text "and" , Space , Text "then," , Space , Text "you" , Space , Text "know," , SoftBreak , Text "some" , Space , Text "punctuation" , Space , Text "in" , Space , Text "the" , Space , Text "margin" , Text "." , ParBreak ] ]) , ParBreak , Comment , Code "typ/text/microtype-00.typ" ( line 13 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) , KeyValArg (Identifier "font") (Array [ Reg (Literal (String "PT Sans")) , Reg (Literal (String "Noto Serif Hebrew")) ]) ]) , SoftBreak , Text "\1489\1504\1497\1497\1492" , Space , Text "\1504\1499\1493\1504\1492" , Space , Text "\1513\1500" , Space , Text "\1502\1513\1508\1496\1497\1501" , Space , Text "\1488\1512\1493\1499\1497\1501" , Space , Text "\1491\1493\1512\1513\1514" , Space , Text "\1497\1491\1506" , Space , Text "\1489\1513\1508\1492" , Text "." , Space , Text "\1488\1494" , Space , Text "\1489\1493\1488\1493" , Space , Text "\1504\1491\1489\1512" , Space , Text "\1506\1500" , Space , Text "\1502\1494\1490" , Space , Text "\1492\1488\1493\1493\1497\1512" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ], size: 9.0pt), rect(body: { text(body: [ This is a little bit of text that builds up to hang-ing hyphens and dash—es and then, you know, some punctuation in the margin.], size: 9.0pt), parbreak() }, fill: rgb(0%,0%,0%,0%), inset: 0.0pt, width: 100%), parbreak(), text(body: [ בנייה נכונה של משפטים ארוכים דורשת ידע בשפה. אז בואו נדבר על מזג האוויר.], font: ("PT Sans", "Noto Serif Hebrew"), lang: "he", size: 9.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/microtype-00.typ0000644000000000000000000000105707346545000017003 0ustar0000000000000000// Test hanging punctuation. #set page(width: 130pt, margin: 15pt) #set par(justify: true, linebreaks: "simple") #set text(size: 9pt) #rect(inset: 0pt, fill: rgb(0, 0, 0, 0), width: 100%)[ This is a little bit of text that builds up to hang-ing hyphens and dash---es and then, you know, some punctuation in the margin. ] // Test hanging punctuation with RTL. #set text(lang: "he", font: ("PT Sans", "Noto Serif Hebrew")) בנייה נכונה של משפטים ארוכים דורשת ידע בשפה. אז בואו נדבר על מזג האוויר. typst-0.8.0.2/test/typ/text/microtype-01.out0000644000000000000000000000455707346545000017007 0ustar0000000000000000--- parse tree --- [ Code "typ/text/microtype-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/microtype-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/microtype-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/microtype-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/text/microtype-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "end")) ]) , SoftBreak , Code "typ/text/microtype-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) ]) , SoftBreak , Text ":" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ :], dir: rtl), parbreak() }) typst-0.8.0.2/test/typ/text/microtype-01.typ0000644000000000000000000000017507346545000017004 0ustar0000000000000000// Test that lone punctuation doesn't overhang into the margin. #set page(margin: 0pt) #set align(end) #set text(dir: rtl) : typst-0.8.0.2/test/typ/text/quotes-00.out0000644000000000000000000002463307346545000016310 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/quotes-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 250.0 Pt)) ]) , ParBreak , Comment , Code "typ/text/quotes-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "en")) ]) , SoftBreak , Quote '"' , Text "The" , Space , Text "horse" , Space , Text "eats" , Space , Text "no" , Space , Text "cucumber" , Space , Text "salad" , Quote '"' , Space , Text "was" , Space , Text "the" , Space , Text "first" , Space , Text "sentence" , Space , Text "ever" , Space , Text "uttered" , Space , Text "on" , Space , Text "the" , Space , Quote '\'' , Text "telephone" , Text "." , Quote '\'' , ParBreak , Code "typ/text/quotes-00.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) ]) , SoftBreak , Quote '"' , Text "Das" , Space , Text "Pferd" , Space , Text "frisst" , Space , Text "keinen" , Space , Text "Gurkensalat" , Quote '"' , Space , Text "war" , Space , Text "der" , Space , Text "erste" , Space , Text "jemals" , Space , Text "am" , Space , Quote '\'' , Text "Fernsprecher" , Quote '\'' , Space , Text "gesagte" , Space , Text "Satz" , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 11 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "de")) , KeyValArg (Identifier "region") (Literal (String "CH")) ]) , SoftBreak , Quote '"' , Text "Das" , Space , Text "Pferd" , Space , Text "frisst" , Space , Text "keinen" , Space , Text "Gurkensalat" , Quote '"' , Space , Text "war" , Space , Text "der" , Space , Text "erste" , Space , Text "jemals" , Space , Text "am" , Space , Quote '\'' , Text "Fernsprecher" , Quote '\'' , Space , Text "gesagte" , Space , Text "Satz" , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 14 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "es")) , KeyValArg (Identifier "region") (Literal None) ]) , SoftBreak , Quote '"' , Text "El" , Space , Text "caballo" , Space , Text "no" , Space , Text "come" , Space , Text "ensalada" , Space , Text "de" , Space , Text "pepino" , Quote '"' , Space , Text "fue" , Space , Text "la" , Space , Text "primera" , Space , Text "frase" , Space , Text "pronunciada" , Space , Text "por" , Space , Quote '\'' , Text "tel\233fono" , Quote '\'' , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 17 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "es")) , KeyValArg (Identifier "region") (Literal (String "MX")) ]) , SoftBreak , Quote '"' , Text "El" , Space , Text "caballo" , Space , Text "no" , Space , Text "come" , Space , Text "ensalada" , Space , Text "de" , Space , Text "pepino" , Quote '"' , Space , Text "fue" , Space , Text "la" , Space , Text "primera" , Space , Text "frase" , Space , Text "pronunciada" , Space , Text "por" , Space , Quote '\'' , Text "tel\233fono" , Quote '\'' , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 20 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "fr")) , KeyValArg (Identifier "region") (Literal None) ]) , SoftBreak , Quote '"' , Text "Le" , Space , Text "cheval" , Space , Text "ne" , Space , Text "mange" , Space , Text "pas" , Space , Text "de" , Space , Text "salade" , Space , Text "de" , Space , Text "concombres" , Quote '"' , Space , Text "est" , Space , Text "la" , Space , Text "premi\232re" , Space , Text "phrase" , Space , Text "jamais" , Space , Text "prononc\233e" , Space , Text "au" , Space , Quote '\'' , Text "t\233l\233phone" , Quote '\'' , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 23 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "fi")) ]) , SoftBreak , Quote '"' , Text "Hevonen" , Space , Text "ei" , Space , Text "sy\246" , Space , Text "kurkkusalaattia" , Quote '"' , Space , Text "oli" , Space , Text "ensimm\228inen" , Space , Text "koskaan" , Space , Quote '\'' , Text "puhelimessa" , Quote '\'' , Space , Text "lausuttu" , Space , Text "lause" , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 26 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "he")) ]) , SoftBreak , Quote '"' , Text "\1492\1505\1493\1505" , Space , Text "\1500\1488" , Space , Text "\1488\1493\1499\1500" , Space , Text "\1505\1500\1496" , Space , Text "\1502\1500\1508\1508\1493\1504\1497\1501" , Quote '"' , Space , Text "\1492\1497\1492" , Space , Text "\1492\1502\1513\1508\1496" , Space , Text "\1492\1492\1512\1488\1513\1493\1503" , Space , Text "\1513\1504\1488\1502\1512" , Space , Text "\1489" , Space , Quote '\'' , Text "\1496\1500\1508\1493\1503" , Quote '\'' , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 29 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ro")) ]) , SoftBreak , Quote '"' , Text "Calul" , Space , Text "nu" , Space , Text "m\259n\226nc\259" , Space , Text "salat\259" , Space , Text "de" , Space , Text "castrave\539i" , Quote '"' , Space , Text "a" , Space , Text "fost" , Space , Text "prima" , Space , Text "propozi\539ie" , Space , Text "rostit\259" , Space , Text "vreodat\259" , Space , Text "la" , Space , Quote '\'' , Text "telefon" , Quote '\'' , Text "." , ParBreak , Code "typ/text/quotes-00.typ" ( line 32 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "ru")) ]) , SoftBreak , Quote '"' , Text "\1051\1086\1096\1072\1076\1100" , Space , Text "\1085\1077" , Space , Text "\1077\1089\1090" , Space , Text "\1089\1072\1083\1072\1090" , Space , Text "\1080\1079" , Space , Text "\1086\1075\1091\1088\1094\1086\1074" , Quote '"' , Space , Text "-" , Space , Text "\1101\1090\1086" , Space , Text "\1073\1099\1083\1072" , Space , Text "\1087\1077\1088\1074\1072\1103" , Space , Text "\1092\1088\1072\1079\1072," , Space , Text "\1089\1082\1072\1079\1072\1085\1085\1072\1103" , Space , Text "\1087\1086" , Space , Quote '\'' , Text "\1090\1077\1083\1077\1092\1086\1085\1091" , Quote '\'' , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ “The horse eats no cucumber salad” was the first sentence ever uttered on the ‘telephone.’], lang: "en"), parbreak(), text(body: [ “Das Pferd frisst keinen Gurkensalat” war der erste jemals am ‘Fernsprecher” gesagte Satz.], lang: "de"), parbreak(), text(body: [ “Das Pferd frisst keinen Gurkensalat” war der erste jemals am ‘Fernsprecher” gesagte Satz.], lang: "de", region: "CH"), parbreak(), text(body: [ “El caballo no come ensalada de pepino” fue la primera frase pronunciada por ‘teléfono’.], lang: "es", region: none), parbreak(), text(body: [ “El caballo no come ensalada de pepino” fue la primera frase pronunciada por ‘teléfono’.], lang: "es", region: "MX"), parbreak(), text(body: [ “Le cheval ne mange pas de salade de concombres” est la première phrase jamais prononcée au ‘téléphone’.], lang: "fr", region: none), parbreak(), text(body: [ “Hevonen ei syö kurkkusalaattia” oli ensimmäinen koskaan ‘puhelimessa” lausuttu lause.], lang: "fi", region: none), parbreak(), text(body: [ “הסוס לא אוכל סלט מלפפונים” היה המשפט ההראשון שנאמר ב ‘טלפון’.], lang: "he", region: none), parbreak(), text(body: [ “Calul nu mănâncă salată de castraveți” a fost prima propoziție rostită vreodată la ‘telefon’.], lang: "ro", region: none), parbreak(), text(body: [ “Лошадь не ест салат из огурцов” - это была первая фраза, сказанная по ‘телефону’.], lang: "ru", region: none), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-00.typ0000644000000000000000000000253007346545000016305 0ustar0000000000000000#set page(width: 250pt) // Test simple quotations in various languages. #set text(lang: "en") "The horse eats no cucumber salad" was the first sentence ever uttered on the 'telephone.' #set text(lang: "de") "Das Pferd frisst keinen Gurkensalat" war der erste jemals am 'Fernsprecher' gesagte Satz. #set text(lang: "de", region: "CH") "Das Pferd frisst keinen Gurkensalat" war der erste jemals am 'Fernsprecher' gesagte Satz. #set text(lang: "es", region: none) "El caballo no come ensalada de pepino" fue la primera frase pronunciada por 'teléfono'. #set text(lang: "es", region: "MX") "El caballo no come ensalada de pepino" fue la primera frase pronunciada por 'teléfono'. #set text(lang: "fr", region: none) "Le cheval ne mange pas de salade de concombres" est la première phrase jamais prononcée au 'téléphone'. #set text(lang: "fi") "Hevonen ei syö kurkkusalaattia" oli ensimmäinen koskaan 'puhelimessa' lausuttu lause. #set text(lang: "he") "הסוס לא אוכל סלט מלפפונים" היה המשפט ההראשון שנאמר ב 'טלפון'. #set text(lang: "ro") "Calul nu mănâncă salată de castraveți" a fost prima propoziție rostită vreodată la 'telefon'. #set text(lang: "ru") "Лошадь не ест салат из огурцов" - это была первая фраза, сказанная по 'телефону'. typst-0.8.0.2/test/typ/text/quotes-01.out0000644000000000000000000000337707346545000016313 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Quote '"' , Quote '"' , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [””]), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-01.typ0000644000000000000000000000004307346545000016303 0ustar0000000000000000// Test single pair of quotes. "" typst-0.8.0.2/test/typ/text/quotes-02.out0000644000000000000000000000464407346545000016312 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "The" , Space , Text "5" , Quote '\'' , Text "11" , Quote '"' , Space , Quote '\'' , Text "quick" , Quote '\'' , Space , Text "brown" , Space , Text "fox" , Space , Text "jumps" , Space , Text "over" , Space , Text "the" , Space , Quote '"' , Text "lazy" , Quote '"' , Space , Text "dog" , Quote '\'' , Text "s" , Space , Text "ear" , Text "." , ParBreak , Text "He" , Space , Text "said" , Space , Quote '"' , Text "I" , Quote '\'' , Text "m" , Space , Text "a" , Space , Text "big" , Space , Text "fella" , Text "." , Quote '"' , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [The 5’11” ‘quick” brown fox jumps over the “lazy” dog’s ear.]), parbreak(), text(body: [He said “I’m a big fella.”]), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-02.typ0000644000000000000000000000021207346545000016302 0ustar0000000000000000// Test sentences with numbers and apostrophes. The 5'11" 'quick' brown fox jumps over the "lazy" dog's ear. He said "I'm a big fella." typst-0.8.0.2/test/typ/text/quotes-03.out0000644000000000000000000000417207346545000016307 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "The" , Space , Text "5" , Text "'" , Text "11" , Text "\"" , Space , Quote '\'' , Text "quick" , Text "'" , Space , Text "brown" , Space , Text "fox" , Space , Text "jumps" , Space , Text "over" , Space , Text "the" , Space , Text "\"" , Text "lazy" , Quote '"' , Space , Text "dog" , Text "'" , Text "s" , Space , Text "ear" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [The 5'11" ‘quick' brown fox jumps over the "lazy” dog's ear.]), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-03.typ0000644000000000000000000000013507346545000016307 0ustar0000000000000000// Test escape sequences. The 5\'11\" 'quick\' brown fox jumps over the \"lazy" dog\'s ear. typst-0.8.0.2/test/typ/text/quotes-04.out0000644000000000000000000000511607346545000016307 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "He" , Quote '\'' , Text "s" , Space , Text "told" , Space , Text "some" , Space , Text "books" , Space , Text "contain" , Space , Text "questionable" , Space , Quote '"' , Text "example" , Space , Text "text" , Quote '"' , Text "." , ParBreak , Code "typ/text/quotes-04.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "smartquote")) [ KeyValArg (Identifier "enabled") (Literal (Boolean False)) ]) , SoftBreak , Text "He" , Quote '\'' , Text "s" , Space , Text "told" , Space , Text "some" , Space , Text "books" , Space , Text "contain" , Space , Text "questionable" , Space , Quote '"' , Text "example" , Space , Text "text" , Quote '"' , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [He’s told some books contain questionable “example text”.]), parbreak(), text(body: [ He’s told some books contain questionable “example text”.]), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-04.typ0000644000000000000000000000027007346545000016310 0ustar0000000000000000// Test turning smart quotes off. He's told some books contain questionable "example text". #set smartquote(enabled: false) He's told some books contain questionable "example text". typst-0.8.0.2/test/typ/text/quotes-05.out0000644000000000000000000000655607346545000016321 0ustar0000000000000000--- parse tree --- [ Code "typ/text/quotes-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/quotes-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/quotes-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Quote '"' , Text "She" , Space , Text "suddenly" , Space , Text "started" , Space , Text "speaking" , Space , Text "french" , Text ":" , Space , Code "typ/text/quotes-05.typ" ( line 3 , column 41 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "lang") (Literal (String "fr")) , BlockArg [ Quote '\'' , Text "Je" , Space , Text "suis" , Space , Text "une" , Space , Text "banane" , Text "." , Quote '\'' ] ]) , Quote '"' , Space , Text "Roman" , Space , Text "told" , Space , Text "me" , Text "." , ParBreak , Text "Some" , Space , Text "people" , Quote '\'' , Text "s" , Space , Text "thought" , Space , Text "on" , Space , Text "this" , Space , Text "would" , Space , Text "be" , Space , Code "typ/text/quotes-05.typ" ( line 5 , column 41 ) (Block (Content [ Code "typ/text/quotes-05.typ" ( line 5 , column 43 ) (Set (Ident (Identifier "smartquote")) [ KeyValArg (Identifier "enabled") (Literal (Boolean False)) ]) , Space , Quote '"' , Text "strange" , Text "." , Quote '"' ])) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [“She suddenly started speaking french: ]), text(body: text(body: [‘Je suis une banane.’]), lang: "fr"), text(body: [” Roman told me.]), parbreak(), text(body: [Some people’s thought on this would be ]), text(body: [ “strange.”]), parbreak() }) typst-0.8.0.2/test/typ/text/quotes-05.typ0000644000000000000000000000034007346545000016307 0ustar0000000000000000// Test changing properties within text. "She suddenly started speaking french: #text(lang: "fr")['Je suis une banane.']" Roman told me. Some people's thought on this would be #[#set smartquote(enabled: false); "strange."] typst-0.8.0.2/test/typ/text/raw-00.out0000644000000000000000000000364607346545000015562 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , RawInline "A" , RawInline "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), raw(block: false, lang: none, text: "A"), raw(block: false, lang: none, text: "B"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-00.typ0000644000000000000000000000003307346545000015552 0ustar0000000000000000// No extra space. `A``B` typst-0.8.0.2/test/typ/text/raw-01.out0000644000000000000000000000404007346545000015550 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , RawBlock "typ" "#let x = 1" , Space , HardBreak , RawBlock "typ" "#f(1)" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), raw(block: true, lang: "typ", text: "#let x = 1"), text(body: [ ]), linebreak(), raw(block: true, lang: "typ", text: "#f(1)"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-01.typ0000644000000000000000000000010007346545000015546 0ustar0000000000000000// Typst syntax inside. ```typ #let x = 1``` \ ```typ #f(1)``` typst-0.8.0.2/test/typ/text/raw-02.out0000644000000000000000000000373607346545000015564 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Text "Text" , SoftBreak , RawBlock "rust" "fn code() {}\n" , SoftBreak , Text "Text" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Text ]), raw(block: true, lang: "rust", text: "fn code() {}\n"), text(body: [ Text]), parbreak() }) typst-0.8.0.2/test/typ/text/raw-02.typ0000644000000000000000000000011307346545000015553 0ustar0000000000000000// Multiline block splits paragraphs. Text ```rust fn code() {} ``` Text typst-0.8.0.2/test/typ/text/raw-03.out0000644000000000000000000000351707346545000015562 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , RawBlock "" "```backticks```\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), raw(block: true, lang: none, text: "```backticks```\n"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-03.typ0000644000000000000000000000007007346545000015556 0ustar0000000000000000// Lots of backticks inside. ```` ```backticks``` ```` typst-0.8.0.2/test/typ/text/raw-04.out0000644000000000000000000000662607346545000015567 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Text "The" , Space , Text "keyword" , Space , RawBlock "rust" "let" , Text "." , ParBreak , Comment , Text "(" , RawInline "" , Text ")" , Space , HardBreak , Text "(" , RawInline " untrimmed " , Text ")" , Space , HardBreak , Text "(" , RawBlock "" "trimmed` " , Text ")" , Space , HardBreak , Text "(" , RawBlock "" "trimmed " , Text ")" , Space , HardBreak , Text "(" , RawBlock "" "trimmed" , Text ")" , Space , HardBreak , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [The keyword ]), raw(block: true, lang: "rust", text: "let"), text(body: [.]), parbreak(), text(body: [(]), raw(block: false, lang: none, text: ""), text(body: [) ]), linebreak(), text(body: [(]), raw(block: false, lang: none, text: " untrimmed "), text(body: [) ]), linebreak(), text(body: [(]), raw(block: true, lang: none, text: "trimmed` "), text(body: [) ]), linebreak(), text(body: [(]), raw(block: true, lang: none, text: "trimmed "), text(body: [) ]), linebreak(), text(body: [(]), raw(block: true, lang: none, text: "trimmed"), text(body: [) ]), linebreak(), parbreak() }) typst-0.8.0.2/test/typ/text/raw-04.typ0000644000000000000000000000033007346545000015556 0ustar0000000000000000// Trimming. // Space between "rust" and "let" is trimmed. The keyword ```rust let```. // Trimming depends on number backticks. (``) \ (` untrimmed `) \ (``` trimmed` ```) \ (``` trimmed ```) \ (``` trimmed```) \ typst-0.8.0.2/test/typ/text/raw-05.out0000644000000000000000000000347407346545000015566 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , RawInline "rust let" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), raw(block: false, lang: none, text: "rust let"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-05.typ0000644000000000000000000000007007346545000015560 0ustar0000000000000000// Single ticks should not have a language. `rust let` typst-0.8.0.2/test/typ/text/raw-06.out0000644000000000000000000000362607346545000015566 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Space , RawBlock "" " A\n B\n C\n " , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), raw(block: true, lang: none, text: " A\n B\n C\n "), parbreak() }) typst-0.8.0.2/test/typ/text/raw-06.typ0000644000000000000000000000015507346545000015565 0ustar0000000000000000// First line is not dedented and leading space is still possible. ``` A B C ``` typst-0.8.0.2/test/typ/text/raw-07.out0000644000000000000000000000412107346545000015556 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/raw-07.typ" ( line 3 , column 2 ) (Show (Just (Ident (Identifier "raw"))) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) ])) , SoftBreak , RawInline "Roboto" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), raw(block: false, lang: none, text: "Roboto"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-07.typ0000644000000000000000000000010007346545000015554 0ustar0000000000000000// Text show rule #show raw: set text(font: "Roboto") `Roboto` typst-0.8.0.2/test/typ/text/raw-08.out0000644000000000000000000000002107346545000015552 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/raw-08.typ0000644000000000000000000000007407346545000015567 0ustar0000000000000000// Unterminated. // Error: 2:1 expected 1 backtick `endless typst-0.8.0.2/test/typ/text/raw-align-00.out0000644000000000000000000000653207346545000016647 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-align-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-align-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-align-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/raw-align-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) ]) , SoftBreak , Code "typ/text/raw-align-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-align-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , Code "typ/text/raw-align-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , ParBreak , RawBlock "py" "def something(x):\n return x\n\na = 342395823859823958329\nb = 324923\n" , ParBreak , Code "typ/text/raw-align-00.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], size: 6.0pt), parbreak(), raw(block: true, lang: "py", text: "def something(x):\n return x\n\na = 342395823859823958329\nb = 324923\n"), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], size: 6.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/raw-align-00.typ0000644000000000000000000000035607346545000016652 0ustar0000000000000000// Text inside raw block should be unaffected by outer alignment by default. #set align(center) #set page(width: 180pt) #set text(6pt) #lorem(20) ```py def something(x): return x a = 342395823859823958329 b = 324923 ``` #lorem(20) typst-0.8.0.2/test/typ/text/raw-align-01.out0000644000000000000000000000744707346545000016656 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-align-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-align-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-align-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/raw-align-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-align-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , Code "typ/text/raw-align-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , SoftBreak , Code "typ/text/raw-align-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "raw")) [ KeyValArg (Identifier "lang") (Literal (String "typ")) , KeyValArg (Identifier "block") (Literal (Boolean True)) , KeyValArg (Identifier "align") (Ident (Identifier "right")) , NormalArg (Literal (String "#let f(x) = x\n#align(center, line(length: 1em))")) ]) ]) , SoftBreak , Code "typ/text/raw-align-01.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "lorem")) [ NormalArg (Literal (Int 20)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], size: 6.0pt), text(body: [ ], size: 6.0pt), align(alignment: center, body: raw(align: right, block: true, lang: "typ", text: "#let f(x) = x\n#align(center, line(length: 1em))")), text(body: [ ], size: 6.0pt), text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], size: 6.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/raw-align-01.typ0000644000000000000000000000037207346545000016651 0ustar0000000000000000// Text inside raw block should follow the specified alignment. #set page(width: 180pt) #set text(6pt) #lorem(20) #align(center, raw( lang: "typ", block: true, align: right, "#let f(x) = x\n#align(center, line(length: 1em))", )) #lorem(20) typst-0.8.0.2/test/typ/text/raw-align-02.out0000644000000000000000000000002107346545000016634 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/raw-align-02.typ0000644000000000000000000000010207346545000016641 0ustar0000000000000000// Error: 17-20 alignment must be horizontal #set raw(align: top) typst-0.8.0.2/test/typ/text/raw-code-00.out0000644000000000000000000000462207346545000016465 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-code-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-code-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-code-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/raw-code-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-code-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , SoftBreak , RawBlock "typ" "= Chapter 1\n#lorem(100)\n\n#let hi = \"Hello World\"\n#show heading: emph\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], size: 6.0pt), raw(block: true, lang: "typ", text: "= Chapter 1\n#lorem(100)\n\n#let hi = \"Hello World\"\n#show heading: emph\n"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-code-00.typ0000644000000000000000000000017007346545000016464 0ustar0000000000000000#set page(width: 180pt) #set text(6pt) ```typ = Chapter 1 #lorem(100) #let hi = "Hello World" #show heading: emph ``` typst-0.8.0.2/test/typ/text/raw-code-01.out0000644000000000000000000000513507346545000016466 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-code-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-code-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-code-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/raw-code-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-code-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , RawBlock "rust" "/// A carefully designed state machine.\n#[derive(Debug)]\nenum State<'a> { A(u8), B(&'a str) }\n\nfn advance(state: State<'_>) -> State<'_> {\n unimplemented!(\"state machine\")\n}\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), raw(block: true, lang: "rust", text: "/// A carefully designed state machine.\n#[derive(Debug)]\nenum State<'a> { A(u8), B(&'a str) }\n\nfn advance(state: State<'_>) -> State<'_> {\n unimplemented!(\"state machine\")\n}\n"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-code-01.typ0000644000000000000000000000034607346545000016472 0ustar0000000000000000#set page(width: 180pt) #set text(6pt) ```rust /// A carefully designed state machine. #[derive(Debug)] enum State<'a> { A(u8), B(&'a str) } fn advance(state: State<'_>) -> State<'_> { unimplemented!("state machine") } ``` typst-0.8.0.2/test/typ/text/raw-code-02.out0000644000000000000000000000446507346545000016474 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-code-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-code-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-code-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/raw-code-02.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-code-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , RawBlock "py" "import this\n\ndef hi():\n print(\"Hi!\")\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), raw(block: true, lang: "py", text: "import this\n\ndef hi():\n print(\"Hi!\")\n"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-code-02.typ0000644000000000000000000000013107346545000016463 0ustar0000000000000000#set page(width: 180pt) #set text(6pt) ```py import this def hi(): print("Hi!") ``` typst-0.8.0.2/test/typ/text/raw-code-03.out0000644000000000000000000000457507346545000016477 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-code-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-code-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-code-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/raw-code-03.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-code-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , RawBlock "cpp" "#include \n\nint main() {\n std::cout << \"Hello, world!\";\n}\n" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), raw(block: true, lang: "cpp", text: "#include \n\nint main() {\n std::cout << \"Hello, world!\";\n}\n"), parbreak() }) typst-0.8.0.2/test/typ/text/raw-code-03.typ0000644000000000000000000000017007346545000016467 0ustar0000000000000000#set page(width: 180pt) #set text(6pt) ```cpp #include int main() { std::cout << "Hello, world!"; } ``` typst-0.8.0.2/test/typ/text/raw-code-04.out0000644000000000000000000000764707346545000016503 0ustar0000000000000000--- parse tree --- [ Code "typ/text/raw-code-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/raw-code-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/raw-code-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/raw-code-04.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 180.0 Pt)) ]) , SoftBreak , Code "typ/text/raw-code-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 6.0 Pt)) ]) , ParBreak , Code "typ/text/raw-code-04.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Dict [ Reg ( Ident (Identifier "x") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "y") , Literal (Numeric 5.0 Pt) ) ]) , KeyValArg (Identifier "radius") (Literal (Numeric 4.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (Int 239)) , NormalArg (Literal (Int 241)) , NormalArg (Literal (Int 243)) ]) , BlockArg [ SoftBreak , RawBlock "html" "\n \n \n \n \n \n

    Topic

    \n

    The Hypertext Markup Language.

    \n \n \n \n " , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), rect(body: { text(body: [ ], size: 6.0pt), raw(block: true, lang: "html", text: "\n \n \n \n \n \n

    Topic

    \n

    The Hypertext Markup Language.

    \n \n \n \n "), parbreak() }, fill: rgb(93%,94%,95%,100%), inset: (x: 4.0pt, y: 5.0pt), radius: 4.0pt), parbreak() }) typst-0.8.0.2/test/typ/text/raw-code-04.typ0000644000000000000000000000063307346545000016474 0ustar0000000000000000#set page(width: 180pt) #set text(6pt) #rect(inset: (x: 4pt, y: 5pt), radius: 4pt, fill: rgb(239, 241, 243))[ ```html

    Topic

    The Hypertext Markup Language.

    ``` ] typst-0.8.0.2/test/typ/text/shaping-00.out0000644000000000000000000000441307346545000016413 0ustar0000000000000000--- parse tree --- [ Code "typ/text/shaping-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/shaping-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/shaping-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "ABC\2309\2346\2366\2352\2381\2335\2350\2375\2306\2335" , ParBreak , Comment , Text "\2309\2346\2366\2352\2381\2335\2350\2375\2306\2335" , ParBreak , Comment , Comment , Text "\2309" , Space , Text "\2346\2366" , Space , Text "\2352\2381" , Space , Text "\2335" , Space , Text "\2350\2375\2306" , Space , Text "\2335" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ABCअपार्टमेंट]), parbreak(), text(body: [अपार्टमेंट]), parbreak(), text(body: [अ पा र् ट में ट]), parbreak() }) typst-0.8.0.2/test/typ/text/shaping-00.typ0000644000000000000000000000040007346545000016410 0ustar0000000000000000// Test separation by script. ABCअपार्टमेंट // This is how it should look like. अपार्टमेंट // This (without the spaces) is how it would look // if we didn't separate by script. अ पा र् ट में ट typst-0.8.0.2/test/typ/text/shaping-01.out0000644000000000000000000000441607346545000016417 0ustar0000000000000000--- parse tree --- [ Code "typ/text/shaping-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/shaping-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/shaping-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/text/shaping-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "dir") (Ident (Identifier "rtl")) , KeyValArg (Identifier "font") (Literal (String "Noto Serif Hebrew")) ]) , SoftBreak , HardBreak , Text "\1496" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], dir: rtl, font: "Noto Serif Hebrew"), linebreak(), text(body: [ט], dir: rtl, font: "Noto Serif Hebrew"), parbreak() }) typst-0.8.0.2/test/typ/text/shaping-01.typ0000644000000000000000000000023107346545000016413 0ustar0000000000000000// Test that RTL safe-to-break doesn't panic even though newline // doesn't exist in shaping output. #set text(dir: rtl, font: "Noto Serif Hebrew") \ ט typst-0.8.0.2/test/typ/text/shift-00.out0000644000000000000000000001465507346545000016110 0ustar0000000000000000--- parse tree --- [ Code "typ/text/shift-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/shift-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/shift-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/shift-00.typ" ( line 2 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , NormalArg (Block (Content [ Text "Typo" , Text "." ])) , NormalArg (Block (Content [ Text "Fallb" , Text "." ])) , NormalArg (Block (Content [ Text "Synth" ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 5 , column 6 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "1" ] ]) ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 5 , column 20 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "5n" ] ]) ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 5 , column 35 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "2" , Space , Code "typ/text/shift-00.typ" ( line 5 , column 44 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 6.0 Pt)) ]) ]) ] ]) ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 6 , column 6 ) (FuncCall (Ident (Identifier "sub")) [ BlockArg [ Text "1" ] ]) ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 6 , column 18 ) (FuncCall (Ident (Identifier "sub")) [ BlockArg [ Text "5n" ] ]) ])) , NormalArg (Block (Content [ Text "x" , Code "typ/text/shift-00.typ" ( line 6 , column 31 ) (FuncCall (Ident (Identifier "sub")) [ BlockArg [ Text "2" , Space , Code "typ/text/shift-00.typ" ( line 6 , column 38 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 6.0 Pt)) ]) ]) ] ]) ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), table(children: (text(body: [Typo.]), text(body: [Fallb.]), text(body: [Synth]), { text(body: [x]), super(body: text(body: [1])) }, { text(body: [x]), super(body: text(body: [5n])) }, { text(body: [x]), super(body: { text(body: [2 ]), box(body: square(size: 6.0pt)) }) }, { text(body: [x]), sub(body: text(body: [1])) }, { text(body: [x]), sub(body: text(body: [5n])) }, { text(body: [x]), sub(body: { text(body: [2 ]), box(body: square(size: 6.0pt)) }) }), columns: 3), parbreak() }) typst-0.8.0.2/test/typ/text/shift-00.typ0000644000000000000000000000027307346545000016104 0ustar0000000000000000#table( columns: 3, [Typo.], [Fallb.], [Synth], [x#super[1]], [x#super[5n]], [x#super[2 #box(square(size: 6pt))]], [x#sub[1]], [x#sub[5n]], [x#sub[2 #box(square(size: 6pt))]], ) typst-0.8.0.2/test/typ/text/shift-01.out0000644000000000000000000000576307346545000016111 0ustar0000000000000000--- parse tree --- [ Code "typ/text/shift-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/shift-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/shift-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/shift-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "super")) [ KeyValArg (Identifier "typographic") (Literal (Boolean False)) , KeyValArg (Identifier "baseline") (Negated (Literal (Numeric 0.25 Em))) , KeyValArg (Identifier "size") (Literal (Numeric 0.7 Em)) ]) , SoftBreak , Text "n" , Code "typ/text/shift-01.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "1" ] ]) , Text "," , Space , Text "n" , Code "typ/text/shift-01.typ" ( line 3 , column 15 ) (FuncCall (Ident (Identifier "sub")) [ BlockArg [ Text "2" ] ]) , Text "," , Space , Ellipsis , Space , Text "n" , Code "typ/text/shift-01.typ" ( line 3 , column 29 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "N" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ n]), super(baseline: -0.25em, body: text(body: [1]), size: 0.7em, typographic: false), text(body: [, n]), sub(body: text(body: [2])), text(body: [, … n]), super(baseline: -0.25em, body: text(body: [N]), size: 0.7em, typographic: false), parbreak() }) typst-0.8.0.2/test/typ/text/shift-01.typ0000644000000000000000000000014507346545000016103 0ustar0000000000000000#set super(typographic: false, baseline: -0.25em, size: 0.7em) n#super[1], n#sub[2], ... n#super[N] typst-0.8.0.2/test/typ/text/shift-02.out0000644000000000000000000001134007346545000016076 0ustar0000000000000000--- parse tree --- [ Code "typ/text/shift-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/shift-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/shift-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/shift-02.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "underline")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 0.5 Pt)) , KeyValArg (Identifier "offset") (Literal (Numeric 0.15 Em)) ]) , SoftBreak , Code "typ/text/shift-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "The" , Space , Text "claim" , Code "typ/text/shift-02.typ" ( line 3 , column 22 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Text "[" , Text "4" , Text "]" ] ]) ] ]) , Space , Text "has" , Space , Text "been" , Space , Text "disputed" , Text "." , Space , HardBreak , Text "The" , Space , Text "claim" , Code "typ/text/shift-02.typ" ( line 4 , column 11 ) (FuncCall (Ident (Identifier "super")) [ BlockArg [ Code "typ/text/shift-02.typ" ( line 4 , column 18 ) (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "[" , Text "4" , Text "]" ] ]) ] ]) , Space , Text "has" , Space , Text "been" , Space , Text "disputed" , Text "." , Space , HardBreak , Text "It" , Space , Text "really" , Space , Text "has" , Space , Text "been" , Code "typ/text/shift-02.typ" ( line 5 , column 20 ) (FuncCall (Ident (Identifier "super")) [ NormalArg (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "baseline") (Literal (Numeric 0.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "underline")) [ BlockArg [ Text "[" , Text "4" , Text "]" ] ]) ]) ]) ]) , Space , HardBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), underline(body: { text(body: [The claim]), super(body: text(body: [[4]])) }, offset: 0.15em, stroke: 0.5pt), text(body: [ has been disputed. ]), linebreak(), text(body: [The claim]), super(body: underline(body: text(body: [[4]]), offset: 0.15em, stroke: 0.5pt)), text(body: [ has been disputed. ]), linebreak(), text(body: [It really has been]), super(body: box(body: text(baseline: 0.0pt, body: underline(body: text(body: [[4]]), offset: 0.15em, stroke: 0.5pt)))), text(body: [ ]), linebreak() }) typst-0.8.0.2/test/typ/text/shift-02.typ0000644000000000000000000000034507346545000016106 0ustar0000000000000000#set underline(stroke: 0.5pt, offset: 0.15em) #underline[The claim#super[\[4\]]] has been disputed. \ The claim#super[#underline[\[4\]]] has been disputed. \ It really has been#super(box(text(baseline: 0pt, underline[\[4\]]))) \ typst-0.8.0.2/test/typ/text/space-00.out0000644000000000000000000001436307346545000016062 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Code "typ/text/space-00.typ" ( line 3 , column 3 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (Int 1))) , Text "B" , Space , Code "typ/text/space-00.typ" ( line 3 , column 17 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 1)) ]) , Space , HardBreak , Text "C" , Space , Code "typ/text/space-00.typ" ( line 4 , column 4 ) (Let (BasicBind (Just (Identifier "x"))) (Literal (Int 2))) , Text "D" , Space , Code "typ/text/space-00.typ" ( line 4 , column 17 ) (FuncCall (Ident (Identifier "test")) [ NormalArg (Ident (Identifier "x")) , NormalArg (Literal (Int 2)) ]) , Space , HardBreak , Text "E" , Code "typ/text/space-00.typ" ( line 5 , column 3 ) (If [ ( Literal (Boolean True) , Block (Content [ Text "F" ]) ) ]) , Text "G" , Space , HardBreak , Text "H" , Space , Code "typ/text/space-00.typ" ( line 6 , column 4 ) (If [ ( Literal (Boolean True) , Block (CodeBlock [ Literal (String "I") ]) ) ]) , Space , Text "J" , Space , HardBreak , Text "K" , Space , Code "typ/text/space-00.typ" ( line 7 , column 4 ) (If [ ( Literal (Boolean True) , Block (Content [ Text "L" ]) ) , ( Literal (Boolean True) , Block (Content []) ) ]) , Text "M" , Space , HardBreak , Code "typ/text/space-00.typ" ( line 8 , column 2 ) (Let (BasicBind (Just (Identifier "c"))) (Literal (Boolean True))) , Space , Text "N" , Code "typ/text/space-00.typ" ( line 8 , column 18 ) (While (Ident (Identifier "c")) (Block (Content [ Code "typ/text/space-00.typ" ( line 8 , column 28 ) (Assign (Ident (Identifier "c")) (Literal (Boolean False))) , Text "O" ]))) , Space , Text "P" , Space , HardBreak , Code "typ/text/space-00.typ" ( line 9 , column 2 ) (Let (BasicBind (Just (Identifier "c"))) (Literal (Boolean True))) , Space , Text "Q" , Space , Code "typ/text/space-00.typ" ( line 9 , column 19 ) (While (Ident (Identifier "c")) (Block (CodeBlock [ Assign (Ident (Identifier "c")) (Literal (Boolean False)) , Literal (String "R") ]))) , Space , Text "S" , Space , HardBreak , Text "T" , Code "typ/text/space-00.typ" ( line 10 , column 3 ) (For (BasicBind Nothing) (Array [ Reg (Literal None) ]) (Block (CodeBlock [ Literal (String "U") ]))) , Text "V" , SoftBreak , Code "typ/text/space-00.typ" ( line 11 , column 2 ) (Let (BasicBind (Just (Identifier "foo"))) (Literal (String "A"))) , Space , HardBreak , Code "typ/text/space-00.typ" ( line 12 , column 2 ) (Ident (Identifier "foo")) , Text "B" , Space , HardBreak , Code "typ/text/space-00.typ" ( line 13 , column 2 ) (Ident (Identifier "foo")) , Space , Text "B" , Space , HardBreak , Code "typ/text/space-00.typ" ( line 14 , column 2 ) (Ident (Identifier "foo")) , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), text(body: [B ]), text(body: [✅]), text(body: [ ]), linebreak(), text(body: [C ]), text(body: [D ]), text(body: [✅]), text(body: [ ]), linebreak(), text(body: [E]), text(body: [F]), text(body: [G ]), linebreak(), text(body: [H ]), text(body: [I]), text(body: [ J ]), linebreak(), text(body: [K ]), text(body: [L]), text(body: [M ]), linebreak(), text(body: [ N]), text(body: [O]), text(body: [ P ]), linebreak(), text(body: [ Q ]), text(body: [R]), text(body: [ S ]), linebreak(), text(body: [T]), text(body: [U]), text(body: [V ]), text(body: [ ]), linebreak(), text(body: [A]), text(body: [B ]), linebreak(), text(body: [A]), text(body: [ B ]), linebreak(), text(body: [A]), text(body: [B]), parbreak() }) typst-0.8.0.2/test/typ/text/space-00.typ0000644000000000000000000000050307346545000016056 0ustar0000000000000000// Spacing around code constructs. A#let x = 1;B #test(x, 1) \ C #let x = 2;D #test(x, 2) \ E#if true [F]G \ H #if true{"I"} J \ K #if true [L] else []M \ #let c = true; N#while c [#(c = false)O] P \ #let c = true; Q #while c { c = false; "R" } S \ T#for _ in (none,) {"U"}V #let foo = "A" ; \ #foo;B \ #foo; B \ #foo ;B typst-0.8.0.2/test/typ/text/space-01.out0000644000000000000000000000444207346545000016060 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Comment , Text "B" , Comment , Text "C" , Space , HardBreak , Text "A" , Space , Comment , Space , Text "B" , Comment , Text "C" , Space , HardBreak , Text "A" , Space , Comment , Text "B" , Comment , Space , Text "C" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), text(body: [B]), text(body: [C ]), linebreak(), text(body: [A ]), text(body: [ B]), text(body: [C ]), linebreak(), text(body: [A ]), text(body: [B]), text(body: [ C]), parbreak() }) typst-0.8.0.2/test/typ/text/space-01.typ0000644000000000000000000000011407346545000016055 0ustar0000000000000000// Test spacing with comments. A/**/B/**/C \ A /**/ B/**/C \ A /**/B/**/ C typst-0.8.0.2/test/typ/text/space-02.out0000644000000000000000000000412507346545000016057 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Code "typ/text/space-02.typ" ( line 3 , column 3 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) , BlockArg [ Space ] ]) , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), text(body: text(body: [ ]), font: "IBM Plex Serif"), text(body: [B]), parbreak() }) typst-0.8.0.2/test/typ/text/space-02.typ0000644000000000000000000000014407346545000016061 0ustar0000000000000000// Test that a run consisting only of whitespace isn't trimmed. A#text(font: "IBM Plex Serif")[ ]B typst-0.8.0.2/test/typ/text/space-03.out0000644000000000000000000000415707346545000016065 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "Left" , Space , Code "typ/text/space-03.typ" ( line 3 , column 7 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "IBM Plex Serif")) , BlockArg [ Text "Right" ] ]) , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [Left ]), text(body: text(body: [Right]), font: "IBM Plex Serif"), text(body: [.]), parbreak() }) typst-0.8.0.2/test/typ/text/space-03.typ0000644000000000000000000000011507346545000016060 0ustar0000000000000000// Test font change after space. Left #text(font: "IBM Plex Serif")[Right]. typst-0.8.0.2/test/typ/text/space-04.out0000644000000000000000000000447007346545000016064 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/space-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ Text "A" , Space , HardBreak , Text "B" , Space , HardBreak , Text "C" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), align(alignment: center, body: { text(body: [A ]), linebreak(), text(body: [B ]), linebreak(), text(body: [C]) }), parbreak() }) typst-0.8.0.2/test/typ/text/space-04.typ0000644000000000000000000000011707346545000016063 0ustar0000000000000000// Test that linebreak consumed surrounding spaces. #align(center)[A \ B \ C] typst-0.8.0.2/test/typ/text/space-05.out0000644000000000000000000000363507346545000016067 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Code "typ/text/space-05.typ" ( line 3 , column 3 ) (Literal (String "\n")) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A]), text(body: [ ]), text(body: [ B]), parbreak() }) typst-0.8.0.2/test/typ/text/space-05.typ0000644000000000000000000000012507346545000016063 0ustar0000000000000000// Test that space at start of non-backslash-linebreak line isn't trimmed. A#"\n" B typst-0.8.0.2/test/typ/text/space-06.out0000644000000000000000000000355507346545000016071 0ustar0000000000000000--- parse tree --- [ Code "typ/text/space-06.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/space-06.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/space-06.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "LLLLLLLLLLLLLLLLLL" , Space , Text "R" , Space , Emph [ Text "L" ] , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [LLLLLLLLLLLLLLLLLL R ]), emph(body: text(body: [L])), parbreak() }) typst-0.8.0.2/test/typ/text/space-06.typ0000644000000000000000000000012207346545000016061 0ustar0000000000000000// Test that trailing space does not force a line break. LLLLLLLLLLLLLLLLLL R _L_ typst-0.8.0.2/test/typ/text/symbol-00.out0000644000000000000000000001201207346545000016261 0ustar0000000000000000--- parse tree --- [ Code "typ/text/symbol-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/symbol-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/symbol-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 2 , column 2 ) (FieldAccess (Ident (Identifier "face")) (Ident (Identifier "emoji"))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 3 , column 2 ) (FieldAccess (Ident (Identifier "old")) (FieldAccess (Ident (Identifier "woman")) (Ident (Identifier "emoji")))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 4 , column 2 ) (FieldAccess (Ident (Identifier "turtle")) (Ident (Identifier "emoji"))) , ParBreak , Code "typ/text/symbol-00.typ" ( line 6 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "New Computer Modern Math")) ]) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 7 , column 2 ) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym"))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 8 , column 2 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym")))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 9 , column 2 ) (FieldAccess (Ident (Identifier "squiggly")) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym"))))) , SoftBreak , Code "typ/text/symbol-00.typ" ( line 10 , column 2 ) (FieldAccess (Ident (Identifier "hook")) (FieldAccess (Ident (Identifier "tr")) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym"))))) , ParBreak , Code "typ/text/symbol-00.typ" ( line 12 , column 2 ) (FieldAccess (Ident (Identifier "r")) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym")))) , Text "this" , Space , Text "and" , Space , Text "this" , Code "typ/text/symbol-00.typ" ( line 12 , column 28 ) (FieldAccess (Ident (Identifier "l")) (FieldAccess (Ident (Identifier "arrow")) (Ident (Identifier "sym")))) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [😀]), text(body: [ ]), text(body: [👵]), text(body: [ ]), text(body: [🐢]), parbreak(), text(body: [ ], font: "New Computer Modern Math"), text(body: [→], font: "New Computer Modern Math"), text(body: [ ], font: "New Computer Modern Math"), text(body: [←], font: "New Computer Modern Math"), text(body: [ ], font: "New Computer Modern Math"), text(body: [⇝], font: "New Computer Modern Math"), text(body: [ ], font: "New Computer Modern Math"), text(body: [⤤], font: "New Computer Modern Math"), parbreak(), text(body: [→], font: "New Computer Modern Math"), text(body: [this and this], font: "New Computer Modern Math"), text(body: [←], font: "New Computer Modern Math"), parbreak() }) typst-0.8.0.2/test/typ/text/symbol-00.typ0000644000000000000000000000030307346545000016266 0ustar0000000000000000#emoji.face #emoji.woman.old #emoji.turtle #set text(font: "New Computer Modern Math") #sym.arrow #sym.arrow.l #sym.arrow.r.squiggly #sym.arrow.tr.hook #sym.arrow.r;this and this#sym.arrow.l; typst-0.8.0.2/test/typ/text/symbol-01.out0000644000000000000000000000002107346545000016257 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/text/symbol-01.typ0000644000000000000000000000007407346545000016274 0ustar0000000000000000// Error: 13-20 unknown symbol modifier #emoji.face.garbage typst-0.8.0.2/test/typ/text/tracking-spacing-00.out0000644000000000000000000000432507346545000020210 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/tracking-spacing-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "tracking") (Negated (Literal (Numeric 1.0e-2 Em))) ]) , SoftBreak , Text "I" , Space , Text "saw" , Space , Text "Zoe" , Space , Text "y\1243sterday," , Space , Text "on" , Space , Text "the" , Space , Text "tram" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ I saw Zoe yӛsterday, on the tram.], tracking: -1.0e-2em), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-00.typ0000644000000000000000000000012307346545000020205 0ustar0000000000000000// Test tracking. #set text(tracking: -0.01em) I saw Zoe yӛsterday, on the tram. typst-0.8.0.2/test/typ/text/tracking-spacing-01.out0000644000000000000000000000440007346545000020203 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "I" , Quote '\'' , Text "m" , Space , Text "in" , Code "typ/text/tracking-spacing-01.typ" ( line 3 , column 8 ) (FuncCall (Ident (Identifier "text")) [ KeyValArg (Identifier "tracking") (Plus (Literal (Numeric 0.15 Em)) (Literal (Numeric 1.5 Pt))) , BlockArg [ Space , Text "spaace" ] ]) , Text "!" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [I’m in]), text(body: text(body: [ spaace]), tracking: 0.15em + 1.5pt), text(body: [!]), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-01.typ0000644000000000000000000000013607346545000020212 0ustar0000000000000000// Test tracking for only part of paragraph. I'm in#text(tracking: 0.15em + 1.5pt)[ spaace]! typst-0.8.0.2/test/typ/text/tracking-spacing-02.out0000644000000000000000000000510607346545000020210 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/tracking-spacing-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Array [ Reg (Literal (String "PT Sans")) , Reg (Literal (String "Noto Serif Hebrew")) ]) ]) , SoftBreak , Code "typ/text/tracking-spacing-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "tracking") (Literal (Numeric 0.3 Em)) ]) , SoftBreak , Text "\1496\1462\1511\1505\1496" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], font: ("PT Sans", "Noto Serif Hebrew")), text(body: [ טֶקסט], font: ("PT Sans", "Noto Serif Hebrew"), tracking: 0.3em), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-02.typ0000644000000000000000000000021707346545000020213 0ustar0000000000000000// Test that tracking doesn't disrupt mark placement. #set text(font: ("PT Sans", "Noto Serif Hebrew")) #set text(tracking: 0.3em) טֶקסט typst-0.8.0.2/test/typ/text/tracking-spacing-03.out0000644000000000000000000000402707346545000020212 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/tracking-spacing-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "tracking") (Literal (Numeric 0.3 Em)) ]) , SoftBreak , Text "\1575\1604\1606\1589" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ النص], tracking: 0.3em), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-03.typ0000644000000000000000000000014107346545000020210 0ustar0000000000000000// Test tracking in arabic text (makes no sense whatsoever) #set text(tracking: 0.3em) النص typst-0.8.0.2/test/typ/text/tracking-spacing-04.out0000644000000000000000000000413407346545000020212 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/tracking-spacing-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Em)) ]) , SoftBreak , Text "My" , Space , Text "text" , Space , Text "has" , Space , Text "spaces" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ My text has spaces.], spacing: 1.0em), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-04.typ0000644000000000000000000000010307346545000020207 0ustar0000000000000000// Test word spacing. #set text(spacing: 1em) My text has spaces. typst-0.8.0.2/test/typ/text/tracking-spacing-05.out0000644000000000000000000000421407346545000020212 0ustar0000000000000000--- parse tree --- [ Code "typ/text/tracking-spacing-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/text/tracking-spacing-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/text/tracking-spacing-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/text/tracking-spacing-05.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "spacing") (Plus (Literal (Numeric 50.0 Percent)) (Literal (Numeric 1.0 Pt))) ]) , SoftBreak , Text "This" , Space , Text "is" , Space , Text "tight" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ This is tight.], spacing: 1.0pt + 50%), parbreak() }) typst-0.8.0.2/test/typ/text/tracking-spacing-05.typ0000644000000000000000000000014607346545000020217 0ustar0000000000000000// Test word spacing relative to the font's space width. #set text(spacing: 50% + 1pt) This is tight. typst-0.8.0.2/test/typ/visualize/0000755000000000000000000000000007346545000015041 5ustar0000000000000000typst-0.8.0.2/test/typ/visualize/image-00.out0000644000000000000000000000500207346545000017066 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/visualize/image-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) ]) , ParBreak , Comment , Code "typ/visualize/image-00.typ" ( line 8 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/visualize/image-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), image(source: "/assets/files/rhino.png"), parbreak(), text(body: [ ]), image(source: "/assets/files/tiger.jpg"), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-00.typ0000644000000000000000000000027607346545000017103 0ustar0000000000000000// Test loading different image formats. // Load an RGBA PNG image. #image("/assets/files/rhino.png") // Load an RGB JPEG image. #set page(height: 60pt) #image("/assets/files/tiger.jpg") typst-0.8.0.2/test/typ/visualize/image-01.out0000644000000000000000000001027107346545000017073 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Comment , Code "typ/visualize/image-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) , KeyValArg (Identifier "width") (Literal (Numeric 30.0 Pt)) ]) ]) , SoftBreak , Code "typ/visualize/image-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) , KeyValArg (Identifier "height") (Literal (Numeric 30.0 Pt)) ]) ]) , ParBreak , Comment , Code "typ/visualize/image-01.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/monkey.svg")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "fit") (Literal (String "stretch")) ]) , ParBreak , Comment , Code "typ/visualize/image-01.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "bottom")) (Ident (Identifier "right"))) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "alt") (Literal (String "A tiger")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), box(body: image(source: "/assets/files/rhino.png", width: 30.0pt)), text(body: [ ]), box(body: image(height: 30.0pt, source: "/assets/files/rhino.png")), parbreak(), image(fit: "stretch", height: 20.0pt, source: "/assets/files/monkey.svg", width: 100%), parbreak(), align(alignment: Axes(right, bottom), body: image(alt: "A tiger", source: "/assets/files/tiger.jpg", width: 40.0pt)), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-01.typ0000644000000000000000000000074307346545000017103 0ustar0000000000000000// Test configuring the size and fitting behaviour of images. // Set width and height explicitly. #box(image("/assets/files/rhino.png", width: 30pt)) #box(image("/assets/files/rhino.png", height: 30pt)) // Set width and height explicitly and force stretching. #image("/assets/files/monkey.svg", width: 100%, height: 20pt, fit: "stretch") // Make sure the bounding-box of the image is correct. #align(bottom + right, image("/assets/files/tiger.jpg", width: 40pt, alt: "A tiger")) typst-0.8.0.2/test/typ/visualize/image-02.out0000644000000000000000000001110107346545000017065 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/image-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/visualize/image-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "rows") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "gutter") (Literal (Numeric 3.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fit") (Literal (String "contain")) ]) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fit") (Literal (String "cover")) ]) , NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/monkey.svg")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fit") (Literal (String "stretch")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), grid(children: (image(fit: "contain", height: 100%, source: "/assets/files/tiger.jpg", width: 100%), image(fit: "cover", height: 100%, source: "/assets/files/tiger.jpg", width: 100%), image(fit: "stretch", height: 100%, source: "/assets/files/monkey.svg", width: 100%)), columns: (1.0fr, 1.0fr, 1.0fr), gutter: 3.0pt, rows: 100%), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-02.typ0000644000000000000000000000056107346545000017102 0ustar0000000000000000// Test all three fit modes. #set page(height: 50pt, margin: 0pt) #grid( columns: (1fr, 1fr, 1fr), rows: 100%, gutter: 3pt, image("/assets/files/tiger.jpg", width: 100%, height: 100%, fit: "contain"), image("/assets/files/tiger.jpg", width: 100%, height: 100%, fit: "cover"), image("/assets/files/monkey.svg", width: 100%, height: 100%, fit: "stretch"), ) typst-0.8.0.2/test/typ/visualize/image-03.out0000644000000000000000000000430407346545000017075 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/image-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Text "Stuff" , SoftBreak , Code "typ/visualize/image-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/rhino.png")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ Stuff ]), image(source: "/assets/files/rhino.png"), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-03.typ0000644000000000000000000000015607346545000017103 0ustar0000000000000000// Does not fit to remaining height of page. #set page(height: 60pt) Stuff #image("/assets/files/rhino.png") typst-0.8.0.2/test/typ/visualize/image-04.out0000644000000000000000000000464107346545000017102 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Text "A" , Space , Code "typ/visualize/image-04.typ" ( line 3 , column 4 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/tiger.jpg")) , KeyValArg (Identifier "height") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 80.0 Percent)) ]) ]) , Space , Text "B" , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [A ]), box(body: image(height: 1.0cm, source: "/assets/files/tiger.jpg", width: 80%)), text(body: [ B]), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-04.typ0000644000000000000000000000012707346545000017102 0ustar0000000000000000// Test baseline. A #box(image("/assets/files/tiger.jpg", height: 1cm, width: 80%)) B typst-0.8.0.2/test/typ/visualize/image-05.out0000644000000000000000000000370207346545000017100 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/image-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/image-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/image-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/image-05.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/pattern.svg")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), image(source: "/assets/files/pattern.svg"), parbreak() }) typst-0.8.0.2/test/typ/visualize/image-05.typ0000644000000000000000000000010407346545000017076 0ustar0000000000000000// Test advanced SVG features. #image("/assets/files/pattern.svg") typst-0.8.0.2/test/typ/visualize/image-06.out0000644000000000000000000000002107346545000017070 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/image-06.typ0000644000000000000000000000015507346545000017105 0ustar0000000000000000// Error: 8-29 file not found (searched at typ/visualize/path/does/not/exist) #image("path/does/not/exist") typst-0.8.0.2/test/typ/visualize/image-07.out0000644000000000000000000000002107346545000017071 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/image-07.typ0000644000000000000000000000007307346545000017105 0ustar0000000000000000// Error: 8-21 unknown image format #image("./image.typ") typst-0.8.0.2/test/typ/visualize/image-08.out0000644000000000000000000000002107346545000017072 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/image-08.typ0000644000000000000000000000016707346545000017112 0ustar0000000000000000// Error: 8-18 failed to parse svg: found closing tag 'g' instead of 'style' in line 4 #image("/assets/files/bad.svg") typst-0.8.0.2/test/typ/visualize/line-00.out0000644000000000000000000001267207346545000016746 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/line-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/line-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/line-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/line-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/visualize/line-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (Block (CodeBlock [ Set (Ident (Identifier "line")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 0.75 Pt)) ] , FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "end") (Array [ Reg (Literal (Numeric 0.4 Em)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) ] , FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.4 Em)) ]) , KeyValArg (Identifier "end") (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) ] , FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "end") (Array [ Reg (Literal (Numeric 0.6 Em)) , Reg (Literal (Numeric 0.6 Em)) ]) ] ])) ]) , Space , Text "Hello" , Space , Code "typ/visualize/line-00.typ" ( line 8 , column 11 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 1.0 Cm)) ]) ]) , Text "!" , ParBreak , Code "typ/visualize/line-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "end") (Array [ Reg (Literal (Numeric 70.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), box(body: { place(body: line(end: (0.4em, 0.0pt), stroke: 0.75pt)), place(body: line(end: (0.0pt, 0.0pt), start: (0.0pt, 0.4em), stroke: 0.75pt)), line(end: (0.6em, 0.6em), stroke: 0.75pt) }), text(body: [ Hello ]), box(body: line(length: 1.0cm)), text(body: [!]), parbreak(), line(end: (70%, 50%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/line-00.typ0000644000000000000000000000034607346545000016746 0ustar0000000000000000#set page(height: 60pt) #box({ set line(stroke: 0.75pt) place(line(end: (0.4em, 0pt))) place(line(start: (0pt, 0.4em), end: (0pt, 0pt))) line(end: (0.6em, 0.6em)) }) Hello #box(line(length: 1cm))! #line(end: (70%, 50%)) typst-0.8.0.2/test/typ/visualize/line-01.out0000644000000000000000000021756107346545000016753 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/line-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/line-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/line-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/visualize/line-01.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "0B1026")) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "line")) [ KeyValArg (Identifier "stroke") (Ident (Identifier "white")) ]) , ParBreak , Code "typ/visualize/line-01.typ" ( line 7 , column 2 ) (LetFunc (Identifier "star") [ NormalParam (Identifier "size") , SinkParam (Just (Identifier "args")) ] (FuncCall (Ident (Identifier "box")) [ KeyValArg (Identifier "width") (Ident (Identifier "size")) , KeyValArg (Identifier "height") (Ident (Identifier "size")) , BlockArg [ SoftBreak , Code "typ/visualize/line-01.typ" ( line 8 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "spacing") (Literal (Numeric 0.0 Percent)) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 9 , column 4 ) (Set (Ident (Identifier "line")) [ SpreadArg (Ident (Identifier "args")) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 10 , column 4 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "left")) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 11 , column 4 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 30.0 Percent)) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 12 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 9.0 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 13 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 38.7 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) , KeyValArg (Identifier "angle") (Negated (Literal (Numeric 72.0 Deg))) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 14 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 57.5 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) , KeyValArg (Identifier "angle") (Literal (Numeric 252.0 Deg)) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 15 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 57.3 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 16 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Negated (Literal (Numeric 30.0 Percent))) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 88.0 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) , KeyValArg (Identifier "angle") (Negated (Literal (Numeric 36.0 Deg))) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 17 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 73.3 Percent)) , Reg (Literal (Numeric 48.0 Percent)) ]) , KeyValArg (Identifier "angle") (Literal (Numeric 252.0 Deg)) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 18 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Negated (Literal (Numeric 30.0 Percent))) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 73.5 Percent)) , Reg (Literal (Numeric 48.0 Percent)) ]) , KeyValArg (Identifier "angle") (Literal (Numeric 36.0 Deg)) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 19 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 25.4 Percent)) , Reg (Literal (Numeric 48.0 Percent)) ]) , KeyValArg (Identifier "angle") (Negated (Literal (Numeric 36.0 Deg))) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 20 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 25.6 Percent)) , Reg (Literal (Numeric 48.0 Percent)) ]) , KeyValArg (Identifier "angle") (Negated (Literal (Numeric 72.0 Deg))) ]) ]) , SoftBreak , Code "typ/visualize/line-01.typ" ( line 21 , column 4 ) (FuncCall (Ident (Identifier "place")) [ NormalArg (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 32.0 Percent)) , KeyValArg (Identifier "start") (Array [ Reg (Literal (Numeric 8.5 Percent)) , Reg (Literal (Numeric 2.0 Percent)) ]) , KeyValArg (Identifier "angle") (Literal (Numeric 34.0 Deg)) ]) ]) , ParBreak ] ])) , ParBreak , Code "typ/visualize/line-01.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , NormalArg (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Literal (Int 3)) , KeyValArg (Identifier "column-gutter") (Literal (Numeric 10.0 Pt)) , SpreadArg (Times (Array [ Reg (FuncCall (Ident (Identifier "star")) [ NormalArg (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "stroke") (Literal (Numeric 0.5 Pt)) ]) ]) (Literal (Int 9))) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), parbreak(), parbreak(), align(alignment: center, body: grid(children: (box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt), box(body: { text(body: [ ]), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), text(body: [ ], spacing: 0%), v(amount: 30%), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (9%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (38%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(length: 30%, start: (57%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: -30%, start: (88%, 2%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 252.0deg, length: 30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 36.0deg, length: -30%, start: (73%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -36.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: -72.0deg, length: 30%, start: (25%, 48%), stroke: 0.5pt)), text(body: [ ], spacing: 0%), place(body: line(angle: 34.0deg, length: 32%, start: (8%, 2%), stroke: 0.5pt)), parbreak() }, height: 20.0pt, width: 20.0pt)), column-gutter: 10.0pt, columns: 3)), parbreak() }) typst-0.8.0.2/test/typ/visualize/line-01.typ0000644000000000000000000000167407346545000016754 0ustar0000000000000000// Test the angle argument and positioning. #set page(fill: rgb("0B1026")) #set line(stroke: white) #let star(size, ..args) = box(width: size, height: size)[ #set text(spacing: 0%) #set line(..args) #set align(left) #v(30%) #place(line(length: +30%, start: (09.0%, 02%))) #place(line(length: +30%, start: (38.7%, 02%), angle: -72deg)) #place(line(length: +30%, start: (57.5%, 02%), angle: 252deg)) #place(line(length: +30%, start: (57.3%, 02%))) #place(line(length: -30%, start: (88.0%, 02%), angle: -36deg)) #place(line(length: +30%, start: (73.3%, 48%), angle: 252deg)) #place(line(length: -30%, start: (73.5%, 48%), angle: 36deg)) #place(line(length: +30%, start: (25.4%, 48%), angle: -36deg)) #place(line(length: +30%, start: (25.6%, 48%), angle: -72deg)) #place(line(length: +32%, start: (8.50%, 02%), angle: 34deg)) ] #align(center, grid( columns: 3, column-gutter: 10pt, ..((star(20pt, stroke: 0.5pt),) * 9) )) typst-0.8.0.2/test/typ/visualize/line-02.out0000644000000000000000000000002107346545000016731 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/line-02.typ0000644000000000000000000000014307346545000016743 0ustar0000000000000000// Test errors. // Error: 12-19 point array must contain exactly two entries #line(end: (50pt,)) typst-0.8.0.2/test/typ/visualize/line-03.out0000644000000000000000000000002107346545000016732 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/line-03.typ0000644000000000000000000000013607346545000016746 0ustar0000000000000000// Error: 14-26 expected relative length, found angle #line(start: (3deg, 10pt), length: 5cm) typst-0.8.0.2/test/typ/visualize/path-00.out0000644000000000000000000003112007346545000016740 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/path-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/path-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/path-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/path-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "height") (Literal (Numeric 200.0 Pt)) , KeyValArg (Identifier "width") (Literal (Numeric 200.0 Pt)) ]) , SoftBreak , Code "typ/visualize/path-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "rows") (Array [ Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal (Numeric 1.0 Fr)) ]) , KeyValArg (Identifier "align") (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "closed") (Literal (Boolean True)) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) ]) , NormalArg (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "purple")) , KeyValArg (Identifier "stroke") (Literal (Numeric 1.0 Pt)) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "blue")) , KeyValArg (Identifier "stroke") (Literal (Numeric 1.0 Pt)) , KeyValArg (Identifier "closed") (Literal (Boolean True)) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 30.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 35.0 Percent)) , Reg (Literal (Numeric 30.0 Percent)) ]) , Reg (Array [ Reg (Negated (Literal (Numeric 20.0 Percent))) , Reg (Literal (Numeric 0.0 Percent)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 30.0 Percent)) , Reg (Literal (Numeric 60.0 Percent)) ]) , Reg (Array [ Reg (Negated (Literal (Numeric 20.0 Percent))) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 30.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 60.0 Percent)) , Reg (Negated (Literal (Numeric 30.0 Percent))) ]) , Reg (Array [ Reg (Literal (Numeric 60.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) ]) ]) , NormalArg (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 5.0 Pt)) , KeyValArg (Identifier "closed") (Literal (Boolean True)) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), table(align: Axes(center, horizon), children: (path(closed: true, fill: rgb(100%,25%,21%,100%), vertices: (((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)))), path(fill: rgb(69%,5%,78%,100%), stroke: 1.0pt, vertices: ((0.0pt, 0.0pt), (30.0pt, 30.0pt), (0.0pt, 30.0pt), (30.0pt, 0.0pt))), path(closed: true, fill: rgb(0%,45%,85%,100%), stroke: 1.0pt, vertices: (((30%, 0%), (35%, 30%), (-20%, 0%)), ((30%, 60%), (-20%, 0%), (0%, 0%)), ((50%, 30%), (60%, -30%), (60%, 0%)))), path(closed: true, stroke: 5.0pt, vertices: ((0.0pt, 30.0pt), (30.0pt, 30.0pt), (15.0pt, 0.0pt)))), columns: (1.0fr, 1.0fr), rows: (1.0fr, 1.0fr)), parbreak() }) typst-0.8.0.2/test/typ/visualize/path-00.typ0000644000000000000000000000125007346545000016746 0ustar0000000000000000#set page(height: 200pt, width: 200pt) #table( columns: (1fr, 1fr), rows: (1fr, 1fr), align: center + horizon, path( fill: red, closed: true, ((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)), ), path( fill: purple, stroke: 1pt, (0pt, 0pt), (30pt, 30pt), (0pt, 30pt), (30pt, 0pt), ), path( fill: blue, stroke: 1pt, closed: true, ((30%, 0%), (35%, 30%), (-20%, 0%)), ((30%, 60%), (-20%, 0%), (0%, 0%)), ((50%, 30%), (60%, -30%), (60%, 0%)), ), path( stroke: 5pt, closed: true, (0pt, 30pt), (30pt, 30pt), (15pt, 0pt), ), ) typst-0.8.0.2/test/typ/visualize/path-01.out0000644000000000000000000000002107346545000016735 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/path-01.typ0000644000000000000000000000010107346545000016741 0ustar0000000000000000// Error: 7-9 path vertex must have 1, 2, or 3 points #path(()) typst-0.8.0.2/test/typ/visualize/path-02.out0000644000000000000000000000002107346545000016736 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/path-02.typ0000644000000000000000000000015007346545000016746 0ustar0000000000000000// Error: 7-47 path vertex must have 1, 2, or 3 points #path(((0%, 0%), (0%, 0%), (0%, 0%), (0%, 0%))) typst-0.8.0.2/test/typ/visualize/path-03.out0000644000000000000000000000002107346545000016737 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/path-03.typ0000644000000000000000000000013407346545000016751 0ustar0000000000000000// Error: 7-31 point array must contain exactly two entries #path(((0%, 0%), (0%, 0%, 0%))) typst-0.8.0.2/test/typ/visualize/polygon-00.out0000644000000000000000000002546707346545000017514 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/polygon-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/polygon-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/polygon-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Pt)) ]) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 0.75 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , ParBreak , Comment , Code "typ/visualize/polygon-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "polygon")) []) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Em)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) ]) , ParBreak , Code "typ/visualize/polygon-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) ]) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 5.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 5.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) ]) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 16 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Literal None) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) ]) , SoftBreak , Code "typ/visualize/polygon-00.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 3.0 Pt)) , KeyValArg (Identifier "fill") (Literal None) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 10.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) ]) , ParBreak , Comment , Code "typ/visualize/polygon-00.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 100.0 Percent)) , Reg (Literal (Numeric 5.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 10.0 Pt)) ]) ]) , ParBreak , Comment , Code "typ/visualize/polygon-00.typ" ( line 23 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 5.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 5.0 Pt)) , Reg (Literal (Numeric 15.0 Pt)) ]) ]) , ParBreak , Comment , Code "typ/visualize/polygon-00.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "polygon")) [ NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 10.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 30.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 30.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 20.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 20.0 Pt)) , Reg (Literal (Numeric 35.0 Pt)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ()), text(body: [ ]), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0em, 0.0pt))), text(body: [ ]), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0pt, 0.0pt), (10.0pt, 0.0pt))), parbreak(), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((5.0pt, 0.0pt), (0.0pt, 10.0pt), (10.0pt, 10.0pt))), text(body: [ ]), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0pt, 0.0pt), (5.0pt, 5.0pt), (10.0pt, 0.0pt), (15.0pt, 5.0pt), (5.0pt, 10.0pt))), text(body: [ ]), polygon(fill: rgb(0%,45%,85%,100%), stroke: none, vertices: ((5.0pt, 0.0pt), (0.0pt, 10.0pt), (10.0pt, 10.0pt))), text(body: [ ]), polygon(fill: none, stroke: 3.0pt, vertices: ((5.0pt, 0.0pt), (0.0pt, 10.0pt), (10.0pt, 10.0pt))), parbreak(), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0pt, 0.0pt), (100%, 5.0pt), (50%, 10.0pt))), parbreak(), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0pt, 5.0pt), (5.0pt, 0.0pt), (0.0pt, 10.0pt), (5.0pt, 15.0pt))), parbreak(), polygon(fill: rgb(0%,45%,85%,100%), stroke: 0.75pt, vertices: ((0.0pt, 10.0pt), (30.0pt, 20.0pt), (0.0pt, 30.0pt), (20.0pt, 0.0pt), (20.0pt, 35.0pt))), parbreak() }) typst-0.8.0.2/test/typ/visualize/polygon-00.typ0000644000000000000000000000127507346545000017510 0ustar0000000000000000#set page(width: 50pt) #set polygon(stroke: 0.75pt, fill: blue) // These are not visible, but should also not give an error #polygon() #polygon((0em, 0pt)) #polygon((0pt, 0pt), (10pt, 0pt)) #polygon((5pt, 0pt), (0pt, 10pt), (10pt, 10pt)) #polygon( (0pt, 0pt), (5pt, 5pt), (10pt, 0pt), (15pt, 5pt), (5pt, 10pt) ) #polygon(stroke: none, (5pt, 0pt), (0pt, 10pt), (10pt, 10pt)) #polygon(stroke: 3pt, fill: none, (5pt, 0pt), (0pt, 10pt), (10pt, 10pt)) // Relative size #polygon((0pt, 0pt), (100%, 5pt), (50%, 10pt)) // Antiparallelogram #polygon((0pt, 5pt), (5pt, 0pt), (0pt, 10pt), (5pt, 15pt)) // Self-intersections #polygon((0pt, 10pt), (30pt, 20pt), (0pt, 30pt), (20pt, 0pt), (20pt, 35pt)) typst-0.8.0.2/test/typ/visualize/polygon-01.out0000644000000000000000000000002107346545000017470 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/polygon-01.typ0000644000000000000000000000011707346545000017503 0ustar0000000000000000// Error: 10-17 point array must contain exactly two entries #polygon((50pt,)) typst-0.8.0.2/test/typ/visualize/shape-aspect-00.out0000644000000000000000000001127607346545000020373 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Comment , Code "typ/visualize/shape-aspect-00.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 120.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 70.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-00.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "bottom")) ]) , SoftBreak , Code "typ/visualize/shape-aspect-00.typ" ( line 6 , column 2 ) (Let (BasicBind (Just (Identifier "centered"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "align"))) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) ])) , SoftBreak , Code "typ/visualize/shape-aspect-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "width") (Literal (Numeric 50.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "centered")) [ BlockArg [ Text "A" ] ]) ]) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "stack")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 10.0 Pt)) ]) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 20.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "centered")) [ BlockArg [ Text "B" ] ]) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ]), text(body: [ ]), stack(children: (square(body: align(alignment: bottom, body: text(body: [A])), width: 50%), square(height: 50%), stack(children: (square(size: 10.0pt), square(body: align(alignment: bottom, body: text(body: [B])), size: 20.0pt)))), dir: ltr, spacing: 1.0fr), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-00.typ0000644000000000000000000000054207346545000020372 0ustar0000000000000000// Test relative width and height and size that is smaller // than default size. #set page(width: 120pt, height: 70pt) #set align(bottom) #let centered = align.with(center + horizon) #stack( dir: ltr, spacing: 1fr, square(width: 50%, centered[A]), square(height: 50%), stack( square(size: 10pt), square(size: 20pt, centered[B]) ), ) typst-0.8.0.2/test/typ/visualize/shape-aspect-01.out0000644000000000000000000001104107346545000020362 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-aspect-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "inset") (Literal (Numeric 4.0 Pt)) , BlockArg [ SoftBreak , Text "Hey" , Space , Text "there," , Space , Code "typ/visualize/shape-aspect-01.typ" ( line 5 , column 15 ) (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "bottom"))) , NormalArg (FuncCall (Ident (Identifier "rotate")) [ NormalArg (Literal (Numeric 180.0 Deg)) , NormalArg (Block (Content [ Text "you!" ])) ]) ]) , ParBreak ] ]) ]) , SoftBreak , Code "typ/visualize/shape-aspect-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "circle")) [ NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (Block (Content [ Text "Hey" , Text "." ])) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], size: 8.0pt), box(body: square(body: { text(body: [ Hey there, ], size: 8.0pt), align(alignment: Axes(center, bottom), body: rotate(angle: 180.0deg, body: text(body: [you!], size: 8.0pt))), parbreak() }, inset: 4.0pt)), text(body: [ ], size: 8.0pt), box(body: circle(body: align(alignment: Axes(center, horizon), body: text(body: [Hey.], size: 8.0pt)))), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-01.typ0000644000000000000000000000032307346545000020370 0ustar0000000000000000// Test alignment in automatically sized square and circle. #set text(8pt) #box(square(inset: 4pt)[ Hey there, #align(center + bottom, rotate(180deg, [you!])) ]) #box(circle(align(center + horizon, [Hey.]))) typst-0.8.0.2/test/typ/visualize/shape-aspect-02.out0000644000000000000000000000543307346545000020373 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-aspect-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 2.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 40.0 Pt)) ]) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), stack(children: (square(height: 40.0pt, width: 20.0pt), circle(height: 100.0pt, width: 20%)), dir: ltr, spacing: 2.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-02.typ0000644000000000000000000000025707346545000020377 0ustar0000000000000000// Test that minimum wins if both width and height are given. #stack( dir: ltr, spacing: 2pt, square(width: 20pt, height: 40pt), circle(width: 20%, height: 100pt), ) typst-0.8.0.2/test/typ/visualize/shape-aspect-03.out0000644000000000000000000000543007346545000020371 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-aspect-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) ]) , NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), stack(children: (square(fill: rgb(100%,25%,21%,100%)), square(fill: rgb(18%,80%,25%,100%))), dir: ltr), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-03.typ0000644000000000000000000000023307346545000020372 0ustar0000000000000000// Test square that is limited by region size. #set page(width: 20pt, height: 10pt, margin: 0pt) #stack(dir: ltr, square(fill: red), square(fill: green)) typst-0.8.0.2/test/typ/visualize/shape-aspect-04.out0000644000000000000000000000604507346545000020375 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-aspect-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 120.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 40.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 2.0 Pt)) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "radius") (Literal (Numeric 5.0 Pt)) ]) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "height") (Literal (Numeric 50.0 Percent)) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), stack(children: (circle(radius: 5.0pt), circle(width: 10%), circle(height: 50%)), dir: ltr, spacing: 2.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-04.typ0000644000000000000000000000026307346545000020376 0ustar0000000000000000// Test different ways of sizing. #set page(width: 120pt, height: 40pt) #stack( dir: ltr, spacing: 2pt, circle(radius: 5pt), circle(width: 10%), circle(height: 50%), ) typst-0.8.0.2/test/typ/visualize/shape-aspect-05.out0000644000000000000000000000535407346545000020400 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-aspect-05.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-aspect-05.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-aspect-05.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-aspect-05.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 25.0 Pt)) , KeyValArg (Identifier "margin") (Literal (Numeric 5.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-05.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) ]) , SoftBreak , Code "typ/visualize/shape-aspect-05.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , BlockArg [ Text "Hello" , Space , Text "there" ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), square(width: 100%), text(body: [ ]), square(body: text(body: [Hello there]), width: 100%), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-aspect-05.typ0000644000000000000000000000025007346545000020373 0ustar0000000000000000// Test that square doesn't overflow due to its aspect ratio. #set page(width: 40pt, height: 25pt, margin: 5pt) #square(width: 100%) #square(width: 100%)[Hello there] typst-0.8.0.2/test/typ/visualize/shape-aspect-06.out0000644000000000000000000000002107346545000020363 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/shape-aspect-06.typ0000644000000000000000000000022707346545000020400 0ustar0000000000000000// Size cannot be relative because we wouldn't know // relative to which axis. // Error: 15-18 expected length or auto, found ratio #square(size: 50%) typst-0.8.0.2/test/typ/visualize/shape-circle-00.out0000644000000000000000000000444307346545000020353 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-circle-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-circle-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-circle-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-circle-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "circle")) []) ]) , SoftBreak , Code "typ/visualize/shape-circle-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "circle")) [ BlockArg [ Text "Hey" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), box(body: circle()), text(body: [ ]), box(body: circle(body: text(body: [Hey]))), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-circle-00.typ0000644000000000000000000000006507346545000020354 0ustar0000000000000000// Default circle. #box(circle()) #box(circle[Hey]) typst-0.8.0.2/test/typ/visualize/shape-circle-01.out0000644000000000000000000002035007346545000020347 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-circle-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-circle-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-circle-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-circle-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "circle")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) ]) , ParBreak , Text "Auto" , Text "-" , Text "sized" , Space , Text "circle" , Text "." , SoftBreak , Code "typ/visualize/shape-circle-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "eb5278")) ]) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 2.0 Pt)) (Ident (Identifier "black"))) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , BlockArg [ Text "But," , Space , Text "soft!" ] ]) ]) , ParBreak , Text "Center" , Text "-" , Text "aligned" , Space , Text "rect" , Space , Text "in" , Space , Text "auto" , Text "-" , Text "sized" , Space , Text "circle" , Text "." , SoftBreak , Code "typ/visualize/shape-circle-01.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Ident (Identifier "green")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "inset") (Literal (Numeric 5.0 Pt)) , BlockArg [ Text "But," , Space , Text "soft!" ] ]) ]) ]) , ParBreak , Text "Rect" , Space , Text "in" , Space , Text "auto" , Text "-" , Text "sized" , Space , Text "circle" , Text "." , SoftBreak , Code "typ/visualize/shape-circle-01.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "stroke") (Ident (Identifier "white")) , KeyValArg (Identifier "inset") (Literal (Numeric 4.0 Pt)) , BlockArg [ SoftBreak , Code "typ/visualize/shape-circle-01.typ" ( line 20 , column 6 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , ParBreak ] ]) ]) , ParBreak , Text "Expanded" , Space , Text "by" , Space , Text "height" , Text "." , SoftBreak , Code "typ/visualize/shape-circle-01.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "stroke") (Ident (Identifier "black")) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "center")) , BlockArg [ Text "A" , Space , HardBreak , Text "B" , Space , HardBreak , Text "C" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [Auto-sized circle. ]), circle(body: align(alignment: Axes(center, horizon), body: text(body: [But, soft!])), fill: rgb(92%,32%,47%,100%), inset: 0.0pt, stroke: (thickness: 2.0pt, color: rgb(0%,0%,0%,100%))), parbreak(), text(body: [Center-aligned rect in auto-sized circle. ]), circle(body: align(alignment: Axes(center, horizon), body: rect(body: text(body: [But, soft!]), fill: rgb(18%,80%,25%,100%), inset: 5.0pt)), fill: rgb(100%,25%,21%,100%), inset: 0.0pt, stroke: rgb(18%,80%,25%,100%)), parbreak(), text(body: [Rect in auto-sized circle. ]), circle(body: rect(body: { text(body: [ ]), text(body: [ But, soft! what light through yonder window breaks?], size: 8.0pt), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 4.0pt, stroke: rgb(100%,100%,100%,100%)), fill: rgb(100%,25%,21%,100%), inset: 0.0pt), parbreak(), text(body: [Expanded by height. ], size: 8.0pt), circle(body: align(alignment: center, body: { text(body: [A ], size: 8.0pt), linebreak(), text(body: [B ], size: 8.0pt), linebreak(), text(body: [C], size: 8.0pt) }), inset: 0.0pt, stroke: rgb(0%,0%,0%,100%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-circle-01.typ0000644000000000000000000000105507346545000020355 0ustar0000000000000000// Test auto sizing. #set circle(inset: 0pt) Auto-sized circle. #circle(fill: rgb("eb5278"), stroke: 2pt + black, align(center + horizon)[But, soft!] ) Center-aligned rect in auto-sized circle. #circle(fill: red, stroke: green, align(center + horizon, rect(fill: green, inset: 5pt)[But, soft!] ) ) Rect in auto-sized circle. #circle(fill: red, rect(fill: green, stroke: white, inset: 4pt)[ #set text(8pt) But, soft! what light through yonder window breaks? ] ) Expanded by height. #circle(stroke: black, align(center)[A \ B \ C]) typst-0.8.0.2/test/typ/visualize/shape-circle-02.out0000644000000000000000000000462607346545000020360 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-circle-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-circle-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-circle-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-circle-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 30.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "red")) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rect(body: circle(fill: rgb(18%,80%,25%,100%)), fill: rgb(100%,25%,21%,100%), height: 30.0pt, width: 40.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-circle-02.typ0000644000000000000000000000015507346545000020356 0ustar0000000000000000// Ensure circle directly in rect works. #rect(width: 40pt, height: 30pt, fill: red, circle(fill: green)) typst-0.8.0.2/test/typ/visualize/shape-circle-03.out0000644000000000000000000001340607346545000020355 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-circle-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-circle-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-circle-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-circle-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "white")) ]) , SoftBreak , Code "typ/visualize/shape-circle-03.typ" ( line 4 , column 2 ) (Show Nothing (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "rect"))) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 50.0 Pt)) , KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "aaa")) ]) ])) , SoftBreak , Code "typ/visualize/shape-circle-03.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) ]) , SoftBreak , Code "typ/visualize/shape-circle-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , NormalArg (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "radius") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (Block (Content [ Text "A" ])) ]) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "height") (Literal (Numeric 60.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (Block (Content [ Text "B" ])) ]) , NormalArg (FuncCall (Ident (Identifier "circle")) [ KeyValArg (Identifier "width") (Plus (Literal (Numeric 20.0 Percent)) (Literal (Numeric 20.0 Pt))) , KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , NormalArg (Block (Content [ Text "C" ])) ]) , NormalArg (Literal (Numeric 1.0 Fr)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ], fill: rgb(100%,100%,100%,100%)), rect(body: { text(body: [ ], fill: rgb(100%,100%,100%,100%)), text(body: [ ], fill: rgb(100%,100%,100%,100%)), stack(children: (1.0fr, circle(body: text(body: [A], fill: rgb(100%,100%,100%,100%)), fill: rgb(13%,61%,67%,100%), radius: 10.0pt), circle(body: text(body: [B], fill: rgb(100%,100%,100%,100%)), fill: rgb(13%,61%,67%,100%), height: 60%), circle(body: text(body: [C], fill: rgb(100%,100%,100%,100%)), fill: rgb(13%,61%,67%,100%), width: 20.0pt + 20%), 1.0fr), dir: ltr, spacing: 1.0fr), parbreak() }, fill: rgb(3%,3%,3%,100%), height: 50.0pt, inset: 0.0pt, width: 100.0pt) }) typst-0.8.0.2/test/typ/visualize/shape-circle-03.typ0000644000000000000000000000057607346545000020366 0ustar0000000000000000// Test relative sizing. #set text(fill: white) #show: rect.with(width: 100pt, height: 50pt, inset: 0pt, fill: rgb("aaa")) #set align(center + horizon) #stack( dir: ltr, spacing: 1fr, 1fr, circle(radius: 10pt, fill: eastern, [A]), // D=20pt circle(height: 60%, fill: eastern, [B]), // D=30pt circle(width: 20% + 20pt, fill: eastern, [C]), // D=40pt 1fr, ) typst-0.8.0.2/test/typ/visualize/shape-circle-04.out0000644000000000000000000000002107346545000020343 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/shape-circle-04.typ0000644000000000000000000000022207346545000020353 0ustar0000000000000000// Radius wins over width and height. // Error: 23-34 unexpected argument: width #circle(radius: 10pt, width: 50pt, height: 100pt, fill: eastern) typst-0.8.0.2/test/typ/visualize/shape-ellipse-00.out0000644000000000000000000000357307346545000020552 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-ellipse-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-ellipse-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-ellipse-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-ellipse-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "ellipse")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), ellipse(), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-ellipse-00.typ0000644000000000000000000000004007346545000020541 0ustar0000000000000000// Default ellipse. #ellipse() typst-0.8.0.2/test/typ/visualize/shape-ellipse-01.out0000644000000000000000000002005607346545000020546 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-ellipse-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-ellipse-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-ellipse-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "ellipse")) [ KeyValArg (Identifier "inset") (Literal (Numeric 0.0 Pt)) ]) , ParBreak , Text "Rect" , Space , Text "in" , Space , Text "ellipse" , Space , Text "in" , Space , Text "fixed" , Space , Text "rect" , Text "." , SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 3.0 Cm)) , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "2a631a")) ]) , NormalArg (FuncCall (Ident (Identifier "ellipse")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , BlockArg [ SoftBreak , Text "Stuff" , Space , Text "inside" , Space , Text "an" , Space , Text "ellipse!" , ParBreak ] ]) ]) ]) ]) , ParBreak , Text "Auto" , Text "-" , Text "sized" , Space , Text "ellipse" , Text "." , SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 17 , column 2 ) (FuncCall (Ident (Identifier "ellipse")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 3.0 Pt)) (Ident (Identifier "red"))) , KeyValArg (Identifier "inset") (Literal (Numeric 3.0 Pt)) , BlockArg [ SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 18 , column 4 ) (Set (Ident (Identifier "text")) [ NormalArg (Literal (Numeric 8.0 Pt)) ]) , SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , ParBreak ] ]) , ParBreak , Text "An" , Space , Text "inline" , SoftBreak , Code "typ/visualize/shape-ellipse-01.typ" ( line 24 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "ellipse")) [ KeyValArg (Identifier "width") (Literal (Numeric 8.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 6.0 Pt)) , KeyValArg (Identifier "outset") (Dict [ Reg ( Ident (Identifier "top") , Literal (Numeric 3.0 Pt) ) , Reg ( Ident (Identifier "rest") , Literal (Numeric 5.5 Pt) ) ]) ]) ]) , SoftBreak , Text "ellipse" , Text "." , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), text(body: [Rect in ellipse in fixed rect. ]), rect(body: ellipse(body: rect(body: align(alignment: Axes(center, horizon), body: { text(body: [ Stuff inside an ellipse!]), parbreak() }), fill: rgb(18%,80%,25%,100%), height: 100%, inset: 0.0pt, width: 100%), fill: rgb(100%,25%,21%,100%), height: 100%, inset: 0.0pt, width: 100%), fill: rgb(16%,38%,10%,100%), height: 2.0cm, inset: 0.0pt, width: 3.0cm), parbreak(), text(body: [Auto-sized ellipse. ]), ellipse(body: { text(body: [ ]), text(body: [ But, soft! what light through yonder window breaks?], size: 8.0pt), parbreak() }, fill: rgb(18%,80%,25%,100%), inset: 3.0pt, stroke: (thickness: 3.0pt, color: rgb(100%,25%,21%,100%))), parbreak(), text(body: [An inline ], size: 8.0pt), box(body: ellipse(height: 6.0pt, inset: 0.0pt, outset: (top: 3.0pt, rest: 5.5pt), width: 8.0pt)), text(body: [ ellipse.], size: 8.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-ellipse-01.typ0000644000000000000000000000105107346545000020545 0ustar0000000000000000#set rect(inset: 0pt) #set ellipse(inset: 0pt) Rect in ellipse in fixed rect. #rect(width: 3cm, height: 2cm, fill: rgb("2a631a"), ellipse(fill: red, width: 100%, height: 100%, rect(fill: green, width: 100%, height: 100%, align(center + horizon)[ Stuff inside an ellipse! ] ) ) ) Auto-sized ellipse. #ellipse(fill: green, stroke: 3pt + red, inset: 3pt)[ #set text(8pt) But, soft! what light through yonder window breaks? ] An inline #box(ellipse(width: 8pt, height: 6pt, outset: (top: 3pt, rest: 5.5pt))) ellipse. typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-00.out0000644000000000000000000003111007346545000021334 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-fill-stroke-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-fill-stroke-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-fill-stroke-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/shape-fill-stroke-00.typ" ( line 2 , column 2 ) (Let (BasicBind (Just (Identifier "variant"))) (FuncCall (FieldAccess (Ident (Identifier "with")) (Ident (Identifier "rect"))) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) ])) , SoftBreak , Code "typ/visualize/shape-fill-stroke-00.typ" ( line 3 , column 2 ) (Let (BasicBind (Just (Identifier "items"))) (For (DestructuringBind [ Simple (Just (Identifier "i")) , Simple (Just (Identifier "item")) ]) (FuncCall (FieldAccess (Ident (Identifier "enumerate")) (Array [ Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "stroke") (Literal None) ]) , Reg (FuncCall (Ident (Identifier "variant")) []) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Literal None) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 2.0 Pt)) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "stroke") (Ident (Identifier "eastern")) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "stroke") (Plus (Ident (Identifier "eastern")) (Literal (Numeric 2.0 Pt))) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , KeyValArg (Identifier "stroke") (Literal None) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Literal None) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Ident (Identifier "green")) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Plus (Ident (Identifier "black")) (Literal (Numeric 2.0 Pt))) ]) , Reg (FuncCall (Ident (Identifier "variant")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Plus (Ident (Identifier "green")) (Literal (Numeric 2.0 Pt))) ]) ])) []) (Block (CodeBlock [ Array [ Reg (FuncCall (Ident (Identifier "align")) [ NormalArg (Ident (Identifier "horizon")) , BlockArg [ Code "typ/visualize/shape-fill-stroke-00.typ" ( line 17 , column 20 ) (Plus (Ident (Identifier "i")) (Literal (Int 1))) , Text "." ] ]) , Reg (Ident (Identifier "item")) , Reg (Block (Content [])) ] ])))) , ParBreak , Code "typ/visualize/shape-fill-stroke-00.typ" ( line 20 , column 2 ) (FuncCall (Ident (Identifier "grid")) [ KeyValArg (Identifier "columns") (Array [ Reg (Literal Auto) , Reg (Literal Auto) , Reg (Literal (Numeric 1.0 Fr)) , Reg (Literal Auto) , Reg (Literal Auto) , Reg (Literal (Numeric 0.0 Fr)) ]) , KeyValArg (Identifier "gutter") (Literal (Numeric 5.0 Pt)) , SpreadArg (Ident (Identifier "items")) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), parbreak(), grid(children: (align(alignment: horizon, body: { text(body: [1]), text(body: [.]) }), rect(height: 10.0pt, stroke: none, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [2]), text(body: [.]) }), rect(height: 10.0pt, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [3]), text(body: [.]) }), rect(fill: none, height: 10.0pt, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [4]), text(body: [.]) }), rect(height: 10.0pt, stroke: 2.0pt, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [5]), text(body: [.]) }), rect(height: 10.0pt, stroke: rgb(13%,61%,67%,100%), width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [6]), text(body: [.]) }), rect(height: 10.0pt, stroke: (thickness: 2.0pt, color: rgb(13%,61%,67%,100%)), width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [7]), text(body: [.]) }), rect(fill: rgb(13%,61%,67%,100%), height: 10.0pt, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [8]), text(body: [.]) }), rect(fill: rgb(13%,61%,67%,100%), height: 10.0pt, stroke: none, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [9]), text(body: [.]) }), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, stroke: none, width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [10]), text(body: [.]) }), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, stroke: rgb(18%,80%,25%,100%), width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [11]), text(body: [.]) }), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, stroke: (thickness: 2.0pt, color: rgb(0%,0%,0%,100%)), width: 20.0pt), { }, align(alignment: horizon, body: { text(body: [12]), text(body: [.]) }), rect(fill: rgb(100%,25%,21%,100%), height: 10.0pt, stroke: (thickness: 2.0pt, color: rgb(18%,80%,25%,100%)), width: 20.0pt), { }), columns: (auto, auto, 1.0fr, auto, auto, 0.0fr), gutter: 5.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-00.typ0000644000000000000000000000112607346545000021345 0ustar0000000000000000#let variant = rect.with(width: 20pt, height: 10pt) #let items = for (i, item) in ( variant(stroke: none), variant(), variant(fill: none), variant(stroke: 2pt), variant(stroke: eastern), variant(stroke: eastern + 2pt), variant(fill: eastern), variant(fill: eastern, stroke: none), variant(fill: red, stroke: none), variant(fill: red, stroke: green), variant(fill: red, stroke: black + 2pt), variant(fill: red, stroke: green + 2pt), ).enumerate() { (align(horizon)[#(i + 1).], item, []) } #grid( columns: (auto, auto, 1fr, auto, auto, 0fr), gutter: 5pt, ..items, ) typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-01.out0000644000000000000000000001255207346545000021346 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-fill-stroke-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 3 , column 2 ) (LetFunc (Identifier "sq") [ SinkParam (Just (Identifier "args")) ] (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "size") (Literal (Numeric 10.0 Pt)) , SpreadArg (Ident (Identifier "args")) ]) ])) , ParBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 5 , column 2 ) (Set (Ident (Identifier "square")) [ KeyValArg (Identifier "stroke") (Literal None) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "sq")) []) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 7 , column 2 ) (Set (Ident (Identifier "square")) [ KeyValArg (Identifier "stroke") (Literal Auto) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "sq")) []) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "sq")) [ KeyValArg (Identifier "fill") (Ident (Identifier "teal")) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "sq")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 2.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "sq")) [ KeyValArg (Identifier "stroke") (Ident (Identifier "blue")) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "sq")) [ KeyValArg (Identifier "fill") (Ident (Identifier "teal")) , KeyValArg (Identifier "stroke") (Ident (Identifier "blue")) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-01.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "sq")) [ KeyValArg (Identifier "fill") (Ident (Identifier "teal")) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 2.0 Pt)) (Ident (Identifier "blue"))) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), text(body: [ ]), box(body: square(size: 10.0pt, stroke: none)), text(body: [ ]), text(body: [ ]), box(body: square(size: 10.0pt, stroke: auto)), text(body: [ ]), box(body: square(fill: rgb(22%,80%,80%,100%), size: 10.0pt, stroke: auto)), text(body: [ ]), box(body: square(size: 10.0pt, stroke: 2.0pt)), text(body: [ ]), box(body: square(size: 10.0pt, stroke: rgb(0%,45%,85%,100%))), text(body: [ ]), box(body: square(fill: rgb(22%,80%,80%,100%), size: 10.0pt, stroke: rgb(0%,45%,85%,100%))), text(body: [ ]), box(body: square(fill: rgb(22%,80%,80%,100%), size: 10.0pt, stroke: (thickness: 2.0pt, color: rgb(0%,45%,85%,100%)))), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-01.typ0000644000000000000000000000040107346545000021341 0ustar0000000000000000// Test stroke folding. #let sq(..args) = box(square(size: 10pt, ..args)) #set square(stroke: none) #sq() #set square(stroke: auto) #sq() #sq(fill: teal) #sq(stroke: 2pt) #sq(stroke: blue) #sq(fill: teal, stroke: blue) #sq(fill: teal, stroke: 2pt + blue) typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-02.out0000644000000000000000000000732107346545000021345 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-fill-stroke-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-fill-stroke-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-fill-stroke-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-fill-stroke-02.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "square")) [ KeyValArg (Identifier "stroke") (Literal (Numeric 4.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-02.typ" ( line 4 , column 2 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "font") (Literal (String "Roboto")) ]) , SoftBreak , Code "typ/visualize/shape-fill-stroke-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "left") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "top") , Ident (Identifier "yellow") ) , Reg ( Ident (Identifier "right") , Ident (Identifier "green") ) , Reg ( Ident (Identifier "bottom") , Ident (Identifier "blue") ) ]) , KeyValArg (Identifier "radius") (Literal (Numeric 100.0 Percent)) , NormalArg (FuncCall (Ident (Identifier "align")) [ NormalArg (Plus (Ident (Identifier "center")) (Ident (Identifier "horizon"))) , BlockArg [ Strong [ Text "G" ] ] ]) , KeyValArg (Identifier "inset") (Literal (Numeric 8.0 Pt)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), text(body: [ ], font: "Roboto"), square(body: align(alignment: Axes(center, horizon), body: strong(body: text(body: [G], font: "Roboto"))), inset: 8.0pt, radius: 100%, stroke: (left: rgb(100%,25%,21%,100%), top: rgb(100%,86%,0%,100%), right: rgb(18%,80%,25%,100%), bottom: rgb(0%,45%,85%,100%))), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-fill-stroke-02.typ0000644000000000000000000000032307346545000021345 0ustar0000000000000000// Test stroke composition. #set square(stroke: 4pt) #set text(font: "Roboto") #square( stroke: (left: red, top: yellow, right: green, bottom: blue), radius: 100%, align(center+horizon)[*G*], inset: 8pt ) typst-0.8.0.2/test/typ/visualize/shape-rect-00.out0000644000000000000000000000355107346545000020046 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-rect-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-rect-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-rect-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-rect-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rect")) []) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rect(), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-rect-00.typ0000644000000000000000000000003707346545000020047 0ustar0000000000000000// Default rectangle. #rect() typst-0.8.0.2/test/typ/visualize/shape-rect-01.out0000644000000000000000000002470607346545000020054 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-rect-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-rect-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-rect-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/shape-rect-01.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 150.0 Pt)) ]) , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [ Text "Textbox" ] ]) , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "block")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 15.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "46b3c2")) ]) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 2.0 Pt)) (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "234994")) ])) ]) ]) , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "9650d6")) ]) , BlockArg [ Text "Fixed" , Space , Text "and" , Space , Text "padded" ] ]) , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 18 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "height") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "734ced")) ]) , BlockArg [ Text "Topleft" ] ]) , ParBreak , Comment , Text "{" , Code "typ/visualize/shape-rect-01.typ" ( line 21 , column 3 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 0.5 In)) , KeyValArg (Identifier "height") (Literal (Numeric 7.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "d6cd67")) ]) ]) ]) , SoftBreak , Code "typ/visualize/shape-rect-01.typ" ( line 22 , column 3 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 0.5 In)) , KeyValArg (Identifier "height") (Literal (Numeric 7.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "edd466")) ]) ]) ]) , SoftBreak , Code "typ/visualize/shape-rect-01.typ" ( line 23 , column 3 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 0.5 In)) , KeyValArg (Identifier "height") (Literal (Numeric 7.0 Pt)) , KeyValArg (Identifier "fill") (FuncCall (Ident (Identifier "rgb")) [ NormalArg (Literal (String "e3be62")) ]) ]) ]) , Text "}" , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 26 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Fr)) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 2.0 Cm)) , KeyValArg (Identifier "radius") (Literal (Numeric 60.0 Percent)) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.0 Cm)) , KeyValArg (Identifier "radius") (Dict [ Reg ( Ident (Identifier "left") , Literal (Numeric 10.0 Pt) ) , Reg ( Ident (Identifier "right") , Literal (Numeric 5.0 Pt) ) ]) ]) , NormalArg (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 1.25 Cm)) , KeyValArg (Identifier "radius") (Dict [ Reg ( Ident (Identifier "top-left") , Literal (Numeric 2.0 Pt) ) , Reg ( Ident (Identifier "top-right") , Literal (Numeric 5.0 Pt) ) , Reg ( Ident (Identifier "bottom-right") , Literal (Numeric 8.0 Pt) ) , Reg ( Ident (Identifier "bottom-left") , Literal (Numeric 11.0 Pt) ) ]) ]) ]) , ParBreak , Comment , Code "typ/visualize/shape-rect-01.typ" ( line 40 , column 2 ) (Set (Ident (Identifier "rect")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "right") , Ident (Identifier "red") ) ]) ]) , SoftBreak , Code "typ/visualize/shape-rect-01.typ" ( line 41 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Percent)) , KeyValArg (Identifier "fill") (Ident (Identifier "lime")) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "x") , Literal (Numeric 5.0 Pt) ) , Reg ( Ident (Identifier "y") , Literal (Numeric 1.0 Pt) ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), rect(body: text(body: [Textbox]), fill: rgb(18%,80%,25%,100%)), parbreak(), block(body: rect(fill: rgb(27%,70%,76%,100%), height: 15.0pt, stroke: (thickness: 2.0pt, color: rgb(13%,28%,58%,100%)))), parbreak(), rect(body: text(body: [Fixed and padded]), fill: rgb(58%,31%,83%,100%), width: 2.0cm), parbreak(), rect(body: text(body: [Topleft]), fill: rgb(45%,29%,92%,100%), height: 1.0cm, width: 100%), parbreak(), text(body: [{]), box(body: rect(fill: rgb(83%,80%,40%,100%), height: 7.0pt, width: 0.5in)), text(body: [ ]), box(body: rect(fill: rgb(92%,83%,40%,100%), height: 7.0pt, width: 0.5in)), text(body: [ ]), box(body: rect(fill: rgb(89%,74%,38%,100%), height: 7.0pt, width: 0.5in)), text(body: [}]), parbreak(), stack(children: (rect(radius: 60%, width: 2.0cm), rect(radius: (left: 10.0pt, right: 5.0pt), width: 1.0cm), rect(radius: (top-left: 2.0pt, top-right: 5.0pt, bottom-right: 8.0pt, bottom-left: 11.0pt), width: 1.25cm)), dir: ltr, spacing: 1.0fr), parbreak(), text(body: [ ]), rect(fill: rgb(0%,100%,43%,100%), stroke: (x: 5.0pt, y: 1.0pt), width: 100%), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-rect-01.typ0000644000000000000000000000170707346545000020055 0ustar0000000000000000#set page(width: 150pt) // Fit to text. #rect(fill: green)[Textbox] // Empty with fixed width and height. #block(rect( height: 15pt, fill: rgb("46b3c2"), stroke: 2pt + rgb("234994"), )) // Fixed width, text height. #rect(width: 2cm, fill: rgb("9650d6"))[Fixed and padded] // Page width, fixed height. #rect(height: 1cm, width: 100%, fill: rgb("734ced"))[Topleft] // These are inline with text. {#box(rect(width: 0.5in, height: 7pt, fill: rgb("d6cd67"))) #box(rect(width: 0.5in, height: 7pt, fill: rgb("edd466"))) #box(rect(width: 0.5in, height: 7pt, fill: rgb("e3be62")))} // Rounded corners. #stack( dir: ltr, spacing: 1fr, rect(width: 2cm, radius: 60%), rect(width: 1cm, radius: (left: 10pt, right: 5pt)), rect(width: 1.25cm, radius: ( top-left: 2pt, top-right: 5pt, bottom-right: 8pt, bottom-left: 11pt )), ) // Different strokes. #set rect(stroke: (right: red)) #rect(width: 100%, fill: lime, stroke: (x: 5pt, y: 1pt)) typst-0.8.0.2/test/typ/visualize/shape-rect-02.out0000644000000000000000000000002107346545000020035 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/shape-rect-02.typ0000644000000000000000000000030307346545000020045 0ustar0000000000000000// Error: 15-38 unexpected key "cake", valid keys are "top-left", "top-right", "bottom-right", "bottom-left", "left", "top", "right", "bottom", and "rest" #rect(radius: (left: 10pt, cake: 5pt)) typst-0.8.0.2/test/typ/visualize/shape-rect-03.out0000644000000000000000000000002107346545000020036 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/shape-rect-03.typ0000644000000000000000000000015507346545000020053 0ustar0000000000000000// Error: 15-21 expected length, color, dictionary, stroke, none, or auto, found array #rect(stroke: (1, 2)) typst-0.8.0.2/test/typ/visualize/shape-rounded-00.out0000644000000000000000000000441107346545000020545 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-rounded-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-rounded-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-rounded-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-rounded-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "radius") (Negated (Literal (Numeric 20.0 Pt))) ]) , SoftBreak , Code "typ/visualize/shape-rounded-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "radius") (Literal (Numeric 30.0 Pt)) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rect(radius: -20.0pt), text(body: [ ]), square(radius: 30.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-rounded-00.typ0000644000000000000000000000011507346545000020547 0ustar0000000000000000// Ensure that radius is clamped. #rect(radius: -20pt) #square(radius: 30pt) typst-0.8.0.2/test/typ/visualize/shape-square-00.out0000644000000000000000000000444507346545000020414 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-square-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-square-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-square-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-square-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) []) ]) , SoftBreak , Code "typ/visualize/shape-square-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "box")) [ NormalArg (FuncCall (Ident (Identifier "square")) [ BlockArg [ Text "hey!" ] ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), box(body: square()), text(body: [ ]), box(body: square(body: text(body: [hey!]))), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-square-00.typ0000644000000000000000000000006607346545000020414 0ustar0000000000000000// Default square. #box(square()) #box(square[hey!]) typst-0.8.0.2/test/typ/visualize/shape-square-01.out0000644000000000000000000000532207346545000020410 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-square-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-square-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-square-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-square-01.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , BlockArg [ SoftBreak , Code "typ/visualize/shape-square-01.typ" ( line 4 , column 4 ) (Set (Ident (Identifier "text")) [ KeyValArg (Identifier "fill") (Ident (Identifier "white")) , KeyValArg (Identifier "weight") (Literal (String "bold")) ]) , SoftBreak , Text "Typst" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), square(body: { text(body: [ ]), text(body: [ Typst], fill: rgb(100%,100%,100%,100%), weight: "bold"), parbreak() }, fill: rgb(13%,61%,67%,100%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-square-01.typ0000644000000000000000000000014707346545000020415 0ustar0000000000000000// Test auto-sized square. #square(fill: eastern)[ #set text(fill: white, weight: "bold") Typst ] typst-0.8.0.2/test/typ/visualize/shape-square-02.out0000644000000000000000000000664107346545000020416 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-square-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-square-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-square-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-square-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "eastern")) , BlockArg [ SoftBreak , Code "typ/visualize/shape-square-02.typ" ( line 4 , column 4 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 5.0 Pt)) , KeyValArg (Identifier "fill") (Ident (Identifier "green")) ]) , SoftBreak , Code "typ/visualize/shape-square-02.typ" ( line 5 , column 4 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 40.0 Percent)) , KeyValArg (Identifier "height") (Literal (Numeric 5.0 Pt)) , KeyValArg (Identifier "stroke") (Ident (Identifier "green")) ]) , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), square(body: { text(body: [ ]), rect(fill: rgb(18%,80%,25%,100%), height: 5.0pt, width: 10.0pt), text(body: [ ]), rect(height: 5.0pt, stroke: rgb(18%,80%,25%,100%), width: 40%), parbreak() }, fill: rgb(13%,61%,67%,100%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-square-02.typ0000644000000000000000000000023007346545000020407 0ustar0000000000000000// Test relative-sized child. #square(fill: eastern)[ #rect(width: 10pt, height: 5pt, fill: green) #rect(width: 40%, height: 5pt, stroke: green) ] typst-0.8.0.2/test/typ/visualize/shape-square-03.out0000644000000000000000000000552207346545000020414 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-square-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-square-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-square-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-square-03.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 75.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 100.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-square-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), square(body: { text(body: [ But, soft! what light through yonder window breaks?]), parbreak() }, fill: rgb(18%,80%,25%,100%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-square-03.typ0000644000000000000000000000022607346545000020415 0ustar0000000000000000// Test text overflowing height. #set page(width: 75pt, height: 100pt) #square(fill: green)[ But, soft! what light through yonder window breaks? ] typst-0.8.0.2/test/typ/visualize/shape-square-04.out0000644000000000000000000000552207346545000020415 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/shape-square-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/shape-square-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/shape-square-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/shape-square-04.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 100.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 75.0 Pt)) ]) , SoftBreak , Code "typ/visualize/shape-square-04.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "square")) [ KeyValArg (Identifier "fill") (Ident (Identifier "green")) , BlockArg [ SoftBreak , Text "But," , Space , Text "soft!" , Space , Text "what" , Space , Text "light" , Space , Text "through" , Space , Text "yonder" , Space , Text "window" , Space , Text "breaks?" , ParBreak ] ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), square(body: { text(body: [ But, soft! what light through yonder window breaks?]), parbreak() }, fill: rgb(18%,80%,25%,100%)), parbreak() }) typst-0.8.0.2/test/typ/visualize/shape-square-04.typ0000644000000000000000000000024107346545000020413 0ustar0000000000000000// Test that square does not overflow page. #set page(width: 100pt, height: 75pt) #square(fill: green)[ But, soft! what light through yonder window breaks? ] typst-0.8.0.2/test/typ/visualize/shape-square-05.out0000644000000000000000000000002107346545000020403 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/shape-square-05.typ0000644000000000000000000000022207346545000020413 0ustar0000000000000000// Size wins over width and height. // Error: 09-20 unexpected argument: width #square(width: 10cm, height: 20cm, size: 1cm, fill: rgb("eb5278")) typst-0.8.0.2/test/typ/visualize/stroke-00.out0000644000000000000000000001256007346545000017322 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/stroke-00.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Ident (Identifier "red")) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Literal (Numeric 2.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Plus (Ident (Identifier "blue")) (Literal (Numeric 1.5 Pt))) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Literal (String "dashed") ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-00.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "cap") , Literal (String "round") ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), line(length: 60.0pt, stroke: rgb(100%,25%,21%,100%)), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: 2.0pt), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (thickness: 1.5pt, color: rgb(0%,45%,85%,100%))), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: "dashed")), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 4.0pt, cap: "round")), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-00.typ0000644000000000000000000000047107346545000017325 0ustar0000000000000000// Some simple test lines #line(length: 60pt, stroke: red) #v(3pt) #line(length: 60pt, stroke: 2pt) #v(3pt) #line(length: 60pt, stroke: blue + 1.5pt) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: "dashed")) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 4pt, cap: "round")) typst-0.8.0.2/test/typ/visualize/stroke-01.out0000644000000000000000000001000307346545000017311 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-01.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-01.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-01.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/stroke-01.typ" ( line 3 , column 2 ) (Set (Ident (Identifier "line")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "cap") , Literal (String "butt") ) , Reg ( Ident (Identifier "dash") , Literal (String "dash-dotted") ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-01.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-01.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-01.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Ident (Identifier "blue")) ]) , SoftBreak , Code "typ/visualize/stroke-01.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-01.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "dash") , Literal None ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, cap: "butt", dash: "dash-dotted")), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: rgb(0%,45%,85%,100%)), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (dash: none)), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-01.typ0000644000000000000000000000033407346545000017324 0ustar0000000000000000// Set rules with stroke #set line(stroke: (paint: red, thickness: 1pt, cap: "butt", dash: "dash-dotted")) #line(length: 60pt) #v(3pt) #line(length: 60pt, stroke: blue) #v(3pt) #line(length: 60pt, stroke: (dash: none)) typst-0.8.0.2/test/typ/visualize/stroke-02.out0000644000000000000000000001054507346545000017325 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-02.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-02.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-02.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/stroke-02.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "stroke") (Ident (Identifier "red")) ]) , SoftBreak , Code "typ/visualize/stroke-02.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-02.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "rest") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "top") , Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") ) , Reg ( Ident (Identifier "dash") , Literal (String "dashed") ) ] ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-02.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-02.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 20.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 5.0 Pt) ) , Reg ( Ident (Identifier "join") , Literal (String "round") ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), rect(height: 20.0pt, stroke: rgb(100%,25%,21%,100%), width: 20.0pt), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), rect(height: 20.0pt, stroke: (rest: rgb(100%,25%,21%,100%), top: (paint: rgb(0%,45%,85%,100%), dash: "dashed")), width: 20.0pt), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), rect(height: 20.0pt, stroke: (thickness: 5.0pt, join: "round"), width: 20.0pt), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-02.typ0000644000000000000000000000037007346545000017325 0ustar0000000000000000// Rectangle strokes #rect(width: 20pt, height: 20pt, stroke: red) #v(3pt) #rect(width: 20pt, height: 20pt, stroke: (rest: red, top: (paint: blue, dash: "dashed"))) #v(3pt) #rect(width: 20pt, height: 20pt, stroke: (thickness: 5pt, join: "round")) typst-0.8.0.2/test/typ/visualize/stroke-03.out0000644000000000000000000001764707346545000017340 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-03.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-03.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-03.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/stroke-03.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) ] ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) , Reg (Literal (Numeric 4.0 Pt)) , Reg (Literal (Numeric 2.0 Pt)) ] ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Dict [ Reg ( Ident (Identifier "array") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) , Reg (Literal (Numeric 4.0 Pt)) , Reg (Literal (Numeric 2.0 Pt)) ] ) , Reg ( Ident (Identifier "phase") , Literal (Numeric 5.0 Pt) ) ] ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 8 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Array [] ) ]) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "v")) [ NormalArg (Literal (Numeric 3.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-03.typ" ( line 11 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 60.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 1.0 Pt) ) , Reg ( Ident (Identifier "dash") , Array [ Reg (Literal (Numeric 1.0 Pt)) , Reg (Literal (Numeric 3.0 Pt)) , Reg (Literal (Numeric 9.0 Pt)) ] ) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: ("dot", 1.0pt))), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: ("dot", 1.0pt, 4.0pt, 2.0pt))), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: (array: ("dot", 1.0pt, 4.0pt, 2.0pt), phase: 5.0pt))), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: ())), text(body: [ ]), v(amount: 3.0pt), text(body: [ ]), line(length: 60.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 1.0pt, dash: (1.0pt, 3.0pt, 9.0pt))), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-03.typ0000644000000000000000000000072407346545000017331 0ustar0000000000000000// Dashing #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: ("dot", 1pt))) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: ("dot", 1pt, 4pt, 2pt))) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: (array: ("dot", 1pt, 4pt, 2pt), phase: 5pt))) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: ())) #v(3pt) #line(length: 60pt, stroke: (paint: red, thickness: 1pt, dash: (1pt, 3pt, 9pt))) typst-0.8.0.2/test/typ/visualize/stroke-04.out0000644000000000000000000002337407346545000017333 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-04.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-04.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-04.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , Code "typ/visualize/stroke-04.typ" ( line 3 , column 2 ) (FuncCall (Ident (Identifier "stack")) [ KeyValArg (Identifier "dir") (Ident (Identifier "ltr")) , KeyValArg (Identifier "spacing") (Literal (Numeric 1.0 Em)) , NormalArg (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") ) , Reg ( Ident (Identifier "join") , Literal (String "round") ) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 40.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 45.0 Pt)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") ) , Reg ( Ident (Identifier "join") , Literal (String "bevel") ) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 40.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 45.0 Pt)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") ) , Reg ( Ident (Identifier "join") , Literal (String "miter") ) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 40.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 45.0 Pt)) ]) ]) , NormalArg (FuncCall (Ident (Identifier "polygon")) [ KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "thickness") , Literal (Numeric 4.0 Pt) ) , Reg ( Ident (Identifier "paint") , Ident (Identifier "blue") ) , Reg ( Ident (Identifier "join") , Literal (String "miter") ) , Reg ( Ident (Identifier "miter-limit") , Literal (Float 20.0) ) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 20.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 0.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 0.0 Pt)) , Reg (Literal (Numeric 40.0 Pt)) ]) , NormalArg (Array [ Reg (Literal (Numeric 15.0 Pt)) , Reg (Literal (Numeric 45.0 Pt)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), stack(children: (polygon(stroke: (thickness: 4.0pt, paint: rgb(0%,45%,85%,100%), join: "round"), vertices: ((0.0pt, 20.0pt), (15.0pt, 0.0pt), (0.0pt, 40.0pt), (15.0pt, 45.0pt))), polygon(stroke: (thickness: 4.0pt, paint: rgb(0%,45%,85%,100%), join: "bevel"), vertices: ((0.0pt, 20.0pt), (15.0pt, 0.0pt), (0.0pt, 40.0pt), (15.0pt, 45.0pt))), polygon(stroke: (thickness: 4.0pt, paint: rgb(0%,45%,85%,100%), join: "miter"), vertices: ((0.0pt, 20.0pt), (15.0pt, 0.0pt), (0.0pt, 40.0pt), (15.0pt, 45.0pt))), polygon(stroke: (thickness: 4.0pt, paint: rgb(0%,45%,85%,100%), join: "miter", miter-limit: 20.0), vertices: ((0.0pt, 20.0pt), (15.0pt, 0.0pt), (0.0pt, 40.0pt), (15.0pt, 45.0pt)))), dir: ltr, spacing: 1.0em), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-04.typ0000644000000000000000000000105707346545000017332 0ustar0000000000000000// Line joins #stack( dir: ltr, spacing: 1em, polygon(stroke: (thickness: 4pt, paint: blue, join: "round"), (0pt, 20pt), (15pt, 0pt), (0pt, 40pt), (15pt, 45pt)), polygon(stroke: (thickness: 4pt, paint: blue, join: "bevel"), (0pt, 20pt), (15pt, 0pt), (0pt, 40pt), (15pt, 45pt)), polygon(stroke: (thickness: 4pt, paint: blue, join: "miter"), (0pt, 20pt), (15pt, 0pt), (0pt, 40pt), (15pt, 45pt)), polygon(stroke: (thickness: 4pt, paint: blue, join: "miter", miter-limit: 20.0), (0pt, 20pt), (15pt, 0pt), (0pt, 40pt), (15pt, 45pt)), ) typst-0.8.0.2/test/typ/visualize/stroke-05.out0000644000000000000000000000002107346545000017314 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/stroke-05.typ0000644000000000000000000000026407346545000017332 0ustar0000000000000000 // Error: 29-56 unexpected key "thicknes", valid keys are "paint", "thickness", "cap", "join", "dash", and "miter-limit" #line(length: 60pt, stroke: (paint: red, thicknes: 1pt)) typst-0.8.0.2/test/typ/visualize/stroke-06.out0000644000000000000000000000002107346545000017315 0ustar0000000000000000--- skipped --- typst-0.8.0.2/test/typ/visualize/stroke-06.typ0000644000000000000000000000043607346545000017334 0ustar0000000000000000 // Error: 29-55 expected "solid", "dotted", "densely-dotted", "loosely-dotted", "dashed", "densely-dashed", "loosely-dashed", "dash-dotted", "densely-dash-dotted", "loosely-dash-dotted", array, dictionary, dash pattern, or none #line(length: 60pt, stroke: (paint: red, dash: "dash")) typst-0.8.0.2/test/typ/visualize/stroke-07.out0000644000000000000000000002620207346545000017327 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/stroke-07.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/stroke-07.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/stroke-07.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Comment , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "stroke") (Literal None) ]) , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 5 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "stroke") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 6 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "stroke") (Literal None) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 7 , column 2 ) (FuncCall (Ident (Identifier "rect")) [ KeyValArg (Identifier "width") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "height") (Literal (Numeric 10.0 Pt)) , KeyValArg (Identifier "stroke") (Plus (Literal (Numeric 0.0 Pt)) (Ident (Identifier "red"))) , KeyValArg (Identifier "fill") (Ident (Identifier "blue")) ]) , ParBreak , Code "typ/visualize/stroke-07.typ" ( line 9 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Pt)) , KeyValArg (Identifier "stroke") (Literal (Numeric 0.0 Pt)) ]) , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 10 , column 2 ) (FuncCall (Ident (Identifier "line")) [ KeyValArg (Identifier "length") (Literal (Numeric 30.0 Pt)) , KeyValArg (Identifier "stroke") (Dict [ Reg ( Ident (Identifier "paint") , Ident (Identifier "red") ) , Reg ( Ident (Identifier "thickness") , Literal (Numeric 0.0 Pt) ) , Reg ( Ident (Identifier "dash") , Array [ Reg (Literal (String "dot")) , Reg (Literal (Numeric 1.0 Pt)) ] ) ]) ]) , ParBreak , Code "typ/visualize/stroke-07.typ" ( line 12 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , KeyValArg (Identifier "stroke") (Literal None) , BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) , SoftBreak , Code "typ/visualize/stroke-07.typ" ( line 13 , column 2 ) (FuncCall (Ident (Identifier "table")) [ KeyValArg (Identifier "columns") (Literal (Int 2)) , KeyValArg (Identifier "stroke") (Literal (Numeric 0.0 Pt)) , BlockArg [ Text "A" ] , BlockArg [ Text "B" ] ]) , ParBreak , Code "typ/visualize/stroke-07.typ" ( line 15 , column 2 ) (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Literal None) , KeyValArg (Identifier "closed") (Literal (Boolean True)) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) ]) , ParBreak , Code "typ/visualize/stroke-07.typ" ( line 25 , column 2 ) (FuncCall (Ident (Identifier "path")) [ KeyValArg (Identifier "fill") (Ident (Identifier "red")) , KeyValArg (Identifier "stroke") (Literal (Numeric 0.0 Pt)) , KeyValArg (Identifier "closed") (Literal (Boolean True)) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Negated (Literal (Numeric 4.0 Percent))) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 0.0 Percent)) , Reg (Literal (Numeric 50.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) , NormalArg (Array [ Reg (Array [ Reg (Literal (Numeric 50.0 Percent)) , Reg (Literal (Numeric 0.0 Percent)) ]) , Reg (Array [ Reg (Literal (Numeric 4.0 Percent)) , Reg (Literal (Numeric 4.0 Percent)) ]) ]) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), text(body: [ ]), rect(height: 10.0pt, stroke: none, width: 10.0pt), text(body: [ ]), rect(height: 10.0pt, stroke: 0.0pt, width: 10.0pt), text(body: [ ]), rect(fill: rgb(0%,45%,85%,100%), height: 10.0pt, stroke: none, width: 10.0pt), text(body: [ ]), rect(fill: rgb(0%,45%,85%,100%), height: 10.0pt, stroke: (thickness: 0.0pt, color: rgb(100%,25%,21%,100%)), width: 10.0pt), parbreak(), line(length: 30.0pt, stroke: 0.0pt), text(body: [ ]), line(length: 30.0pt, stroke: (paint: rgb(100%,25%,21%,100%), thickness: 0.0pt, dash: ("dot", 1.0pt))), parbreak(), table(children: (text(body: [A]), text(body: [B])), columns: 2, stroke: none), text(body: [ ]), table(children: (text(body: [A]), text(body: [B])), columns: 2, stroke: 0.0pt), parbreak(), path(closed: true, fill: rgb(100%,25%,21%,100%), stroke: none, vertices: (((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)))), parbreak(), path(closed: true, fill: rgb(100%,25%,21%,100%), stroke: 0.0pt, vertices: (((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)))), parbreak() }) typst-0.8.0.2/test/typ/visualize/stroke-07.typ0000644000000000000000000000143707346545000017337 0ustar0000000000000000// 0pt strokes must function exactly like 'none' strokes and not draw anything #rect(width: 10pt, height: 10pt, stroke: none) #rect(width: 10pt, height: 10pt, stroke: 0pt) #rect(width: 10pt, height: 10pt, stroke: none, fill: blue) #rect(width: 10pt, height: 10pt, stroke: 0pt + red, fill: blue) #line(length: 30pt, stroke: 0pt) #line(length: 30pt, stroke: (paint: red, thickness: 0pt, dash: ("dot", 1pt))) #table(columns: 2, stroke: none)[A][B] #table(columns: 2, stroke: 0pt)[A][B] #path( fill: red, stroke: none, closed: true, ((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)), ) #path( fill: red, stroke: 0pt, closed: true, ((0%, 0%), (4%, -4%)), ((50%, 50%), (4%, -4%)), ((0%, 50%), (4%, 4%)), ((50%, 0%), (4%, 4%)), ) typst-0.8.0.2/test/typ/visualize/svg-text-00.out0000644000000000000000000000501407346545000017570 0ustar0000000000000000--- parse tree --- [ Code "typ/visualize/svg-text-00.typ" ( line 1 , column 2 ) (Let (BasicBind (Just (Identifier "test"))) (FuncExpr [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ] (Block (CodeBlock [ If [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y")) , Block (Content [ Text "\9989" ]) ) , ( Literal (Boolean True) , Block (Content [ Text "\10060" , Text "(" , Code "typ/visualize/svg-text-00.typ" ( line 1 , column 47 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "x")) ]) , Space , Text "/" , Text "=" , Space , Code "typ/visualize/svg-text-00.typ" ( line 1 , column 59 ) (FuncCall (Ident (Identifier "repr")) [ NormalArg (Ident (Identifier "y")) ]) , Text ")" ]) ) ] ])))) , SoftBreak , Code "typ/visualize/svg-text-00.typ" ( line 2 , column 2 ) (Set (Ident (Identifier "page")) [ KeyValArg (Identifier "width") (Literal (Numeric 250.0 Pt)) ]) , ParBreak , Code "typ/visualize/svg-text-00.typ" ( line 4 , column 2 ) (FuncCall (Ident (Identifier "figure")) [ NormalArg (FuncCall (Ident (Identifier "image")) [ NormalArg (Literal (String "/assets/files/diagram.svg")) ]) , KeyValArg (Identifier "caption") (Block (Content [ Text "A" , Space , Text "textful" , Space , Text "diagram" ])) ]) , ParBreak ] --- evaluated --- document(body: { text(body: [ ]), parbreak(), figure(body: image(source: "/assets/files/diagram.svg"), caption: text(body: [A textful diagram])), parbreak() }) typst-0.8.0.2/test/typ/visualize/svg-text-00.typ0000644000000000000000000000015207346545000017573 0ustar0000000000000000#set page(width: 250pt) #figure( image("/assets/files/diagram.svg"), caption: [A textful diagram], ) typst-0.8.0.2/typst.cabal0000644000000000000000000001003707346545000013403 0ustar0000000000000000cabal-version: 2.4 name: typst version: 0.8.0.2 synopsis: Parsing and evaluating typst syntax. description: A library for parsing and evaluating typst syntax. Typst () is a document layout and formatting language. This library targets typst 0.13 and currently offers only partial support. license: BSD-3-Clause license-file: LICENSE author: John MacFarlane maintainer: jgm@berkeley.edu copyright: Copyright 2023 John MacFarlane category: Text build-type: Simple extra-doc-files: CHANGELOG.md extra-source-files: test/typ/**/*.typ test/typ/**/*.out test/skip/**/*.typ test/skip/**/*.out test/typ/regression/something.txt test/typ/regression/addons/example.typ test/assets/files/*.png test/assets/files/*.jpg test/assets/files/*.bib test/assets/files/*.csv test/assets/files/*.json test/assets/files/*.svg test/assets/files/*.toml test/assets/files/*.xml test/assets/files/*.txt test/assets/files/*.yaml test/assets/files/*.html source-repository head type: git location: https://github.com/jgm/typst-hs.git common warnings ghc-options: -Wall library import: warnings exposed-modules: Typst Typst.Syntax Typst.Parse Typst.Types Typst.Evaluate Typst.Methods Typst.Util autogen-modules: Paths_typst other-modules: Paths_typst Typst.Bind Typst.Regex Typst.Show Typst.Constructors Typst.Module.Standard Typst.Module.Math Typst.Module.Calc Typst.MathClass -- other-extensions: build-depends: base >= 4.14 && <= 5, typst-symbols >= 0.1.8.1 && < 0.1.9, mtl, vector, parsec, filepath, containers, directory >= 1.2.3, ordered-containers, text, bytestring, cassava, aeson, scientific, xml-conduit, yaml, toml-parser ^>= 2.0.0.0, regex-tdfa, array, time, pretty hs-source-dirs: src if os(darwin) cpp-options: -D__MACOS__ if os(windows) cpp-options: -D__WINDOWS__ default-language: Haskell2010 Flag executable description: Compile executable to be used in testing and development. default: False executable typst-hs import: warnings main-is: Main.hs hs-source-dirs: app default-language: Haskell2010 if flag(executable) Buildable: True Build-depends: base, typst, directory >= 1.2.3, parsec, mtl, vector, containers, text, bytestring, time, pretty-show, ordered-containers else Buildable: False test-suite typst-test import: warnings default-language: Haskell2010 type: exitcode-stdio-1.0 hs-source-dirs: test main-is: Main.hs build-depends: base, typst, directory >= 1.2.3, text, bytestring, filepath, time, pretty-show, tasty, tasty-golden

qW.\{pVC{9.MC5iօhSJ˴:j*/X;3:X  疭}3R؝ࡥ<ϸ-vV '|-hgmޑoU-du "(uJR.Ruk*,^}w)AjPT+y^(E+)W=uNEnK'M8FrB-dm08ǚYPr\/I,^Gݶi= xa])h"r jm9:)ڞi׸7~HWFz.xZESHvs~Fl!ԾC\stV3rZ>sALYCᴱ4r'[%o|@2D pڀ3b)7o=C2rTVWh5\s=aѭlW" :}To x;j`]pe{ rW`aagx宯ڔ,69T[#O4URn>a<=rEchGKZU:oݩEi9f@ԩW:%t=W>Ω;(+ILa)-H[֜^_r5KZiLf*.g.U=]*(jR VW,ͮZp} U:Yh4/3K>3G%%) %gCKܸ:}3y>+?:G:Wzk?{osR"I =\v,7)JUB rNf2b^eNZh[Ln+}/>q@ G#Z5R"7tܴ3r~JJ>&AMꪓa爾uz[ C:UR+W_nU<<H*g4ϮCC?*{p H:)e)_ .MVγf:,&!fE TJ8Ūȼ`nV#*"kF'O8rRe3(-SIe /QWOU}.RoDEPŭHj]딣8N@Mj~TP4;l3 A{S*<@6s5jS4حK}D*pz^foGϰH[J2+ L 2Q2=hjg21/FeMkgo)HD͍\,Wr >zҐ25 <lZuQkjr\Uk9Cvz+(-j}dϦh|cnLQp}{_9FpϹ}}WWg*fs*/ѝiuKRR%sʥc  hOj49qUjdl3衏+jj:hvPuC4Fs|<ѮXg,iDҐM\GLSt24rg?P4Ry4֊Qz)_K۔]ǚ"{=}Jjz^gP(>>̟C6hCn\x8\4zU>ix?HH?Hրs7FSձ YJSEX'~4R*mK^ 5u"WP8c 5>GJh92`f6_m(R*%]nϻ!+Hי s\MSu\݋2t#Rg5: E#Uݮiy-Dr9k/}o46u]Z9oe+vO3τLFyZCf uʞ@kAJE1ey wOX7"RL-΍W`5 n1`]pBxg?u [iQυwZkmQ%JEӲAe7|>#蹚\p?!Q|ɭ&/I}/ykkGR7Auzx9ErP[i(9;hnbش1dvVtFݜ쒃jY~f@>w.j+-♾͢P7%O4'tΌ]oRx~W4:;ts)[o9 TfD1qv@i-/=%+ h6TVn} me*aǠzU+אh&[V(꠵W=?U;\3GԪZ46V<ʐ3-g. CJ\* A.dz6}==yC;E.dˊ~rע:x!*?PXZ}^z P"Chby9)<#=hL: rIIAb%ҠJ {!)UyM;I@JEbM/Ds݁z RxִGs4KMϻ'2u+⋔t_FI %U9kB=I=Wԭ=UTH HŕJ &ktP(jt%amL̕W+m^N@!pP-*D4]۶L;<69}{4~|j)BgjcȽ: o6.R~NYN<礫)Ws※!6oYxKWo4AYҔԮ+U{<{nCBw_kMOcEU4 zos;K\_\Axysԥ^Q6T;whF!lbKw]ToKnɜm/]_RCL⮣ab6?_ZbօڶiJ<+ tJ|0et20{ 33\u}#t?1=3h"<~HTT W)Ftڵ#J R X紲y~]ђۜ;\Jx&(M\R-.+C, E+RԘZm?SU@Lq֜қM>yR_F<c< rꪔs?RWrᡥ"9YZP$fUv<ys8?Aa&y}KF!dJ.Vz>W=Xflar|n3W]ҦrnG)7+Q~?Rz)-Xv+n\@uf-e9_GYذqjA(v.ztthhC=H ]]GuK3Vd9V#Ŧ~1k]n宒柩|Vcxo3BG{ygjU֝>ܺ _WLrSq9́ftTej=h)PTߘA;U&kd.asZ(hګІRiL 1૭ ??=BGU`f]EҏUO!}]j m]lh;2PAJ'@YGW?2:x 0`Q|ќ\]Eag#dR/'OW97]]S63R!cH?>zAڋ=q*mLBObY,_2]ϢۡRՍ|[QL[!c*ZM\]7ZlV<9-"r=@aAIp}l{ OAPx7zHSW -}]P;vn婇?g.^u#LM=O_C?zQ=0c EikyKPZ&EX_?S[`e"t3"۲C/~M]CG/._]CUid*Kgڙsd|]\A[98={ywޮԧgQp Cxw3RwzqeE,Gk:gKnAsZכhP;'dJ^Zr,ۍnOiE (i;L/ZeZH?;w}T2}//))|^Eg"+5\5$].ZѲ]z MOA9CmVo-j\kUskw@q\s־=o=^~XRkZb:'jG=Wd|֍}4 kF}=H XTw?i@iʷHp{Rѳ(]\u45 &uSd]-X+<_3t;Fϴl_B|\ɧ%@z]\ jh &d:~A.˵ګlI2ڸ%*MV4sq=+&(][P m>:SKgU{A"6@uNi௮x>OOk`m^ Z+I bDM-&ߦ h}\]/"ctʾ'i,AeZ2;cFsJ*%33QA7R5n6AEސVھcҗ,P(A( E\h{p^H/\y1sZŷ׹hݑR0ׁ܅=\ "6G:j c;m_9dU v-3sXmnHdϦ|4#C@@i>Gb= =Onj\ dy]wt5֌>sGxQ|@܀0ݟlP }#sV)"ܴ3nXۙQ^{rBJ\+3A@)cUڡ7ne(:Q+@OZ(v,Uc^ ꆮJjQBf5)'(Y.R_daa8>>sKgZ\2\ȕrsC~fA;W[itFF;TpXXK4šiC-,3ʋ(ْªZ6g|TTe)Lƴjl.宂x ӣ8gm=ul4qA {u/sxۨ713RC|д3SN ,CZ6q~]Wi3\APԋ utR(jEVjXY΃44}}fO~;7Z/HS X#z/:|GJSU\yϜ 5DJ JHeAlp me\8#V0D 4'`bVr.}_(mүHg7WhvfWMJ!Z4=hdR vx^jz{>L#ŏmw/k#bJJ;[4DE UVۋU&`и[Jfd[GFE=h'h[@ x 9EQ@)'3mҦ;]}|YTѫyȁJsܡ,Qd SЁvQ/5\mzȭ;%Zy#K.q6 +-/i*E%PрG3NM/ >֍̝\ܡqgގUⅴ)D墹XI3LVҥ7<} }GvN>U{E65UMϭ%Ui;W835ϧch%fW_}/7a3F5\_ȱ݋jۚ23'76OkLo~S P pKnfd /JKka.om^v>AT@=C2QKMzhh@@mto?nQrR<9\^ |s厮COV wo]*ox ǁ\g m*}6XKE dhMg)iEOf]ЦZK7k>KrŽ͊>)ugmA`e / b =q̨FscKWd>WVAr7PPO=)8Cia+m U(FG&Ig/}kPz72<7w9xy:+ӈe.їܰ}5 A񷡼8=Xf5z›v/uZPܻܠFZS40m,4OSm>TUVir 5[ :+$V/f3zȚFT_:_Z1LZM l`64*(@;SG厯Z4 *9~&\@j`ni/*(\[/ ֋97KsmCnh(s1b%F2u>.޿Ms.(F}r.d_B^i+xϺ m{kf #dOa&}rz*hRޛ>ze\)IەEtSW15z/K3F} ?K+a['i>z CXΘfn7> {KH hS.R!O+WR--< Ksחy|ox_+L#2F +FX- +Z!uzzSΞISjZ5p'ʷit9GTk*=ʹiªCrxU8:~|8'} cn_&`uk4(%% e˰2(v.TKl7 rd.rܥnU)JѣeWH*dyFa~vR3N,XXkFE&yHuzM(kSJ@>.:.ӁjZ2X#*yk{w/7s[0}|ʹJەsqD z(*\*t.kY>@[Ծok򇴶5K_vkǁ̂CW FO_U̝3m)ܖ !4h-*D\5OSJk|/:},yM)[%-z3dK_Bhbz&7<֟ɊӮ6YWR8aGp:-l (2U^ c-Rj.'E+A^.,P,ZtQ|pAyV:z;hL,U)v7ky+m^[XnIBO= 曍@3E[̊ .Z);ST͎ah4m7h1z irWbVW{dVv|:D_ṻZ~y!Dgbe)-6O=Aeme2E):g;)\2,fyF_EޱSgTY]qZ M@8r mz. TF\i뵻]m_v|к<09V}pۭ:HUh(qYm@t턮T[O1xSELB\=vPT`O 2mXE.}|WjV{iSF`E;Ka;9jPXjZKPz^Vв;R cV4b2ڹVTgNv J*N:ʜӜaRR8U2Nkz?TKOT޳FιO4sPV^;ugΞ<[7-:lw̮͟e;浐uz]7'쉞dڞR))rZs}1殍!Eݡ~s[.itm~8[HOn<_pURϹ r֎W2 =ZA5ž@  gP7uٶ]rz_m۱(MEujўnSi}W E[3Js\zxkQHrTP]irOW%*}//Arz 7bSyG*NAyJ+ Pa]O暂a Jjc?2.yVkM@ry yI4u@VtjR뺡F)ڑQ(VܿPRC)4ZXʮh.T "P^Y|Z]*sϽsJ/v"j[ܽkؼl 13LT ʵC=Np-h$ 9﫹WZP7}(Ư&r<|l})=E J8Ӝ矝-|(Ѽ l۪T r\vx~aCCgq3=%]E4;jjhX(Ҕhqss}mFJdns`4 AJ΍S֊Hhc9'dM?~Vg;h2ի^X)ogR3 2FʁŁx AJ ,sڹണ'э@}Z- Ԯg_7T˳Wu"ZSPL+Y΍M:t h Qvuty Nd.unrl?ټ_9Ppr*Eʶѝc%:3%* R6pKS؏CMyH4OZ3O)'NB뮁.shxւy^ kޯt_Т2tv"cjǝR]s場XiعctWGiBNicuG7Zخ_!ܙ=,PZnfV}(SFCFiwP:uSYnno1i=<~^b֥=N 6u-:CVڻyEOg֍Pu ^< wZE\t{WTiVdVEMѫJ5vf6g:BƩ:Ru4 uP"[z;>r’t4\>XMpݫp/g0:JK(b!r۹C35'ܫsssSPsDŋ ?jV>;ԧQxtckw',tF(v{س@C>СG\b˞5]{A|t_*}=|NzdۜfsC*f]jVއ+;Kshm7@iqTj=AܿKϠ[bPCH'jMZw<}]A~qd|HС~PZM̳^*:5rVeΔv^Ɠ9=c[sCѓ{!Ve3\Т]žGnŽ9L)km `Wy-D5SO:܏B)T͔>gos Pk<\CWhϮ?=H ۊʯ<wjAmjAyUJ.K* e*x|Br23%4 )>5 졚g5(SFۿ]WmoΒl|G&)K%EFUy_Kc U)F3V䆇f)czz,FA3)Yr^Kqo7gV;n}m7<礮e]Aiz 66Nd8hR(lhO9a/K7$5mE,b M~CnrS`llqb6(*{A^/#ys}WAP\]ܪZLRvQ] XVyڽ&Ҫ+s+ (rsrSPEpɮUEtYA7 εhToFv3&bj@;ZEy{tE)YQ}֪X޿ꪾs)U4m[*rY+ܲ@rOr J5;&}sPj.kWɈeok9l{v-rх TyV{A1 enk}#*ZimUbXnK>_]//{iŵNuHuEZu7*_5}_9Ϟ;}W6IR+Aϻgvg%<w],nd4RK%5X떄#V|>9(Wgt?EWAw*Qny[m6ٶIBS4Kcp2ZF'RRZoyY|TjE}mPj"}\8{dϞ({ShzG>Ȯ8sq=HjI=>~r  /MEL"|mCkA- 6|=].ViGKy_Uu >h}i4uwzrѰ˖.w55R?>Ny(O* NurC:_|2ʺfKlshM\Rʭ/}9ec_>_> (T'uj_N=kyb:ד-ֈ)@%!=iP*iꔠ(T̕ybdLkVB0+iE'ZѡnJlcUkT]}KWli7 s$\ y2ڥ*e$/,NnH_G~.)*K}63Zl_:\.xL3(PV++'*1-&N|Y^֨3Rܩ5Ai]F)<d[ C[lyW.E ,4)Yٚ9*Lfp)T(s=SyR5 ŶRWvŽ:8|rπ"(82'S^Fh6iX~COgS}^g9?Bٸ^\+|UyJi\)fh|W=ϰ7O7G۲W|ֻǛ9skf.WOJ g8p6N<-mrCIӢl4,*sq=~R1} Vy3l{cIY-G̀dnrV{qE_sz/לgiy9D bZ~9΂8`_CnN.HnV؞{]eR-۩}W^XRŅJ⫲0ι L[Pʓ)bZ-M/nK6UϛKFΕ: *BmK}&V[ۯ&[Fߣ.#M֡Lnr3h7syZنH*1ct /.M#Shuï cn~z*^i? =k.l:WS* kw_WsUm 3h~c[I:**Z"ӵ;mSvJ}osyzYP%ifu͎|9(8grB vsoEC8yؾn{JV}kXbz M)YbŨ+h-jͻ<ݧj nt?KO-6֖")>KF@V,>ɔkQ֍[hmhZ=ASJ n4ڕ{hH!wzS5s w˫*{*/U//PJ=jfG/ PbLrƛV1_wĺ=-# ^w<{Zm[nYZz6H_ccz2eЗj,43K[Z*L,o%h7ڒV}#{w]69Gxz*f)mbٚ>^CԶFȬ䔁gǫJe猿/Bx_ŀv.{&2;#Qi-V7RfKAѽ3鹟(ޛw6cgM/{B”)E2~ir煦S+2=غ֭Hn}o9'c~ ۖuvCW-xwtnħVsiPSr9g< ɞ~6c_.tS;\a)z諙M] Ef`m;WqrUF[VK=rh}|W/}ǩn|ort}}rۋ<#Kŷ=dmU|U'KE iNysشs~p @x?em"9Zt^#\ Hcrcl+Fs3Hgڵ)Mp]Qe-7sǙϓ}G<)B>c.MWi|>gxZh%bz,_,kgF.^_xoKvgA&}vqW6(sA{"Bź-,[Z@j{s(zl/>{]3*(4g?@Ya<6 ^;`]ՏTwmu^7P(-Jt?z/ٹ 5-Cu2kX~ Aќו}}u|4o"c_mP"φ юE8>yz-?jl*io5 =.N(]Ŋ \Vmh[mJewEO5(Xjг\E4`L6Vlyi&qwOc%KF7SXH ѫK n@cnrA\\U :R Fn|8[Uɵ#ϮOii|Ըb"U-:|5ʯ)P.竓6^y mOZczYhn-;~_9~eyC->J΁}!BtGU\վK}̇J/Fɱ_=u\ǭhs2wqirLvy(< |w[s7(,hvm9H,mO9m =C/?3iy \hO>Ϛ~yd/gNLS=^h,>2]W/_5-c7޾i_u74h^{9ȎǞeG ֊mP:\kehE6{eRrωZ=Mޛ| C)]ю-knq.fh= .G76hs%TۊϮS4eGY@Ò*(e)0˩m(&@ -ꇮs=̔+ܵ3_]J:YSjF0Ű"<2Ѕϻv7L-e[&rRrк\6$]UP's<ЗvAW}zo SJ !t?9Ubz.k5\|mgyM =:/ysLeM8)/p^oh?DL%&1@(RQBHuĤ:&ZQ™;ej4x&I/?=(S_L@>u{y-73֧OT6.5ZkT={vHy9*-} i馳ES!v)\%t\<%u&Cx5YE8E̮z>ڳsC*Zu+=m76 iʅҦ3ʽ#źG%O~Wܡ+<φ-W ufC| L}Ŕ} 8 4.~3=QЩItb(ʹ3`8?JhEw3sw9+cWj_*tg7juΫ5}fso"rP%iyNF"t*DIAQu}lgaPΨm]>Zi}7~ q yQsdY6T=T\SM>EWn\9s{y|e:,A8;fnmKm9ԉm"L{R4czߋw<ݍ 5#@:9lp޻`Y\Է(QT_7qPT7Vd.xzZzk{mA3!爽7̞orf\X>}e»\hJ}N -`{1{7/Y9#͍_竩P++XϷ;VݥmϽy\Y.Q{5.Fz; ">WZW(ݔ+(.fmZqNrR| ;+b0Y@k/uID|sG^%(SGX֪Z.>ҙ//jCUA3#}Hi#ei=|~s!eu2gn;柣qv8[k[o (Vi gf$)Vz܄T^;ϠêSROj.Oi杧 5fY7)pp|쬿naj.yfmј)\އ6:.e{G<[k_s枛4yV8m/Rij+Wk *Z#WDV3( rֳ}sEvp@lslZvU,gַC@z˼Yٞ[nryѮwuKHU':v b=9sNRO Ш< 24Йpy驦uSv2Ԑf,kOdZ: lyi:ǻPt>^b(i%[Jw9; wY̠gɱr=S9j CYVhj>4pL|\]ãjV9j{ 2y ,`Z ;^# 4љK4lHv;/{7 )%Ajt܇r).]I-%*F+| ,}Zw9 2pWԢ;:Odj T|U+cd܏u/xsfcz=w_pk.7'-^*4Yӹ5TMrtk"º,VR[stxMKٯ7rˣv7u־s/SնcH &鴋3ilt;kH;q/i(os8[?-wWqkS/Zcqy_rKU4E62QD\V:ӽ[ԥ"I)R_FO(8i(5>Cj湯[mi~\ jVc֌n0}iԽϽcN<4w._w+cz}UBEʁUlK~Zm;}7>h*./;b(<0 yߍTkhnơ>)hפf+޹QWŘϭ,ʺ[5WK@mq| rUBz-*s$imnMY8~TGN1V qvݺjKkq+~2t%fNjŁr&6їlj]P˾Lԭ(i()/ VU4r]} -d fgZk ׼)gPk^Sh-hK,Mϼ)o49>Ff鴋Gi@؎n)V̝r\Hhu+lǟ.S{HLI g;~BW,w*f߂؀<) : 7ܿ\|׾u qkiX*1Szn?ѲU aBP.Wx-{xC›]_|H u{i}yټ,_@,~_܃_|W_B6iC,7tky)qͭ,>W,p0$TY_Vh1]_ȕmBn\k.}mx_brf* icºtq[UֱWS@cn-cѱk@Ϊq\WiA)W-Z5PٶԴA1A@0Z9~W+GTƏ-DX?`Y=^sHE|4 UfZ:Xi]뚇OjU3 {@JU2ro:}#[ Zm%REHˤh0%`hِW7_A .cXWaLΐuMlae#9MW'_*tQXjEd'c_A9խr8W_/>R+!_#xW~u-j,Y~>~>W ieKBe6C*r]^z/_9ۅs~)mݰ5H)rKXp B=]ʛ􋕏~\jVa*]MP-s]hصɰZ+V?RnPi-k!`u_Gv??ꏫ2_ʭos>ջ'(vZ 3_-n|}ib;O7o!Z!|rҚ[69s=uk?VQq6XɜWO!Q}lnJoyn鶄tySK?+qW隔!V,xyӠdjp-Wj9 }\*FC鶳3H`nvU٘S JT̢c6=pmOI}S;I2=5JW;XޯPj4Z.s 曞!7HA \fohUr:2ǏYZ\7U *t4hbݛ7r_`T BfyMֲ-hعC4UjzcԬjkr^K>qU"ʌ֎Gxy%7<ǥw4Zz|+ܶ>VVwaBO$\_v.z+w2PӢZ~7ON cUoEM!ljzhn +|)@շoݠz֭5ʴyh[EC/XD W~5 /fhWSASaj]ff(Tti#v=H?3q| c[jm]_vm>PFgSԴF9)O->:iXcjO >z֡ѕ_>cF_\?>ʢm-'ZkX=RaikU a@QڛV:5&UM=GQg zQ{I(^'Ӫy7Et)cunź݋*/3CO(|ɞ? O=\/st Jo><N-}42y;R"͛3(U^zIg4;ԔOTHաjRCXk4"]i:*P"lPtP(\,lw=>z:*+3&-9h g 6A[yBuQVܓm('ڱ :dSw7^z0~6EVUhɞ{s YP-{ws?}[x\Q_1h,ȴ1ݻ*[>f{>:rkpZ+@\elxhd0N|i =|ܚUsk9Ѽ*xZ):AZ_pܱ\BֈcQgܱͭM@QJU#d.U..ڻ'fZ `E=PҴܜAU.>i̝͕nsvf|rKygrC>*C?/}iO3ϗ̚iRz_T_EМFھCZK msaBn*}O5c߫z֦/r^muV3[|8G :=q3R75}sm3{s%D;sLmr۝ =WjeWR4 rhgJՠ a7Czf- 3*P }HD49Wm(*(@l6/WU(>t|&Wn>0"jܖг~A-v(-/X껞潟T_/y.P&-c5{tC`{-?d50^9l`5fZh9$hYjZKrsF4o _Pp4ŵTY#}ϹОA`OӗV&Lsaz/*.x)7>J_2Agm*n8iM=#y*۸{9D֪TX~)\H=AFr d*t8{oiR=/'{#%o/5^ʅLD ,b(5j. h*ml0[T ʇ('5[7rȺULjEޛ2Vn1i"{ 60Uj3W率ʟK*s"ųMh \6,jP 3\ M΁Ԁ3\ MC)rv.-˖;7lcrs w_]48x]VX g Z3Z(nW,lVhPC*ϝ!#ne;@X뇁u"KZvHm7U6tW~IFvE |h}lU ߮<+mtY*1(_(l RU̞p-uKg:ŽJNNvRR*]#ϔi5\.r*RmMge3No%*|': .4yi*@(b8>Lj5cw V{mՅ]':QcEORъ&n|ՎJRʻ#iIk*5w{h{t\ ]U-.їW.o?W[rP-lmnx/04z4ZWB'h|?}s3M]kTG8G3 < Dtq2h3JhXm{/ri|ַ5:/A[9:Fee4Mּ-i]NU{/jzk5\=SmF\OV8f)̛Jx">@Moɯj eR1exNx/AG-KteƏz\yABͬv2HR:{3yP 3C}lZCW.2;%ֵ]_G*^ {"ⴌ_=./9 Y}.7Vw52fsuP4]TEyaPI2| d|ji9t$އr]% |[S•ZKxT xg/i*mq*V־5U^_U/Cjo3i9 G嵗6WI=7Kk'B=U)}љ jhi}pMw供~}w>?Kit{n-l\feײ :gh9 :3G+0 +ܼO4,o |^w?}>]-wŭ MSK\=k}jY :摵-|gg3lG;ZytM丏_r B<<Ƴx s_3 5gl]9ܠuSR:grZ IKj(}ic00ssGҦ4..MiPkf1n, TQ*~qCg;:=C/ѾslUk1 0{BĮ4**Zg+ڳ2ʧH.%m'&B+ryvF L6؎il-=iySX&,vy_V<_u2캕AzC:tb:F8>~PԂ^cyV-q\\טюĴ4muEM28XJ㚁輞h9=dWq&>t|"EZT^U2/E P_wRz<+K2=ќ.NŔ.'P@C?貎ZdRPSS02:^HͶ^ORsmEʹt8-Wm~kzF"}WtT]g4 ip!eFIzJNk>Ǎo{ɡq}6NA7)_CƇrt1[l[E㎑2 }Bv2+.;Ŕ҈2+\* 4+Tµ,*b7>sK/nѹ7x޹?\zzE~d3 +9-gp7^YުKoM9mjki50:}?r-t߇~*:|ym5t:ʓ{nΑo}oK2JkB9f EѴs"#9URΌ>; *Ѳ]{te^(hxߥEc=ynlφoW; v.,v[1Ǥ:y?k8e#7gZ4Wk҇(R6B\m_KnxjnWeii,Cyz"R9}5B|6Mtnvꐏ玗Rr\_u糽 {5`W~&m_% ݚSuWʩ hqw{-enU-<-J\|F:4ZyHIf9嬯ԟ3#1&Fm?Gnysg:"sMs. U*&nؽ4o;>(Odʱ\ݠ4 rU%2VTQwuۤh>ƴڬ RN=RQhAOL毠S٣+RjTw 4"O;U^Sy%(P_)jc5$7X|Sy5 EH+7JxUxF>esᜭ]YHngytW`4vx\vP,X*EVmTouھ;K6NK.ΡPW\ȶt>曼3w1@k0a{'z} <|v]_F4@ YR <%*E X!-ܨw?uXhP[vwH .?Gn숷Qn|;$jd%N!EifCjD csvf0{Ž6H;|8K|2clAܵԿ3*f2qY0}cQ\хg:}AC5(A բ#bWiVO] RJut 6}Kr^c NQ_ ,v-J,B|[jY_]5˗{~ pΗ=_.iDOnsN`0;ꬃK+&w|P>{:DUꪸo>u/4;JzhIjRzuLi,ibPXhku58\PN ]d*3ɲWdm<[yer sRtCz\vnm_k:3֌Qf\o<сmn'4R:-2a9iIzY㇤E1lNjiy]O֧=:Sn#mܙ*htg% 6M?z*,}=7(g}mwξwu{G"4-M/>Ϫ,T[Ehyg:^m\A]vr2==7HԳ+2oe Mry7qEc;zg/_js_d3MK\G!kt_z|IiJ3|4YIm~d d_= ۻǣ(PbԴOP^:D ?+"ʝ6QTH)9R60΁;Ӑm9{w}'BZ5m4p;COTRѲ\;>T#A94h{YZZӍ5 Vyh%֙S+R9~1weǗ썽*PU0-W^Ug}KWi;\v WOLWԢiik/8||:vəPE3{A^b.:MEhxSnQu}4/Kuጝ Fvrgvج9e7>iM~NowÈׯw}hJ)`2XN}4icZ "CLY5I!TD5+]_Kgs.; +K;Ko鏁g:X8PEj.xR- mC32)uSˋ9Jо@,nhdZij)(`hT-n^p+?@Z2%)\ʹ:RZ}3roY{IBo\ @#h-W/c@wWhz?2t~ߧ j/3_3>:+~{zǐySQ>ϪpamL櫁( O1ZhZ׻g6فxlFQ{^ʺ-ct_A*e}|ykF۹w]kuieJ#/PZFKw W)_zH%[g0-#4,7Z ?MS- ^ 1lcPlk]Haeb/vGMuIjW)v`)Cv7rC o=HsY=rOmbep9|dvE%1wgH]sg[-=:7M(g kɠ䀹Ctswk|0i?7Zq`Z!g*Rzr-Erznh9yW->d8dZrSB/>tVՋ`TŶv[|ZUh}_ FOVϭdo8x>r׼ Yp4|nscᮋUuᮁY?Sɞ7ьMb:bRiU\s(wR\?*]Vϰ7oċk65vڭ[-gh%Uif7C-|湠y-g7څMԞyj#Κy| A] 'Ju&'jww^ Ԡf]*RT H=@Q%|r_1϶hmʭH6+Re9ϸs< 5 -qN ;b:}4 8{%Jt"VPԥd[ , *ůK9\ܡL_F!ݜ0s-q/^kc߁?DGv=åޥe}Pਾ:+25}<rE _ ӆ\\ʺ,oUs1`)}3=3[Z SABX۲fTٹUsk),f率伫}1H?yG'%چE]U9Iͦ|@cK(t2EN5!+Az_<_fR]m.uUCz ^jh6qk\Vs5GWf&jRgϫw΋ ÆWtiM[m_Au KuWǘg46uD֪M<켇{иqۜfPCLW5\AGfR}̋+onrYejQ侉cvӢ5Wyr?k_07m>kg%#y|n] 3)W8_R=?uXkzE]Go M(@zg4pH2Ϡ X{J}HPPCEUhϝK9o+K*S!ӠdUzW(w_z1T2uO7aG_#i*[ENj*H-n-rZ)5rPٍ㛴sm]\GAڦsE(3\V|iP M @;ʽ7m:C\nϔX[Nht@\яRԭ6d7ʾU@jRt֝dZX MV S5M>zR1mB|-k]r7CzjάB42(СlbǞ D~,e7A4Klg:2'yOysȢ[[e#9W5W@֋ޑknPU3Fte`hοg*V5HiiQgg:0-J"\7&smj.wZ+C њt^UeJ(QqK~ǘ *S4ۚ_>z -Qt>n co_m"I\Q>gvU+s+nɃYmh?9A犗$@4U!?^z.)s~[tUw68mX,m2U)BHlGU*e<|\5mɫ{8zʺ˾KmsAVj}5[CxXֵ\[_΍M A.A&WxytY͏ ܠtT8CNg;\SYZ#c5WijܫXRWصWLE[z3L_Τ5 ƱFQlbzNPZ\۴joM?cu,&{QuS4l _\X򺝛s>IfwK_"@) ,*# ʹy>YRtm2Umfk2 əa43m띓v%.tUMrVNiM^́ɥd供6p~9)d;CwM?<r[Bp-RKWKet%8i|botM暩_w<aho®;N_|iwޑ>TOH|w炵/BH2ifرW>ԁhJ 5W:Ym'=Xa#:4غ5ۺ/7w^@Qcʽ'iTA\F)v:3_rfq=EJ#s&62X07zd>3F*^jl~ZxgC6hʧkW^Q}J*dyawܗESkd U=, }'xCr?ғ2;+K<+Ԉm4g>~sH}vty"!e]WCg}R]SҖ-7kHş@hOX<~~/hsԂd.~25 /'WjRZ Xzmj;/dnP1PVڼdF_=CvFʺ_mjm-y[x?M9g궎Pwby.,r9:9K(oW[E,mҢr(\bg<<7VdimJk u3k]sxEۚ}'p%tdMC4}k*vzܫ!'2G<\3k4v`Ph>mW6ZeY\v{F,m]>TE;W }3=C'7ղ^qUՙK<2ʻp۔gx?sSrJnm샯|ii;H+ZjiR\gh^UfN_A|ef_\+sXk@fRz/d|۠N(kNŶ}J;CU񽦐`2[IOg?#9P_Q_֗RҎ)3;|9kx؎CibBo\mVnQ K!| @BHN^C e۟XeUso ӭ/o%GUdsVӷdw Comiе7{oe Z_Ͼ iEǒ%nO<1ѕ<m#b7ܟK;&-| (eM.KU( hu⇼sfozi4@_oӪ aܰǭgދ{&UhDѠg\^"LEO^ʬ "Rg/x\=3Mf.2V Ib?l۹Gs:, 3wT|~J] ?K3XϨyy sgn3Ɏ3XUwC^>G{%7>ϚѦxrx\o}iM}u+=Fݴ>};\RzrW/$Hv2h7~du AVwd>AK_wԻR%o;]=K@w1WoQ,ѥ\%R&[BZA UF US2|7^,5" zSʲ\rփ7Ps/^N/ʒ+wOd1ї~}dzlZzo/X)+HC/C+<]~^-sq\c9koiw̗PE [S=)C.va3>/p64 J{r\Bү:?QU -^2h@0+U\QWjHɱZJCW KlA<ȵy-@Ŭ|: AoAs5o. s7|.o7s>}H4-"&b݃U\5h֍W53RIl5E˸y6<^=IDg ̻?s\- ~l: ">yY v:3և[Ar( 2mJ`NyEid ա1 H#J)H^4PQm?hd=rԒROtR"m*UCJ3HgMW]Y܋ֱ<wxkǃ Q{#ᒖ]*޹3/_KWSTFu\7:CûsOL)X{B>@,_҅hRuc\04;]j 衚NjS5Y`8mVSo.P 7l-rѧ\n3e;N7]jUϸy/í⛠WOKFyF7>ԊF#Cޓ:P\goU*Z4ZMIm"jPw*cP>3;N} .~shQ-6teF؋rCTSi_.Ұ \RGpv'+-OyclX-<န݃w #sW>]m}Ͼo}MeyV#bovioPPlm,fw%)$\]s{*y̞<^ }/"}ѳu?ZM$'ŕ4 1`WʻC5AB\s2/>sh,q=ʫw9dY  ߨ2[ϾOeW!9Gjռ3R-f5UzsZ9F UݱԳ]7hZ{@chsJ2=$uMWnAܮ[:=:ךU{;wWMt:=4n)2tl>lN2_9vлϼ]0+FU):[s+KD™{ŷ =@oPe(r һn|onu|}qoΗg])DXC\U#xڽ\6L[Ѧ ܠE2@?c=\g>X K5/yUv7iU|OǺ/([BGJچ(wt A.|9VR- wQ{Up$l62(eU4,>#ga\{ќ=O˔77 潳P'=2J p xz']+ ܧj=H[2EӒfO@,m3bˮd^;פx_qiqoҽRwuK8y{A{ 枖s/eʲ^4IoAj4GZM@QP͖yZ<œ}PH -K@ןe ksdϬz2P1|]1kpim (--RuT2ɗWڔ+K2|2ԑ&ҔQwp5?;ݯܶZ4ضkUj|KFWŮJѧ9/CiHenUcqnz[ ۹}t%y]2*j.Q-r>YV@ZXKl~kngsí-TaWMZh-btZ_n*^3Ӄ)O`\_*_CRtKCKQs-r/F*C4A"OTD[{~}A]ԛ4vfEC1 AZx\J\NASt5KGkbCF2>tNt=5:1vڻ|h,dm2#ϽGDն-H'|S*}_LV}mHz7nYb/4۷?CZ]JeҫǖniMRғYSV:FGdr?*,)W4zg:E9Zw uV#HZzkK.U} 35V} Ԛ==!ZۦZ*q!Ch)j,bI-^P WY|5Ԥ \.Z>[g5|ro^j ?(/WQ:mFj־V]j tAH"-K}ua9xy?-!Z5(Q(c.Zs'}YLnR,` jHhE]Hlp1S(kK-=)~VgLߗ^hϯoOm)zc\Qb R:W"Iݔw*ܚ >*Y-|BQK(z_]g)6M=j{srX`br\+܍#י+):;"==([hXWvARsL 1nFϭ D"煷4SR(2QW;|[$Y;/Rr6輂3z>>{Z)34,~zrnW)E+9q\ǁL/`Ni2] o_q}K;5R* ]r:G>8eT^mUDܾ#t=^۹{gEd-Z &y2w*b>CUVl, ({ mܫot:V.ƵOt||mCy>$e7Sm _r8l_o_Q7s">ņg:7O*Fk=p[h}"cY|^WN?nJ١Ut-,GF\ sFZ07RN *T*ѫtnxzʗzy$gŒ'k_1t*:.;q潞7)f-7=[X6˱ޛ-~_"R.JT\Rf㾒c~gn{5yVmǝ6ܣot xϨ@myZ7p.֜5V/WggϕH.eG떍_ztcCǀPW;mS=/wt;2P|6]jCU"^|ϛKUϠUjc-9\ ݓU]SHLGBx=U}jmdvh^}{ބiMsކ(kPdPsѾ>^, dU6Ffhm.( 0@~pO},! 58"#Àq!%xYqpGcUkT5Tj 0Ɔr Z߆TWGSD"!=#1 ->&Z.57ZJި*T! """E3(IBW_WW !g\qLJ.=]BDxJ[c=]C뇯%?aQ(H5:TR_T8,͂ڤAzP61MZhMxOy~Dh[R{ZX<B|gZ].\8acć_}rD\({JhOŢBBB\{sB\rȚMIhoh/B_=?>~z ㅜ}>pA\Ed*J|Ď@/Epr #UWʃaάE Q)V(굔c^PJ﬙Q&-Tkp z zjd#jY*>T!Jp`"g?8#8ǎr T1ZDiagPJC`ɨmkфR!^z/|r2"-eP@adD5FT?mE@(?ψɆs*U8+*z:(>aH(Ă <^z5g6MC>TN*(Ȟ mJ _YW*\8 $"WWQ`8_q9*!בG[ɝˑ`4vF?o%$]ǨQЈi]e1DA:U/6#B¢9suRJ`"xycD0G K8*T?*M&y dV B#ufl9*$"&r偃Ș! &IH=G@2DY矡BBz hIDȋZD{{_w)\+x?˗,9 o% ^Xe A!JR>bj| Jjd9UU"2 )F( ::: 1(ģ| (0GP fW.?Uuc aïY2# ZXCÀ,%ŃK_/Ȱ&0[Ț״k>H.J,")=$@PjWQQ"lT:V*‚WW@z:::OTd` 9`ElAldATq=8 aU"j>9ִ8r""0.\r|f(7DDM'{{Z-""PBr> rCrc%u(E(i BDjF*PGHq,h SER)@0(T*ŸXCa|GB($bm&SEUoU#RÓ-VrM{yr,! G s99`"",""""ks(8]\Z$$2UEȚB!BDHT(D}q"1 T) @`C DME.\.hO#">zU]P"U_k70ƽU(tWGGQ(($|2qƉ %78=Ehj!Ʒ4HScFPj1n0J7Y+φ%+%h#AExT(e^0Z(]j+^1Ьl2d"ir/?16sQ EDDD)H>O!|6ŧR1B""_rˑ>cr9rRCTISc#QQ(RT*@P*tuq!% ONjFXѕP*RBWA(XJ XCĕJI0UǨH$63a ҪPaש$"KfIyw7dDDx"i<^-&vyi<[ϟ,uIGƋs4^zX/V+ 9rUǏWXǏQ+Jǫ$Q)$b^:o1ƴrȋ8E{R *ʾL#_DCƔkOK9^,%X9؈8p</\y p rMkZ"<8q!f4HHIRPXXc*b&)X>""_A+WJ$tttttGA+ Q )Oiewu_ 9xr^_KЏѫX5 c*UHQf%(cL)ЅeR 4:Ȱ0 :]]}]}}}x\zSDܔzY\z`GA pS$D_a1DR =DWWWW@B$GGWWW@ (y#T!D\ąXV/B%OxXCĄpJ*PUCQ!%cEC CP%_ )JPWW_WGGA+J%q%]BhZ3^B$EI#>"TSVV 8miI)s}`Vo6s%G]6rc> U>+|{888DX45( o aWWPPÏQ#BBB!!"!D3| .\90Z5T5 P( ]BWPWQ$Q!h*MykבUFD~oQA?r_ˈcĿ# }-ha`g Q.X_n rY˟>E.dCr˙7/SyrRJ=JQQԅ#GЏ}LjWWWWGPU* :W@(uu ]]d$9lj3 HKEǴ(HI9O&`?DBH }p谄%J  Dfu|x`@HRxUǏDQ#BXBYÉ Eѓl+'ATB"C\Hr9D?痱"::`ĪUb#!G˜o)/RZyLb֑ WPiF1 PPV>t:BCǎqE$Q]Q|F)BGWWW@T( :z!!hHHI_QDPX"֑=Oֶs䱅-oF1Jתc @(ǨBh?'1A)$|'^0~PJoe$\xT"=b5_sP(k{yA)q>i"^G9 a`l@v 9rM[֓{ţ9Tȉ*/B# Jc(q.5X$$$8"#sB=b"WQ+H* \xq D$=\zHY,|^"8Awxċ Jbs|rYıX$X¬jϐz?bBB\7[ȚO&Syr$z!JV!HY[$BA DDxǁ@TJ xsX KID8XBBy˷ qEד֖I5+g.z"#GPEB.B_쳁HbX89 zDQUGY+ D!pGp?DXCˑC )E0ީ1v{0Q!H(FD- SUͷCfO)3 (¦HG9 sPȻZ״Ez-&7 ZPuJȽ?9 s͜"Znr{y"iU$_()RH7g^ bM)9'd(221qVFW!GT+x*{/Ǐ sqCKqX%t: DQ*JC P+_GGXa(0H W""9r%Z)yy7by4DXF~CRP/EQ+J%*ThJ!#ǀD<}">z,,,f7$SLHo.j#ǎq%ESlH,֋%Ol_j.^ cqnK[-CDXVsX#W 4†PZUQ QE!HR1ːrBB"8"*~r9Lj<`>HHO>z]]]|Z$$$,Y#8 Pu%uq9ǎ}ć!!$W_@BB/D$$$* B#ÏWQ+TB98!アVLǓq$ɓ`Sy(ڬPJ 4_acK,PQHql6tixLUY9f"di*C'nV8$l$ٔ2dƾmڪ hH(TĐ$%}q!),hi%'0f g>S`SB.Lig^+4]>\x m}DjR*%4T(**RB.#89#xć$cq~a Q+> acIoo"pHG=B&%J̭U8^-^(xp#xEAr"i.DM"ig2""&KxM'pUXBC𰇫nEPځR#|oCTXXeȈ}_ ~DEZ-Kwb"UljR+!R#Eu!BFPup 1OSG,Ϸ!b\g.\r煅qB!αPP :B03"DDM>Ȉ.]^ Ip"a&DF(?j:]",?\YszRO(֪2}`+2$dSX$9Ԥ>(Q_az-DDaPǀ"$'">x?䳇\r\}rDD{$P(PTP+C8B#DGPQ )nl`91$)PQT*PiN9 y?'RJ33 tun:pdKl H|Īaml[[{/\Y ],>KSQ'FCBơ Fw&L_}v""0pq$"SI9s^)C|0kk 굒}q$XQW]g?slJvS5[˷.]]"<,haQ U*)".b\95iZO)$hII)d"'1JIj􌟨Ȉ*,i=h 3A)T1*I".D\/#ㅃ8#F2.Bdi9j P+5Cj 7&J*b,Pg2`!,- *r~+V^(d"" j9%/9 "NJP1\:F5)SCR0Exy<#J"s>!")fW)fSU&tz$! VsKoy7./\ɢ|yK"˰[ȚMM"ljǔl°8t4C"͝&t6X*qX>gǮBּHe`8t6VgP$TJD'R+UXtucB*4[PQ7 n$2( PPDDD1^9,i0^MjHZ-&y TD\iz"EȿJlauE\G/C} q9˴HHs>DM&sfsct+ET4#]׶qLjUP]B"=D$,i~VUX5ګ ur`qGBX8$(ly'ej~a`!BDyU|h5J׾yI!)J PEub_gQ:@`D神d^({ԤCR*Ճ'd4Z8%BB\{兜I"z""xCskaL}}3͝2gWھc9D$!.kdO/9%%Fb ?Lf 3l )kRmd-x[F$8CLfەmVVp,6e\I˗._"^"%E/ @͌PF7$5D`U}B5]ƨFI A PH :WGG@ J%|BT8"`$>D)-i {DBCDD^#$9˖CìHj:HDG"2.\{XƾKdIjdǴ˼[%`%PՐc)\y+""X$-)$xI)"Mci4cq isWAR1=D$%J um*q]SU* BA PDWQ ԡV(E]B r"9˗&ȈIq^`ǯs3 j"zO-!m1 P#HB]]D=B%5 U (jP*uqCJzB,QdB]jX%O I?דH{^דTz˗h.^v{ɽ&H4IM-'tH(xS)%%rEOz-kS1VnTf/|d\r\o!"Ȍ6_&rɜO""XB"9dEzTHH fHHI\ICcW5B+2}QV~P xהQ]]]B}p""#8pD=]D"z賎q=\x)MPUp BPG!Q_Y#QŢ>hSD/AW࿗.jISHB]Ĕy?&&(UD!.]yIC谋Hr,gGQ)&dfJ[;DS&[SBxIlɓ6e`3>3'I/?=?|%LO)Vm"""ŘC.EDQ8(4e(DE R!!!"PbxT1DQ+EpGU*x#ǨljSDp=,Q s֩"!!f?T*,C0DsQ J ]]}D suuÏ|x\yrCpHHMִ̚,YE[)JSPmTYuُl)LUxŕϩRH $^R~ⵓnWJDϓ&d !&ɥqY&54yr!!J(Y%G><׾*O # z5IM".=J#G `$L1V)1RF`2dcgLn6dF[&y r<=>/pDs`xy {9r"#r5T8 1IE"ttutC?qYqǯHtI\U<8 rh+HZ-i_f3ǢuC 8Ј([xT bGW9qB4h~hkPÇ0SŤjCB@"<8BB(I5*x =nULmWY2Oi4EK^y\,gY8_Qv:|5(Dj"60g,%-'RI{ֶII:\z]]\HDx% B# P~b2~5EHI}O%+ᯍ h(T8c4?)C$|z > a CaaWA}Z P¯z Dhk J~/XVj dh%FiZd}TQɤ|lcVƬ_X Q0aHٍ,*(Th+*=GHx0_GA(ŽQ(D(cE)=cvH2E!qL9d%Og}$ 8R HM'L`en6Vc`Ͱ+222C[jr}`2V|Pmi/$2ZK96%ϟq7_8dC}ע?r/\6hM{cNI);8}wٟV+r)#%S `o}$=|xqijWJ,?% !B$""=]an$4HEfRH'*GhhyIl“Ol{=O'IPÌ(T"BғS`wەl-[j/QQEmn6sL+q-%B%#B$\p-&˗/\Gp9?%9'g?_?8ag˗#.4L̳T\鷃x;/aV`-Eڌ""")9 @n3IDӐH&Y|0a èѣ/G󈈨Q1FbچliP% kPQʏTU^F~b2Q7|#kT2P1!!0걵XuJxÒ֑FZ $)QDc5C ED%˷bqB($(6O{q%+_9F $ oy4scJK$X!*cL+RmLmnxM&{E}%ɤM&Q)1d^xg?qǏ8}p9^??X"_㏮DBѝaxrXJk M|g&ڌűXP1΢QzC8CĄ(::]\Hp Vq><8< xu!pu UH!ƓMyv^dWg~Ϝi)]dѤ*xٍM!$ CP$ICT*@P* nCG\zt +Q(2w Xc Og`OOy1&vE.񒩂5 '{ZiJIos,˗.^?b*@b БdsldN,,$aD1GUXU `?0|(x,ygn|h(1 yIR~˴Z$(/B*"˳h1.\rX$>8!EȰDs""<8%ux>xgx3qdžqJć+Ǐljx3FUԄ(DT#.^qBxˑdky7 D4:FPDG GHz$$WWWWWWQ+!jғ&tQ0^%M DDYLj"o.J#""*!/S$2RIX-&.Y˞(H#Ǘ$Kf˴"˟?e?}qǗ/\/c?%$- l!DJkY F?0Cmd[K_*95䮥FG T"!. zʼP^*G@WA(BBXBx֑ƵD&N+2g#(,*@m{+ 69z4kU^U>rg!r""<,,,,#Ç"PW$$BB\r9zq""#GW=8Ǐ>98_珱8q8xY12D31mk#Fjr2T.YÏWY$2~&z:DQacZ6v}n2DUXQ F DGp) A#' zh D-Egy;sղdE8/9psK8BE$_G8*QUelj:(QT5ax׍@ЪPEED9˷?@__(xM2|ʌ0 5UQCU`x c ::\8l|>zكTQFO(PXJ::)F$67>9s\s}peX^zDxc?pǏ$<p}rDK8s?r pᇍƌLcWR< vi{xD$O=K_"̜-!+ /`Zu`%%TZ*\Ąqër"#ƵwΒjBT ybK sY̚-&mtTESDTߦtɗVwѶ=䋑,/C_圹˟oc|Q8<eqCGpp0}qs".\qz""nJT>6D .ѕ5]MD\[S2q,_ a"4jʉB2cX.õًFJTlCD!É+QbǏcy15EUdl4^6Ox0pDppG7&C(%V4MD93eGGW"J?> }p!K9,/x_ǎWÌ҇Q C,'U" P(u"jdiDFS>Γ`UY܆T(T#1WDM&ZEK b0?>/Q!Fl?*Ub5F|7>RՄ$WWW"$:DWY IIcM~)H4aN9,@TPT#2.DBkdij$=]B|~_c|c/: 70710WWW$8J8ǏYD)X9ϴ$/Htuttu-0zt|HJ1#|ct B9"d-{/6ejۦڪb%C9}_Z$.ٟqL)OeLyhz"񓈆 ׶U 1:::"oh{gB(Ta|(17@Huutuutu:BWW=B=B<}q,JBBh=rarYǏs8~r,'i{$_WGW$=|E]B$< M(%1\Gt>nCPQ_~ aƂJ.i4Io2c1!Ha^x)J!",RBFBM/1 Y^UUJ&a0 점WB!U`z4C~$A]]EL՛#U><0=|  F?KYX>rH| *2+UNT{Db($׶H+?W_2m F0*V|?ȍ** 8a@ˆ00|/GGG7@c :B> OHEH$uO8Jë-SŪjz5D=\x( BDQ &CP&vpƓ-y5k^B"=J@n"?㏾^q:˗<1d_ժҾ>0nx6m ϤdeZ6Pzr\v^.~g/9D_㗾8X~ǏY˗<DD^[oa ?QJǏX ::GCǏ9lj$,_p"#y~r\\00s~rr9r8\DBC8B!%*rĔJ%a_W<:p!\= SDbH%t ac(%HǫP(%!]A)n4pII|ș[ /PDG" +I}%j6Qg.^<>GR%GTZ9D=(jg>쳗#rήK0-kYT12c*Ujխ*jNonxja|/1ac c obA+GGWWWPP"""8#ǎ돡\8q!qxć=\s$$$=]~"ȳg"{0}r9眇.\z9Xr.\r.\r`K_eG/c>.E$%Z$.o1,/\xë+A(J%]B=B"!j ( p CH!hWG͇*.0TeF: 3bcJ%uuu GЫ P!hZ-"{[1VP>Q$- >PU"* 9ǵ#1v%]>돲}ǮcDqڍhaF(uQԤLUY2,8}r\pU*8*X׼pQxdj5kʥE`()DWGGdP171u%QnP@G"8B#LJ9\rǏ8ĕJuu]]]d=]DY˖rȋ ,9r坣>z˗\rȰ}^rCː\\`/\=aH8,ǎ8-E/΄UVj4^0UP(R>^W0oP($ttt 1Oca?(P_HDttt puuqqǏ"#ij,Hт#ˎ4I]E(e t a()B_z@XU*]]DGAW_WWW@Q(B#&l >ᜦ"&qĕǏ}F:ͭ"YX5",4mvUol8!"o/G谈.\rMM'KhHK.|r\Y˗.Y˗".|K>|}r9rȋ.^sYK9r圄r_^``\r?E r˳49Es=B"g]\:eYlj+DT#Ǐ,o$"r[-kKC#ĔJ(/$""8Vp,/e'I[L.L^kl Y9lj{dY9r9rHsr.\rϗ>oogo.]sȽrM""9r"&PW[Dq#XE=ÏWpGĄćD$$>9q\/eO"XXE˗.VcuT(CCYb#GB8Q ryŸ6$,Hkʇr6иU!j :2 `u EPJʰL?7NfVLn'XV_V:kˡU@D?c| DTS"@PH WPUǫGWǏ,"~`03Ԯy2 FHٶIz9ˏ_P8-' FHE_o3qttuz"PRGP!!pH(-$=\x^J(=si(D}!]MBC&.\.oo,/ 9ǖr\g.\`^rX$E˟/C\ȤDD.yIl3> )"xvHa{Yx9 rx=D9vvM'I-aK&RJO3>h*f (yr%9EȽJ ,"& Hxps<}q,,& { z LJ0}qE$nWWPs9XX8""""""#%7&?_?Lcf;C^If61KBW__@H(/GXJCc|:D2DpT""nq"",V(OA Q^$$8$xoWrB_}r D\s"&I{_֑5R:smk,!}!X8Er]^> \zs>,Ľq!#>eHHO.DDDErZ$-IDV7 @x +9 D!%up#UNjE0buk:Z8UZ[ jUDơHEf lC*u Dxq5]]d.^r,"oEE"J8$88-Ȋ^|y?^D$WWP֡P]}]\8]]]]]DPP(q%u=WWWWW$P*Q7*]]D%\DGzG(Ǐ"D    r> 9vHs.ED\g.\]A0sq!,,h7XDD,i Dz"|5.\hcDZ/&r\\#9w圹 zA94 rM8YGz,\}%˗,"EHHHxg4^MQ (`MWWBy!CnP s+ĔLJGG8.*Rp"/MƵM&1VjT/"&&r9SŪ=B(T lj DXQ(TBJ"#Ǐ=BWPHׂ+_WA$SDQ1#CP*tuFp؏8YÏ$"9({Eh^OirDBBBXY˗1BDD\Ds.D\Џ%`g|,\rGg!t7$֓Kt8!p#lj+qǏ,僜9 z,,E\s/9X9\IMQ)\B\Tj0=JĄ*!4.{fFT$⇉(?\DDGЈ`.A臇"9<.\g#!~?9r h2GxxĔJ%M,"ǁ+WWWWWXPJ/BEuzxQ 4IXX>9s"P bMѓ$-b.oh s9"o.DD\9v {ȟ눊B^Ԏ""*88?B^2V{ɤO"pBJ!=d8>}E\ r","h8Z#P p!?B!Dx>qhqD-c;T{K^-v ż/B\!\r~EȋZEJR>aaJ!`|aaadOoox,!h H$_h5襍J?:y2!F 0U1d%ғ-V8DM)s!Cx%K.B]b*,,uuuuBЏC"_",凜G З!E˗/A9ar"Xa pWrCHpyz=\pG,!nID,8坅.h#ĔX$SE yvOާf2IrjHLD$/Q b aA+HF01(>4U?bPB* C$  B#;&l;}b9}[̍X:βVk2Tz\r"".DE$%sW_Wz B>$QuqćV)^\ID$WQQ#DJ$: B!W__=\ \x a8$r,,!JXE=}BWPćBCB_<}?i+Ꜷzg!o!W J/D*!""XEQF%D=d`c됗P>C=kIM DH>DE{ya'O֑v!9\h_-&JKZF")i` c0Ǒaa+J : Dq:t]P_0djTq*%+/!|4}m곍jjL J`B"CHuq>HHK%̉Im'Ï=\Dx 8p!Jqp34r.\ 9˗/9̰.}z?|``!ö4xuc$@x+> DJHBBRF LQ`9XXX%="J,ǏWGQ+<0p\`g"!"h?`T.&..|qEBx#^($fIM&Q0_ɯkɼM_HAC c)}\Z/(Uԅq&+D!nK|4̼S# gbM6J9 y; a⛤LY|%Lky[]sަ"te) + (T#GpDGljGy>3kY6PAdGGWx # !-Ɖ=]D%_ *AF(͆67PХ4$91YU,,"Ƚq Q"o!ha`"#ǀWW#>pć[TCdžv;yv⚩=DM!"]X8B""!!アBJ&{_˴IB$/kE%r 1ED$/0UȦ~>845+4¼_%"78AN#$9Xg;F|$jꆖuIE;3_TQG^Hx9hˏRqxj|p(%08ǫ>#賗!/|İsrȿD9ǖsbCDBYȋ9눗.X^p8x!,CxëQ+s#"=jWab Cps_8C(GQq%q/\} ׉ pBPz>oRJI ~9Iכ^>Dj H).B8-màUlj >`K!<q$"8XCNjXXJHHqEM"$,y.8exDp󀈖4HK 8P!.DEUlȅ th#b0Ff[Ãqנ:94[̷ɓk;Օ' IsZ֭꣡lkC2\Y+7۽nTNEqxА`{/DB<0JuZ$8VAQL{Kz \9s#D"<8"<0pc=r\sCr"" {˟/^{pK8zE}qCD*|ca0#f*gخM~+ŲI3o_b B]z0T*ij_$WWP%돣|J!ǁrExuq(7lj.B'(,"#3,/B$]xu>vE'}ZzJ* ʆQ75+޴FDbPT<|TsD[l.__B6ɯ2gƗl(͝}UdkZ2dcI{c6!+FHMƉB[= r ?p}qჃ,{8^/Gぜ}e}^ EQrit͌GDxCǏ8#8q!bĢRaH)hS5 "4l_*אa7YȽq^x`ɌJB0PPTƽhq싗/\x9G#p}C뗾a/D^`"Ã}r?Kwr?GnakͬDz!ヅx>H}Æ(,=BY+nQ+ I\8qi(T"(01WCh_~(~DQ>zi_F4ƕɂɈhz U!У\FBB\+nPk3}+ G0f4fF io5j:Oj)+;9;WPNDj9; ƍg~T*#k㑈HQ Ds㜹rYa{凅iWƌCU:ܡnzD4HDy8_r8 r圽 /D\>"qErGd3Pڿg콖q/|0q!!!%.X"""BJ%q*B9D \qćD}=ޤ *f0HG8Xx^{|gK×؏DX_q9{Ǐ|sG>$kʯeΝ3xٵ_*yʟƫǎL~Y˗.^.BY˟o/\r"DU(E$tpǨT*$!.H8]B=(c eF*G>߫)HI  F0@k? ^}+j(iK^*2~?U-xu(DDQ̣Jg>r8^sqW"<3W8Y:tTÂE0pUǨ':X5a2PWת Flj-1Ϙ:v?0QLjGTjڕe g6Փ;D4x>URTj4kבK_Pkߐ` 2f~b`UD҃$T"8v ;YH-}do:A% o輔31Xz.N0QJhh_"/\xrB2֋Z>URAJR$lɒޮ(^",˟8|?H0p,<GsX# z8#8BJ=D<8zdD\sWG@|a ($>oG1 ut :8QfWxV3@T׍`ע}?ȹr˗g9rϟ.CIUv(qXBC kƜKUP ^:ÙFieDXX^x"}M`qEKps/x̝`C *R`/-{cqR(ZJjJ`[5 n'US䫫* @_K#2GJLSx'W~(AF}ТJ\I\}H"P ,k;+B*0)B$Fvzq7 ڕT9Y.66e 7`P+%I/.DBCWçX11Y~922+o!o!igoi`SDsrz %g!o!!.\`!!,Жrㇾ>}{xǎqǏ_W$<8?;h6YIͿN XDBCCYXrF0|Œ$p0}EKQp3=E'YԈ?0J!%όUiH|rv˪6IN3LhuR^c)S5j*6[B4CUdX8~ DDgg, E}RVp!,~I@_U"8C!ۅ8CHxR ?DAppsA!,?\ 9z>?.|#Ǐ!Ï GCijxw-jd~4d=y&KNCx._+z:%dk>71 [qy7@/ɪZz;mٌx|p39 Z]w7hn2!caaG_WPa EW.^9g?\qs脳Wc^1A6e&*O9g/J<䙅%MqD>OoBrxlLnm d<G҆&4`"/C94-*4TUCmR^Td܍29=D#""m{j¨*RZɰ"!&%!TCj&3 Jq/QI*چBJثxsxvhzUkol*ώUunz?'UVf [U9|RQ5C1_OҌz86 4ao6ːZD$ƼЯJ͎c1XvS!UPX6iz?0| yz !ÇB3WWWxLJPƍQ\E@MA3!!,-E_QĄgoaaCe `؎SIV*iF*¬,<YNƔ2Z $ 5H5ps}2Ƭ*hDBԤUV 8VrUĤSNm6;zLx4o!_xD;_eԵ7Nݟo_k Ez T72tʩ%uaaאCCȔBǩ ?QD r"6;Pڇe­lچgLΆn\ucicjo9ĕԄ~dv+\"'9\DG`q> q%x!"9ǏG"}qĔΨ"TlIq=M停FG{q+GWQ"T(/.sHT*8uu::WGG@k*zLj""9ǀLjg">CB@P8uG"'aIe 3qʡ"$MhGe8phǏ(DT"F5*ϧkFS K^6-l(UElhrFs[Oڷh0[ކP`Q cl:YUJklmWht&n35]π՚NǣݼYEٯkvgL7mM 2aעJ20I·AͱRJ3c P)D`A@冠 `CJ [Z=+ԡA*jÊ7I PuM@zM 89s僁<}qC <8Ç=D$$8*Wh+Ĺ;n;)*j&ɗ_xn** @(GQ|@ct .>Џ<8q! `('=]BkQCZ%_H"B"icThF yy-C^3R`ْ>h1R?ae<:^o`2%4.E:-*5 :԰u"C'iXiL]})&Ly"L9$y`HPJ= $}}EX/ƌ_'h P׶4mʥ? RiX 汈hYt4c^$HW$y-JGz=:J&6^mkU]LZ*'/h+Ż4Y][٢e-{ꐄ+zgTA֐g8{R}|AFvT"VB(VjH* #l?ho,; ̸="C75 ?(T) R# Yl0=%(Q:>Ay`{ÇĿ/Q"?z\xDEC*Wo,m|VZj?QFH4/Nʼr5 # ^^WO3Wlޡrw{D=WM^ɋ=q'&~QV~g#_c `#H\p3Uǎ{g #Ǐ"E%F*S$?h2ɷ暏䮝VY!Y޼ׯy-Sf߲zWſlieSk(mP1TC53 ,ߴحDWo%(UAA"4l}m"~pX i0QHʉciP-Z-T֡ʵkQ(TQU&+n5rk^6pI՚kBA}yNG&J,˪þӼG5Hרu_L}֕ZM+_}†?6A ත75s/nID1mF C@F2@WQvykIzf[cR)D=*UD3B{= ĬQknx-A0[^mH%pBCr891\psq/\sq9r%˖,/ĄDUԡぃHzs { |ȄsSכ=},Ar"dꭜƟsPFgoDB\|']n`4}N $WWTt<ɗdnakKaΨ횝}Eb8[׌6ZjΣq2*lkgp}b+?H)4k ZԶB5O䁍 ѝfmCucLfskDk5|?63%p!BBA.B<}sBX89Ǐϗ?E\1\}$MofZ~9"J2";V|Mh|_YQ ZeY1#(ڔ2u4v,Tz`DrQOjsl~7a3Z|w3oև^YXmZOj*T ;S ?̙YA+InhD(aIUE{xnݕZ`OThh|EP:uKb]n7u$0n2grU" LSĔJ1(xE-8` Ǐ> 15O~7_/#Ï_PU(tt >bQ+xǏĿ.Ys/c싽W+)Z$r9˷,s3'2ok_J@Q1X4ׇ^mC2쳾62DQ ;JPFQ7@Eȣ^Œ|rdYb/UQjz92faNmle?hwaݕj-'JwN0K.\sEHZ%˗..=^y͟⍏Ě/R}T_cm^<-*p#A5>nھnu"C6 GD,0[T5 } 224:&䲷49U\_ _24Σ3< Lk7:ѵ:{3v/&l2d27=Y?-5LU;Y ,IPƨfQ:dy7Ek2dt+YCtwwݣjӮjMmAF|aRX8 f.\R=iͼtB#b SEՈQFƼf lp)=("ח^~Z:(6 wk%yJuuUhU0f*P+ᵍaQӰad?|b6Y`"()Ba?c|c C>5WPRJ$:+}sϖr!/Cm}ZABr&PYqćpG8.\#ID%Q/it7e]V+ՈPH$Yh#U*_1FFUJh|ߟY#B>ض&4N*dҢשHɒֶ8dfF/ůx7n'\my+;FHE;86UٶJ Z rM}~y$i)Z|i C|[-_bWRЫ/#YΓB>2ި[YaU6:L>mJl//PJP\xuut iAX5JRP̳}Y'gC|d*D99{%ˑ=_}dx|6u(ThՐZr4:ƒ6pse4ͿlkxnL]洢"@Uưk^Xr*(?C17&>b!,|/v%;kxu JCǷooi,ϗ.|˗.\yvvBEı%*Oc_߾ֹ'e*6a(P#Mɕ o*IÂ8XX*sˑ|\ɢe 321 =OҢ_Qo|/F&}yv;DztV׊k j*Vc|A##zVث=sxvrl7 E]ϟooo>c]r_FJm:""},350IJBX0Id/ФF\C N0E'Y(HM{xMՖ̇ 6)n<5P:D13^]jIPJb׼ʚj,+،*V 8P-ɛՆNx6Ƒ c dAoZ"Ɨ!S_4j5E|j+2e,j>9|z+D)l_ڑn-3+2)5$!v Ե*2 fakO' =r6DyT GB4t6HA K2uQP9nKgh"'yN&7rː~gŽ=)#9ϟ>|rϟ>|{yr_YNlj_SF֎4)‡_kQţ*!R}?Q(RBM!)٭NCnj #"gFZj̾J<}YPF$CD"N6l:-ߪ\lUwh`۶^9'a4-SsG*iy7Cgr0ct 8qͅ&2~fX6՘H*5_uQ mPթecմ 6I8*RЁPaƪk>6f)\gmPHB5;E#Nׇpw}^m^FoyZ΍_oFg¾xO;EZM?D+4#T!Bb2fHm}^q%]\z$-""&X7/lZףA}Ut8JUTbB|T"\ƿ$<:n784EiIG Jּ_l7Hml?.U0Am!%`U{;=ǏÍƗ!n*&I΅C3E]A RF2:tV b֦QÙKV}# |d=ssϷ>\9r˷.dC>|˗.\r˗/8Ϟq!C$Y*,ho&!QU2I!V#65Z^5}rV!M"i k?CaVC@6۵b;aYCJʨ:?n`l'WKxoU5~.Qe &^ܾ$DPJPQWX0?W+Nãt|e_R߾l]׾47o)-)!X*gM0^/&M,#4HȞAѫ྿U6>&j[~|S -{Fa}QG8yJ.g5GS aM׼iF+kCe_|ۥZ&vgo$DXBh7/׋R ԥxcݢ 7zЫ>QȳP1l"m^k3Sssxr"n5xD*{ǯOQw&49 v^ G,X12Uk^>)ѭQ ~v-EU'g<3'l'U$B֌r׼kcO#xagn3-/XXDmveVSi_躷on8Z"'8,{6 `-؂Pu4EQ *o&2g e J&&̯05D%o[" +& Ց^HIDQzx>\8ǏKt ^Wd e珵 kZTB/S S9MkFg~Mcl+-ۏZyfac$(n˨(ڵξ`=o5w "bE`l?Tw<=f--,B@M"& dqgPT^'r"WT*T5i(b)BB5of@u'ҍ㝗xwhaɾ5ɤo97ͼ)=C iU* g.\`:ePAE*9^X88X*(/*ɭPJ'#W/mdkԲSsaz"J~2J$^sHKB&Ι+a>%%"?|85'sϙ7LjáXD~n#Og!0ȼfz1;ʏO7\XQDnWig]服|r%o6)\ 0dyP D$2l*7 b+#C$%ˉFmR*S!iNU++cŲdL}7o`emJg"Q*חdӡUn,h~QSzKI .vVgѦlv׏/$Zv[lID򥬰Ikj~jUbJjUufc f5od- &yC2emJ 7j_aPُ"I #R [Gfy|'t>k^_X8%HsT8kI&z)O`_Ga!!h^-""&8aWQ(B* {{DJ B;(t,`12#}$%")ZWe.CUB+~gL1nO{sg.Zjlºٷo-)%w^C}cx6gNP% P1-la2΍| =>)! !*,"#lj>5giLV+I?HUB$%֑ut BO+ *ɤT5(GU#ky>֯Q|:ց^R%N5ۮLagkmGR+cV;DQP_%89AFUGp-&oX* ѦLTs &*%O&EGzx;Z>}gQghL(Bϖpip9ǫ[ /T""%DOam6}9Pb+J7t{fL/I4DD*Њ#]FT-{>_Cs"D\xg.]'fA)Y9`r"&ILJPKЋsrH$4I/DPA˷""l͜aғ[f7FB-JqYo9.\u!Ï=dUTڎV qu[}o.]ҝO_OS˜2{ZRZDʝxo=M~QNzxj40w_^Tk]]\#zkIE舟hߞ5Ϗ V~g~ck ƫYuD԰+lVWk*4 s{NoV{Cd_jQ&VU~ǭ7aTd<|S_ ZVw -'JuβǛk9H|jɈhGݴjnWUR&WUEFk4FLk7!~Z|Y2O6u^nW hs 7r|o彫U!O&Wɜ~X-88"(ń\H*†\vȋ.^"J?i78B%Aa([{y>*{^E\wƒ>^WǗ"AWh[űh=˗<}rpǏ82q]w9;RڛqF6o6e'^=:MƬVZd@troLtd8pJw#;dy7s4m|xz Zy7<ˑgǏP~_(?訔;U:R+-a41 pݵ.i%[d꼭QCw?_皇^͝mIl>T6+rcKʄ4>7LS686w٪&m[ּĩ1Ս# t5M=^t?TWICȟ8!!EǷ~;WWbKvM 8>Kdx̝0_mTa6B#XkCKO_J&.LDQUTP V)kD+{HsI??d.\ryrg/8>i{rlExqTo'^a;sxB9(z_ DQ T"o.\rK".]1F$uuuuuuuu6 U~W綰UU|EJqK9:ϥ+%$PCTekƱn^mxF|4YaJQ^huL%½7Z0A\EDWA(Ç8>g.B\Z\DHHZ!""> <3cw{W׆שDSt9X}(~&7h|sCZ!ʄWyKN7A-[ּIi԰|iX>U"-m̼hK2KU:_uy 7YaWh|ϮynwMyc2QZ9}jP䨱HvDDž6Y^yʚfډ0|[gnnZkG'>ohq"a77&t}kƔƴ\+^(GgGWW#t67cїVLX|P!GBi :FD86͇q']z -{~=˾Y5Һ$IcFѕ[ˣM=ƝxkIZMނhZ/djRW`WQj`UQ2&!z$M#9*J;sq[1Vy=[6̯}.^,˷.<}r3Ie?5xHOR,ڏ.>M 7 ȃaK]Y:v˲̰`A5=yDw{eS{ /|r\-TNE,/K8gQ?)ֳ<?o'÷l< )nW]Do>}`߱'c:{s}V߼ͪeޫ;ef;|׈`VL~3sطUG ˲|ߧyw+xaWͬ2ݑa)OaCJ")ѭ{ d"#_k \}U :!ו_^ٕQ 6וc̨V5Cu xu Dj%v?" WЪ4e $ٯ6Znmfy?]$˕ʟğ"cQ4r IMLӉrt]{!C̚YPl7G;y)a&e9v2+M,kŢ\*`#>oDҍԬ͖n;B*6Xs0l~Pc T(DGDxhx>FkFǴN hhf>?j;j&WfyBUI^5^P#%*PX$z"*c) S^kJp]mI&DqDR>8єy7Z*eGِVi#%n7kc9GǏ(B0X4QX_EӪT*!%ZJmݿ[mJ)°C$XXɗOj)_6Y{"j!5mݫ>>H/6گAG8䍿F(rK;I*QL3 C gF1Yą^cZ"6-se[ѠmU /+IG<->caB6O-B Dr8$M"a"W"PbgkHGD$/ʳE*l +cEXP5D5M" <gF:kƃ0`rSECE%Ve'Xѳ_m[-'Pj+y7_drfa> PCb2* tX:ytnLQa)D,"f70?X4(TaBuDbwLDQf1Jclaݭ|WUmj_%02I1 vUvg¨b 6 [IRU4Piokkax5!Δkrx ?ɳ^ñWV ^>ڵ FNuQ$Hf;G(2j5|xPqXEk6pѦi>-j[va>rQYIG<}y1V^7ot;MD]!WPa˦oMB:w|kgM\kPм>!n-JˎM'? ZREb/4zGJ!yFSHEHy3: mI-(v^ ^Lmm&[kRrMkžJȞDd"22B3!(jEw<?mD jt.~ddg l#pU)YuɤY˷R!תbZq)1I|D9ru|)nvr^_"; BtaTJHӼ[UcqYH+&4R{[_oH"[y-)|)Q a~9CY^Mɢ\kH[ȈMy 7%XlDkꍨsOĕ_hsfi",i|qbޅȍPg ="9 qyɲZWV jDY3>j_@f6dlR8הafgYc ZYȬ߰>[~Y^Yua:ߖG`gj$Y_p05oRInw<#LJ\r/``7,3ci>/[мHHK8g(ȃQѫ^*0aEآkX?0$-08-fqh]\qǎv#3&e"Wh˴K;e3vHT4RtʓSh ~5'l}^DCVh;xZtsקh{UEy[hB$#*R Pk׍zj^1 `C&a'^E &WPPU|b=s9Vԍa2¾O=} @U8꣢0H>_xvviU dTZ1(c|."H?L#Ǐttt 11`EXD2gI*R+ # -uukx5hHHHHZ-LUțe O&Hs5TݬYǨEChּy>Njo BB,-"z:yr'^KDR{ՕEfǨ*᳔E"8AmZ-k-uM_U#UC5Alb"MV4YDO x4& 4 !S눔*+de4*9ԄkCP]QwBU2*;N֑*8u/&536J b?k_ Z ~m>>',Qᜈ$T*Cn:2Y8Y\ӣhgEp1aR Jq5賐0vw-kTP'LɒLTe-ųWmc%UW!T(DJ!'Vjp}L'l`ꯍ^mV6s:J)z.1DGk+կrxrZf /x7|ZV@nڈ_~AR:V*" ìѿ^]\1 I6~2^"+:kxԋP:CBJJ/RdTjljPa yq :] 3EVȞRdl淇@Tz$ILo6-&d[2 so5U_:Qw^+x˛K{o+6 ?*lFۧb+STx&/pk Er",%rۂO!=DSZ-6w̒i]~XDD9crG>(UC$$AF 5t35 [UI(m3&H$}(D_I$ƉX1l4U4QJS-rKlxم$*jTVquu%n4{FmFx >KlJƨN1!vFzާy|gZa[;öCa>gFJ>HKD>;ivʒQTDU_Vm}ZC"Çd\ a  rˉ )Jj_P3W#Z$c";o]^rV>p68;e{H(Sp= 6Yda4Ç*j!֌YLmcƆɜȜQlbkQ D$d޼5R* P(uuu 3*1+vV1^<a[Et̃%TkyIE=HiׅMkZuePՈ.#1""ƨQ4^M/4%̱)rl=E˗X#C臆v`[sIb:|G½?|DTQ΃VCl8894FUAu}$" c^*ɳYf -;0T 6Uv Yp_x0ɘ>aoxwEV* B4=@v?%}#N5*P[nIIx7~ZQboS! hPr cFlp7:\x\)?`'=82ξlb"†^(0!>ÌA a+R^ϜqRjִ+&)-h` W(`DhSNPU}df;WDi-vv3lD$vJL"Zz [^8n^**y| nLlH eRHZ$$P͇ 5DlJ8ZüUl6Y>cKd̷ב+Ϳ+|cUFM$E9%og*z^7_ [UQr˙>ya`_XUI{g>*\߿ I$UkhV}Fq6\}sSCAV a*E2b?@EJƍzUQ`O RDdơQ05T‹,EPʬ-D*nSB#PD;<8I"0H~FuIo/kQpʳЕK0|ϙ:5 U ,:Dj5jMYĔ*R:i-{v ֙7Ȃx$W%~[׌wc~J6V"UXFo"j>D\crLaSGʏ!}[Qhw@|3!ː"p6G,,DF$"41O~v6ceB\9ꛂBiKM|FS$-R$KsRTU|pdT*P_*KjjH1SQP0YH0ECGx ZIJZz-ue*6U ivOi7T4#PDGoYV㛯 ]RwZg}thlHt bQY^31Ou[,uW<ɔ_d45>De6L;,Q)T6aZa}XxxцFף=Q_YjjL׮=,|eb1)*pT*T|i%TWɈ6䜘M6Gs"K/8*,l(*+Q%N IE P<'e7n?uKD6(s4gV>lHь*K 0~aGQ(UbPTM)of$G^ h""i4Ј{Ml'Ǐ"(uu"]]}mT9DS+oך^9|o]il?%NE?|W!\zj;Hp'I!"%>^-#:tʓ$^("8M, 7",qdD/ 9%;c}b!R&WL$SL=/m`d_gTLirJƩH|g 3su0 d(qC^e7ɄZj8W ƅڶ6 IƆv&ګ^jFu&HHq*W٢p[jwCsCl1%kT j&ɰV"GIu]NL)0IY"%˗"""""~u%ɖP̳PvZP^ 1y+4+]5_ƽudy6asXWZ:ek`QVxG90 ]BBgS$'aUmyNj$/!xM"DG>\Io*!""#džr˖lj !i|y;+Uo|is3zKWBP~g{6<{FAZZ!}* (HyIADUBOR_Ճ1$JjT eR#qOS#U!$9FI?alB޿nj#i[t 3Ɗo<-/|e z(w)A!D%FU"P.khڏ77$ĔdDvyާ'Mo/J c(E0ac rJFP]0_ϕIHu>M:91oB˫Yt:uսFtדͳ7m@v&x̔?9 Fo|Lױg|Cy.wwkT:$^ç>sDM&*& mXRFlmZaU8pOo}*:P݇lp ͱ_3:NluΕ;a&)J+c1@E$T/@z_7DxqX^pGr""&U*8\DDG8"8J,Fqj4-Y},0R9k0mG"oR(V >’Fs~ACZ/"zBۧ\amC|;"Q5*֑O)$CAx#G<~[ټqٖDU XU78?L#RZIDכv{4>%ZgtlL}Mif§JaGlQeUydB:#cɵ%r2[Z`}ćM+R$4=ϰIۑg:+\cuRYoyvoxGaAqN԰.8^p K;& <\wxG\Hs^ZڮmݮmGShc eAa{ lݻ\WhSqڴ>)2ZJ0(ּd-RQ;/|[UoshSd|Qa|IoH'zuU*]?v"[[GkIFT=CFCa1;FHCu^rvgY u:^3N |“fV66+i7jD=ɯ*$-~gn J (߭"NX"*.cU VM4CT, oX#;}uuuuuuut|mGA(U[˷ kɤ.BB\XX9>}pxÍk#k/y}DYȽ B(plJa?2^G8,'TbjH$`u|ʇ)B2H_P&aRjԋzEB2!חW\z5RQX#ǍTaas6IzT;ZT" vmU0J cz^m-ѵYIl_8;a]07 լn#Vᣲ1 >/ ꨓcfQo$r>UPk93 B 7EvgkUhY7|s~ g4txvk!^VP%8k#+_N"o.DW_25|qWN~U)JVpnZê0u rrdx(:)^}Cu 1&}6(m3a}e^T9ӫh-DT*RC.x"PUİrKDG=}}s&F̬ݿg~2msj4RR  Fx`i4KY(EU%S8$(%$D/Zj80-Y闈J4~"kɭwΡaUo^zbXh,0u^J۫="44BzlXR{ơǏENxH/Caz@!Ud%^[YöuZ$6~]AUAmFѨX#E9qJ~ >j%[lݶL ')ČRrcg*v 2I$_Ђ!TeFn72IhA43yvjW[ey<q&Mo*]ٓM9yQ95_ _!u_E>IӶ+xYC 'j{FDZO||$u]s|݇כW̅k:rBÙL\2뛝GeT+-j9ȞO&ˏe\x<7; Q9>/xZ"ס"J)5B9[a Ћɕa1Zke7ʯ4C$kp!o`HHZ2FOgA!WPə2:7j`ު4fYg2qYAZ-`ӉGnX"Ǎ!hDW1(DDX%Ȇªw,^[Q^8r88BEWPETҌnQIn'o<}Ƙ4 Ro)j|RJFaJKNiתtˤ !Hwь;yא|!v$ICUhWIgO>)&e}yjFnڼo/6xm|w$jv7[ I?'yhZ?9e֠5\ZR hefMޣhV%d+;Q'lCMY(԰[Rq:մmm[&S7[j`U5Sj|T ,{fխoӶ\6IFl9DV kZR̊48?1QuI׷a\˗2".\%|TnPF5?D2z 'u5JA(EUTbPdHJghB8889Ǭ)+w^ku?Mc- a4DEs\og.|Ŝ&;kCΡtqK֔ouxD0PJU `y+hǠQITWa^5jQ#ɬhr6(kx(Qmmo#W7/lɒ^hU)IU)2pGwz?FC O|㒿aT> yñh#7X#&/jQnt(޵D6qs~Hn|])G;%_ ({ {/B#B"EҪa_QTBBPA~uQ6Id[?LkYΝΎ7!Jo{ddJR+R_Ƿlw -fJ42>U+Mo'/^l<1:b!쭥K]\>B5XC2Jב9ٵ]U֨-9c֪7AE |3'@<-_WTQ΍SD7}:Ld"0춵EUcꪸZZU!1Q{yO5-gCٯ6:I1gɼZӔܨ׭]koC[` T%M^6}lj0 00",Ǐ""<}r&y5QC%7#AB3$PUq% f/\&c)PC^ r<8˴M"6ۭ^J*$[|Uy"\vi.Ys"B n=k'ͫavfjU׫) YI+ڶݳ95q hlH̛WL&-|8gW'+Vđ1xnu,-Ȟ&E;ZcV5PD6|2 I4L¡״^A񕯃mioC'cZbd|s2deU5U^'eWBU}e>6[l*x6SaUTf>Kt'-mE},fפ̣֫kZ֠g"̥(0T0 HH_44CRC8\.\Gxϗ"W("8>0l7icW[YT-A>a!αxBHQbzMK<8}rj 72mצ"M&z"D.y?q ]b" 5vm:o2Fi>[з lɴF&5ŞڋQh>+<:\HO9B"}A)hdŪZ<+ɍH*+T"1!%<DE9r""&""BCˠϘH6C됗>\Z5kh=mé}UCj(!QCR3ދ`WWøO@kPhimHWzgb|oYliֶd0tL/%y 6gD ~潱(G9agn7 DppqDDHZ>}r&[IUڪFl><TWo֧Uy~a$2xP@12qQluF5J!fI]WaԄEo'^Q# |=U0[kF%gLpj$xٞuMZ0H6WЊ6-q77y*޴ʏ8wε0r5~o>tQGj#Po,jCNxu4(rIvHI12vZQ[2_y#\51sJ-F~}_̷ڥTijn5ϝyn;~kCCv+Q{ս/?S:g)7ջljN׭GWktCJ8>Oi4F4h""#\pK$\9 q&DG"&Pkl&ZT<')15%)D+·Dc"Qɘ979IkZ#ǫU8ȋPap,^4%^LG̈bmU`b"!Wps "!\DU.<"8y>BTkIB"YW n&q-yFL6;ǎwZ7e:U~CzG>0,򵾝] Qyˢ f]L4;}U-{W%oV+{;ZeThE Ѷv+;f^_yjPnH$wE>ݻ3>`ׯ9I{e6MS(2Hvu86 仨-fY.&5)kxsWӇ^+3^}A"Y$hӶz4kHA}֫NT{.;*,n 0ƇgGGQ2t8וO5]Q#=ky^+`SF4aGWD^zċB"WGCcC@}piI)$P*"[:h1 Y BMmdaCHZ-ZQAITғADxE쳗2=]\xg"",,<ȪU^>`k `gxT9Nl(@9#qUݖjSğ1ѫel0Ϊee~_Xj( Wzf:fNڑV]Ly-m"&FqL-V,(,xzVz,""#!".,&vEB8"B#giV [Z}p-kcU˾2|ŰD:6vɒV2 ŢxBB<[& huTL.A%65+tluH2Y[̰-a׭c)Qm4cN%&Yg3MC)KiJ* J>a T4A3lf5Ck+#8l ×S  9#0d2U1OJEȋ/̛gC]z\ ZW ^0n4AvNXXLJRtu)80Ço-{E~~զVj~2ڋvq&edўXDֵF 9s!idѩ|h6rPJF~֢΢uUTedx6W_l΢uKld6* y>uZcԅWX5֫gzhF`j3o(z5Vphkۯr& 7,싐DpsRs "GWFo61gR)\TSZ7<V e+-@MGuUa=u0lg}_XR:+ԎU;yLozFJl֪KStChڕ_k_'jfhZ=d?5*0ϰ8]g 8 \p־M* 'B>o.]'T{ˑNȇ0sl6QQ DdF]BD*s B?ac2cF8$%ˊՄCHp*Ml6{FQ>m_:x`-jaa$fʉ*1i5Q!o0AޠU!&I4CTRI /a_k->D%X掠{+̷4F _資WpK?_돠G8kPr&_$눈2y@:z?\ݩwn8ߦܸpUɂD*!!*PD[8z,,(dG&ɓ9"c`r)?P=|zuupijjD=PAPeq4Dz~M{`^|%x W;6Vs.ECH*7x捠m[YX*cW_#L;L%k97tn7}q"+#s[2KjmN}K 8ǎqJ%uuZҒ2H]\Hs+Ng#KVMd672~uqAFIj~Q my1-ue663Nh*5: T:͇z/Z-l=eSFͮxƬ=0JvTj%Yg_kla'Pڳ,]C(5H|UDzSɇ1"(r(+ 4Y3u̳Ta?vm4*\05bnկV KG<z\s!x3IF!la)-T*ǐgXp,':Vl"zTRn$ֿRQj6M%}(^C7!YǏ""9Ï,ɘL;5S/&㣕CzCQdY5e+hTfW&6kJ)2uARY 73$۾rUgR*5ve|81y ^P0F*qjk%C`vs&J 3%;-Γ1WGQxlj T*?qjEar&ȄDD}-upB"ylnƴIgEFg’V$ZXֽWx,ȏyZI|.<ǫ8 auuqǏӦy"y׶txӭjo6s;YH>Y j(d2t,ʧޯ6ƿv/NM.6߹ m?>Zn۩Q~1`3!jԲcj$~둴ѤG]x?a{\DHp/țM{ɿ`2yLQ7adx ΅?=%5$ǭ*[!&~v%DŽ=~/傡񊺊4cVǧA:&InxŻNּ}haZ  0F325RnбQ~gkw̼z}#u}q*M͎eTffC0d̯FD+ 8{B SX=Fu I'hEQ(_LYffUhMڣ^CUa:x֐6Hlu |ӫn2 aVFi`ƪDjP9Ukvy_{W}FbW^ UEZdhԯuj$"zl*^|*/}z 9aksT#V_0U$>7r zXSxل2T)B%@#?Wh`˗"i`p=)SLb.CP-i7? ǡf:Cj 3>vr&r/|r"̚M&diIdBPP1 qÇD%evRG!rr_Ka8Ļʊ:/ s,ڿ7!GOc WI |Mfq?殺mHVvVyqÃ2~O鏪SfX]Y ejBKC_olzʫjw#e+mo-|/)!͇t6 vq˴[%3 Y$gLiPCaY5r("X%È-Fɑ?Ў"T45/FFf]Pw|6PuTjbo (-x3ɻ}F ;?-ls4];7tz"Nʊ5B[,=^Ζc|;=NQoŶZyEkAmu5LjU,LUQ訦avηDdcfIN k 0aٌf>LԳ6<ӄt~I6q?\CYO}uTqnZ[Rme3jf*26gT!Z;4]W̰a" el*FLiVkUkQKƜÜ@(/$HDfDdJ'NaNaiڬ*pɔT8*uEe`EMR(!jUT2$RspE%-DJ8"""B֋CЏ%ZZjo.,O&ZxYJqxV w]5\;c_%*X|ĂPƙ~b*_ #1x;>}]sϗis ^j΃^֬׶ Tɒ_ӿ2D{M'̇荂{$'%CHcއSJ "ђH*Ǐ$P x$jr!zӫ6?FG76_&y *6rGj͏è"%=קxfЍzM/HFjU"eu]2KGF7S-Llg5b,\ެ} }hFGkx&΃_Y:ު hQU5"Kakz*J,V^ǵ_! iڥn{`Ρ(wST]¿}Qk$n;fðõ*ͼpJ^FuU6 +.Qk;ckG2fϪl(cyd'u4wMDnb ɬ;Ĥ& kJ y:OI*0$DV󅪌#M-HKaRf ԩ`XBXR#(Tu% ^Y?THld ۈLaHGrR)H?Ai6c^Z^ qMlvCܿ6śi;kj~㏖9BWP/lk_!+*4/ hNLZajUzM LBֵԚ1.5֧jh&a_FF([yħWuձ̂I uuaIr%q{D:6J'6d9=g8oMmJr&642c2KGLWCQ* ((6]a>Vq1<`/ï}ٷycJ+4=NJ~'txӴ]M ~@KŶ>'Uֱ֕u|WڶŵQ7?ɯݶދP)kW#nӬXxO6T]C(;߹\J|͂M5*S-$I:cX!E8[kofUlz$"v.qAl!U m0[1K:zN|=#' i ]RYd5ISCC-.R=CxŞ{9<}UU+PɾDkk[k9] 2'CR-i ^p΍9*IeIS^(Ø2EHA ơJ/,<@EBSsV5o=UQccf HmmccF';Ю`hb3Q xv?3@_}7{tRyba= GW5դMLd*A66|bAW^FqIl=K9*I}{H/ggT̰W"& S`!\HWBQZ>&dg*St)zx75W ú"Llh[PhpNB\[qo ;ֿYIn䲬n3;ڶ3s4[ѮBT1!_N>Bz3c)Gu1 PK% DdjP ~o:PavCV_^'CǴm_Z,P'6h]SUE>r9(g#uFUHz#Bghv?$tʍ;5Z;_ZU| g|_][j[ηTϦM"2w|YҡJ%6L“ݢa^pAl&md?HԶhY5?^" guoG|a*dOh1R^`qyȷnʬ?10w4X5uTryL(?s61xa~6u)O ZL'?zjUf%#, JhTTmF`sj( s_ w۶ѰORLx!(A4UOϹRT8… TUCjCC&d۪ H? "`FW("dMax澰`|YjU{4Xf:r̙af;0(:Ly`"ުs6d0cNRPi {=VpgTYΘ-u_j,, ׊2$HD1P-WPR?ڪ9RQ2C Yϙe C]~.S'X~0%aw^&|M{[jLxgu<{uj[G2uҍEF:;WzŏCƌ/zDJڅU :Q^m VgQ QUPk5o1C$nIKmzkEkn4-Q9q6:; }UUU*k-yl'oު'aӨ^|y7!xHmN"Peޣ>RɍhgGΘd^Cz1ҨȯBRĞY$Pn HT84zCaT>$C&2QF9ȱ|KNSZJ.ި'*Sc=\龣FD+ Y65eV괳ldJ{U*ʍU;{iU5zdÍ545I" =iPj,+"^/7~DCm %NDiʌQ`;CP^1R&5u*l$ړ|=aUu9J/,_b(E7Avkek3HKCyg| Y]C@%ThYO#i>T𷘕VFX{򦵟 +N-2dne+aL'l:1 ս mZ}RBy>4 CQC*&c^Y}3sd,"hɍ{v!HR-_ݳI:_#]Sv=x /YV=D?=םסxt[ɾY&0A.?-3%F s4wÙa T{AL1*ZiUp?Lbt4#I|[xnh;3C8ik }aSӤI }\#ɩ9uH+{oXAמ(F+ŻEc>쭎)MA!JIYnx6\2 ;ϐ:k^0y7ψ4zv'}W93lgs{zhVo:眧y!&9OyC4uxd6' I7f>Sʈdì<{Q^W-}d >E{U2ݖu[='S[mFdkyuT?"Aa̯~jRӴU?Zu=W\F'o<;Cj_說۔: &WmYWV'L}4EM(Tz',FjSm-󢡢Ilb1ٗ ⓲v+ҵdY7_KWu6».Yo{8;yN߱Pּaq񖫠og]6Y۲Iϡth a +6scvƶ)̙oitgkʨ:Gk'^-lklc!ɝP'AABֳ渫rK)}i5zl;Xӣ3 >U'\Vj"i/o< s5{}kƌpg"IL!UQ9{-l3RګiͩNƌk9"{i. U_A޷h5[J5B=|/5;vw>C:MX"*>u|7_ySlX=~sɄXn 1DM"ɖjTVQC_ّvHG@ϳT7JCQ`-)?IFQYFqF|ɑΒ2cRC(pHqprc7H.$19*,i4^ڪ$B8T/#eE"()lQ3cleZB %V`hڵz2mkfCCUeUjRmcm^7Ш~FWW6]ԩZ;aUK0x-^nuMDS&bVk !Ѣ6_thmQxY5cNEg&5^QﻶJYYmN2b2mUQ#\.0+[ 铨f:uf:aC|Pj5:;2'(|&4=mz smM?B+69*mVa*ŽXڬykx֬(jk}J,)wUeZDrvY>;Fxʽ[~Lm>ugcI_ok?Wjg-ߍ5?Pi%JD2KafVkK64Rs̓2† 1-r½X-nvd ;kMq*şK_$3Zվaޯj9|$w:N%ˣN˷-z9+xfQ_L{1a30Kz+S<ݎK R:i6Q<ㄯQMAǵd(QSІ~!ơ'6I*ri*djkV-QxTi4x%"ckP??&UQxJ RJde_6[_"xZMy!XP6pᡃU_𐈵SkDfI(+H^5]9QN3z4-Z% v“';Fq5:͕}6e*1 -i2*]e|v`MWoZzZm{^*ֶ ]OTRa=YF3\_TZ V>fc8s! שtQ\;h^dT*ƝsVNT Q̬Z"Szb)O%a! R{[%*IPocqB} ||~ Xd 7C3A*T+m*^J/qmUZmhFmx#8f ?gP  DƇ\Z]Q()++QjP6DAP3dckZٲHj{RUxж; CZWUgFaarYa\߱ٔ9*cYSt:>ǨmDSZR ;FrӨI'aP T / xɷL8#%ѿCfP[9[A*>r'NauX#Z-kD^U;:Ⱥ;[ּ5UgiűhYU+'!*}R$PsiMA:j7KUʌ|U|a՗3a^ҙg.jYͻ?^͇w[ZCUUQsFV:֪Vvm|;7mGg_+z֯5Q2HM"QõiU^I'2lmva~Gk3eaauX4f^NaMb(P6l?r4]ƲwoaU9<8ZڡðJm`}cw;Jw kW|JVD2UAϣU6PۭbUZz4KJ^\uXn'\C_6tezo#|e~y'W,GT4RIn5;}n>F-2k5U6Zvȃª|%aVxgӇIoGǚ#>n/6]^m~&MA 75*XI("$|j"&l= M}Pv64EUQkyu9[|kʦ1V~$N|_eT%f3*>FvZoCΩZLmf;Z[ΣQx"jʣuũӬlYZmCNݿ}jdĺaU2-ՅQ xeN{k7mt-֫a;C!E5UVuGlemVpj56oom{#A|1*5dLzֽ _uE#PVHn z5n:k׷^ӫ 4K-k5R#F"/2wںLֶFƶg?e-%@&F4[9>FC::tVTֵVtn[TY-׫ʬn=`Pfx5`~Xmmc_n?1eZ*PmJ_Rc kU%B67SƝ_un=Nf%ʲvKBsaUB aCo̪:ꕵʇGxL,+˭cwu6Y2_yk2Tm6=^Kn;bmbRmC\Uiq 9jAEe,%Ky__Re}Sa[E.L|j$S-GPc"NUU}kાt}^N[m^4Aʝ_c1c"MEdx53 O0EJkG;^ X4֑+Gu}C^-JVYyze j5テCy3)l6tXIfU]Lj)a6l0U:ft5yZem}U,z0Zc8`{} l97S4-{cT!ye}w)U2f2v;|6p|iQFG3݊L--F/ V;ʊ򥯙`Km!{gAF: 61^;އeVo;?џБ/t?eםu뢪k#QZ64 ~PQ&< 6/#c+j dfI-G>ޣPY1B}+̯*-'c)-=kyo""Hh1(fXC_'`dU(iWB1SKJ0N)=&b8,ɭEBQa TJTϰ~gyvuyuu5 ϧ>hİD(,"H(HᅂX*FHD2JOاP= 1A}x!m1_]rkŲIRQ8pPJ~ĉ$& 32#PUTʢ8Q8I|#|Q`46 `>HcTr/ULZvCE2FоK)rEQYJ$Y`䦶d9T (⁙g\RI!ǨEMpJ+aW"P4zTC0|tP~ETlA[ 91Y%StK"!!&`9{yv 08R{JhHK#csc yrq%2{{Iツ]D9cHp9pf3+d\]d#NeCb2Ckml Pb6oTl&IWd(џ&1Q!J th(c v>ޖ5/oܪWXee̒(քlYgS~3=]%#TI| $׍Tșf%3FfCQCP4vCTZ+׿IH;F1)3hm`JHwK_ǚX9'עD/lЃ1'5dɣkzȶl6{ E~%|'/n6J VP!Ukr~+ O2k5dl`ѭh^n{wb\o$NQIjK\m Vck?(a1+hǡ f5꘢'[Q^>dD(cn?faL lfJW?B>-K;OȓІɬ%dq$#.V,#4{ ViPz&+UqΜSd2茮- RDJR)ȈEr&Hz1>n1Pa TIku ѵC_ >i#?sCd'd|E6|!GP 2QC${Llkg וۖƫQmqueC8g lLCQ8B8MRmY)G9vqb4FcD^2AF&l9-{ÙQQz-8)ĤAj}T8?&*kDiF"d:9 5Ha_b?qU=TUUXqאG̤LRUނ`R:v 2S6ti͘O2‡aYy;%}7FQ)Prn[+6VU[vn"Eڟjyeg/8? [}u-jDMR 4I-dɜąɓ8dW%=QJEyZSNgJtTf`) PƳVkB52uQ*Y5EUg,H2TDn)*LAx_|%PJ|ȃdCmzlo8rȰ3.>Li`JJ}(sQ'\T-EGxə&2VCLʃkaFd`̌/Db!)bJ!#on]Ox61() ȟDOSHZB!HPR5 {1Q5OS*d)*v v7cCq"#z7־g}ד.ƍɛů$A!36mFVnݬ63#)/Pר~hֳ-WF됓aƨUOY^ ?μC9Vfl(ԭn-_ ya -l9K&냭?\Uj? `+Z?;nX6dј$?aZ0l$F B32T!0 >d9ʰF|߆!S` ʫK$J2m"} +ʈ%A9&j]"Epk c6Rw@RBNB>1(5 .҇zLirKTi3`P]U(|c ֽ'6Kڨs-a￲fl1h~N[{!{"RӇR-Tt蚫jFڬm\Iԭx4X6r )4a`^6fXP"HZXXnIR9W V;?+T]6VeݎUAUCg S-|n{+ʨi_"l6PRkƨc*/CT%#NneNN7ExFg<#xzգc/sei#/0kDl׾KޔlUW׎1B핗h ""MSE%B W^CdQIUPɈ="b$OFX̍Y3MTPPTcI׫(1U5MBl1TT?'WU|12gOq]k?oů9c iƠ`F|1FEdQ׊hUFyUѫ=euZwg^~@._1(' JTCk9S6\$6IC%mca4Cau 2ϙqFK!ΘVuF"mz2^Ajb#X*wU_|7aP~mqnٻ=Nݣ)nc|͡\c-[q3Qш8REj$IxəTɑRlŸ9m ^‚oD:RlP*2-_668D)F*Ye8$ Njq >gJm"PۨIDbU*j>* vkt ; -h@Wnϫʯ9?|{/FS6wX~+lu :U*mt/IФx׾a (bhCPPJѮiʨ5+ )C*2[_So~yXr6#Ifʘ8lfB?]B2-bФ&h5qs'SFQNZU#I- ^cÃ$:?WCF5e myH%ke^(u5٢ 㒘!B^5ꆬV=J Q4VNzkꟑ1^ˆ"ʱB|($tmR8)sHQPa4Hs_DL|>-iW-ņsru8z\|*f*1F~qeVFj!D膁Fl=yS(AmiQQ&FQNCd(s1^PΪ~6*_U‡ m8-&2#!iF>L?*R6 T*Q~KxήC$_L(IU3  fXXњr-wz)?d N>-:E>&9)Kźo)|L)wFgVwyey#VG|򵇘wվ[ 2 #e!U"Iy6fat=Nťz+`kZ$C_6tכTVxg-w%} 9wVV=6^.,aIEھHGg*Y26saַfXYbyWڶOJəG4WU^>G㽎ayPב0Ђ"Y!]Qx(y4QkK2ST0 6/@""SU-V+q/O!΢"\\xE% FZ gW7&ovVDQ"M1С4*^Ujj+UEY&3Kq ҆S|W))# LhDaz)mYԺeFc OMj̪t:RCG+ƉN@!dXw6J ð}UR[WF&zDo-;6*l(mz&~auf°SȆPKWJ+YGW?QwcyR+?9#37$Xo~Ro*<>uγr-`"]l%vr=Cy<9_b:(I Z!#Q,z$.[ 1LT2o+#T~gC UP?Z^GQ +h5Tda~O8'om7=Ws'Ctk>Dy6zfvSlv6lwԤB$UPOfso$+Z/!΂`gCP%HP~aSI8C2IAC%i #UQ[x cW[<'ʚO`yVaoXw{5|GWPɼDƖ'h;{XPmڋhUlDN{MUzVF~V>d"n)^S!̌>i3$!b%mz122v|= a 2G0HHIRapd[5D˜ )HM&Mz OA]Fnt Mβ0dElGh?CZ]3>bB8@ځj Y XU>9xJSbkMy3JԴ6: !%ˏdxTN oG<2H^p[8PBxȬ(.\CIK""/^(G.R^9×9nZrE$T|'mv6Tz(<`ZA2s41F-QQY_J0W_"Ar,)?jtB1*_DDנA|o'ov83u'h)Z?~^Wٕҷ07趂#ow$ڛk =k`0awE]M@Fy I\U$UGWPV4mҴrHT#Td-ƊMɍST$<|NW-2 c!{JaEX* aowkѠΆ/m֫I&bl$7;0Nj:L,l~([&혩(B*2F|W% !d"CK_E6B gq9PPDH[${ C!%zhd6dn)"0HDْh>"-%4S!dƩUHڇN֯hDHfJmy}3%5 `ʆ|riJ4;VWQ^X̆V?9~IeHS{c "ُdW1M},k`ccTJV-DCj2#X5*FA|E;;P2FK%:aJlԅXM)*-㝼^M,#be^%^8֒ +>x_A$rh=&PJ!6`5O흂mh>Ό,k0*S3c$GLݿ_kag:t0𞉂"׈ # ^ҡ?Lh͌ aBj!e0Woa;oCvnŰ3?!*+-}(S;M*vE%LKuİZ(x Oo,,k$d.]$"E=BHlg"HfIP1qyUuISVuI =]o(qɖ0hjrB9y*׵TmVX1E:ƽd>RFh;AD19ijX$DcC]%+Wm甡"ܞ%'e(kL$]-hoD "hlD͖T5Ki0Edju eI8עL ;TI%lYCc4[MkrHu,<Z(*kIM"X41C*0ART8O)A8ɯSHml y/oiÍJvY.(I;(x̜ia9/(G<%z{H $;1PjR`Gm gv4 "Gf/2TAL#A2Rd `lkvr&AA*g{$l jY DPUֈBIʱP^*B "TƷ+9>q *J3FFC2JՈ!Cy: `#Wh$dr@eQkEl i$ޡHoXpqHB0S2%+UWתڢhTFb](EHsDOk&ܧAo1ɇk (,jQ".־Jّ"zCM=IRMT<}Cn6 _,%"j Q^148̷<>?ԾO*/oz*3>9A  \\xzdgKx}k&IRwTbrYL*r'~LR;ڍ1?aђRhyh',a+_ƇE<ΗהDGA"[= 씈x21 &GC9J|K^$DBCfW* kG ߘsCDI&S+W!jS9}gHdjzWc/nïIY^UJx7綨a&÷-TD"L2Fƾ_--ڡ1ATe4kZ֎<^D:[:#!MSnC=F9%Q *)%_Is-`6dUEVƃ1C(#06V?ϒB C}ΰdCࡪUP#UĄqQCKkMvWCr go{T"U(k߱*mJ5Pvr_yM^H_#o44 _7}HGsVG#ȏ_KGk>D:ƌ1ݢ6r-jœC˟1B88J"hZ84 M\Wɍ1՝%jP|wYm_r׏Xb 4j^Ca[m!E&AKTi(yqMz'?juVιcHBُF Q[L"/a!\^PՈA4n*65RP8ڇr#vnR+DkLCc"@z5PHR4}{ŵ(2G-Jsj&>r2JhÇT$N4E]Ĕ!:e}#B5t) UIePQ2XP6 B$-ѓYU8LI@ЊXJT͖F[1RdE`LK'jX~9PJu{d~A(hHh!D95T=M>J0^9F , LFФ u1DV6 21vAlGҩ^$QJz21I:s]RB%ȅHSĉ񐇷3j!ך,1Ĕ_FB.EH)f.-ɜ1uEf-fآanͻ<]ƒD$aI+6;;0l&[øxfgy}JL"܍䫷^HUеoT*4RJ{XJE-*6*I50Ĺ4kձΥUFDƉUXLܬ&J01&Kere.qxØ?܍(׽S6ISĻ[3"d$_1ZyХxMCJI / M)JRHyL$WU{#aLj3F^m2%IR'F&eeƄEWm`% mC· APpu 2JftXAXԵD`TٓDHDd7uS2dWPd@u3VXF+g ʰc^y 5XD/Q` 1?VPʒ6NJJE`$Ej)&D=rZ2Zш~>vԻvL:48$uPܶt2I ^KSH߱Ou%{2[&նua&16 $jTX45^-W ^)̆cf#(A hpoFچ}tHRI\YϞ &Ndy24΢UŮ_њak^0(dFoMR0qjICQűTCօ4T.1S!7cQF%kCI߾"&\{<"Sv yX#+|; 0da?T[0T6V-6FpHPڇάVF+HE` R`'!v23RacgF`c 3dx=: o|9j'Ymǐ1IUщ)UP#XA(k T%$ʬ!Dη1εoiC1OJ}i;ӑF։7;/F&4ަ Va(D̓N#T}:ʪirDV)Er(GFתֱhڭFQXZv_AZTEaTU R89G4"72Cj,TmOiR⦾qpDO:2^*ʨSpk$o[ Y89*tloV_% )YY&r,$:0m-*fdSᨦ0u*EBYZU^wvcQgfC1$}Q?*-kĪb44IQFKG_-_Ƕ 418_^QxnIžVzR*r&>R`f̭m_Qx9+$̆y)%?5O2{y5.-"%I=pRZ?Y nD\IM:jJ 5Jn ~“XѣkOy?M,iz&OxFQA' ^BU7|-|ꭳ`UC:ɶΥnCDGzD ?xζ2ZugQY/l*Fx_Ǩ=ĄCqmk\֋cEZW,2,;gƝJHF$9ˈFp }7ZsgG˱=A2I] BVb2l ZmEeEYX&45A%KucCjaF$Bį'βMmbѠZ 0 ނY1]A9MɕC'f~{c aޱ"F%LE-.7TcWTs1t}S!э b1󱳆M|ԶPF<,rnS#ɘq c6rU^0^S Cma^MSJ1I&*%d4N|qUCa+l2&C,$QC1Z4WSSd3* Ii>)J"ia!,V[:引AUνSGlU,8v=Jţ}2_4^O8ĕ+96}Ph,Ii}/QWڇJ?򊏡V 6$b&s^0-ђM]T5/hfC &=;bDbGSEFI)DS_ZD3# c~S$,!T?~a=sW&Hq΢z$hd:Ǝ ul:Cׅ|=֮elhPIn8j0ID%BD]E}M_jl ;Is+"ƕ4[ (0_jv(ݼi:\ b$c+9; Jg_u? >Ĺ~94Ǣ$Ŝ4Q{ap!DYGK2trUY&a ,YH(j 4oJ$6XX]LA*b f2s0ENTjGc# wj۪Uu y AdCi/VC.Psc9'0f>bHݭU:XkQ%[8I (D_()o9虊ƪYRbIPމ,GTʈՏi6s"qJcɪSJ[d$>`,a8ERj#6b䁆HyyY`-4{p֫j&;Fm[9LI!)3a75D*rkZ/ F(-A" gPqRx+f3&>6I-k!$c+bEK<_ve0dfD1IDhWWRnW  DhiI!%4L?eTm$S#"di215\TzBH#hyafZ~Y2Cys"!.yHH ts˓֣j3 <;U^$C_SL!Ѫ4햅JQ *J l~-]QHM_omeo yKZ|kRke}- uFw+8u8VuC gFAT]FUU-|*ZJ$r 8~w:ǘ/\8p,j;Fh "d *@%(P$Cɍѵ*76M̍2cCAI3 T*S!T( 8‰0V Dh# j]UnzwjTR2qC2b2JՍӓQFmR+ٍ=F!R4+R[dC|>B={=UDt#k"2d1ʃ*2PS8҂:̢ V1coƇa&T-k̡)8/e(U),[⚡}|!%Wb!#qlڡcTQ nI|b9pf;[(ā)Fz&5OA ʛTix\MPz *|[gWƵzJۗ*j*4oDScTACT̃ UHܰ^2 ?6v/+uޫo6٫] m'>abN) 0ToY z1҆C0G]،j8׿%<__T:k8DY^B6bPKUd7B# GT賯$"eQ+ưZB8Q(Ii "ߐ1 BT|NEBQ[&Xʓ:ΆJCߤ|27U*6䪨6mpF"ׯaq^+Q8S,'WcE+Tkhdj6hXJ>tamFruj]CZ0b$UeU}S2t닩 }|o:aUKJ \<*dчsEMGaѽUXCCPS|j^XU4Q!)`%_:O7Oz5hq*0Z0pJnS1 })YɌM|/$$?U{䍬T5"&`FWXUpDi1R^ZQ֫+{^_2V $K(0х `ʰC24[ xa9OnR%FS/DDJCt y-QGFDR1 !*)[$4Үa=Q?LAo>(sQ# #;5I+L|Ģ2fWɥjG98CԬ:&s8!Ҙ{zmQFj:!"rh&RZ+تcmA)Jj苔̬yXD\ IB񘡂IƋꞮQFCCʢKa D!PT:wt/pj>uSu5 jD|DPI'.BP.o>d\I"hbdoh[H[0|*"8Y2|&JZDBPSٌI/*vw`pɺMֹ^X)JT 1۰_`}50_Ve:d͙)M(Aq˗jz7leBD “:t3#eeUgg:>784dje3(dIkZX֚5YJӕ_WӼs>-X322 UR*OB ^TFןKoJ͖eeke- YLTa6Pмs։M*(eD5D5 >4;XȪl 4RG;a *)U WD2ƪ + e;N~ok%Oi(%R~SKJBS$)6 &ZNXvD8ӟ}Ӥ+dQN(Z"0gFZ2u}cmÂ(iW&7#)! RkT: Q1P4lJlb~oT65D3u8j_${y Cxpe_8Bd9]x<[ъ{8sQl+$[1Hz*֖RY Q:T8-FXX#Yt3Edk*$oUvM*+<#fp^/Zez0U5mևsnC\`ٖr&L$I$UB=B< R_X$B M.!m;nqcHc!Xp`")\ HӛUTaszE*`f'y TU׶aQX/&3quj{.WՕI|E[VQE{.ʩhxG=B8B{/C$%l~0ka+ali3^U<^6z(K#y,S p{9JifU }<=Bt⾰+93]V_WkA.;VxQT-Ey*2`Ɯ2¥IEyT%&.TLڑY{ 9"m  u;dэzjq6mp 1XLCO},8 HU`ÙgQTCڨbkϨZ Qc4]Μ}`XUUF}yR :kS(_$_*&FJy6 i"P"Z,=j5CEM9k& db,*>iZAD<TFliavCB1G(b6p#kռTh[xȯQ(*,Qq,M&5JbF*5\]VZKPgUGڦr"1֢ E)D"H{Y(Lla&Ê>Y(zu|4eҡ+ T)*{n>$>z$kڌyw3@U-XyfL,hj|(PD8JF൯%T]D$1h&}~;FTxXXMCsJrǒq)Hi"_ PUQ5)=W}NysH)%Œ# ŶS1%ޡg)3fU}kUk36tYa6.kUbclw͓>3wi'潮jT$z+ԩ H%WD0ફ.bQ c6j"ŰBqAVLYp5-Ɲm%ư}Ẽ: nMm+_gytU"hIX!JԶE[ Ҭ>MER[BE/tvv01U0T̳|Bʽ,I+0VT;WkjүE5Y>j]i7E'u=cjv$*䖾4!Z0gvɒ#I, 脹v'v1 JPLzM!BKB6ΔXVZS+M{Ț#< VդTb]YDF b Efa}/ PY,HB*m(TgoB֣X1Qc"46BnrJP75EgoYu1fMF~aCLULE tH{./5ON6IDʊX8C5UWIzз )CYW8a;EөhWVg QEmHܳ^(2PZ.^SP9 VuTi QTٝUrqlbd(pJd7KOӚv doj ^5 !C:̦׶dkV?3o;\UMh+* %-CTFԞ%%)Ϸk*miIo{ !ugc=XUz15e;%$3+䜆sZ a14E\Wj@?ƘXO|.%!kq$NSĬ.I 7MECb"PH(()M>X}-COP I|>E*23c) ˆuI09O…IZvY!Y-g}cЁ%qz2KKU-ꡡеVl6 1xѵX4rFYL\Ӻ־=JSԅ-|Z;edYTulZT-0sl{ Y̵x%Ţ$BӚPaÌ.4G__.dEDJ 2sg7**'+1y*.6pNjDD.3!"YjֵS ΆjɅ0Z=3gDgmrfڊVy65Mj*rH6'}RILɜٟ6*.3ΥV45ѐB,}Wɗ2dbkP3$ɖu{a',,KGA .Ζ4J,%6TX}Yk ,F=ujDBhl%N$WQZ:,YQ?͢m0U("WC U!j5+ZƵ+-eVz s"E˲IrA+tn: ,Rf}#zvTYV~HZ }7^F$%dۍ0ѩzJBHbBҘ5XF-Wo)/E0^MRB lTCD¢oz1RCHI\P8MjC!Hgkʌ3>"sƃq/!(o4iluT*ָl:wUYWUa6J+< Ri on7B=cy,n\N: DPj>kQ }ulp|Tk5_IU_^ESGf^ HZ%Oo}Q"˰{fQ_QY_%Ro-`پek _ "7!͗WƋ}ڠKac5>;N&VѶ)I[a$0{TuhJ2Ƣe{d`CUHFx=BCqk\}xG 3q~'Iu=_O.QާB8$d@hR FUl5iFYao .D? xpJKyk|6I9ʙŰ!0֓[S(oAζ aS%6VCaFgW5zhPM818ȳUk2NG%f[콵: RldC^ܔ Wn *k ^R :G*!{ꛪvR&(F6~y!RfV5-hfU=Cچf:}c`BWTra(G%5JGv=Pʾ• V}Wj 겾L>ו{EUC;c$VUIFFz Xځ"bgXXCfAk`YʌjXE}efI2"$>0T5 2"1d f㑂ٴ[oPH"|m-~.V{*f [1 hUfQuoVjnqK9M{(ˍ$H/ޯ>hrTǽB<ʌ#۫=pJ/2# KZ*[ OU_dL͟Ô>)וW .U[,h+cFK3b)E5:-pqjyᩨPxkDx|kf> ,l{zzI,F)/  V*vۭ"Vu[ F/yGgjT1 xv9Sz;QΤ<̺!C'9 >V[/R^O-5:Hḋ⺭E[f ^"+%5- diIm5v~>o6Ak( qPMVF!/|l3IV24k_ft҇8Kov;[d^Z˖s']EEV$qU cl+-މM+T+, 2k 4xHTk1XB9g_yV)c)bY6Փ$وk&}:^U[85S(fWFRU2vעt95u9.ѦbD!\U2Y_x!!jϨpD/ab/c%;‚׾KG`ťeSYÓ*:6 pfZUZBi<{Ig Z]lc:Lb&4Ul:$BJ$ AB"x9z65ʈ:[gn~}E#-=ZZӵc6di 6^}̍o(^R[vuMSvVnvyI{*f2_Ug Zٶb1O)VۭN65V7myCnTJ+xo#1}c*7 L/U4*% Dcf $ :4ffj܆OyZwo"{ۏ(j $ь}9/"u5CSpU ơDMRː<"'gJjMF cGUB,V]P\#F&jĢy53*QCPʆJ d5XSưd:ǼAU f4hnY.]f’-{ZeȆ*V+8qVumE DYUl+ֶ鳧Q̌yL9EDWG1ed:Q0ĶV*+ 6q,n+ T-"!8g7,xz; .$-`8֩Gfug DCcI#׾LPε6g IYar`STJ\ŭ)^*ji #xCug^A[NET֎/EtQU>o3JN^ZtȝP3>UhCVJq>5A)UZoEfs״r`VXAzj!+ys(^=l< ~ߴ[ʒc[ ]sh,jk8o>t++8LxOa8oNfLYguT2lіmG@*(ʌ(B( EQ:J)iWR&gW^3'16?%qh\EL8h+QQ׮& 5:L6Rl5ψc&Ny/\GIœ dQz9=zz2K7ZZ ^*oyISIO.D* me+zYMխ> թDX%WB*L;=rbEgMDCjDJ.򬒥 934Si-cV 6A*=(%fY(`ݵD=qcrVC,C-rPכ_:58ZTUVm̈́mk (x7,{Hly>WB*MD멄& Tl NG((aM+{; cFkRcI[k% ZMEP];x j`ɝݭv?*_l6$(vlYFuH^,"Qq⋨L~-ÌfЈӣ .loqV GC{DQm*@Ƴk)Jgj;I"䩟 ˣzD&aGdtɕz44J92m(jWMd3g>NXEMFkɦP& Z0ĉk4LPa~5J,ÓiBWױI}*_J2h[Nl7E־)5 l1^:Lm#fvE}4Ln "]OjU&JĐ٨UKJ5i)]NdA Pm{qU`CÍͪ`סH3)q~A%- ; c7|d׵TZɒQmWu_oȇUC~4DTMSQIAFE 1 Q%B$#SZ$V *ɗCX*Y&R{TiuuasƓaYI`ڢ#L_c;J>Xڽy`UDL9ᶄY&LHH&YeOA'U{%Hn00r¨˯5~M&&[ =s3^TgI 诵Fhs'PPcF"G6ڸƑ A)HI=^Q׶d̽-NtkqÇQN퇗RUWQg?Wjȉ!i Ӑj5Mbm=g-yI!KkakXv=zJz$ƙdћ H!ȲtfRpESU%$oxQXQ^kj!pKz,,TZQX_N U ~* !j"!(/QIØ/y4ZPo>BOVU&RΥ*'V|?WV#_8mUuHڶ=aK)H*3٪a*rL{M"ld|;2=OWT3 1_"L!1cJHFdJB/k<: [PvVCX6FL~I4[{fULlj + ~bA ռxb,ռIJToB!7DDQCh4ٿ:'Pڇu6:v0|:Wa"~luזC<[ug<)(ƔKo&q0!uaa Z,}3D"A,!WX>qP#6 ",Y?U7E'T5=gAl5يֺ*y7kCGgj>|$KNlXp`"P0^>PZ+0Aȱ z61 9H@ï; W"tj~hceZPJOIE$T"i`"P6ť4G+;mj J% ?5]31 "ٌ6u}2ǩK4WȾz2)dK[g_"#d!B נ4nxuo_h6yXE8e.fY"Lg%Z)|kb6pfRP(6x43L6K (Vgn/TZlD$"HHٿ^R[N^D䆒F}cJ4D6J4H[ɾ44o%%Z"&LvQ' D8%Ĕ8$jaJkZ4SPhYt[DO7ו?EkW0*%c}% *5 D2f*whc"\#"֯z:ZQ8$INoUgqHף!B>Fڼ}b6rmqxv Xv9L_C{pHpl"**B$fb!4"D :RЏdb*; N2n3ަqj:a!IlU| հW'I| `لB$4d)D)"1`_mj2TPc+ZWL7XEoYk!yk+ڪ }zg%5Z8<{{{g2bFkPOk2cپa%6WFicǡQ7*o+d@i&xHY9]}61V]PP$+5zsʕG%T"8BJ(Di!GPpdHFEɪEcb_ 9-I E1 ""hredl:33! 4JDMֵ  rai:54Z\FּUU"4lu4a8ɇu T[(W[PcQPŇ}uyaSCoQu:Spr6+9 #|ɿڞQ ‡%>0i>WVet; Iy=豬vX Ee( hjPX>dɞAV]A Zo"SD=rV+!Ý3kMZet¢ooJ֖UhZ0U97MˢSq)mBTjx^OEk?0 D}" JUʳu}4cEu P~9_QGqѮ.ti$?cH^0jVy#WХ)g<$vSj|u0I]5ʩg+R gj"5rF`DJM-S)H_']u)hFcn~9X89Lja {%HxI*sa{VCUa?lO'ES%DlV]FÝY3V:=1Q?#LT$·aXEJU`1Fz,%q|gì/Ug ӵBסMWl˨{ &4ISWPhb_-}{ڽ-~YF/*QמIL{@AQP(U|8ӕ;$1 ST\qB*'jeA,+)F,ƒQ ΆezWbQN[*/ wp{.̭); [kEgf4l(cFi(ªT6鄅("3EDDܘ$J$!oq.c S ˴[$JkTJ3©SoAPBcakUQZ%ެ@FPIJ*0!Tf̳o"j>:ֵ}rcUmJ1?&6u~^VL*QJSP&C]kE3& ޟ1^!H"(ϧ*rVtFU{`֬3+׌<(ϝ~Ssɭ-FKj7߹-gTZ!,FePabe>G{gmSٶnam`3Orדl (m6]] _0y>TMdb SZC$ZJtriY {[1Hy5>8-&T9kOnUIDQlvw[Ƶ0Jպf$#T|-h2k%?!Fvwk !\d*&IZ/)aQ3ck,%A|8mSFL.M}g3N1V Oܩ8f jc %3c|dk IZ!׮ccZV.6N/":`Ij baz~([xuP֋EhzJ3x'=v9;Ӑ-)9`Rl-mkJ2FiL' wPz#_:2,8(oTx)VN{w 5|=Z'Jt9ܬv2>^vQ`s~>,*aהbTpdƊv6RPX44T!(ӋV5YHoBNǪygG9׼;ԾEd4Xb2ZcT{Z]A>ã|1R0UdaF!REX [D-a-)/&c#Ivl153 ]M:$56X6b"(&ęcX}:M6HWp ܶtTN8Cl9:ƫMUxmVm$[y`~:d[TLČG5{uw)yvvK;\ IXA}NTRZ64D4Zϱ$%Xd9њj3'yi6ۮo6tile9dQjάt&}O}'kQij[l\d6 ~Fc>NTjBeg@_g'1)O'A!uo(;+NkUjRi [לC^CPBYkefƧ%Ld)%]TCB 6 5f-: h3܇٭}&lvb*Z;_蓯o}1U6k<q& U"PpGP78q*Jy7cL*VUN.:]Fl<׫leSD'ltXC2yx&FLb,P8&5*h"-"lQa*3K8lQGE=O  5jEoUh"*TbA!Cv"CWD:a`afJrFEmwݣq32O81AEy"SqCL{ʿ2`d/Y'"|4:MmgU6ުʖᄀP*z F(PJ)Wʷ 0F/HN;UסCx+p[g(؆vqdQrnY26 EGƳ|w/DnQ0E.ѿ `Ʒkaډџ^ݚ[vFme׊m m鍙eje { nj}- d9I!SmV{hk_LtϓLSҜOj皡 -WP6e|ocq)%mH>(C%M,xRZFD55YPDID-Xv nXJ D¼`VjZ0ZZ܇ 6oQl=i@%ucW6 LR;G8 )&c" h*"Ѱ -NDBڧż`y"3@GHDZ2^v*kU&HHd%gӜ0H#Q3aam0ɭ"-&dr+|f7 !%67PYgv˄5x>کjAR#og{2g NuHTh[f29jQFPqJ&g~oBM"Erb:9=Hjy?Xdk]NTQ̨hIl=[=`bVN&[Sij]x[ k"B-hZHXCywQ0:SڋXֵ."<_Y3W}+Y;ͅ RIUyψ2(0vAU"L_C37a/eF^jvLˬck)|hvC!MEJѬl=0^EzX$P*I>^E&4]C~?&7Ӧ$a(̆Y%EQUNQi)25ՅUnLU D$6^My1 .l KX־xOZDQy+ŭ4WY|0ǣ_~\yU|Žb"!VMQ cLfjrHZ(r&SoJ3s^88D!(@̒I ZI !z7Q$M憵|EH8~aS !p6>M-f[WIFdr5yّtD5H̪ˡ*kmxё亦z&FUT6;֖ aSUN֧4"SPBWc68ê3_2l&嘿(nCF16:DYSm׫Fޢ01M 6u3VW}n,IkZ",ZTNgh-""!04mnLf #aqۈfn$4y\"thʵG'!ǯVd(-R)*$>5e}Egax-ho\94>llګ8akHag"\ B8BJɾ"aq,QR-{S+*  q''ooxĹ CkC}IĢSTB׶IABXDXoPC})q㰒wD'7pUDBYC,!' eX*"BْE혦t>LJTL, !S`Ɍيd6=Bկ}J1Zf鏒OW-4̜S& G(]R0y:Wό$kp#n;7Y!}|Ó8|!JCٗɣ B7/kHϙN|Q<^&[V&Ɠ1)-SՕ")eEMjOhT5`%h_A(@5Whа*n[Z-!iQC_^(+1#ʵ)4v 9yj<>0[XV-` gmlgVg_yraT˜*Ɉ0Y3̙s< ̬֛GR KBiK-N0Oxa-zsame;&>0WUOcŻfaa_1Wl#+oUG-OYFjU2g/!$fIF^Baffц68oT8EɥFS)C+ń9*8nVQkPmKw㯷@RO)-RT>f2U6†egh2q j(16"1XEf*<{%!~൹K2"mNA%P^W'Lwk رU5T!QCRaЋ)U5B2_TZTG #˻aT%R_➬݊cd/STX`#%YUS`5~TkkK};7$,c|yyTє{Yf^U_ U3ʲ͍Sf<[*jg̘X*1lkl(/ڍ["_T6y?oJjC"6:WSdt)ꓢ#%,x94^3Ce"BrXC(LKzQ^QL;*4k>FmçX7GAXC:Z3v"e~5pPŒaKG>KTB|Wʪב͗olJ[d2/L, DqJ+zaTpu6+6UE>7ס" &G/)nj-O^B c5&"WRJdo52k CA-q~֊2U2ϵ+ JT7̬-1dҖqC$JY DA#ZԢJ% 2ah%ǣ2t Aҡn3\Ԣɒj 1"XD_ʰR 27%7Yy`#XEl듵~~:uJy" kCD[\B֫a+`BF^7$4 X"̊^*X41"yyvQcq v#LSE(iF !QD$D$DBVhz_.4IJE91 m=B5e[YK[D_%Hҽ10((n6:+ys-mT)oVmX3Z:ռ7P|[|m^d⧒΃U8BJ&Y%6= v3ԡG/@*,$K.\z>d[]RVVݬMns0 3lDX-""$߹:}y5{4zIQ)4y^_̡JdQҖ:|=B&Y'#Lk_o TDDMĔJ/aezQ/p0.%Yr,!,,#+ZX޵]͎UЕ ohmGU}ѬֵihV1PhsUoOߝ8\s?^‹ PTu%%M^Xn.l+4*Wa9 0o^"QDa;xD;~Qƾ]fRLi[JSXڡ :|Caf윦چbE79APM~yPlSRc6UW#ka=g ?258mmz""tD#Z] ed6 [ hsO595PHj>Dת(† Ri=lzej/;Bb-r`dj4d* q߆6_~rS^EMD5B$ l-cr ƞ t)$-?aN5Yɛ6uu彆I>Kd W`"ST5OSUU|\(v]3io5픚%lyF,xVt{k5SZkTM&J76 -I; ~Q}ՒpqRKz[Q1FQfȸ$"bHlfMh3Q(ǂ^%l-EaTWWÝ1xv'^ԬV5^7VV`VQ3 3v2Uo)}Fnax*al:`l1B*C?zI C}IEmaɪ~mګ?urLpy+8E)F  .~)$&*td1i(n!E$[f=M͌+^6CI*bp~ԗpU!1.m-uFW/M!'>x 6|{aċ2/1?|B-,!1oD4LF\ſd_2{E[L>/5ia0gPtY:(kZoBƙXݨv]bQ'SA5r6K,Lɘ TOD؏3,hr'L}ئƕ"!g7ƌ7[,i# <-jUR~}Uf %yczQ3L6 %*2BX-A 䎢lZ",Q,rJ# 0Zb#>4V |F![LCmz}6&WꉲgdSqDzYB=up$NBY+RZ*NjP+,Dm4;xgrJD*,Q3acF[ȣ`IS E l!Zҵ'UU6d yaU :6t1=Ka_%9VG;h-t9xD& s̩%a$B$ɒɝA^X(l+w}|:e<[P7$rE:M{v6DO$4q; r jΌ,j""z5IX8"0<9r!/yUd;$dy(ZҌ*,rxUwU> x듫291?)*)׮ţ;N2 ]^ډak;s|ѓ%(Ҕ̯7#LLJk2bo%wTrP&÷G MS˽DC;^SG4tebD(%a{ i+%PJ;&LƉ"Z*2{'ڱUa+1$J8-""$$-&$Q/ƛ $-[=,8ѩJ3YeWlPM/:+cEr(jj޼(46jB'_Iu:Ⱥ/U0pG8MIlTAC`>K0G?QH(֟TQ QPH&EF>dȑ$!g)0Z-i)2KHqxB1X> ϱSE1 +*9Wa ‚ֶLׯ*Fjtm3PCDYy3z~Yx(zu=:q]4mUvo?;ji4p+Jm|Yư8{eUI}-}Q:J&"M T~qQvrBD1J/BH`Ok_qB%ph8(aQt6C(dJR$ڪ5ITXCY$_˟Q(3aZ5DP[j]ptEPP+6ڨp y6&FFv$o3moY䲍I:'e)c gWq6C"B3/iK.xJT2;-dо3I(ɓJZ( ӊ$F}.Ola֨kVQ#Jш!'EQ7-( =WR1+g5r%!'Ңgω9t4 g¢S,൱ w2ay!pTCȳ0}Q yN' \Uօ&U H+Kz>PšeT""/\X>Bl׼k>֊sI&+WêF"W̹$B3OQkV Y&M ]jw\3q&=4uX#g1SPNUUV)FcP8%^)⢜1WѼprkՃha1iom[ʏȐ_fWc@{-g14OnxPmJnCGy_1iR Lkɼ T%Llq9r#>3෪3j6RHd6ŵ B5S,xQ<"-Ag!y[75Ό"RF(Ǔ˃9B%q%u61(^4Zp~ ¬A!CpYΝ9$0pJ1|\pHb,, a(xj Tf=cW4b1|Νo=@̓XRҢ3sJ)qOޭMjQlaZ-՘Y_`;;0ѶȄG87W\(GR-C߷QX>yl& hȰo8-!W>75Ԓ~ hhQU﯍T9JH{e8 4onX[{:飍Ƶ<۵JưcUQQoL7Q"W}K_hЪ <Z%C/TMCG<ɬ%FkGJZ(&L}cs6FEQoKn3Ў;r0c [A91JCXQ+ڷbv9IV/BؼT׶z]gxb$]c(dt*ƣ$ra1Cז4K3樈e!א2qh֬gzN|)UC8¾†3G6rw{GzTr~4TATmD+_o?@tVB$ƣ*O\Fg/?O9}9EF$WY&Vެ%rh!zgĸBCUP b#* c ~?St9o5"x6CwkZ+X 7V{P#c0X,"E}ՙZS|:Z&g}9rUp2_'|>W2f(D=JMQFV/: ?鳓f9C$gg/LfJC`qe2`$|0D[XCoiWy5 1 hZgsq4d1xlhb}-u%* |[hm?^{E(ma7y~luMM&IAqW6Ey+BwUPĬ5GȚMD:*tkZ+ŷF_Gjun6YZD;վ]ӟY h}ooi7kg~ZC&-N]E`1UyFF"? 2g6` S>{^OlL۾q6T["DX"B#"Q5\d[ɭTuDOd5UU?M6T5VI"WB(k#4EDx3 5U)~*SED az$HRHSm 6;Yut:+~[V^Ip~Oa+~eSVT1c|dG26N EQ9oƔV6pmƯ7|4 Cӕ0ѹC/ڬ|;Gi}pd^X)hIz6S IUORY#U*|%1 b%&%I(wڍ'W ʝYg:L/X{T=Ϊܚ89'zOXM& %QZi=GBLxBDBXDh4Φ "mS[O"}'"olB"# ֛UEDP% Ty P=& g(jlx,Kl[VVJ>LC>h~Nס׽3^Oeg>88%?>7}.yEU)"B?.9˨W[>:jV|:_IXgo98#:5d$ EMh`Hy6K2uzR%mqyxcLu5iQUAA(|HU(HQ%8DQIðiXfiDMR"pWڋd`otvU0%u%EFF 's+3QAYQ/) ]eSU ZzUUH"D1~W$;[ d&7&v^LkyKN5}k\Y%ΚUW{Z9rE¦r#JjƕA׶q̥kV6K-c%K=]\zK MDrcC_rsy? JU蒢!U|7}D(vw-6ZO`^/\67IWQ5B$eX=`sM*g`IP`ΙgQk[XL=Ǘ7C&u1FHc`;u]쭓TݱG:6l-vkZ#uQa^n |7 4dV,&,M(TI]H!Yk_t; (d6UOB%rW̍ժBB 9vV_(D ӭj%mz;RH P;_P 0%uzxMMP4h?̍TDɌȍ/j3$kɳ9jȔ?l(^IkY BWX<$FMV6ξ4DS$ɃUYηCwaZ1"Fk3l޶VΧAj3vɳEf>vfz‰[{פÌ1E+#CQg tq5ћW\&diaۮWTJ%Sn*ƆPgהY1`xd,s~9Jnd\ljnqT6zC_⛎Ey'3B$^2Uc#\aTU ,4Z)u6M<:iNW,8rE-RIfN%>y(.7H:3U:cg g+雍/PF)js1,yw6+1|=fUC_0×P?3Pʺ5=RHשX#-`}('Kk,^ 5>4Ӥ˩;ghj 8v%VihwVxOF&-hw={c"kRP-*QeֹuP!x_eL"䧈B0r6uS$5mhT6b86%U& ྎpD0Kf-!!坬db,Lg {\5rPSWf$2{IlbP|lFz:խ殈"Ғ֗Nh^>(f"4YQH%Za?+YUf2aI1-}k TuZZDp7Z ,CVKf5$YsM<'(VBDCI]] EGᶆu`ƃ Cls1!!Mn;=(,@s;Y5ed|SmVҥxC`5y`*w`j!@rN aGoKK`A=2ޫUTNjm6U3W6|r>>R#O`$mQIư FU=oI-BivasF.%̓81O,"1ǵB#gn!CPڋ?Z4UĈHч艢BђDDj '"%eK DDۂC C,-G%Y* b!ATd(}pn=4zBS$(SOU&UUGmk)J&0c*yCh\&X_AzV{ExdiWNPrK K/9 ~Y̪!߿e|oxZ5eϳWmcF.ѩUx׼GzaG}NPJ)"\;:V =EB # l!2ǨIn1RmW:dͿeUxl#*-!fW/[|d͂r`1W#2H(zKʢ\ҖQC0|3fa3^0gj`Rc5d!{>O0IXV63cJKXC $D $̥D{TPPQvxQeF7õfu%Q$p(ˎ#EUz(lGTeVe`DACvU'D$"D-zdɍ}ajhmU 3i}&ŽHW=Vq :􁥍LGO3k|ɥxb`VOGMM,-EYkL"S,IdKm%>my]X gL$LK`|o:+_Qt{ͪ$L9#$gC%,+/$ŝTPQNd&ɕ ֵa}$V#$^ZM g. *T_VEWNy=-j_jH@ 9 !S{y d 꽦 df~Y`)#a*B%lUl߰6V9a6ƏfQ "I NKV ,gSF|MQvE^HhDdO'e V^X(jPXA X̍ft9l!d+$_g_^3,OIj%`0cNUX)WWR_lŶj:Ngn-!h9rJhW%OٷQi}}-FY!S=s%YG9`"%ڢ0G8ȓTC&N^X^L)e%ш=O1֓zgA`,SFs O)*o]{UTl41+89_F7R]hl$(9{~0[I`{ʲ[9^~xI^߂DZ*l#ԩ= }~*PR `H D\tx61+^?N kyult;ZǠCΈ&h[t6y.'^O+huԕI 2kβjƓmv|itWk+?cʽ59}Y&̓QqR*R`1_D rHВ ;RVl5>7Iǽ:5 C-"9SEDҕC51/~ܝ26aɘDVK!/m!yg1kDb$D0VZ¹B#܂$xM5eڍ-t4E%?ED8oi_@|/"qZ%#ibBx^AmlUT^5e9cmg9ϓf7JN fjMl8ڿ=NUk{m.ǪNW_ Vea;jnxpḳ I:5*kelf?S^x49GyJMk~4ܦ]h8H %SE'1 k/le^.spkWU%)\HŢX=]]Vs*f)I.s[k:M]$ ,ʙ:OQg DZ$udfÓ !(2d(ɍ BTD_={ kcL3y[dS [dOG Eꘂ࿒&w*s7xMƷDq:Lo+cvuREK^^I3cv?"FZޯ㎣R_a0gIøn--j0_6*<*S|}Ujo- pG HcK,3%cVhUQ eEdpd9a PEcͿqdQꤔi[}ZMHXݪ/5X6նd@PJLbd5jIkX^UV~=ڣ~xou.%!M_Iw-{^D/idh׃ZEC=ga0S%17Lj"_Sb$ DQ%g(DpeH\^޲4M.\h`ɥ(#IS$vt2"˙7 ЉDhG]-ym/>묊:D݆saB){PГ̵ZZ/?N:fkσU> , f'h4gM UX|7%<[3v[ʨEus#i>md8jhVǰ'{(M$#,S^ba+ɶv[3@exn%B2KPBJ!q?beBQk|aQʤv@j/Go&,}|ꮬCLi0ڄ2ajFJFڶ_3Yʣ*"@[3y4 &QÒRV"*ة4oKjقBBXDDBY"4n2_7W5̪WeDXڪlj;ig*SG8I(Q"Z:Z^'Zm^ C!UO/ozG%,{95D嶿ϒf-:f*fAuLi]Z=0B*R*ZZw:n]+-P-q4ICUa:c[ڌ(-1 3ېmJHUxSPU ^J!./+3"kg"ohBٹۼ2Wʯ;׶_ڴcT! "fK3ȉs+8਑,,h**NJ{q $f3'a`!QmU} XYˑ5%ucɸJ¾p-D]dM&NE|ū y={Tm>TQ%CG(ƨD `̒H*-l|}lv8v[2B=k&iŶkŪd3v:fBe5wʯECM̙2cTUfWUU*ҶU^kCXI++C\sf=$ƙ=C1*=s\㇃i<Hx|!zE0'g_EETRzT4x)V5ƵC2 {)HDlgcl!S׉ Pam?T'D0:sQ V5q@Q |{cv&!jz0 oS&C((ʇđ -fj; }}&\Jvs-ިuj-5moD<}d}VcAt(j'bɂJ[2ocq,iKYY"!*H־ `>&rK)U,hs ƍ &* / 5]kM{wUa5#NDD{c_ȤUjb_ 5 t4KVMCIU̺a_:4-.ғ5+R+a^s$iƘ*lkfIcU$I5y'-^"YDT*.C=]CT9 8h.rg:eB i1KQEg (ECX> Wm0;:`γN~ 1*Z')k ))󄚊^)׸U%U'v)٩:I0:MAUT\:$kS (zN iBO#&d7STY$l)ojWU*&ej&3TbMbd,tm&6TbSЇ-)%2aT%!iNU96 3kH %gU_ӕG5&gkuVWэEEEⅦ2Bt-ΆBљ}2fye`VALPNv? 76%ȳg`3%aa` J`NT*Mt%L!`WÝIuz y7ȱK%?H/Z]]Ī"=XBdlj(KWVA&<-,24!JS0r!ՒU%!/kaΆ)WP>+)wrQͳ(nP5C$j&ev=t2mml M85uegm xnן~* ̶;6hQr+R/iXzw_#N>rǯ7̺̇QY_pZ#%M'"™:ͱ)Y͢΢GaEy>M\M b>Xx̆ lb*E [͕"`ZSZM*z2v(]xoVkd_"J$#`]"ZBF3f2Le|!n 7g UgNT4A(ȓ$Bܥ6 X(Ey`E]'gFު[7k^Av“_ 0GHYgF9_y5 f dש<5o.S qkQa`!ma=2J:W-_FA|,[DY9l"+ 'FajFWљUZcKdUB +#",UAmׇv2|; :k[>i55<+:X6r_`Kx.>HڶLɏ"n_DukO(Ej%DK8"%,ǰqXIgJQPX%Wj99M%E_7q+^OE-`kDf+Jh/']X~eD %8Kآfut b""QCoٻZ׋k c*1)[+PB"qWTh7G^MߩmmdɅՄ;:5JMKBj_Hdɛ }ee eZA5U׶"UkծA}_fፗNq%SkQ쯓Ψj/!$4g{K_rR޳S(gaU>(UaM\Qas4f"O{nr"ЁotPIӪs' &I6=l\\X"jRgQb&~՝(aF%_& Q.MDTE$&VA("<i:6ב$jg&מ9A=T >;ny'5^aZj#lʧ@ 9:uTBC{Ȑ|-Y)[.'X*UkU,8Œ\h=^wmSVÔStkA D֑*WFNMO1#J AlEƴud#5VgW(5QkDF"B@ b~snrᜱb"n0dưW U We]ba6t2EK9x|/*zc"(B&hrrĜRO?Vy vr""QqR_Z*xhQFgJk6)s tnf6;Ww?x]Ǔsu ~_3o?@ a+̣UZ 2nat8hNo=gY̒3*3QeySޕ} Xv|=ll|v|:;;DZ-V6GeVA˭ȫu FTǏR0ABppYi{ȭ[!}BaS2֒sPpQɆ(kaɇO5XʇQ&4(y>ƺtmqʰ!ҪS2NªGKcCͪ\;Z֠΃ TnVբd[X4;VEJj#)h&.h,S_Y:toJ P/lfǴ$|ÌB5]HSD3eT $6/$ڢM~gþFͤy\IM7jvz2'MƐ#-ñoit5\C[e:G"j!%tYC!8(]ZɵӮ0eCލZ_SE cu{t5ot;Qoo&/}DxB9B.B FˡP$1s+6Wa E%2dy(<1_Qr,5?*sx#TITIt"\*la~U~Qa[˨3# A u|}k|1yhEzaYaoV5H$v[F$-yL+{93ډgo~:Q',kQ*(zE=EP:7GV ?J/=Q[E.av/,Z*TdxZ1Y&0ęTPk$ٓ^B0F=&ZE1] cA |n9&`*EWr M}é+X[FQwFP{Mli?qFcFO|7^Fx$[C!O:85\8"]_3 WXEk[cE"j&7*_:ɐ)ѻI׫ čGUeZuÃv;TTpJ!J++5JӥDM.%WPP82`cg(ANhg.KUJ'X,AC+fMgg!i!΢A͹ V۔h֠Nh"`TsB׶:+IS(haj-Lkn3dICsUWRp[Yk"; WFcabQI4yYZT;9|P%5X "Tt caazX,,DCvjXJǏz۽_zl;:]UldILGui^…)kET:hK^?k:NNWп^ݾa%kaCUk Ed}"c)BOA+^*2e[r~+lk\DʊGSDR~kpdJ$XCgjxxm EِȚXYj{ZB$ !Qf A2K Ƙ*$&sl1_& Vޕm0Ư5U)HUSK0ѱ|YYWՕ >?U cXF1P XIA)BРìכL׵4X5XJ'Inů*TUq3vQ?BկmG__WǕrXx(CS=J"r+1$> v{f!j*갪>rl{{pVuQU9^"-ǍIQ΋ȵSQWuYC0FQwQU{Eb*C{l V;њƍQEzM&^hU~knQ9vVD5 8:?5 ̵}EG#aa4 Qa3oBX88`q/\+GCkDpǨGP)7}cuKl:d!,^¢Ile/V(_hʰSq9ZX3ZBC#DžTɰE@:t}BfUZ<άދ+$Ggx1Ұ3sk}oݕ ^(fND +(b-bQ}'U7Og|e'"(}&MUPQ1SƇٗ_2[_2e'"O*;{WcS!l8[ͤ2{Z=dHODhxs4+ǢN:bJٟrTU,:vJsSN^1,=yQ Jњ"򙛚pVCKD=ڧ_*)y4^(_.ކƵrnJM!Q& FƷBeX*jQ+mFY-*YQfkסY\V/^KBޤ GXZC*S!ɍWcED3 :{uY;\,,,,"@3LA[|З/B)BQ,_cG'*3C%"yQ"H$*h>4C;Wo([Pޫ5Nky'52Wo.exƜJQ57o ռL ?ܻ~GoÂOU. T3+CBHJV4ֶ3V3_viHXIhFv2|Vɓ^d"iU;$ Kv׆4<$5qizB}E^|bBU&6Lft-fyqּ}MB4s6;]h%9"U4zW!;2’F򵾽.S5 MC4WJrܭ&ܧ}?+Ժ5Lm¥Tz-A9SEȰ[%(/"myXA"LjǾb+&rY)uovT+3#F~FETjӲ {F DH(6ze^?^u"jVUZuv:-f3/`$YjnʯΡƒ %[`h-_f[ XPFl[w㝡S&)I}U,*7hf ;۪ucl,?^K17鳼3ohk=HDj d Y3SzsİD*aR:H̪B$rc4D>!yQ̭`#P ЋJL?" x6tz2ǿ[ߍ%ˏ\gQ)B~Jkel>X-}dTBŵB%UR: ;q̯ߴ˪zkbB!ARX#CȲbZ{-FHczV"!i47B$Dhď)#5_jwa8spsoנD#lo׋)H>ͺu,C%*DeFGr/l2u+I ƢdFu ` (FLפØ; ^ǙߣVZഈqEPޠ9RQB|>TrrL(7pT.[=]pm*pc5-2. yI᳻Ruc(ca  I3Y]TUaecI57tkZo*ʨ/ymju $~.=d]4fTX!̨}%kYbBY:sU{Fuy"hڴ-WݶP֋\UX Ta64s&a7a7M`T+"TF6CI)3TTJo(dOn=PVd7\ƿIœ%)S8R`%  ^qU,G)gf1pɯE~ ZE622#U.*L4s+[VˆQplK&L5I+Y̒[Ѭ&huK<\HDɜ>[Q"%(TBiYDF%2L[򞦄7"/5 "Ig=SިrIM̺CH$rՈƋ^MCTܘ"1Q4BiJ(Wv.D};eLi`k!jvXaag-z/*꒦,h!QR{SUkVknZ!B5[m "YqHFJU,$^-BE@[{eڀ GNƗƣKE]Vs?nw>0 B0rN$nƪXvsZVkFmUW*9:+aFo^\Ed׫+꩑ą_#$fJd;.QCQ쵏(ˬzFD83<[m^pA*Vt;>"1~b6;n"iQghRWưC,"NقQd%l!oRP|Ff26k<:ǠP~hrV"ohNu5t[,5PUX6nj@xJled!Vu G'Vouڵ~ 9Uys^_X6UkU'ڍk\UUSjd;y3Y#2dtmP;,2)F1gP[4 FN?`f6HePg~߯VVm^R*'Thͨeh""RaeT?R%O'ֶڌI4wھYj "g'ES6EX}7W 2ՕT6,og|LxvЪ4U8~I].Q1ON^ު;yrZn KX|%mlkg1ոzq{ |WJ<O;sD.$ kQqjBH%IJSᾆŽNy/SC`C~Cm Uuȇ,#DnLLU!h4}7eCŊeL?v tGK*D]S#?^ڠQ2 1D-TUVyF#aY^PI֔12KQ0_"u;V?&M Yg+21*FarTo ,!З娖WU^rPfyKZ:5##L%ZSH Q+J$l9FJ/)*gN_l0u rɹE\ Mi<~U$,@R,CNFdc=ʅIтmDR=qbv oK+* ywEo[ ʆ-a O3SƽZykמb{f^XY%+$fZR?l*M}Tt͆sn63IiKٯ"܆VPjZr]Χz mj"qTɊAV_6Ia+^GP6cCTb(ڥ!aG!6`ujMU(Jjskv$$$2BJU;m#DBrαj!Qqz5ɏQS Km;k(d<"nyOm6,*+J!&_/̳$$9o6;=jk2NLFfpFDG ggSED*o'\e aDfjv|Ad+˘v)X9HsEJEiPd5'A2kDy+(ƆWC [X9&7Q*X3ijqY"<C' j|gUgCX5 XX/T5=¾6ɼҔS;MWΣڬ1{E%srV4٫D͢uUH&ջT_ZҢMfT%0g 6KcݺڌknƼW18HDCxCl {v8x?tb6:Po!BQiw|g((4~$Oƈ4(}fV"kS>ԡ>h׭{ 3c5 ʩCoG0KXC}fY8qE$X$u aG9Z|uTLh(mhl? _+1%X"bԺ~- ~Ӎ:Ly^Dt>Vk_&wo*]6%/fUj Zy,j?0uc4FSjYu=8uЊ¡H'vmFeNa[7/-Q+\2Q82[%Tlbe~no\Y&cTXj~FG,2IQ^jgVt ;Z-CrVNW78;YV&bFݶjs*5fT:|kQk2Πa*qc5 TL ɝD͆HVΫRdqxP1HTޅ+pA`$d*Cf!rU`*ƫg"ͥFLCjGV.b cPy`9zhY%mkhE9Ԥ!J`|792}vLVDm)iIVgIIg*Jk_^U2OQyLvNy&t|sYM|#f6oիDrzDl: EeU~P!F+~:ֿȚChf*S6GTtX"6&AWS# VUMj1IU:*74Xl%UuEV6 W߷T!!,rӬ  1(ϓ'YG} Ѫ5Ho5]6]sBdCc UU}[j3##NB=D=2URS`Tkk!R"5$h#:!%j!IYȐP_Wp G̘3b:ʧ8$JPP*4^)UzF ֊e|"j5HJk5b SCFU sp޹Ƣuh'+(ߙj}fgOzcUj%J. ?mD}Ecʽ+5xvzZZ]Z$Y~dW/jbhxU՜ojEFAf6!nqӉ  (QwQ QJCmScV,yfݯ_f<1XJ]E}6%2 %1BHhCʂ $ȳDb lꮐ<|}2c*Y)|57vՔ!g@iӛ6IG16hJ{Z-T7Wɜhj;[ u Cj-=Vu"ZڤevIE[8ppEM6EțȰD/C'h N\lphX"]fOh?l;F^|I63CVQ9䲬"gem{ꎫh'̯QkEkY3?B47j\i*r3 ,T֍Re.*XOZ/pEo[:rqP(ey?L!nuK1sȞ-"j%4P#f4O&yL& ]KH6X*J*D*n7:NF&ZUZ<&fʥ C[$Fv2-8c) C@| uE^N*$Fb1="l <:TLg$QX}K'UY25BhH^یo}DF6 Њ-TeqmEumPV ̥?/BIVD7坘[!y7PM!loI5+mL'JT׬J~XDxy0 :‚Ϫխ ^_V*eUEf¦ƜOAzS'N}ey o/>A^R캝kPǕ7ʬ[_cLv!gRѽ}JaYtŢ׾e[+UVW⚌UըXRE"|$a)q6LJEj6mQNU:6SʢQg)udɄni3U6T*צr#.?LӲAxas_KfV7P̜OƓu- p%IkL6VdZ͵wU=yW[PD*CC|5M24cx熤!Q#'F8Ed#`AcDXf qD DHdNXPJuFkYǮA|$B3=2ϫf 9aFməf@zOT,CX5͖/E(3I,QEa4fV9 ZW MaDl)X?]DdI7UɃm:UdRGU2͸BX~]F˒$:TAB8-3_ae}{*J2!C8TCXTzX:1 Pq RB/6%U5{QSFKk-ф"AC(Ĥd'm|SUOTZ0ˬxEȅU2d0&^R=rNl;TWkK!xM_9荓-QTbXC鍺!iICQ&\SDVz+ub|>TDeL~ QΣc?6>ڴZ?=R7(Ū{,'I$e564Iڽ+,$b$Jtk"| E?ʊ]fCKkNo.Tz6C^ّ9\2` ̬8; aeM8Fmì֬vהdӵ ִvKΪ2Ԟد({ƾ׵6}S8vTއ┦$(*\2pBo!$A1mA"3*-|hVV~Wڠ-yO,ѿ4 4e)$*$yINjrtƫvVE40L^"- X,듍V j '('Plh35WiM\i3( EH}}tKUo1X$mD-ViȊlnL)Œr%& prcmBג'xZsOH5쇻h`ɍ FZ򂲽SFYƪFHת ˫Y'hM}2Ԧcs:d$oCg:faFVm~TX*+ 5dk ^Bdh6~=$ldCM:kWZAU9R k늍67HVN1DYnEpr,۾VZqH/m[6T6oD$.cIdi3frIɊFV$j6EdlƠT*44J L#QɆ!jH>I `I9 R=l=_(0D &u C`t>2։NfÓ^bg$Eit jWV-Q`gVL& PXJQ)[.g zR/!zV eAʈ*2ưoU:ej$HIGv`D^qLyOjYg3ayc^2_qhDQ^BK1OS3R|C{0[&6)E0[ az3飾:-Vpb"eerJ'C4@蚩MEjV]kWUF1NBMȄhV( Xs8@O9-mPFiE!Qo]d2xd6EEeL]UڵjkxU2KDsvzZ!j,0V ?!W,,M*P"i !c%Ѷl=U^xsk <8f dlRT"10HR$eZ@]WUQRK_fT 4Eԡ5.<[ f4(B+_5O&TVTDW‰R!kIk j谇8 *|׿w^_Yj.M2k X,' ?w|)$ԼL3tߵY:hr) ATX"")CB}dd?6y>PZٶa꽽0a{6ECZтɕi"MdrY2CMS_d|gnR`ܒ+!qj&ka:vdٍbQuNUWJZˁ@ѳ\xv83vCf~(# QQayIC05E H5O^+Ojm`ΥcWsc6Ӭ, it͂t8© Uy6쨰S+j)ĉ2L b>Z,`a fWWe {u` #I+Z"$b_1UFQOJQYfE&D>nWlȠ\S-VǯluUS%6[IntV5E'-F`u ]CH'ıY8ydv;5A)f?oڣDB]q!A5tq՜^\-&Γ`Ѭhet˭C>amUjJ;.]TV%0ՐKY ƪcPQ Ɣӟ`b-5ed1΋:1xSiIұ+4J΢U|]TBli-LTPUk9Rk6WͶZXB^N+;:T1CZݭj$ҷL*y>5Gb4qay 5PшoWf`)UgJ3pŭ1H`@z Mr'l{.ٟ}uY v sfL/%%FC1V W׾> l 3 h"b7M Q<"VXǠ 9a_2Z֫l1ܪjƩ&hIjΫM)*j8&* b9B- E ET¬f caMXFF!٫FIx$021Fɓ9Ak`6"rG-[|c23NXd-& 6O5x1'-QJs_2$5Q8^D!OU:eB$, ڤrG|Ó9d6KT&k_w̰U Ⴛު%(P1$׉VClj5*hZVD!PS`ccjb4K,eCQxT]QV%x*o :ľCgClbj 6PSUb T܍8_MmFqTM P(uZu&ZƝuuayakVwT͗@F)gLjRɌEJ6F#'ZAo{$M%Lm] 1{HaC/D8ѫb%eɤ3q PEyWC\0XQr!#+[1TjuN,T-5T[q'\ oUWHכXrTax+X1Q9kͣUFQX#PALjJQUIBr]*܆ξdʉ*2:;Ns]lq+|Q$*%JJ WC-Z!֯ J*kMJ dQ"r!׵Oh r-(sgF( d-%c*ilI=W#Ul;K.SF6MB%Jc%:/n?r0u7 NcKb3 aC!+g-jfvIDNnL~}N+@Ɍ1&- 5f!˷r&cִV~l mk+6{4 m(s*+.P^%qF|lFA2^T-i}U<ĈduT!GƁ:6Vpll+%dRs8NƋ e*kaH,Y0Z$V=+; "#*ptxQmVws%fyQkZ  jkYoQadF ",zJ nj7+|&NΈXj$Fk{isoB8pH}2WJrg [d=%71PJGTF+ֹI͌l3Wg_g5|ʤtṚRx{5TTi i``K,*ТE!W9j 7jX%5BDZ>5b?uu_J·xY 8E`ϓC5rQQ_U}_wm:mz Tk ̆jJ1zV=5h!$FE41eEc` SpR{PHE&2ߐ$D;TfAŕ{j$5[*Ner) Pڂܑ ?8nW#L}|(3g*vBn 9ut|ƓYjurl)y"IKu[]VRŰ~I1[-iB,,!>42#Xd,PoEHp_*kTY3cc~_W:wa`NWP"uټ+.ٍ.c׵::vD1[OTzqn"Ilv34rICP hl;H`DykBZJ"&db"S_.\&#EJP0ƒVajʩX[CD>A5BZZ[KϞYӾwث͖dZ&JqVmOL0dl*zHQNBELҙ}%~ 3fFD֯%e{DIOD3+-h!j/֬C){F3yP^ޅ`|i1c6Uf3$LkoYsQnVÇ ^8U *SYY׼Eg"MIjVZIܚOI?>2iI$"(%QC$Y_),z CB"Y$B>Tt+[%k9]I(_9Z;jP%ה/)5Wi7F1FUj?4$5N&ա-6>TA(:R|g 1(9g*M6g`اƙ`[%sqQ4ZWCG%DUCWU][4fA(5yNi pS_v2셺k3 `ƌѝlwaLP፮(K2S E#8s̬1N般agL(<L&HSgEB%- 4y2bxZ՘qVME~qBF̺)A}$0+f-(85E`j#JA$(%BՒP%_2g |fVjuTȕf%ȯ{1%㜛!&$l,!Dla)kD + B @lk5WV#Vѩ 86J"[ [$̬BP3n#5-~ԍrMc7FJLSG;vLB MgR,Iga6`̯2>Ojۑ0H\:ee|;_ nj&3gCQ&R)%-8O)<*+WAa655{[45VB֯y-ֲi$6h s^hIx^vqb;`ѴU^%cS#4ECtiSt~#"22|-ȕב)h c>IX*f(xuf" gB Mt2&[5oDzteIjնboD,ީkL5dH;4m)% e5H J3TRT6v>>UEgOJhQx|vv!CTHD[VFR>dV[גEH(0F5i3 g^ڨF̓X:(-V-B])*hɥBcUC8-l]drFg久TڨuMaŬ<=:vxVqd4tN8tzL5C8eI;yChm,*m3&f*꼪[m`XCQFk{ԟ-ʂDƢ,WЖĩ d΅$!Q-sU(1+u/Q>vr_;mi>pƝMcqRupZٔ|Vnɐm p7-ƽy?!l _ $S0gAxIy`ǚ2FNΡ;vhۑ v‡_d;;6TeTk82abƳڦ\*qx#c'PHQ= S_ R *ƒ &G^k56]zqC)*gU9ZI> 8~Rׇ 5d!%0%+QnA0H q%)CINgȖzu@J͒H VrT"8&M2䩳Eli5RZ X2Lrh%(mk5%#U- &o|c^5ߍVXRx(DRU_3aS[-ܧRꌯ-m1>4hmBW^+-f e**"Q 1+5$P9; 5 n|K#•HƯ)ы#ZOͱ6drm[F 6I(z!Rx:|siEڵF!S9kORƶde2a⳵O!*X*&*fFQeTL1MR2NFDJֺ-`5Su-cqJ'`"md<3#LU2ԤmUD3ڍ]d2A|0*ǭr]hَ7$ơ7-nv&i(A ƙC}zQ+\UgU|gmaN:6T?Z,JPb*3D_21+0ߑiaXR \ B[VU,QW\]a!zޮ8Q$F# 7xIJRIXAjMy3dE,!n)H%ZYVf$Kk䴺G""-SP" 9OS4 *L(Fx~}ez_2sv{a:Zԧ{_| ("UꓛdcT%d\('E^%kցU2HmƙެAA*%F|f}#&16 WHmGB(bJxII&Hz%m=BƍU;GC$4BCalpFaiU - :oTh-% 1;ըưQgc" h:*2Yj6E^JEbƏ^k3{Hp,K! \cעP8Yu^EjU J蕝vHD\[wϰ a{_`i+/+'53(wS6⢷8(UE !Jh1O)f~HEVƫWX<_-GPU ST67m`Qy\; Ucz|C25|~IT:ΘVӪf}귊%bzU0$%(ucIHjΰl5C&IPzq):\VM]lm}ÍP-u P fj_TN(*z̛xg!jXY^J"DBBI-,x.9Lj" 0/JJǾֆq~.vHK`ܒv4ey6bY-,+F4qՒƌ &*+EB6aVZcIB $zCQcĊ Ҥx҆YVX|Ӫu)AZ4+ɨDDASe}CBM!lant}hqmJ8q~9цd TCU4mS-bk'UNעCIHDaSչAѷo~vYPίfXFSԦX^F%Yb,*,'3py(چLVIɝka&Q#utZΰVEdUD8>'@%a*"[*r6:]ˮ[Cd135 K9NW+! iTFn PE` %[2֫hkmQj!7UaJZΓg&0d ]SqPulo6YƔc T*%64h/y)Pd>12O\>2dbf5"x/nr^,|6li"[R(l8A'5N꥝Y6*h>4dwSmt\y?$Ak')Pa*)Pchkf)SNVD<^(xk 8s5Ur-5qQ[j@iN;PU`Ò9:4aA|vpIQWY۾"g&&I[~?,WDmtsU5υJM* V%B HE&kKKV󼳗y^͍f$u4NډHaZוfWdhC fy.-* a~MzW̌&]-_B"^0S~ٴj}}*hێǑAa NMEF'N62P"1Aݨ|b7d$5Ei> vs$aɊ32kKȳ,$o4~@9Φ J)< ~15SCIUBS%EQWPʦZֵN-l,̇1jmZ*ɹҾ dFUZhl8u8lX]A7(e:biЧ >I)3az,Q(f&I c HSC1EiqXNt?$P).(@V#;DDHF3+QDz!T>o58ZiӬ66jdη}o*;B*ʏRK5zcě$Є"4 ""X*3-䡵(%aFF*7+yVP_fh9a_neCP^Eߺ5i#zILfA&47^%257 0hkZxeL?@}l[_FT2)Tjbc_ J%Ƣ\ҕTn*-Een:dFXCF+9ϼee0Sn6k$ %Uʋ =i IU8#bkĉB5=# z늣nj%YFͣSJ#ZakIkZ5BR-f6 9(H&fLm-("Ao,,9uScq+=y7% M}T2w9TsfdHjV2 CaJ׉O֯`kN@lG9zk]t OtٕFchQm:ؚDJ.zFZ\TEi)O,x b:^%ԡƩVtCT S_QT!"Vt)JDA D"\ck6LγHl]B_aN(#:h*CtQ2T,b2v]L6d7bR\]hV U ֯wYGGP1q icW5DhmyX!UYΰu筑L$dZÙUaLjW1M2Te-pvcIuN;R,ޫxЈʂQ)5YFd-%3jЄ5O`S `}EU1XwM"ϯ^eT4FUGhVoRuÇcb0E^J~6̪_oh$%ya2Z^*$1h{|fU*U Vދ6eU2^Qk>eAΧz_#%D(*!ͯgYaU2pru?H >>m%SBB^ޣpbJllBI|1Mi6hW P4|)pc?J0Ԯ-0ppZB/C0c`}Ģ,D7ZU"lgIen^;mf*2* µ+zUz9B9+0UshڭtpH0K^\g٩,aVugjt:$hECʢt8R$I Fn6LOcZO2 ?0^Q^n5ТGoab4[ NJ`덃o3&5 DaΦ*l75V56di(S*WzA}+򌉕U2 FOl7=7\ے_RJaIM/|4* TW~:.2R'rut*}|d<{YoŭDʪȲFajVrk lmU3a[̬%m()i5^D6%ə&#NkąՅ/Bru/t$ig[I &(pMA48(%^#|fnCx2 1zgJrJ':~}dóDޮy(Ϸ.LupsI="WJ%V*,,!VH(,%b N.RKxQ4Q2|jaP%7 ,D*b$H$Ps!R\\M$I`*"^TG(eF$CLl1nc=3av0g*LiݻdB˥Y:)UvO%k P $V++,$탰ESE($jS/6 Wq3_Ji 6ү(d2a_/dL"~[s*'rY5׬%ZcgUl_kLMy UU!- `DUרZ&]*F<(?#Z!'NeTVL=`Nũy啫m jɥ1 ב&5m_^FfNLD34EHE} (aSMZV&eA+mFfC} D6zzC!")чUuQ@WB03rjCl2R)P'P֫* VIt{ tⳆƵ^ ?&c l$LFʢ6y_?wEaJHud\oKl LESޡ7WƱv5qꙒp_TPT<ڧƙ_;^=N CU:t$C;&F֡Y&v-H&UYά(uB1V)Uvy4{oY2"+M cI*%3a"ӫUεmUi+Su;(XB>J0Ci^]ӣI$daQI)i O}-DT6kťG(FriWٴPƉ?^ȇAUU3#*r$JZ99lvpv83fg_TFqDojT(q(d譣1]Dmxgd/f,*یQU oύ܌?B_nCauN*z2+65(]eE UU$Phr^AzRۮAL{muͅD+CkoQok24ŊU5kU_SscY"ae/,nCvV}2Inƪl!z۲k׍gJ#&eYJ-+XoՃ\};Q=9Rh_%G(z4j\Ua6i :M7¾",PU5O}Hdk  Uxص4+qoa&KNƩL;{8/W'ע5d krk.|aq?__7?֟rD2Q8 5*>|DCP= ],8%t;?Hɤ#X,E"0[r ^Ƕ2ː".!!!A^נ*c;Eɓ7(gFxD_o~AG6 6i552!D0_U;-^SSu-ͿzRil%kE`W%IBFB k<[m W듡-z}[`P"775kc>5Ƙ[҈zfΨ!Z;Q^5 kÍZOP%7r8ztE}b0Ƈ7(mE8*]VfzyrԵ-E yzi4u n=.j*'WrzlF)UB*&tZHl!*F_3(ɳ|",%TC~Fm{rb_k j #_^DS+(lgHL5LA('e-nicI[}BeeFX%SFΗa׶6ÙYf(D2GƒYƒ$'BՔJV &Ci[d0ȳ V !\"e QՈ׎TU_CFTוo,%]5虜;E!Ϊ]YCSEPY45^+zF8`TY1{zı8Y1!Fd$D""%̋ k5ɐ+6:CCc]POQ&0 _`_ " [œ*TV  `Ƀ2ô6%+V;׉L+qV)̍y%gcIB0[8%臣Wefa$JqXє;8Uzu db'[*AW.6(+dviF͵VsUJV64w̍owOO{1۶`llT6T#`6u$Fg"+N$?LdVL~0yzz|IEN%F &O1d 1TƫW\хЪeI{rM{ިm6ErJ,#NQmPז4[) $$%3*UG%5vtXX#饶C`+8S (B DD#;)39%PXw/0hZT* chC'^}RVhѦWGe *z o!똦ɒIUNR*%foU`*P\FGkg%.0MyWR$|e^QlwוH@sX1WY:mcՔ~5Yk\I clmET9R*gUGגA+DI ƈ[֪J['ّFJ+IibȨɄ|oQJtx3#X"d5DS 5P_ِ1F[RvQh[UeCF%f‡`Ih类cd/AȳPd5no@V(r†w!ʯF9.(8!ZAqу\ &Wf6(±_&gXbQk5Fh U㾖'\Cr$%aS %2ɯB)j7=TQQ8ƓaTHv[1QE&h[&Q:d$ {a!$ܔD7Tk.yͭCrP(bq ³kaf~lD|9Dyڡ{hnH&ebCa_B*QK59ae!JcǩZkrUVyϭx&.8-*46X"2Ga 3{/u4rG{Z[)8Wïn$"X:<_ A B֋DߥO8%`و|%HZ)ςCw+ȚBPKB)x RT֊64zhFnX`7m._Uk݌wҳ6a2d+vզW-ohP&4!U}OgKkoC5[t>Ćð_3P{JUWj,+,jx'LZj6{UV3Jچ ԥ+Uyvءc(E!%D(xcr 8 NB#aY-Es 7ZqG<_(To ^(b2eSP7OBO24ŐM}fC𢨨uZ{[8/M#ThUN.1PԴ|(VR皪] VNn^Mzujʊ5 4"$TW_ԍƂڦ)RU0`)Ho%xCb `Ȉ 6]_aK(7FڂzCuT*_HUafM@UbNڨ1}xE8zu |k4"K^*6e̘ql rT$F_5|**º6MBUZj| u :jAST*@V6,Ѻvshlom|X0: U9[g,5(ȥ&d'[CkIsnwPUUUeEz6 I=m|4Q)$5| j (ewqQ@RogHHD9CateEQ )`T$TkIL|G J&*"0Ii""g#\\|ynsݳ:1L=9M}kZcF;׏Y(F @U}iQ}C쨃֟Ug=GUyIFgG㘨f+%MɇaKfrcmu(5b~uT=]6uTLfȕ c~PC*;Bx&Z2U23aB:tY׵qXؼUBag $hJąFl1auU5`ڪ{p_܆$e$ƕgaĉ%|RF پg|<)YQB/1EZNtkWWѣV>I`K㥆^FE ZQ:h"WaSvͺbi*U&4[#fU1 9(E U fNz+6ޖD0Ʉwڎ LfV zPZEshWhKʨkԨ;xkZ-Q+tg*5f!.M}d>M5Bm+ +s'u)ο^nEUk8Tb1{eF"hbxt>F^2i5S3K@6N4 EEz3Y3WڕXf*O׷PVں8NCj3EPΡnvLʥF4wՄ;L=z[Yk~yu441׷ek^AD5 c%RJM mkU)*ygmF gZִ*#0T=5/aקCȌ13 $׵^Cɚ:6 $ )z1IoԲV+M!ljAUITg|̂6 ?Cf!*&77t{-e%RcL-_|#%mJP#N[B `듼;Fk`F|]&\ee $X}*X<ݠڍTY2v ggYX~r`?TURR!lF`Z$m|BCj ``rC@I"cd&5&4ICUXJ{.PI5F_ebP4Y2UU.P`^1\mF͆,R#WhmO97)PV |ꋑyC2/ Ij1%E&e_Ya%Ck)UNz9NU{ O)k5%YO5VYU#_PPa J΅_Yuv:Ѷn1$(|4dnu4)UQV`I4 UEEfU#l~V0?NK~$ Y%_:kEMQL}_!{^%TB6&&b0qkd#*8'赖JIvhH Pdeu}cH$hSɊBWdpY_ A y7Rkp/ٗU* ^\U!mCaha%TuqlD ??9z眇z"ffU:S/ ȓS :x&!V8zʢ6FU0+]j֩mVխ@DP*UWWيhf(Hcba[BFT<Ӷ90kãVu~X/Tⷯo6u ".}dȝF6U|IAnjRae(ֶsIj&7GC:3xX%O=Y[f vP?W-N3A ıR#gA) uoJ|8UFI+:)XPQJ0mQ +;EqíJꍪƍy)B=fT#Zq+}T1,&wh ^ 64ZcI/|XN!j*VN_әS+!.c24&,%S[}rկd%uʁ9Deȫ7ɴQ&&aeF##e`+TpDS)ddaV^mձōů($ +N y .7RJN6Hs"AfQ#<I#^H@3j|`4:W5V*FmZJMx#_eVڋuIDR['phukGuG2VN77T6md>BAX^#x;gy.ìTPDdW̾UC k:v@gy7hмRJ8׆-CD1*%:MՅЩ`f|NJYjGTa6E#F(Eeֽ0!Q`"J"DђL/$EF{Ԃ&eX"I=MNVLX_Q|hj챯!:Q <$ڎ`ă&dkUf3،n?+zZq޿5;8yg_ w4hIFג;Qz?*J|͇P|d>*'mTomƗmfJ"yoJ-Q zy"p A5*'!P-cimhY9Q[03ɴ-0,Sj\קT*dl;c*AI{2qTZ2))BB0"ʂ+;UqXPɒ9ѭT&L}՜򾃰)}Akݨ뒅B$8"5|a/2`^DVC0l·3\̘[xu`F y #pGkF!΂B5Y7q"zv hUUkCE%uVI!XJCr >NT2Vq%L…uLS[&öZS)C$.Y|1 Z Uz#C"%oGPߵm]E::hP֑g#vd)#%NF)Vil5!Kue^T4"LԲIR0* T&>sJ@̫6"5T #]B8ԼwlcL KA1YXҳUz_ k .kuVs&5D1 $lƍ _uɪ+[8֤S 3P*-Ca`ƍ24z%HƳT'!A<)|ݭ jhn1CF0k#+5|@m{j/!?Hz6i>WhB=Q4*M{ 9L֖oU6 ;Zg)P>p r at`ҩzvk:5d+VLU(T4#:d6c=OQL LD'Lx%lF*1I|isU *,&d`4RsL5FRRt8QUXJHQ*<-cSyrίJ$8mЪÓ:sZH`zכ9Di1%1YfkބUW#,=x#%%X Z\Y`>4$WCT_ړf64e*c<}5gҩX"#fW亊9ߧbdnhT_:Ll*mQX5jU 2QkE37 WT?yAj/5댝2JJGT(T0䂡?bDѺx QAoD$#K&4ePY9g2f*S$BPm:nI(yZ꥜J%#&1Cf8dƒ+ձʌSD6e[5?$HF3UQQ)IGKUuJt05 hJzf8_JVUJ Cf: _XNט=  d 'B*zVqR6Z9(l0j&VJ~>UVmrm~"#a^9~2-&_F{ZmF ,dѭc6f>quq#㘨͡d3ѶCKsCyUx^;8Tʩӟ _: $: M{g*@o֬t:!Ql=QRW0W$S#ЉvI!l_fPIme14NDɂ-}{r(~+TVYnݚ43LA<)X%8uj8JWe #65U zFa RjFU U/ ?1B#_,huc\EMDeW s[xsULimPr!l-$q<Ϭz궍pFrCoaCgÒmeffAoy{ccd{33c`#T*J&c/-*xZi0IlS>3ѣt#8+*t^x6ꍈ@%YaS%yQj|1WW綫a3FLќ/GV!D֖7S 7T""ƿeEo5RC)BW=#sQf\Ł7"p"ڟȅ nq嘾pj'T[)q:}Ihjy a1HUQ4FkI*ʧma4/Dr5sb kiCZ4N1.($i7%D =(j8e*U@6 EX@ EUT{i%%c87 29Co.JM PEzG%*$u ʧLÌ9|_/2 T*_XP&d8Ȍ[ w9IVrG\4;2«cUfl1deeUqnNQ`(_Y/eJ GyJEVa`(L#BxC)Qy:3ύv]&d8VT*r/ Wr65qp_6vWXYB[dJ|hOڟn14C(mm6ì *5jΡVI.(ĢjYb10gPUXIW?/uLACoY_\ҷzCl8U5M&jQjH)l4ejGuWҳ6;~zNqYa̯nj9l0l)T_ p(c5XJ}yKqDƼbC{pZLkcK-&?xn3l: -~jRJJ%Nq eWy/mvk6Fw_!R_EC/i(KURgFڣYёKEצb)UYdRWEBFz(Q˷g)*$4U0,Kgm "qYb0;-eekz\ QYx2d8$BYk 3Pc^ f)X-CI D;QQẒo@R(3kUoUX|la! }f¹-X*&$ˈ TP52`s| ; PEeSaUVLlhqQqUaJVCQEB~c&ݨx}P6hM&Ƶg!vGJ)EYQpߴAh2qzܨ~e2C'i3HrdefgKYA&L|CSz4T*Y&(TV`WDwjS m,123qFtPު"@9B":1ʇazN AUCy>\`נqa 1|9/aǡ᪎Sk.leREUb"!$ bQ256f+,Ak71 2֫{*,э ey%B#*&ة&t8ѣ*J G|SbVMkǎFkӞҥ-V^u|o;W%61CnFh%l4j@JY j*ei~K_1SFIlUvI$ֽK$&*Ps V5vl!]N *-\l6zrv+Z2J&=!Ft> nvS5^Fhs(nQ|x0څ lx5u}yQ Y&vk4I8Hj?ZCPZ\&L6UP(= @3TME%Qx1FUD**"Rg&}/I> j̯jd9$YQB2FU11nXa"D5 ]\?26|QK_&Qoa41z]%ֿpP;$7^l9DJ?^"\_ɺ%}@PD{ARo"@[Pl45"!D*UѽO38P5e-k}1-ݴ4F*<׏DʯgaAή)Lj5=P@2Z+a7׎RɃe~ëWZKcAR6C%yFo'5=RPkT0[nMzhB$ɝeX*r9FmyC,UY0GUa$kqE*{zx(#]Wʘ06 h„|k`tqg$:wݰIF*5o"yCosQ l925)ה-zl0`B#I~& _n+,!j&W6NA5DOvWŠD{kB,0^8v^2eQYעď[F%R2-=]] x6dC$-څzʼ)cVI}kHSHLGɨzb%žS|\bA:֋Q`E |gS_\EދVVInI-QB0;5ޡQ5-V FlgzHQrn4mj&N47RQbC%J \d,5r'r9 3EJϗ{EC!jPe;&kB/*wPu}kUZsDYjGgQƾI[ƵV2rCZݏuFAmQN)^(Z_-E#O(sdCqOFvn2!`JA8#$9kXyADڷ_o"*Ut:mI59L ]\CԬxoJ|죜VU?^`3#I)oX_U,`A)䢍PSCa:MAmj0dΰiIB-n/llaBZ(0k˪ێyk; K}YVL7S+guq}4aj`YTTwU NU[-Ck(a"BVHdвpI.7%XME~]Yı}\m-*Qjå}6׷^I|gQN.6 f[Usy=2$9+>+6;;}FCrj*M(B_TR`9#hTFJI. 5-QqF}ģ=]*#FR26[Yڪ1^Ty#Lo|2zQl tg(i)2}D |Y©05>>9EzĕRjIhEFW CaUqx1Oo-f> rPM!n=BDB5ƈOJhUijμ,,^lbVr%+/BO5q :}U1L)9UyUf~xlH$E:¾b)9FҍhR߰׼þg_8ko%!aka^oCv<[K2U@I?ՃM}m|W*I|bċPڭpWu\ТI@vC4[ I8WL||b˙xH)# D)*QɓaR^dl26tL2Q";0U&UC`OkuµWA!*5󴛨L1M"ROf[e{G88`r)d<}|fy&Am x%,(0ի*Pyj C`YݖuPl&5y!_22cykrc9p/0yN Mjy# .5Tγثm TѓUUJ2ݻAI#y£Zהo%Q۶3ՍSa+U2MּU8q+c̦Z4aWRH49Ȓʍ6ul!+sf֌a(TaSr 'I_/{_ LkTc^xBTᇈzɪ%4aǮrͅ%,nn6O|M`[zr+ԋCT1 H@ ILl6 5(O'UTmUKY' Ddmln0*a72LJ20gJdW[LU<%PgTWCʳxl}:Ii!t01 _l:%VFZʩ:u.S HEE~N;a7Z<<F#BvofPQU2׶=4*SVe-3e:AxƗuO_nhG*7^YkCQ¨V='V(D1*Th{ˈ$F|n:vXּcF&T(J3ΖZ$R 0S da^F# |>>#`Ǿ*m_`yQZmzPt2 |2ґ'QZɝqVm`Yɨ^5"L9*"MŨ*"6m1ʾwnŮL4"dZox6cfSLXܻp£e6Y&LkaԹAzCjRgbKf=II8lgL&C$HZT:'곍y$NϨ'Z{O~D^D]XFVE};8$UFTFoTeƙ3UӼ>,LڽsS0ȑ&Oʵxɂ1a<[ ,:!򳬃XXyF_(C`E ƪ&7͖ecĭPq[36&LV0mk-Qo_'[I'VYR{ۃlֶ=lĤ|BYk:q޵C_U·^%8qƈz"n7QY Ϫ LS"bH ^tS1ddJ'UmT:XѦSҾ4YQ$ɰ1dRbJ3&"t[y6f USٶqj|΢cTz΍;vF8{PP[ajZED=|8r }iRnv m[mE:0Ox$C87oSGX(,Vh@6^tlUPھM%5틊k2/B#CCJՕ7Ʃk>Y~-@Z4W|m6l,*WW0xڌ wȰ%YzdI>O'SyPy(pqCmnXQv-{; u!!4ڴcUa> <`BaBۡ~!ͯu_'μB\@[kꮤ}$| kːh"4aVjn"MBVy&5uo8_U&ea>ըEjh5xpf;(E$-%??:@}a6Ǣk \xr%![yjcL@,:P:3eSڦvR|5Fx[c>'{TEBjt>UYNEbCHLqf!W*xĶZ ׫,5TU=QPDTD"PX/lV :oͰɄ(l1TQ9{4`JEҔb&eU2+BSf<`xdΤ=StU5%S-l<cT6e E$^5Yt;lw6m~ᰬBB-lW TљP ֫̍u4 ~oZ)l;U}k_EVjf!dxHvr4*:`_Ɍ0eAXĢ ENa-rL^1/k#?AnXCPi4cl"Fk"j3 mT%oPhhVnn֓Is[_>֪U|>ZD-D1:,a'wQJ*0P"!.=M,Qu5MQ]1L=Ùɯ5&f2qBX9ʓLR[ǟ%Q֡QƔPFx|6Ee+0TCQ0gw&2X$Q6RaʯG:8T-1#l)$6 kɯ:tIׯz,)v5zWx2V**d:[I^A)bvF dz3Y3 6nʁiIxx/B*x3dV65 eBH P-cTD>@J坅@RvX|N/ 2RÒPJ0NL6 2 l b>Kc((Bmk)y IRZH&"V/7seYJ^b,+TYMMkrc[g9js+U'xPي@lmdlUI(EW8s PXӓ0FGΙ^="SISUYĢ<8l7Ru&K9u6i$s_9XYsc>g琾b,+, SkHRFYIc ʕn"^F}<ޡډkۄ'hUd5Dhŭ Ɋ&U7";r|f)*ps Qe|ƪ^o|5Mn\"JBC23񞸐ME3ڢGE!͢Moi6[k_ﯓ^V5|/BO$(F 7Uɯnԁ/%dhuTrda) uD3__xe:4E[Kuaf͎Z|p-ZԿ7(T>TjֵdD:pФF!l%a _1(|ɕDoy:^.JΤ)Tk!zHx*Qea%F^OGoh޻a(Bogg.eAa #N02v 7IjʝYk1_Lfe J9~ԉ $0Ƙ"dch!#ֿ+Z[8%hrBU(cJ`W[5ok_aU FN1H(($IkX>N Rn{fβ6ըYá||kZM&c[Yy;\D=L˪2^Df:ÌW׫JfZA{g'Ӑ]7P*G_6ͲE^TuT(ME aK|=0jcF&!<#6ʉ혭#$y2pD(aa dSp-VɖpFfx*2'+-Y^JQ"vvח|;z=Lh*R&Me%C3\UfIICUJb38yCkQNkʡx>M{dɓGeiޢ΢t{T#&Lh;- T*,'a`}=!$/ƓGUti)mTER |1BQQu'jyIyq$BDD׳7HKa^5D6I?(5 YkG`C:3IATk\$I[UlX6"R)H'QҴ #gGJjԤ dϳ(&L/n J`S2Ƶg!ɚk_ Sɲg+Dm̬l꯼qP!%&VZwr$Q&Lj#LHTګʂz-jŏơ~T*!Sg:G`6̘"UEbRS HY1o[kU%갷m/+.EP׍$ laJR'$ B("VL)h Ѭ($(u1Z;Pڴɭ|ʋXruuN}Ϧt^>$R0)X>Vdo>kXI(v,!ha"JjUgUԦ6NQϤ^LvƜ/hɍ`Di5R_8`%YTC*#>JLgYPg:,¨vu'URIMCO&s[֣~x 6_Xhu;5=YjӦRu*/ (udcqypszOˍjE2%?$<蜆]k.Q Ȩj  sIl⋫-jC^UPpp%(Z،"HA(DEHli5ƪSCcl-FdAF iԄy"Wx<-QXWx5Q&r2JLf\PӆȨQaĈS`_RdPGPd:RW^1fvRKfSU7~zת4[ھ֎ NTvq&wӚ<֞%ɭ&? G(ʡV26Z]s׉[bM"y)KaCpKu64XkΌ_B%VlbQ KVZC+bXѨk!۪ޔg͆:%Tk0-*l3c[_LGJ"n4T3\'I-SlԫRV5M25nPFB*b'w-OQ`T5Jtd5M5*KkMe1l*ޠ\IzICA \`F-agKK]A"V `aaa)JQzR2S9_Y& b,bVYMVfRk}]J}f6dg"i r$Y<"VTY^Tgh8э uV6N~LQg!zdކ^"VdV>U,^MnYՍSPPѫxDlcUr~°$-M&da$J=i%%M*uFYyk^͌o6oUmPDR%1hj2 io/S{vZ°Ud5Zʨlgֈ-P 8D 5ꍍ$Z |6AyUi?L,6 z*a_J*EbY3\˪]l;fA5Ȥ_1STlRa 6Hȃ#4s 1 )9MWaM"lƉ="<@[T4%Q=Rl}j jx,c(xazAT6!JY(̧!,OaX6dfWOXL|t AGU8K$v[2Y.Eg8d#=gl/*5~fQ1r#*ecHd%fUJb9\&N}üC0Ml5׌=FUOl;^_PK)* QjRk6m]ADa:elms`j'W[zCi48qu YN&e׷[0ʹzn_7QnX;Ɯֱ4r h^jJe32 D.$bUdo̒X"FF*baIln;dmEEd$T6&ə&z,j*cIPHy"H%KYyIy iÍ&f(UsE׎p,PgQ+-/#$O{^"$$Eo%ao3a}k8Tk}r2PT;D4WEAYa`UtW(m,$l)Ӯ:NIӭ&6sa ٿ,X.U~K:B5z&VL֮˪d)B8O{yCܝBkFwډɂD%2bV{eE}'+oP΂S`6l%4aE Ɖ(G$%ZדޡPcT~_eAyY^bF0"u`ma٠gC2EO(-X>ݣ%4wCFgOe-n9n"Xj|yQ^΁˓a6CT(~+86K:4ULe65=%`U%N<7 =WeWF6N"K2#92 9?*LKK4+͆vѣC}fO%O"-5VѾQmVNھVCaMB05&,<路q5S kiU1HKTP_<1E*%&,<2"hk%C|XF kÒ8$2`5JT}J{l6I:{jZ$jZ^Bﯵu2dAksJ'  c06xpPXL9:I iPo+=zUIEUYIEkL6Ʒ oa򇾣Za_KF4Zpp}7 JJs$7̇1$XE1d!ίdiBdb|nEH6cWڢ#fC$+)?^l+9U'O"kFCQ)eu(j>Hy#4N)mѰDT-Eҕ*22T3}*,5ZY%Lq M+8J|2 h3IN)1$ҖCG k&#ntŭod!Q:dzji6 dM΂%A_ G&g.BX^<)|>3{N}z6 VV4Ҳk&CU-f]Lj ;~;; 8*PmJΎގg^C޵DYQlWַt4Fj`׿P`M-Jh&MyASTkD0n#UZLiClʩ5LEfVUYZ_I% l, M$P%XJTNlohֺfrZok^tKua_K]!zxנc.ьƵ846VkGjQjiI)%%a̟M% tNe|A NZ>K4 Ǫ(ro JSġT/}FƢL9#`("xX"P SpTb(vud™UMTה8SoJ0cQ~if=# njJ)Քl59&ѯi ['LD邉/UA!PEBT9G(.V )xHIWjjwRS[]\82ST(|1U^:-7%.ߦm FTXxtl h^"CtexELWQN2_Y:=yG`*R-."x6xu~ ER#bNRs$[k\$-dMS?AA}QF(j)s5["dV : ((†qIhf3ʔ1r3cg,!|`$hS4X/DHK8Z۔qTB/!s6'CĤw(5C5(-|"A *R&4oϥTK&FPhDI%D8GF>@nU|ri,%Jn-uIH)VjUG ɬRn Uǽlv=^7 iªv·bFǜ7H P{g>ߡ^C%Mm"L:H͢OQ~ŭ:0^z9rqE}92FXD0Ri+!2QR_"&$(` Z;:U k1Ly(uW61jPFVZU,3d~:U;=^ξtkD֫ ʉֺЉ"F_f91ת 0Ua#Bֿ#j{RAN|p^/lM,~=W\,s2ԤVvuBt9"x6g[v], o, =lUY̝a&l!6KZQaAᖹY1[K3vmfOV7J&a!l 'N:42h')U$}F%ccl9Gyd5n _dk =Vݖ5Uְ&TLiD\CGCF+ﱩBLITٴEv7/5[ CE&vy|0uvʪGV/5’Rs}yI"2̒7|gFsD('9>ajhRWujQxZBBE[`qahx:D F<-8:n(I|eIi<%Q?) zmO6$xکzX0}l8*QF{+-j+_mUqidLT R#WO֧&6d:Y3g[ ^ ABX|IB""Dp`uFZl!6a3 JcZ덯}r PxWdOydz(ˇTN܆d7ي2 nZ;Y2m^ԟg+7Wg-d]LVfYIU_YTrsU}f5EE,ʊfUQN%ʆ#!ȿH,nZlS_&KQUͅڦ[FA2M|ÍJT(b$$̙)*(*\\ Fݦ)o?dV6p$M6fA fPdJuCuȓ 9> = āWGDeͪkZR^AAcZY̜[ƓGfA&b1(j' ;c-Mklձ2D̯1TFi1+@B"Cl#ZUQAQ)cuvb֍UU\O(^U"`*5Ҭv8VM։VRs9P{^lͥ^>>}jC6\jYahk5{Sj o4Еz/ >UfÇjQ5,U(lT_*CpH &R&#+[\2f\{f\l%atRQX&tSVma>`sLd0$To]Z; -sa6ɰ!HS_wk݇au^mZ*T9ėI bwavU gThl"Ò+!Nlo_=aHM[ 3`2_A޿2lsOɘDD93W[1c+ҕU*fof࣢1lu<;aUjBN&J!A_&42CdDlUM{׿E{Q֏LA+mj&–;X0mc6,V5n ʂҕ& jb$dSc !<&y#QU 왕gq+q$IjeTx91^/|fV񅍔"SѨF,LCAlk}g,2fC0[Y9E}LSշJTq֤בcIm~Y_6!z')'ðQ 6ިdDa\U>`DCDJ5T(x ^ƙQ p5YeVɚ i5 W"0T"4jS7nU 5Yw^0>7'|[,UŒBQ+Q̆;Qh{% Q#hr-s5ua Zj#XXhQX"uCT5먝פnf|q(h]nׇt5U)j e~ɇR_1%9mHa}%< M5F3N`۾`yCn߻ VVm GhS(y1\Z;5nUbԲ°Bd6ɝg&&cDIv_ܾuiu5|T)qV;EEU};FjUz)`#skaCcPC}U|EiU,Dgq5Y%OO*XZ{Ύ*{H=_4P*mT0ǽ3[Ume ef6N [1nnC2NNLn9H5m/TR精}5dF֟2¢A=V tCmT^gATk:F:S~&"cQa> EpX$X?pGYކaҾ5C䡵iIͪ#$Ƙ?$Ρ SrLc(_0bv JrW{z5TPoi4̳̓1^"/2"Rl׊fyka_XUoU[P]78qƋUgt6f%OPðKQ&*(mFUIzLGTPɯ@ÖDmB'haWԁk幢L?8-g-tC ږw=?A61O+?vfChJ(ůZIj i>򦪅T[J'+#IźÛ} f^6LGkKH,%gģ6 bk(/&ƨlmU݅I"xӞɼU}iJ<I|f_:0k`WṚ돍W^[lKm[]6A[̍'[=j- ↨vyXP_HxQ. ݨ;2z FfAEEe:5b$|shkmm zYȘ[kM6یf֑mZZҶJ_bQNr@QHzg[k+fJ}򘪡=D-ƓpT^9R֥aާڵ OA6_t>tk\9^8x3/#[nQ1t6 O0uSf!V곳{ yUNDpV:5dѐPD!g$^S'I8%cU~lLk3*,1 >h %Fm(!ˢjN$P+da}NCa*H۪1 +"F `/ihƳ,VyJ5C/NLE{tuSY"JJJxN{[ 4`PbռʡAFDkUc^XjHt>diZBm ÛUF("̵a}(eFh+T[cK!3S 9o#X$ב*:m՜N3v&ξ`S2cdK|kT9l)*~*p+KTCXz&CjcF-ο(QX$/$T7ð"yXIPgNj#fJU|Cee:K#d2vǓ}fEԁ0ڧ>5mR1~a4k U&6 xΏs$/}ߵm&KqDշ$| eXס8Y&)PHzߊ, D*d{s+yQU*6lVhͿ\PVC|79I~-* ՚MNV]j>Q<}3F:wʡhpDXwhe(h)זtkj/2wA-?czɇնL-db %!==_oh)"3 ɯN%>3+>5kV:d%s 4Io;_ ^Auh<ݫNִzVO|V=n6v< g. :͇߭UT: {ZX5/0^k[(Uiϙ.ua=cd¬t]>ԑSk L[]B7GtmdA_ LG$gTU`2 D6cCU$Th mIthk1{^DVGSֺ*ðFsb &~׈md~ ;a5[Q+L9 &Vgj8;x7Xjm5So&d-;^Q_YZz,(gn5"ګSɥa8j^s[1jwodMRŤZVUGlzWHhƃ2 8*j% F%"fCl)ѦFCQCN&Ck^O!h$IWڵk Q:YN֋WSo1S̨nڨӋ$ɇ&a!+)ɢkF4#` { #r1Q~M"O{wnzkOL""1"PQPoT2r0 t)V7"1)/WHtmB95ӝR_K)>dj5mUj,"ƈٍʙmv$m9U91 –6+S$"~0ĈX$a788YcIYy|jy$agm^P;]-߷:>18oZRht#eKS"OT[Gg*֚NE_w[XV|Ξvgk[R{enpFB>V+4FH|6P: u?E _$ѪjmZNNbR4s6=ssնEu|;@Fd"$=򑏌0_(hc4"a65G)ȼ|5ZþmՄeczP<Y=[.TVì1I&4 Gt Bt~+mBMk#2ĭNT7*RhKɺ4l-_xʩUZaӤ{ѹε`lӤxB6hן`-~R&cguy"LJ|i1C|=WUZN'vﺪ`c=N˧AuvzQlåYkTĤ,~|5t]$dZ[$Z!ދ V6L6ѕ "@Mn/鬳;Z4uwi"r0_ȚUGHєQF~2R_:fVC5Vu`(˩0JaA&e"-c|8FQq,F(8ٶ8-V!i,v;uYnjfl~TZu&xJ#ɭUx*vzD1dԱDrZ/ggy|_'kaY^T<~tIj9@TÌ6m,@ۢ=8Oﯳ|Iim!ˇ_di1z^A&I'ӗP%T8 DdɍaX(fRjP+[)t 4UY7jVxkC;D=v|v6 5F5Hm=s˴;W/Ɨ>0:;AF?uĽBL-Q=;f͖2ꠢ¡b*ev)LoCk굓v7y!iu2fIÝo* ʒEL\z`V$Í&uz!PXFcQ G҂1,Zk#CQ(K<B'̯JX2Eb(u9 Y_ox=b!dh~}~edyFU+N${["ُ} ' yi[ۢI2k$I_ XzL% woEbUID1*9)LLb_&K8d dAQNƲ^|>'iv-ڭVCLO ?bO!ڇ!֡꣯N*ɕS){Y2|sQXC͗SZJz\&U dҤq#W_x&n!8F4UJf/YUU+U*BPQ2-ȇHDZOj7گއ&arVyu uסHצ7GL`'frkkC7|(*47>֨9h,qN;JzM%jkuGajחmCΡD*/*6 RjclLiuh5q<6J$"S+-GS(6XPc5WSD&T<s«aٚru,ZW@*UTLi U_2g1cAP^u8#aCB[٪dd>HΝ80[*T׫P_R_L/r/h3A&UHK& qMGjdJP(%aKDU`Z]jyvAh3ɾ9ʉs̕ήDDK!RkwO& X%&t2&ALj)ȯ&Z=HB,dɘS21yy1.1ƬּSY U&d;hC+F@Ua|=^uyUKT$UfxPh$X&AiqYMdUfC4[Ӌ\Aa=&tXbeNiFE$jD\Zm.aghE*)>TF2P2fU5Tjo|89aRI U DUYmU%^_T$ U;,jډ`ADi-om~y/5[4EQ_Eoz+6F 66Ó%O5׶8"b,{^BX05R̪;0,(aGoghɃfT7a|=* x' [̍:d|eZnX/FL+*÷uf>-1Mz}3$)/hD" l"*CđcxCojFhk a ts!{/͎IBCՒGa`F$IoTpC2Jn;vÆѝ!;/>[3:3a&(^a|-Uf2fjVoZT2QuLmSaۣ6y:~Qh0OxDC_1"zB1S&`DdNuvtjb+ðyJcd~Aim5@=sqnzCXN0[Q/v:lzFDu"5G뜧 ,16KvVܕ& ӛ_jL Z#`T͔imWqvn1"e--zjVL^22\Rھ4{в4Hi7Wj[dTF5 (-oE͏eEZJαs<o QKv ^2t;f㧵BѳuޣeέClhׅ'o:p|8o6gG %Jyt:aUa:b)_'NlV!&lMOaYƘY:~'},Zt 4EC v՗U`Iy~Jk[%]ISQP(jB.Rmb1 09[_=x rn0oePïl#NEZ]C&xڍ24ŰχduF8,5\:QI&J aO*XVr]TV._.HB uQdgC{pD5]Wsֵ (CͫSD:jXђOH|^/(1lи?h6ZmTrE. rsJgmcR̼JԦ C^Ȱu"Vjh@[i$dmwUEڈcJ5 f4ZlCj"0J"5YVC2cţD0ti.)~״$^=$(@p=]8ǝ+0'E=֏twV`ӫ&y\rcJkx/UCaY|UZI]^Y2l-Ë]i*כx7UǑ5ʉD4^$$#A J$³ኺ] `OOۯ܇`z$cƓ˕;z Q c)6A)z:CjR.då~ùɘה7{Aji=Px_R}mɨWYWJDW4vj([*cU֢'3گ*nrFmjnsaqU%&td4(@1CnʥhN#XJ+z֤:j-hmEԚ?&*Rv[FjSe+!{OP`̆"z%Nf2Z-kUUVc&5TB%;\Vr |.ZFdmwE`XVORC֭=ka֞{avTs5Wb+oիH)U[Lv:ucr[wC~S࠴ ɊjNK6ZZ׼: +*l7VrPVpɜѰkUHx'd]rW1Qtʆ#U9_LD9` *LEWtVpi`3> S*#"tNjUtUeQdZ׵P-^Ft9ʌDiϳmćr&Y ν9C2>ΠJ64`k񣄁U:RT_1B%QC HhC_ +e?/TڛU&Q̯=C%CS3 ƿ}__iuT;q|ce(u]ě{Pѫ"U`^Iʹf*ƖJy;j61Ya N%5Wf_ZR[(qpzź"MhsP)5 x!zLc׬ SQ%j۴F(0FՓB7KBR7]xߨ~/#L*wYYQw9}y&b2 J4M2Lz "Q6=jõZknJ#-> qֱSjA%ZYDz ?W 4T>fǻkWaI'aDd"©"/B6gYED^2u7/5 ѣZO ͷJ͕WUM!y[e ?cKe AnVڕB3Pmiw{k:6rc[aY0JJΜ/D)U&"t#Y&KʅqQV˓:cc[eҶo(ކde%9Ũꃔ6ݍRPlF#[ܢs|p$Y֋TmSUg_x8Ed3$rL]ð\cFy˪l뾝3c"QUL*|a_J P; rcVAPJ']*2tͻ6½l3.${2#!Mf2j`3&a/v ӧU5cUC%ޤɝYưlLST>3>xPntUi"vkGGXp̣~UK Qi :8o>2ZM$I귪Tl`V)/Dl?QTU&ZThBxp`RjQ)RʱٍW̍C*_,ʯ6/̥%9U!VQĻ*΍UZ9Q n:] T6䵵8ӊ2t a}U yF5U6VgaRu4CDn0bֱ3li5ꬳkv\CZ5LSre`iEɬ% Jt9P΂P=CPRTWU [s^Hg2& HvPHv)Y|5!qt FwHmB8;Ɔawg(ڦlmz6ʭ[gEƥ!֑TWlVUI$귑/Ck' Bj?ainfHU^ n%:oy(U}" óDex)}XZub:P`11XfmlPE%VePgU V2(Γr̳R&F|kY[N9(ezgYJXU)}J!j1! L9:aZU>*6nF(2hJDBDJ&D2JuL-xC&i&k,5L(Xmᰣu9LT[eDΪgꍫe͕lIAKF4T?U+d]X"2wW6/EoVth'BLTȪ diO T}Pt9Hy<|yM(lk4/HХ>*HzUUGagrѣY~Md(VjrDV ڑG !"56rc[̼EqEo,",j,C|aTo֑Qk\k.T:ޭeW탶W殺?Z85eף(_D ccl4t䦯UNPCy>CUm7Q0x ƣWm}:Rt0Kl{l+ʲ֠͡ẽו6T[ktH֪N(,960l55z̃Xl_%OפÓ:ͰZx5NG `ғH q1ME,8@̪B7 fJ\&Hk# ;;'x_N]R_YFZ=mZ =֖5fkZ^5iv[ыmW:3g)Q ikZg%|ʈ;*ʇ^{$kGִNFA)(k SgYKZ]\" ,* SD2kr b)vcy3<YU($YjZWlanR_EPf߆ h#7vs,N|,QWGֵW4yJll׭7Zj4I6WYkWsg)?V1Lk?_Wmgƥf ?zKS`ʍ(kHuZ˨ivDVߔN,*p٢eT`JUVƦm-naŵFWUjQyLoݖ±䙏z$10   ,""!҃$I FWNa:væ]WH-EV`򣷂ޟ%!vf*OfW;l26U2g51#Fz5k_R^lxt"pQ2Ο4"ɼko2 5U}5G/(j+C !D(*qpnt3j{Pz,htPwCTε35]R|)C :shP6]V>+Zɘ?6~Gol*^5(ojԊ ~ywX6sJb*-/7R{ZˍAfU]>_Óti-N cg_CX^Nl{H*?P&3eUAC1FRa榭脼`lu"ӠPoU׎3KxZgK^1WYSrNLaL2(Z䍆J6ʋnq-rF&S*|KTN)SnXRʝq^j.b7\#Fb0CkLu!m,6E0MƯ,ͷujf*vӠ ea ZҬ*o W ϚB1s_nDhIS{P䖎 a|iSŵOӻ`\^56[a_1Sgk}㸿kX3/RЀ^ֵ :XĤHA3BӛU5%'"lF_udVm|jk(ϥNVfJ: =SԶ1Q2ݲ*ʩ|UCCk'RafN#>A(T nl9|P-j% TcIz&\Id[Ը)sYp'Ull.luj6Nh\@yKXx^[UCOCDihl,۴Zi*mvc|㸛dm_UVqEe;E&wl;ZM+{1U~|VA*-&Vy[GPAzT$#hBoSgI) W>.ϩ6*mVM*:{=jp*!/]E%+Q&4a )5]yI~DCٓHk ޅ뒨J 'ycDRbzR~Eo#PaqzY}a3aGZgѼDE_ Lą8yTB]ۋNV"uEgG e|-` }H`hNЋ6Ψ*Aרj",QR#L R0tLl<*O׽uyXTͲ6u:u|Z.voD|FGX>[* vUycaS$UV*¿ !XQI\zhթ+l`~$k>v I5[*8ӡ_Pڠ ci:I ŴVcfU(Mk0k㓡̯U,vђPk*Qfiuek( łڼ(gL$vhv;;YrƖJN"G~sL2!%4u<={\iQF6j!%$ǍHPg+9[QН6A`-m.:Yx$a mDFΡ z-T׎l>~7Ni6bJ$kCUy*Dݡf,;E {T|90ڢѣW)K$c-|Tvgq#kRT̙B/}'UmFYpfRY*P4E-s\ƿPݟadW^LYݣ3H:5>DSފe2dު,o?{Z69E-mW vLʨ~79IQ7w:y:a Ww^i3* 6M~:ct):>Ԫt7^mݤ폒[,k]E$69m1Wp-|Tʷ֭qs,+ډU=uee\`6 lќVrgXL13UP=jZ+c`V %v爢2NN!&}3Gxzfβg , j6uXJB5Ͳ(|HmV[xB6R~eE}6t69"-T7׼l-$bHD/%^DOGtŚ=~ xc:3ly!*ͫZ|8#T5+$61*x6c&rC:T a<GƒvNyaRUf?Ayxޡϰbx-M}EB&̕me6Y5MyNmckƓXU Bh2R"DW tGu|c893ɪ#&Sa|ZWQ#6QΨ{N/AןQ _^^W ʋ54TX]ь"B92%j_3\zE=H-sxU[F1:[Ks #YL B*!hgl-~ЩvWT!&axTFV:ս*9Akkm7]FzYکv6L7Ι'\9ġƵ :oV'^-\*2;E%[ %6L[ZƙUQTy[ZօW۝U զL׮Q*'Uӣid9,OodzpɃA-vZѵm6CkfZ̃H9d? j 6dE1un5V B)!C'9 {N"hʌ+Oj%U"v3hU !JmD(F]WiT}8FCagC/"ގfgNӦCe-*4Ne7]"&^x 갩mʉ5k6ͼdcBxvB݆eThx cm[1G2նY0^E V wpPkoukVc6ujFlhe, ['6rD1 V ?e⪡9ux| zIӭu덧S2cnP%RFp4man)OW) ǠC%j8%6έM(-%}_Ĕ+a{Q&OCg\u :*0Ġ5vu蚄Z5N }tkl̰!([U U7^XJ%++n2TS`NzUڤh[/4!Dgױ-vWί9 <^ T8vȤ҄3j41^PFd7ZqC&Nh5VCƢ^5mmz5ơc)UQmڊ;Z0kX/FH^ r)-Єg%7[ QCkg^h9&d;Dl-id( eu }l8%G7ڑzC8JaYׇ6{Ed=qE- ˪ًTCIneQL4ɟljִ)9̶4m5lsݨ[ 7lwTiQUky7Zm*5?>X-VefʡW5-4eT6oS[̓3 MS5=7Ƽn'l+gjxGd.*g>šu9fYN)o* ɘ2vos[ -EƤ[UF`=mE Q~Im4 ?ƕh`9 m+*_D=ka]ǨPՕU}CqLAdɂ2aPFmvso7&6yS^^kS*/$ ;+Y[U&I|Rm}ʩ%rjT67CxVvG1֛_U"2#B R3Cbr$0S@4c%DPT&5s1E!Q`dU'6AFat? ~IEG՚5/ԗ=DvDCCd`4KjDUk|5>RSJJ*(dǔvː5"bDKhԇ)m%Б^s?.]Ly}}rK}Ow+J;W1!hF vLT>> ەͨDo'jDR*^'K.Lk}rn^'^"=j#Z#Z ȥԶ$6y\I"7#LT˛ȐDDw(7j'8QGoDQzKrI('qj!?F{yȍQǓܭ+܆ߖJDhH"F㊖%m4G"+'T.Q]F=B% Q9Iw̭("[QDIK}ܤQ^^F6Kw"9IDhm}pJTQD1*<8w$d"/9?"#&5]cp5__I=DoCCR6G6D%qCrK[~Z(zQ hcڈЗ(#D\?DK}]OcXS1cGj%B!Kj2VRC?%cCq9I di3+Jr{}#oG46CrEWmv|4A.Q168rD{rLE#)! ~ߢ\RC_/"1Y\˷ǔ{}R!R1ܽvQ9IG3n@Rڢ̐?-@js3~Gv.ChPچѡӒ-܈AODyKXe܆6rG%{x"G(LrP!Pں}{QLܑϸ~'(iJHDr46 EKPCj.^(zbNRNODOQLjKmK_ܢE!rח+jJ+?r⻘'ܑ?C.r9}2' mDf(G=[URCԲV,K~C K/ђ"""rR%+˜D/Ҋ/ qE mCQDj%G)r/T'Lc"6#GK()"NrDDjzGJEގ8r#Q*ȍ""Chs&!jTKȗ1DChԞϷܽDO.Cj(b˜y ۔v7J[sr#"(Lv$6@oQCOD>6ze}'EKrqCRDD2+RRGw\ƆD7 7V<<4b7KZ%䤼 Hc*J8"KyKy y}]D}D/HmKQ,yGӏ{C];j\I>(;.Ow(!vynCQDrcrUn$o'""\Qhrw11KhjHm\RQ"qD!""9܆6 W++/O I{Qz!܇ EE\DD1"(F?QKsrɍ.ch~(?7!h:CnQ"/^I=dRR%W/L}2DR"7 \'!Gjs.߫9zy).1y!Crd9?%rmC/h'GwDr(87=ċFR"rrryGD%.qRPTy6R"-D>]QmGr7r;D@|mKRQH~HcڼU!qCCv6(E DRCSOQ_,QRErL?$?ъ"'??zo8!?4;|DG" Go"r!|x.?LU"(ċQK7N(R'C46II?}/O? ≮`?<4?QG.c$F)rJچݨnܤ܈%qvEzGQ$} ?j#i^Rz(|9KJ?RX//仜͜(ow."8#J_䢥GN?"KG?Tvjy(rGI x"r+!e^?#D &(򗡟"{B|$1VGGڢ!hvos2b֏\jFCCnGԔRDyE GjRNDDr#%$?!46;CQGz}OF!|$RDFw?N(<ǘRN!39sz"{PC&45qy.⒈eφQ)(/HɈ|k܇_/^45Q")!K]PN8E՚{}rQ6dqy9GOKd>QR^!.rQ83qR^Ry5Hh?DyK# ymE kڈG(o/]%VR##hm%C%si_ݥ8=%-"JDJ9!!9zc\5N}ljD]r{C .(DC TZ<#Q)(󒏨;yv ۗ|~򷒒rkqrc}}RCjvF(|=Q1/r.r)nQQCRQQ9Kc(//G[CRQˑnEz Tk"ԿB/TTW~.CvOl~{yDThnChƁhm/\TFD7r) QR1rmzhhnp**JF䤀1[R܆=%I>#D?! -ڼ}DGǟח>)nCwC"4oDL'! ȼTyrTI9&!r\C?T^R򏫷%/T}RDrܤA.6)z)Rڏ)~aRRJ_?P^<ꗮ(~܏(q C z+ڻh"#ܢ5.R>]RQ"$Z=c-RL!ېԹj!C%/7| 0jHݪ>=#qF CC/⢆%/DyGɋGϷ_II hw%movV!HG˛ş)~}#RQܢ*\^\oW?F>(mHs1!HwoR=~z/\Ys{}^_CI &(yG.c䢇˸5E%Tq^KOOqmy""(.!ȎRQډs$j(g\ǐqG6DrQ.Rz-5#%QR뒒~TyUQ$68򊊒CDD"[RKTSGs_/N)rG\4?ъ.!B(~r)"9v""7姵G}Nߢ*\/\ǛTrCCWIDhDr}Gqvq?o).{L~~syqK_w)/w8sLK=rǐ}R'˔I܈/mKj9Q:Qч)((IEI mDrjwq 2r#GoyK.^HeRGoj<>^<*H)nCo)r>)r~oQK伿@j_Dq1RܢȞJHmKjg!qLqD4ˈhhv?Ü}REGIKy^! ).|5Qb""C6EEIDD Ls]LRI?җEQQǜ^>&sOȉo9)r'1WE.Cj# Pm<%.CQ.CCwJ]yK܆(Dƥ?r#TF(dEa|TGrR˟o9}5ǐ}1.c6E ޑ{qIG8w=hL<.Q&!q IG$DmCR?$>c)~۵IIw"(#!vC]ymhmaz]Oo%G&~Phhj(vKKR˔R.dj! YRRǑ9Kr8|˸|DEԇPr^<~2 Y+x\Rd͑E=͜KLqom"(xdIK۹E -PܢCq>F<䣏LK07(I8y=1~o~^\46(9K=9dy7"#Q=QG7sW$RC]1cP@~.QRn1G>~@׏I j#C%G IGz#?%.QCrGrPݵ⸢䢤D7 CR'D&6cWo)r)(E ܬ Cvs&[xGX\9"5oTIDoT |H|hEv.""\Co. |GqK9>%%ǔ}^*QRTWCCCRWTIϹ.]&_?Lmze*_/H׻Ezc菧ǔH46\Q]G(ڈPz#+> TPԹ DorCCچ!j#TQ 99GjB)&rC%/~ ė!|\aDDv׊EK%G%x(E {y0h{Q.IC!EEHꊗ(9 KܔTo܆Џ8#XGsDCC(P! _椇\銗1(ߢ>; MEG)GPH6 }")TWm\K4G!9({B^8.DQRR?wQ1TI?FB)rGyKCIE $5QYjH~%GJ*mKqGqo23j#I򊊳B/CɞK)d%%,Y(MCq$WmDji?Ʃz#+k5Q'FK.Dpշ"8+$6mLC9DnC^"s6sg(d^B^QG""\K9z=lDK^\Ϲ^'ܣQp^\>^?ВvDi.zbEch*r%hmCjPɍQO%G"nDI\$?(Os䞥ڈz3W%ӎ*#QQWO.^v"5IDyrFNLjK|E`MLki93b>3ޤ>r)*$#?i# |r#qD\hcCQCjPhnCj/Hsz|}##J_>%K{yw!IK w9|j\(DCCn^՗CڈDDG}2"+dRIG.ڗ1Djq]Qw=#]%-?w܇n_D|G\1Fn\Ȏ6o8ڏ∻y.ܗq CRb<ޣ!vԉK\w!)/%P%]CVF`)~Vj^9w(⤈!rv{Fq $C-VChGTP[^RDsm,oyK}=zGGݒϔyG)r"C5.CI I붣hjJ\˜yK.QK!GTLQLh䆣菠Iܟ5R$F\9s)(%D18vD~%,QHvԆB!rP9!j]qC/@ڻ;ܥ#IIEE>#HDnFKrχȍ"鱫Tvg+.QF5[܈ݨn&JDQDn*&G(K KrK6|1|[!7rvj;w";՚! 56\K%E$KOD^KDG[CQ.R (~y%.]|͞w8)"(TyTWsD*\6]KDȎM<׵Iy͗9I&5{Ty4gnCk."5䈆m m.~Ѣ9ɞJڒR9{W.Kkw>R=ޏ֏h%!}ryyzc=Џmvw!)/7nC-]EDQor#㉫IEwr7J*Yr&y4j$1GnNQy?rIHw2@5orq1ڈE'򊗯?Q.M{K$F 5M+MVǏ)ت*|tLrj !|;hGq1\DG|$5%$7"7j;I*(m{yڻW\1 Goj<*JJ\i6(|ⶆѡmCQ%qg%-|1rrJ#' CNPh|ڥjKڪ?m=G' Go)(r}QrDG}5.R(.C@\\Ȝ~?9 \R55%$7.#P>F ~\w"5Z)r$C>-QǵwI!Gv"/r;n]򊊏9s'47ᡷdܐȎOw\CRVߒQܼPVj?/G|1Q%||(=ޙs."#2D^"\Qܮ+@qK\̍CwChW~"#z銗2r\j<|6,[<* 钑$)K"!Go(rLQEQDp!ɣCi= /DIGҏooꗢ^R?T;$qDOr&^*+DG(䢆$6\˸j<\y~vԗqH CCvFOR<_O%'.cPڢ5!7d6"8{rRRCr!)sE mCCQ"yG.^?QRQR/\}ꗯ˘DFڗ(ǘyw=2rڭzFѩ|.Q#}qCߙE/7%#0Ks1˜FnR$OQ|hj<>/s>]L}cRQQ)s>RR8z8bDDhFr(\46s)s"Ɔ|~\RRR=Ƥԗs$6/jrEIg#^GvQ]RW $6=|}#Rǔ?$?%KqRRqKr(G9(~TTF^7Ghm"d"";4>CCMRǘGj'9s?̑SXryHj$QŪ>j)r(>z>.TqRw8rzcg9.+hm˗sچ1CiܽԹDhmRWQORK.cjڏ+\J[s.D'!~Ifoo{^KB,!#j"Ch!IGoGG蒏8oqD!ڢ8\CvEN<H~2?X(m&J/am4DFr|CCCQCQD|)mDQR)s9r?y) G塨=2R"zC4?@(|s}\!/Ws/>qK/՗z"Ȟ(fb|Adh!5ǑD@}C6*_5\Dp.dGq>C]Kx=ra6Q9);ܼy R)!'!ڈTmwԑ.)r%Q*DCjWPے!zeDG)z#/j~Q46 vĊJ#.LR%GáD"9!7THSÔxz{n(|5Cr)r1hj>◨j\TyIIE28#~O\~rw%2'(}9)zsc>JY7P܇nJ;TWq[nQڭ䢤45Dq|DwDvNCچѯj'c~ZCv6DWChqr"HdIf(DoF2w!!x)(k {O"#姵Gqb"9ȍ@چܔ=rRQC1 D %/AyExrCCQ!XzX5ZIȍFOj"#)?II `P IIE&r!6r#Ȋ^^'IG9~Gys{[hj\D~j?.~+IE ǜWK܆5KTr#rDj"#Q.dܑHm"5(r~(R^1 9{Q4G"5y(D]E ~+Tej L@pvF@kL\욈ѡr9bK,?*_.ڒ#}mDrRR"PyǗoDE)r#QJCQ@ Dh{P! y5Ko1$mEIHhr#z.QL]K?/rC덹9 x1\ڈ!#RK|螑)s/<3XKG=1K z}zAsQyz|ނrr(mC!>Cp⭑IIy("_mComv^Kn,Wo.Co*O7n^H"}τ1mGj' Q&J<>C46$?$?C7|?1?oP܁hwGr=5hҷnVI6wFBb4{C蒏/*KǔC뗤hhhmRC܆7HaWT"9x{j!rCq#˶" K%.QRCQQ446_7vD4447(3ڈDG&7'(%.~J?{gↆ45Ĩw&A G/HDrD5%RD7!$7r\DrbvK>\DN^>QG8Gs?L5/D[~!'hk/LPڤ5m*JMQR]!'>R"Mh~!! jK{P! IȍRHwhGri\ƆjJWQDpb$Bd>CD"I'!ܓQ\QRR^RQ#׵+j⊎,~**JDLj))r(;.s1(6) ܘG"="'L"mK=M3._qg=DpȈDQܻqO%=RDj".^7b˜C?T9GHP$^z/\1|KTYܻ|wP!)(9w9 PC6mKDNDQG1Es/WmDh-|(˘K/T1QQۋCjDNcF!jvn.QRCwQ>Co!"rOG"~KSGPzM1GY2OQNN??QGmr#=7c^47")d|!rqCC46z<_}_G@}Dwj\J>cܥ79Gr9ǔ}v.QKrDj&DCCh.Q!^~!y!EG$5\ː>]z_>^\D1JHan$1\&(\*K܆mIDxnQRQDDr((")rW܉\?_/GR>6FhdE72@Im?&*NxyIy9 ͣDLn4'9j-1n@jƦ\C*JHDr#.")nCVn;Ky\"crv9蜆oDsFs/HG%.^G5(;+CDrGQǗI mCM~JHj^y!rTyxr))zT ??rQI[RDj>"8"8R"5 Rq rODTJ*\E6IIIGx!"!hw=_@js,Q$1 CCj֫*9r׷ މsG?K/*\>՗{( DD"r{qC꒎K\qjX=q"Q^<|钏%FX}ިs\w"rJc滂rG&Ij!_ǜyKfڗ?ĀQB 7(ӂz?7rz;Z]5\‚#w"t446Gj#Qd.rKF~_@ձ GBdOzCjKP!e1o!GN<{ڥHj^z;G<#yy")/.rh|뗣(R"' c*[TQIG]QOE'm}FCPܬFI hm>CCCr7T#_-QRQQ=" )sѨ~9dj>P̋%%Cj#Q ᧸(;h̗"O|$gm&VGmED Hܘ?Њ*>sxxo9#! ECbbNr(\^)!.&r\9ER9)z#,#1 Ȟ(h9GzɍCq~H9EhDCHr$z!7z?B?B&53׹=xi"L*Or![G47!jP).(ܼPےQ"ԱRCCw_顡jR$}1CCQ8#IDy(DvT}D""Cjj<ƣbBJ+yRӮ!rc6rQ'~Dj<϶({QEDr6"7+]46)s87Pb!o!"s1 K5.CCCڈ7عK!w!3ܪaAvVFJڮwGvKj;#~RvEv 7! Ƥhhhh|Ƈ(Do_QܥI j\?.c܆m ܤ)!~?H|ȉDr:#&M֑Dw*GnQC6ڈbI C51{/Lw?KsNGdHmCjcoQnW9#I&"y#rjQ* P5-"!/Y9IՂ8򶣊\'DiF&Q7 |\cy3PE\D$,TG({ے 4lD#6~Qr 7fHHmCRW1GG5R.QK^H\EE>s!/$46RCo/o=qRR%-HmCrPڤ!#yI{Q.IcG^]F\Cz?KQڟ<|)'qH|%!䆤Eqv-'QQus$]Q5.QK?@K"5Ȅ";QDG"j%8Dv.WqyrÜEKӇ25HWo˔yH hm[<͵wooڤ!ssEl *) T1u,\s!nI%9r{9rݿCmDJ'z rQKI2ƀ"GQR^H)z%]DG)!1ڎr#H܈G";r)rK"銒'K%?PI{y ޡ~߮D(?LGdR9 ۹G.QRےbJH>*h"A7!n6"!Q"R6)mCp];h"K4CM*;.Q"y%r""x-_&(O&*Hڏs-܈bE#h|nVDRCO(ȍ܎rDh;b89VLT' 3LmRmwy Ys$yː1E{SܥY)! H";C=֕TqCoCoCQQrQRDGK$'z\~J?Ȋ?y)e^?//=ߪ>d^}7!B%o&Ê!67r%IrcoAܢ!hDpԹ ^+$60$42cm@oIT;Q.EبNCj2k42|s7~?B?aXx CvEv׹R=q.QC6 1ɵەm]Gq"ѣVW9.HmJ(h~<1ː@|}r47!KC/TCw?HjrEGqܥGDDGb0>/E QE"!Cw8!hv q)ߪ~?|4?D$O&J#7r%!%DDN]Cj;ƆHȈm5sj!>}^?F̎Q_z%̞z4?DTy.ߠnQ%.QCoj8?Kw/w|أ?oo',!EG"z=J\%-ܥ!*\=CrJD6vԉ{y\"2VQG6rPG7ew3?y>ܷ 4 Dj%I%QLJ(Bڈ+h ""7NCCnҩ/9v*#Ȉ&(C6}E 6o/Ly(;|]SysGeG%蒏8}d4>^}q]̿FJ_D1DRE͊K.Q%/@ܢDOA?JJ?.R.]>R+Di" h$Z<-DG"PmY,wPrX뿤Rg7=wɨ^6 ء (mCjUf&#"ԝ{rUȈE^;# ^&H1o\\˶,4?'ߦO_ w=Q]?GA".r^q/DNJ*^sǗ nQR^D)R砜Ȉ,=CG$>Q.c]VkY/-4B(NW 㡴hwۋTr%{_<AN^-Q[Q7y==>rv|DG y8ICq$ m$~CʹkRv9V;r)*G|HJ~R֋ ̜Qw?F[yvח~<^5%R=??w?돗~}QGr&WK_$G~\KKP>")"! Ew9Km!R!\^w7 p' hhhm~sPrG%%GL3/Kǜ}Lr&~^?B>qC.CHz;yGw9|*>\}O{yc.qCn47+D%̔IHhj>򒏬n\PǕ43 [U?'478#NQRXG#jwf߆qh CC$GHߖMD'̇41- ) Pڥ?.cj1.R^QRϹQB?/%~*>9K_yM\< z|EyI#r^PK?\}RĜiJ#Cq2Cn%~\jDIx#"7%ov(2C@%"zʹj2@V 7rI"(Qr2jG&"rmۓ6j,DDr#Z1"ѫcsr@H H hmCCjr5.^Lǜ˔yGr"#}_8<}{K#_